<?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>171110</bug_id>
          
          <creation_ts>2017-04-21 04:39:54 -0700</creation_ts>
          <short_desc>Upstream the WPE port</short_desc>
          <delta_ts>2017-06-14 10:11:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=171973</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=172693</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=173365</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=173061</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>csaavedra</cc>
    
    <cc>dbates</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>olivier.blin</cc>
    
    <cc>rniwa</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1299593</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 04:39:54 -0700</bug_when>
    <thetext>This bug hopes to upstream the WPE port of WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299594</commentid>
    <comment_count>1</comment_count>
      <attachid>307718</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 04:41:26 -0700</bug_when>
    <thetext>Created attachment 307718
Patch

Patch containing the source code changes required to bring the WPE port upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299595</commentid>
    <comment_count>2</comment_count>
      <attachid>307719</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 04:43:01 -0700</bug_when>
    <thetext>Created attachment 307719
git diff --stat output for the specific changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299596</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 04:45:33 -0700</bug_when>
    <thetext>Attachment 307718 did not pass style-queue:

ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:36:  &quot;WebKit/WKBase.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WebKit.h:31  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:47:  &quot;WebKit/WKType.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WebKit.h:32  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:54:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:80:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:83:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:96:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:48:  Alphabetical sorting problem. &quot;Platform/IPC/glib/GSocketMonitor.cpp&quot; should be before &quot;Platform/glib/ModuleGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:71:  Alphabetical sorting problem. &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp&quot; should be before &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;UIProcess/BackingStore.cpp&quot; should be before &quot;UIProcess/API/wpe/WPEViewClient.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:116:  Alphabetical sorting problem. &quot;UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp&quot; should be before &quot;UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:45:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:49:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:55:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:61:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:75:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/CMakeLists.txt:3999:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:128:  &apos;protector&apos; is incorrectly named. It should be named &apos;protectedThis&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/wpe/generate-inspector-gresource-manifest.py:77:  blank line at end of file  [pep8/W391] [5]
ERROR: Tools/Scripts/webkitpy/port/wpe.py:34:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:56:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:63:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/PlatformWPE.cmake:11:  Alphabetical sorting problem. &quot;API/JSBase.h&quot; should be before &quot;API/JavaScript.h&quot;.  [list/order] [5]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/LocalizedStringsWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:57:  Alphabetical sorting problem. &quot;page/scrolling/ScrollingStateStickyNode.cpp&quot; should be before &quot;page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp&quot; should be before &quot;platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:154:  Alphabetical sorting problem. &quot;platform/glib/SSLKeyGeneratorGLib.cpp&quot; should be before &quot;platform/glib/SharedBufferGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:40:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/WebPageWPE.cpp:31:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:66:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/Shared/wpe/NativeWebTouchEventWPE.cpp:35:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:36:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/wtf/PlatformWPE.cmake:8:  Alphabetical sorting problem. &quot;glib/GLibUtilities.cpp&quot; should be before &quot;glib/GRefPtr.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:47:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:54:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:58:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:63:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:67:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:69:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/
inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:72:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:73:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:74:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:76:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:77:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:81:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:82:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:83:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:85:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:87:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:90:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:91:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:92:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:94:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:100:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:101:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:103:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:104:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:105:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:106:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:108:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:110:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:111:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:114:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:117:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:119:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:194:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:71:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:44:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:39:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:42:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
Total errors found: 161 in 201 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>1299597</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 04:49:23 -0700</bug_when>
    <thetext>webkit-dev thread:
https://lists.webkit.org/pipermail/webkit-dev/2017-April/028923.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299599</commentid>
    <comment_count>5</comment_count>
      <attachid>307721</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 05:04:37 -0700</bug_when>
    <thetext>Created attachment 307721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299600</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 05:17:04 -0700</bug_when>
    <thetext>Attachment 307721 did not pass style-queue:

ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:36:  &quot;WebKit/WKBase.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WebKit.h:31  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:47:  &quot;WebKit/WKType.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WebKit.h:32  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:54:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:80:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:83:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:96:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:48:  Alphabetical sorting problem. &quot;Platform/IPC/glib/GSocketMonitor.cpp&quot; should be before &quot;Platform/glib/ModuleGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:71:  Alphabetical sorting problem. &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp&quot; should be before &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;UIProcess/BackingStore.cpp&quot; should be before &quot;UIProcess/API/wpe/WPEViewClient.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:116:  Alphabetical sorting problem. &quot;UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp&quot; should be before &quot;UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:45:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:49:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:55:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:61:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:75:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/CMakeLists.txt:3999:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:128:  &apos;protector&apos; is incorrectly named. It should be named &apos;protectedThis&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/wpe/generate-inspector-gresource-manifest.py:77:  blank line at end of file  [pep8/W391] [5]
ERROR: Tools/Scripts/webkitpy/port/wpe.py:34:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:56:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:63:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/PlatformWPE.cmake:11:  Alphabetical sorting problem. &quot;API/JSBase.h&quot; should be before &quot;API/JavaScript.h&quot;.  [list/order] [5]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/LocalizedStringsWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:57:  Alphabetical sorting problem. &quot;page/scrolling/ScrollingStateStickyNode.cpp&quot; should be before &quot;page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp&quot; should be before &quot;platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:154:  Alphabetical sorting problem. &quot;platform/glib/SSLKeyGeneratorGLib.cpp&quot; should be before &quot;platform/glib/SharedBufferGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:40:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/WebPageWPE.cpp:31:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:66:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/Shared/wpe/NativeWebTouchEventWPE.cpp:35:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:36:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/wtf/PlatformWPE.cmake:8:  Alphabetical sorting problem. &quot;glib/GLibUtilities.cpp&quot; should be before &quot;glib/GRefPtr.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:47:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:54:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:58:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:63:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:67:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:69:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/
inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:72:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:73:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:74:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:76:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:77:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:81:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:82:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:83:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:85:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:87:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:90:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:91:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:92:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:94:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:100:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:101:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:103:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:104:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:105:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:106:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:108:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:110:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:111:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:114:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:117:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:119:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:194:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:71:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:44:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:39:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:42:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
Total errors found: 161 in 209 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>1299609</commentid>
    <comment_count>7</comment_count>
      <attachid>307726</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 07:03:19 -0700</bug_when>
    <thetext>Created attachment 307726
Patch

Should avoid header collision with Cocoa&apos;s WebKit.h file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299610</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 07:12:55 -0700</bug_when>
    <thetext>Attachment 307726 did not pass style-queue:

ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:48:  Alphabetical sorting problem. &quot;Platform/IPC/glib/GSocketMonitor.cpp&quot; should be before &quot;Platform/glib/ModuleGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:71:  Alphabetical sorting problem. &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp&quot; should be before &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;UIProcess/BackingStore.cpp&quot; should be before &quot;UIProcess/API/wpe/WPEViewClient.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:116:  Alphabetical sorting problem. &quot;UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp&quot; should be before &quot;UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:45:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:49:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:55:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:61:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:75:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/CMakeLists.txt:3999:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:128:  &apos;protector&apos; is incorrectly named. It should be named &apos;protectedThis&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/wpe/generate-inspector-gresource-manifest.py:77:  blank line at end of file  [pep8/W391] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:36:  &quot;WebKit/WKBase.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:31  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:47:  &quot;WebKit/WKType.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:32  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:54:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:80:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:83:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:96:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/Scripts/webkitpy/port/wpe.py:34:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:56:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:63:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/PlatformWPE.cmake:11:  Alphabetical sorting problem. &quot;API/JSBase.h&quot; should be before &quot;API/JavaScript.h&quot;.  [list/order] [5]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/LocalizedStringsWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:57:  Alphabetical sorting problem. &quot;page/scrolling/ScrollingStateStickyNode.cpp&quot; should be before &quot;page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp&quot; should be before &quot;platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:154:  Alphabetical sorting problem. &quot;platform/glib/SSLKeyGeneratorGLib.cpp&quot; should be before &quot;platform/glib/SharedBufferGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:40:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/WebPageWPE.cpp:31:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:66:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/Shared/wpe/NativeWebTouchEventWPE.cpp:35:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:36:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/wtf/PlatformWPE.cmake:8:  Alphabetical sorting problem. &quot;glib/GLibUtilities.cpp&quot; should be before &quot;glib/GRefPtr.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:47:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:54:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:58:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:63:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:67:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:69:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:71:  &quot;virtual&quot; is redundant since function is already declare
d as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:72:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:73:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:74:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:76:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:77:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:81:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:82:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:83:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:85:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:87:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:90:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:91:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:92:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:94:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:100:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:101:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:103:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:104:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:105:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:106:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:108:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:110:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:111:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:114:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:117:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:119:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:194:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:71:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:44:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:39:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:42:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
Total errors found: 161 in 209 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>1299616</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-21 07:44:31 -0700</bug_when>
    <thetext>You do need to placate style bot, since these are all new files. I&apos;m sure there are a couple false positives in there like whitespace/parens, but it looks like the overwhelming majority of those complaints are valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299620</commentid>
    <comment_count>10</comment_count>
      <attachid>307728</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 07:48:50 -0700</bug_when>
    <thetext>Created attachment 307728
Patch

Also undefs the BUILDING_WPE__ macro in WKBase.h post-process step in WebKit2.xcodeproj/project.pbxproj.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299622</commentid>
    <comment_count>11</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 07:53:23 -0700</bug_when>
    <thetext>Attachment 307728 did not pass style-queue:

ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:48:  Alphabetical sorting problem. &quot;Platform/IPC/glib/GSocketMonitor.cpp&quot; should be before &quot;Platform/glib/ModuleGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:71:  Alphabetical sorting problem. &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp&quot; should be before &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;UIProcess/BackingStore.cpp&quot; should be before &quot;UIProcess/API/wpe/WPEViewClient.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:116:  Alphabetical sorting problem. &quot;UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp&quot; should be before &quot;UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:45:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:49:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:55:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:61:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:75:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/CMakeLists.txt:3999:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:128:  &apos;protector&apos; is incorrectly named. It should be named &apos;protectedThis&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/wpe/generate-inspector-gresource-manifest.py:77:  blank line at end of file  [pep8/W391] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:36:  &quot;WebKit/WKBase.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:31  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:47:  &quot;WebKit/WKType.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:32  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:54:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:80:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:83:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:96:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/Scripts/webkitpy/port/wpe.py:34:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:56:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:63:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/PlatformWPE.cmake:11:  Alphabetical sorting problem. &quot;API/JSBase.h&quot; should be before &quot;API/JavaScript.h&quot;.  [list/order] [5]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/LocalizedStringsWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:57:  Alphabetical sorting problem. &quot;page/scrolling/ScrollingStateStickyNode.cpp&quot; should be before &quot;page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp&quot; should be before &quot;platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:154:  Alphabetical sorting problem. &quot;platform/glib/SSLKeyGeneratorGLib.cpp&quot; should be before &quot;platform/glib/SharedBufferGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:40:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/WebPageWPE.cpp:31:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:66:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/Shared/wpe/NativeWebTouchEventWPE.cpp:35:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:36:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/wtf/PlatformWPE.cmake:8:  Alphabetical sorting problem. &quot;glib/GLibUtilities.cpp&quot; should be before &quot;glib/GRefPtr.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:47:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:54:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:58:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:63:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:67:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:69:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:71:  &quot;virtual&quot; is redundant since function is already declare
d as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:72:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:73:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:74:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:76:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:77:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:81:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:82:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:83:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:85:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:87:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:90:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:91:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:92:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:94:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:100:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:101:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:103:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:104:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:105:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:106:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:108:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:110:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:111:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:114:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:117:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:119:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:194:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:71:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:44:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:39:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:42:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
Total errors found: 161 in 210 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>1299642</commentid>
    <comment_count>12</comment_count>
      <attachid>307728</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 09:24:47 -0700</bug_when>
    <thetext>Comment on attachment 307728
Patch

Attachment 307728 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/3576579

New failing tests:
webrtc/datachannel/bufferedAmountLowThreshold.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299643</commentid>
    <comment_count>13</comment_count>
      <attachid>307738</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 09:24:48 -0700</bug_when>
    <thetext>Created attachment 307738
Archive of layout-test-results from ews105 for mac-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews105  Port: mac-elcapitan-wk2  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302048</commentid>
    <comment_count>14</comment_count>
      <attachid>308384</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-27 06:08:05 -0700</bug_when>
    <thetext>Created attachment 308384
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302049</commentid>
    <comment_count>15</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-27 06:11:23 -0700</bug_when>
    <thetext>Attachment 308384 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:52:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/CMakeLists.txt:4001:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:34:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 18 in 200 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>1302054</commentid>
    <comment_count>16</comment_count>
      <attachid>308384</attachid>
    <who name="Olivier Blin">olivier.blin</who>
    <bug_when>2017-04-27 06:52:46 -0700</bug_when>
    <thetext>Comment on attachment 308384
WIP patch

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

&gt; Source/WTF/wtf/glib/RunLoopSourcePriority.h:110
&gt;      DiskCacheWrite = 200,
&gt;  };
&gt;  
&gt; +#elif PLATFORM(WPE)
&gt; +
&gt; +enum RunLoopSourcePriority {
&gt; +    RunLoopDispatcher = -70,
&gt; +    RunLoopTimer = -70,
&gt; +
&gt; +    MainThreadDispatcherTimer = -60,
&gt; +
&gt; +    MemoryPressureHandlerTimer = -80,
&gt; +
&gt; +    JavascriptTimer = -60,
&gt; +    MainThreadSharedTimer = -60,
&gt; +
&gt; +    LayerFlushTimer = -70,
&gt; +    DisplayRefreshMonitorTimer = -70,
&gt; +
&gt; +    CompositingThreadUpdateTimer = -70,
&gt; +
&gt; +    ReleaseUnusedResourcesTimer = -70,
&gt; +
&gt; +    AsyncIONetwork = -70,
&gt; +    DiskCacheRead = -70,
&gt; +    DiskCacheWrite = -60
&gt; +};
&gt; +
&gt; +#endif

Can this be factorized with the GTK port?
Any reason to have different values?

&gt; Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:32
&gt; +#define __GBM__ 1

There should be a FIXME comment about __GBM__ like in Source/WebCore/platform/graphics/GLContext.h

&gt; Source/WebCore/platform/wpe/PlatformScreenWPE.cpp:67
&gt; +FloatRect screenRect(Widget*)
&gt; +{
&gt; +    notImplemented();
&gt; +    return FloatRect(0, 0, 1024, 640);
&gt; +}
&gt; +
&gt; +FloatRect screenAvailableRect(Widget*)
&gt; +{
&gt; +    notImplemented();
&gt; +    return FloatRect(0, 0, 1024, 640);
&gt; +}

Is it intended to have different hardcoded values for the default geometry?
1024x640 here

&gt; Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44
&gt; +View::View(struct wpe_view_backend* backend, const API::PageConfiguration&amp; baseConfiguration)
&gt; +    : m_pageClient(std::make_unique&lt;PageClientImpl&gt;(*this))
&gt; +    , m_size { 800, 600 }

and 800x600 here?

&gt; Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:49
&gt; +    bool platformInitialize() override
&gt; +    {
&gt; +        // TODO: Wrap with #ifndef NDEBUG
&gt; +        if (g_getenv(&quot;WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH&quot;)) {
&gt; +            g_printerr(&quot;WebProcess PID: %d\n&quot;, getpid());
&gt; +            WTF::sleep(30);
&gt; +        }

Maybe this can be fixed in the initial patch by adding NDEBUG guards?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302069</commentid>
    <comment_count>17</comment_count>
      <attachid>308384</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-27 07:52:00 -0700</bug_when>
    <thetext>Comment on attachment 308384
WIP patch

Attachment 308384 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/3619493

New failing tests:
media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302070</commentid>
    <comment_count>18</comment_count>
      <attachid>308388</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-27 07:52:01 -0700</bug_when>
    <thetext>Created attachment 308388
Archive of layout-test-results from ews113 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews113  Port: mac-elcapitan  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302261</commentid>
    <comment_count>19</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-27 13:38:53 -0700</bug_when>
    <thetext>(In reply to Olivier Blin from comment #16)
&gt; 
&gt; Can this be factorized with the GTK port?
&gt; Any reason to have different values?
&gt; 

We haven&apos;t settled yet on values that work for both ports.

&gt; &gt; Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:32
&gt; &gt; +#define __GBM__ 1
&gt; 
&gt; There should be a FIXME comment about __GBM__ like in
&gt; Source/WebCore/platform/graphics/GLContext.h
&gt; 

I&apos;ll add it in the next round, or after it&apos;s upstream.

&gt; &gt; Source/WebCore/platform/wpe/PlatformScreenWPE.cpp:67
&gt; &gt; +FloatRect screenRect(Widget*)
&gt; &gt; +{
&gt; &gt; +    notImplemented();
&gt; &gt; +    return FloatRect(0, 0, 1024, 640);
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +FloatRect screenAvailableRect(Widget*)
&gt; &gt; +{
&gt; &gt; +    notImplemented();
&gt; &gt; +    return FloatRect(0, 0, 1024, 640);
&gt; &gt; +}
&gt; 
&gt; Is it intended to have different hardcoded values for the default geometry?
&gt; 1024x640 here
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44
&gt; &gt; +View::View(struct wpe_view_backend* backend, const API::PageConfiguration&amp; baseConfiguration)
&gt; &gt; +    : m_pageClient(std::make_unique&lt;PageClientImpl&gt;(*this))
&gt; &gt; +    , m_size { 800, 600 }
&gt; 
&gt; and 800x600 here?
&gt; 

Screen geometry is mocked above, view size below. The former would need additional API, but is currently not vital for any use case. The latter normally gets resized as instructed by the application.

&gt; &gt; Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:49
&gt; &gt; +    bool platformInitialize() override
&gt; &gt; +    {
&gt; &gt; +        // TODO: Wrap with #ifndef NDEBUG
&gt; &gt; +        if (g_getenv(&quot;WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH&quot;)) {
&gt; &gt; +            g_printerr(&quot;WebProcess PID: %d\n&quot;, getpid());
&gt; &gt; +            WTF::sleep(30);
&gt; &gt; +        }
&gt; 
&gt; Maybe this can be fixed in the initial patch by adding NDEBUG guards?

In the next round, or after it&apos;s upstreamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302262</commentid>
    <comment_count>20</comment_count>
      <attachid>308438</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-27 13:41:37 -0700</bug_when>
    <thetext>Created attachment 308438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302266</commentid>
    <comment_count>21</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-27 13:46:16 -0700</bug_when>
    <thetext>Attachment 308438 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:52:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:472:  One space between command &quot;endif&quot; and its parentheses, should be &quot;endif (&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/CMakeLists.txt:4001:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:34:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 19 in 200 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>1302267</commentid>
    <comment_count>22</comment_count>
      <attachid>308440</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-27 13:46:30 -0700</bug_when>
    <thetext>Created attachment 308440
git diff --stat output for the specific changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302286</commentid>
    <comment_count>23</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-04-27 14:13:10 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #22)
&gt; Created attachment 308440 [details]
&gt; git diff --stat output for the specific changes

tip: if you do 

git diff --stat=999 &gt;file.txt

You get lines as long as 999 width, otherwise git will cut them at &lt;= 72</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302319</commentid>
    <comment_count>24</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-27 14:54:29 -0700</bug_when>
    <thetext>Style checker is much happier now, but I still see some low-hanging fruit there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302505</commentid>
    <comment_count>25</comment_count>
      <attachid>308438</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-27 23:07:23 -0700</bug_when>
    <thetext>Comment on attachment 308438
Patch

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

I read about the first 1/4 of this.  Seems pretty good so far.

&gt; Source/WebCore/CMakeLists.txt:4001
&gt; +    set(ANGLE_PLATFORM_DEFINITIONS )

This isn&apos;t necessary.

&gt; Source/WebCore/CMakeLists.txt:4003
&gt; +        list(APPEND ANGLE_PLATFORM_DEFINITIONS &quot;USE_WPE&quot;)

Let&apos;s move this definition to PlatformWPE.cmake

&gt; Source/WebCore/PlatformWPE.cmake:143
&gt; +    # FIXME: Split build targers below into a WebCorePlatform library

targets
I agree, there are a lot of duplicate lists here.

&gt; Source/WebCore/editing/wpe/EditorWPE.cpp:37
&gt; +static PassRefPtr&lt;DocumentFragment&gt; createFragmentFromPasteboardData(Pasteboard&amp; pasteboard, Frame&amp; frame, Range&amp; range, bool allowPlainText, bool&amp; chosePlainText)

Could we not add any new code with PassRefPtr unless absolutely necessary?

&gt; Source/WebCore/platform/DragImage.h:44
&gt; +#elif PLATFORM(GTK) || PLATFORM(WPE)

We should merge these into USE(CAIRO).  It will probably be pretty common to have GTK || WPE and I think we will usually be needing USE(GLIB) or something.

&gt; Source/WebCore/platform/graphics/wpe/ImageWPE.cpp:37
&gt; +PassRefPtr&lt;Image&gt; Image::loadPlatformResource(const char* resource)

We should remove PassRefPtr from all platforms&apos; implementations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302748</commentid>
    <comment_count>26</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-28 13:22:21 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #25)
&gt; &gt; Source/WebCore/CMakeLists.txt:4001
&gt; &gt; +    set(ANGLE_PLATFORM_DEFINITIONS )
&gt; 
&gt; This isn&apos;t necessary.
&gt; 
&gt; &gt; Source/WebCore/CMakeLists.txt:4003
&gt; &gt; +        list(APPEND ANGLE_PLATFORM_DEFINITIONS &quot;USE_WPE&quot;)
&gt; 
&gt; Let&apos;s move this definition to PlatformWPE.cmake
&gt; 

Done.

&gt; &gt; Source/WebCore/PlatformWPE.cmake:143
&gt; &gt; +    # FIXME: Split build targers below into a WebCorePlatform library
&gt; 
&gt; targets
&gt; I agree, there are a lot of duplicate lists here.
&gt; 

Moved most of those build targets (the WPE-specific ones) into WebCorePlatformWPE library, the rest remain listed there.

&gt; &gt; Source/WebCore/editing/wpe/EditorWPE.cpp:37
&gt; &gt; +static PassRefPtr&lt;DocumentFragment&gt; createFragmentFromPasteboardData(Pasteboard&amp; pasteboard, Frame&amp; frame, Range&amp; range, bool allowPlainText, bool&amp; chosePlainText)
&gt; 
&gt; Could we not add any new code with PassRefPtr unless absolutely necessary?
&gt; 

Sure, now uses RefPtr&lt;&gt;.

&gt; &gt; Source/WebCore/platform/DragImage.h:44
&gt; &gt; +#elif PLATFORM(GTK) || PLATFORM(WPE)
&gt; 
&gt; We should merge these into USE(CAIRO).  It will probably be pretty common to
&gt; have GTK || WPE and I think we will usually be needing USE(GLIB) or
&gt; something.
&gt; 

It depends on the context, e.g. in CryptoKey* files we&apos;d be using USE(LIBGCRYPT), but that flag doesn&apos;t exist (yet).

But yes, given that the ports will be sharing a lot of the internals, we&apos;ll try to find a single flag.

&gt; &gt; Source/WebCore/platform/graphics/wpe/ImageWPE.cpp:37
&gt; &gt; +PassRefPtr&lt;Image&gt; Image::loadPlatformResource(const char* resource)
&gt; 
&gt; We should remove PassRefPtr from all platforms&apos; implementations.

Agreed, but I don&apos;t want to touch cross-port implementations in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302751</commentid>
    <comment_count>27</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-28 13:28:27 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #24)
&gt; Style checker is much happier now, but I still see some low-hanging fruit
&gt; there.

A few of those errors are bugs, and in some cases the necessary include order has to be preserved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302752</commentid>
    <comment_count>28</comment_count>
      <attachid>308589</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-28 13:29:24 -0700</bug_when>
    <thetext>Created attachment 308589
\</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302753</commentid>
    <comment_count>29</comment_count>
      <attachid>308590</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-28 13:30:16 -0700</bug_when>
    <thetext>Created attachment 308590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302754</commentid>
    <comment_count>30</comment_count>
      <attachid>308591</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-28 13:31:21 -0700</bug_when>
    <thetext>Created attachment 308591
git diff --stat output for the specific changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302755</commentid>
    <comment_count>31</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-28 13:33:42 -0700</bug_when>
    <thetext>Attachment 308590 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:52:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:34:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 15 in 208 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>1302799</commentid>
    <comment_count>32</comment_count>
      <attachid>308590</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-28 14:43:44 -0700</bug_when>
    <thetext>Comment on attachment 308590
Patch

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

&gt; Source/WTF/wtf/Platform.h:627
&gt; +#if PLATFORM(COCOA) || PLATFORM(WIN) || PLATFORM(GTK) || PLATFORM(WPE)
&gt;  #define HAVE_ACCESSIBILITY 1

This is everybody!  We should consider removing the HAVE(ACCESSIBILITY) macros unless someone has a reason they want to maintain a build without accessibility.

&gt; Source/WTF/wtf/Platform.h:1081
&gt; +#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) || (PLATFORM(WIN) &amp;&amp; !USE(WINGDI))
&gt;  #define USE_REQUEST_ANIMATION_FRAME_TIMER 1

Same with this.  USE(WINGDI) was true with the WinCE port which was removed years ago.  There&apos;s cleanup we could do after this.

&gt; Source/WebCore/PlatformWPE.cmake:7
&gt; +if (PORT STREQUAL &quot;WPE&quot;)

This check isn&apos;t needed in PlatformWPE.cmake.

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:240
&gt; +    ::glFlush();

Let&apos;s not add this in this patch.  We&apos;re trying to reduce the required number of calls to glFlush.  If it&apos;s really needed, let&apos;s do it in a separate patch.

&gt; Source/WebCore/platform/graphics/wpe/ImageWPE.cpp:37
&gt; +PassRefPtr&lt;Image&gt; Image::loadPlatformResource(const char* resource)

Yeah, making this RefPtr would require refactoring that we shouldn&apos;t do in this patch.  Let&apos;s do it soon, though.

&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:79
&gt; +#if PLATFORM(GTK) || PLATFORM(WPE)
&gt;          m_threadCountLimit = 1;

Aren&apos;t GTK and now WPE the only ports using CoordinatedGraphics in WebKit2 now?

&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:63
&gt; +class ThreadedCompositor : public CoordinatedGraphicsSceneClient, public ThreadSafeRefCounted&lt;ThreadedCompositor&gt;
&gt; +#if PLATFORM(WPE)
&gt; +    , public WebCore::PlatformDisplayWPE::EGLTarget::Client

This feels like it&apos;s not designed well if we need a new type of client just for one platform.  This has led to problems before.

&gt; Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:44
&gt; +    int m_connectionFd { -1 };

Would std::optional&lt;int&gt; make sense here? std::optional&lt;unsigned&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304545</commentid>
    <comment_count>33</comment_count>
      <attachid>308590</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-04 01:10:33 -0700</bug_when>
    <thetext>Comment on attachment 308590
Patch

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

&gt;&gt; Source/WebCore/PlatformWPE.cmake:7
&gt;&gt; +if (PORT STREQUAL &quot;WPE&quot;)
&gt; 
&gt; This check isn&apos;t needed in PlatformWPE.cmake.

Removed.

&gt;&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:240
&gt;&gt; +    ::glFlush();
&gt; 
&gt; Let&apos;s not add this in this patch.  We&apos;re trying to reduce the required number of calls to glFlush.  If it&apos;s really needed, let&apos;s do it in a separate patch.

Opened bug #171647.

&gt;&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:79
&gt;&gt;          m_threadCountLimit = 1;
&gt; 
&gt; Aren&apos;t GTK and now WPE the only ports using CoordinatedGraphics in WebKit2 now?

They are. I can remove the guards, taking 1 as the default limit, and add a FIXME to make this limit configurable in the future.

&gt;&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:63
&gt;&gt; +    , public WebCore::PlatformDisplayWPE::EGLTarget::Client
&gt; 
&gt; This feels like it&apos;s not designed well if we need a new type of client just for one platform.  This has led to problems before.

It&apos;s the best we can do at the moment, before we move the GTK+ stack on top of WPE and potentially make the CoordinatedGraphics subsystem explicitly exclusive to the WPE and GTK+ ports.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:44
&gt;&gt; +    int m_connectionFd { -1 };
&gt; 
&gt; Would std::optional&lt;int&gt; make sense here? std::optional&lt;unsigned&gt;?

std::optional&lt;&gt; would make sense, not yet sure about the embedded type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304554</commentid>
    <comment_count>34</comment_count>
      <attachid>309027</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-04 02:32:05 -0700</bug_when>
    <thetext>Created attachment 309027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304555</commentid>
    <comment_count>35</comment_count>
      <attachid>309028</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-04 02:33:30 -0700</bug_when>
    <thetext>Created attachment 309028
git diff --stat output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304556</commentid>
    <comment_count>36</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-04 02:35:55 -0700</bug_when>
    <thetext>Attachment 309027 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:52:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:34:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 15 in 208 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>1305870</commentid>
    <comment_count>37</comment_count>
      <attachid>309027</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-05-08 08:56:34 -0700</bug_when>
    <thetext>Comment on attachment 309027
Patch

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

What, nobody reviewed this?  Let&apos;s land this. r=me

&gt; Source/WebKit2/UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp:94
&gt; +void WebInspectorServer::buildPageList(Vector&lt;char&gt;&amp; data, String&amp; contentType)
&gt; +{
&gt; +    // chromedevtools (http://code.google.com/p/chromedevtools) 0.3.8 expected JSON format:

This is strange.  First of all, platformResourceForPath seems to only be called in one place from WebInspectorServer.cpp, and there isn&apos;t an existing implementation, so how does that work?  Second, we are trying to move away from passing return values in as references in parameters.  Third, why are we trying to match the Chrome devtools JSON format?  Are people using Chrome devtools with WPE WebKit?  I&apos;m not sure that&apos;s something we want to support.  If it is, we should add this in another patch and add tests.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h:265
&gt; +    bool shouldPaintBrokenImage(const WebCore::URL&amp;) const override;

This doesn&apos;t seem to be called.  Can it be added later if needed?

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:92
&gt; +

This space is inconsistent.  I don&apos;t think it should be here.  The lack of space here indicates that all these functions have to do with the pasteboard stuff.

&gt; Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:428
&gt; +    if options.platform in [&quot;efl&quot;, &quot;gtk&quot;, &quot;wpe&quot;]:

we need to go through all the tools and remove efl stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306299</commentid>
    <comment_count>38</comment_count>
      <attachid>309027</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-09 00:25:32 -0700</bug_when>
    <thetext>Comment on attachment 309027
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp:94
&gt;&gt; +    // chromedevtools (http://code.google.com/p/chromedevtools) 0.3.8 expected JSON format:
&gt; 
&gt; This is strange.  First of all, platformResourceForPath seems to only be called in one place from WebInspectorServer.cpp, and there isn&apos;t an existing implementation, so how does that work?  Second, we are trying to move away from passing return values in as references in parameters.  Third, why are we trying to match the Chrome devtools JSON format?  Are people using Chrome devtools with WPE WebKit?  I&apos;m not sure that&apos;s something we want to support.  If it is, we should add this in another patch and add tests.

This WebInspectorServer stuff is a legacy way of loading the Web Inspector remotely. The GTK+ port switched over to using the remote inspector stack, and WPE will follow closely.

That said, I can&apos;t ensure we&apos;ll be able to completely drop WebInspectorServer, but it should be upstreamed separately later, if necessary.

No idea about the Chrome dev tools JSON format, it maybe used to conform to that, but I suspect it wouldn&apos;t work this way anymore.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h:265
&gt;&gt; +    bool shouldPaintBrokenImage(const WebCore::URL&amp;) const override;
&gt; 
&gt; This doesn&apos;t seem to be called.  Can it be added later if needed?

OK.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:92
&gt;&gt; +
&gt; 
&gt; This space is inconsistent.  I don&apos;t think it should be here.  The lack of space here indicates that all these functions have to do with the pasteboard stuff.

OK.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:428
&gt;&gt; +    if options.platform in [&quot;efl&quot;, &quot;gtk&quot;, &quot;wpe&quot;]:
&gt; 
&gt; we need to go through all the tools and remove efl stuff.

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306308</commentid>
    <comment_count>39</comment_count>
      <attachid>309485</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-09 00:57:44 -0700</bug_when>
    <thetext>Created attachment 309485
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306309</commentid>
    <comment_count>40</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-09 01:02:24 -0700</bug_when>
    <thetext>Attachment 309485 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:52:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:175:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:176:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:34:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 15 in 205 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>1306333</commentid>
    <comment_count>41</comment_count>
      <attachid>309485</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-09 04:08:02 -0700</bug_when>
    <thetext>Comment on attachment 309485
Patch for landing

Clearing flags on attachment: 309485

Committed r216497: &lt;http://trac.webkit.org/changeset/216497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306334</commentid>
    <comment_count>42</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-09 04:08:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307718</attachid>
            <date>2017-04-21 04:41:26 -0700</date>
            <delta_ts>2017-04-21 05:04:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>485354</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41Y2Y2YWY5MmNkNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtMCwwICsxLDIzIEBACitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQorbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtXVEZfRElSfQor
KQorCitzZXQoV1BFX0lOU1RBTExFRF9KQVZBU0NSSVBUQ09SRV9IRUFERVJTCisgICAgQVBJL0ph
dmFTY3JpcHQuaAorICAgIEFQSS9KU0Jhc2UuaAorICAgIEFQSS9KU0NvbnRleHRSZWYuaAorICAg
IEFQSS9KU09iamVjdFJlZi5oCisgICAgQVBJL0pTU3RyaW5nUmVmLmgKKyAgICBBUEkvSlNUeXBl
ZEFycmF5LmgKKyAgICBBUEkvSlNWYWx1ZVJlZi5oCisgICAgQVBJL1dlYktpdEF2YWlsYWJpbGl0
eS5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hF
QURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUt
JHtXUEVfQVBJX1ZFUlNJT059L1dQRS9KYXZhU2NyaXB0Q29yZSIKKyAgICBDT01QT05FTlQgIkRl
dmVsb3BtZW50IgorKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BF
LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjMxODNhMmIw
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3QoQVBQRU5EIEpTQ19MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2lu
Y2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3Jt
LmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAg
ICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVmIHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1h
cF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5cGVkZWYgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlwZTsKIAotI2VsaWYgZGVmaW5lZChVU0Vf
T1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkgfHwgZGVmaW5lZChVU0VfV1BFKQogCiB0
eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlUeXBlOwogdHlwZWRlZiBpbnRwdHJfdCBF
R0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggY2E2MmEzZjUwZGYuLmUxZmMzYmVi
MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ0OCw2ICs0NDgsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTQ5
Miw3ICs0OTQsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYwOCw3
ICs2MTAsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzQ0LDcgKzc0Niw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTM1LDcgKzkzNyw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAwMiw3ICsxMDA0LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDUyLDExICsxMDU0LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTE5LDcgKzExMjEsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMTRlZjQzMmJjMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dSZWZQdHIuY3BwCisgICAgZ2xpYi9HTGliVXRpbGl0
aWVzLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQ1ZjEyY2JkNTA3Li5kZmI4YmE1YWZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTYsMTEgKzM5OTYsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NzVjMTg5ODRhZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UK
QEAgLTAsMCArMSwzIEBACitsaXN0KEFQUEVORCBQQUxfU09VUkNFUworICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvRGlnZXN0R0NyeXB0LmNwcAorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTYzNzk1ZjRjYmUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDI4
NiBAQAoraW5jbHVkZShwbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UpCitpbmNsdWRlKHBsYXRmb3Jt
L0ltYWdlRGVjb2RlcnMuY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL0xpbnV4LmNtYWtlKQoraW5j
bHVkZShwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENP
UkVfRElSfSIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNw
ZWN0b3IiCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9CisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0FQSSIK
KyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2J5dGVjb2RlIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvbXBp
bGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgorICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9taml0
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2RlYnVnZ2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50ZXJwcmV0ZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9qaXQiCisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9sbGludCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BhcnNlciIKKyAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L3Byb2ZpbGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
cnVudGltZSIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3lhcnIiCisgICAgIiR7VEhJUkRQ
QVJUWV9ESVJ9L0FOR0xFLyIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvaW5jbHVkZS9L
SFIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2NhaXJvIgorICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9n
bHgiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgorICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIiCisgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6LyIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmciCisgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZCIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZSIKKyAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS90ZXh0L2ljdSIKKyAgICAke1dURl9ESVJ9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUworICAgIGFjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCisgICAgYWNj
ZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKKworICAgIGxvYWRlci9z
b3VwL0NhY2hlZFJhd1Jlc291cmNlU291cC5jcHAKKyAgICBsb2FkZXIvc291cC9TdWJyZXNvdXJj
ZUxvYWRlclNvdXAuY3BwCisKKyAgICBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNz
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKyAgICBwYWdlL3Nj
cm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ1N0YXRlTm9kZUNvb3JkaW5hdGVk
R3JhcGhpY3MuY3BwCisKKyAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5v
ZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAorICAgIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorCisgICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAorICAg
IHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCisgICAgcGxhdGZvcm0vVGhlbWUuY3BwCisKKyAgICBwbGF0Zm9ybS9hdWRpby9nbGli
L0F1ZGlvQnVzR0xpYi5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1EaXNwbGF5LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0
LmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENh
aXJvSW1wbC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9GbG9hdFJlY3RDYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFkaWVudENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Q
YXR0ZXJuQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250
ZXh0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1QYXRoQ2Fp
cm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8uY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25NYXRyaXhDYWlyby5jcHAKKwor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9HbHlwaFBhZ2VUcmVlTm9kZUZy
ZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3Ry
ZWFtZXJDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhU
ZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0hhcmZCdXp6RmFjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNo
YXBlci5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0xDb21tb24uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHQzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9y
YXJ5T3BlbkdMU2V0dGluZy5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlVmVydGljYWxEYXRhLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRm
b3JtRGlzcGxheVdQRS5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0lt
YWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
ZXJ0aWZpY2F0ZUluZm8uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9DcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0dSZWZQdHJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVNlcnZl
clNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNw
cAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25l
dHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsv
c291cC9TeW5jaHJvbm91c0xvYWRlckNsaWVudFNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKKworICAgIHBsYXRmb3JtL3NvdXAv
U2hhcmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCisKKyAg
ICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcAorICAgIHBsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAorICAgIHBsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCisKKyAgICAjIEZJWE1FOiBTcGxpdCBi
dWlsZCB0YXJnZXJzIGJlbG93IGludG8gYSBXZWJDb3JlUGxhdGZvcm0gbGlicmFyeQorICAgIGVk
aXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKKworICAgIHBhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5j
cHAKKworICAgIHBsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9n
bGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xp
Yi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL0tleWVkRW5jb2RlckdsaWIuY3BwCisgICAgcGxhdGZv
cm0vZ2xpYi9NYWluVGhyZWFkU2hhcmVkVGltZXJHTGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIv
U2hhcmVkQnVmZmVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL1NTTEtleUdlbmVyYXRvckdM
aWIuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWly
by5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JbWFnZVdQRS5jcHAKKworICAgIHBsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCisKKyAg
ICBwbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRT
dHJpbmdzV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcAorICAgIHBs
YXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3Bl
L1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3Jl
ZW5XUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcAorICAgIHBsYXRm
b3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwCisgICAgcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9XaWRn
ZXRXUEUuY3BwCisKKyAgICBwbGF0Zm9ybS94ZGcvTUlNRVR5cGVSZWdpc3RyeVhkZy5jcHAKKykK
KworbGlzdChBUFBFTkQgV2ViQ29yZV9VU0VSX0FHRU5UX1NUWUxFX1NIRUVUUworICAgICR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5jc3MKKykK
Kworc2V0KFdlYkNvcmVfVVNFUl9BR0VOVF9TQ1JJUFRTCisgICAgJHtXRUJDT1JFX0RJUn0vRW5n
bGlzaC5scHJvai9tZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5ncy5qcworICAgICR7V0VCQ09S
RV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qcworKQorCitz
ZXQoV2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFNfREVQRU5ERU5DSUVTICR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHApCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
TElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtFR0xfTElCUkFSSUVTfQor
ICAgICR7Rk9OVENPTkZJR19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRTJfTElCUkFSSUVTfQor
ICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorICAgICR7R0xJQl9HTU9EVUxFX0xJQlJBUklFU30K
KyAgICAke0dMSUJfR09CSkVDVF9MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAg
ICAke0dOVVRMU19MSUJSQVJJRVN9CisgICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9CisgICAgJHtJ
Q1VfTElCUkFSSUVTfQorICAgICR7TElCR0NSWVBUX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBf
TElCUkFSSUVTfQorICAgICR7TElCWE1MMl9MSUJSQVJJRVN9CisgICAgJHtMSUJYU0xUX0xJQlJB
UklFU30KKyAgICAke1NRTElURV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTElCUkFSSUVTfQorKQor
CitsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0NBSVJPX0lO
Q0xVREVfRElSU30KKyAgICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtGT05UQ09ORklHX0lO
Q0xVREVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lO
Q0xVREVfRElSU30KKyAgICAke0dOVVRMU19JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9J
TkNMVURFX0RJUlN9CisgICAgJHtJQ1VfSU5DTFVERV9ESVJTfQorICAgICR7TElCR0NSWVBUX0lO
Q0xVREVfRElSU30KKyAgICAke0xJQlNPVVBfSU5DTFVERV9ESVJTfQorICAgICR7TElCWE1MMl9J
TkNMVURFX0RJUn0KKyAgICAke0xJQlhTTFRfSU5DTFVERV9ESVJ9CisgICAgJHtTUUxJVEVfSU5D
TFVERV9ESVJ9CisgICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCitpZiAoRU5BQkxFX1NVQlRM
RV9DUllQVE8pCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIGNyeXB0
by9DcnlwdG9BbGdvcml0aG0uY3BwCisgICAgICAgIGNyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5jcHAKKyAgICAgICAgY3J5cHRvL0NyeXB0b0tleS5jcHAKKyAgICAgICAgY3J5cHRvL1N1
YnRsZUNyeXB0by5jcHAKKyAgICAgICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAKKwor
ICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmNwcAorICAgICAg
ICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmNwcAorICAgICAgICBj
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmNwcAorICAgICAgICBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCisgICAgICAgIGNyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1IS0RGLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1QQktERjIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QUVTX1BLQ1MxX3YxXzUuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMS5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMjI0LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyNTYuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4
NC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNw
cAorCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5j
cHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCR0NyeXB0LmNw
cAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DVFJHQ3J5cHQuY3Bw
CisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTUdDcnlwdC5jcHAK
KyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfS1dHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtRUNESEdDcnlwdC5jcHAKKyAgICAg
ICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1FQ0RTQUdDcnlwdC5jcHAKKyAgICAgICAg
Y3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1IS0RGR0NyeXB0LmNwcAorICAgICAgICBjcnlw
dG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUhNQUNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9n
Y3J5cHQvQ3J5cHRvQWxnb3JpdGhtUEJLREYyR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisgICAgICAgIGNy
eXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvS2V5RUNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0
by9nY3J5cHQvQ3J5cHRvS2V5UlNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L1Nl
cmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcAorCisgICAgICAgIGNyeXB0by9rZXlzL0Ny
eXB0b0tleUFFUy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YU9jdGV0U2Vx
dWVuY2UuY3BwCisgICAgICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKKyAgICAgICAgY3J5cHRv
L2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNB
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSYXcuY3BwCisgICAgICAgIGNyeXB0
by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3BwCisgICAgKQorZW5kaWYgKCkKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAppbmRleCAxNTlkNWNjYzQyMi4uMzFhMjFmYWI4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC02Niw2ICs2Niw4IEBA
IHR5cGVkZWYgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXI7CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBfQXRrT2JqZWN0
IEF0a09iamVjdDsKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXI7CisjZWxpZiBQTEFURk9STShXUEUpCitjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPiB7
IH07CiAjZWxzZQogY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI7CiAjZW5kaWYKQEAg
LTExMTEsNiArMTExMyw4IEBAIHByb3RlY3RlZDoKICAgICBDT01QdHI8QWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBBdGtPYmpl
Y3QqIG1fd3JhcHBlcjsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTU0MTU5NGFkZWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hl
V1BFLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxp
YSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKworI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNh
dGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3Jt
SGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSosIE5vZGUqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0Fu
Y2hvcihjb25zdCBOb2RlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3NpYmlsaXR5T2JqZWN0
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlP
YmplY3RXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZTk0
YzU5OTRjYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
d3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gRGVmYXVsdEJlaGF2
aW9yOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VT
U0lCSUxJVFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbmZpZy5oCmluZGV4IGQ1ZDQzZmU0ZGY0Li4xODA5OTBlYmZmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgK
QEAgLTEwNCw3ICsxMDQsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykK
KyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgVVNFX05FV19USEVN
RSAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5RUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKaW5k
ZXggNDQzYTY4MjE1YWIuLjRjN2QwMjk4ZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlz
L0NyeXB0b0tleUVDLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NDRUNDcnlw
dG9yICpDQ0VDQ3J5cHRvclJlZjsKIHR5cGVkZWYgQ0NFQ0NyeXB0b3JSZWYgUGxhdGZvcm1FQ0tl
eTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogLy8gZ2NyeV9zZXhwKiBlcXVhdGVzIGdjcnlfc2V4cF90Lgogc3RydWN0IGdj
cnlfc2V4cDsKIHR5cGVkZWYgZ2NyeV9zZXhwKiBQbGF0Zm9ybUVDS2V5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaAppbmRleCAzMDViZDRjNDNhMC4uNDFiY2U4NTll
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oCkBAIC0zNiw3
ICszNiw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQ1JTQUNyeXB0b3IgKkNDUlNBQ3J5cHRvclJlZjsK
IHR5cGVkZWYgQ0NSU0FDcnlwdG9yUmVmIFBsYXRmb3JtUlNBS2V5OwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5
X3NleHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBn
Y3J5X3NleHAqIFBsYXRmb3JtUlNBS2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4
IDNjMTU3ZWY2ZDg4Li4wNWU5MWJmZjAxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApA
QCAtMTI0NiwxMyArMTI0NiwxMyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0
b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogICAgICAgICAgICAgaW1hZ2VFbGVtZW50ID0gaW1h
Z2VFbGVtZW50RnJvbUltYWdlRG9jdW1lbnQoZG9jdW1lbnQoKSk7CiAKICAgICAgICAgaWYgKGlt
YWdlRWxlbWVudCkgewotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAg
ICAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICppbWFnZUVsZW1lbnQsIGRvY3VtZW50KCkudXJsKCksIGRvY3VtZW50KCkudGl0
bGUoKSk7CiAjZWxzZQogICAgICAgICAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBh
c3RlKCktPndyaXRlSW1hZ2UoKmltYWdlRWxlbWVudCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1l
bnQoKS50aXRsZSgpKTsKICNlbmRpZgogICAgICAgICB9IGVsc2UgewotI2lmIFBMQVRGT1JNKENP
Q09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICAvLyBGSVhNRTogQ29udmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1hdGNoIE1hYyBh
bmQgZGVsZXRlIHRoaXMuCkBAIC0xMzc3LDcgKzEzNzcsNyBAQCB2b2lkIEVkaXRvcjo6Y29weUlt
YWdlKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICBpZiAodXJsLmlzRW1wdHkoKSkK
ICAgICAgICAgdXJsID0gcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwoKTsKIAotI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHdyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoKlBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLCAqZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0
RGlzcGxheVN0cmluZygpKTsKICNlbHNlCiAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCktPndyaXRlSW1hZ2UoKmVsZW1lbnQsIHVybCwgcmVzdWx0LmFsdERpc3BsYXlTdHJp
bmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAxNjUyYjZkYjM5My4uMzZiOTZiMmJj
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDY3LDcgKzQ2Nyw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoQXR0cmlidXRlZFN0
cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxC
bG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3cml0
ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB3cml0ZUltYWdlVG9QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmLCBFbGVtZW50JiBpbWFnZUVs
ZW1lbnQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgd3JpdGVT
ZWxlY3Rpb24oUGFzdGVib2FyZFdyaXRlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dw
ZS9FZGl0b3JXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5h
ZmZkMmRlMWU5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3Bl
L0VkaXRvcldQRS5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RWRpdG9yLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQu
aCIKKyNpbmNsdWRlICJtYXJrdXAuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21QYXN0ZWJvYXJk
RGF0YShQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiByYW5nZSwg
Ym9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCit7CisgICAgY2hvc2VQ
bGFpblRleHQgPSBmYWxzZTsKKworICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzID0gcGFzdGVib2Fy
ZC50eXBlcygpOworICAgIGlmICh0eXBlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKCJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCIp
ICYmIGZyYW1lLmRvY3VtZW50KCkpIHsKKyAgICAgICAgU3RyaW5nIG1hcmt1cCA9IHBhc3RlYm9h
cmQucmVhZFN0cmluZygidGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiKTsKKyAgICAgICAgaWYgKFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1
cCgqZnJhbWUuZG9jdW1lbnQoKSwgbWFya3VwLCBlbXB0eVN0cmluZygpLCBEaXNhbGxvd1Njcmlw
dGluZ0FuZFBsdWdpbkNvbnRlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVh
c2UoKTsKKyAgICB9CisKKyAgICBpZiAoIWFsbG93UGxhaW5UZXh0KQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5jb250YWlucygidGV4dC9wbGFpbjtjaGFyc2V0PXV0
Zi04IikpIHsKKyAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0cnVlOworICAgICAgICBpZiAoUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChy
YW5nZSwgcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIHJl
dHVybiBudWxscHRyOworfQorCit2b2lkIEVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZCkKK3sKKyAgICBQYXN0ZWJvYXJkV2ViQ29udGVudCBw
YXN0ZWJvYXJkQ29udGVudDsKKyAgICBwYXN0ZWJvYXJkQ29udGVudC50ZXh0ID0gc2VsZWN0ZWRU
ZXh0Rm9yRGF0YVRyYW5zZmVyKCk7CisgICAgcGFzdGVib2FyZENvbnRlbnQubWFya3VwID0gY3Jl
YXRlTWFya3VwKCpzZWxlY3RlZFJhbmdlKCksIG51bGxwdHIsIEFubm90YXRlRm9ySW50ZXJjaGFu
Z2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxzKTsKKyAgICBwYXN0ZWJvYXJkLndyaXRlKHBh
c3RlYm9hcmRDb250ZW50KTsKK30KKwordm9pZCBFZGl0b3I6OndyaXRlSW1hZ2VUb1Bhc3RlYm9h
cmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJv
YXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQsIE1haWxCbG9j
a3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKK3sKKyAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJl
dHVybjsKKworICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CisgICAgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tUGFzdGVib2FyZERhdGEoKnBhc3Rl
Ym9hcmQsIG1fZnJhbWUsICpyYW5nZSwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsK
KyAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdl
LCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCisgICAgICAgIHBhc3RlQXNGcmFnbWVudCgq
ZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hv
c2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjk1N2M4Nzg0
ZmMuLmVkZTk0MDE3Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0y
NjExLDcgKzI2MTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aXNJbnNpZGVTY3JvbGxiYXIoY29u
c3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
I2lmICFQTEFURk9STShHVEspCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkK
IAogYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50b0hvcml6b250
YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VkY2Q4NWQ4MzcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCkBAIC0w
LDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKwor
I2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZvY3VzQ29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2Fy
ZEV2ZW50JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KCkKK3sKKyAgICBp
ZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUoJm1fZnJhbWUpOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dp
ZGdldChSZW5kZXJXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRn
ZXQoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBXaWRnZXQmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZy
YW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKiwgSGl0VGVzdFJlc3VsdCopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVy
OjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmLCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK09wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gRXZlbnRIYW5kbGVy
OjphY2Nlc3NLZXlNb2RpZmllcnMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXk7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jpem9udGFsKGNvbnN0IEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oCmluZGV4IGNkY2YyNjVmMjYwLi41ZTkxMWQ3MDhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vy
c29yLmgKQEAgLTc0LDYgKzc0LDggQEAgdXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBSZWZQdHI8U2hh
cmVkQ3Vyc29yPjsKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gTlNDdXJzb3IgKjsKICNlbGlmIFBM
QVRGT1JNKEdUSykKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gR1JlZlB0cjxHZGtDdXJzb3I+Owor
I2VsaWYgUExBVEZPUk0oV1BFKQordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSB2b2lkKjsKICNlbmRp
ZgogCiBjbGFzcyBDdXJzb3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKaW5kZXggMTk1
NzIxYjFmZGEuLmYzNjNmYWY1NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EcmFnRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKQEAg
LTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2VsZWN0aW9uRGF0YTsK
IH0KIHR5cGVkZWYgV2ViQ29yZTo6U2VsZWN0aW9uRGF0YSogRHJhZ0RhdGFSZWY7Ci0jZWxpZiBQ
TEFURk9STShJT1MpCisjZWxpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKIHR5cGVk
ZWYgdm9pZCogRHJhZ0RhdGFSZWY7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuaAppbmRleCBlMzI1NWQxOWFkMi4uY2JlZjczOGY2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdJbWFnZS5oCkBAIC00MSw3ICs0MSw3IEBAIHR5cGVkZWYgc3RydWN0IENHSW1hZ2UgKkNH
SW1hZ2VSZWY7CiBPQkpDX0NMQVNTIE5TSW1hZ2U7CiAjZWxpZiBQTEFURk9STShXSU4pCiB0eXBl
ZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlICJSZWZQdHJDYWlyby5o
IgogI2VuZGlmCiAKQEAgLTY0LDcgKzY0LDcgQEAgdHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gRHJhZ0ltYWdlUmVmOwogdHlwZWRlZiBSZXRhaW5QdHI8TlNJbWFnZT4gRHJhZ0ltYWdlUmVm
OwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBIQklUTUFQIERyYWdJbWFnZVJlZjsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQog
dHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBEcmFnSW1hZ2VSZWY7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IGYxMjY4YTY4ZDJkLi4xZDEyMzZh
YTdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtMTk4LDcgKzE5OCw3
IEBAIFdFQkNPUkVfRVhQT1JUIGJvb2wgZmlsZXNIYXZlU2FtZVZvbHVtZShjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKIFJldGFpblB0cjxDRlVSTFJlZj4gcGF0aEFzVVJMKGNvbnN0IFN0
cmluZyYpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYp
OwogQ1N0cmluZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKIENTdHJpbmcgc2hhcmVkUmVz
b3VyY2VzUGF0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRo
cmVhZFNoYXJlZFRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5jcHAKaW5kZXggNzc4Y2FjMmQ5OGIuLmRkYTY4MmViODQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAgTWFpblRocmVhZFNoYXJlZFRpbWVyJiBNYWluVGhyZWFkU2hhcmVkVGltZXI6
OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdU
SykKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogTWFpblRocmVhZFNoYXJl
ZFRpbWVyOjpNYWluVGhyZWFkU2hhcmVkVGltZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuaAppbmRleCA1OTBmNjg5NGFkMy4uNDkw
NzMwZjE0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFy
ZWRUaW1lci5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
I2VuZGlmCiAKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBNYWluVGhyZWFkU2hhcmVk
VGltZXIoKTsKIAogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2ZpcmVkRnVuY3Rpb247Ci0j
aWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAg
IFJ1bkxvb3A6OlRpbWVyPE1haW5UaHJlYWRTaGFyZWRUaW1lcj4gbV90aW1lcjsKICNlbmRpZgog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCBiOTRkNzBhMWY2YS4uOWMx
NGJhMjdjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTYyLDcgKzYy
LDcgQEAgZW51bSBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgeyBE
ZWZhdWx0U2VsZWN0ZWRUZXh0VHlwZSwgSW5jbHUKIC8vIEZvciB3cml0aW5nIHRvIHRoZSBwYXN0
ZWJvYXJkLiBHZW5lcmFsbHkgc29ydGVkIHdpdGggdGhlIHJpY2hlc3QgZm9ybWF0cyBvbiB0b3Au
CiAKIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7Ci0jaWYgIShQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdJTikpCisjaWYgIShQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwg
UExBVEZPUk0oV1BFKSkKICAgICBXRUJDT1JFX0VYUE9SVCBQYXN0ZWJvYXJkV2ViQ29udGVudCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYXN0ZWJvYXJkV2ViQ29udGVudCgpOwogICAgIGJvb2wg
Y2FuU21hcnRDb3B5T3JEZWxldGU7CkBAIC04MCw2ICs4MCwxMCBAQCBzdHJ1Y3QgUGFzdGVib2Fy
ZFdlYkNvbnRlbnQgewogICAgIFN0cmluZyB0ZXh0OwogICAgIFN0cmluZyBtYXJrdXA7CiAjZW5k
aWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgU3RyaW5nIHRleHQ7CisgICAgU3RyaW5nIG1hcmt1
cDsKKyNlbmRpZgogfTsKIAogc3RydWN0IFBhc3RlYm9hcmRVUkwgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCBlODhhNDg5MTE4My4uOTlkNzVm
NGViYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5o
CkBAIC02OSwxMCArNjksMTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgbG9uZyBzZXRQYXRobmFt
ZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgbG9u
ZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICNlbmRpZgorCiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFNlbGVjdGlvbkRhdGEmKSA9IDA7CiAgICAgdmly
dHVhbCBSZWY8U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKKworI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVz
KSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBp
bmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJikgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIH5QYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKaW5kZXggMzdhNzkxODNmNmMuLmYzZTQzMDQzZWZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtNDAs
NiArNDAsMTAgQEAgT0JKQ19DTEFTUyBOU1Bhc3RlYm9hcmQ7CiBPQkpDX0NMQVNTIFVJUGFzdGVi
b2FyZDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9wYXN0ZWJvYXJk
OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7CkBAIC01Miw3
ICs1Niw3IEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKIGNsYXNzIFBsYXRmb3JtUGFz
dGVib2FyZCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUGxhdGZvcm1Q
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwotI2lmIFBMQVRGT1JNKElP
UykKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKICAgICBXRUJDT1JFX0VYUE9S
VCBQbGF0Zm9ybVBhc3RlYm9hcmQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5n
PiBmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oKTsKICNlbmRpZgpAQCAtMTA1LDYgKzEwOSw5
IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEd0a0NsaXBib2FyZCogbV9jbGlw
Ym9hcmQ7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgc3RydWN0IHdwZV9wYXN0ZWJv
YXJkKiBtX3Bhc3RlYm9hcmQ7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAppbmRleCA1YmFkM2NkMGQ1Ni4uNjRlMzU2Mzk2ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKQEAgLTU5LDcgKzU5
LDcgQEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNlY3VyZVNjaGVtZXMoKQogICAgICAgICBzZWN1
cmVTY2hlbWVzLmdldCgpLmFkZCgiYWJvdXQiKTsKICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQo
KS5hZGQoImRhdGEiKTsKICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoIndzcyIpOwot
I2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAg
ICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoInJlc291cmNlIik7CiAjZW5kaWYKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4IDU1YjQ5YTRkZGM3Li41ZDdhYTQ4YTcxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKQEAgLTYxLDYgKzYxLDEwIEBAIHR5cGVkZWYgc3Ry
dWN0IF9HdGtDb250YWluZXIgR3RrQ29udGFpbmVyOwogdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRm
b3JtV2lkZ2V0OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCit0eXBlZGVmIHZvaWQqIFBs
YXRmb3JtV2lkZ2V0OworI2VuZGlmCisKIHR5cGVkZWYgUGxhdGZvcm1XaWRnZXQgUGxhdGZvcm1Q
YWdlQ2xpZW50OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAKaW5kZXggNzkxYmZhMzk2MzYu
LjgxOTc1YjY0YTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
bGliL0F1ZGlvQnVzR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z2xpYi9BdWRpb0J1c0dMaWIuY3BwCkBAIC0yNywxMSArMjcsMTcgQEAKICNpbmNsdWRlIDx3dGYv
Z2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCisjaWYg
UExBVEZPUk0oR1RLKQorI2RlZmluZSBBVURJT19HUkVTT1VSQ0VfUEFUSCAiL29yZy93ZWJraXRn
dGsvcmVzb3VyY2VzL2F1ZGlvIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2RlZmluZSBBVURJT19H
UkVTT1VSQ0VfUEFUSCAiL29yZy93ZWJraXR3cGUvcmVzb3VyY2VzL2F1ZGlvIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6Omxv
YWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUsIGZsb2F0IHNhbXBsZVJhdGUpCiB7
Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdfc3RyZHVwX3ByaW50ZigiL29yZy93ZWJraXRn
dGsvcmVzb3VyY2VzL2F1ZGlvLyVzIiwgbmFtZSkpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0
aChnX3N0cmR1cF9wcmludGYoQVVESU9fR1JFU09VUkNFX1BBVEggIi8lcyIsIG5hbWUpKTsKICAg
ICBHUmVmUHRyPEdCeXRlcz4gZGF0YSA9IGFkb3B0R1JlZihnX3Jlc291cmNlc19sb29rdXBfZGF0
YShwYXRoLmdldCgpLCBHX1JFU09VUkNFX0xPT0tVUF9GTEFHU19OT05FLCBudWxscHRyKSk7CiAg
ICAgQVNTRVJUKGRhdGEpOwogICAgIHJldHVybiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0Zp
bGUoZ19ieXRlc19nZXRfZGF0YShkYXRhLmdldCgpLCBudWxscHRyKSwgZ19ieXRlc19nZXRfc2l6
ZShkYXRhLmdldCgpKSwgZmFsc2UsIHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCA2ZmEzZWE3NzFmMy4uODNkMzJl
MTM4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUds
aWIuY3BwCkBAIC0yMTMsNiArMjEzLDkgQEAgQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCkK
ICAgICBpZiAoIWNhY2hlZFBhdGguaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBjYWNoZWRQYXRo
OwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRhdGFQYXRoKGdf
YnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3cGUiLCBudWxscHRyKSk7CisjZWxpZiBQTEFURk9S
TShHVEspCiAjaWYgT1MoV0lORE9XUykKICAgICBITU9EVUxFIGhtb2R1bGUgPSAwOwogICAgIEdl
dE1vZHVsZUhhbmRsZUV4QShHRVRfTU9EVUxFX0hBTkRMRV9FWF9GTEFHX0ZST01fQUREUkVTUywg
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oc2hhcmVkUmVzb3VyY2VzUGF0aCksICZobW9kdWxlKTsK
QEAgLTIyMiw2ICsyMjUsNyBAQCBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQogI2Vsc2UK
ICAgICBHVW5pcXVlUHRyPGdjaGFyPiBkYXRhUGF0aChnX2J1aWxkX2ZpbGVuYW1lKERBVEFfRElS
LCAid2Via2l0Z3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORywgTlVMTCkpOwogI2Vu
ZGlmCisjZW5kaWYKIAogICAgIGNhY2hlZFBhdGggPSBkYXRhUGF0aC5nZXQoKTsKICAgICByZXR1
cm4gY2FjaGVkUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0FOR0xFV2ViS2l0QnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9BTkdMRVdlYktpdEJyaWRnZS5oCmluZGV4IDkxMTRlNzZjNzU5Li4yYWNjZmFkMTU5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlk
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8T3BlbkdML2dsLmg+CiAjZWxpZiBQ
TEFURk9STShXSU4pCiAjaW5jbHVkZSAiT3BlbkdMRVNTaGltcy5oIgotI2VsaWYgUExBVEZPUk0o
R1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjaWYgVVNFKE9QRU5H
TF9FU18yKQogI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCmluZGV4IDcwZjU4NzM5MmY2Li5jMTVi
ZWM1ZTliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRl
eHQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4gR0xD
b250ZXh0OjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmIGRpc3AKICAgICB9
CiAjZW5kaWYKIAotI2lmIFVTRShFR0wpIHx8IFBMQVRGT1JNKFdBWUxBTkQpCisjaWYgVVNFKEVH
TCkgfHwgUExBVEZPUk0oV0FZTEFORCkgfHwgUExBVEZPUk0oV1BFKQogICAgIGlmIChhdXRvIGVn
bENvbnRleHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KGRpc3BsYXkpKQog
ICAgICAgICByZXR1cm4gV1RGTW92ZShlZ2xDb250ZXh0KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAppbmRleCAyYzBlYTI3ZTE5My4uMDQ2
OWViNTMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5oCkBAIC0yNSw3ICsyNSwxMyBAQAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiAj
aWYgVVNFKEVHTCkgJiYgIVBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShXUEUpCisvLyBGSVhN
RTogRmluZCBzb21lIHdheSB0byBkZWR1Y2UgdGhpcy4KKyNkZWZpbmUgX19HQk1fXyAxCisjaW5j
bHVkZSA8RUdML2VnbHBsYXRmb3JtLmg+CisjZWxzZQogI2luY2x1ZGUgImVnbHBsYXRmb3JtLmgi
CisjZW5kaWYKIHR5cGVkZWYgRUdMTmF0aXZlV2luZG93VHlwZSBHTE5hdGl2ZVdpbmRvd1R5cGU7
CiAjZWxzZQogdHlwZWRlZiB1aW50NjRfdCBHTE5hdGl2ZVdpbmRvd1R5cGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRl
eCA3ZDgwZDViNDViNC4uYjJiNzk1MjU0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNjAsNyArNjAsNyBAQAog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIE9CSkNfQ0xB
U1MgV2ViR0xMYXllcjsKLSNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOX0NBSVJP
KQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pIHx8IFBMQVRGT1JN
KFdQRSkKIHR5cGVkZWYgdW5zaWduZWQgaW50IEdMdWludDsKICNlbmRpZgogCkBAIC0xMzczLDcg
KzEzNzMsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNoYWRlck5hbWVIYXNo
PiBuYW1lSGFzaE1hcEZvclNoYWRlcnM7CiAKLSNpZiAoKFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV0lOKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAoKFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUpKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQogICAgIGZy
aWVuZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0xFUzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0
ZW5zaW9uczNET3BlbkdMRVM+IG1fZXh0ZW5zaW9uczsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKaW5kZXggYjRlOTUxNTcyMTcu
LmFiN2M2YjhmMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9PcGVuR0xFU1NoaW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
T3BlbkdMRVNTaGltcy5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIE9wZW5HTEVTU2hpbXNf
aAogI2RlZmluZSBPcGVuR0xFU1NoaW1zX2gKIAotI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV0lOKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShX
UEUpCiAjZGVmaW5lIGdsQmluZEZyYW1lYnVmZmVyRVhUIGdsQmluZEZyYW1lYnVmZmVyCiAjZGVm
aW5lIGdsRnJhbWVidWZmZXJUZXh0dXJlMkRFWFQgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRAogI2Rl
ZmluZSBnbEJpbmRSZW5kZXJidWZmZXJFWFQgZ2xCaW5kUmVuZGVyYnVmZmVyCkBAIC00NSw2ICs0
NSw3IEBACiAjZGVmaW5lIGdsSXNGcmFtZWJ1ZmZlckVYVCBnbElzRnJhbWVidWZmZXIKICNkZWZp
bmUgZ2xHZW5lcmF0ZU1pcG1hcEVYVCBnbEdlbmVyYXRlTWlwbWFwCiAjZGVmaW5lIEdMX0RFUFRI
X0FUVEFDSE1FTlRfRVhUIEdMX0RFUFRIX0FUVEFDSE1FTlQKKyNkZWZpbmUgR0xfQ09MT1JfQVRU
QUNITUVOVDBfRVhUIEdMX0NPTE9SX0FUVEFDSE1FTlQwCiAjZGVmaW5lIEdMX0ZSQU1FQlVGRkVS
X0NPTVBMRVRFX0VYVCBHTF9GUkFNRUJVRkZFUl9DT01QTEVURQogI2RlZmluZSBHTF9GUkFNRUJV
RkZFUl9FWFQgR0xfRlJBTUVCVUZGRVIKICNkZWZpbmUgR0xfREVQVEgyNF9TVEVOQ0lMOF9FWFQg
R0xfREVQVEgyNF9TVEVOQ0lMOF9PRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmluZGV4IDY3ZWZiY2ViOGIzLi4xYjcxOTU0
ZjU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuY3BwCkBAIC00Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUgIlBsYXRmb3JtRGlz
cGxheVdpbi5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxhdGZv
cm1EaXNwbGF5V1BFLmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxn
ZGsvZ2RrLmg+CiAjZW5kaWYKQEAgLTEwMCw2ICsxMDQsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtRGlzcGxheT4gUGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9ybURpc3BsYXkoKQog
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVgxMT4obnVsbHB0cik7
CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxQbGF0Zm9ybURpc3BsYXlXUEU+KCk7CisjZW5kaWYKKwogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAppbmRleCBmNzY0YzJkNDUxZi4uY2I1ZmEx
ZWYzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtRGlzcGxheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtRGlzcGxheS5oCkBAIC01NCw2ICs1NCw5IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShXSU4p
CiAgICAgICAgIFdpbmRvd3MsCiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgIFdQ
RSwKKyNlbmRpZgogICAgIH07CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRFR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEVHTC5jcHAKaW5kZXggMWMxY2VjMjZhY2YuLjlmZTc1NWZjNThmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcApAQCAt
MjA0LDYgKzIwNCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRF
R0w6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KFBsYXRmb3JtRGlzcGxheQogICAgIGlmIChlZ2xCaW5k
QVBJKGdFR0xBUElWZXJzaW9uKSA9PSBFR0xfRkFMU0UpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIGlmIChwbGF0Zm9ybURpc3BsYXkudHlwZSgpID09
IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6V1BFKSB7CisgICAgICAgIGlmIChhdXRvIGNvbnRleHQg
PSBjcmVhdGVXUEVDb250ZXh0KHBsYXRmb3JtRGlzcGxheSkpCisgICAgICAgICAgICByZXR1cm4g
Y29udGV4dDsKKyAgICB9CisjZW5kaWYKKwogICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZVN1cmZh
Y2VsZXNzQ29udGV4dChwbGF0Zm9ybURpc3BsYXkpOwogICAgIGlmICghY29udGV4dCkgewogI2lm
IFBMQVRGT1JNKFgxMSkKQEAgLTI1MSw2ICsyNTgsOSBAQCBHTENvbnRleHRFR0w6On5HTENvbnRl
eHRFR0woKQogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCiAgICAgZGVzdHJveVdheWxhbmRXaW5kb3co
KTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBkZXN0cm95V1BFVGFyZ2V0KCk7Cisj
ZW5kaWYKIH0KIAogYm9vbCBHTENvbnRleHRFR0w6OmNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVm
ZmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9H
TENvbnRleHRFR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRFR0wuaAppbmRleCBlNWEzMzU5N2Q3Yi4uOWEwMzNmZWIyYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKQEAgLTMy
LDYgKzMyLDEwIEBACiBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdzsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oV1BFKQorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorI2VuZGlmCisKIHR5cGVk
ZWYgdm9pZCAqRUdMQ29uZmlnOwogdHlwZWRlZiB2b2lkICpFR0xDb250ZXh0OwogdHlwZWRlZiB2
b2lkICpFR0xEaXNwbGF5OwpAQCAtNzMsNiArNzcsOSBAQCBwcml2YXRlOgogICAgIEdMQ29udGV4
dEVHTChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0LCBFR0xTdXJmYWNlLCBXbFVuaXF1ZVB0
cjxzdHJ1Y3Qgd2xfc3VyZmFjZT4mJiwgc3RydWN0IHdsX2VnbF93aW5kb3cqKTsKICAgICB2b2lk
IGRlc3Ryb3lXYXlsYW5kV2luZG93KCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAg
dm9pZCBkZXN0cm95V1BFVGFyZ2V0KCk7CisjZW5kaWYKIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVXaW5kb3dDb250ZXh0KEdMTmF0aXZlV2luZG93VHlw
ZSwgUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIp
OwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVQYnVmZmVy
Q29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVs
bHB0cik7CkBAIC04NSw2ICs5Miw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVdheWxhbmRDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYs
IEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKICAgICBzdGF0aWMgRUdMU3Vy
ZmFjZSBjcmVhdGVXaW5kb3dTdXJmYWNlV2F5bGFuZChFR0xEaXNwbGF5LCBFR0xDb25maWcsIEdM
TmF0aXZlV2luZG93VHlwZSk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVdQRUNvbnRleHQoUGxhdGZvcm1E
aXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIpOworI2VuZGlmCiAK
ICAgICBzdGF0aWMgYm9vbCBnZXRFR0xDb25maWcoRUdMRGlzcGxheSwgRUdMQ29uZmlnKiwgRUdM
U3VyZmFjZVR5cGUpOwogCkBAIC05OCw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIFdsVW5pcXVl
UHRyPHN0cnVjdCB3bF9zdXJmYWNlPiBtX3dsU3VyZmFjZTsKICAgICBzdHJ1Y3Qgd2xfZWdsX3dp
bmRvdyogbV93bFdpbmRvdyB7IG51bGxwdHIgfTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJn
ZXQ+IG1fd3BlVGFyZ2V0OworI2VuZGlmCiAjaWYgVVNFKENBSVJPKQogICAgIGNhaXJvX2Rldmlj
ZV90KiBtX2NhaXJvRGV2aWNlIHsgbnVsbHB0ciB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjNmNDJkNzY0MgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRFR0xXUEUuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
SWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisKKyNpZiBVU0UoRUdMKSAmJiBQ
TEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRF
R0w6OmNyZWF0ZVdQRUNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiBwbGF0Zm9ybURpc3BsYXksIEVH
TENvbnRleHQgc2hhcmluZ0NvbnRleHQpCit7CisgICAgYXV0byBvZmZzY3JlZW5UYXJnZXQgPSBk
b3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkuY3JlYXRlRUdMT2Zm
c2NyZWVuVGFyZ2V0KCk7CisgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlV2luZG93Q29udGV4dChv
ZmZzY3JlZW5UYXJnZXQtPm5hdGl2ZVdpbmRvdygpLCBwbGF0Zm9ybURpc3BsYXksIHNoYXJpbmdD
b250ZXh0KTsKKyAgICBpZiAoY29udGV4dCkKKyAgICAgICAgY29udGV4dC0+bV93cGVUYXJnZXQg
PSBXVEZNb3ZlKG9mZnNjcmVlblRhcmdldCk7CisgICAgcmV0dXJuIGNvbnRleHQ7Cit9CisKK3Zv
aWQgR0xDb250ZXh0RUdMOjpkZXN0cm95V1BFVGFyZ2V0KCkKK3sKKyAgICBtX3dwZVRhcmdldCA9
IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShF
R0wpICYmIFBMQVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCAyYmYxMWVhMWJkNy4uMjkxNzM0MzZmYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKQEAgLTU5LDcgKzU5LDkgQEAKICNlbmRpZgogCiAjaWYgVVNFKEVHTCkKKyNpZiAhUExBVEZP
Uk0oV1BFKQogI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgorI2VuZGlmCiAjaW5jbHVkZSA8Z3N0
L2dsL2VnbC9nc3RnbGRpc3BsYXlfZWdsLmg+CiAjZW5kaWYKIApAQCAtNjksNiArNzEsOCBAQAog
CiAjaWYgUExBVEZPUk0oV0FZTEFORCkKICNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXYXlsYW5k
LmgiCisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgi
CiAjZW5kaWYKIAogLy8gZ3N0Z2xhcGkuaCBtYXkgaW5jbHVkZSBlZ2xwbGF0Zm9ybS5oIGFuZCBp
dCBpbmNsdWRlcyBYLmgsIHdoaWNoCkBAIC00MzksNiArNDQzLDExIEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6ZW5zdXJlR3N0R0xDb250ZXh0KCkKICAgICAgICAgICAg
IG1fZ2xEaXNwbGF5ID0gR1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRo
X2VnbF9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KHNoYXJlZERpc3Bs
YXkpLmVnbERpc3BsYXkoKSkpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAg
IEFTU0VSVChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KHNoYXJlZERpc3BsYXkpKTsKKyAgICAgICAg
bV9nbERpc3BsYXkgPSBHU1RfR0xfRElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhf
ZWdsX2Rpc3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihzaGFyZWREaXNwbGF5KS5l
Z2xEaXNwbGF5KCkpKTsKKyNlbmRpZgorCiAgICAgICAgIEFTU0VSVChtX2dsRGlzcGxheSk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApp
bmRleCBjN2EwZWM3ZjI1Mi4uMTI2NWUwMDFkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMjM2LDYgKzIzNiw5IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OnByZXBhcmVUZXh0dXJlKCkKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxp
bmdJZk5lY2Vzc2FyeSgpOwogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVE
KQorI2lmIFVTRShPUEVOR0xfRVNfMikKKyAgICA6OmdsRmx1c2goKTsKKyNlbmRpZgogICAgIHN0
ZDo6c3dhcChtX3RleHR1cmUsIG1fY29tcG9zaXRvclRleHR1cmUpOwogICAgIHN0ZDo6c3dhcCht
X3RleHR1cmUsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CiAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZl
cihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwpAQCAtMzk4LDcgKzQwMSw3IEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OmNoZWNrVmFyeWluZ3NQYWNraW5nKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4
U2hhZGVyLCBQbGF0CiAgICAgICAgIHZhcmlhYmxlcy5wdXNoX2JhY2sodmFyeWluZ1N5bWJvbCk7
CiAKICAgICBHQzNEaW50IG1heFZhcnlpbmdWZWN0b3JzID0gMDsKLSNpZiAhUExBVEZPUk0oSU9T
KSAmJiAhKChQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykpICYmIFVTRShPUEVOR0xfRVNf
MikpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgISgoUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgR0MzRGludCBt
YXhWYXJ5aW5nRmxvYXRzID0gMDsKICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTUFYX1ZBUllJTkdf
RkxPQVRTLCAmbWF4VmFyeWluZ0Zsb2F0cyk7CiAgICAgbWF4VmFyeWluZ1ZlY3RvcnMgPSBtYXhW
YXJ5aW5nRmxvYXRzIC8gNDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dwZS9JY29uV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dwZS9JY29uV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZDNjMzdiZGY4YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93cGUvSWNvbldQRS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSWNvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ljb246On5JY29uKCkK
K3sKK30KKwordm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKQoreworfQorCitSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3BlL0ltYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JbWFnZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVh
YTMwYTg1NjZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3BlL0ltYWdlV1BFLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJCaXRtYXBJbWFnZS5oIgorCisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3ZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQor
eworfQorCitQYXNzUmVmUHRyPEltYWdlPiBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29u
c3QgY2hhciogcmVzb3VyY2UpCit7CisgICAgc3RkOjpmcHJpbnRmKHN0ZGVyciwgIldBUk5JTkc6
IHRyeWluZyB0byBsb2FkIHBsYXRmb3JtIHJlc291cmNlICclcydcbiIsIHJlc291cmNlKTsKKyAg
ICByZXR1cm4gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxh
dGZvcm1EaXNwbGF5V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi40ZDViYjFkMWY0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCkBAIC0wLDAgKzEsMTM0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCisjaWYgUExB
VEZPUk0oV1BFKQorCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisjaW5jbHVkZSAiSW50U2l6
ZS5oIgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDx3cGUvcmVuZGVyZXItYmFja2Vu
ZC1lZ2wuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybURpc3BsYXlXUEU6OlBs
YXRmb3JtRGlzcGxheVdQRSgpID0gZGVmYXVsdDsKKworUGxhdGZvcm1EaXNwbGF5V1BFOjp+UGxh
dGZvcm1EaXNwbGF5V1BFKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZGVzdHJv
eShtX2JhY2tlbmQpOworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6aW5pdGlhbGl6ZShp
bnQgaG9zdEZkKQoreworICAgIG1fYmFja2VuZCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9j
cmVhdGUoaG9zdEZkKTsKKworICAgIG1fZWdsRGlzcGxheSA9IGVnbEdldERpc3BsYXkod3BlX3Jl
bmRlcmVyX2JhY2tlbmRfZWdsX2dldF9uYXRpdmVfZGlzcGxheShtX2JhY2tlbmQpKTsKKyAgICBp
ZiAobV9lZ2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCAiUGxhdGZvcm1EaXNwbGF5V1BFOiBjb3VsZCBub3QgY3JlYXRlIHRoZSBFR0wgZGlzcGxh
eS5cbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUGxhdGZvcm1EaXNwbGF5Ojpp
bml0aWFsaXplRUdMRGlzcGxheSgpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNw
bGF5V1BFOjpFR0xUYXJnZXQ+IFBsYXRmb3JtRGlzcGxheVdQRTo6Y3JlYXRlRUdMVGFyZ2V0KEVH
TFRhcmdldDo6Q2xpZW50JiBjbGllbnQsIGludCBob3N0RmQpCit7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8RUdMVGFyZ2V0PigqdGhpcywgY2xpZW50LCBob3N0RmQpOworfQorCitzdGQ6
OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ+IFBsYXRm
b3JtRGlzcGxheVdQRTo6Y3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCkKK3sKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxFR0xPZmZzY3JlZW5UYXJnZXQ+KCp0aGlzKTsKK30KKworUGxhdGZv
cm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkVHTFRhcmdldChjb25zdCBQbGF0Zm9ybURpc3BsYXlX
UEUmIGRpc3BsYXksIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVu
dCwgaW50IGhvc3RGZCkKKyAgICA6IG1fZGlzcGxheShkaXNwbGF5KQorICAgICwgbV9jbGllbnQo
Y2xpZW50KQoreworICAgIG1fYmFja2VuZCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJn
ZXRfY3JlYXRlKGhvc3RGZCk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNr
ZW5kX2VnbF90YXJnZXRfY2xpZW50IHNfY2xpZW50ID0geworICAgICAgICAvLyBmcmFtZV9jb21w
bGV0ZQorICAgICAgICBbXSh2b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRv
JiBzdXJmYWNlID0gKnJlaW50ZXJwcmV0X2Nhc3Q8RUdMVGFyZ2V0Kj4oZGF0YSk7CisgICAgICAg
ICAgICBzdXJmYWNlLm1fY2xpZW50LmZyYW1lQ29tcGxldGUoKTsKKyAgICAgICAgfSwKKyAgICB9
OworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfc2V0X2NsaWVudChtX2JhY2tl
bmQsICZzX2NsaWVudCwgdGhpcyk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0
Ojp+RUdMVGFyZ2V0KCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2Rl
c3Ryb3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdl
dDo6aW5pdGlhbGl6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9yZW5kZXJlcl9i
YWNrZW5kX2VnbF90YXJnZXRfaW5pdGlhbGl6ZShtX2JhY2tlbmQsIG1fZGlzcGxheS5tX2JhY2tl
bmQsCisgICAgICAgIHN0ZDo6bWF4KDAsIHNpemUud2lkdGgoKSksIHN0ZDo6bWF4KDAsIHNpemUu
aGVpZ2h0KCkpKTsKK30KKworRUdMTmF0aXZlV2luZG93VHlwZSBQbGF0Zm9ybURpc3BsYXlXUEU6
OkVHTFRhcmdldDo6bmF0aXZlV2luZG93KCkgY29uc3QKK3sKKyAgICByZXR1cm4gd3BlX3JlbmRl
cmVyX2JhY2tlbmRfZWdsX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRvdyhtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpyZXNpemUoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X3Jlc2l6ZSht
X2JhY2tlbmQsIHN0ZDo6bWF4KDAsIHNpemUud2lkdGgoKSksIHN0ZDo6bWF4KDAsIHNpemUuaGVp
Z2h0KCkpKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVX
aWxsUmVuZGVyKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2ZyYW1l
X3dpbGxfcmVuZGVyKG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5V1BFOjpF
R0xUYXJnZXQ6OmZyYW1lUmVuZGVyZWQoKQoreworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2Vn
bF90YXJnZXRfZnJhbWVfcmVuZGVyZWQobV9iYWNrZW5kKTsKK30KKworUGxhdGZvcm1EaXNwbGF5
V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ6OkVHTE9mZnNjcmVlblRhcmdldChjb25zdCBQbGF0Zm9y
bURpc3BsYXlXUEUmIGRpc3BsYXkpCit7CisgICAgbV90YXJnZXQgPSB3cGVfcmVuZGVyZXJfYmFj
a2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9jcmVhdGUoKTsKKyAgICB3cGVfcmVuZGVyZXJfYmFj
a2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9pbml0aWFsaXplKG1fdGFyZ2V0LCBkaXNwbGF5Lm1f
YmFja2VuZCk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0Ojp+
RUdMT2Zmc2NyZWVuVGFyZ2V0KCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zm
c2NyZWVuX3RhcmdldF9kZXN0cm95KG1fdGFyZ2V0KTsKK30KKworRUdMTmF0aXZlV2luZG93VHlw
ZSBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldDo6bmF0aXZlV2luZG93KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90
YXJnZXRfZ2V0X25hdGl2ZV93aW5kb3cobV90YXJnZXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNmOGNmZDk5OGQ3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlz
cGxheVdQRS5oCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQbGF0Zm9ybURpc3BsYXlXUEVfaAorI2RlZmluZSBQ
bGF0Zm9ybURpc3BsYXlXUEVfaAorCisjaWYgUExBVEZPUk0oV1BFKQorCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5LmgiCisKKyNkZWZpbmUgX19HQk1fXyAxCisjaW5jbHVkZSA8RUdML2VnbHBs
YXRmb3JtLmg+CisKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2w7CitzdHJ1Y3Qgd3Bl
X3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2Vu
ZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBH
TENvbnRleHQ7CitjbGFzcyBJbnRTaXplOworCitjbGFzcyBQbGF0Zm9ybURpc3BsYXlXUEUgZmlu
YWwgOiBwdWJsaWMgUGxhdGZvcm1EaXNwbGF5IHsKK3B1YmxpYzoKKyAgICBQbGF0Zm9ybURpc3Bs
YXlXUEUoKTsKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybURpc3BsYXlXUEUoKTsKKworICAgIHZvaWQg
aW5pdGlhbGl6ZShpbnQpOworCisgICAgY2xhc3MgRUdMVGFyZ2V0IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIGNsYXNzIENsaWVudCB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIHZpcnR1
YWwgdm9pZCBmcmFtZUNvbXBsZXRlKCkgPSAwOworICAgICAgICB9OworCisgICAgICAgIEVHTFRh
cmdldChjb25zdCBQbGF0Zm9ybURpc3BsYXlXUEUmLCBDbGllbnQmLCBpbnQpOworICAgICAgICB+
RUdMVGFyZ2V0KCk7CisKKyAgICAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEludFNpemUmKTsK
KyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlwZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAg
ICAgICB2b2lkIHJlc2l6ZShjb25zdCBJbnRTaXplJik7CisKKyAgICAgICAgdm9pZCBmcmFtZVdp
bGxSZW5kZXIoKTsKKyAgICAgICAgdm9pZCBmcmFtZVJlbmRlcmVkKCk7CisKKyAgICBwcml2YXRl
OgorICAgICAgICBjb25zdCBQbGF0Zm9ybURpc3BsYXlXUEUmIG1fZGlzcGxheTsKKyAgICAgICAg
Q2xpZW50JiBtX2NsaWVudDsKKyAgICAgICAgc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2Vn
bF90YXJnZXQqIG1fYmFja2VuZDsKKyAgICB9OworCisgICAgY2xhc3MgRUdMT2Zmc2NyZWVuVGFy
Z2V0IHsKKyAgICBwdWJsaWM6CisgICAgICAgIEVHTE9mZnNjcmVlblRhcmdldChjb25zdCBQbGF0
Zm9ybURpc3BsYXlXUEUmKTsKKyAgICAgICAgfkVHTE9mZnNjcmVlblRhcmdldCgpOworCisgICAg
ICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2luZG93KCkgY29uc3Q7CisKKyAgICBwcml2
YXRlOgorICAgICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90
YXJnZXQqIG1fdGFyZ2V0OworICAgIH07CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RUdMVGFyZ2V0
PiBjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGllbnQmLCBpbnQpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxFR0xPZmZzY3JlZW5UYXJnZXQ+IGNyZWF0ZUVHTE9mZnNjcmVlblRhcmdldCgpOwor
Citwcml2YXRlOgorICAgIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFBsYXRm
b3JtRGlzcGxheTo6VHlwZTo6V1BFOyB9CisKKyAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tl
bmRfZWdsKiBtX2JhY2tlbmQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfUExBVEZPUk1fRElTUExBWShQbGF0Zm9ybURpc3BsYXlXUEUsIFdQ
RSkKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKKworI2VuZGlmIC8vIFBsYXRmb3JtRGlzcGxh
eVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNGRjOTU1ZjkzMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1cnNvci5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3ZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0Cit7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRTdHJpbmdzV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dwZS9Mb2NhbGl6ZWRTdHJpbmdzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uODc1ZDdmYzUyYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAKQEAgLTAsMCArMSw1
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorCisjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoIl9TZWFyY2ggdGhlIFdlYiIpOworfQorCitTdHJpbmcgdW5hY2NlcHRh
YmxlVExTQ2VydGlmaWNhdGUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJVbmFj
Y2VwdGFibGUgVExTIGNlcnRpZmljYXRlIik7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRTdHJpbmco
Y29uc3QgY2hhcioga2V5KQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwgc3Ry
bGVuKGtleSkpOworfQorCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dwZS9QYXN0ZWJvYXJkV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0
ZWJvYXJkV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmM3
ODAwODNmZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGFzdGVib2FyZC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNp
bmNsdWRlICJQYXN0ZWJvYXJkU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3sKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKK30KKworUGFzdGVib2FyZDo6UGFzdGVib2FyZCgpCit7
Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6aGFzRGF0YSgpCit7CisgICAgLy8gRklYTUU6IEdldHRp
bmcgdGhlIGxpc3Qgb2YgdHlwZXMgZm9yIHRoaXMgaXMgd2FzdGVmdWwuIERvIHRoaXMgaW4gdGhl
IFVJIHByb2Nlc3MuCisgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CisgICAgcGxhdGZvcm1TdHJh
dGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcyk7CisgICAgcmV0
dXJuICF0eXBlcy5pc0VtcHR5KCk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5
cGVzKCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4g
dHlwZXM7Cit9CisKK1N0cmluZyBQYXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGNvbnN0IFN0cmluZyYg
dHlwZSkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJh
dGVneSgpLT5yZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoMCwgdHlwZSk7Cit9CisKK3ZvaWQgUGFz
dGVib2FyZDo6d3JpdGVTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT53
cml0ZVRvUGFzdGVib2FyZCh0eXBlLCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpjbGVh
cigpCit7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6Y2xlYXIoY29uc3QgU3RyaW5nJikKK3sKK30K
Kwordm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCit7Cisg
ICAgdGV4dC50ZXh0ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgp
LT5yZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoMCwgInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIp
OworfQorCit2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFdlYkNvbnRlbnRSZWFkZXIm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUo
Y29uc3QgUGFzdGVib2FyZFVSTCYgdXJsKQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5w
YXN0ZWJvYXJkU3RyYXRlZ3koKS0+d3JpdGVUb1Bhc3RlYm9hcmQoInRleHQvcGxhaW47Y2hhcnNl
dD11dGYtOCIsIHVybC51cmwuc3RyaW5nKCkpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
VHJ1c3R3b3J0aHlXZWJVUkxzUGJvYXJkVHlwZShjb25zdCBQYXN0ZWJvYXJkVVJMJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBh
c3RlYm9hcmRJbWFnZSYpCit7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFz
dGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PnBhc3RlYm9hcmRTdHJhdGVneSgpLT53cml0ZVRvUGFzdGVib2FyZChjb250ZW50KTsKK30KKwor
VmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6cmVhZEZpbGVuYW1lcygpCit7CisgICAgcmV0dXJu
IFZlY3RvcjxTdHJpbmc+KCk7Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNl
KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVNYXJr
dXAoY29uc3QgU3RyaW5nJikKK3sKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4
dChjb25zdCBTdHJpbmcmIHRleHQsIFNtYXJ0UmVwbGFjZU9wdGlvbikKK3sKKyAgICB3cml0ZVN0
cmluZygidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IiwgdGV4dCk7Cit9CisKK3ZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVQYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmQmKQoreworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
UGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dw
ZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5mYTRmMzhlMTFmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEs
NTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgor
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUg
dHlwZSwgYm9vbCBiYWNrd2FyZHNDb21wYXRpYmlsaXR5KQoreworICAgIEFTU0VSVChtX3R5cGUg
PT0gS2V5RG93bik7CisgICAgbV90eXBlID0gdHlwZTsKKyAgICBpZiAoYmFja3dhcmRzQ29tcGF0
aWJpbGl0eSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVu
dDo6UmF3S2V5RG93bikgeworICAgICAgICBtX3RleHQgPSBTdHJpbmcoKTsKKyAgICAgICAgbV91
bm1vZGlmaWVkVGV4dCA9IFN0cmluZygpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fa2V5SWRl
bnRpZmllciA9IFN0cmluZygpOworICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9IDA7
CisgICAgfQorfQorCitib29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2Nr
U3RhdGUoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmLCBib29sJiwgYm9vbCYsIGJvb2wm
KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjQzNDZhMDIwYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwCkBA
IC0wLDAgKzEsMTE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVBhc3RlYm9hcmQuaCIKKyNpbmNsdWRlIDx3cGUvcGFzdGVib2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CisKKyNpbmNsdWRlIDxtYXA+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGxh
dGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJikKKyAgICA6
IG1fcGFzdGVib2FyZCh3cGVfcGFzdGVib2FyZF9nZXRfc2luZ2xldG9uKCkpCit7CisgICAgQVNT
RVJUKG1fcGFzdGVib2FyZCk7Cit9CisKK1BsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1QYXN0
ZWJvYXJkKCkKKyAgICA6IG1fcGFzdGVib2FyZCh3cGVfcGFzdGVib2FyZF9nZXRfc2luZ2xldG9u
KCkpCit7CisgICAgQVNTRVJUKG1fcGFzdGVib2FyZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1QYXN0
ZWJvYXJkOjpnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpCit7CisgICAgc3RydWN0IHdw
ZV9wYXN0ZWJvYXJkX3N0cmluZ192ZWN0b3IgcGFzdGVib2FyZFR5cGVzID0geyBudWxscHRyLCAw
IH07CisgICAgd3BlX3Bhc3RlYm9hcmRfZ2V0X3R5cGVzKG1fcGFzdGVib2FyZCwgJnBhc3RlYm9h
cmRUeXBlcyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGFzdGVib2FyZFR5cGVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIGF1dG8mIHR5cGVTdHJpbmcgPSBwYXN0ZWJvYXJkVHlw
ZXMuc3RyaW5nc1tpXTsKKyAgICAgICAgdHlwZXMuYXBwZW5kKFN0cmluZyh0eXBlU3RyaW5nLmRh
dGEsIHR5cGVTdHJpbmcubGVuZ3RoKSk7CisgICAgfQorCisgICAgd3BlX3Bhc3RlYm9hcmRfc3Ry
aW5nX3ZlY3Rvcl9mcmVlKCZwYXN0ZWJvYXJkVHlwZXMpOworfQorCitTdHJpbmcgUGxhdGZvcm1Q
YXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGludCwgY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHN0
cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmcgc3RyaW5nOworICAgIHdwZV9wYXN0ZWJvYXJkX2dl
dF9zdHJpbmcobV9wYXN0ZWJvYXJkLCB0eXBlLnV0ZjgoKS5kYXRhKCksICZzdHJpbmcpOworCisg
ICAgU3RyaW5nIHJldHVyblZhbHVlKHN0cmluZy5kYXRhLCBzdHJpbmcubGVuZ3RoKTsKKworICAg
IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZzdHJpbmcpOworICAgIHJldHVybiByZXR1cm5W
YWx1ZTsKK30KKwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9h
cmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIHN0YXRpYyBjb25zdCBjaGFyIHBsYWluVGV4
dFtdID0gInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIg
aHRtbFRleHRbXSA9ICJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCI7CisKKyAgICBDU3RyaW5nIHRl
eHRTdHJpbmcgPSBjb250ZW50LnRleHQudXRmOCgpOworICAgIENTdHJpbmcgbWFya3VwU3RyaW5n
ID0gY29udGVudC5tYXJrdXAudXRmOCgpOworCisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0
cmluZ19wYWlyIHBhaXJzW10gPSB7CisgICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0
ciwgMCB9IH0sCisgICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0ciwgMCB9IH0sCisg
ICAgfTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0udHlw
ZSwgcGxhaW5UZXh0LCBzdHJsZW4ocGxhaW5UZXh0KSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3Ry
aW5nX2luaXRpYWxpemUoJnBhaXJzWzBdLnN0cmluZywgdGV4dFN0cmluZy5kYXRhKCksIHRleHRT
dHJpbmcubGVuZ3RoKCkpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZw
YWlyc1sxXS50eXBlLCBodG1sVGV4dCwgc3RybGVuKGh0bWxUZXh0KSk7CisgICAgd3BlX3Bhc3Rl
Ym9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzFdLnN0cmluZywgbWFya3VwU3RyaW5nLmRh
dGEoKSwgbWFya3VwU3RyaW5nLmxlbmd0aCgpKTsKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRf
c3RyaW5nX21hcCBtYXAgPSB7IHBhaXJzLCAyIH07CisKKyAgICB3cGVfcGFzdGVib2FyZF93cml0
ZShtX3Bhc3RlYm9hcmQsICZtYXApOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUo
JnBhaXJzWzBdLnR5cGUpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1sw
XS5zdHJpbmcpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1sxXS50eXBl
KTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMV0uc3RyaW5nKTsKK30K
Kwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19w
YWlyIHBhaXJzW10gPSB7CisgICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0ciwgMCB9
IH0sCisgICAgfTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNb
MF0udHlwZSwgdHlwZS51dGY4KCkuZGF0YSgpLCB0eXBlLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzBdLnN0cmluZywgc3RyaW5n
LnV0ZjgoKS5kYXRhKCksIHN0cmluZy51dGY4KCkubGVuZ3RoKCkpOworICAgIHN0cnVjdCB3cGVf
cGFzdGVib2FyZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFpcnMsIDEgfTsKKworICAgIHdwZV9wYXN0
ZWJvYXJkX3dyaXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7CisKKyAgICB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfZnJlZSgmcGFpcnNbMF0udHlwZSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2Zy
ZWUoJnBhaXJzWzBdLnN0cmluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3JlZW5XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMDhlYjdkZThjOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5j
cHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3Jl
ZW4uaCIKKworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworaW50IHNjcmVlbkRlcHRoKFdpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMjQ7Cit9CisKK2ludCBzY3JlZW5E
ZXB0aFBlckNvbXBvbmVudChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDg7Cit9CisKK2Jvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgc2NyZWVuSGFz
SW52ZXJ0ZWRDb2xvcnMoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworRmxvYXRSZWN0IHNj
cmVlblJlY3QoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBG
bG9hdFJlY3QoMCwgMCwgMTAyNCwgNjQwKTsKK30KKworRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJs
ZVJlY3QoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9h
dFJlY3QoMCwgMCwgMTAyNCwgNjQwKTsKK30KKworYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVk
Q29sb3IoV2lkZ2V0KikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJU
aGVtZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hOTA3NTczNGU4NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVt
ZVdQRS5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVy
VGhlbWVXUEUuaCIKKworI2luY2x1ZGUgIlVzZXJBZ2VudFNjcmlwdHMuaCIKKyNpbmNsdWRlICJV
c2VyQWdlbnRTdHlsZVNoZWV0cy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlZjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZShQYWdlKikKK3sKKyAg
ICBzdGF0aWMgUmVuZGVyVGhlbWUmIHRoZW1lID0gUmVuZGVyVGhlbWVXUEU6OmNyZWF0ZSgpLmxl
YWtSZWYoKTsKKyAgICByZXR1cm4gdGhlbWU7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVXUEU6OnVw
ZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURl
c2NyaXB0aW9uJikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcg
UmVuZGVyVGhlbWVXUEU6OmV4dHJhRGVmYXVsdFN0eWxlU2hlZXQoKQoreworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworI2lmIEVOQUJMRShWSURFTykKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6
bWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKQoreworICAgIHJldHVybiBBU0NJSUxpdGVyYWwobWVk
aWFDb250cm9sc0Jhc2VVc2VyQWdlbnRTdHlsZVNoZWV0KTsKK30KKworU3RyaW5nIFJlbmRlclRo
ZW1lV1BFOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIHNjcmlw
dEJ1aWxkZXI7CisgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0xvY2FsaXpl
ZFN0cmluZ3NKYXZhU2NyaXB0LCBzaXplb2YobWVkaWFDb250cm9sc0xvY2FsaXplZFN0cmluZ3NK
YXZhU2NyaXB0KSk7CisgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0Jhc2VK
YXZhU2NyaXB0LCBzaXplb2YobWVkaWFDb250cm9sc0Jhc2VKYXZhU2NyaXB0KSk7CisgICAgcmV0
dXJuIHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKyNlbmRpZgorfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTIyYTA4OTc4MDAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUu
aApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgUmVuZGVyVGhlbWVXUEVfaAorI2RlZmluZSBSZW5kZXJUaGVt
ZVdQRV9oCisKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyVGhlbWVXUEUgZmlu
YWwgOiBwdWJsaWMgUmVuZGVyVGhlbWUgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVuZGVy
VGhlbWU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW5k
ZXJUaGVtZVdQRSk7CisgICAgfQorCisgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFEZWZhdWx0U3R5
bGVTaGVldCgpIG92ZXJyaWRlOworI2lmIEVOQUJMRShWSURFTykKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5n
IG1lZGlhQ29udHJvbHNTY3JpcHQoKSBvdmVycmlkZTsKKyNlbmRpZgorCitwcml2YXRlOgorICAg
IFJlbmRlclRoZW1lV1BFKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflJlbmRlclRoZW1lV1BF
KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnRE
ZXNjcmlwdGlvbihDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJikgY29uc3Qgb3Zl
cnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJU
aGVtZVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xs
YmFyVGhlbWVXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRo
ZW1lV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGY5ZmU1
ZDRkODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Ny
b2xsYmFyVGhlbWVXUEUuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNjcm9sbGJhclRoZW1lV1BFLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgU2Nyb2xsYmFyVGhlbWVXUEU6Omhhc0J1dHRv
bnMoU2Nyb2xsYmFyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0cnVl
OworfQorCitib29sIFNjcm9sbGJhclRoZW1lV1BFOjpoYXNUaHVtYihTY3JvbGxiYXImKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0ludFJlY3QgU2Ny
b2xsYmFyVGhlbWVXUEU6OmJhY2tCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQs
IGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVjdCgpOwor
fQorCitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjpmb3J3YXJkQnV0dG9uUmVjdChTY3JvbGxi
YXImLCBTY3JvbGxiYXJQYXJ0LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIEludFJlY3QoKTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6dHJhY2tS
ZWN0KFNjcm9sbGJhciYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gSW50UmVjdCgpOworfQorCitTY3JvbGxiYXJUaGVtZSYgU2Nyb2xsYmFyVGhlbWU6Om5hdGl2
ZVRoZW1lKCkKK3sKKyAgICBzdGF0aWMgU2Nyb2xsYmFyVGhlbWVXUEUgdGhlbWU7CisgICAgcmV0
dXJuIHRoZW1lOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi40ZDhiMDMxNjg2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5oCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBTY3JvbGxiYXJUaGVtZVdQRV9oCisjZGVmaW5lIFNjcm9sbGJhclRoZW1lV1BFX2gKKwor
I2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU2Nyb2xsYmFyVGhlbWVXUEUgZmluYWwgOiBwdWJsaWMgU2Nyb2xsYmFyVGhl
bWVDb21wb3NpdGUgeworcHVibGljOgorICAgIFNjcm9sbGJhclRoZW1lV1BFKCkgPSBkZWZhdWx0
OworICAgIHZpcnR1YWwgflNjcm9sbGJhclRoZW1lV1BFKCkgPSBkZWZhdWx0OworCisgICAgdmly
dHVhbCBib29sIGhhc0J1dHRvbnMoU2Nyb2xsYmFyJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGhhc1RodW1iKFNjcm9sbGJhciYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBJbnRSZWN0
IGJhY2tCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcg
PSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnRSZWN0IGZvcndhcmRCdXR0b25SZWN0
KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBJbnRSZWN0IHRyYWNrUmVjdChTY3JvbGxiYXImLCBib29sIHBhaW50
aW5nID0gZmFsc2UpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gU2Nyb2xsYmFyVGhlbWVXUEVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9T
b3VuZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5MTQ3
N2E0NTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Nv
dW5kV1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTb3Vu
ZC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit2b2lkIHN5c3RlbUJlZXAoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dwZS9UaGVtZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNWFkOTc3M2Q4NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5j
cHAKQEAgLTAsMCArMSwxNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRoZW1lV1BFLmgi
CisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0Um91bmRlZFJlY3QuaCIKKyNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUaGVtZSogcGxhdGZvcm1UaGVtZSgpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRoZW1lV1BFPiB0aGVtZTsKKyAgICByZXR1cm4gJnRo
ZW1lLmdldCgpOworfQorCitMZW5ndGhTaXplIFRoZW1lV1BFOjpjb250cm9sU2l6ZShDb250cm9s
UGFydCBwYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIGNvbnN0IExlbmd0aFNp
emUmIHpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpIGNvbnN0Cit7CisgICAgaWYgKCF6b29t
ZWRTaXplLndpZHRoLmlzSW50cmluc2ljT3JBdXRvKCkgJiYgIXpvb21lZFNpemUuaGVpZ2h0Lmlz
SW50cmluc2ljT3JBdXRvKCkpCisgICAgICAgIHJldHVybiBUaGVtZTo6Y29udHJvbFNpemUocGFy
dCwgZm9udENhc2NhZGUsIHpvb21lZFNpemUsIHpvb21GYWN0b3IpOworCisgICAgc3dpdGNoIChw
YXJ0KSB7CisgICAgY2FzZSBDaGVja2JveFBhcnQ6CisgICAgY2FzZSBSYWRpb1BhcnQ6CisgICAg
ICAgIHJldHVybiBMZW5ndGhTaXplIHsgTGVuZ3RoKDEyLCBGaXhlZCksIExlbmd0aCgxMiwgRml4
ZWQpIH07CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJu
IFRoZW1lOjpjb250cm9sU2l6ZShwYXJ0LCBmb250Q2FzY2FkZSwgem9vbWVkU2l6ZSwgem9vbUZh
Y3Rvcik7Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50KENvbnRyb2xQYXJ0IHBhcnQsIENvbnRy
b2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxv
YXQpCit7CisgICAgc3dpdGNoIChwYXJ0KSB7CisgICAgY2FzZSBDaGVja2JveFBhcnQ6CisgICAg
ICAgIHBhaW50Q2hlY2tib3goc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9y
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSYWRpb1BhcnQ6CisgICAgICAgIHBhaW50UmFk
aW8oc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBQdXNoQnV0dG9uUGFydDoKKyAgICAgICAgcGFpbnRCdXR0b24oc3RhdGVz
LCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yKTsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWlu
dENoZWNrYm94KENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3Ju
ZXIoMiwgMik7CisgICAgRmxvYXRSb3VuZGVkUmVjdCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBj
b3JuZXIsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIpOworICAgIFBhdGggcGF0aDsKKyAgICBwYXRo
LmFkZFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0KTsKKworICAgIGNvbnRleHQuc2V0RmlsbENvbG9y
KG1ha2VSR0IoMjI0LCAyMjQsIDIyNCkpOworICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7CisK
KyAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcygxKTsKKyAgICBjb250ZXh0LnNldFN0cm9r
ZUNvbG9yKG1ha2VSR0IoOTQsIDk0LCA5NCkpOworICAgIGNvbnRleHQuc3Ryb2tlUGF0aChwYXRo
KTsKKworICAgIGlmIChzdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9sU3RhdGVzOjpDaGVja2VkU3Rh
dGUpIHsKKyAgICAgICAgYXV0byYgcmVjdCA9IHJvdW5kZWRSZWN0LnJlY3QoKTsKKworICAgICAg
ICBQYXRoIGNoZWNrZXJQYXRoOworICAgICAgICBjaGVja2VyUGF0aC5tb3ZlVG8oRmxvYXRQb2lu
dChyZWN0LngoKSArIDMsIHJlY3QubWF4WSgpIC0gMykpOworICAgICAgICBjaGVja2VyUGF0aC5h
ZGRMaW5lVG8oRmxvYXRQb2ludChyZWN0Lm1heFgoKSAtIDMsIHJlY3QueSgpICsgMykpOworCisg
ICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDIpOworICAgICAgICBjb250ZXh0LnNl
dFN0cm9rZUNvbG9yKG1ha2VSR0IoODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LnN0cm9r
ZVBhdGgoY2hlY2tlclBhdGgpOworICAgIH0KK30KKwordm9pZCBUaGVtZVdQRTo6cGFpbnRSYWRp
byhDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBQYXRoIHBhdGg7CisgICAgcGF0aC5h
ZGRFbGxpcHNlKHpvb21lZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJH
QigyMjQsIDIyNCwgMjI0KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNv
bnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3Io
bWFrZVJHQig5NCwgOTQsIDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworCisg
ICAgaWYgKHN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0ZSkgewor
ICAgICAgICBGbG9hdFJlY3QgY2hlY2tlclJlY3QgPSB6b29tZWRSZWN0OworICAgICAgICBjaGVj
a2VyUmVjdC5pbmZsYXRlKC0zKTsKKworICAgICAgICBQYXRoIGNoZWNrZXJQYXRoOworICAgICAg
ICBjaGVja2VyUGF0aC5hZGRFbGxpcHNlKGNoZWNrZXJSZWN0KTsKKworICAgICAgICBjb250ZXh0
LnNldEZpbGxDb2xvcihtYWtlUkdCKDg0LCA4NCwgODQpKTsKKyAgICAgICAgY29udGV4dC5maWxs
UGF0aChjaGVja2VyUGF0aCk7CisgICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludEJ1dHRv
bihDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBGbG9hdFNpemUgY29ybmVyKDIsIDIp
OworICAgIEZsb2F0Um91bmRlZFJlY3Qgcm91bmRlZFJlY3Qoem9vbWVkUmVjdCwgY29ybmVyLCBj
b3JuZXIsIGNvcm5lciwgY29ybmVyKTsKKyAgICBQYXRoIHBhdGg7CisgICAgcGF0aC5hZGRSb3Vu
ZGVkUmVjdChyb3VuZGVkUmVjdCk7CisKKyAgICBDb2xvciBmaWxsQ29sb3IgPSBzdGF0ZXMuc3Rh
dGVzKCkgJiBDb250cm9sU3RhdGVzOjpQcmVzc2VkU3RhdGUgPyBtYWtlUkdCKDI0NCwgMjQ0LCAy
NDQpIDogbWFrZVJHQigyMjQsIDIyNCwgMjI0KTsKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihm
aWxsQ29sb3IpOworICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7CisKKyAgICBjb250ZXh0LnNl
dFN0cm9rZVRoaWNrbmVzcygxKTsKKyAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKG1ha2VSR0Io
OTQsIDk0LCA5NCkpOworICAgIGNvbnRleHQuc3Ryb2tlUGF0aChwYXRoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1RoZW1lV1BFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGYwODFiM2E3YWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgVGhlbWVXUEVfaAorI2RlZmluZSBUaGVtZVdQRV9oCisKKyNpbmNsdWRlICJU
aGVtZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRoZW1lV1BFIDogcHVibGlj
IFRoZW1lIHsKK3B1YmxpYzoKKyAgICBUaGVtZVdQRSgpIHsgfQorICAgIHZpcnR1YWwgflRoZW1l
V1BFKCkgeyB9CisKKyAgICB2aXJ0dWFsIExlbmd0aFNpemUgY29udHJvbFNpemUoQ29udHJvbFBh
cnQsIGNvbnN0IEZvbnRDYXNjYWRlJiwgY29uc3QgTGVuZ3RoU2l6ZSYsIGZsb2F0KSBjb25zdCBv
dmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0
YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0LCBTY3JvbGxW
aWV3KiwgZmxvYXQsIGZsb2F0KSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHBhaW50
Q2hlY2tib3goQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYsIGZsb2F0KTsKKyAgICB2b2lkIHBhaW50UmFkaW8oQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KTsKKyAgICB2b2lkIHBhaW50QnV0dG9u
KENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9h
dCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUaGVtZVdQRV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MmRmMGNjNmIzNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwCkBAIC0wLDAgKzEsODUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldpZGdldC5oIgorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXaWRnZXQ6OldpZGdldChQbGF0
Zm9ybVdpZGdldCB3aWRnZXQpCit7CisgICAgaW5pdCh3aWRnZXQpOworfQorCitXaWRnZXQ6On5X
aWRnZXQoKQoreworICAgIEFTU0VSVCghcGFyZW50KCkpOworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKK3sK
KyAgICBtX2ZyYW1lID0gcmVjdDsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitJbnRSZWN0
IFdpZGdldDo6ZnJhbWVSZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZTsKK30KKwor
dm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGb2N1cyhib29sKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29u
c3QgQ3Vyc29yJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6
c2hvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OmhpZGUo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRJc1NlbGVj
dGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1Nv
Y2tldE1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tl
dE1vbml0b3IuY3BwCmluZGV4IDE0MzI5YjkzODkxLi44ZDEwMWNmNGYxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcApAQCAt
NTEsNiArNTEsOSBAQCB2b2lkIEdTb2NrZXRNb25pdG9yOjpzdGFydChHU29ja2V0KiBzb2NrZXQs
IEdJT0NvbmRpdGlvbiBjb25kaXRpb24sIFJ1bkxvb3AmIHJ1bgogICAgIGdfc291cmNlX3NldF9u
YW1lKG1fc291cmNlLmdldCgpLCAiW1dlYktpdF0gU29ja2V0IG1vbml0b3IiKTsKICAgICBtX2Nh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiAgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1f
c291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihzb2NrZXRTb3VyY2VD
YWxsYmFjayksIHRoaXMsIG51bGxwdHIpOworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBnX3NvdXJj
ZV9zZXRfcHJpb3JpdHkobV9zb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfSElHSCArIDMwKTsKKyNl
bmRpZgogICAgIGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5nZXQoKSwgcnVuTG9vcC5tYWluQ29u
dGV4dCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21h
a2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uODg0ZjBlNGVlODUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDQ3MCBAQAorZmlsZShNQUtF
X0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0pCisKK2NvbmZpZ3VyZV9m
aWxlKHdwZS93cGUtd2Via2l0LnBjLmluICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5w
YyBAT05MWSkKKworYWRkX2RlZmluaXRpb25zKC1EV0VCS0lUMl9DT01QSUxBVElPTikKKworYWRk
X2RlZmluaXRpb25zKC1ETElCRVhFQ0RJUj0iJHtMSUJFWEVDX0lOU1RBTExfRElSfSIpCisKK3Nl
dChXZWJLaXQyX1VTRV9QUkVGSVhfSEVBREVSIE9OKQorCithZGRfY3VzdG9tX3RhcmdldCh3ZWJr
aXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9
ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIC0t
aW5jbHVkZS1wYXRoICR7V0VCS0lUMl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJT
X0RJUn0gLS1wbGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3VwCispCisKK3NldChXRUJLSVQyX0VY
VFJBX0RFUEVOREVOQ0lFUworICAgIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCispCisK
K2xpc3QoQVBQRU5EIFdlYlByb2Nlc3NfU09VUkNFUworICAgIFdlYlByb2Nlc3MvRW50cnlQb2lu
dC91bml4L1dlYlByb2Nlc3NNYWluLmNwcAorKQorCitsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vz
c19TT1VSQ0VTCisgICAgTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC91bml4L05ldHdvcmtQcm9j
ZXNzTWFpbi5jcHAKKykKKworbGlzdChBUFBFTkQgRGF0YWJhc2VQcm9jZXNzX1NPVVJDRVMKKyAg
ICBEYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0RhdGFiYXNlUHJvY2Vzc01haW4uY3Bw
CispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUworICAgIE5ldHdvcmtQcm9jZXNzL0N1
c3RvbVByb3RvY29scy9zb3VwL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCisK
KyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2RlcnNTb3VwLmNwcAorICAg
IE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFTb3VwLmNwcAorICAgIE5ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwCisKKyAgICBOZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Nlc3Npb25Tb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHRTb3VwLmNwcAorCisgICAgUGxhdGZvcm0vY2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzQ2xhc3NpZmllci5jcHAKKworICAgIFBsYXRmb3JtL2dsaWIvTW9kdWxlR2xpYi5j
cHAKKworICAgIFBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAorCisgICAgUGxh
dGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCisgICAgUGxhdGZvcm0vSVBDL3VuaXgv
Q29ubmVjdGlvblVuaXguY3BwCisKKyAgICBQbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAor
ICAgIFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKworICAgIFBsdWdpblByb2Nl
c3MvdW5peC9QbHVnaW5Db250cm9sbGVyUHJveHlVbml4LmNwcAorICAgIFBsdWdpblByb2Nlc3Mv
dW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3BwCisgICAgUGx1Z2luUHJvY2Vzcy91bml4L1Bs
dWdpblByb2Nlc3NVbml4LmNwcAorCisgICAgU2hhcmVkL0FQSS9jL2NhaXJvL1dLSW1hZ2VDYWly
by5jcHAKKworICAgIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9zb3VwL0F1dGhlbnRpY2F0aW9uTWFu
YWdlclNvdXAuY3BwCisKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEJhY2tpbmdTdG9yZS5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzU2NlbmUuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvU2lt
cGxlVmlld3BvcnRDb250cm9sbGVyLmNwcAorCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKKyAgICBTaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9y
LmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZS5j
cHAKKworICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVs
ZVgxMS5jcHAKKworICAgIFNoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKKwor
ICAgIFNoYXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCisKKyAgICBTaGFyZWQvbGludXgvV2Vi
TWVtb3J5U2FtcGxlckxpbnV4LmNwcAorCisgICAgU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzU291cC5jcHAKKyAgICBTaGFyZWQvc291cC9XZWJFcnJvcnNTb3VwLmNwcAorCisgICAg
U2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKKworICAgIFNoYXJlZC93cGUvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZl
bnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcAorICAg
IFNoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL1By
b2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9y
eS5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5h
Z2VyLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL2NhaXJvL1dLSWNvbkRhdGFiYXNlQ2Fpcm8u
Y3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nvb2tpZU1hbmFnZXJTb3VwLmNwcAor
CisgICAgVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJ
L3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9E
cmF3aW5nQXJlYVByb3h5V1BFLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNw
cAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93
cGUvV1BFVmlld0NsaWVudC5jcHAKKworICAgIFVJUHJvY2Vzcy9CYWNraW5nU3RvcmUuY3BwCisg
ICAgVUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5jcHAKKyAgICBVSVByb2Nlc3MvTGVn
YWN5U2Vzc2lvblN0YXRlQ29kaW5nTm9uZS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01hbmFnZXIuY3BwCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKKworICAgIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dl
Ykluc3BlY3RvclNlcnZlcldQRS5jcHAKKworICAgIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
c291cC9XZWJTb2NrZXRTZXJ2ZXJTb3VwLmNwcAorCisgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3dw
ZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCisKKyAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1Bs
dWdpbkluZm9TdG9yZVVuaXguY3BwCisgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5Q
cm9jZXNzUHJveHlVbml4LmNwcAorCisgICAgVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuY3BwCisKKyAgICBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvdW5peC9XZWJzaXRlRGF0YVN0b3Jl
VW5peC5jcHAKKworICAgIFVJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAKKwor
ICAgIFVJUHJvY2Vzcy9nc3RyZWFtZXIvSW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNz
aW9uUmVxdWVzdC5jcHAKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQcm94eUdTdHJl
YW1lci5jcHAKKworICAgIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3Bw
CisKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcAorICAg
IFVJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy93
cGUvVGV4dENoZWNrZXJXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94
eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKKyAgICBVSVBy
b2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dl
YlByZWZlcmVuY2VzV1BFLmNwcAorICAgIFVJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUu
Y3BwCisKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5j
cHAKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJLaXRTb3VwQ29va2llSmFyU3FsaXRl
LmNwcAorCisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9nbGliL0luamVjdGVkQnVuZGxl
R2xpYi5jcHAKKworICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VN
YW5hZ2VyLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dw
ZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Fj
Y2VsZXJhdGVkU3VyZmFjZS5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0FyZWFBbGxvY2F0b3IuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKKyAgICBXZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3Bw
CisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0
cmVhbWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdp
bmdBcmVhV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlX
UEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAorCisgICAg
V2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCisgICAgV2Vi
UHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAorCisgICAgV2ViUHJvY2Vzcy93cGUvV2Vi
UHJvY2Vzc01haW5XUEUuY3BwCisKKyAgICAjIEZJWE1FLUdXU0hBUkU6CisgICAgRGF0YWJhc2VQ
cm9jZXNzL2d0ay9EYXRhYmFzZVByb2Nlc3NNYWluR3RrLmNwcAorKQorCitsaXN0KEFQUEVORCBX
ZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCisgICAgVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRp
bmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9ERVJJ
VkVEX1NPVVJDRVMKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJl
c291cmNlc0dSZXNvdXJjZUJ1bmRsZS5jCispCisKK3NldChXZWJLaXQyUmVzb3VyY2VzCispCisK
K2lmIChFTkFCTEVfV0VCX0FVRElPKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdDJSZXNvdXJjZXMK
KyAgICAgICAgIiAgICAgICAgPGZpbGUgYWxpYXM9XCJhdWRpby9Db21wb3NpdGVcIj5Db21wb3Np
dGUud2F2PC9maWxlPlxuIgorICAgICkKK2VuZGlmICgpCisKK2ZpbGUoV1JJVEUgJHtERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1s
CisgICAgIjw/eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVURi04Pz5cbiIKKyAgICAiPGdyZXNv
dXJjZXM+XG4iCisgICAgIiAgICA8Z3Jlc291cmNlIHByZWZpeD1cIi9vcmcvd2Via2l0d3BlL3Jl
c291cmNlc1wiPlxuIgorICAgICR7V2ViS2l0MlJlc291cmNlc30KKyAgICAiICAgIDwvZ3Jlc291
cmNlPlxuIgorICAgICI8L2dyZXNvdXJjZXM+XG4iCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgK
KyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJj
ZXNHUmVzb3VyY2VCdW5kbGUuYworICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lU
Ml9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBn
bGliLWNvbXBpbGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VS
Q0VfRElSfS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VS
Q0VfRElSfS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMgLS10YXJnZXQ9
JHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VC
dW5kbGUuYyAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dS
ZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBWRVJCQVRJTQorKQorCitsaXN0KEFQUEVORCBXZWJLaXQy
X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSIKKyAg
ICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2Zy
ZWV0eXBlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIK
KyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9OZXR3
b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQ
cm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL3VuaXgiCisg
ICAgIiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL0lQQy9nbGliIgorICAgICIke1dFQktJVDJfRElS
fS9QbGF0Zm9ybS9JUEMvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vY2xhc3Np
ZmllciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL3dwZSIKKyAgICAiJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvciIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vU2hhcmVkL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC91bml4
IgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvd3BlIgorICAgICIke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvY2Fpcm8iCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvd3BlIgorICAgICIk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQ
cm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9saW51eCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL3NvdXAiCisg
ICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlIgorICAgICIke1dURl9ESVJ9L3d0Zi9ndGsvIgorICAgICIke1dURl9ESVJ9L3d0Zi9nb2Jq
ZWN0IgorICAgICIke1dURl9ESVJ9IgorICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7
RUdMX0lOQ0xVREVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtH
TElCX0lOQ0xVREVfRElSU30KKyAgICAke0dTVFJFQU1FUl9JTkNMVURFX0RJUlN9CisgICAgJHtI
QVJGQlVaWl9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKyAgICAk
e1dQRV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfTElCUkFSSUVTCisg
ICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRTJfTElCUkFSSUVTfQorICAgICR7
R0xJQl9MSUJSQVJJRVN9CisgICAgJHtHU1RSRUFNRVJfTElCUkFSSUVTfQorICAgICR7SEFSRkJV
WlpfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9CisgICAgJHtXUEVfTElCUkFS
SUVTfQorKQorCitzZXQoSW5zcGVjdG9yRmlsZXMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlLyouaHRtbAorICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy8qLmNzcworICAg
ICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvRGVidWcvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnLyouanMKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVy
bmFsL0NvZGVNaXJyb3IvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvKi5qcworICAgICR7
Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRXh0
ZXJuYWwvRVNMaW50LyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VzcHJpbWEvKi5qcworICAgICR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL2d0
ay8qLnBuZworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL2d0ay8qLnN2ZworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzLyouanMKKyAgICAke0NNQUtF
X1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29s
LyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Byb3hpZXMvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy8qLmNzcworICAg
ICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvKi5qcworICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25h
cHNob3QvKi5qcworKQorCitmaWxlKEdMT0IgSW5zcGVjdG9yRmlsZXNEZXBlbmRlbmNpZXMKKyAg
ICAke0luc3BlY3RvckZpbGVzfQorKQorCisjIERlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMgaXMKKyMgZXhwZWN0ZWQgaW4g
RGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC8uCith
ZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BF
Q1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFu
ZHMuanMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0v
aW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgIENPTU1BTkQgY3AgJHtE
RVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZENvbW1hbmRzLmpzICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKykKKworYWRk
X2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNU
T1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBERVBFTkRTICR7SW5z
cGVjdG9yRmlsZXNEZXBlbmRlbmNpZXN9CisgICAgICAgICAgICAke0RFUklWRURfU09VUkNFU19X
RUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2Vu
ZENvbW1hbmRzLmpzCisgICAgICAgICAgICAke1RPT0xTX0RJUn0vd3BlL2dlbmVyYXRlLWluc3Bl
Y3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkKKyAgICBDT01NQU5EICR7VE9PTFNfRElSfS93cGUv
Z2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSAtLW91dHB1dD0ke0RFUklW
RURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54
bWwgJHtJbnNwZWN0b3JGaWxlc30gJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElS
fS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAg
IFZFUkJBVElNCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVE
X1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYwor
ICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0
b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBnbGliLWNvbXBpbGUtcmVzb3VyY2Vz
IC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkgLS1zb3VyY2VkaXI9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElS
fSAtLXRhcmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3Rv
ckdSZXNvdXJjZUJ1bmRsZS5jICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0v
SW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElNCispCisKK2FkZF9jdXN0
b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlf
RElSfS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBFTkRTICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUueG1sCisgICAgICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvSW5zcGVjdG9yU2Vy
dmVyL2Zyb250LWVuZC9pbnNwZWN0b3JQYWdlSW5kZXguaHRtbAorICAgIENPTU1BTkQgZ2xpYi1j
b21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvZnJvbnQtZW5kIC0tdGFyZ2V0PSR7REVSSVZFRF9TT1VS
Q0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5j
ICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3Vy
Y2VCdW5kbGUueG1sCisgICAgVkVSQkFUSU0KKykKKworbGlzdChBUFBFTkQgV1BFV2ViSW5zcGVj
dG9yUmVzb3VyY2VzX0RFUklWRURfU09VUkNFUworICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQklO
U1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAgICAke0RFUklWRURf
U09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUuYworKQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfTElCUkFSSUVT
CisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdQRVdlYkluc3Bl
Y3RvclJlc291cmNlc19JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgJHtHTElCX0lOQ0xVREVfRElS
U30KKykKKworYWRkX2xpYnJhcnkoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIFNIQVJFRCAke1dQ
RVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVN9KQorYWRkX2RlcGVuZGVuY2ll
cyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgV2ViS2l0MikKK3RhcmdldF9saW5rX2xpYnJhcmll
cyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfTElC
UkFSSUVTfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKFdQRVdlYkluc3BlY3RvclJlc291
cmNlcyBQVUJMSUMgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfSU5DTFVERV9ESVJFQ1RPUklF
U30pCitpbnN0YWxsKFRBUkdFVFMgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIERFU1RJTkFUSU9O
ICIke0xJQl9JTlNUQUxMX0RJUn0iKQorCitzZXQoV1BFX0lOU1RBTExFRF9XRUJLSVRfSEVBREVS
UworICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0FycmF5LmgKKyAgICAke1dFQktJ
VDJfRElSfS9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQv
QVBJL2MvV0tEYXRhLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tEZWNsYXJh
dGlvblNwZWNpZmllcnMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0RpYWdu
b3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9j
L1dLRGljdGlvbmFyeS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRXJyb3JS
ZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0V2ZW50LmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tGaW5kT3B0aW9ucy5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL0FQSS9jL1dLR2VvbWV0cnkuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9B
UEkvYy9XS0ltYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxl
QXJyYXkuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS011dGFibGVEaWN0aW9u
YXJ5LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tOdW1iZXIuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VMb2FkVHlwZXMuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1NlY3VyaXR5T3JpZ2luUmVmLmgKKyAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0FQSS9jL1dLVHlwZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJMLmgK
KyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVUkxSZXNwb25zZS5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oCisKKyAg
ICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oCisKKyAgICAke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmgKKyAg
ICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
QmFja0ZvcndhcmRMaXN0LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oCisgICAgJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZURPTVdpbmRvd0V4
dGVuc2lvbi5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVJbml0aWFsaXplLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oCisg
ICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZU5vZGVIYW5kbGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUJhbm5lci5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VDb250ZXh0TWVu
dUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VGdWxsU2NyZWVuQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUdyb3VwLmgKKyAgICAke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUxvYWRlckNsaWVudC5o
CisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2VPdmVybGF5LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VSZXNvdXJjZUxv
YWRDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdv
cmxkLmgKKworICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJk
TGlzdEl0ZW1SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tG
b3J3YXJkTGlzdFJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0RG93bmxvYWRDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRIaXN0b3J5Q2xpZW50LmgKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorICAgICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWxUeXBlcy5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9X
S0ZyYW1lSW5mb1JlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLRnJh
bWVQb2xpY3lMaXN0ZW5lci5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dL
SGl0VGVzdFJlc3VsdC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF0
aXZlRXZlbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRp
b25BY3Rpb25SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmln
YXRpb25EYXRhUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZp
Z2F0aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0
aW9uUmVzcG9uc2VSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0
aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29udGV4
dE1lbnVDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZUZpbmRDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZUZvcm1DbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VHcm91cC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlTG9hZGVyQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVBvbGljeUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpbkxvYWRQb2xpY3kuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLVXNlclNjcmlwdFJlZi5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tXaW5kb3dGZWF0dXJlc1JlZi5oCisKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oCisKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nvb2tpZU1hbmFnZXJTb3VwLmgKKykKKworaW5zdGFs
bChGSUxFUyAke1dQRV9JTlNUQUxMRURfV0VCS0lUX0hFQURFUlN9CisgICAgREVTVElOQVRJT04g
IiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJT059L1dQRS9X
ZWJLaXQiCisgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIKKykKKworc2V0KFdQRV9JTlNUQUxM
RURfSEVBREVSUworICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0LmgK
KykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfSEVBREVSU30KKyAgICBERVNUSU5B
VElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dwZS0ke1dQRV9BUElfVkVSU0lPTn0v
V1BFIgorICAgIENPTVBPTkVOVCAiRGV2ZWxvcG1lbnQiCispCisKK2luc3RhbGwoRklMRVMgJHtD
TUFLRV9CSU5BUllfRElSfS93cGUtd2Via2l0LnBjCisgICAgREVTVElOQVRJT04gIiR7Q01BS0Vf
SU5TVEFMTF9MSUJESVJ9L3BrZ2NvbmZpZyIKKyAgICBDT01QT05FTlQgIkRldmVsb3BtZW50Igor
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5n
LWhlYWRlcnMucGwgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmct
aGVhZGVycy5wbAppbmRleCBiNjFkYjc4Nzc0YS4uYTdkM2EwYjZiOTIgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsCkBA
IC0zNSw3ICszNSw3IEBAIHVzZSBGaWxlOjpTcGVjOjpGdW5jdGlvbnM7CiB1c2UgR2V0b3B0OjpM
b25nOwogCiBteSAkc3JjUm9vdCA9IHJlYWxwYXRoKEZpbGU6OlNwZWMtPmNhdGZpbGUoZGlybmFt
ZShhYnNfcGF0aCgkMCkpLCAiLi4vLi4iKSk7Ci1teSBAcGxhdGZvcm1QcmVmaXhlcyA9ICgiY2Ei
LCAiY2YiLCAiY29jb2EiLCAiQ29jb2EiLCAiQ29vcmRpbmF0ZWRHcmFwaGljcyIsICJjdXJsIiwg
ImVmbCIsICJndGsiLCAiaW9zIiwgIm1hYyIsICJzb3VwIiwgIndpbiIpOworbXkgQHBsYXRmb3Jt
UHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29hIiwgIkNvY29hIiwgIkNvb3JkaW5hdGVkR3Jh
cGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMiLCAic291cCIsICJ3aW4i
LCAid3BlIik7CiBteSBAZnJhbWV3b3JrcyA9ICgiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSIs
ICJXZWJLaXQiKTsKIG15IEBza2lwcGVkUHJlZml4ZXM7CiBteSBAZnJhbWV3b3JrSGVhZGVyczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCAyZThmYmZiYmU1Yy4uMzNhMDY5
ODhlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTM4LDYgKzM4LDEw
IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZU1hYy5oPgogI2VuZGlmCiAKKyNpZiBkZWZpbmVk
KEJVSUxESU5HX1dQRV9fKQorI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2VXUEUuaD4KKyNlbmRpZgor
CiAvKiBXZWJLaXQyIHNoYXJlZCB0eXBlcyAqLwogCiB0eXBlZGVmIHVpbnQzMl90IFdLVHlwZUlE
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI1ZWYwNjIyMDJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV0tCYXNlV1BFX2gKKyNkZWZpbmUgV0tCYXNlV1BFX2gKKworI2lmbmRlZiBX
S0Jhc2VfaAorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgXCJXS0Jhc2UuaFwiIGluc3RlYWQgb2Yg
dGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1ZpZXcqIFdLVmlld1JlZjsKKworI2VuZGlmIC8qIFdLQmFzZVdQRV9oICovCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uOWE4NDExN2Y0NWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV1BFX1dl
YktpdF9oCisjZGVmaW5lIFdQRV9XZWJLaXRfaAorCisjZGVmaW5lIEJVSUxESU5HX1dQRV9fCisK
KyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVHlwZS5oPgor
CisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy8KKyNpbmNsdWRlIDxXZWJLaXQv
V0tBcnJheS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tEYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLRGljdGlvbmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9y
UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNdXRhYmxlRGljdGlvbmFyeS5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS051bWJlci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1NlY3Vy
aXR5T3JpZ2luUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLU3RyaW5nLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLVHlwZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VSTC5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS1VSTFJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXNwb25zZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgorCisvLyBGcm9tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tC
dW5kbGVGcmFtZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVJbml0aWFsaXplLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlSW5zcGVjdG9yLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlTmF2aWdhdGlv
bkFjdGlvbi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZU5vZGVIYW5kbGUuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFn
ZUJhbm5lci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVu
dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxl
UGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUxvYWRlckNsaWVudC5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VPdmVybGF5Lmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdl
VUlDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVSYW5nZUhhbmRsZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS0J1bmRsZVNjcmlwdFdvcmxkLmg+CisKKy8vIEZyb20gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0
SXRlbVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdFJlZi5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NyZWRlbnRpYWwuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tDcmVkZW50aWFsVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFt
ZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1lSW5mb1JlZi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tIaXRUZXN0UmVz
dWx0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvbkFjdGlvblJlZi5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS05hdmlnYXRpb25EYXRhUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2
aWdhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05hdmlnYXRpb25SZXNwb25zZVJlZi5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZS5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLU2Vzc2lv
blN0YXRlUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUmVm
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlclNjcmlwdFJlZi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS1ZpZXcuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tXaW5kb3dGZWF0dXJlc1JlZi5oPgorCisjZW5kaWYgLy8gV1BFX1dl
YktpdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21w
b3NpdGluZ1J1bkxvb3AuY3BwCmluZGV4IDhhY2Y1MDY5MjEwLi4yMjQzODhlZWM2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXb3JrUXVl
dWVQb29sKCkKICAgICB7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQogICAgICAgICBtX3RocmVhZENvdW50TGltaXQgPSAxOwogI2Vsc2UKICAg
ICAgICAgbV90aHJlYWRDb3VudExpbWl0ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46
Om1heCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5oCmluZGV4IDgxNmQ0NjdiNTEwLi42NDVkN2I5MGQxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3Au
aApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVB
REVEKQogCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgog
I2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhy
ZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21w
b3NpdG9yLmNwcAppbmRleCA1NGQ5NjBiM2QwZS4uOTZkMjk2NmJkZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3Bw
CkBAIC00MywxMiArNDMsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1SZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBUaHJlYWRlZENvbXBvc2l0b3I6
OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9h
dCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFt
ZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykK
K1JlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKENsaWVu
dCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUs
IGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGRE
b0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZs
YWdzKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRocmVhZGVkQ29tcG9zaXRvcihjbGll
bnQsIHZpZXdwb3J0U2l6ZSwgc2NhbGVGYWN0b3IsIG5hdGl2ZVN1cmZhY2VIYW5kbGUsIGRvRnJh
bWVTeW5jLCBwYWludEZsYWdzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkZWRD
b21wb3NpdG9yKGNsaWVudCwgd2ViUGFnZSwgdmlld3BvcnRTaXplLCBzY2FsZUZhY3RvciwgbmF0
aXZlU3VyZmFjZUhhbmRsZSwgZG9GcmFtZVN5bmMsIHBhaW50RmxhZ3MpKTsKIH0KIAotVGhyZWFk
ZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBjbGllbnQsIGNvbnN0IElu
dFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1
cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVy
OjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCitUaHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29t
cG9zaXRvcihDbGllbnQmIGNsaWVudCwgV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgSW50U2l6ZSYg
dmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhh
bmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBhaW50
RmxhZ3MgcGFpbnRGbGFncykKICAgICA6IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fdmlld3Bv
cnRTaXplKHZpZXdwb3J0U2l6ZSkKICAgICAsIG1fc2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpCkBA
IC02NCwxMyArNjQsMjEgQEAgVGhyZWFkZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3Io
Q2xpZW50JiBjbGllbnQsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2kKICAgICBtX2NsaWVudFJl
bmRlcnNOZXh0RnJhbWUuc3RvcmUoZmFsc2UpOwogICAgIG1fY29vcmRpbmF0ZVVwZGF0ZUNvbXBs
ZXRpb25XaXRoQ2xpZW50LnN0b3JlKGZhbHNlKTsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBt
X2NvbXBvc2l0aW5nTWFuYWdlci5lc3RhYmxpc2hDb25uZWN0aW9uKHdlYlBhZ2UpOworI2VuZGlm
CisKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgbV9zY2VuZSA9IGFkb3B0UmVm
KG5ldyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUodGhpcykpOworI2lmIFBMQVRGT1JNKEdUSykK
ICAgICAgICAgaWYgKG1fbmF0aXZlU3VyZmFjZUhhbmRsZSkgewogICAgICAgICAgICAgY3JlYXRl
R0xDb250ZXh0KCk7CiAgICAgICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgbV9zY2VuZS0+c2V0QWN0aXZlKGZhbHNlKTsKKyNlbGlm
IFBMQVRGT1JNKFdQRSkKKyAgICAgICAgbV9zY2VuZS0+c2V0QWN0aXZlKHRydWUpOworI2VuZGlm
CiAgICAgfSk7CiB9CiAKQEAgLTgxLDYgKzg5LDggQEAgVGhyZWFkZWRDb21wb3NpdG9yOjp+VGhy
ZWFkZWRDb21wb3NpdG9yKCkKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVHTENvbnRl
eHQoKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworCisjaWYgUExBVEZPUk0oR1RL
KQogICAgIEFTU0VSVChtX25hdGl2ZVN1cmZhY2VIYW5kbGUpOwogCiAgICAgbV9jb250ZXh0ID0g
R0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2luZG93KHJlaW50ZXJwcmV0X2Nhc3Q8R0xOYXRp
dmVXaW5kb3dUeXBlPihtX25hdGl2ZVN1cmZhY2VIYW5kbGUpLCAmUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CkBAIC05MSw2ICsxMDEsMjIgQEAgdm9pZCBU
aHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdMQ29udGV4dCgpCiAgICAgICAgIGlmIChtX2NvbnRl
eHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQogICAgICAgICAgICAgbV9jb250ZXh0LT5zd2FwSW50
ZXJ2YWwoMCk7CiAgICAgfQorI2VuZGlmCisKKyNpZiBQTEFURk9STShXUEUpCisgICAgYXV0byYg
cGxhdGZvcm1EaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7CisgICAg
UkVMRUFTRV9BU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5V1BFPihwbGF0Zm9ybURpc3BsYXkpKTsK
KyAgICBtX3RhcmdldCA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdQRT4ocGxhdGZvcm1EaXNw
bGF5KS5jcmVhdGVFR0xUYXJnZXQoKnRoaXMsIG1fY29tcG9zaXRpbmdNYW5hZ2VyLnJlbGVhc2VD
b25uZWN0aW9uRmQoKSk7CisgICAgQVNTRVJUKG1fdGFyZ2V0KTsKKyAgICBtX3RhcmdldC0+aW5p
dGlhbGl6ZShtX3ZpZXdwb3J0U2l6ZSk7CisKKyAgICBtX2NvbnRleHQgPSBHTENvbnRleHQ6OmNy
ZWF0ZUNvbnRleHRGb3JXaW5kb3cobV90YXJnZXQtPm5hdGl2ZVdpbmRvdygpLCAmcGxhdGZvcm1E
aXNwbGF5KTsKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KCFtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQorICAgICAgICByZXR1cm47CisjZW5k
aWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmludmFsaWRhdGUoKQpAQCAtMTAwLDE2
ICsxMjYsMjMgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmludmFsaWRhdGUoKQogICAgIG1f
Y29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBtX3NjZW5lLT5wdXJnZUdMUmVzb3VyY2VzKCk7
CiAgICAgICAgIG1fY29udGV4dCA9IG51bGxwdHI7CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAg
ICBtX3RhcmdldCA9IG51bGxwdHI7CisjZW5kaWYKICAgICAgICAgbV9zY2VuZSA9IG51bGxwdHI7
CiAgICAgfSk7CiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRP
UikKICAgICBtX2Rpc3BsYXlSZWZyZXNoTW9uaXRvci0+aW52YWxpZGF0ZSgpOwogI2VuZGlmCiAg
ICAgbV9jb21wb3NpdGluZ1J1bkxvb3AgPSBudWxscHRyOworI2lmIFVTRShSRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisgICAgbV9kaXNwbGF5UmVmcmVzaE1vbml0b3It
PmludmFsaWRhdGUoKTsKKyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0
TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKIHsKKyNp
ZiBQTEFURk9STShHVEspCiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnN0b3BVcGRhdGVzKCk7
CiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBoYW5kbGVdIHsKICAgICAgICAgLy8gQSBuZXcgbmF0
aXZlIGhhbmRsZSBjYW4ndCBiZSBzZXQgd2l0aG91dCBkZXN0cm95aW5nIHRoZSBwcmV2aW91cyBv
bmUgZmlyc3QgaWYgYW55LgpAQCAtMTIzLDYgKzE1Niw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3Np
dG9yOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxl
KQogICAgICAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0pOwor
I2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXRTY2FsZUZhY3RvcihmbG9h
dCBzY2FsZSkKQEAgLTE0Niw2ICsxODAsMTAgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNl
dFZpZXdwb3J0U2l6ZShjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWwKIHsK
ICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHZpZXdwb3J0U2l6ZSwgc2NhbGVdIHsKICAgICAgICAg
bV92aWV3cG9ydFNpemUgPSB2aWV3cG9ydFNpemU7CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAg
ICBpZiAobV90YXJnZXQpCisgICAgICAgICAgICBtX3RhcmdldC0+cmVzaXplKHZpZXdwb3J0U2l6
ZSk7CisjZW5kaWYKICAgICAgICAgbV9zY2FsZUZhY3RvciA9IHNjYWxlOwogICAgICAgICBtX25l
ZWRzUmVzaXplID0gdHJ1ZTsKICAgICAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnNjaGVkdWxl
VXBkYXRlKCk7CkBAIC0xODksOSArMjI3LDE4IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpy
ZW5kZXJMYXllclRyZWUoKQogICAgIGlmICghbV9zY2VuZSB8fCAhbV9zY2VuZS0+aXNBY3RpdmUo
KSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIGlmICghbV9jb250
ZXh0KQorICAgICAgICBjcmVhdGVHTENvbnRleHQoKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX2Nv
bnRleHQgfHwgIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVy
bjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBtX3RhcmdldC0+ZnJhbWVXaWxsUmVuZGVyKCk7
CisjZW5kaWYKKwogICAgIGlmIChtX25lZWRzUmVzaXplKSB7CiAgICAgICAgIGdsVmlld3BvcnQo
MCwgMCwgbV92aWV3cG9ydFNpemUud2lkdGgoKSwgbV92aWV3cG9ydFNpemUuaGVpZ2h0KCkpOwog
ICAgICAgICBtX25lZWRzUmVzaXplID0gZmFsc2U7CkBAIC0yMTEsNyArMjU4LDEzIEBAIHZvaWQg
VGhyZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJMYXllclRyZWUoKQogCiAgICAgbV9jb250ZXh0LT5z
d2FwQnVmZmVycygpOwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1fdGFyZ2V0LT5mcmFtZVJl
bmRlcmVkKCk7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKICAgICBzY2VuZVVwZGF0ZUZp
bmlzaGVkKCk7CisjZW5kaWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNjZW5lVXBk
YXRlRmluaXNoZWQoKQpAQCAtMjcwLDUgKzMyMywzMiBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRv
cjo6Y29vcmRpbmF0ZVVwZGF0ZUNvbXBsZXRpb25XaXRoQ2xpZW50KCkKIH0KICNlbmRpZgogCisj
aWYgUExBVEZPUk0oV1BFKQorc3RhdGljIHZvaWQgZGVidWdUaHJlYWRlZENvbXBvc2l0b3JGUFMo
KQoreworICAgIHN0YXRpYyBkb3VibGUgbGFzdFRpbWUgPSBjdXJyZW50VGltZSgpOworICAgIHN0
YXRpYyB1bnNpZ25lZCBmcmFtZUNvdW50ID0gMDsKKworICAgIGRvdWJsZSBjdCA9IGN1cnJlbnRU
aW1lKCk7CisgICAgZnJhbWVDb3VudCsrOworCisgICAgaWYgKGN0IC0gbGFzdFRpbWUgPj0gNS4w
KSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVGhyZWFkZWRDb21wb3NpdG9yOiBmcmFtZSBj
YWxsYmFja3MgJS4yZiBGUFNcbiIsIGZyYW1lQ291bnQgLyAoY3QgLSBsYXN0VGltZSkpOworICAg
ICAgICBsYXN0VGltZSA9IGN0OworICAgICAgICBmcmFtZUNvdW50ID0gMDsKKyAgICB9Cit9CisK
K3ZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpmcmFtZUNvbXBsZXRlKCkKK3sKKyAgICBBU1NFUlQo
bV9jb21wb3NpdGluZ1J1bkxvb3AtPmlzQ3VycmVudCgpKTsKKyAgICBzdGF0aWMgYm9vbCByZXBv
cnRGUFMgPSAhIXN0ZDo6Z2V0ZW52KCJXUEVfVEhSRUFERURfQ09NUE9TSVRPUl9GUFMiKTsKKyAg
ICBpZiAocmVwb3J0RlBTKQorICAgICAgICBkZWJ1Z1RocmVhZGVkQ29tcG9zaXRvckZQUygpOwor
CisgICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOworfQorI2VuZGlmCisKIH0KICNlbmRpZiAvLyBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKaW5kZXggNjc5NTRhMDdh
NDYuLmViMTI0NTk3NTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCkBAIC00Miw2ICs0MiwxMSBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JN
KFdQRSkKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0
cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU7CiB9CkBAIC01MSw4ICs1NiwxMyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTsKIGNsYXNzIENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudDsKIGNsYXNzIFRocmVhZGVkRGlzcGxheVJlZnJl
c2hNb25pdG9yOworY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9yIDog
cHVibGljIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFRocmVhZGVkQ29tcG9zaXRvcj4geworY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9y
IDogcHVibGljIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFRocmVhZGVkQ29tcG9zaXRvcj4KKyNpZiBQTEFURk9STShXUEUpCisgICAg
LCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudAor
I2VuZGlmCisgICAgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVhZGVkQ29tcG9zaXRv
cik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC02NCw3ICs3NCw3
IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgU2hvdWxkRG9GcmFtZVN5bmMgeyBObywgWWVz
IH07CiAKLSAgICBzdGF0aWMgUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4gY3JlYXRlKENsaWVudCYs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0
aXZlU3VyZmFjZUhhbmRsZSA9IDAsIFNob3VsZERvRnJhbWVTeW5jID0gU2hvdWxkRG9GcmFtZVN5
bmM6OlllcywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyA9IDApOworICAgIHN0
YXRpYyBSZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBjcmVhdGUoQ2xpZW50JiwgV2ViUGFnZSYsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZl
U3VyZmFjZUhhbmRsZSA9IDAsIFNob3VsZERvRnJhbWVTeW5jID0gU2hvdWxkRG9GcmFtZVN5bmM6
OlllcywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyA9IDApOwogICAgIHZpcnR1
YWwgflRocmVhZGVkQ29tcG9zaXRvcigpOwogCiAgICAgdm9pZCBzZXROYXRpdmVTdXJmYWNlSGFu
ZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QpOwpAQCAtODcsMTMgKzk3LDE4IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiBwcml2YXRlOgotICAgIFRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1
cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQ
YWludEZsYWdzKTsKKyAgICBUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiwgV2ViUGFnZSYsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZl
U3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6
OlBhaW50RmxhZ3MpOwogCiAgICAgLy8gQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50CiAg
ICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZVZpZXdw
b3J0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5
ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgb2Zmc2V0KSBvdmVycmlkZTsKIAorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OlN1cmZhY2U6
OkNsaWVudAorICAgIHZvaWQgZnJhbWVDb21wbGV0ZSgpIG92ZXJyaWRlOworI2VuZGlmCisKICAg
ICB2b2lkIHJlbmRlckxheWVyVHJlZSgpOwogICAgIHZvaWQgc2NlbmVVcGRhdGVGaW5pc2hlZCgp
OwogCkBAIC0xMDEsNiArMTE2LDEyIEBAIHByaXZhdGU6CiAKICAgICBDbGllbnQmIG1fY2xpZW50
OwogICAgIFJlZlB0cjxDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU+IG1fc2NlbmU7CisKKyNpZiBQ
TEFURk9STShXUEUpCisgICAgQ29tcG9zaXRpbmdNYW5hZ2VyIG1fY29tcG9zaXRpbmdNYW5hZ2Vy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRh
cmdldD4gbV90YXJnZXQ7CisjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpH
TENvbnRleHQ+IG1fY29udGV4dDsKIAogICAgIFdlYkNvcmU6OkludFNpemUgbV92aWV3cG9ydFNp
emU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgKaW5kZXggN2ZjNGQ3YzRi
M2YuLmE0MzVlMTliYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2lu
Z0FyZWFJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5o
CkBAIC0zNCw2ICszNCw4IEBAIGVudW0gRHJhd2luZ0FyZWFUeXBlIHsKICAgICBEcmF3aW5nQXJl
YVR5cGVUaWxlZENvcmVBbmltYXRpb24sCiAjZW5kaWYKICAgICBEcmF3aW5nQXJlYVR5cGVSZW1v
dGVMYXllclRyZWUsCisjZWxpZiBQTEFURk9STShXUEUpCisgICAgRHJhd2luZ0FyZWFUeXBlV1BF
CiAjZWxzZQogICAgIERyYXdpbmdBcmVhVHlwZUltcGwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggY2IxZjExOGM4OTIuLjE0
ZmRkZTIyNGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50LmgKQEAgLTUxLDYgKzUxLDEwIEBAIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2
ZW50OwogT0JKQ19DTEFTUyBXZWJFdmVudDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQor
c3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCA6IHB1YmxpYyBXZWJLZXlib2Fy
ZEV2ZW50IHsKQEAgLTYyLDYgKzY2LDggQEAgcHVibGljOgogICAgIE5hdGl2ZVdlYktleWJvYXJk
RXZlbnQoR2RrRXZlbnQqLCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblJlc3VsdHMmLCBJbnB1
dE1ldGhvZEZpbHRlcjo6RXZlbnRGYWtlZEZvckNvbXBvc2l0aW9uLCBWZWN0b3I8U3RyaW5nPiYm
IGNvbW1hbmRzKTsKICNlbGlmIFBMQVRGT1JNKElPUykKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50KDo6V2ViRXZlbnQgKik7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50Kik7CiAjZW5kaWYKIAog
I2lmIFVTRShBUFBLSVQpCkBAIC03Miw2ICs3OCw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzRmFr
ZUV2ZW50Rm9yQ29tcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Zha2VFdmVudEZvckNvbXBv
c2l0aW9uOyB9CiAjZWxpZiBQTEFURk9STShJT1MpCiAgICAgOjpXZWJFdmVudCogbmF0aXZlRXZl
bnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CisjZWxpZiBQTEFURk9S
TShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZl
V2ViTW91c2VFdmVudC5oCmluZGV4IDg4Y2QxNDEwOTM4Li4yODNmYzMzNDk0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCkBAIC0zOCw2ICszOCwxMCBA
QCBPQkpDX0NMQVNTIE5TVmlldzsKIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50Owog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZl
bnQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYk1vdXNl
RXZlbnQgOiBwdWJsaWMgV2ViTW91c2VFdmVudCB7CkBAIC00Nyw2ICs1MSw4IEBAIHB1YmxpYzoK
ICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KGNvbnN0IE5hdGl2
ZVdlYk1vdXNlRXZlbnQmKTsKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KEdka0V2ZW50KiwgaW50
KTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICNlbmRp
ZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTU1LDYgKzYxLDggQEAgcHVibGljOgogICAgIGNvbnN0
IEdka0V2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0
KCk7IH0KICNlbGlmIFBMQVRGT1JNKElPUykKICAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjb25zdCB2b2lk
KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKaW5kZXgg
MTE4MTI0Y2RlYmMuLjgyZjNiMjRkNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRp
dmVXZWJUb3VjaEV2ZW50LmgKQEAgLTM0LDYgKzM0LDggQEAKIHN0cnVjdCBfVUlXZWJUb3VjaEV2
ZW50OwogI2VsaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0
ay5oPgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgPHdwZS9pbnB1dC5oPgogI2VuZGlm
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsNiArNDgsOSBAQCBwdWJsaWM6CiAgICAgTmF0
aXZlV2ViVG91Y2hFdmVudChHZGtFdmVudCosIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
JiYpOwogICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYp
OwogICAgIGNvbnN0IEdka0V2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0
aXZlRXZlbnQuZ2V0KCk7IH0KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJUb3Vj
aEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3Rvcik7CisgICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIG5hdGl2
ZUZhbGxiYWNrVG91Y2hQb2ludCgpIGNvbnN0IHsgcmV0dXJuICZtX2ZhbGxiYWNrVG91Y2hQb2lu
dDsgfQogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC01NSw2ICs2MCw4IEBAIHByaXZhdGU6CiAKICNp
ZiBQTEFURk9STShHVEspCiAgICAgR1VuaXF1ZVB0cjxHZGtFdmVudD4gbV9uYXRpdmVFdmVudDsK
KyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3Jh
dyBtX2ZhbGxiYWNrVG91Y2hQb2ludDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKaW5kZXggNWRiMGJjZThmZWIuLjE1Zjk1ODY3MTcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKQEAgLTM4
LDYgKzM4LDEwIEBAIE9CSkNfQ0xBU1MgTlNWaWV3OwogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQg
R2RrRXZlbnQ7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRf
YXhpc19ldmVudDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZl
V2ViV2hlZWxFdmVudCA6IHB1YmxpYyBXZWJXaGVlbEV2ZW50IHsKQEAgLTQ3LDYgKzUxLDggQEAg
cHVibGljOgogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoY29u
c3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpOwogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZl
bnQqKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KHN0cnVj
dCB3cGVfaW5wdXRfYXhpc19ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICNlbmRp
ZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTU1LDYgKzYxLDggQEAgcHVibGljOgogICAgIEdka0V2
ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0K
ICNlbGlmIFBMQVRGT1JNKElPUykKICAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRp
dmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCA1OGFhZWMzMWZlMy4uOWVmY2VmMjhlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC04MywxMSArODMsMTQgQEAKICNpZiBQTEFU
Rk9STShJT1MpCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFF1YWQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0luc3BlY3Rvck92ZXJsYXkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlbGVjdGlvblJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1No
YXJlZEJ1ZmZlci5oPgogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKIAorI2lmIFBMQVRGT1JNKElP
UykgfHwgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2FyZC5oPgorI2Vu
ZGlmCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaD4KICNlbmRpZgpAQCAtMTQ3NCw2ICsx
NDc3LDIzIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkSW1hZ2U+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgUGFzdGVib2FyZEltYWdlJiBwCiAKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oV1BFKQordm9pZCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQor
eworICAgIGVuY29kZXIgPDwgY29udGVudC50ZXh0OworICAgIGVuY29kZXIgPDwgY29udGVudC5t
YXJrdXA7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbnRlbnQudGV4dCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbnRlbnQubWFya3VwKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmIC8vIFBMQVRGT1JNKFdQ
RSkKKwogdm9pZCBBcmd1bWVudENvZGVyPERpY3RhdGlvbkFsdGVybmF0aXZlPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IERpY3RhdGlvbkFsdGVybmF0aXZlJiBkaWN0YXRpb25BbHRl
cm5hdGl2ZSkKIHsKICAgICBlbmNvZGVyIDw8IGRpY3RhdGlvbkFsdGVybmF0aXZlLnJhbmdlU3Rh
cnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5k
ZXggNGE2MzY5YmEyOWYuLjQ5OTdhNjRhZGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xMzEsNiArMTMxLDEyIEBAIHN0cnVjdCBTb3Vw
TmV0d29ya1Byb3h5U2V0dGluZ3M7CiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudHM7Cit9CisjZW5k
aWYKKwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjsKQEAgLTQwOCw2ICs0MTQsMTMgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5
U2V0dGluZ3M+IHsKIH07CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3RlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQ+IHsKKyAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRX
ZWJDb250ZW50Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpQ
YXN0ZWJvYXJkV2ViQ29udGVudCYpOworfTsKKyNlbmRpZgorCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB7CiAgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGlu
ZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Q29tcG9zaXRp
b25VbmRlcmxpbmUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCmluZGV4IDc1MDZmYWQ5ZDNhLi4wYjI4YzE1N2I1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC0z
NzYsNyArMzc2LDcgQEAKICAgICBtYWNybyhQaWN0b2dyYXBoRm9udEZhbWlseSwgcGljdG9ncmFw
aEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiQXBwbGUgQ29sb3IgRW1vamkiLCAiIiwgIiIp
IFwKICAgICBcCiAKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQogCiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9GT05UX0ZBTUlMWV9QUkVG
RVJFTkNFKG1hY3JvKSBcCiAgICAgbWFjcm8oU3RhbmRhcmRGb250RmFtaWx5LCBzdGFuZGFyZEZv
bnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiVGltZXMiLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NjgzYjgxMmYzYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5Lmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQor
ICAgIDogV2ViS2V5Ym9hcmRFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJk
RXZlbnQoZXZlbnQpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNGQ5ZDQzZGU1ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQ
RS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlV2Vi
TW91c2VFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitOYXRpdmVXZWJNb3VzZUV2ZW50OjpOYXRpdmVXZWJNb3VzZUV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKQorICAgIDogV2ViTW91c2VFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQoZXZlbnQsIGRldmljZVNjYWxlRmFjdG9yKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRv
dWNoRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3Vj
aEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzE0
MTUxNTVjZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIk5hdGl2ZVdlYlRvdWNoRXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFj
dG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0
aXZlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IpCisgICAgOiBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViVG91Y2hFdmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQorICAgICwg
bV9mYWxsYmFja1RvdWNoUG9pbnR7IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwsIDAs
IDAsIDAsIDAgfQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBldmVudC0+dG91Y2hw
b2ludHNfbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgcG9pbnQgPSBldmVudC0+dG91Y2hw
b2ludHNbaV07CisgICAgICAgIGlmIChwb2ludC50eXBlICE9IHdwZV9pbnB1dF90b3VjaF9ldmVu
dF90eXBlX251bGwpIHsKKyAgICAgICAgICAgIG1fZmFsbGJhY2tUb3VjaFBvaW50ID0gcG9pbnQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdl
YldoZWVsRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJX
aGVlbEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YmE5NjJlZDRkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3Bl
L05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50
RmFjdG9yeS5oIgorCisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
TmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYldo
ZWVsRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGV2ZW50LCBkZXZp
Y2VTY2FsZUZhY3RvcikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kODdhOTI3YWJiMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAo
YykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1P
VE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVk
ZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgU3RyaW5n
IGdldEV4ZWN1dGFibGVQYXRoKCkKK3sKKyAgICBDU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0
Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7CisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwo
KSkKKyAgICAgICAgcmV0dXJuIGRpcmVjdG9yeU5hbWUoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aC5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK3N0YXRpYyBTdHJpbmcgZmluZFdlYktpdFByb2Nlc3MoY29uc3QgY2hhciogcHJvY2Vz
c05hbWUpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4ZWNEaXJlY3RvcnkgPSBnX2dldGVu
digiV0VCS0lUX0VYRUNfUEFUSCIpOworICAgIGlmIChleGVjRGlyZWN0b3J5KSB7CisgICAgICAg
IFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9t
RmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWNEaXJlY3RvcnkpLCBwcm9jZXNzTmFtZSk7Cisg
ICAgICAgIGlmIChmaWxlRXhpc3RzKHByb2Nlc3NQYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBw
cm9jZXNzUGF0aDsKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0g
Z2V0RXhlY3V0YWJsZVBhdGgoKTsKKyAgICBpZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVsbCgpKSB7
CisgICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChl
eGVjdXRhYmxlUGF0aCwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4aXN0cyhwcm9j
ZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAgfQorCisgICAg
cmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKExJQkVYRUNESVIpLCBwcm9jZXNzTmFtZSk7Cit9CisKK1N0cmluZyBleGVjdXRh
YmxlUGF0aE9mV2ViUHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJX
UEVXZWJQcm9jZXNzIik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2Vz
cygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVQbHVnaW5Qcm9jZXNzIik7
Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQoreworICAgIHJl
dHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFTmV0d29ya1Byb2Nlc3MiKTsKK30KKworI2lmIEVO
QUJMRShEQVRBQkFTRV9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVBy
b2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFRGF0YWJhc2VQcm9j
ZXNzIik7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjc4ODdhOWY4YWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsMjE1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2luY2x1ZGUg
PHdwZS9pbnB1dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsYmFyLmg+CisjaW5jbHVkZSA8
Y3N0ZGxpYj4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitzdGF0aWMgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCBt
b2RpZmllcnMgPSAwOworICAgIHVuc2lnbmVkIGV2ZW50TW9kaWZpZXJzID0gZXZlbnQtPm1vZGlm
aWVyczsKKworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2Rp
Zmllcl9jb250cm9sKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRyb2xLZXk7
CisgICAgaWYgKGV2ZW50TW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX3No
aWZ0KQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OworICAgIGlmIChl
dmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9hbHQpCisgICAgICAg
IG1vZGlmaWVycyB8PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAm
IHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9tZXRhKQorICAgICAgICBtb2RpZmllcnMgfD0g
V2ViRXZlbnQ6Ok1ldGFLZXk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1v
ZGlmaWVycz4obW9kaWZpZXJzKTsKK30KKworc3RhdGljIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJT
dHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkK
K3sKKyAgICBjb25zdCBjaGFyKiBzaW5nbGVDaGFyYWN0ZXIgPSB3cGVfaW5wdXRfc2luZ2xlX2No
YXJhY3Rlcl9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24o
KSwgZXZlbnQpOworICAgIGlmIChzaW5nbGVDaGFyYWN0ZXIpCisgICAgICAgIHJldHVybiBTdHJp
bmcoc2luZ2xlQ2hhcmFjdGVyKTsKKworICAgIGdsb25nIGxlbmd0aDsKKyAgICBHVW5pcXVlUHRy
PGd1bmljaGFyMj4gdWNoYXIxNihnX3VjczRfdG9fdXRmMTYoJmV2ZW50LT51bmljb2RlLCAxLCAw
LCAmbGVuZ3RoLCBudWxscHRyKSk7CisgICAgaWYgKHVjaGFyMTYpCisgICAgICAgIHJldHVybiBT
dHJpbmcodWNoYXIxNi5nZXQoKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMg
U3RyaW5nIGlkZW50aWZpZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJv
YXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBpZGVudGlmaWVyID0gd3BlX2lu
cHV0X2lkZW50aWZpZXJfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2lu
Z2xldG9uKCksIGV2ZW50KTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFN0
cmluZyhpZGVudGlmaWVyKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiVSslMDRYIiwg
ZXZlbnQtPnVuaWNvZGUpOworfQorCitXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBl
dmVudCkKK3sKKyAgICBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nID0gc2luZ2xlQ2hhcmFj
dGVyU3RyaW5nRm9yS2V5RXZlbnQoZXZlbnQpOworICAgIFN0cmluZyBpZGVudGlmaWVyU3RyaW5n
ID0gaWRlbnRpZmllclN0cmluZ0ZvcktleUV2ZW50KGV2ZW50KTsKKworICAgIHJldHVybiBXZWJL
ZXlib2FyZEV2ZW50KGV2ZW50LT5wcmVzc2VkID8gV2ViRXZlbnQ6OktleURvd24gOiBXZWJFdmVu
dDo6S2V5VXAsCisgICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmluZywgc2luZ2xlQ2hhcmFjdGVy
U3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAorICAgICAgICB3cGVfaW5wdXRfd2luZG93c19rZXlf
Y29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwg
ZXZlbnQpLAorICAgICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwK
KyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVudC0+dGltZSk7Cit9CisKK1dl
Yk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQor
eworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOworICAgIHN3aXRj
aCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
bW90aW9uOgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAg
ICAgdHlwZSA9IGV2ZW50LT5zdGF0ZSA/IFdlYkV2ZW50OjpNb3VzZURvd24gOiBXZWJFdmVudDo6
TW91c2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAg
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b24gPSBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsK
KyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9l
dmVudF90eXBlX21vdGlvbjoKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
YnV0dG9uOgorICAgICAgICBpZiAoZXZlbnQtPmJ1dHRvbiA9PSAxKQorICAgICAgICAgICAgYnV0
dG9uID0gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQt
PmJ1dHRvbiA9PSAyKQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6UmlnaHRC
dXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMykKKyAgICAgICAgICAg
IGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHVuc2lnbmVkIGNsaWNrQ291bnQgPSAodHlw
ZSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSA/IDEgOiAwOworCisgICAgLy8gRklYTUU6IFByb3Bl
ciBidXR0b24gc3VwcG9ydC4gTW9kaWZpZXJzLiBkZWx0YVgvWS9aLiBDbGljayBjb3VudC4KKyAg
ICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBv
c2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYk1vdXNl
RXZlbnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIDAsIDAsIDAs
IGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+
dGltZSk7Cit9CisKK1dlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGFyZC1jb2RlIHRoaXMu
CisgICAgZW51bSBBeGlzIHsKKyAgICAgICAgVmVydGljYWwsCisgICAgICAgIEhvcml6b250YWws
CisgICAgICAgIFNtb290aAorICAgIH07CisKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxU
aWNrczsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgZGVsdGE7CisgICAgc3dpdGNoIChldmVudC0+
YXhpcykgeworICAgIGNhc2UgVmVydGljYWw6CisgICAgICAgIHdoZWVsVGlja3MgPSBXZWJDb3Jl
OjpGbG9hdFNpemUoMCwgZXZlbnQtPnZhbHVlIC8gc3RkOjphYnMoZXZlbnQtPnZhbHVlKSk7Cisg
ICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsKKyAgICAgICAgZGVsdGEuc2NhbGUoV2ViQ29yZTo6
U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBIb3Jpem9udGFsOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKGV2
ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSksIDApOworICAgICAgICBkZWx0YSA9
IHdoZWVsVGlja3M7CisgICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4
ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU21vb3RoOgorICAg
ICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1ZSAvIGRl
dmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH07CisKKyAgICBXZWJDb3Jl
OjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBvc2l0aW9uLnNj
YWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2Vi
RXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIGRlbHRhLCB3aGVlbFRp
Y2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8
V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKK30KKworc3RhdGljIFdlYktp
dDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBv
aW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9y
YXcqIHBvaW50KQoreworICAgIGlmIChwb2ludC0+aWQgIT0gbWFpbkV2ZW50SWQpCisgICAgICAg
IHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5Owor
CisgICAgc3dpdGNoIChwb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpUb3VjaFByZXNzZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9t
b3Rpb246CisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hNb3ZlZDsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAg
ICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIHJldHVybiBXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworfQorCitXZWJUb3Vj
aEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAg
V2ViRXZlbnQ6OlR5cGUgdHlwZSA9IFdlYkV2ZW50OjpOb1R5cGU7CisgICAgc3dpdGNoIChldmVu
dC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAg
ICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaFN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgdHlwZSA9IFdl
YkV2ZW50OjpUb3VjaE1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3Rv
dWNoX2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hFbmQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgVmVjdG9yPFdlYktp
dDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiB0b3VjaFBvaW50czsKKyAgICB0b3VjaFBvaW50cy5y
ZXNlcnZlQ2FwYWNpdHkoZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aCk7CisKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytpKSB7CisgICAg
ICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAgICBpZiAocG9p
bnQudHlwZSA9PSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnRDb29yZGluYXRlczsK
KyAgICAgICAgcG9pbnRDb29yZGluYXRlcy5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOwor
ICAgICAgICB0b3VjaFBvaW50cy51bmNoZWNrZWRBcHBlbmQoCisgICAgICAgICAgICBXZWJLaXQ6
OldlYlBsYXRmb3JtVG91Y2hQb2ludChwb2ludC5pZCwgc3RhdGVGb3JUb3VjaFBvaW50KGV2ZW50
LT5pZCwgJnBvaW50KSwKKyAgICAgICAgICAgICAgICBwb2ludENvb3JkaW5hdGVzLCBwb2ludENv
b3JkaW5hdGVzKSk7CisgICAgfQorCisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RG
TW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCksIGV2ZW50LT50aW1lKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9X
ZWJFdmVudEZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YmM2ZGM4NDlhMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3Bl
L1dlYkV2ZW50RmFjdG9yeS5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJFdmVudEZhY3RvcnlfaAor
I2RlZmluZSBXZWJFdmVudEZhY3RvcnlfaAorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKworc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50Oworc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVu
dDsKK3N0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfdG91
Y2hfZXZlbnQ7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJFdmVudEZhY3Rvcnkg
eworcHVibGljOgorICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJk
RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCopOworICAgIHN0YXRpYyBXZWJN
b3VzZUV2ZW50IGNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2
ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50
IGNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiwgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHN0YXRpYyBXZWJUb3VjaEV2ZW50IGNyZWF0ZVdlYlRv
dWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCosIGZsb2F0IGRldmljZVNjYWxl
RmFjdG9yKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRXZl
bnRGYWN0b3J5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApp
bmRleCA3OGEzODA0MTU5ZS4uN2JmYTAzN2RhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTU1Nyw0ICs1NTcsOCBAQCBpbmxpbmUgUHJveHlpbmdS
ZWZQdHI8V2ViR3JhbW1hckRldGFpbD4gdG9BUEkoY29uc3QgV2ViQ29yZTo6R3JhbW1hckRldGFp
bCYgZ3JhbQogI2luY2x1ZGUgIldLQVBJQ2FzdEd0ay5oIgogI2VuZGlmCiAKKyNpZiBkZWZpbmVk
KEJVSUxESU5HX1dQRV9fKQorI2luY2x1ZGUgIldLQVBJQ2FzdFdQRS5oIgorI2VuZGlmCisKICNl
bmRpZiAvLyBXS0FQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy93cGUvV0tBUElDYXN0V1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjBmOGExZTcxNzAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tBUElDYXN0
V1BFX2gKKyNkZWZpbmUgV0tBUElDYXN0V1BFX2gKKworI2lmbmRlZiBXS0FQSUNhc3RfaAorI2Vy
cm9yICJQbGVhc2UgI2luY2x1ZGUgXCJXS0FQSUNhc3QuaFwiIGluc3RlYWQgb2YgdGhpcyBmaWxl
IGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaW5jbHVkZSAiV0tWaWV3LmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9BY3Rpdml0eVN0YXRlLmg+CisKK25hbWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3Owor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld1JlZiwg
V0tXUEU6OlZpZXcpCisKK2lubGluZSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyB0b1Zp
ZXdTdGF0ZUZsYWdzKFdLVmlld1N0YXRlIHdrVmlld1N0YXRlKQoreworICAgIHVuc2lnbmVkIHZp
ZXdTdGF0ZUZsYWdzID0gMDsKKworICAgIGlmICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlz
SW5XaW5kb3cpCisgICAgICAgIHZpZXdTdGF0ZUZsYWdzIHw9IFdlYkNvcmU6OkFjdGl2aXR5U3Rh
dGU6OklzSW5XaW5kb3c7CisgICAgaWYgKHdrVmlld1N0YXRlICYga1dLVmlld1N0YXRlSXNWaXNp
YmxlKQorICAgICAgICB2aWV3U3RhdGVGbGFncyB8PSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJ
c1Zpc2libGU7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6QWN0aXZpdHlTdGF0
ZTo6RmxhZ3M+KHZpZXdTdGF0ZUZsYWdzKTsKK30KKworfQorCisjZW5kaWYgLy8gV0tBUElDYXN0
V1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2NiYjIzNzE1ZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5j
cHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tWaWV3LmgiCisK
KyNpbmNsdWRlICJBUElQYWdlQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJ
bXBsLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCit1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlKFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gdG9BUEkoV0tXUEU6
OlZpZXc6OmNyZWF0ZShudWxscHRyLCAqdG9JbXBsKGNvbmZpZ3VyYXRpb24pKSk7Cit9CisKK1dL
Vmlld1JlZiBXS1ZpZXdDcmVhdGVXaXRoVmlld0JhY2tlbmQoc3RydWN0IHdwZV92aWV3X2JhY2tl
bmQqIGJhY2tlbmQsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAg
ICByZXR1cm4gdG9BUEkoV0tXUEU6OlZpZXc6OmNyZWF0ZShiYWNrZW5kLCAqdG9JbXBsKGNvbmZp
Z3VyYXRpb24pKSk7Cit9CisKK1dLUGFnZVJlZiBXS1ZpZXdHZXRQYWdlKFdLVmlld1JlZiB2aWV3
KQoreworICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHZpZXcpLT5wYWdlKCkpOworfQorCit2b2lk
IFdLVmlld1NldFZpZXdTdGF0ZShXS1ZpZXdSZWYgdmlldywgV0tWaWV3U3RhdGUgdmlld1N0YXRl
KQoreworICAgIHRvSW1wbCh2aWV3KS0+c2V0Vmlld1N0YXRlKHRvVmlld1N0YXRlRmxhZ3Modmll
d1N0YXRlKSk7Cit9CisKK3ZvaWQgV0tWaWV3U2V0Vmlld0NsaWVudChXS1ZpZXdSZWYgdmlldywg
Y29uc3QgV0tWaWV3Q2xpZW50QmFzZSogY2xpZW50KQoreworICAgIHRvSW1wbCh2aWV3KS0+aW5p
dGlhbGl6ZUNsaWVudChjbGllbnQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy93cGUvV0tWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU1
OWVjMmI0NWI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL3dwZS9XS1ZpZXcuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tWaWV3X2gKKyNkZWZpbmUgV0tW
aWV3X2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tH
ZW9tZXRyeS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisK
K3N0cnVjdCB3cGVfdmlld19iYWNrZW5kOworCitXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0Ny
ZWF0ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmKTsKK1dLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3
Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiwgV0tQYWdlQ29u
ZmlndXJhdGlvblJlZik7CisKK1dLX0VYUE9SVCBXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1Zp
ZXdSZWYpOworCitlbnVtIHsKKyAgICBrV0tWaWV3U3RhdGVJc0luV2luZG93ID0gMSA8PCAwLAor
ICAgIGtXS1ZpZXdTdGF0ZUlzVmlzaWJsZSA9IDEgPDwgMSwKK307Cit0eXBlZGVmIHVpbnQzMl90
IFdLVmlld1N0YXRlOworCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3
UmVmLCBXS1ZpZXdTdGF0ZSk7CisKK3R5cGVkZWYgdm9pZCAoKldLVmlld0ZyYW1lRGlzcGxheWVk
KShXS1ZpZXdSZWYgdmlldywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3R5cGVkZWYgc3Ry
dWN0IFdLVmlld0NsaWVudEJhc2UgeworICAgIGludCB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQq
IGNsaWVudEluZm87Cit9IFdLVmlld0NsaWVudEJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdLVmll
d0NsaWVudFYwIHsKKyAgICBXS1ZpZXdDbGllbnRCYXNlIGJhc2U7CisKKyAgICAvLyB2ZXJzaW9u
IDAKKyAgICBXS1ZpZXdGcmFtZURpc3BsYXllZCBmcmFtZURpc3BsYXllZDsKK30gV0tWaWV3Q2xp
ZW50VjA7CisKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmLCBj
b25zdCBXS1ZpZXdDbGllbnRCYXNlKik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlm
CisKKyNlbmRpZiAvLyBXS1ZpZXdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNDA0ZWM1ZDliNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclBy
b3h5LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb21wb3Np
dGluZ01hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiQXR0YWNobWVudC5oIgorI2luY2x1ZGUg
IkNvbXBvc2l0aW5nTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXUEVWaWV3Lmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHku
aCIKKyNpbmNsdWRlIDx3cGUvdmlldy1iYWNrZW5kLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6
OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKK3sKK30KKworQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHk6On5Db21wb3NpdGluZ01hbmFnZXJQcm94eSgpID0gZGVmYXVsdDsKKwordm9pZCBD
b21wb3NpdGluZ01hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZSgpCit7CisgICAgbV92aWV3LnBhZ2Uo
KS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNv
bXBvc2l0aW5nTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fdmlldy5wYWdl
KCkucGFnZUlEKCksICp0aGlzKTsKK30KKwordm9pZCBDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6
ZXN0YWJsaXNoQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rpb25IYW5kbGUpCit7
CisgICAgY29ubmVjdGlvbkhhbmRsZSA9IElQQzo6QXR0YWNobWVudCh3cGVfdmlld19iYWNrZW5k
X2dldF9yZW5kZXJlcl9ob3N0X2ZkKG1fdmlldy5iYWNrZW5kKCkpKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uYjg5NjA5ZDNmYTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oCkBAIC0wLDAg
KzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBDb21wb3NpdGluZ01hbmFnZXJQcm94eV9oCisjZGVmaW5lIENvbXBvc2l0aW5n
TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEF0dGFjaG1lbnQ7
Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkgZmluYWwgOiBwdWJsaWMgSVBD
OjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbXBvc2l0aW5n
TWFuYWdlclByb3h5KTsKK3B1YmxpYzoKKyAgICBDb21wb3NpdGluZ01hbmFnZXJQcm94eShXS1dQ
RTo6VmlldyYpOworICAgIHZpcnR1YWwgfkNvbXBvc2l0aW5nTWFuYWdlclByb3h5KCk7CisKKyAg
ICB2b2lkIGluaXRpYWxpemUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpIG92ZXJyaWRlOworCisgICAgdm9pZCBl
c3RhYmxpc2hDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCYpOworCisgICAgV0tXUEU6OlZpZXcm
IG1fdmlldzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTlhMDA1NTc3NzYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3Np
dGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdo
dCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCittZXNzYWdlcyAtPiBDb21wb3NpdGluZ01hbmFnZXJQcm94eSB7CisgICAgRXN0
YWJsaXNoQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdB
cmVhUHJveHlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2lu
Z0FyZWFQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjVjNjBjNDZjNzkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eVdQRS5oIgorCisjaW5jbHVkZSAiRHJh
d2luZ0FyZWFNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK0RyYXdpbmdBcmVhUHJveHlXUEU6OkRyYXdpbmdBcmVh
UHJveHlXUEUoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3
aW5nQXJlYVR5cGVXUEUsIHBhZ2UpCit7Cit9CisKK0RyYXdpbmdBcmVhUHJveHlXUEU6On5EcmF3
aW5nQXJlYVByb3h5V1BFKCkKK3sKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkZXZp
Y2VTY2FsZUZhY3RvckRpZENoYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpzaXplRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAobV93
ZWJQYWdlUHJveHkuaXNWYWxpZCgpKQorICAgICAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OlVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKDAsIGZh
bHNlLCBtX3dlYlBhZ2VQcm94eS5kZXZpY2VTY2FsZUZhY3RvcigpLCBtX3NpemUsIG1fc2Nyb2xs
T2Zmc2V0KSwgbV93ZWJQYWdlUHJveHkucGFnZUlEKCkpOworfQorCit2b2lkIERyYXdpbmdBcmVh
UHJveHlXUEU6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoc3RkOjpmdW5jdGlvbjx2b2lk
IChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKK3sKKyAgICBpZiAoIW1f
d2ViUGFnZVByb3h5LmlzVmFsaWQoKSkgeworICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKENhbGxi
YWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFja0Z1bmN0aW9uXSB7
IGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSk7IH0pOworfQorCit2
b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OnVwZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBjb25zdCBVcGRhdGVJbmZvJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2
NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mLCBjb25zdCBMYXllclRy
ZWVDb250ZXh0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdpbmdB
cmVhUHJveHlXUEU6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFj
a2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4
dCkKK3sKKyAgICBBU1NFUlQoIWJhY2tpbmdTdG9yZVN0YXRlSUQpOworCisgICAgbV9sYXllclRy
ZWVDb250ZXh0ID0gbGF5ZXJUcmVlQ29udGV4dDsKKyAgICBtX3dlYlBhZ2VQcm94eS5lbnRlckFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQpOworfQorCit2b2lkIERy
YXdpbmdBcmVhUHJveHlXUEU6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRf
dCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OnVwZGF0ZUFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93
cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93
cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5iMDMwMjA4NTgzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaApAQCAtMCwwICsxLDYwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RHJhd2luZ0FyZWFQcm94eVdQRV9oCisjZGVmaW5lIERyYXdpbmdBcmVhUHJveHlXUEVfaAorCisj
aW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgorCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4
dC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRHJhd2luZ0FyZWFQcm94eVdQRSBm
aW5hbCA6IHB1YmxpYyBEcmF3aW5nQXJlYVByb3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBE
cmF3aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQcm94eSYpOworICAgIHZpcnR1YWwgfkRyYXdpbmdB
cmVhUHJveHlXUEUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBEcmF3aW5nQXJlYVByb3h5CisgICAg
dm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2l6
ZURpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJh
d2luZyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPikgb3ZlcnJpZGU7
CisKKyAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVycworICAgIHZvaWQgdXBkYXRlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRl
SUQsIGNvbnN0IFVwZGF0ZUluZm8mLCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7
CisgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tp
bmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVT
dGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25z
dCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisKKyAgICAvLyBUaGUgY3VycmVudCBsYXll
ciB0cmVlIGNvbnRleHQuCisgICAgTGF5ZXJUcmVlQ29udGV4dCBtX2xheWVyVHJlZUNvbnRleHQ7
Cit9OworCit9CisKKworI2VuZGlmIC8vIERyYXdpbmdBcmVhUHJveHlXUEVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NGUxMDJlY2YxYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBs
LmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFnZUNsaWVu
dEltcGwuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKyNpbmNsdWRlICJO
YXRpdmVXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgor
I2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV1BFVmlldy5o
IgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwoV0tXUEU6
OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1fc2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxHZXN0dXJlQ29udHJvbGxlcj4oKSkKK3sK
K30KKworUGFnZUNsaWVudEltcGw6On5QYWdlQ2xpZW50SW1wbCgpID0gZGVmYXVsdDsKKworc3Rk
Ojp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEcmF3
aW5nQXJlYVByb3h5KCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJl
YVByb3h5V1BFPihtX3ZpZXcucGFnZSgpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0
Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKQoreworfQorCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpCit7Cit9CisKK1dlYkNvcmU6OkZsb2F0UG9p
bnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCit7CisgICAgcmV0dXJuIHsg
fTsKK30KKworV2ViQ29yZTo6SW50U2l6ZSBQYWdlQ2xpZW50SW1wbDo6dmlld1NpemUoKQorewor
ICAgIHJldHVybiBtX3ZpZXcuc2l6ZSgpOworfQorCitib29sIFBhZ2VDbGllbnRJbXBsOjppc1Zp
ZXdXaW5kb3dBY3RpdmUoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZTsKK30KKworYm9vbCBQYWdlQ2xpZW50
SW1wbDo6aXNWaWV3Rm9jdXNlZCgpCit7CisgICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAm
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKK30KKworYm9vbCBQYWdlQ2xpZW50
SW1wbDo6aXNWaWV3VmlzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAm
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZTsKK30KKworYm9vbCBQYWdlQ2xpZW50
SW1wbDo6aXNWaWV3SW5XaW5kb3coKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkg
JiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpwcm9jZXNzRGlkRXhpdCgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRp
ZFJlbGF1bmNoUHJvY2VzcygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnBhZ2VDbG9z
ZWQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgp
Cit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENvbW1p
dExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkKK3sKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNvbnN0
IFdlYkNvcmU6OkN1cnNvciYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNv
ckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBs
OjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRy
aWJ1dGVzJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFu
ZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJl
ZG8pCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKCkK
K3sKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6Y2FuVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpV
bmRvT3JSZWRvKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykKK3sKK30KKworV2Vi
Q29yZTo6RmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9EZXZpY2VTcGFjZShjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK1dl
YkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRvVXNlclNwYWNlKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1cm4gcmVjdDsKK30KKworV2Vi
Q29yZTo6SW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHBvaW50KQoreworICAgIHJldHVybiBwb2ludDsKK30KKworV2ViQ29y
ZTo6SW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiByZWN0KQoreworICAgIHJldHVybiByZWN0OworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBi
b29sKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29u
c3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQp
Cit7CisgICAgaWYgKHdhc0V2ZW50SGFuZGxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29u
c3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQgPSB0b3VjaEV2
ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpOworICAgIGlmICh0b3VjaFBvaW50LT50eXBl
ID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOworCisgICAgaWYgKG1fc2Nyb2xsR2VzdHVy
ZUNvbnRyb2xsZXItPmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7CisgICAgICAgIHN0cnVjdCB3
cGVfaW5wdXRfYXhpc19ldmVudCogYXhpc0V2ZW50ID0gbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxl
ci0+YXhpc0V2ZW50KCk7CisgICAgICAgIGlmIChheGlzRXZlbnQtPnR5cGUgIT0gd3BlX2lucHV0
X2F4aXNfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50
KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1fdmlldy5wYWdlKCkuZGV2
aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RydWN0
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IHBvaW50ZXJFdmVudHsKKyAgICAgICAgd3BlX2lucHV0
X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsLCB0b3VjaFBvaW50LT50aW1lLAorICAgICAgICB0b3Vj
aFBvaW50LT54LCB0b3VjaFBvaW50LT55LAorICAgICAgICAxLCAwCisgICAgfTsKKworICAgIHN3
aXRjaCAodG91Y2hQb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50
X3R5cGVfZG93bjoKKyAgICAgICAgcG9pbnRlckV2ZW50LnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudF90eXBlX2J1dHRvbjsKKyAgICAgICAgcG9pbnRlckV2ZW50LnN0YXRlID0gMTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246
CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlw
ZV9tb3Rpb247CisgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHBvaW50
ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAg
ICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3Bl
X2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBhZ2UuaGFuZGxlTW91c2VFdmVu
dChOYXRpdmVXZWJNb3VzZUV2ZW50KCZwb2ludGVyRXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0
b3IoKSkpOworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JikKK3sKK30KKworUmVmUHRyPFdl
YlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2Vi
UGFnZVByb3h5JikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworI2lmIEVOQUJMRShDT05U
RVhUX01FTlVTKQorc3RkOjp1bmlxdWVfcHRyPFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGll
bnRJbXBsOjpjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIGNvbnN0IENvbnRl
eHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpCit7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisjZW5kaWYKKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikKK3sKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKK3sKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3Qg
TGF5ZXJUcmVlQ29udGV4dCYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlz
aExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5hdmln
YXRpb25HZXN0dXJlRGlkQmVnaW4oKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZp
Z2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKGJvb2wsIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZp
Z2F0aW9uR2VzdHVyZURpZEVuZCgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OndpbGxS
ZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3Qo
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JNYWluRnJhbWUoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5p
c2hMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFp
bExvYWRGb3JNYWluRnJhbWUoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBl
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3Io
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWZWaWV3KCkKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGVyZWZWaWV3KCkKK3sKK30KKworI2lmIEVOQUJMRShWSURFTykKK2Jv
b2wgUGFnZUNsaWVudEltcGw6OmRlY2lkZVBvbGljeUZvckluc3RhbGxNaXNzaW5nTWVkaWFQbHVn
aW5zUGVybWlzc2lvblJlcXVlc3QoSW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9u
UmVxdWVzdCYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCit7Cit9CisKK1dlYkNvcmU6OlVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gUGFnZUNsaWVudEltcGw6OnVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24oKQoreworICAgIHJldHVybiBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uOjpMVFI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI4ZWQ4MzNkMmViCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaApA
QCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFBhZ2VDbGllbnRJbXBsX2gKKyNkZWZpbmUgUGFnZUNsaWVudElt
cGxfaAorCisjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgorCituYW1lc3BhY2UgV0tXUEUgeworY2xh
c3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNjcm9sbEdlc3R1cmVD
b250cm9sbGVyOworCitjbGFzcyBQYWdlQ2xpZW50SW1wbCBmaW5hbCA6IHB1YmxpYyBQYWdlQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICBQYWdlQ2xpZW50SW1wbChXS1dQRTo6VmlldyYpOworICAgIHZp
cnR1YWwgflBhZ2VDbGllbnRJbXBsKCk7CisKK3ByaXZhdGU6CisgICAgLy8gUGFnZUNsaWVudAor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdp
bmdBcmVhUHJveHkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld05lZWRzRGlz
cGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmLCBib29sKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdT
Y3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50U2l6ZSB2
aWV3U2l6ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3Rm9jdXNlZCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdWaXNpYmxlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGlzVmlld0luV2luZG93KCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vz
c0RpZEV4aXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNz
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VDbG9zZWQoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25z
dCBTdHJpbmcmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRG93bmxv
YWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBk
aWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CisK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9v
bCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGll
cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKSBvdmVycmlkZTsKKworICAgIHZp
cnR1YWwgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQ
cm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNh
blVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGV4ZWN1dGVVbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2Uo
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVy
cmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdl
YktleWJvYXJkRXZlbnQmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9uZVdp
dGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3Qg
TmF0aXZlV2ViV2hlZWxFdmVudCYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBSZWZQdHI8V2Vi
UG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJy
aWRlOworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvbnRleHRNZW51UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVBy
b3h5JiwgY29uc3QgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYsIGNvbnN0IFVzZXJEYXRhJikgb3Zl
cnJpZGU7CisjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJl
ZUNvbnRleHQmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5n
RGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2Vz
dHVyZURpZEJlZ2luKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0
dXJlV2lsbEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVE
aWRFbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlY29yZE5hdmlnYXRpb25T
bmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSBvdmVycmlkZTsKKworICAg
IHZpcnR1YWwgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFp
bkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgdm9pZCByZWZWaWV3KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmVmlldygp
IG92ZXJyaWRlOworCisjaWYgRU5BQkxFKFZJREVPKQorICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQ
b2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3Rh
bGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKSBvdmVycmlkZTsKKyNlbmRp
ZgorCisgICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkQ2hh
bmdlQ2xpcFRvU2FmZUFyZWEoYm9vbCkgb3ZlcnJpZGUgeyB9CisKKyAgICBXS1dQRTo6VmlldyYg
bV92aWV3OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEdlc3R1cmVDb250cm9sbGVyPiBt
X3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBQYWdlQ2xpZW50SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRhMTJjOGViMzUxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNj
cm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6
aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNo
UG9pbnQpCit7CisgICAgc3dpdGNoICh0b3VjaFBvaW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9kb3duOgorICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3Vj
aFBvaW50LT50aW1lOworICAgICAgICBtX3N0YXJ0LnggPSB0b3VjaFBvaW50LT54OworICAgICAg
ICBtX3N0YXJ0LnkgPSB0b3VjaFBvaW50LT55OworICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQ
b2ludC0+eDsKKyAgICAgICAgbV9vZmZzZXQueSA9IHRvdWNoUG9pbnQtPnk7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoK
KyAgICAgICAgaWYgKCFtX2hhbmRsaW5nKSB7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWCA9
IHRvdWNoUG9pbnQtPnggLSBtX3N0YXJ0Lng7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWSA9
IHRvdWNoUG9pbnQtPnkgLSBtX3N0YXJ0Lnk7CisgICAgICAgICAgICB1aW50MzJfdCBkZWx0YVRp
bWUgPSB0b3VjaFBvaW50LT50aW1lIC0gbV9zdGFydC50aW1lOworCisgICAgICAgICAgICBpbnQg
cGl4ZWxzUGVyTGluZVN0ZXAgPSBXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVw
KCk7CisgICAgICAgICAgICBtX2hhbmRsaW5nID0gc3RkOjphYnMoZGVsdGFYKSA+PSBwaXhlbHNQ
ZXJMaW5lU3RlcAorICAgICAgICAgICAgICAgIHx8IHN0ZDo6YWJzKGRlbHRhWSkgPj0gcGl4ZWxz
UGVyTGluZVN0ZXAKKyAgICAgICAgICAgICAgICB8fCBkZWx0YVRpbWUgPj0gMjAwOworICAgICAg
ICB9CisgICAgICAgIGlmIChtX2hhbmRsaW5nKSB7CisgICAgICAgICAgICBtX2F4aXNFdmVudCA9
IHsKKyAgICAgICAgICAgICAgICB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAg
ICAgICAgICAgICAgICB0b3VjaFBvaW50LT50aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAg
ICAgICAgICAgICAgICAyLCAodG91Y2hQb2ludC0+eSAtIG1fb2Zmc2V0LnkpCisgICAgICAgICAg
ICB9OworICAgICAgICAgICAgbV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgICAg
ICBtX29mZnNldC55ID0gdG91Y2hQb2ludC0+eTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3Vj
aF9ldmVudF90eXBlX3VwOgorICAgICAgICBpZiAobV9oYW5kbGluZykgeworICAgICAgICAgICAg
bV9oYW5kbGluZyA9IGZhbHNlOworICAgICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAg
ICAgICAgICAgd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsLAorICAgICAgICAgICAgICAg
IDAsIDAsIDAsIDAsIDAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdkMTcy
NGFhZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3cGUvaW5wdXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBTY3Jv
bGxHZXN0dXJlQ29udHJvbGxlciB7CitwdWJsaWM6CisgICAgU2Nyb2xsR2VzdHVyZUNvbnRyb2xs
ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNF
dmVudCgpIHsgcmV0dXJuICZtX2F4aXNFdmVudDsgfQorCisgICAgYm9vbCBoYW5kbGVFdmVudChj
b25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyopOworCitwcml2YXRlOgorICAg
IHN0cnVjdCB7CisgICAgICAgIHVpbnQzMl90IHRpbWUgeyAwIH07CisgICAgICAgIGludDMyX3Qg
eCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9zdGFydDsKKworICAg
IHN0cnVjdCB7CisgICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsg
MCB9OworICAgIH0gbV9vZmZzZXQ7CisKKyAgICBib29sIG1faGFuZGxpbmcgeyBmYWxzZSB9Owor
ICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCBtX2F4aXNFdmVudDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvV1BFVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVW
aWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2Y5ZjEyY2Qy
ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9X
UEVWaWV3LmNwcApAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV1BF
Vmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJO
YXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5o
IgorI2luY2x1ZGUgIk5hdGl2ZVdlYlRvdWNoRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJX
aGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Bvb2wuaCIKKyNpbmNsdWRlIDx3cGUvdmlldy1iYWNrZW5kLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK1ZpZXc6OlZpZXcoc3RydWN0IHdw
ZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJh
c2VDb25maWd1cmF0aW9uKQorICAgIDogbV9wYWdlQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFn
ZUNsaWVudEltcGw+KCp0aGlzKSkKKyAgICAsIG1fc2l6ZXsgODAwLCA2MDAgfQorICAgICwgbV92
aWV3U3RhdGVGbGFncyhXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8IFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6
OklzVmlzaWJsZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3cpCisgICAgLCBt
X2NvbXBvc2l0aW5nTWFuYWdlclByb3h5KCp0aGlzKQoreworICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGJhc2VDb25maWd1cmF0aW9uLmNvcHkoKTsKKyAgICBhdXRvKiBwcmVmZXJlbmNlcyA9IGNv
bmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCk7CisgICAgaWYgKCFwcmVmZXJlbmNlcyAmJiBjb25m
aWd1cmF0aW9uLT5wYWdlR3JvdXAoKSkgeworICAgICAgICBwcmVmZXJlbmNlcyA9ICZjb25maWd1
cmF0aW9uLT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsKKyAgICAgICAgY29uZmlndXJhdGlv
bi0+c2V0UHJlZmVyZW5jZXMocHJlZmVyZW5jZXMpOworICAgIH0KKyAgICBpZiAocHJlZmVyZW5j
ZXMpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKHRydWUpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
dHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxl
ZCh0cnVlKTsKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldFdlYkdMRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgcHJlZmVyZW5jZXMtPnNldFdlYlNlY3VyaXR5RW5hYmxlZChmYWxzZSk7CisgICAgICAg
IHByZWZlcmVuY2VzLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHRydWUpOworICAgIH0KKwor
ICAgIGF1dG8qIHBvb2wgPSBjb25maWd1cmF0aW9uLT5wcm9jZXNzUG9vbCgpOworICAgIG1fcGFn
ZVByb3h5ID0gcG9vbC0+Y3JlYXRlV2ViUGFnZSgqbV9wYWdlQ2xpZW50LCBXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pKTsKKworICAgIG1fYmFja2VuZCA9IGJhY2tlbmQ7CisgICAgaWYgKCFtX2JhY2tl
bmQpCisgICAgICAgIG1fYmFja2VuZCA9IHdwZV92aWV3X2JhY2tlbmRfY3JlYXRlKCk7CisgICAg
bV9jb21wb3NpdGluZ01hbmFnZXJQcm94eS5pbml0aWFsaXplKCk7CisKKyAgICBzdGF0aWMgc3Ry
dWN0IHdwZV92aWV3X2JhY2tlbmRfY2xpZW50IHNfYmFja2VuZENsaWVudCA9IHsKKyAgICAgICAg
Ly8gc2V0X3NpemUKKyAgICAgICAgW10odm9pZCogZGF0YSwgdWludDMyX3Qgd2lkdGgsIHVpbnQz
Ml90IGhlaWdodCkKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgdmlldyA9ICpyZWludGVy
cHJldF9jYXN0PFZpZXcqPihkYXRhKTsKKyAgICAgICAgICAgIHZpZXcuc2V0U2l6ZShXZWJDb3Jl
OjpJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAgICAgICAgfSwKKyAgICAgICAgLy8gZnJhbWVf
ZGlzcGxheWVkCisgICAgICAgIFtdKHZvaWQqIGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisgICAgICAgICAg
ICB2aWV3LmZyYW1lRGlzcGxheWVkKCk7CisgICAgICAgIH0KKyAgICB9OworICAgIHdwZV92aWV3
X2JhY2tlbmRfc2V0X2JhY2tlbmRfY2xpZW50KG1fYmFja2VuZCwgJnNfYmFja2VuZENsaWVudCwg
dGhpcyk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV92aWV3X2JhY2tlbmRfaW5wdXRfY2xpZW50
IHNfaW5wdXRDbGllbnQgPSB7CisgICAgICAgIC8vIGhhbmRsZV9rZXlib2FyZF9ldmVudAorICAg
ICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVu
dCkKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgdmlldyA9ICpyZWludGVycHJldF9jYXN0
PFZpZXcqPihkYXRhKTsKKyAgICAgICAgICAgIHZpZXcucGFnZSgpLmhhbmRsZUtleWJvYXJkRXZl
bnQoV2ViS2l0OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50KSk7CisgICAgICAgIH0sCisg
ICAgICAgIC8vIGhhbmRsZV9wb2ludGVyX2V2ZW50CisgICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0
cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRhKS0+cGFnZSgpOwor
ICAgICAgICAgICAgcGFnZS5oYW5kbGVNb3VzZUV2ZW50KFdlYktpdDo6TmF0aXZlV2ViTW91c2VF
dmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7CisgICAgICAgIH0sCisgICAg
ICAgIC8vIGhhbmRsZV9heGlzX2V2ZW50CisgICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3
cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8m
IHBhZ2UgPSByZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAg
ICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChldmVu
dCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGhh
bmRsZV90b3VjaF9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0
X3RvdWNoX2V2ZW50KiBldmVudCkKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgcGFnZSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpLT5wYWdlKCk7CisgICAgICAgICAgICBwYWdl
LmhhbmRsZVRvdWNoRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGV2ZW50LCBwYWdl
LmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKyAgICAgICAgfSwKKyAgICB9OworICAgIHdwZV92aWV3
X2JhY2tlbmRfc2V0X2lucHV0X2NsaWVudChtX2JhY2tlbmQsICZzX2lucHV0Q2xpZW50LCB0aGlz
KTsKKworICAgIHdwZV92aWV3X2JhY2tlbmRfaW5pdGlhbGl6ZShtX2JhY2tlbmQpOworCisgICAg
bV9wYWdlUHJveHktPmluaXRpYWxpemVXZWJQYWdlKCk7Cit9CisKK1ZpZXc6On5WaWV3KCkKK3sK
KyAgICB3cGVfdmlld19iYWNrZW5kX2Rlc3Ryb3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBWaWV3
Ojppbml0aWFsaXplQ2xpZW50KGNvbnN0IFdLVmlld0NsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAg
ICBtX2NsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisKK3ZvaWQgVmlldzo6ZnJhbWVEaXNw
bGF5ZWQoKQoreworICAgIG1fY2xpZW50LmZyYW1lRGlzcGxheWVkKCp0aGlzKTsKK30KKwordm9p
ZCBWaWV3OjpzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCit7CisgICAgbV9z
aXplID0gc2l6ZTsKKyAgICBpZiAobV9wYWdlUHJveHktPmRyYXdpbmdBcmVhKCkpCisgICAgICAg
IG1fcGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpLT5zZXRTaXplKHNpemUsIFdlYkNvcmU6OkludFNp
emUoKSwgV2ViQ29yZTo6SW50U2l6ZSgpKTsKK30KKwordm9pZCBWaWV3OjpzZXRWaWV3U3RhdGUo
V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgZmxhZ3MpCit7CisgICAgc3RhdGljIGNvbnN0
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIGRlZmF1bHRGbGFncyA9IFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlIHwgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNG
b2N1c2VkOworCisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgY2hhbmdlZEZsYWdz
ID0gbV92aWV3U3RhdGVGbGFncyBeIChkZWZhdWx0RmxhZ3MgfCBmbGFncyk7CisgICAgbV92aWV3
U3RhdGVGbGFncyA9IGRlZmF1bHRGbGFncyB8IGZsYWdzOworCisgICAgaWYgKGNoYW5nZWRGbGFn
cykKKyAgICAgICAgbV9wYWdlUHJveHktPmFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoY2hhbmdlZEZs
YWdzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV0tXUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uMzczNmU5M2NjNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3dwZS9XUEVWaWV3LmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQRVZpZXdfaAorI2RlZmlu
ZSBXUEVWaWV3X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkNvbXBvc2l0
aW5nTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXUEVWaWV3Q2xpZW50LmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworc3RydWN0IHdwZV92aWV3X2JhY2tlbmQ7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworY2xhc3MgV2ViUGFnZUdyb3VwOworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7Cit9CisKK25h
bWVzcGFjZSBXS1dQRSB7CisKK2NsYXNzIFZpZXcgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQ
STo6T2JqZWN0OjpUeXBlOjpWaWV3PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFZpZXcqIGNyZWF0
ZShzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCwgY29uc3QgQVBJOjpQYWdlQ29uZmln
dXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgVmlldyhi
YWNrZW5kLCBjb25maWd1cmF0aW9uKTsKKyAgICB9CisKKyAgICAvLyBDbGllbnQgbWV0aG9kcwor
ICAgIHZvaWQgaW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS1ZpZXdDbGllbnRCYXNlKik7CisgICAg
dm9pZCBmcmFtZURpc3BsYXllZCgpOworCisgICAgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2Uo
KSB7IHJldHVybiAqbV9wYWdlUHJveHk7IH0KKworICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5k
KiBiYWNrZW5kKCkgeyByZXR1cm4gbV9iYWNrZW5kOyB9CisKKyAgICBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisKKyAgICBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpGbGFncyB2aWV3U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTdGF0
ZUZsYWdzOyB9CisgICAgdm9pZCBzZXRWaWV3U3RhdGUoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6
RmxhZ3MpOworCitwcml2YXRlOgorICAgIFZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqLCBj
b25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJik7CisgICAgdmlydHVhbCB+VmlldygpOworCisg
ICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpOworCisgICAgVmll
d0NsaWVudCBtX2NsaWVudDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsPiBtX3BhZ2VDbGllbnQ7CisgICAgUmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBt
X3BhZ2VQcm94eTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1fc2l6ZTsKKyAgICBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpGbGFncyBtX3ZpZXdTdGF0ZUZsYWdzOworCisgICAgV2ViS2l0OjpDb21w
b3NpdGluZ01hbmFnZXJQcm94eSBtX2NvbXBvc2l0aW5nTWFuYWdlclByb3h5OworICAgIHN0cnVj
dCB3cGVfdmlld19iYWNrZW5kKiBtX2JhY2tlbmQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXS1dQ
RQorCisjZW5kaWYgLy8gV1BFVmlld19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi45ZjFmMzdkOWU3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldQRVZpZXdDbGllbnQuaCIKKworI2luY2x1ZGUgIldQRVZp
ZXcuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0Jhc2UuaCIKKwordXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdLV1BFIHsKKwordm9pZCBWaWV3Q2xp
ZW50OjpmcmFtZURpc3BsYXllZChWaWV3JiB2aWV3KQoreworICAgIGlmIChtX2NsaWVudC5mcmFt
ZURpc3BsYXllZCkKKyAgICAgICAgbV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQodG9BUEkoJnZpZXcp
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NGRmZDViMTU1ZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGll
bnQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV1BFVmlld0NsaWVudF9oCisjZGVmaW5lIFdQRVZpZXdD
bGllbnRfaAorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLVmll
dy5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxX
S1ZpZXdDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLVmlld0NsaWVudFYw
PiBWZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK2NsYXNzIFZpZXc7CisK
K2NsYXNzIFZpZXdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tWaWV3Q2xpZW50QmFzZT4g
eworcHVibGljOgorICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoVmlldyYpOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKworI2VuZGlmIC8vIFdQRVZpZXdDbGllbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNv
dXJjZUJ1bmRsZS54bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQy
SW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNTgyMDkyYmJmZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbApA
QCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8
Z3Jlc291cmNlcz4KKyAgPGdyZXNvdXJjZSBwcmVmaXg9Ii9vcmcvd3BlL2luc3BlY3Rvci9Vc2Vy
SW50ZXJmYWNlIj4KKyAgICA8ZmlsZT5pbnNwZWN0b3JQYWdlSW5kZXguaHRtbDwvZmlsZT4KKyAg
PC9ncmVzb3VyY2U+Cis8L2dyZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyN2JlYzM2MjMxNS4uZmQ4NDhjY2VkMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAt
NTUsNyArNTUsNyBAQCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoTwogICAgIGlmIChtX2Fsd2F5c1J1
bnNBdEJhY2tncm91bmRQcmlvcml0eSkKICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRp
YWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFsKCJhbHdheXMtcnVucy1hdC1iYWNrZ3JvdW5k
LXByaW9yaXR5IiksICJ0cnVlIik7CiAKLSNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIFBM
QVRGT1JNKEdUSykKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIChQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkpCiAgICAgY29uc3QgY2hhciogdmFybmFtZTsKICAgICBzd2l0Y2gg
KGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUpIHsKICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6
UHJvY2Vzc1R5cGU6OldlYjoKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94
eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5j
aE8KICAgICBjb25zdCBjaGFyKiBwcm9jZXNzQ21kUHJlZml4ID0gZ2V0ZW52KHZhcm5hbWUpOwog
ICAgIGlmIChwcm9jZXNzQ21kUHJlZml4ICYmICpwcm9jZXNzQ21kUHJlZml4KQogICAgICAgICBs
YXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXggPSBTdHJpbmc6OmZyb21VVEY4KHByb2Nlc3ND
bWRQcmVmaXgpOwotI2VuZGlmIC8vIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0o
R1RLKQorI2VuZGlmIC8vIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV1BFKSkKIH0KIAogdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6Y29ubmVjdCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dl
Ykluc3BlY3RvclNlcnZlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNl
cnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaAppbmRleCA5MzlhN2UyMWI3OC4uMDc0ODdiYTNlMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2Vi
SW5zcGVjdG9yU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3Rv
clNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkQ2xvc2VXZWJTb2NrZXRDb25uZWN0aW9uKFdlYlNvY2tldFNlcnZlckNvbm5l
Y3Rpb24qKSBmaW5hbDsKIAogICAgIGJvb2wgcGxhdGZvcm1SZXNvdXJjZUZvclBhdGgoY29uc3Qg
U3RyaW5nJiBwYXRoLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpOwot
I2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAg
ICB2b2lkIGJ1aWxkUGFnZUxpc3QoVmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRU
eXBlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5z
cGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9yU2VydmVyV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjY4M2UzZDcxNjAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViSW5zcGVjdG9yU2VydmVyLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKKwor
I2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5Lmgi
CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGdtb2R1bGUuaD4KKyNpbmNsdWRlIDxtdXRl
eD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworYm9vbCBXZWJJbnNwZWN0b3JTZXJ2ZXI6OnBsYXRmb3JtUmVzb3VyY2VG
b3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgVmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNv
bnRlbnRUeXBlKQoreworICAgIC8vIFRoZSBwYWdlIGxpc3QgY29udGFpbnMgYW4gdW5mb3JtYXRl
ZCBsaXN0IG9mIHBhZ2VzIHRoYXQgY2FuIGJlIGluc3BlY3RlZCB3aXRoIGEgbGluayB0byBvcGVu
IGEgc2Vzc2lvbi4KKyAgICBpZiAocGF0aCA9PSAiL3BhZ2VsaXN0Lmpzb24iKSB7CisgICAgICAg
IGJ1aWxkUGFnZUxpc3QoZGF0YSwgY29udGVudFR5cGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZmxhZzsKKyAgICBzdGQ6OmNhbGxf
b25jZShmbGFnLCBbXSB7CisgICAgICAgIEdNb2R1bGUqIHJlc291cmNlc01vZHVsZSA9IGdfbW9k
dWxlX29wZW4oImxpYldQRVdlYkluc3BlY3RvclJlc291cmNlcy5zbyIsIEdfTU9EVUxFX0JJTkRf
TEFaWSk7CisgICAgICAgIGlmICghcmVzb3VyY2VzTW9kdWxlKSB7CisgICAgICAgICAgICBXVEZM
b2dBbHdheXMoIkVycm9yIGxvYWRpbmcgbGliV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzLnNvOiAl
cyIsIGdfbW9kdWxlX2Vycm9yKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgZ19tb2R1bGVfbWFrZV9yZXNpZGVudChyZXNvdXJjZXNNb2R1bGUpOworICAgIH0p
OworCisgICAgLy8gUG9pbnQgdGhlIGRlZmF1bHQgcGF0aCB0byBhIGZvcm1hdHRlZCBwYWdlIHRo
YXQgcXVlcmllcyB0aGUgcGFnZSBsaXN0IGFuZCBkaXNwbGF5IHRoZW0uCisgICAgQ1N0cmluZyBy
ZXNvdXJjZVBhdGggPSBtYWtlU3RyaW5nKCIvb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFj
ZSIsIChwYXRoID09ICIvIiA/ICIvaW5zcGVjdG9yUGFnZUluZGV4Lmh0bWwiIDogcGF0aCkpLnV0
ZjgoKTsKKyAgICBpZiAocmVzb3VyY2VQYXRoLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CisgICAgR1JlZlB0cjxHQnl0
ZXM+IHJlc291cmNlQnl0ZXMgPSBhZG9wdEdSZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEocmVz
b3VyY2VQYXRoLmRhdGEoKSwgR19SRVNPVVJDRV9MT09LVVBfRkxBR1NfTk9ORSwgJmVycm9yLm91
dFB0cigpKSk7CisgICAgaWYgKCFyZXNvdXJjZUJ5dGVzKSB7CisgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8IURPQ1RZUEUgaHRt
bD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+RXJyb3I6ICIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcihlcnJvci0+Y29kZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
LCAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiBvY2N1cnJlZCBkdXJpbmcgZmV0Y2hpbmcgaW5zcGVjdG9y
IHJlc291cmNlIGZpbGVzLjwvYm9keT48L2h0bWw+Iik7CisKKyAgICAgICAgQ1N0cmluZyBlcnJv
ckhUTUwgPSBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOworICAgICAgICBkYXRhLmFwcGVuZChl
cnJvckhUTUwuZGF0YSgpLCBlcnJvckhUTUwubGVuZ3RoKCkpOworICAgICAgICBjb250ZW50VHlw
ZSA9ICJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiOworCisgICAgICAgIFdURkxvZ0Fsd2F5cygi
RXJyb3IgZmV0Y2hpbmcgd2ViaW5zcGVjdG9yIHJlc291cmNlIGZpbGVzOiAlZCwgJXMiLCBlcnJv
ci0+Y29kZSwgZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgZ3NpemUgcmVzb3VyY2VEYXRhU2l6ZTsKKyAgICBnY29uc3Rwb2ludGVyIHJlc291cmNl
RGF0YSA9IGdfYnl0ZXNfZ2V0X2RhdGEocmVzb3VyY2VCeXRlcy5nZXQoKSwgJnJlc291cmNlRGF0
YVNpemUpOworICAgIGRhdGEuYXBwZW5kKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihyZXNvdXJj
ZURhdGEpLCByZXNvdXJjZURhdGFTaXplKTsKKworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG1pbWVU
eXBlKGdfY29udGVudF90eXBlX2d1ZXNzKHJlc291cmNlUGF0aC5kYXRhKCksIHN0YXRpY19jYXN0
PGNvbnN0IGd1Y2hhcio+KHJlc291cmNlRGF0YSksIHJlc291cmNlRGF0YVNpemUsIG51bGxwdHIp
KTsKKyAgICBjb250ZW50VHlwZSA9IG1pbWVUeXBlLmdldCgpOworICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIFdlYkluc3BlY3RvclNlcnZlcjo6YnVpbGRQYWdlTGlzdChWZWN0b3I8Y2hhcj4m
IGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpCit7CisgICAgLy8gY2hyb21lZGV2dG9vbHMgKGh0
dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWVkZXZ0b29scykgMC4zLjggZXhwZWN0ZWQgSlNP
TiBmb3JtYXQ6CisgICAgLy8geworICAgIC8vICAidGl0bGUiOiAiRm9vIiwKKyAgICAvLyAgInVy
bCI6ICJodHRwOi8vZm9vIiwKKyAgICAvLyAgImRldnRvb2xzRnJvbnRlbmRVcmwiOiAiL01haW4u
aHRtbD93cz1sb2NhbGhvc3Q6OTIyMi9kZXZ0b29scy9wYWdlLzEiLAorICAgIC8vICAid2ViU29j
a2V0RGVidWdnZXJVcmwiOiAid3M6Ly9sb2NhbGhvc3Q6OTIyMi9kZXZ0b29scy9wYWdlLzEiCisg
ICAgLy8gfSwKKworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlsgIik7CisgICAgQ2xpZW50TWFwOjppdGVyYXRvciBlbmQgPSBtX2NsaWVudE1h
cC5lbmQoKTsKKyAgICBmb3IgKENsaWVudE1hcDo6aXRlcmF0b3IgaXQgPSBtX2NsaWVudE1hcC5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgV2ViUGFnZVByb3h5KiB3ZWJQYWdl
ID0gaXQtPnZhbHVlLT5pbnNwZWN0ZWRQYWdlKCk7CisgICAgICAgIGlmIChpdCAhPSBtX2NsaWVu
dE1hcC5iZWdpbigpKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoInsgXCJpZFwiOiAiKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiLCBcInRpdGxlXCI6IFwiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHdlYlBhZ2UtPnBh
Z2VMb2FkU3RhdGUoKS50aXRsZSgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJc
IiwgXCJ1cmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQod2ViUGFnZS0+cGFnZUxv
YWRTdGF0ZSgpLmFjdGl2ZVVSTCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJc
IiwgXCJpbnNwZWN0b3JVcmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIvTWFpbi5odG1sP3BhZ2U9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5r
ZXkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcImRldnRvb2xzRnJvbnRl
bmRVcmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvTWFpbi5odG1s
P3dzPSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChiaW5kQWRkcmVzcygpKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KHBvcnQoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2Uv
Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcIndlYlNvY2tldERlYnVnZ2VyVXJsXCI6IFwiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgid3M6Ly8iKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoYmluZEFkZHJlc3MoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb3J0KCkpOworICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIi9kZXZ0b29scy9wYWdlLyIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiB9Iik7
CisgICAgfQorICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIF0iKTsKKyAgICBDU3RyaW5nIGNz
dHIgPSBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOworICAgIGRhdGEuYXBwZW5kKGNzdHIuZGF0
YSgpLCBjc3RyLmxlbmd0aCgpKTsKKyAgICBjb250ZW50VHlwZSA9ICJhcHBsaWNhdGlvbi9qc29u
OyBjaGFyc2V0PXV0Zi04IjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVu
Y2hlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hl
ci5oCmluZGV4IDM5OTUwNjk0OGVmLi5iYTc3YzJhYzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNjAsNyArNjAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlOwogICAgICAgICBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRyYUluaXRpYWxpemF0aW9uRGF0YTsKIAotI2lmIEVO
QUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2lmIEVOQUJMRShERVZFTE9Q
RVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICAgICAgICAgU3Ry
aW5nIHByb2Nlc3NDbWRQcmVmaXg7CiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43MDIzYzU0MjIxMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93cGUv
UHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBD
b3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RP
Uk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
cm9jZXNzTGF1bmNoZXIuaCIKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJQ
cm9jZXNzRXhlY3V0YWJsZVBhdGguaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4K
KyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8Z2xpYi5o
PgorI2luY2x1ZGUgPHdwZS9yZW5kZXJlci1ob3N0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworLy8gRklYTUU6IE1lcmdlIHdpdGggUHJvY2Vzc0xh
dW5jaGVyR3RrPworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0YXRpYyB2b2lkIGNoaWxkU2V0dXBGdW5jdGlvbihncG9pbnRlciB1c2VyRGF0YSkK
K3sKKyAgICBpbnQgc29ja2V0ID0gR1BPSU5URVJfVE9fSU5UKHVzZXJEYXRhKTsKKyAgICBjbG9z
ZShzb2NrZXQpOworfQorCit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCit7
CisgICAgR1BpZCBwaWQgPSAwOworCisgICAgSVBDOjpDb25uZWN0aW9uOjpTb2NrZXRQYWlyIHNv
Y2tldFBhaXIgPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVBsYXRmb3JtQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb246OkNvbm5lY3Rpb25PcHRpb25zOjpTZXRDbG9leGVjT25TZXJ2ZXIpOworCisg
ICAgU3RyaW5nIGV4ZWN1dGFibGVQYXRoOworICAgIENTdHJpbmcgcmVhbEV4ZWN1dGFibGVQYXRo
OworICAgIHN3aXRjaCAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlKSB7CisgICAgY2FzZSBQ
cm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWI6CisgICAgICAgIGV4ZWN1dGFibGVQYXRo
ID0gZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOgorICAgICAgICBleGVjdXRh
YmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOworICAgICAgICBicmVh
azsKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hl
cjo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNlOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1
dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAg
ICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHJlYWxFeGVjdXRhYmxlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbihleGVjdXRhYmxlUGF0aCk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gd2tTb2NrZXQoZ19z
dHJkdXBfcHJpbnRmKCIlZCIsIHNvY2tldFBhaXIuY2xpZW50KSk7CisgICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gd3BlU29ja2V0OworCisgICAgdW5zaWduZWQgbmFyZ3MgPSA0OyAvLyBzaXplIG9mIHRo
ZSBhcmd2IGFycmF5IGZvciBnX3NwYXduX2FzeW5jKCkKKyAgICBpZiAobV9sYXVuY2hPcHRpb25z
LnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYikgeworICAg
ICAgICB3cGVTb2NrZXQgPSBHVW5pcXVlUHRyPGdjaGFyPihnX3N0cmR1cF9wcmludGYoIiVkIiwg
d3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2NsaWVudCgpKSk7CisgICAgICAgIG5hcmdzID0gNTsK
KyAgICB9CisKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCisgICAgVmVjdG9yPENTdHJpbmc+
IHByZWZpeEFyZ3M7CisgICAgaWYgKCFtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZpeC5p
c051bGwoKSkgeworICAgICAgICBWZWN0b3I8U3RyaW5nPiBzcGxpdEFyZ3M7CisgICAgICAgIG1f
bGF1bmNoT3B0aW9ucy5wcm9jZXNzQ21kUHJlZml4LnNwbGl0KCcgJywgc3BsaXRBcmdzKTsKKyAg
ICAgICAgZm9yIChhdXRvIGl0ID0gc3BsaXRBcmdzLmJlZ2luKCk7IGl0ICE9IHNwbGl0QXJncy5l
bmQoKTsgaXQrKykKKyAgICAgICAgICAgIHByZWZpeEFyZ3MuYXBwZW5kKGl0LT51dGY4KCkpOwor
ICAgICAgICBuYXJncyArPSBwcmVmaXhBcmdzLnNpemUoKTsKKyAgICB9CisjZW5kaWYKKworICAg
IGNoYXIqKiBhcmd2ID0gZ19uZXdhKGNoYXIqLCBuYXJncyk7CisgICAgdW5zaWduZWQgaSA9IDA7
CisjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQorICAgIC8vIElmIHRoZXJlJ3MgYSBwcmVmaXgg
Y29tbWFuZCwgcHV0IGl0IGJlZm9yZSB0aGUgcmVzdCBvZiB0aGUgYXJncy4KKyAgICBmb3IgKGF1
dG8gaXQgPSBwcmVmaXhBcmdzLmJlZ2luKCk7IGl0ICE9IHByZWZpeEFyZ3MuZW5kKCk7IGl0Kysp
CisgICAgICAgIGFyZ3ZbaSsrXSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KGl0LT5kYXRhKCkpOworI2Vu
ZGlmCisgICAgYXJndltpKytdID0gY29uc3RfY2FzdDxjaGFyKj4ocmVhbEV4ZWN1dGFibGVQYXRo
LmRhdGEoKSk7CisgICAgYXJndltpKytdID0gd2tTb2NrZXQuZ2V0KCk7CisgICAgaWYgKG1fbGF1
bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpX
ZWIpCisgICAgICAgIGFyZ3ZbaSsrXSA9IHdwZVNvY2tldC5nZXQoKTsKKyAgICBhcmd2W2krK10g
PSBudWxscHRyOworCisgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIGlmICgh
Z19zcGF3bl9hc3luYygwLCBhcmd2LCAwLCBHX1NQQVdOX0xFQVZFX0RFU0NSSVBUT1JTX09QRU4s
IGNoaWxkU2V0dXBGdW5jdGlvbiwgR0lOVF9UT19QT0lOVEVSKHNvY2tldFBhaXIuc2VydmVyKSwg
JnBpZCwgJmVycm9yLm91dFB0cigpKSkgeworICAgICAgICBnX3ByaW50ZXJyKCJVbmFibGUgdG8g
Zm9yayBhIG5ldyBXZWJQcm9jZXNzOiAlcy5cbiIsIGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgLy8gRG9uJ3QgZXhwb3NlIHRoZSBw
YXJlbnQgc29ja2V0IHRvIHBvdGVudGlhbCBmdXR1cmUgY2hpbGRyZW4uCisgICAgd2hpbGUgKGZj
bnRsKHNvY2tldFBhaXIuY2xpZW50LCBGX1NFVEZELCBGRF9DTE9FWEVDKSA9PSAtMSkKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoZXJybm8gIT0gRUlOVFIpOworCisgICAgY2xvc2Uoc29ja2V0UGFp
ci5jbGllbnQpOworICAgIG1fcHJvY2Vzc0lkZW50aWZpZXIgPSBwaWQ7CisKKyAgICAvLyBXZSd2
ZSBmaW5pc2hlZCBsYXVuY2hpbmcgdGhlIHByb2Nlc3MsIG1lc3NhZ2UgYmFjayB0byB0aGUgbWFp
biBydW4gbG9vcC4KKyAgICBSZWZQdHI8UHJvY2Vzc0xhdW5jaGVyPiBwcm90ZWN0b3IodGhpcyk7
CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlclNvY2tldCA9IHNvY2tldFBh
aXIuc2VydmVyOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdG9yLCBwaWQs
IHNlcnZlclNvY2tldF0geworICAgICAgICBwcm90ZWN0b3ItPmRpZEZpbmlzaExhdW5jaGluZ1By
b2Nlc3MocGlkLCBzZXJ2ZXJTb2NrZXQpOworICAgIH0pOworfQorCit2b2lkIFByb2Nlc3NMYXVu
Y2hlcjo6dGVybWluYXRlUHJvY2VzcygpCit7CisgICAgaWYgKG1faXNMYXVuY2hpbmcpIHsKKyAg
ICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFt
X3Byb2Nlc3NJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBraWxsKG1fcHJvY2Vz
c0lkZW50aWZpZXIsIFNJR0tJTEwpOworICAgIG1fcHJvY2Vzc0lkZW50aWZpZXIgPSAwOworfQor
Cit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0
b3JQcm94eS5oCmluZGV4IDFjOGVmNDYzY2MyLi44NDdmYjVjMzIyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKQEAgLTIyNCw3ICsyMjQsNyBAQCBw
cml2YXRlOgogCiAgICAgV2ViUHJlZmVyZW5jZXMmIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygp
IGNvbnN0OwogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogICAgIHZvaWQgY3JlYXRlSW5zcGVjdG9yV2luZG93KCk7CiAgICAgdm9pZCB1cGRh
dGVJbnNwZWN0b3JXaW5kb3dUaXRsZSgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKaW5kZXggMjY1NTczNjFmNTUuLjc3MmUx
MDkxNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5oCkBAIC05NCw2ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQYXN0ZWJvYXJkU3Ry
aW5nRm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpOwog
ICAgIHZvaWQgc2V0UGFzdGVib2FyZEJ1ZmZlckZvclR5cGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU2hhcmVkTWVtb3J5
OjpIYW5kbGUmLCB1aW50NjRfdCBzaXplLCB1aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpOwogI2Vu
ZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFdlYlNlbGVjdGlvbkRhdGEmKTsKICAgICB2
b2lkIHJlYWRGcm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYlNl
bGVjdGlvbkRhdGEmKTsKQEAgLTEwMSw3ICsxMDIsMTQgQEAgcHJpdmF0ZToKICAgICBXZWJGcmFt
ZVByb3h5KiBtX3ByaW1hcnlTZWxlY3Rpb25Pd25lciB7IG51bGxwdHIgfTsKICAgICBXZWJGcmFt
ZVByb3h5KiBtX2ZyYW1lV3JpdGluZ1RvQ2xpcGJvYXJkIHsgbnVsbHB0ciB9OwogI2VuZGlmIC8v
IFBMQVRGT1JNKEdUSykKLSAgICAKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGdldFBh
c3RlYm9hcmRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzKTsKKyAgICB2b2lk
IHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkVHlwZSwgV1RGOjpTdHJpbmcmKTsKKyAgICB2b2lkIHdyaXRlV2ViQ29udGVudFRv
UGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOworICAgIHZv
aWQgd3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwg
Y29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIFdlYlByb2Nlc3NQcm94eUxpc3QgbV93ZWJQ
cm9jZXNzUHJveHlMaXN0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzM2YTBhZDQ1MWMuLjcw
MTU0NDNlYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KQEAgLTU1LDQgKzU1LDExIEBAIG1lc3NhZ2VzIC0+
IFdlYlBhc3RlYm9hcmRQcm94eSB7CiAgICAgV3JpdGVUb0NsaXBib2FyZChTdHJpbmcgcGFzdGVi
b2FyZE5hbWUsIHN0cnVjdCBXZWJLaXQ6OldlYlNlbGVjdGlvbkRhdGEgcGFzdGVib2FyZENvbnRl
bnQpCiAgICAgUmVhZEZyb21DbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoc3Ry
dWN0IFdlYktpdDo6V2ViU2VsZWN0aW9uRGF0YSBwYXN0ZWJvYXJkQ29udGVudCkKICNlbmRpZgor
CisjaWYgUExBVEZPUk0oV1BFKQorICAgIEdldFBhc3RlYm9hcmRUeXBlcygpIC0+IChWZWN0b3I8
U3RyaW5nPiB0eXBlcykKKyAgICBSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5k
ZXgsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFN0cmluZyBzdHJpbmcpCisgICAgV3JpdGVX
ZWJDb250ZW50VG9QYXN0ZWJvYXJkKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVu
dCBjb250ZW50KQorICAgIFdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJk
VHlwZSwgU3RyaW5nIHRleHQpCisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDBkMzAyZGRhYjEzLi40ZDMyOWI0MGYzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0yODMsNyArMjgz
LDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgIG5vdGlmeVRoaXNXZWJQcm9jZXNzUG9vbFdh
c0NyZWF0ZWQoKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09D
T0EpICYmICFQTEFURk9STShXUEUpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRp
YWxpemUoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9U
ZXh0Q2hlY2tlcldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVj
a2VyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDM3MGZm
MmJhMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1Rl
eHRDaGVja2VyV1BFLmNwcApAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVGV4dENoZWNrZXIuaCIKKworI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFRleHRDaGVja2VyU3RhdGUgdGV4dENo
ZWNrZXJTdGF0ZTsKKworY29uc3QgVGV4dENoZWNrZXJTdGF0ZSYgVGV4dENoZWNrZXI6OnN0YXRl
KCkKK3sKKyAgICByZXR1cm4gdGV4dENoZWNrZXJTdGF0ZTsKK30KKwordm9pZCBUZXh0Q2hlY2tl
cjo6c2V0VGVzdGluZ01vZGUoYm9vbCkKK3sKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNUZXN0
aW5nTW9kZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2VkKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBU
ZXh0Q2hlY2tlcjo6c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNo
ZWNraW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
VGV4dENoZWNrZXI6OmNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChi
b29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6Omdy
YW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCitpbnQ2NF90IFRleHRDaGVja2VyOjp1bmlxdWVTcGVsbERvY3VtZW50VGFn
KFdlYlBhZ2VQcm94eSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNsb3NlU3BlbGxEb2N1bWVudFdpdGhUYWcoaW50
NjRfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpj
aGVja1NwZWxsaW5nT2ZTdHJpbmcoaW50NjRfdCwgU3RyaW5nVmlldywgaW50MzJfdCYsIGludDMy
X3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNo
ZWNrR3JhbW1hck9mU3RyaW5nKGludDY0X3QsIFN0cmluZ1ZpZXcsIFZlY3RvcjxXZWJDb3JlOjpH
cmFtbWFyRGV0YWlsPiYsIGludDMyX3QmLCBpbnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCitib29sIFRleHRDaGVja2VyOjpzcGVsbGluZ1VJSXNTaG93aW5nKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hl
Y2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hvd2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVk
V29yZChpbnQ2NF90LCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgVGV4dENoZWNrZXI6OnVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhp
bnQ2NF90LCBjb25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpnZXRHdWVzc2VzRm9yV29yZChp
bnQ2NF90LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBpbnQzMl90LCBWZWN0b3I8U3Ry
aW5nPiYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hl
Y2tlcjo6bGVhcm5Xb3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6aWdub3JlV29yZChpbnQ2NF90LCBjb25z
dCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNr
ZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0
aW9uPiwgaW50MzJfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2Vi
SW5zcGVjdG9yUHJveHlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJJ
bnNwZWN0b3JQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjViYWVlZTNjMTdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCisKKyNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUlu
c3BlY3RvcldpbmRvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURpZENsb3NlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURp
ZENsb3NlRm9yQ3Jhc2goKQoreworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUludmFsaWRhdGUoKQoreworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUhp
ZGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUJyaW5nSW5zcGVjdGVkUGFnZVRvRnJv
bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtSXNGcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVk
VVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yUGFnZVVSTCgpCit7CisgICAgcmV0
dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZS9N
YWluLmh0bWwiKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JUZXN0
UGFnZVVSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNw
ZWN0b3IvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwiKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3Rv
clByb3h5OjppbnNwZWN0b3JCYXNlVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJj
ZTovLy9vcmcvd3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlLyIpOworfQorCit1bnNpZ25lZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIFdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUF0dGFjaCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1EZXRhY2goKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dI
ZWlnaHQodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgYm9vbCwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtQXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YTIwMmFiZWI0ZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFnZVByb3h5V1BFLmNwcApAQCAtMCww
ICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKworI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlBhZ2VQcm94eTo6cGxhdGZv
cm1Jbml0aWFsaXplKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgV2Vi
UGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVy
biAiTW96aWxsYS81LjAgKExpbnV4OyB4ODZfNjQgR05VL0xpbnV4KSBBcHBsZVdlYktpdC82MDEu
MSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vOC4wIFNhZmFyaS82MDEuMSI7Cit9CisKK3Zv
aWQgV2ViUGFnZVByb3h5OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJjaD4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgU3RyaW5n
JiwgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJjaD4mKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1SZW1vdmVSZWNlbnRTZWFy
Y2hlcyhzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50KQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjplZGl0b3JTdGF0ZUNoYW5nZWQo
Y29uc3QgRWRpdG9yU3RhdGUmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dw
ZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dw
ZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi44ZDNkMGViNDZkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFByb3h5V1BFLmNwcApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHkuaCIKKworI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5OjpnZXRQYXN0ZWJvYXJkVHlwZXMoVmVjdG9yPFN0
cmluZz4mIHBhc3RlYm9hcmRUeXBlcykKK3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS5nZXRU
eXBlcyhwYXN0ZWJvYXJkVHlwZXMpOworfQorCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6cmVh
ZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmRUeXBlLCBXVEY6OlN0cmluZyYgdmFsdWUpCit7CisgICAgdmFsdWUgPSBQbGF0Zm9ybVBh
c3RlYm9hcmQoKS5yZWFkU3RyaW5nKGluZGV4LCBwYXN0ZWJvYXJkVHlwZSk7Cit9CisKK3ZvaWQg
V2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29uc3QgV2Vi
Q29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgUGxhdGZvcm1QYXN0
ZWJvYXJkKCkud3JpdGUoY29udGVudCk7Cit9CisKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3
cml0ZVN0cmluZ1RvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25z
dCBTdHJpbmcmIHRleHQpCit7CisgICAgUGxhdGZvcm1QYXN0ZWJvYXJkKCkud3JpdGUocGFzdGVi
b2FyZFR5cGUsIHRleHQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmODFmY2RhMWNmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAK
QEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMu
aCIKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtSW5pdGlhbGl6ZVN0b3JlKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0
Zm9ybVVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxh
dGZvcm1VcGRhdGVCb29sVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgYm9vbCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0
ZVVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIHVpbnQzMl90KQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlRG91
YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgZG91YmxlKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlRmxvYXRWYWx1
ZUZvcktleShjb25zdCBTdHJpbmcmLCBmbG9hdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldFN0cmluZ1VzZXJWYWx1ZUZvcktl
eShjb25zdCBTdHJpbmcmLCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldEJvb2xV
c2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgYm9vbCYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRm
b3JtR2V0VUludDMyVXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIHVpbnQzMl90JikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQ
cmVmZXJlbmNlczo6cGxhdGZvcm1HZXREb3VibGVVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgZG91YmxlJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5mZGU0ZjMxNzI0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCkBAIC0wLDAgKzEsMTYzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVs
ZWN0cm9uaWNzIEx0ZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorCisjaW5jbHVkZSAiQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJv
eHkuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KKyNpbmNs
dWRlIDxjc3RkbGliPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworLy8gRklY
TUU6IE1lcmdlIHdpdGggV2ViUHJvY2Vzc1Bvb2xHdGs/IEFic3RyYWN0IHRoZSBjb21tb24gcGFy
dHM/CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIp
CitzdGF0aWMgdm9pZCBpbml0SW5zcGVjdG9yU2VydmVyKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBp
bml0aWFsaXplZCA9IGZhbHNlOworICAgIGlmIChpbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIFN0cmluZyBzZXJ2ZXJBZGRyZXNzKGdf
Z2V0ZW52KCJXRUJLSVRfSU5TUEVDVE9SX1NFUlZFUiIpKTsKKworICAgIGlmICghc2VydmVyQWRk
cmVzcy5pc051bGwoKSkgeworICAgICAgICBTdHJpbmcgYmluZEFkZHJlc3MgPSAiMTI3LjAuMC4x
IjsKKyAgICAgICAgdW5zaWduZWQgc2hvcnQgcG9ydCA9IDI5OTk7CisKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gcmVzdWx0OworICAgICAgICBzZXJ2ZXJBZGRyZXNzLnNwbGl0KCc6JywgcmVzdWx0
KTsKKworICAgICAgICBpZiAocmVzdWx0LnNpemUoKSA9PSAyKSB7CisgICAgICAgICAgICBiaW5k
QWRkcmVzcyA9IHJlc3VsdFswXTsKKyAgICAgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAgICAg
ICAgICAgIHBvcnQgPSByZXN1bHRbMV0udG9JbnQoJm9rKTsKKyAgICAgICAgICAgIGlmICghb2sp
IHsKKyAgICAgICAgICAgICAgICBwb3J0ID0gMjk5OTsKKyAgICAgICAgICAgICAgICBMT0dfRVJS
T1IoIkNvdWxkbid0IHBhcnNlIHRoZSBwb3J0LiBVc2UgMjk5OSBpbnN0ZWFkLiIpOworICAgICAg
ICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3Qg
cGFyc2UgJXMsIHdyb25nIGZvcm1hdD8gVXNlIDEyNy4wLjAuMToyOTk5IGluc3RlYWQuIiwgc2Vy
dmVyQWRkcmVzcy51dGY4KCkuZGF0YSgpKTsKKworICAgICAgICBpZiAoIVdlYkluc3BlY3RvclNl
cnZlcjo6c2luZ2xldG9uKCkubGlzdGVuKGJpbmRBZGRyZXNzLCBwb3J0KSkKKyAgICAgICAgICAg
IExPR19FUlJPUigiQ291bGRuJ3Qgc3RhcnQgbGlzdGVuaW5nIG9uOiBJUCBhZGRyZXNzPSVzLCBw
b3J0PSVkLiIsIGJpbmRBZGRyZXNzLnV0ZjgoKS5kYXRhKCksIHBvcnQpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgTE9HKEluc3BlY3RvclNlcnZlciwgIlRvIHN0YXJ0IGluc3BlY3Rv
ciBzZXJ2ZXIgc2V0IFdFQktJVF9JTlNQRUNUT1JfU0VSVkVSIHRvIDEyNy4wLjAuMToyOTk5IGZv
ciBleGFtcGxlLiIpOworfQorI2VuZGlmCisKK1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBjYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3Vz
ZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAiYXBwY2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJu
IFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY2FjaGVEaXJlY3Rv
cnkuZ2V0KCkpOworfQorCitXVEY6OlN0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZv
cm1EZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4g
Y2FjaGVEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAi
d3BlIiwgIm1lZGlhY2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmlu
Z0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQor
Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIGlmICht
X3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+cmVnaXN0ZXJT
aGFyZWRSZXNvdXJjZUxvYWRPYnNlcnZlcigpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisgICAgaW5pdElu
c3BlY3RvclNlcnZlcigpOworI2VuZGlmCisKKyAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlz
YWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQgfHwgY2FjaGVNb2RlbCgpID09IENhY2hlTW9k
ZWxEb2N1bWVudFZpZXdlcjsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZh
bGlkYXRlQ29udGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdl
YlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9y
eSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9m
aWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgbnVsbHB0
cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKGRhdGFiYXNlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29s
OjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgpCit7Cisg
ICAgR1VuaXF1ZVB0cjxnY2hhcj4gaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9m
aWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgImluZGV4
ZWRkYiIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihpbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisK
K1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0aCgp
IGNvbnN0Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWls
ZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgImljb25kYXRhYmFzZSIs
IG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihkYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9j
ZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkKK3sK
KyAgICBHVW5pcXVlUHRyPGdjaGFyPiBzdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUo
Z19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIpKTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihz
dG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdh
Y3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUo
Z19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgIm1lZGlha2V5cyIsIG51bGxwdHIpKTsKKyAg
ICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihtZWRp
YUtleXNTdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29s
OjpsZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIEdV
bmlxdWVQdHI8Y2hhcj4gZGlza0NhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRf
dXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4g
V2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkaXNrQ2FjaGVEaXJl
Y3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3Jt
RGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVl
UHRyPGdjaGFyPiBqYXZhU2NyaXB0Q29yZUNvbmZpZ0RpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1l
KGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIsICJKYXZhU2NyaXB0Q29yZURlYnVnIiwgbnVs
bHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKGphdmFTY3JpcHRDb3JlQ29uZmlnRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0MlByZWZpeC5oIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCmluZGV4
IDU3NTA5Yjk3YTRjLi5lMmJlODA5ZDhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0MlByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaApAQCAtNTcs
NyArNTcsNyBAQAogCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSAx
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IGM5MWI0NWE5YzUxLi4wOGE2
OGQwNzk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtMjk3LDcgKzI5Nyw3IEBAIHZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpyZWRvKCkKICAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVVbmRvUmVkbyhzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2Vi
UGFnZVByb3h5OjpSZWRvKSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVVbmRvUmVk
bzo6UmVwbHkocmVzdWx0KSk7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0o
Q09DT0EpCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZP
Uk0oV1BFKQogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9h
cmRFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKG1fcGFnZS0+aGFuZGxlRWRpdGluZ0tleWJvYXJk
RXZlbnQoZXZlbnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA1NTM3
ZjE5ZjA2ZC4uMmFjNWZkYTQxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xNzk4LDQgKzE3OTgsMTMgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmluaXNo
ZWRMb2FkaW5nSWNvbih1aW50NjRfdCBsb2FkSWRlbnRpZmllciwgU2hhcmVkQnUKICAgICB9CiB9
CiAKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFBhaW50QnJva2VuSW1hZ2UoY29u
c3QgV2ViQ29yZTo6VVJMJikgY29uc3QKK3sKKyNpZiBQTEFURk9STShXUEUpCisgICAgcmV0dXJu
IGZhbHNlOworI2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAyMTJmMTBmZGRl
MS4uM2YwM2U2OTM5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI2Miw2
ICsyNjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0TG9hZERlY2lzaW9uRm9ySWNvbihjb25z
dCBXZWJDb3JlOjpMaW5rSWNvbiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOwogICAgIHZv
aWQgZmluaXNoZWRMb2FkaW5nSWNvbih1aW50NjRfdCBsb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6
U2hhcmVkQnVmZmVyKikgZmluYWw7CiAKKyAgICBib29sIHNob3VsZFBhaW50QnJva2VuSW1hZ2Uo
Y29uc3QgV2ViQ29yZTo6VVJMJikgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBXZWJGcmFtZSogbV9m
cmFtZTsKICAgICBSZWZQdHI8UGx1Z2luVmlldz4gbV9wbHVnaW5WaWV3OwogICAgIGJvb2wgbV9o
YXNTZW50UmVzcG9uc2VUb1BsdWdpblZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKaW5kZXggMmVkZjRiNzZkNTQuLmIyNTcxNjgwZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0zNjAsNCArMzYwLDMxIEBAIFJlZjxTZWxlY3Rpb25EYXRh
PiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRGcm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYg
cGFzdGViCiAKICNlbmRpZiAvLyBQTEFURk9STShHVEspCiAKKyNpZiBQTEFURk9STShXUEUpCisv
LyBQYXN0ZWJvYXJkU3RyYXRlZ3kKKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFR5
cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFzdGVi
b2FyZFByb3h5OjpHZXRQYXN0ZWJvYXJkVHlwZXMoKSwgTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQ
cm94eTo6R2V0UGFzdGVib2FyZFR5cGVzOjpSZXBseSh0eXBlcyksIDApOworfQorCitTdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKQoreworICAgIFN0cmluZyB2YWx1ZTsKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkU3RyaW5nRnJvbVBhc3RlYm9h
cmQoaW5kZXgsIHBhc3RlYm9hcmRUeXBlKSwgTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6
UmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkOjpSZXBseSh2YWx1ZSksIDApOworICAgIHJldHVybiB2
YWx1ZTsKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRlVG9QYXN0ZWJvYXJk
KGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6V3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNv
bnRlbnQpLCAwKTsKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRlVG9QYXN0
ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OldyaXRlU3RyaW5nVG9QYXN0ZWJv
YXJkKHBhc3RlYm9hcmRUeXBlLCB0ZXh0KSwgMCk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShX
UEUpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKaW5kZXggZTQzODdjOTMwMjEuLmFlYzc5YmNmYzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmgKQEAgLTg2LDEwICs4NiwxOCBAQCBwcml2YXRlOgogICAgIGxvbmcgc2V0UGF0
aG5hbWVzRm9yVHlwZShjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIGxv
bmcgc2V0U3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICNlbmRpZgor
CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHZvaWQgd3JpdGVUb0NsaXBib2FyZChjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBXZWJDb3JlOjpTZWxlY3Rpb25EYXRhJikgb3ZlcnJp
ZGU7CiAgICAgUmVmPFdlYkNvcmU6OlNlbGVjdGlvbkRhdGE+IHJlYWRGcm9tQ2xpcGJvYXJkKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShXUEUpCisgICAgdmlydHVhbCB2b2lkIGdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBl
cykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJk
KGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRX
ZWJDb250ZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJk
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50
V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dl
YkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uZWQwMzRiMDI2NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAK
QEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVD
bGllbnQuaCIKKworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJDb250
ZXh0TWVudUNsaWVudDo6bG9va1VwSW5EaWN0aW9uYXJ5KFdlYkNvcmU6OkZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkNvbnRleHRNZW51Q2xpZW50Ojppc1Nw
ZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
Kwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3BlYWsoY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50OjpzdG9w
U3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGll
bnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUv
V2ViRWRpdG9yQ2xpZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYmRjYTMwMjRjZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCkBAIC0wLDAg
KzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJFZGl0b3JDbGllbnQuaCIKKwor
I2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRG9j
dW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RXZlbnROYW1lcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0tleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vZGUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworLy8gVGhlIGlkZWEgZm9yIHRoZSBhcnJheS9tYXAgYmVsb3cgY29tZXMgZnJvbSBCbGlu
aydzIEVkaXRpbmdCZWhhdmlvci5jcHAuCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBDdHJsS2V5
ICA9IDEgPDwgMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRLZXkgICA9IDEgPDwgMTsKK3N0
YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEgPDwgMjsKK3N0YXRpYyBjb25zdCB1bnNp
Z25lZCBNZXRhS2V5ICA9IDEgPDwgMzsKKworLy8gS2V5cyB3aXRoIHNwZWNpYWwgbWVhbmluZy4g
VGhlc2Ugd2lsbCBiZSBkZWxlZ2F0ZWQgdG8gdGhlIGVkaXRvciB1c2luZworLy8gdGhlIGV4ZWND
b21tYW5kKCkgbWV0aG9kCitzdHJ1Y3QgS2V5RG93bkVudHJ5IHsKKyAgICB1bnNpZ25lZCB2aXJ0
dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBuYW1lOwor
fTsKKworc3RydWN0IEtleVByZXNzRW50cnkgeworICAgIHVuc2lnbmVkIGNoYXJDb2RlOworICAg
IHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworfTsKKworc3RhdGlj
IGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50cmllc1tdID0geworICAgIHsgVktfTEVGVCwg
ICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVMZWZ0
QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAgQ3Ry
bEtleSwgICAgICAgICAgICAiTW92ZVdvcmRMZWZ0IiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5IHwgU2hpZnRLZXksCisgICAgICAgICJNb3Zl
V29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVJp
Z2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBT
aGlmdEtleSwgICAgICAgICAgICJNb3ZlUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVXb3JkUmln
aHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgQ3RybEtl
eSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRSaWdodEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICB9
LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVXAiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19VUCwgICAgIFNoaWZ0S2V5LCAg
ICAgICAgICAgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX1BSSU9SLCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VVcEFuZE1vZGlmeVNl
bGVjdGlvbiIgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICAwLCAgICAgICAgICAgICAg
ICAgICJNb3ZlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19ET1dOLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVEb3duQW5kTW9kaWZ5U2VsZWN0aW9u
IiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgU2hpZnRLZXksICAgICAgICAgICAi
TW92ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICB9LAorICAgIHsgVktfVVAs
ICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFyYWdyYXBoQmFja3dhcmRBbmRNb2RpZnlT
ZWxlY3Rpb24iIH0sCisgICAgeyBWS19ET1dOLCAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVQ
YXJhZ3JhcGhGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiAgfSwKKyAgICB7IFZLX1BSSU9SLCAg
MCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VVcCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfTkVYVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUGFnZURv
d24iICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIDAsICAg
ICAgICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZSIgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX0hPTUUsICAgU2hpZnRLZXksCisgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdP
ZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZE
b2N1bWVudCIgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5IHwgU2hp
ZnRLZXksCisgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0
aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgMCwgICAg
ICAgICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfRU5ELCAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVG9FbmRPZkxpbmVB
bmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0cmxLZXksICAg
ICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0VORCwgICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVRvRW5kT2ZE
b2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19CQUNLLCAgIDAsICAgICAgICAgICAgICAgICAgIkRlbGV0ZUJhY2t3YXJk
IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgU2hpZnRLZXks
ICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfREVMRVRFLCAwLCAgICAgICAgICAgICAgICAgICJEZWxldGVGb3J3YXJkIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIEN0cmxLZXksICAgICAg
ICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0RFTEVURSwgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29yZEZvcndhcmQiICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0InLCAgICAgICAgIEN0cmxLZXksICAgICAgICAg
ICJUb2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnSScs
ICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZUl0YWxpYyIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7ICdVJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVG9n
Z2xlVW5kZXJsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRVNDQVBF
LCAwLCAgICAgICAgICAgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19PRU1fUEVSSU9ELCBDdHJsS2V5LCAgICAgICAgIkNhbmNlbCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RBQiwgICAgMCwg
ICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfVEFCLCAgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNrdGFi
IiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIDAsICAgICAg
ICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX1JFVFVSTiwgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRLZXksICAgICAg
ICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2VydE5ld2xpbmUiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgU2hpZnRLZXksICAgICAgICAg
ICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIC8vIFRo
ZXNlIHByb2JhYmx5IG5lZWQgaGFuZGxpbmcgc29tZXdoZXJlIGVsc2Ugc28gZG8gbm90IGV4ZWN1
dGUgdGhlbS4gVGhlCisgICAgLy8gJ0N1dCcgY29tbWFuZCBpcyByZW1vdmluZyB0ZXh0IHNvIGxl
dCdzIGF2b2lkIGxvc2luZyB0aGUgdXNlciBsb3NpbmcgZGF0YQorICAgIC8vIHVudGlsIHdlIGlt
cGxlbWVudCBjbGlwYm9hcmQgc3VwcG9ydCB3aGVyZXZlciBpdCBzaG91bGQgYmUuCisgICAgeyBW
S19JTlNFUlQsIEN0cmxLZXksICAgICAgICAgICAgIkNvcHkiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VSVCwgU2hpZnRLZXksICAgICAgICAgICAi
UGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfREVM
RVRFLCBTaGlmdEtleSwgICAgICAgICAgICJDdXQiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnQycsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIkNvcHki
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdWJywgICAgICAg
ICBDdHJsS2V5LCAgICAgICAgICAiUGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgJ1YnLCAgICAgICAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIlBhc3RlQW5k
TWF0Y2hTdHlsZSIgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnWCcsICAgICAgICAgQ3Ry
bEtleSwgICAgICAgICAgIkN1dCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdBJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiU2VsZWN0QWxsIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1onLCAgICAgICAgIEN0cmxLZXks
ICAgICAgICAgICJVbmRvIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyAnWicsICAgICAgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiUmVkbyIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdZJywgICAgICAgICBDdHJsS2V5LCAgICAg
ICAgICAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfSU5TRVJULCAwLCAgICAgICAgICAgICAgICAgICJPdmVyV3JpdGUiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMgY29uc3QgS2V5UHJlc3NFbnRyeSBrZXlQ
cmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdcdCcsICAgMCwgICAgICAgICAgICAgICAgICAiSW5z
ZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1x0Jywg
ICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydE5l
d2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQ3Ry
bEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgJ1xyJywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRMaW5lQnJl
YWsiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEFsdEtleSwg
ICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3bGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIqIGlu
dGVycHJldEtleUV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQmIGV2ZW50KQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGludCwgY29uc3QgY2hhcio+PiBrZXlEb3duQ29tbWFu
ZHNNYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8aW50LCBjb25zdCBjaGFy
Kj4+IGtleVByZXNzQ29tbWFuZHNNYXA7CisKKyAgICBpZiAoa2V5RG93bkNvbW1hbmRzTWFwLmdl
dCgpLmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FS
UkFZX0xFTkdUSChrZXlEb3duRW50cmllcyk7IGkrKykKKyAgICAgICAgICAgIGtleURvd25Db21t
YW5kc01hcC5nZXQoKS5zZXQoa2V5RG93bkVudHJpZXNbaV0ubW9kaWZpZXJzIDw8IDE2IHwga2V5
RG93bkVudHJpZXNbaV0udmlydHVhbEtleSwga2V5RG93bkVudHJpZXNbaV0ubmFtZSk7CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleVByZXNzRW50
cmllcyk7IGkrKykKKyAgICAgICAgICAgIGtleVByZXNzQ29tbWFuZHNNYXAuZ2V0KCkuc2V0KGtl
eVByZXNzRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlQcmVzc0VudHJpZXNbaV0uY2hh
ckNvZGUsIGtleVByZXNzRW50cmllc1tpXS5uYW1lKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBt
b2RpZmllcnMgPSAwOworICAgIGlmIChldmVudC5zaGlmdEtleSgpKQorICAgICAgICBtb2RpZmll
cnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LmFsdEtleSgpKQorICAgICAgICBtb2RpZmll
cnMgfD0gQWx0S2V5OworICAgIGlmIChldmVudC5jdHJsS2V5KCkpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBDdHJsS2V5OworICAgIGlmIChldmVudC5tZXRhS2V5KCkpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBNZXRhS2V5OworCisgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5
ZG93bkV2ZW50KSB7CisgICAgICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVu
dC5rZXlDb2RlKCk7CisgICAgICAgIHJldHVybiBtYXBLZXkgPyBrZXlEb3duQ29tbWFuZHNNYXAu
Z2V0KCkuZ2V0KG1hcEtleSkgOiBudWxscHRyOworICAgIH0KKworICAgIGludCBtYXBLZXkgPSBt
b2RpZmllcnMgPDwgMTYgfCBldmVudC5jaGFyQ29kZSgpOworICAgIHJldHVybiBtYXBLZXkgPyBr
ZXlQcmVzc0NvbW1hbmRzTWFwLmdldCgpLmdldChtYXBLZXkpIDogbnVsbHB0cjsKK30KKworc3Rh
dGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50JiBldmVu
dCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBwbGF0Zm9ybUV2ZW50KQoreworICAgIFN0
cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2ZW50KGV2ZW50KTsKKworICAgIGlmICgh
Y29tbWFuZE5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGZyYW1lLmVkaXRvcigpLmNvbW1hbmQo
Y29tbWFuZE5hbWUpLmV4ZWN1dGUoKTsKKyAgICAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIERvbid0IGluc2VydCBudWxsIG9y
IGNvbnRyb2wgY2hhcmFjdGVycyBhcyB0aGV5IGNhbiByZXN1bHQgaW4gdW5leHBlY3RlZCBiZWhh
dmlvdXIKKyAgICBpZiAoZXZlbnQuY2hhckNvZGUoKSA8ICcgJykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gRG9uJ3QgaW5zZXJ0IGFueXRoaW5nIGlmIGEgbW9kaWZpZXIgaXMgcHJlc3NlZCBh
bmQgaXQgaGFzIG5vdCBiZWVuIGhhbmRsZWQgeWV0CisgICAgaWYgKHBsYXRmb3JtRXZlbnQuY3Ry
bEtleSgpIHx8IHBsYXRmb3JtRXZlbnQuYWx0S2V5KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChmcmFtZS5lZGl0b3IoKS5pbnNlcnRUZXh0KHBsYXRmb3JtRXZlbnQudGV4dCgpLCAmZXZl
bnQpKQorICAgICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOworfQorCitzdGF0aWMgdm9p
ZCBoYW5kbGVLZXlEb3duKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpCit7CisgICAgU3RyaW5nIGNvbW1hbmROYW1lID0gaW50
ZXJwcmV0S2V5RXZlbnQoZXZlbnQpOworICAgIGlmIChjb21tYW5kTmFtZS5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHNob3VsZG4ndCBpbnNlcnQgdGV4dCB0aHJvdWdo
IHRoZSBlZGl0b3IuIExldCBXZWJDb3JlIGRlY2lkZQorICAgIC8vIGhvdyB0byBoYW5kbGUgdGhh
dCAoc2F5LCBUYWIsIHdoaWNoIGNvdWxkIGFsc28gYmUgdXNlZCB0bworICAgIC8vIGNoYW5nZSBm
b2N1cykuCisgICAgRWRpdG9yOjpDb21tYW5kIGNvbW1hbmQgPSBmcmFtZS5lZGl0b3IoKS5jb21t
YW5kKGNvbW1hbmROYW1lKTsKKyAgICBpZiAoY29tbWFuZC5pc1RleHRJbnNlcnRpb24oKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY29tbWFuZC5leGVjdXRlKCk7CisgICAgZXZlbnQuc2V0RGVm
YXVsdEhhbmRsZWQoKTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJk
RXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgTm9kZSogbm9kZSA9
IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAgQVNTRVJUKG5vZGUpOworICAgIEZyYW1l
KiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUpOwor
CisgICAgLy8gRklYTUU6IFJlb3JkZXIgdGhlIGNoZWNrcyBpbiBhIG1vcmUgc2Vuc2libGUgd2F5
LgorCisgICAgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50KiBwbGF0Zm9ybUV2ZW50ID0gZXZl
bnQtPmtleUV2ZW50KCk7CisgICAgaWYgKCFwbGF0Zm9ybUV2ZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBJZiB0aGlzIHdhcyBhbiBJTUUgZXZlbnQgZG9uJ3QgZG8gYW55dGhpbmcuCisg
ICAgaWYgKHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX1BST0NF
U1NLRVkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvbid0IGFsbG93IHRleHQgaW5zZXJ0
aW9uIGZvciBub2RlcyB0aGF0IGNhbm5vdCBlZGl0LgorICAgIGlmICghZnJhbWUtPmVkaXRvcigp
LmNhbkVkaXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gVGhpcyBpcyBqdXN0IGEgbm9y
bWFsIHRleHQgaW5zZXJ0aW9uLCBzbyB3YWl0IHRvIGV4ZWN1dGUgdGhlIGluc2VydGlvbgorICAg
IC8vIHVudGlsIGEga2V5cHJlc3MgZXZlbnQgaGFwcGVucy4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0
IHRoZSBpbnNlcnRpb24gd2lsbCBub3QKKyAgICAvLyBiZSByZWZsZWN0ZWQgaW4gdGhlIGNvbnRl
bnRzIG9mIHRoZSBmaWVsZCB1bnRpbCB0aGUga2V5dXAgRE9NIGV2ZW50LgorICAgIGlmIChldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQorICAgICAgICByZXR1cm4g
aGFuZGxlS2V5UHJlc3MoKmZyYW1lLCAqZXZlbnQsICpwbGF0Zm9ybUV2ZW50KTsKKyAgICBpZiAo
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KQorICAgICAgICByZXR1
cm4gaGFuZGxlS2V5RG93bigqZnJhbWUsICpldmVudCwgKnBsYXRmb3JtRXZlbnQpOworfQorCit2
b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKFdlYkNvcmU6Oktl
eWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCog
cGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOworICAgIGlmIChwbGF0Zm9ybUV2ZW50
ICYmIHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX1BST0NFU1NL
RVkpCisgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYWI4MzdiMGE0ZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQ
RS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUG9wdXBN
ZW51LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit2b2lkIFdlYlBvcHVwTWVudTo6c2V0VXBQbGF0Zm9ybURhdGEoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIFBsYXRmb3JtUG9wdXBNZW51RGF0YSYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdC5jcHAKaW5kZXggNjBlOTE2Nzk5YjMuLmQzZGY0NmExODdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwCkBAIC03NCwxMCArNzQsMTAgQEAgVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KFdlYlBhZ2UmIHdlYlAK
ICAgICAgICAgLy8gRG8gbm90IGRvIGZyYW1lIHN5bmMgd2hlbiByZW5kZXJpbmcgb2Zmc2NyZWVu
IGluIHRoZSB3ZWIgcHJvY2VzcyB0byBlbnN1cmUgdGhhdCBTd2FwQnVmZmVycyBuZXZlciBibG9j
a3MuCiAgICAgICAgIC8vIFJlbmRlcmluZyB0byB0aGUgYWN0dWFsIHNjcmVlbiB3aWxsIGhhcHBl
biBsYXRlciBhbnl3YXkgc2luY2UgdGhlIFVJIHByb2Nlc3Mgc2NoZWR1bGVzIGEgcmVkcmF3IGZv
ciBldmVyeSB1cGRhdGUsCiAgICAgICAgIC8vIHRoZSBjb21wb3NpdG9yIHdpbGwgdGFrZSBjYXJl
IG9mIHN5bmNpbmcgdG8gdmJsYW5rLgotICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENv
bXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHNjYWxlZFNpemUsIHNjYWxlRmFj
dG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBUaHJlYWRlZENvbXBvc2l0b3I6OlNob3VsZERvRnJh
bWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOworICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRl
ZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNp
emUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBUaHJlYWRlZENvbXBvc2l0b3I6
OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOwogICAgICAgICBtX2xheWVyVHJl
ZUNvbnRleHQuY29udGV4dElEID0gbV9zdXJmYWNlLT5zdXJmYWNlSUQoKTsKICAgICB9IGVsc2UK
LSAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUobV9jb21w
b3NpdG9yQ2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvcik7CisgICAgICAgIG1fY29tcG9z
aXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNsaWVudCwgd2Vi
UGFnZSwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IpOwogCiAgICAgZGlkQ2hhbmdlVmlld3BvcnQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEuY3BwCmluZGV4IDJlNzgwZDkxYmU1Li41ZjA5M2FjN2I1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCkBAIC0zNyw2ICszNyw4
IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEuaCIKICNpbmNsdWRlICJUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oIgorI2Vs
aWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgIkRyYXdpbmdBcmVhV1BFLmgiCiAjZWxzZQogI2lu
Y2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgogI2VuZGlmCkBAIC01NSw2ICs1Nyw5IEBAIHN0ZDo6
dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQ
YWdlLCBjb25zdCBXZWJQYWdlCiAjZW5kaWYKICAgICBjYXNlIERyYXdpbmdBcmVhVHlwZVJlbW90
ZUxheWVyVHJlZToKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOworI2VsaWYgUExBVEZPUk0oV1BF
KQorICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlV1BFOgorICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxEcmF3aW5nQXJlYVdQRT4od2ViUGFnZSwgcGFyYW1ldGVycyk7CiAjZWxzZQogICAg
IGNhc2UgRHJhd2luZ0FyZWFUeXBlSW1wbDoKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8RHJhd2luZ0FyZWFJbXBsPih3ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyMWIxMmNkYmUyMy4uZTUx
MmJiYjY3ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlciogV2ViUGFnZTo6bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hCiAgICAg
cmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmdldCgpOwogfQog
Ci0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFURk9STShH
VEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKIGJvb2wgV2ViUGFnZTo6
aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogewogICAgIE5v
ZGUqIG5vZGUgPSBldnQtPnRhcmdldCgpLT50b05vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDBiMDU2MWJiMTY3Li4yMzQxYzEzODA1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDE4
LDcgKzEwMTgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAotI2lmICFQTEFURk9STShD
T0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXUEUpCiAgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IFdlYkNvcmU6OktleWJvYXJkRXZl
bnQqKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlMjNkMzQwZDkxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3Bw
CkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFu
YWdlci5oIgorCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0NvbXBvc2l0aW5n
TWFuYWdlcjo6fkNvbXBvc2l0aW5nTWFuYWdlcigpCit7CisgICAgQVNTRVJUKG1fY29ubmVjdGlv
bkZkID09IC0xKTsKK30KKwordm9pZCBDb21wb3NpdGluZ01hbmFnZXI6OmVzdGFibGlzaENvbm5l
Y3Rpb24oV2ViUGFnZSYgd2ViUGFnZSkKK3sKKyAgICBJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlv
bkhhbmRsZTsKKyAgICB3ZWJQYWdlLnNlbmRTeW5jKE1lc3NhZ2VzOjpDb21wb3NpdGluZ01hbmFn
ZXJQcm94eTo6RXN0YWJsaXNoQ29ubmVjdGlvbigpLAorICAgICAgICBNZXNzYWdlczo6Q29tcG9z
aXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5lY3Rpb246OlJlcGx5KGNvbm5lY3Rpb25I
YW5kbGUpKTsKKworICAgIG1fY29ubmVjdGlvbkZkID0gY29ubmVjdGlvbkhhbmRsZS5yZWxlYXNl
RmlsZURlc2NyaXB0b3IoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01h
bmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjYzMWEzMWM5
OTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb21wb3NpdGluZ01h
bmFnZXJfaAorI2RlZmluZSBDb21wb3NpdGluZ01hbmFnZXJfaAorCisjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitj
bGFzcyBDb21wb3NpdGluZ01hbmFnZXIgZmluYWwgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KENvbXBvc2l0aW5nTWFuYWdlcik7CitwdWJsaWM6CisgICAgQ29tcG9zaXRpbmdNYW5hZ2VyKCkg
PSBkZWZhdWx0OworICAgIH5Db21wb3NpdGluZ01hbmFnZXIoKTsKKworICAgIHZvaWQgZXN0YWJs
aXNoQ29ubmVjdGlvbihXZWJQYWdlJik7CisgICAgaW50IHJlbGVhc2VDb25uZWN0aW9uRmQoKSB7
IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fY29ubmVjdGlvbkZkLCAtMSk7IH07CisKK3ByaXZhdGU6
CisgICAgaW50IG1fY29ubmVjdGlvbkZkIHsgLTEgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gQ29tcG9zaXRpbmdNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNDQ3YWM4Y2IwZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0Fy
ZWFXUEUuY3BwCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEcmF3
aW5nQXJlYVdQRS5oIgorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2lu
Y2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitE
cmF3aW5nQXJlYVdQRTo6RHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5
cGVXUEUsIHdlYlBhZ2UpCit7CisgICAgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNl
dEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIGVudGVyQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoMCk7Cit9CisKK0RyYXdpbmdBcmVhV1BFOjp+RHJhd2luZ0FyZWFXUEUoKQorewor
fQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpsYXllckhvc3REaWRGbHVzaExheWVycygpCit7Cisg
ICAgbV93ZWJQYWdlLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OkVudGVyQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoMCwgbV9sYXllclRyZWVIb3N0LT5sYXllclRyZWVDb250ZXh0
KCkpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0TmVlZHNEaXNwbGF5KCkKK3sKKyAg
ICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5vbkNv
bXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6
OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEFTU0VS
VChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Tm9uQ29tcG9zaXRl
ZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QocmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJikKK3sK
KyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNjcm9s
bE5vbkNvbXBvc2l0ZWRDb250ZW50cyhzY3JvbGxSZWN0KTsKK30KKwordm9pZCBEcmF3aW5nQXJl
YVdQRTo6cGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkKK3sKKyAgICBpZiAobV9s
YXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnBhZ2VCYWNrZ3JvdW5kVHJh
bnNwYXJlbmN5Q2hhbmdlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJlcGFp
bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgRHJhd2luZ0FyZWFXUEU6
OmZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgcmV0dXJuIG1f
bGF5ZXJUcmVlSG9zdCAmJiBtX2xheWVyVHJlZUhvc3QtPmZvcmNlUmVwYWludEFzeW5jKGNhbGxi
YWNrSUQpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzZXRMYXllclRyZWVTdGF0ZUlzRnJv
emVuKGJvb2wgZnJvemVuKQoreworICAgIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbiA9IGZyb3pl
bjsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRl
UHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAgbV93
ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoc3Rv
cmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZUNvbXBvc2l0aW5n
TW9kZUtleSgpKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6Om1haW5GcmFtZUNvbnRlbnRT
aXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIGlmIChtX2xh
eWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29udGVudHNTaXplQ2hhbmdl
ZChzaXplKTsKK30KKworR3JhcGhpY3NMYXllckZhY3RvcnkqIERyYXdpbmdBcmVhV1BFOjpncmFw
aGljc0xheWVyRmFjdG9yeSgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAg
cmV0dXJuIG1fbGF5ZXJUcmVlSG9zdC0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0Um9vdENvbXBvc2l0aW5n
TGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQobV9sYXll
clRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RDb21wb3NpdGluZ0xheWVy
KGdyYXBoaWNzTGF5ZXIpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAg
bV9sYXllclRyZWVIb3N0LT5zY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBEcmF3aW5n
QXJlYVdQRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpCit7Cisg
ICAgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKK30KKworI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCitSZWZQdHI8V2ViQ29yZTo6RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBEcmF3aW5nQXJlYVdQRTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25p
dG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKK3sKKyAgICBpZiAobV9sYXllclRyZWVI
b3N0KQorICAgICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVEaXNwbGF5UmVmcmVz
aE1vbml0b3IoZGlzcGxheUlEKTsKKworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJD
b3JlOjpGcmFtZSogZnJhbWUsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5Um9v
dExheWVyKQoreworICAgIGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2V0Vmlld092ZXJsYXlSb290TGF5ZXIodmlld092ZXJsYXlSb290TGF5ZXIpOworfQorCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQordm9pZCBEcmF3aW5nQXJlYVdQRTo6
ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYm
KQoreworfQorI2VuZGlmCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShU
RVhUVVJFX01BUFBFUikKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpCit7Cit9CisjZW5kaWYKKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QsIGJvb2wsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBz
Y3JvbGxPZmZzZXQpCit7CisgICAgbV93ZWJQYWdlLnNldERldmljZVNjYWxlRmFjdG9yKGRldmlj
ZVNjYWxlRmFjdG9yKTsKKyAgICBtX3dlYlBhZ2Uuc2V0U2l6ZShzaXplKTsKKyAgICBtX3dlYlBh
Z2UubGF5b3V0SWZOZWVkZWQoKTsKKyAgICBtX3dlYlBhZ2Uuc2Nyb2xsTWFpbkZyYW1lSWZOb3RB
dE1heFNjcm9sbFBvc2l0aW9uKHNjcm9sbE9mZnNldCk7CisKKyAgICBBU1NFUlQobV9sYXllclRy
ZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobV93ZWJQYWdlLnNp
emUoKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRpZFVwZGF0ZSgpCit7Cit9CisKK3Zv
aWQgRHJhd2luZ0FyZWFXUEU6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoR3JhcGhp
Y3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9zdCk7
CisgICAgbV9sYXllclRyZWVIb3N0ID0gTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKG1fd2ViUGFnZSk7
CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xh
eWVyKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNjaGVk
dWxlZExheWVyRmx1c2godHJ1ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdl
KG1fd2ViUGFnZS5zaXplKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDZjNTM1NGU0ZmQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0Ry
YXdpbmdBcmVhV1BFLmgKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERyYXdpbmdBcmVhV1BFX2gKKyNkZWZp
bmUgRHJhd2luZ0FyZWFXUEVfaAorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKKworI2luY2x1
ZGUgIkxheWVyVHJlZUhvc3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIERyYXdp
bmdBcmVhV1BFIDogcHVibGljIERyYXdpbmdBcmVhIHsKK3B1YmxpYzoKKyAgICBEcmF3aW5nQXJl
YVdQRShXZWJQYWdlJiwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHZp
cnR1YWwgfkRyYXdpbmdBcmVhV1BFKCk7CisKKyAgICB2b2lkIGxheWVySG9zdERpZEZsdXNoTGF5
ZXJzKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgLy8gRHJhd2luZ0FyZWEKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSkgb3ZlcnJpZGU7CisKKyAgICB2
aXJ0dWFsIHZvaWQgcGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbjsgfQorICAgIHZpcnR1YWwgTGF5ZXJU
cmVlSG9zdCogbGF5ZXJUcmVlSG9zdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGF5ZXJU
cmVlSG9zdC5nZXQoKTsgfQorCisgICAgdmlydHVhbCB2b2lkIHNldFBhaW50aW5nRW5hYmxlZChi
b29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBtYWluRnJh
bWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwor
CisgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXll
ckZhY3RvcnkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5n
TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KCkgb3ZlcnJpZGU7
CisKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorICAg
IHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlz
cGxheVJlZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBvdmVycmlkZTsK
KyNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXll
cihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKwor
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYm
KSBvdmVycmlkZTsKKyNlbmRpZgorCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSB8fCBV
U0UoVEVYVFVSRV9NQVBQRVIpCisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QsIGJvb2wsIGZsb2F0LCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWRVcGRhdGUoKSBvdmVycmlkZTsKKworICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisKKyAgICAvLyBXaGVuIHRy
dWUsIHdlIG1haW50YWluIHRoZSBsYXllciB0cmVlIGluIGl0cyBjdXJyZW50IHN0YXRlIGJ5IG5v
dCBsZWF2aW5nIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1vZGUKKyAgICAvLyBhbmQgbm90IHNj
aGVkdWxpbmcgbGF5ZXIgZmx1c2hlcy4KKyAgICBib29sIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3pl
biB7IGZhbHNlIH07CisKKyAgICAvLyBUaGUgbGF5ZXIgdHJlZSBob3N0IHRoYXQgaGFuZGxlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZy4KKyAgICBSZWZQdHI8TGF5ZXJUcmVlSG9zdD4gbV9sYXll
clRyZWVIb3N0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBEcmF3
aW5nQXJlYVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2Uvd3BlL1dlYkluc3BlY3RvclVJV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi43NGM4NDRiY2JhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCkBAIC0w
LDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclVJLmgiCisK
KyNpbmNsdWRlICJSZW1vdGVXZWJJbnNwZWN0b3JVSS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworYm9vbCBXZWJJbnNwZWN0b3JVSTo6Y2FuU2F2ZSgpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitTdHJpbmcgV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQoreworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIFJlbW90ZVdlYkluc3BlY3RvclVJOjpsb2Nh
bGl6ZWRTdHJpbmdzVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5jNGUwYzY1ZTBlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yV1BFLmNwcApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3IuaCIKKworI2lmIEVO
QUJMRShJTlNQRUNUT1IpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3Rv
cjo6Y2FuU2F2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2Vi
SW5zcGVjdG9yOjpsb2NhbGl6ZWRTdHJpbmdzVVJMKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93
cGUvV2ViUGFnZVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L1dlYlBhZ2VXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5m
ZWYyNGU1ZGVmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlz
LmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZvcm1J
bml0aWFsaXplKCkKK3sKK30KKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybURldGFjaCgpCit7Cit9
CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZvcm1FZGl0b3JTdGF0ZShGcmFtZSYsIEVkaXRvclN0YXRl
JiwgSW5jbHVkZVBvc3RMYXlvdXREYXRhSGludCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtUHJlZmVyZW5jZXNEaWRDaGFuZ2UoY29u
c3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29u
c3QgV2ViS2V5Ym9hcmRFdmVudCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUGFnZTo6cGxhdGZvcm1IYXNMb2NhbERhdGFGb3JVUkwo
Y29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworU3RyaW5nIFdlYlBhZ2U6OmNhY2hlZFJlc3BvbnNlTUlNRVR5cGVGb3JVUkwoY29uc3Qg
VVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworYm9vbCBXZWJQYWdlOjpwbGF0Zm9ybUNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworU3RyaW5nIFdlYlBhZ2U6OmNhY2hlZFN1Z2dlc3RlZEZpbGVuYW1lRm9yVVJMKGNvbnN0IFVS
TCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1JlZlB0cjxTaGFyZWRCdWZmZXI+IFdlYlBhZ2U6OmNhY2hlZFJlc3BvbnNlRGF0YUZvclVSTChj
b25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1N0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
d3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uYzQ2MTA3M2JlM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJQcm9jZXNzTWFpblVuaXguaCIKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc01haW4u
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURp
c3BsYXlXUEUuaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+
CisKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzTWFpbiBmaW5hbDogcHVibGljIENo
aWxkUHJvY2Vzc01haW5CYXNlIHsKK3B1YmxpYzoKKyAgICBib29sIHBsYXRmb3JtSW5pdGlhbGl6
ZSgpIG92ZXJyaWRlCisgICAgeworICAgICAgICAvLyBUT0RPOiBXcmFwIHdpdGggI2lmbmRlZiBO
REVCVUcKKyAgICAgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVQyX1BBVVNFX1dFQl9QUk9DRVNTX09O
X0xBVU5DSCIpKSB7CisgICAgICAgICAgICBnX3ByaW50ZXJyKCJXZWJQcm9jZXNzIFBJRDogJWRc
biIsIGdldHBpZCgpKTsKKyAgICAgICAgICAgIFdURjo6c2xlZXAoMzApOworICAgICAgICB9CisK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCBwYXJzZUNvbW1hbmRMaW5l
KGludCBhcmdjLCBjaGFyKiogYXJndikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEFTU0VSVChh
cmdjID09IDMpOworICAgICAgICBpZiAoYXJnYyA8IDMpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgaWYgKCFDaGlsZFByb2Nlc3NNYWluQmFzZTo6cGFyc2VDb21tYW5kTGlu
ZShhcmdjLCBhcmd2KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpbnQg
d3BlRmQgPSBhdG9pKGFyZ3ZbMl0pOworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
CisgICAgICAgICAgICBbd3BlRmRdIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChp
czxQbGF0Zm9ybURpc3BsYXlXUEU+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKSk7
CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihQbGF0Zm9ybURp
c3BsYXk6OnNoYXJlZERpc3BsYXkoKSkuaW5pdGlhbGl6ZSh3cGVGZCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworaW50IFdlYlByb2Nlc3NNYWlu
VW5peChpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIENoaWxkUHJvY2Vzc01h
aW48V2ViUHJvY2VzcywgV2ViUHJvY2Vzc01haW4+KGFyZ2MsIGFyZ3YpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL2NvbmZpZy5oIGIvU291
cmNlL1dlYktpdDIvY29uZmlnLmgKaW5kZXggYzYzZDFhMjZmNzkuLjM0NzliMWVkMzMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9jb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9jb25m
aWcuaApAQCAtNTgsNyArNTgsNyBAQAogI2RlZmluZSBQTFVHSU5fQVJDSElURUNUVVJFKEFSQ0gp
IChkZWZpbmVkIFBMVUdJTl9BUkNISVRFQ1RVUkVfIyNBUkNIICYmIFBMVUdJTl9BUkNISVRFQ1RV
UkVfIyNBUkNIKQogCiAjaWZuZGVmIEVOQUJMRV9JTlNQRUNUT1JfU0VSVkVSCi0jaWYgRU5BQkxF
KFdFQl9TT0NLRVRTKSAmJiBQTEFURk9STShHVEspCisjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKSAm
JiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQogI2RlZmluZSBFTkFCTEVfSU5TUEVD
VE9SX1NFUlZFUiAxCiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
d3BlL3dwZS13ZWJraXQucGMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk5YzAyNTE4MTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbgpAQCAt
MCwwICsxLDExIEBACitwcmVmaXg9QENNQUtFX0lOU1RBTExfUFJFRklYQAorZXhlY19wcmVmaXg9
JHtwcmVmaXh9CitsaWJkaXI9QExJQl9JTlNUQUxMX0RJUkAKK2luY2x1ZGVkaXI9JHtwcmVmaXh9
L2luY2x1ZGUKKworTmFtZTogV2ViS2l0MgorRGVzY3JpcHRpb246IFdQRS1mbGF2b3JlZCBXZWIg
ZW5naW5lCitWZXJzaW9uOiBAUFJPSkVDVF9WRVJTSU9OQAorUmVxdWlyZXMucHJpdmF0ZTogZ2xp
Yi0yLjAgbGlic291cC0yLjQKK0xpYnM6IC1MJHtsaWJkaXJ9IC1sV1BFV2ViS2l0IC1sV1BFCitD
ZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAgLUkke2luY2x1ZGVk
aXJ9L3dwZS1AV1BFX0FQSV9WRVJTSU9OQC9XUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9G
aW5kTGliR0JNLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQyMDkxY2JmYjQyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UKQEAgLTAsMCArMSw0NiBAQAorIyAt
IFRyeSB0byBmaW5kIGdibS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBM
SUJHQk1fSU5DTFVERV9ESVJTIC0gdGhlIGdibSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBMSUJH
Qk1fTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgZ2JtLgorIworIyBDb3B5cmlnaHQgKEMp
IDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtn
X2NoZWNrX21vZHVsZXMoUENfTElCR0JNIGdibSkKKworZmluZF9wYXRoKExJQkdCTV9JTkNMVURF
X0RJUlMKKyAgICBOQU1FUyBnYm0uaAorICAgIEhJTlRTICR7UENfTElCR0JNX0lOQ0xVREVfRElS
U30gJHtQQ19MSUJHQk1fSU5DVURFRElSfQorKQorCitmaW5kX2xpYnJhcnkoTElCR0JNX0xJQlJB
UklFUworICAgIE5BTUVTIGdibQorICAgIEhJTlRTICR7UENfTElCR0JNX0xJQlJBUllfRElSU30g
JHtQQ19MSUJHQk1fTElCRElSfQorKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRh
cmRBcmdzKQorRklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKExJQkdCTSBERUZBVUxU
X01TRyBMSUJHQk1fTElCUkFSSUVTKQorCittYXJrX2FzX2FkdmFuY2VkKExJQkdCTV9JTkNMVURF
X0RJUlMgTElCR0JNX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kV1BF
QmFja2VuZC1tZXNhLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYxNjE1NGU2MTE4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UK
QEAgLTAsMCArMSw0NyBAQAorIyAtIFRyeSB0byBmaW5kIFdQRS1tZXNhLgorIyBPbmNlIGRvbmUs
IHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIFdQRV9NRVNBX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUt
bWVzYS4KKyMgIFdQRV9NRVNBX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUtbWVzYSBpbmNsdWRlIGRp
cmVjdG9yaWVzCisjICBXUEVfTUVTQV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUt
bWVzYS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmlu
ZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX1dQRV9NRVNBIFFVSUVU
IHdwZS1tZXNhKQorCitmaW5kX3BhdGgoV1BFX01FU0FfSU5DTFVERV9ESVJTCisgICAgTkFNRVMg
d3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oCisgICAgSElOVFMgJHtQ
Q19XUEVfTUVTQV9JTkNMVURFRElSfSAke1BDX1dQRV9NRVNBX0lOQ0xVREVfRElSU30KKykKKwor
ZmluZF9saWJyYXJ5KFdQRV9NRVNBX0xJQlJBUklFUworICAgIE5BTUVTIFdQRUJhY2tlbmQtbWVz
YQorICAgIEhJTlRTICR7UENfV1BFX01FU0FfTElCRElSfSAke1BDX1dQRV9NRVNBX0xJQlJBUllf
RElSU30KKykKKworbWFya19hc19hZHZhbmNlZChXUEVfTUVTQV9JTkNMVURFX0RJUlMgV1BFX01F
U0FfTElCUkFSSUVTKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQor
RklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKFdQRV9NRVNBIFJFUVVJUkVEX1ZBUlMg
V1BFX01FU0FfSU5DTFVERV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFj
a2VuZC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzdhOTNk
MDA1MTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21h
a2UKQEAgLTAsMCArMSw0NyBAQAorIyAtIFRyeSB0byBmaW5kIFdQRS4KKyMgT25jZSBkb25lLCB0
aGlzIHdpbGwgZGVmaW5lCisjCisjICBXUEVfRk9VTkQgLSBzeXN0ZW0gaGFzIFdQRS4KKyMgIFdQ
RV9JTkNMVURFX0RJUlMgLSB0aGUgV1BFIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRV9MSUJS
QVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUuCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBJ
Z2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tf
bW9kdWxlcyhQQ19XUEUgUVVJRVQgd3BlKQorCitmaW5kX3BhdGgoV1BFX0lOQ0xVREVfRElSUwor
ICAgIE5BTUVTIHdwZS9sb2FkZXIuaAorICAgIEhJTlRTICR7UENfV1BFX0lOQ0xVREVESVJ9ICR7
UENfV1BFX0lOQ0xVREVfRElSU30KKykKKworZmluZF9saWJyYXJ5KFdQRV9MSUJSQVJJRVMKKyAg
ICBOQU1FUyBXUEVCYWNrZW5kCisgICAgSElOVFMgJHtQQ19XUEVfTElCRElSfSAke1BDX1dQRV9M
SUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQoV1BFX0lOQ0xVREVfRElSUyBXUEVf
TElCUkFSSUVTKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorRklO
RF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKFdQRSBSRVFVSVJFRF9WQVJTIFdQRV9JTkNM
VURFX0RJUlMgV1BFX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25z
V1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmEyODcwNjNlMTIwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTAsMCArMSwxMzggQEAKK2luY2x1ZGUo
R05VSW5zdGFsbERpcnMpCisKK3NldChQUk9KRUNUX1ZFUlNJT05fTUFKT1IgMCkKK3NldChQUk9K
RUNUX1ZFUlNJT05fTUlOT1IgMCkKK3NldChQUk9KRUNUX1ZFUlNJT05fUEFUQ0ggMjAxNzAzMzAp
CitzZXQoUFJPSkVDVF9WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfS4ke1BST0pFQ1Rf
VkVSU0lPTl9NSU5PUn0uJHtQUk9KRUNUX1ZFUlNJT05fUEFUQ0h9KQorc2V0KFdQRV9BUElfVkVS
U0lPTiAwLjEpCisKK2lmIChXVEZfQ1BVX1g4Nl82NCkKKyAgICBzZXQoRU5BQkxFX0ZUTF9ERUZB
VUxUIE9OKQorZWxzZSAoKQorICAgIHNldChFTkFCTEVfRlRMX0RFRkFVTFQgT0ZGKQorZW5kaWYg
KCkKKworV0VCS0lUX09QVElPTl9CRUdJTigpCisKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV8zRF9UUkFOU0ZPUk1TIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgUFVCTElDIE9GRikK
K1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfUkVHSU9OUyBQVUJM
SUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX0RBVEFCQVNFX1BST0NFU1MgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gUFVCTElDIE9GRikKK1dFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElB
IFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRlRM
X0pJVCBQUklWQVRFICR7RU5BQkxFX0ZUTF9ERUZBVUxUfSkKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9HQU1FUEFEIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR0VPTE9DQVRJT04gUFVCTElDIE9GRikKK1dFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIFBSSVZBVEUg
T04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRV9JTl9XT1JLRVJTIFBSSVZBVEUgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCBQVUJMSUMgT04pCitXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUVESUFfU09VUkNFIFBVQkxJQyBPRkYpCitX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUhUTUwgUFJJVkFURSBPTikK
K1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5f
QVBJIFBSSVZBVEUgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1RPVUNIX0VWRU5UUyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfVklERU8gUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX1ZJREVPX1RSQUNLIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBIFBVQkxJQyBPTikKK1dFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfQU5JTUFUSU9OUyBQUklWQVRFIE9O
KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9BVURJTyBQVUJM
SUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCR0wgUFVC
TElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9USU1J
TkcgUFVCTElDIE9OKQorCitXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfR1NUUkVBTUVSX0dMICJX
aGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBHU3RyZWFtZXIgR0wiIFBSSVZBVEUgT0ZGKQor
CitXRUJLSVRfT1BUSU9OX0VORCgpCisKK3NldChFTkFCTEVfV0VCQ09SRSBPTikKK3NldChFTkFC
TEVfV0VCS0lUIE9GRikKK3NldChFTkFCTEVfV0VCS0lUMiBPTikKK3NldChFTkFCTEVfQVBJX1RF
U1RTICR7REVWRUxPUEVSX01PREV9KQorc2V0KEVOQUJMRV9UT09MUyBPTikKKworc2V0KFdURl9M
SUJSQVJZX1RZUEUgU1RBVElDKQorc2V0KEphdmFTY3JpcHRDb3JlX0xJQlJBUllfVFlQRSBTVEFU
SUMpCitzZXQoV2ViQ29yZV9MSUJSQVJZX1RZUEUgU1RBVElDKQorc2V0KFdlYktpdDJfT1VUUFVU
X05BTUUgV1BFV2ViS2l0KQorc2V0KFdlYktpdDJfV2ViUHJvY2Vzc19PVVRQVVRfTkFNRSBXUEVX
ZWJQcm9jZXNzKQorc2V0KFdlYktpdDJfTmV0d29ya1Byb2Nlc3NfT1VUUFVUX05BTUUgV1BFTmV0
d29ya1Byb2Nlc3MpCitzZXQoV2ViS2l0Ml9EYXRhYmFzZVByb2Nlc3NfT1VUUFVUX05BTUUgV1BF
RGF0YWJhc2VQcm9jZXNzKQorCitmaW5kX3BhY2thZ2UoSUNVIFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKFRocmVhZHMgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoWkxJQiBSRVFVSVJFRCkKK2ZpbmRf
cGFja2FnZShHTElCIDIuNDAuMCBSRVFVSVJFRCBDT01QT05FTlRTIGdpbyBnaW8tdW5peCBnb2Jq
ZWN0IGd0aHJlYWQgZ21vZHVsZSkKK2ZpbmRfcGFja2FnZShHbnVUTFMgMy4wLjAgUkVRVUlSRUQp
CisKK2ZpbmRfcGFja2FnZShDYWlybyAxLjEwLjIgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRm9u
dGNvbmZpZyAyLjguMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShGcmVldHlwZTIgMi40LjIgUkVR
VUlSRUQpCitmaW5kX3BhY2thZ2UoSGFyZkJ1enogMC45LjE4IFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKEpQRUcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoTGliR2NyeXB0IDEuNi4wIFJFUVVJUkVE
KQorZmluZF9wYWNrYWdlKExpYlNvdXAgMi40Mi4wIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExp
YlhtbDIgMi44LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoTGliWHNsdCAxLjEuNyBSRVFVSVJF
RCkKK2ZpbmRfcGFja2FnZShQTkcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoU3FsaXRlIFJFUVVJ
UkVEKQorZmluZF9wYWNrYWdlKFdlYlAgUkVRVUlSRUQpCisKK2ZpbmRfcGFja2FnZShPcGVuR0xF
UzIgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRUdMIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2Uo
V1BFQmFja2VuZCBSRVFVSVJFRCkKKworc2V0KFVTRV9YREdNSU1FIE9OKQorCitpZiAoRU5BQkxF
X1ZJREVPIE9SIEVOQUJMRV9XRUJfQVVESU8pCisgICAgc2V0KEdTVFJFQU1FUl9DT01QT05FTlRT
IGFwcCBhdWRpbyBwYnV0aWxzKQorICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9HU1RS
RUFNRVIgVFJVRSkKKyAgICBpZiAoRU5BQkxFX1ZJREVPKQorICAgICAgICBsaXN0KEFQUEVORCBH
U1RSRUFNRVJfQ09NUE9ORU5UUyB2aWRlbyB0YWcpCisgICAgZW5kaWYgKCkKKworICAgIGlmIChF
TkFCTEVfV0VCX0FVRElPKQorICAgICAgICBsaXN0KEFQUEVORCBHU1RSRUFNRVJfQ09NUE9ORU5U
UyBmZnQpCisgICAgICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9XRUJBVURJT19HU1RS
RUFNRVIgVFJVRSkKKyAgICBlbmRpZiAoKQorCisgICAgZmluZF9wYWNrYWdlKEdTdHJlYW1lciAx
LjIuMyBSRVFVSVJFRCBDT01QT05FTlRTICR7R1NUUkVBTUVSX0NPTVBPTkVOVFN9KQorCisgICAg
IyBGSVhNRTogV2hhdCBhYm91dCBNUEVHVFMgc3VwcG9ydD8gVVNFX0dTVFJFQU1FUl9NUEVHVFM/
CitlbmRpZiAoKQorCitpZiAoRU5BQkxFX01FRElBX1NUUkVBTSBPUiBFTkFCTEVfV0VCX1JUQykK
KyAgICBmaW5kX3BhY2thZ2UoT3BlbldlYlJUQykKKyAgICBpZiAoTk9UIE9QRU5XRUJSVENfRk9V
TkQpCisgICAgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIk9wZW5XZWJSVEMgaXMgbmVlZGVkIGZv
ciBFTkFCTEVfTUVESUFfU1RSRUFNIGFuZCBFTkFCTEVfV0VCX1JUQy4iKQorICAgIGVuZGlmICgp
CisgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX09QRU5XRUJSVEMgVFJVRSkKK2VuZGlm
ICgpCisKK2lmIChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorICAgIGZpbmRfcGFja2Fn
ZShDYWlyb0dMIDEuMTAuMiBSRVFVSVJFRCBDT01QT05FTlRTIGNhaXJvLWVnbCkKK2VuZGlmICgp
CisKK2FkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX1dQRV9fPTEpCithZGRfZGVmaW5pdGlvbnMo
LUREQVRBX0RJUj0iJHtDTUFLRV9JTlNUQUxMX0RBVEFESVJ9IikKKworc2V0KFVTRV9VRElTODYg
MSkKKworU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX09QRU5HTF9FU18yIFRSVUUpCitTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfRUdMIFRSVUUpCisKK1NFVF9BTkRfRVhQT1NFX1RPX0JV
SUxEKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNEIFRSVUUpCisKK1NFVF9BTkRfRVhQT1NFX1RP
X0JVSUxEKFVTRV9URVhUVVJFX01BUFBFUiBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQo
VVNFX1RFWFRVUkVfTUFQUEVSX0dMIFRSVUUpCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0Vf
VElMRURfQkFDS0lOR19TVE9SRSBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0NP
T1JESU5BVEVEX0dSQVBISUNTIFRSVUUpCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQ09P
UkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQgVFJVRSkKKworc2V0KEZPUldBUkRJTkdfSEVBREVS
U19ESVIgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycykKKworIyBCdWls
ZCB3aXRoIC1mdmlzaWJpbGl0eT1oaWRkZW4gdG8gcmVkdWNlIHRoZSBzaXplIG9mIHRoZSBzaGFy
ZWQgbGlicmFyeS4KKyMgTm90IHRvIGJlIHVzZWQgd2hlbiBidWlsZGluZyB0aGUgV2ViS2l0VGVz
dFJ1bm5lciBsaWJyYXJ5LgoraWYgKE5PVCBERVZFTE9QRVJfTU9ERSkKKyAgICBzZXQoQ01BS0Vf
Q19GTEFHU19SRUxFQVNFICIke0NNQUtFX0NfRkxBR1NfUkVMRUFTRX0gLWZ2aXNpYmlsaXR5PWhp
ZGRlbiIpCisgICAgc2V0KENNQUtFX0NYWF9GTEFHU19SRUxFQVNFICIke0NNQUtFX0NYWF9GTEFH
U19SRUxFQVNFfSAtZnZpc2liaWxpdHk9aGlkZGVuIC1mdmlzaWJpbGl0eS1pbmxpbmVzLWhpZGRl
biIpCitlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQt
cHJvZHVjdC1hcmNoaXZlIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1h
cmNoaXZlCmluZGV4IGQ1ODAwYTFlOWQ0Li5lYjIwZjcwZjNmMSAxMDA2NDQKLS0tIGEvVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1hcmNoaXZlCisrKyBiL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQpAQCAtMTYzLDcgKzE2Myw3IEBAIGRl
ZiBkaXJDb250YWluc2R3byhkaXJlY3RvcnkpOgogCiAKIGRlZiBhcmNoaXZlQnVpbHRQcm9kdWN0
KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBmdWxsUGxhdGZvcm0pOgotICAgIGFzc2VydCBwbGF0
Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnKQorICAgIGFzc2VydCBw
bGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnLCAnd3BlJykKIAog
ICAgICMgRklYTUU6IEltYWdlRGlmZiBzaG91bGQgYmUgYnVpbHQgd2l0aCB0aGUgaG9zdCBTREss
IDxyZGFyOi8vcHJvYmxlbS8zMDI2NjAzOD4uCiAgICAgIyBBbiBhcHByb2FjaCBzaW1pbGFyIHRv
IHRoZSBvbmUgdXNlZCBmb3IgTGF5b3V0VGVzdFJlbGF5IGluIHIxOTA1MTUgc2hvdWxkIGJlIGlt
bGVtZW50ZWQuCkBAIC0xODIsNyArMTgyLDcgQEAgZGVmIGFyY2hpdmVCdWlsdFByb2R1Y3QoY29u
ZmlndXJhdGlvbiwgcGxhdGZvcm0sIGZ1bGxQbGF0Zm9ybSk6CiAKICAgICAgICAgc2h1dGlsLnJt
dHJlZSh0aGluRGlyZWN0b3J5KQogCi0gICAgZWxpZiBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0
Zm9ybSA9PSAnZWZsJzoKKyAgICBlbGlmIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3JtID09
ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAgICAjIE9uIEdUSysvRUZMIHdlIGRv
bid0IG5lZWQgdGhlIGludGVybWVkaWF0ZSBzdGVwIG9mIGNyZWF0aW5nIGEgdGhpbkRpcmVjdG9y
eQogICAgICAgICAjIHRvIGJlIGNvbXByZXNzZWQgaW4gYSBaSVAgZmlsZSwgYmVjYXVzZSB3ZSBj
YW4gY3JlYXRlIHRoZSBaSVAgZGlyZWN0bHkuCiAgICAgICAgICMgVGhpcyBpcyBmYXN0ZXIgYW5k
IHJlcXVpcmVzIGxlc3MgZGlzayByZXNvdXJjZXMuCkBAIC0yMTYsNyArMjE2LDcgQEAgZGVmIHVu
emlwQXJjaGl2ZShkaXJlY3RvcnlUb0V4dHJhY3RUbywgY29uZmlndXJhdGlvbik6CiAKIAogZGVm
IGV4dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgotICAgIGFzc2Vy
dCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnKQorICAgIGFz
c2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnLCAnd3Bl
JykKIAogICAgIGFyY2hpdmVGaWxlID0gb3MucGF0aC5qb2luKF90b3BMZXZlbEJ1aWxkRGlyZWN0
b3J5LCBjb25maWd1cmF0aW9uICsgJy56aXAnKQogCkBAIC0yMjUsNyArMjI1LDcgQEAgZGVmIGV4
dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgogCiAgICAgaWYgcGxh
dGZvcm0gaW4gKCdtYWMnLCAnaW9zJyk6CiAgICAgICAgIHJldHVybiB1bnppcEFyY2hpdmUoX3Rv
cExldmVsQnVpbGREaXJlY3RvcnksIGNvbmZpZ3VyYXRpb24pCi0gICAgZWxpZiBwbGF0Zm9ybSA9
PSAnd2luJyBvciBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJzoKKyAgICBl
bGlmIHBsYXRmb3JtID09ICd3aW4nIG9yIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3JtID09
ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAgICBwcmludCAnRXh0cmFjdGluZycs
IF9jb25maWd1cmF0aW9uQnVpbGREaXJlY3RvcnkKICAgICAgICAgcmV0dXJuIHVuemlwQXJjaGl2
ZShfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5LCBjb25maWd1cmF0aW9uKQogCmRpZmYgLS1n
aXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlIGIvVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQppbmRleCAzYzJiMGJkN2EzNi4u
OTgwZjA3MWMxNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVz
dWx0LWFyY2hpdmUKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJj
aGl2ZQpAQCAtNDYsNyArNDYsNyBAQCBkZWYgbWFpbigpOgogICAgIHJldHVybiBhcmNoaXZlVGVz
dFJlc3VsdHMob3B0aW9ucy5jb25maWd1cmF0aW9uLCBvcHRpb25zLnBsYXRmb3JtLCBsYXlvdXRU
ZXN0UmVzdWx0c0RpcikKIAogZGVmIGFyY2hpdmVUZXN0UmVzdWx0cyhjb25maWd1cmF0aW9uLCBw
bGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpOgotICAgIGFzc2VydCBwbGF0Zm9ybSBpbiAo
J21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICdpb3MnKQorICAgIGFzc2Vy
dCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICdp
b3MnLCAnd3BlJykKIAogICAgIHRyeToKICAgICAgICAgb3MudW5saW5rKGFyY2hpdmVGaWxlKQpA
QCAtNjYsNyArNjYsNyBAQCBkZWYgYXJjaGl2ZVRlc3RSZXN1bHRzKGNvbmZpZ3VyYXRpb24sIHBs
YXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0Rpcik6CiAgICAgaWYgcGxhdGZvcm0gaW4gKCdtYWMn
LCAnaW9zJyk6CiAgICAgICAgIGlmIHN1YnByb2Nlc3MuY2FsbChbImRpdHRvIiwgIi1jIiwgIi1r
IiwgIi0tc2VxdWVzdGVyUnNyYyIsICItLXpsaWJDb21wcmVzc2lvbkxldmVsIiwgIjIiLCBsYXlv
dXRUZXN0UmVzdWx0c0RpciwgYXJjaGl2ZUZpbGVdKToKICAgICAgICAgICAgIHJldHVybiAxCi0g
ICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJyk6Cisg
ICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJywgJ3dw
ZScpOgogICAgICAgICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJ6aXAiLCAiLXIiLCAiLTIiLCBhcmNo
aXZlRmlsZSwgIi4iXSwgY3dkPWxheW91dFRlc3RSZXN1bHRzRGlyKToKICAgICAgICAgICAgIHJl
dHVybiAxCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvQ01ha2VM
aXN0cy50eHQKaW5kZXggNGIyZWRiOGRlOTcuLjViOWNkMzliOTkyIDEwMDY0NAotLS0gYS9Ub29s
cy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMzUsNiArMzUs
MTEgQEAgZWxzZWlmICgiJHtQT1JUfSIgU1RSRVFVQUwgIkpTQ09ubHkiKQogICAgIGlmIChFTkFC
TEVfQVBJX1RFU1RTKQogICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KFRlc3RXZWJLaXRBUEkpCiAg
ICAgZW5kaWYgKCkKK2Vsc2VpZiAoIiR7UE9SVH0iIFNUUkVRVUFMICJXUEUiKQorICAgIGlmIChE
RVZFTE9QRVJfTU9ERSkKKyAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShJbWFnZURpZmYpCisgICAg
ICAgIGFkZF9zdWJkaXJlY3RvcnkoV2ViS2l0VGVzdFJ1bm5lcikKKyAgICBlbmRpZiAoKQogZW5k
aWYgKCkKIAogaWYgKFdJTjMyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3Jt
V1BFLmNtYWtlIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjBlZTUzMjhiYQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL0ltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxIEBACitpbmNs
dWRlKENhaXJvLmNtYWtlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVu
ZGVydHJlZSBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKaW5kZXggYzMwOWI4
MmQ5OGMuLjY5YjRkMGU0NjVkIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLWR1bXBy
ZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKQEAgLTY2
LDcgKzY2LDcgQEAgY2hkaXIgRmlsZTo6U3BlYy0+Y2F0ZGlyKCJUb29scyIsICJEdW1wUmVuZGVy
VHJlZSIpIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAoaXNBcHBsZUNvY29hV2ViS2l0KCkpIHsK
ICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIkR1bXBSZW5kZXJUcmVlIiwgJGNsZWFu
LCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAoaXNHdGsoKSB8fCBpc0VmbCgpIHx8
IGlzQW55V2luZG93cygpKSB7Cit9IGVsc2lmIChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNBbnlX
aW5kb3dzKCkgfHwgaXNXUEUoKSkgewogICAgICMgR3RrLCBFRkwsIGFuZCBXaW5kb3dzIGJ1aWxk
IGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhpbmcgaGVyZS4K
ICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1
aWxkLXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IGFiMjUyYWM2NTBm
Li5mZjRjYjBjNGYzMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysr
IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTEwMSw2ICsxMDEsNyBAQCBVc2FnZTog
JHByb2dyYW1OYW1lIFtvcHRpb25zXSBbb3B0aW9ucyB0byBwYXNzIHRvIGJ1aWxkIHN5c3RlbV0K
IAogICAtLWVmbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIEVGTCBwb3J0
CiAgIC0tZ3RrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUgR1RLKyBwb3J0
CisgIC0td3BlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUgV1BFIHBvcnQK
ICAgLS13aW5jYWlybyAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHVzaW5nIENhaXJvIChy
YXRoZXIgdGhhbiBDb3JlR3JhcGhpY3MpIG9uIFdpbmRvd3MKIAogICAtLWluc3BlY3Rvci1mcm9u
dGVuZCAgICAgICAgICAgICAgQ29weSBXZWIgSW5zcGVjdG9yIHVzZXIgaW50ZXJmYWNlIHJlc291
cmNlcyB0byB0aGUgYnVpbGQgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1
aWxkLXdlYmtpdHRlc3RydW5uZXIgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5u
ZXIKaW5kZXggNDRlMjVhMzg1MTguLjBmZTUxZTA4MjM0IDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJr
aXR0ZXN0cnVubmVyCkBAIC02MSw3ICs2MSw3IEBAIGNoZGlyICJUb29scy9XZWJLaXRUZXN0UnVu
bmVyIiBvciBkaWU7CiBteSAkcmVzdWx0OwogaWYgKGlzQXBwbGVDb2NvYVdlYktpdCgpKSB7CiAg
ICAgJHJlc3VsdCA9IGJ1aWxkWENvZGVQcm9qZWN0KCJXZWJLaXRUZXN0UnVubmVyIiwgJGNsZWFu
LCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAoaXNHdGsoKSB8fCBpc0VmbCgpKSB7
Cit9IGVsc2lmIChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUoKSkgewogICAgICMgR1RLKyBh
bmQgRUZMIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55
dGhpbmcgaGVyZS4KICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkIGIvVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2Via2l0LWxpYnMtamhidWlsZAppbmRleCAzODkzZGFmZDhlZS4uZWVkNWY2YmRlYTEgMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQKKysrIGIv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZApAQCAtMjUsOSArMjUsMTAg
QEAgdXNlIEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCk7CiBteSAkcGxhdGZv
cm0gPSAiIjsKICRwbGF0Zm9ybSA9ICJlZmwiIGlmIGlzRWZsKCk7CiAkcGxhdGZvcm0gPSAiZ3Rr
IiBpZiBpc0d0aygpOworJHBsYXRmb3JtID0gIndwZSIgaWYgaXNXUEUoKTsKIAogaWYgKCEkcGxh
dGZvcm0pIHsKLSAgICBkaWUgIk5vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1l
KCQwKSAuIi4gVXNlIC0tZ3RrIG9yIC0tZWZsLlxuIjsKKyAgICBkaWUgIk5vIHBsYXRmb3JtIHNw
ZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrLCAtLWVmbCBvciAtLXdw
ZS5cbiI7CiB9CiAKIG15ICR3aXBlT25DaGFuZ2UgPSAkRU5We0pIQlVJTERfV0lQRV9PTl9DSEFO
R0V9IC8vIDE7CkBAIC0xMzMsNyArMTM0LDcgQEAgZGVsZXRlICRFTlZ7QVJfRkxBR1N9IGlmIGV4
aXN0cyAkRU5We0FSX0ZMQUdTfTsKIAogY2hkaXIocmVsYXRpdmVTY3JpcHRzRGlyKCkgLiAiLy4u
L2poYnVpbGQiKSBvciBkaWUgJCE7CiAKLW15ICVwcmV0dHlQbGF0Zm9ybSA9ICggImVmbCIgPT4g
IkVGTCIsICJndGsiID0+ICJHVEsrIiApOworbXkgJXByZXR0eVBsYXRmb3JtID0gKCAiZWZsIiA9
PiAiRUZMIiwgImd0ayIgPT4gIkdUSysiLCAid3BlIiA9PiAiV1BFIiApOwogCiBpZiAoISRmb3Jj
ZSAmJiAhamhidWlsZENvbmZpZ3VyYXRpb25DaGFuZ2VkKCkpIHsKICAgICBwcmludCAkcHJldHR5
UGxhdGZvcm17JHBsYXRmb3JtfSAuICIgcG9ydCBkZXBlbmRlbmNpZXMgYXJlIGFscmVhZHkgdXAg
dG8gZGF0ZVxuIjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1s
aWJzIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmIyM2ZiZGU2YjgzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMKQEAgLTAsMCArMSwyNCBAQAorIyEv
dXNyL2Jpbi9wZXJsIC13CisjIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5
cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
IyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK3VzZSBGaW5kQmluOwordXNlIGxp
YiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKK215ICRzY3JpcHRzRGlyID0gcmVs
YXRpdmVTY3JpcHRzRGlyKCk7CitzeXN0ZW0oInBlcmwiLCAiJHNjcmlwdHNEaXIvdXBkYXRlLXdl
YmtpdC1saWJzLWpoYnVpbGQiLCAiLS13cGUiLCBAQVJHVikgPT0gMCBvciBkaWUgJCE7CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtp
dGRpcnMucG0KaW5kZXggYzQwYWZmNmY4MjguLmJjYjFkM2VjMDJlIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
CkBAIC0xMDgsNiArMTA4LDcgQEAgdXNlIGNvbnN0YW50IHsKICAgICBNYWMgICAgICA9PiAiTWFj
IiwKICAgICBKU0NPbmx5ICA9PiAiSlNDT25seSIsCiAgICAgV2luQ2Fpcm8gPT4gIldpbkNhaXJv
IiwKKyAgICBXUEUgICAgICA9PiAiV1BFIiwKICAgICBVbmtub3duICA9PiAiVW5rbm93biIKIH07
CiAKQEAgLTQ0Nyw2ICs0NDgsNyBAQCBzdWIgYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAg
ICAgcHVzaChAYXJncywgJy0tNjQtYml0JykgaWYgKGlzV2luNjQoKSk7CiAgICAgcHVzaChAYXJn
cywgJy0tZ3RrJykgaWYgaXNHdGsoKTsKICAgICBwdXNoKEBhcmdzLCAnLS1lZmwnKSBpZiBpc0Vm
bCgpOworICAgIHB1c2goQGFyZ3MsICctLXdwZScpIGlmIGlzV1BFKCk7CiAgICAgcHVzaChAYXJn
cywgJy0tanNjLW9ubHknKSBpZiBpc0pTQ09ubHkoKTsKICAgICBwdXNoKEBhcmdzLCAnLS13aW5j
YWlybycpIGlmIGlzV2luQ2Fpcm8oKTsKICAgICBwdXNoKEBhcmdzLCAnLS1pbnNwZWN0b3ItZnJv
bnRlbmQnKSBpZiBpc0luc3BlY3RvckZyb250ZW5kKCk7CkBAIC02ODIsNyArNjg0LDcgQEAgc3Vi
IGV4ZWN1dGFibGVQcm9kdWN0RGlyCiAgICAgbXkgJHByb2R1Y3REaXJlY3RvcnkgPSBwcm9kdWN0
RGlyKCk7CiAKICAgICBteSAkYmluYXJ5RGlyZWN0b3J5OwotICAgIGlmIChpc0VmbCgpIHx8IGlz
R3RrKCkgfHwgaXNKU0NPbmx5KCkpIHsKKyAgICBpZiAoaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlz
SlNDT25seSgpIHx8IGlzV1BFKCkpIHsKICAgICAgICAgJGJpbmFyeURpcmVjdG9yeSA9ICJiaW4i
OwogICAgIH0gZWxzaWYgKGlzQW55V2luZG93cygpKSB7CiAgICAgICAgICRiaW5hcnlEaXJlY3Rv
cnkgPSBpc1dpbjY0KCkgPyAiYmluNjQiIDogImJpbjMyIjsKQEAgLTk0Myw2ICs5NDUsOSBAQCBz
dWIgYnVpbHREeWxpYlBhdGhGb3JOYW1lCiAgICAgICAgICAgICByZXR1cm4gIiRiYXNlUHJvZHVj
dERpci8kbGlicmFyeU5hbWUuaW50ZXJtZWRpYXRlLyRjb25maWd1cmF0aW9uLyRsaWJyYXJ5TmFt
ZS5pbnRlcm1lZGlhdGUvJGxpYnJhcnlOYW1lLmxpYiI7CiAgICAgICAgIH0KICAgICB9CisgICAg
aWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkY29uZmlndXJhdGlvblByb2R1Y3REaXIv
bGliL2xpYldQRVdlYktpdC5zbyI7CisgICAgfQogCiAgICAgZGllICJVbnN1cHBvcnRlZCBwbGF0
Zm9ybSwgY2FuJ3QgZGV0ZXJtaW5lIGJ1aWx0IGxpYnJhcnkgbG9jYXRpb25zLlxuVHJ5IGBidWls
ZC13ZWJraXQgLS1oZWxwYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiI7CiB9CkBAIC0xMDU4LDcg
KzEwNjMsOCBAQCBzdWIgZGV0ZXJtaW5lUG9ydE5hbWUoKQogICAgICAgICBlZmwgPT4gRWZsLAog
ICAgICAgICBndGsgPT4gR1RLLAogICAgICAgICAnanNjLW9ubHknID0+IEpTQ09ubHksCi0gICAg
ICAgIHdpbmNhaXJvID0+IFdpbkNhaXJvCisgICAgICAgIHdpbmNhaXJvID0+IFdpbkNhaXJvLAor
ICAgICAgICB3cGUgPT4gV1BFCiAgICAgKTsKIAogICAgIGZvciBteSAkYXJnIChzb3J0IGtleXMg
JWFyZ1RvUG9ydE5hbWUpIHsKQEAgLTEwOTMsNiArMTA5OSw3IEBAIHN1YiBkZXRlcm1pbmVQb3J0
TmFtZSgpCiAgICAgICAgICAgICAgICAgLS1lZmwKICAgICAgICAgICAgICAgICAtLWd0awogICAg
ICAgICAgICAgICAgIC0tanNjLW9ubHkKKyAgICAgICAgICAgICAgICAtLXdwZQogICAgICAgICAg
ICAgKTsKICAgICAgICAgICAgIGRpZSAiUGxlYXNlIHNwZWNpZnkgd2hpY2ggV2ViS2l0IHBvcnQg
dG8gYnVpbGQgdXNpbmcgb25lIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoiCiAgICAgICAgICAg
ICAgICAgLiAiXG5cdCRwb3J0c0Nob2ljZVxuIjsKQEAgLTExMjUsNiArMTEzMiwxMSBAQCBzdWIg
aXNKU0NPbmx5KCkKICAgICByZXR1cm4gcG9ydE5hbWUoKSBlcSBKU0NPbmx5OwogfQogCitzdWIg
aXNXUEUoKQoreworICAgIHJldHVybiBwb3J0TmFtZSgpIGVxIFdQRTsKK30KKwogIyBEZXRlcm1p
bmUgaWYgdGhpcyBpcyBkZWJpYW4sIHVidW50dSwgbGluc3BpcmUsIG9yIHNvbWV0aGluZyBzaW1p
bGFyLgogc3ViIGlzRGViaWFuQmFzZWQoKQogewpAQCAtMTUyOCw2ICsxNTQwLDggQEAgc3ViIGxh
dW5jaGVyUGF0aCgpCiAgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1BhdGgvcnVuLW1p
bmlicm93c2VyIjsKICAgICB9IGVsc2lmIChpc0FwcGxlV2ViS2l0KCkpIHsKICAgICAgICAgcmV0
dXJuICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9ydW4tc2FmYXJpIjsKKyAgICB9IGVsc2lmIChpc1dQ
RSgpKSB7CisgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1BhdGgvcnVuLXdwZSI7CiAg
ICAgfQogfQogCkBAIC0xNTM5LDYgKzE1NTMsOCBAQCBzdWIgbGF1bmNoZXJOYW1lKCkKICAgICAg
ICAgcmV0dXJuICJTYWZhcmkiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVXaW5XZWJLaXQoKSkgewog
ICAgICAgICByZXR1cm4gIk1pbmlCcm93c2VyIjsKKyAgICB9IGVsc2lmIChpc1dQRSgpKSB7Cisg
ICAgICAgIHJldHVybiAiV1BFTGF1bmNoZXIiOwogICAgIH0KIH0KIApAQCAtMTg0MCw2ICsxODU2
LDggQEAgc3ViIGdldEpoYnVpbGRQYXRoKCkKICAgICAgICAgcHVzaChAamhidWlsZFBhdGgsICJE
ZXBlbmRlbmNpZXNFRkwiKTsKICAgICB9IGVsc2lmIChpc0d0aygpKSB7CiAgICAgICAgIHB1c2go
QGpoYnVpbGRQYXRoLCAiRGVwZW5kZW5jaWVzR1RLIik7CisgICAgfSBlbHNpZiAoaXNXUEUoKSkg
eworICAgICAgICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRlcGVuZGVuY2llc1dQRSIpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIGRpZSAiQ2Fubm90IGdldCBKSEJ1aWxkIHBhdGggZm9yIHBsYXRmb3Jt
IHRoYXQgaXNuJ3QgR1RLKyBvciBFRkwuXG4iOwogICAgIH0KQEAgLTE4ODIsNiArMTkwMCw4IEBA
IHN1YiB3cmFwcGVyUHJlZml4SWZOZWVkZWQoKQogICAgICAgICAgICAgcHVzaChAcHJlZml4LCAi
LS1lZmwiKTsKICAgICAgICAgfSBlbHNpZiAoaXNHdGsoKSkgewogICAgICAgICAgICAgcHVzaChA
cHJlZml4LCAiLS1ndGsiKTsKKyAgICAgICAgfSBlbHNpZiAoaXNXUEUoKSkgeworICAgICAgICAg
ICAgcHVzaChAcHJlZml4LCAiLS13cGUiKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBwcmVm
aXgsICJydW4iKTsKIApAQCAtMjA0MCw3ICsyMDYwLDcgQEAgc3ViIGdlbmVyYXRlQnVpbGRTeXN0
ZW1Gcm9tQ01ha2VQcm9qZWN0CiAgICAgcHVzaCBAYXJncywgJy1EU0hPV19CSU5ESU5HU19HRU5F
UkFUSU9OX1BST0dSRVNTPTEnIHVubGVzcyAoJHdpbGxVc2VOaW5qYSAmJiAtdCBTVERPVVQpOwog
CiAgICAgIyBTb21lIHBvcnRzIGhhdmUgcHJvZHVjdGlvbiBtb2RlLCBidXQgYnVpbGQtd2Via2l0
IHNob3VsZCBhbHdheXMgdXNlIGRldmVsb3BlciBtb2RlLgotICAgIHB1c2ggQGFyZ3MsICItRERF
VkVMT1BFUl9NT0RFPU9OIiBpZiBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNKU0NPbmx5KCk7Cisg
ICAgcHVzaCBAYXJncywgIi1EREVWRUxPUEVSX01PREU9T04iIGlmIGlzRWZsKCkgfHwgaXNHdGso
KSB8fCBpc0pTQ09ubHkoKSB8fCBpc1dQRSgpOwogCiAgICAgIyBEb24ndCB3YXJuIHZhcmlhYmxl
cyB3aGljaCBhcmVuJ3QgdXNlZCBieSBjbWFrZSBwb3J0cy4KICAgICBwdXNoIEBhcmdzLCAiLS1u
by13YXJuLXVudXNlZC1jbGkiOwpAQCAtMjEyMSw2ICsyMTQxLDEwIEBAIHN1YiBidWlsZENNYWtl
UHJvamVjdE9yRXhpdCgkJCRAKQogICAgICAgICBzeXN0ZW0oInBlcmwiLCAiJHNvdXJjZURpci9U
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRndGstbGlicyIpID09IDAgb3IgZGllICQhOwogICAg
IH0KIAorICAgIGlmIChpc1dQRSgpICYmIGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJH
VigiLS11cGRhdGUtd3BlIikpIHsKKyAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRzb3VyY2VEaXIv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMiKSA9PSAwIG9yIGRpZSAkITsKKyAg
ICB9CisKICAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJhdGVCdWlsZFN5c3RlbUZy
b21DTWFrZVByb2plY3QoJHByZWZpeFBhdGgsIEBjbWFrZUFyZ3MpKTsKICAgICBleGl0KCRyZXR1
cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVM
aXN0LnBtCmluZGV4IGI3N2UyYTBkZjJjLi40Yzc0ZDljNDBlMSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgcHJvaGliaXRVbmtu
b3duUG9ydCgpOwogCiBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gIjNkLXJlbmRl
cmluZyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBSZW5kZXJpbmcgc3VwcG9ydCIsCi0gICAgICBkZWZp
bmUgPT4gIkVOQUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkpLCB2YWx1ZSA9PiBc
JHRocmVlRFRyYW5zZm9ybXNTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV8zRF9U
UkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwgaXNJT1NXZWJL
aXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkdGhyZWVE
VHJhbnNmb3Jtc1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJhY2NlbGVyYXRlZC0yZC1j
YW52YXMiLCBkZXNjID0+ICJUb2dnbGUgQWNjZWxlcmF0ZWQgMkQgQ2FudmFzIHN1cHBvcnQiLAot
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIiwgZGVmYXVsdCA9
PiAwLCB2YWx1ZSA9PiBcJGFjY2VsZXJhdGVkMkRDYW52YXNTdXBwb3J0IH0sCisgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+IGlzV1BFKCks
IHZhbHVlID0+IFwkYWNjZWxlcmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJhbGxpbm9uZS1idWlsZCIsIGRlc2MgPT4gIlRvZ2dsZSBhbGwtaW4tb25lIGJ1aWxkIiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FMTElOT05FX0JVSUxEIiwgZGVmYXVsdCA9PiBpc1dp
bmRvd3MoKSwgdmFsdWUgPT4gXCRhbGxJbk9uZUJ1aWxkIH0sCkBAIC0xODMsNyArMTgzLDcgQEAg
bXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1JFU09M
VVRJT04iLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkY3NzSW1hZ2VSZXNvbHV0aW9u
U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImNzcy1pbWFnZS1zZXQiLCBkZXNjID0+ICJU
b2dnbGUgQ1NTIGltYWdlLXNldCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NT
U19JTUFHRV9TRVQiLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBc
JGNzc0ltYWdlU2V0U3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdF
X1NFVCIsIGRlZmF1bHQgPT4gKGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUg
PT4gXCRjc3NJbWFnZVNldFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJjc3MtcmVnaW9u
cyIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgUmVnaW9ucyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX0NTU19SRUdJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGNzc1JlZ2lv
bnNTdXBwb3J0IH0sCkBAIC0yMDcsNyArMjA3LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCIsIGRlZmF1bHQgPT4gaXNFZmwoKSwg
dmFsdWUgPT4gXCRkYXRhbGlzdEVsZW1lbnRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAi
ZGV2aWNlLW9yaWVudGF0aW9uIiwgZGVzYyA9PiAiVG9nZ2xlIERldmljZSBPcmllbnRhdGlvbiBz
dXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiIsIGRl
ZmF1bHQgPT4gaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRkZXZpY2VPcmllbnRhdGlvblN1cHBv
cnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiIsIGRlZmF1
bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkZGV2aWNlT3JpZW50
YXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZG9tNC1ldmVudHMtY29uc3RydWN0
b3IiLCBkZXNjID0+ICJFeHBvc2UgRE9NNCBFdmVudHMgY29uc3RydWN0b3JzIiwKICAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SIiwgZGVmYXVsdCA9PiAoaXNB
cHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkZG9tNEV2ZW50
c0NvbnN0cnVjdG9yIH0sCkBAIC0yMjUsNyArMjI1LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwgdmFs
dWUgPT4gXCRmb250TG9hZEV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJmdGwt
aml0IiwgZGVzYyA9PiAiVG9nZ2xlIEZUTEpJVCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlz
SlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJGZ0bEpJVFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8
IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3VwcG9ydCB9LAog
CiAgICAgeyBvcHRpb24gPT4gImZ0cGRpciIsIGRlc2MgPT4gIlRvZ2dsZSBGVFAgRGlyZWN0b3J5
IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRQRElSIiwgZGVmYXVsdCA9PiAx
LCB2YWx1ZSA9PiBcJGZ0cERpclN1cHBvcnQgfSwKQEAgLTIzNyw3ICsyMzcsNyBAQCBteSBAZmVh
dHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9PiAw
LCB2YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZ2VvbG9j
YXRpb24iLCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0gICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8
fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkZ2VvbG9j
YXRpb25TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRl
ZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwg
aXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRnZW9sb2NhdGlvblN1cHBvcnQgfSwKIAog
ICAgIHsgb3B0aW9uID0+ICJoaWdoLWRwaS1jYW52YXMiLCBkZXNjID0+ICJUb2dnbGUgSGlnaCBE
UEkgQ2FudmFzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSElHSF9EUElfQ0FO
VkFTIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpKSwgdmFsdWUgPT4gXCRoaWdoRFBJQ2Fu
dmFzU3VwcG9ydCB9LApAQCAtMjQ2LDcgKzI0Niw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX0lDT05EQVRBQkFTRSIsIGRlZmF1bHQgPT4gIWlzSU9TV2ViS2l0
KCksIHZhbHVlID0+IFwkaWNvbmRhdGFiYXNlU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
ImluZGV4ZWQtZGF0YWJhc2UiLCBkZXNjID0+ICJUb2dnbGUgSW5kZXhlZCBEYXRhYmFzZSBzdXBw
b3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0
ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9
PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lO
REVYRURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0Vm
bCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImlucHV0LXNwZWVjaCIsIGRlc2MgPT4gIlRvZ2ds
ZSBJbnB1dCBTcGVlY2ggc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JTlBVVF9T
UEVFQ0giLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkaW5wdXRTcGVlY2hTdXBwb3J0IH0sCkBA
IC0zMTIsNyArMzEyLDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfTUVURVJfRUxFTUVOVCIsIGRlZmF1bHQgPT4gIWlzQXBwbGVXaW5XZWJLaXQoKSwgdmFsdWUg
PT4gXCRtZXRlckVsZW1lbnRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibWh0bWwiLCBk
ZXNjID0+ICJUb2dnbGUgTUhUTUwgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9N
SFRNTCIsIGRlZmF1bHQgPT4gKGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkbWh0bWxT
dXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4gKGlz
R3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRtaHRtbFN1cHBvcnQgfSwK
IAogICAgIHsgb3B0aW9uID0+ICJtb3VzZS1jdXJzb3Itc2NhbGUiLCBkZXNjID0+ICJUb2dnbGUg
U2NhbGVkIG1vdXNlIGN1cnNvciBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRtb3VzZUN1
cnNvclNjYWxlU3VwcG9ydCB9LApAQCAtMzI0LDcgKzMyNCw3IEBAIG15IEBmZWF0dXJlcyA9ICgK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZIiwgZGVmYXVs
dCA9PiAxLCB2YWx1ZSA9PiBcJGhhcmR3YXJlQ29uY3VycmVuY3lTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAibmV0c2NhcGUtcGx1Z2luLWFwaSIsIGRlc2MgPT4gIlRvZ2dsZSBOZXRzY2Fw
ZSBQbHVnaW4gQVBJIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkVUU0NBUEVf
UExVR0lOX0FQSSIsIGRlZmF1bHQgPT4gIWlzSU9TV2ViS2l0KCksIHZhbHVlID0+IFwkbmV0c2Nh
cGVQbHVnaW5BUElTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAoIWlzSU9TV2ViS2l0KCkgJiYgIWlzV1BFKCkpLCB2YWx1
ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm5v
c25pZmYiLCBkZXNjID0+ICJUb2dnbGUgc3VwcG9ydCBmb3IgJ1gtQ29udGVudC1UeXBlLU9wdGlv
bnM6IG5vc25pZmYnIiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05PU05JRkYiLCBkZWZhdWx0
ID0+IGlzRWZsKCksIHZhbHVlID0+IFwkbm9zbmlmZlN1cHBvcnQgfSwKQEAgLTMzNiw3ICszMzYs
NyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9PUklFTlRBVElP
Tl9FVkVOVFMiLCBkZWZhdWx0ID0+IGlzSU9TV2ViS2l0KCksIHZhbHVlID0+IFwkb3JpZW50YXRp
b25FdmVudHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAicGVyZm9ybWFuY2UtdGltZWxp
bmUiLCBkZXNjID0+ICJUb2dnbGUgUGVyZm9ybWFuY2UgVGltZWxpbmUgc3VwcG9ydCIsCi0gICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSIsIGRlZmF1bHQgPT4gaXNH
dGsoKSwgdmFsdWUgPT4gXCRwZXJmb3JtYW5jZVRpbWVsaW5lU3VwcG9ydCB9LAorICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfUEVSRk9STUFOQ0VfVElNRUxJTkUiLCBkZWZhdWx0ID0+IChpc0d0aygp
IHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxpbmVTdXBwb3J0IH0sCiAK
ICAgICB7IG9wdGlvbiA9PiAicHJveGltaXR5LWV2ZW50cyIsIGRlc2MgPT4gIlRvZ2dsZSBQcm94
aW1pdHkgRXZlbnRzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfUFJPWElNSVRZ
X0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRwcm94aW1pdHlFdmVudHNTdXBwb3J0
IH0sCkBAIC0zNjYsNyArMzY2LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+
ICJVU0VfU1lTVEVNX01BTExPQyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRzeXN0ZW1NYWxs
b2NTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidG91Y2gtZXZlbnRzIiwgZGVzYyA9PiAi
VG9nZ2xlIFRvdWNoIEV2ZW50cyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1RP
VUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNFZmwoKSB8fCBpc0d0
aygpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNFZmwo
KSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHRvdWNoRXZlbnRzU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gInRvdWNoLWljb24tbG9hZGluZyIsIGRlc2MgPT4gIlRvZ2ds
ZSBUb3VjaCBJY29uIExvYWRpbmcgU3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9U
T1VDSF9JQ09OX0xPQURJTkciLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkdG91Y2hJY29uTG9h
ZGluZ1N1cHBvcnQgfSwKQEAgLTM3OCwxNiArMzc4LDE2IEBAIG15IEBmZWF0dXJlcyA9ICgKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJQlJBVElPTiIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFs
dWUgPT4gXCR2aWJyYXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidmlkZW8iLCBk
ZXNjID0+ICJUb2dnbGUgVmlkZW8gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9W
SURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkp
LCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklE
RU8iLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8
IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
InZpZGVvLXRyYWNrIiwgZGVzYyA9PiAiVG9nZ2xlIFZpZGVvIFRyYWNrIHN1cHBvcnQiLAotICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBkZWZhdWx0ID0+IChpc0FwcGxlV2Vi
S2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4gXCR2aWRlb1RyYWNrU3VwcG9y
dCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBkZWZhdWx0ID0+IChp
c0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9
PiBcJHZpZGVvVHJhY2tTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViLWFuaW1hdGlv
bnMiLCBkZXNjID0+ICJUb2dnbGUgV2ViIEFuaW1hdGlvbnMgc3VwcG9ydCIsCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9XRUJfQU5JTUFUSU9OUyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3
ZWJBbmltYXRpb25zU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYi1hdWRpbyIsIGRl
c2MgPT4gIlRvZ2dsZSBXZWIgQXVkaW8gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9XRUJfQVVESU8iLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBc
JHdlYkF1ZGlvU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX0FVRElPIiwg
ZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHdl
YkF1ZGlvU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYi1yZXBsYXkiLCBkZXNjID0+
ICJUb2dnbGUgV2ViIFJlcGxheSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dF
Ql9SRVBMQVkiLCBkZWZhdWx0ID0+IGlzQXBwbGVDb2NvYVdlYktpdCgpLCB2YWx1ZSA9PiBcJHdl
YlJlcGxheVN1cHBvcnQgfSwKQEAgLTQwMiwxMCArNDAyLDEwIEBAIG15IEBmZWF0dXJlcyA9ICgK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9USU1JTkciLCBkZWZhdWx0ID0+IDEsIHZhbHVl
ID0+IFwkd2ViVGltaW5nU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYmFzc2VtYmx5
IiwgZGVzYyA9PiAiVG9nZ2xlIFdlYkFzc2VtYmx5IHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfV0VCQVNTRU1CTFkiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygp
IHx8IGlzSlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJHdlYkFzc2VtYmx5U3VwcG9ydCB9LAorICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCQVNTRU1CTFkiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgp
ICYmIChpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkd2Vi
QXNzZW1ibHlTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViZ2wiLCBkZXNjID0+ICJU
b2dnbGUgV2ViR0wgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJHTCIsIGRl
ZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZh
bHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJHTCIs
IGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSB8
fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR3ZWJnbFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+
ICJ3cml0YWJsZVN0cmVhbUFQSSIsIGRlc2MgPT4gIlRvZ2dsZSBXcml0YWJsZVN0cmVhbSBBUEkg
c3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XUklUQUJMRV9TVFJFQU1fQVBJIiwg
ZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHdyaXRhYmxlU3RyZWFtQVBJU3VwcG9ydCB9LApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHMucHkKaW5kZXggN2M2ZGRjODM5ZjMuLjU3MmU4YTVlNzdkIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkK
QEAgLTQyNCw3ICs0MjQsNyBAQCBkZWYgX3NldF91cF9kZXJpdmVkX29wdGlvbnMocG9ydCwgb3B0
aW9ucyk6CiAgICAgICAgIG9wdGlvbnMudmVyYm9zZSA9IFRydWUKIAogICAgICMgVGhlIEdUSysg
YW5kIEVGTCBwb3J0cyBvbmx5IHN1cHBvcnQgV2ViS2l0MiBzbyB0aGV5IGFsd2F5cyB1c2UgV0tU
Ui4KLSAgICBpZiBvcHRpb25zLnBsYXRmb3JtID09ICJndGsiIG9yIG9wdGlvbnMucGxhdGZvcm0g
PT0gImVmbCI6CisgICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSBpbiBbImVmbCIsICJndGsiLCAid3Bl
Il06CiAgICAgICAgIG9wdGlvbnMud2Via2l0X3Rlc3RfcnVubmVyID0gVHJ1ZQogCiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkKaW5kZXggYzYxZDE3ZjY1MzQuLmE3MTY0OTli
MzI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQpAQCAtNTYsNiArNTYs
OSBAQCBkZWYgcGxhdGZvcm1fb3B0aW9ucyh1c2VfZ2xvYnM9RmFsc2UpOgogICAgICAgICBvcHRw
YXJzZS5tYWtlX29wdGlvbignLS1ndGsnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVzdD0ncGxh
dGZvcm0nLAogICAgICAgICAgICAgY29uc3Q9KCdndGsqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnZ3Rr
JyksCiAgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3RrKicgaWYgdXNl
X2dsb2JzIGVsc2UgJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWd0aycpKSwKKyAgICAgICAgb3B0cGFy
c2UubWFrZV9vcHRpb24oJy0td3BlJywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGRlc3Q9J3BsYXRm
b3JtJywKKyAgICAgICAgICAgIGNvbnN0PSgnd3BlKicgaWYgdXNlX2dsb2JzIGVsc2UgJ3dwZScp
LAorICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPXdwZScpKSwKICAgICAg
ICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tbm8taW5zdGFsbCcsIGFjdGlvbj0nc3RvcmVfY29u
c3QnLAogICAgICAgICAgICAgY29uc3Q9RmFsc2UsIGRlZmF1bHQ9VHJ1ZSwgZGVzdD0naW5zdGFs
bCcsCiAgICAgICAgICAgICBoZWxwPSdTa2lwIGluc3RhbGwgc3RlcCBmb3IgZGV2aWNlIGFuZCBz
aW11bGF0b3IgdGVzdGluZycpLApAQCAtOTcsNiArMTAwLDcgQEAgY2xhc3MgUG9ydEZhY3Rvcnko
b2JqZWN0KToKICAgICAgICAgJ3Rlc3QuVGVzdFBvcnQnLAogICAgICAgICAnd2luLldpbkNhaXJv
UG9ydCcsCiAgICAgICAgICd3aW4uV2luUG9ydCcsCisgICAgICAgICd3cGUuV1BFUG9ydCcsCiAg
ICAgKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC93cGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjODM5ZTdm
YzAyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5w
eQpAQCAtMCwwICsxLDc4IEBACisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0
OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgR29vZ2xlIG5hbWUgbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisj
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1v
aXplZCBpbXBvcnQgbWVtb2l6ZWQKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50
ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCitmcm9tIHdlYmtpdHB5
LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0LmxpbnV4X2dldF9jcmFz
aF9sb2cgaW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCisKK2NsYXNzIFdQRVBvcnQoUG9ydCk6
CisgICAgcG9ydF9uYW1lID0gIndwZSIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywg
Kiprd2FyZ3MpOgorICAgICAgICBzdXBlcihXUEVQb3J0LCBzZWxmKS5fX2luaXRfXygqYXJncywg
Kiprd2FyZ3MpCisKKyAgICAgICAgaWYgc2VsZi5fc2hvdWxkX3VzZV9qaGJ1aWxkKCk6CisgICAg
ICAgICAgICBzZWxmLl9qaGJ1aWxkX3dyYXBwZXIgPSBbc2VsZi5wYXRoX2Zyb21fd2Via2l0X2Jh
c2UoJ1Rvb2xzJywgJ2poYnVpbGQnLCAnamhidWlsZC13cmFwcGVyJyksICctLXdwZScsICdydW4n
XQorICAgICAgICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dyYXBwZXInLCAnICcuam9p
bihzZWxmLl9qaGJ1aWxkX3dyYXBwZXIpKQorCisgICAgZGVmIGRlZmF1bHRfdGltZW91dF9tcyhz
ZWxmKToKKyAgICAgICAgcmV0dXJuIDYwMDAKKworICAgIGRlZiBfYnVpbHRfZXhlY3V0YWJsZXNf
cGF0aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCooKCdi
aW4nLCkgKyBwYXRoKSkKKworICAgIGRlZiBfYnVpbHRfbGlicmFyaWVzX3BhdGgoc2VsZiwgKnBh
dGgpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgqKCgnbGliJywpICsgcGF0aCkp
CisKKyAgICBkZWYgX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyhzZWxmKToKKyAgICAgICAgcmV0dXJu
ICItLXdwZSIKKworICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZiwgc2VydmVy
X25hbWU9Tm9uZSk6CisgICAgICAgIGVudmlyb25tZW50ID0gc3VwZXIoV1BFUG9ydCwgc2VsZiku
c2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQorICAgICAgICBlbnZpcm9ubWVu
dFsnR1NFVFRJTkdTX0JBQ0tFTkQnXSA9ICdtZW1vcnknCisgICAgICAgIGVudmlyb25tZW50WydU
RVNUX1JVTk5FUl9JTkpFQ1RFRF9CVU5ETEVfRklMRU5BTUUnXSA9IHNlbGYuX2J1aWxkX3BhdGgo
J2xpYicsICdsaWJUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuc28nKQorICAgICAgICBlbnZpcm9u
bWVudFsnVEVTVF9SVU5ORVJfVEVTVF9QTFVHSU5fUEFUSCddID0gc2VsZi5fYnVpbGRfcGF0aCgn
bGliJywgJ3BsdWdpbnMnKQorICAgICAgICBlbnZpcm9ubWVudFsnV0VCS0lUX0VYRUNfUEFUSCdd
ID0gc2VsZi5fYnVpbGRfcGF0aCgnYmluJykKKyAgICAgICAgcmV0dXJuIGVudmlyb25tZW50CisK
KyAgICBkZWYgX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgorICAgICAg
ICBjb25maWd1cmF0aW9ucyA9IFtdCisgICAgICAgIGZvciBidWlsZF90eXBlIGluIHNlbGYuQUxM
X0JVSUxEX1RZUEVTOgorICAgICAgICAgICAgY29uZmlndXJhdGlvbnMuYXBwZW5kKFRlc3RDb25m
aWd1cmF0aW9uKHZlcnNpb249c2VsZi5fdmVyc2lvbiwgYXJjaGl0ZWN0dXJlPSd4ODYnLCBidWls
ZF90eXBlPWJ1aWxkX3R5cGUpKQorICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbnMKKworICAg
IGRlZiBfcGF0aF90b19kcml2ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsdF9l
eGVjdXRhYmxlc19wYXRoKHNlbGYuZHJpdmVyX25hbWUoKSkKKworICAgIGRlZiBfcGF0aF90b19p
bWFnZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbHRfZXhlY3V0YWJsZXNf
cGF0aCgnSW1hZ2VEaWZmJykKKworICAgIGRlZiBfZ2V0X2NyYXNoX2xvZyhzZWxmLCBuYW1lLCBw
aWQsIHN0ZG91dCwgc3RkZXJyLCBuZXdlcl90aGFuKToKKyAgICAgICAgbmFtZSA9ICJXUEVXZWJQ
cm9jZXNzIiBpZiBuYW1lID09ICJXZWJQcm9jZXNzIiBlbHNlIG5hbWUKKyAgICAgICAgcmV0dXJu
IEdEQkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2VsZi5fZmlsZXN5
c3RlbSwgc2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xvZyhzdGRvdXQsIHN0
ZGVycikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2Ug
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOTc4NDc1NWYzNgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw2MCBAQAorc2V0
KFRFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtFX1JVTlRJTUVf
T1VUUFVUX0RJUkVDVE9SWX0vVGVzdFdlYktpdEFQSSIpCitzZXQoVEVTVFdFQktJVEFQSV9SVU5U
SU1FX09VVFBVVF9ESVJFQ1RPUllfV1RGICIke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRf
RElSRUNUT1JZfS9XVEYiKQorCisjIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgaXQgaXMgcG9z
c2libGUgdG8gYnVpbGQgVGVzdFdlYktpdEFQSSB3aXRoIFdlYktpdDIKKyMgZGlzYWJsZWQgYW5k
IHRoaXMgdHJpZ2dlcnMgdGhlIGluY2x1c2lvbiBvZiB0aGUgV2ViS2l0MiBoZWFkZXJzLgorYWRk
X2RlZmluaXRpb25zKC1EQlVJTERJTkdfV0VCS0lUMl9fKQorCithZGRfY3VzdG9tX3RhcmdldChU
ZXN0V2ViS2l0QVBJLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNV
VEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJz
LnBsIC0taW5jbHVkZS1wYXRoICR7VEVTVFdFQktJVEFQSV9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FS
RElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3VwCisgICAgREVQ
RU5EUyB3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworKQorCitzZXQoRm9yd2FyZGluZ0hl
YWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUUgVGVzdFdlYktpdEFQSS1mb3J3YXJkaW5nLWhlYWRl
cnMpCisKK2luY2x1ZGVfZGlyZWN0b3JpZXMoCisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElS
fQorICAgICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlwdENvcmUKKykKKworaW5j
bHVkZV9kaXJlY3RvcmllcyhTWVNURU0KKyAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7
TElCU09VUF9JTkNMVURFX0RJUlN9CispCisKK3NldCh0ZXN0X21haW5fU09VUkNFUworICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9tYWluLmNwcAorKQorCitzZXQoYnVuZGxlX2hhcm5lc3Nf
U09VUkNFUworICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9JbmplY3RlZEJ1bmRsZUNvbnRy
b2xsZXJXUEUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL1BsYXRmb3JtVXRpbGl0
aWVzV1BFLmNwcAorKQorCisjIFRlc3RXVEYKKworbGlzdChBUFBFTkQgVGVzdFdURl9TT1VSQ0VT
CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dsaWIvR1VuaXF1ZVB0ci5jcHAK
KyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNw
cAorKQorCisjIFRlc3RXZWJDb3JlCisKK2FkZF9leGVjdXRhYmxlKFRlc3RXZWJDb3JlCisgICAg
JHt0ZXN0X21haW5fU09VUkNFU30KKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0c0NvbnRy
b2xsZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9IVE1MUGFy
c2VySWRpb21zLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvTGF5
b3V0VW5pdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1VSTC5j
cHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5j
cHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlclRl
c3QuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9GaWxlU3lzdGVt
LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4
LmNwcAorKQorCit0YXJnZXRfbGlua19saWJyYXJpZXMoVGVzdFdlYkNvcmUgJHt0ZXN0X3dlYmNv
cmVfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoVGVzdFdlYkNvcmUgJHtGb3J3YXJkaW5n
SGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRX0pCisKK2FkZF90ZXN0KFRlc3RXZWJDb3JlICR7
VEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dlYkNvcmUvVGVzdFdlYkNv
cmUpCitzZXRfdGVzdHNfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9QRVJUSUVTIFRJTUVPVVQg
NjApCitzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoVGVzdFdlYkNvcmUgUFJPUEVSVElFUyBSVU5USU1F
X09VVFBVVF9ESVJFQ1RPUlkgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9S
WX0vV2ViQ29yZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL0luamVjdGVk
QnVuZGxlQ29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9JbmplY3Rl
ZEJ1bmRsZUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5mZDIxMjFiZDdhMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmgiCisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXI6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVz
V1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTIxYzFlYWEyZjMKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVV0aWxpdGll
c1dQRS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK25h
bWVzcGFjZSBVdGlsIHsKKwordm9pZCBzbGVlcChkb3VibGUgc2Vjb25kcykKK3sKKyAgICBnX3Vz
bGVlcChzZWNvbmRzICogMTAwMDAwMCk7Cit9CisKK3N0YXRpYyBjaGFyKiBnZXRGaWxlbmFtZUZy
b21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KGNvbnN0IGNoYXIqIHZhcmlhYmxlTmFtZSkKK3sK
KyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZhcmlhYmxlTmFtZSk7CisgICAgaWYg
KCF2YWx1ZSkgeworICAgICAgICBnX3ByaW50ZXJyKCIlcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBu
b3QgZm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorICAg
IGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191dGY4KHZhbHVl
LCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK1dLU3RyaW5nUmVmIGNyZWF0ZUluamVj
dGVkQnVuZGxlUGF0aCgpCit7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBpbmplY3RlZEJ1bmRsZVBh
dGgoZ2V0RmlsZW5hbWVGcm9tRW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRf
QVBJX1dFQktJVDJfSU5KRUNURURfQlVORExFX1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFy
PiBpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoaW5qZWN0ZWRCdW5kbGVQ
YXRoLmdldCgpLCAibGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlLnNvIiwgbnVsbHB0cikp
OworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhpbmplY3RlZEJ1bmRs
ZUZpbGVuYW1lLmdldCgpKTsKK30KKworV0tVUkxSZWYgY3JlYXRlVVJMRm9yUmVzb3VyY2UoY29u
c3QgY2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGV4dGVuc2lvbikKK3sKKyAgICBHVW5pcXVl
UHRyPGNoYXI+IHRlc3RSZXNvdXJjZXNQYXRoKGdldEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFy
aWFibGVBc1VURjgoIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX1JFU09VUkNFU19QQVRIIikpOwor
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VCYXNlbmFtZShnX3N0cmR1cF9wcmludGYoIiVz
LiVzIiwgcmVzb3VyY2UsIGV4dGVuc2lvbikpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3Vy
Y2VGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKHRlc3RSZXNvdXJjZXNQYXRoLmdldCgpLCByZXNv
dXJjZUJhc2VuYW1lLmdldCgpLCBudWxscHRyKSk7CisgICAgR1JlZlB0cjxHRmlsZT4gcmVzb3Vy
Y2VGaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgocmVzb3VyY2VGaWxlbmFtZS5n
ZXQoKSkpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VVUkkoZ19maWxlX2dldF91cmko
cmVzb3VyY2VGaWxlLmdldCgpKSk7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKHJlc291cmNlVVJJLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVXRpbAorfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93
cGUvbWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjY1NjhiNmMzMmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcApAQCAtMCwwICsxLDMyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0c0NvbnRyb2xsZXIuaCIKKworaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIHJldHVybiBUZXN0V2ViS2l0QVBJOjpUZXN0c0Nv
bnRyb2xsZXI6OnNpbmdsZXRvbigpLnJ1bihhcmdjLCBhcmd2KSA/IEVYSVRfU1VDQ0VTUyA6IEVY
SVRfRkFJTFVSRTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKaW5kZXggMGEx
MzBkNGU4ZGQuLmRlMmJlM2U3YmNkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNw
cApAQCAtNzEsNyArNzEsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNl
ZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkKICAgICByZXR1cm4gV0tBY2Nlc3NpYmlsaXR5RW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBM
QVRGT1JNKEVGTCkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKSAmJiAhUExB
VEZPUk0oV1BFKQogUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpyb290RWxlbWVudCgpCiB7CiAgICAgV0tCdW5kbGVQYWdlUmVmIHBhZ2UgPSBJbmpl
Y3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmgKaW5kZXggNWNmMGQ3MzljMWUuLmM4ZDc4ZTc3YTEyIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oCkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Tm90aWZpY2F0aW9uSGFuZGxlcj4gbV9nbG9iYWxO
b3RpZmljYXRpb25IYW5kbGVyOwotI2Vsc2UKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oRUZMKQogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlcj4gbV9n
bG9iYWxOb3RpZmljYXRpb25IYW5kbGVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHAKaW5kZXggMjMzZmY3ZDIwMzQuLmI4YWY2ZjE2Y2E4IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc1RleHRBcmVhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgog
ICAgIAogLy8gVW5zdXBwb3J0ZWQgbWV0aG9kcyBvbiB2YXJpb3VzIHBsYXRmb3Jtcy4gQXMgdGhl
eSdyZSBpbXBsZW1lbnRlZCBvbiBvdGhlciBwbGF0Zm9ybXMgdGhpcyBsaXN0IHNob3VsZCBiZSBt
b2RpZmllZC4KLSNpZiAoIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkpIHx8ICFIQVZF
KEFDQ0VTU0lCSUxJVFkpCisjaWYgKCFQTEFURk9STShHVEspICYmICFQTEFURk9STShFRkwpICYm
ICFQTEFURk9STShXUEUpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQogSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkg
eyByZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lQXRPZmZzZXQo
aW50KSB7IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4
IDU1MDlhZjIxNzdkLi42ZDA3MDY3OGI5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgK
QEAgLTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VUlFbGVtZW50c1dpdGhB
dHRyaWJ1dGUoSlNTdHJpbmdSZWYsIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4gPiYpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShFRkwpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBnZXRDaGlsZHJl
bihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mKTsKICAgICB2b2lkIGdl
dENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
PiYsIHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApp
bmRleCBhZmZjNDBmMGU0My4uMDE5MTM2MjM3NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtOTgsNyArOTgsNyBA
QCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICAsIG1fZGF0YWJhc2VNYXhRdW90YSgtMSkK
ICAgICAsIG1fdXNlclN0eWxlU2hlZXRFbmFibGVkKGZhbHNlKQogICAgICwgbV91c2VyU3R5bGVT
aGVldExvY2F0aW9uKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIiIpKSkK
LSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAg
ICAgLCBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRl
c3RSdW5uZXI6OndhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyRmlyZWQpCiAjZW5kaWYKIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggOGRjODljYTMxNWUuLjRkYjI4YWQ0YTJjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzgsNyArMzgsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRlJ1bkxv
b3AuaD4KIHR5cGVkZWYgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBQbGF0Zm9ybVRpbWVy
UmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIG5hbWVzcGFjZSBXVFIgewogY2xhc3Mg
VGVzdFJ1bm5lcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk0YzJhYWI3MDgKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dw
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWY8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpjcmVhdGUobnVsbHB0cik7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRy
KTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlz
dGVuZXIoSlNWYWx1ZVJlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3ZlTm90aWZpY2F0
aW9uTGlzdGVuZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElU
WSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3Bl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ2NDkxNTBhNTQwCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudFdQRS5jcHAKQEAgLTAsMCArMSw5NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVz
c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIgor
CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
KworbmFtZXNwYWNlIFdUUiB7CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQoUGxhdGZvcm1VSUVsZW1lbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChjb25z
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp+QWNjZXNzaWJpbGl0eVVJRWxlbWVudCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0VxdWFsKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omdl
dENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+JikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omdl
dENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+
JiwgdW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbkNvdW50KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZWxlbWVudEF0UG9pbnQoaW50LCBpbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordW5zaWdu
ZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNoaWxkKEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKKwor
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNo
aWxkQXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYU93bnNFbGVtZW50
QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29udHJvbHNFbGVt
ZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93QXRJbmRleCh1bnNpZ25l
ZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Vs
ZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KHVuc2lnbmVkKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZVVJRWxl
bWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnBhcmVudEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpkaXNjbG9zZWRCeVJvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkxpbmtlZFVJRWxlbWVudHMoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZEb2N1bWVudExp
bmtzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mQ2hpbGRyZW4oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphbGxBdHRyaWJ1dGVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RyaW5nQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworZG91YmxlIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6Om51bWJlckF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK0pTVmFsdWVS
ZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1ZShK
U1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpyb3dIZWFkZXJzKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVt
bkhlYWRlcnMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFsdWUoSlNTdHJp
bmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0dGFi
bGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmli
dXRlU3VwcG9ydGVkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVOYW1lcygpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGUoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdWJyb2xlKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9uKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29tcHV0ZWRSb2xlU3RyaW5n
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0bGUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNjcmlwdGlvbigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9u
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Ry
aW5nVmFsdWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojps
YW5ndWFnZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhl
bHBUZXh0KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6eSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4w
OworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGgoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmhlaWdodCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2ludFgo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91Ymxl
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRZKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjppbnRWYWx1ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWluVmFsdWUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1heFZhbHVlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwLjA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp2YWx1ZURlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiAwOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUHJlc3NB
Y3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSW5jcmVtZW50QWN0aW9u
U3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0RlY3JlbWVudEFjdGlvblN1cHBv
cnRlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVkKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc1JlcXVpcmVkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0ZvY3Vz
ZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRPcHRpb25BY3RpdmUoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzQ2hlY2tlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmRldGVybWluYXRl
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVsKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3BlYWsoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXJpYUlzR3JhYmJlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRHJvcEVmZmVjdHMoKSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpsaW5lRm9ySW5kZXgoaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpyYW5nZUZvckxpbmUoaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvclBvc2l0aW9uKGludCwgaW50KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib3VuZHNGb3JSYW5nZSh1bnNpZ25l
ZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN0cmluZ0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclJhbmdlKHVuc2lnbmVk
LCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdSYW5n
ZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Vuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnVpRWxlbWVudENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiwgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCosIGJvb2wsIEpTVmFsdWVSZWYsIEpTU3RyaW5nUmVmLCBib29sLCBi
b29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1l
bnRGb3JTZWFyY2hQcmVkaWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
KiwgYm9vbCwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEo
SlNDb250ZXh0UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdSZWYsIEpTU3Ry
aW5nUmVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRy
aWJ1dGVzT2ZDb2x1bW5IZWFkZXJzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93SGVhZGVycygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbnMoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dzKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mVmlz
aWJsZUNlbGxzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YXR0cmlidXRlc09mSGVhZGVyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93Q291bnQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5Db3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4SW5U
YWJsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0luZGV4UmFu
Z2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5J
bmRleFJhbmdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhvcml6b250YWxTY3JvbGxi
YXIoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkVGV4dFJhbmdlKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjppbmNyZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVjcmVtZW50KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNob3dNZW51KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnByZXNzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCog
ZWxlbWVudCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNsZWFyU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50RW5jb2RpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpkb2N1bWVudFVSSSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVybCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmIGZ1bmN0aW9uQ2FsbGJhY2spCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c1NlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVsdGlTZWxlY3Rh
YmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1Zpc2libGUoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc0NvbGxhcHNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVk
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NpbmdsZUxpbmUoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVsdGlMaW5lKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpoYXNQb3B1cCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZUZvY3VzKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnRha2VTZWxlY3Rpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlv
bigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVUZXh0TWFya2VyUmFu
Z2VGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdl
Rm9yRWxlbWVudChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6dGV4dE1hcmtlclJhbmdlTGVuZ3RoKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJldmlvdXNUZXh0
TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0
ZXh0TWFya2VyUmFuZ2VGb3JNYXJrZXJzKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiwgQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBpbnQsIGludCwg
aW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c3RhcnRUZXh0TWFya2VyRm9yQm91bmRzKGludCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJp
bGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJGb3JQb2lu
dChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0
TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiwgQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEZvclRleHRNYXJrZXIo
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNUZXh0TWFya2Vy
VmFsaWQoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJGb3JJbmRleChpbnQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJr
ZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
ZW5kVGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFZpc2li
bGVUZXh0UmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb0dsb2JhbFBvaW50KGlu
dCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1cyhpbnQsIGludCwgaW50
LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1cHBvcnRlZEFjdGlvbnMoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXRoRGVzY3JpcHRp
b24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpt
YXRoUG9zdHNjcmlwdHNEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQcmVzY3JpcHRzRGVzY3JpcHRpb24oKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGFzc0xpc3QoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGFyYWN0
ZXJBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OndvcmRBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlQXRPZmZzZXQoaW50KQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlICBXVEYKKwor
I2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRlRm9udHNXUEUuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMzY2Y3MjFiMzE5Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUv
QWN0aXZhdGVGb250c1dQRS5jcHAKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFjdGl2YXRlRm9udHMuaCIKKworI2luY2x1ZGUgPGZvbnRjb25maWcvZm9udGNvbmZp
Zy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgeworCitDU3RyaW5nIHRvcExldmVs
UGF0aCgpCit7CisgICAgaWYgKGNvbnN0IGNoYXIqIHRvcExldmVsRGlyZWN0b3J5ID0gZ19nZXRl
bnYoIldFQktJVF9UT1BfTEVWRUwiKSkKKyAgICAgICAgcmV0dXJuIHRvcExldmVsRGlyZWN0b3J5
OworCisgICAgLy8gSWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHdhc24ndCBwcm92aWRlZCB0
aGVuIGFzc3VtZSB3ZSB3ZXJlIGJ1aWx0IGludG8KKyAgICAvLyBXZWJLaXRCdWlsZC9EZWJ1ZyBv
ciBXZWJLaXRCdWlsZC9SZWxlYXNlLiBPYnZpb3VzbHkgdGhpcyB3aWxsIGZhaWwgaWYgdGhlIGJ1
aWxkCisgICAgLy8gZGlyZWN0b3J5IGlzIG5vbi1zdGFuZGFyZCwgYnV0IHdlIGNhbid0IGRvIG11
Y2ggbW9yZSBhYm91dCB0aGlzLgorICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGFyZW50UGF0aChnX3Bh
dGhfZ2V0X2Rpcm5hbWUoZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCkuZGF0YSgpKSk7CisgICAg
R1VuaXF1ZVB0cjxjaGFyPiBsYXlvdXRUZXN0c1BhdGgoZ19idWlsZF9maWxlbmFtZShwYXJlbnRQ
YXRoLmdldCgpLCAiLi4iLCAiLi4iLCAiLi4iLCBudWxscHRyKSk7CisgICAgR1VuaXF1ZVB0cjxj
aGFyPiBhYnNvbHV0ZVRvcExldmVsUGF0aChyZWFscGF0aChsYXlvdXRUZXN0c1BhdGguZ2V0KCks
IDApKTsKKyAgICByZXR1cm4gYWJzb2x1dGVUb3BMZXZlbFBhdGguZ2V0KCk7Cit9CisKK0NTdHJp
bmcgZ2V0T3V0cHV0RGlyKCkKK3sKKyAgICBjb25zdCBjaGFyKiB3ZWJraXRPdXRwdXREaXIgPSBn
X2dldGVudigiV0VCS0lUX09VVFBVVERJUiIpOworICAgIGlmICh3ZWJraXRPdXRwdXREaXIpCisg
ICAgICAgIHJldHVybiB3ZWJraXRPdXRwdXREaXI7CisKKyAgICBHVW5pcXVlUHRyPGNoYXI+IG91
dHB1dERpcihnX2J1aWxkX2ZpbGVuYW1lKHRvcExldmVsUGF0aCgpLmRhdGEoKSwgIldlYktpdEJ1
aWxkIiwgbnVsbHB0cikpOworICAgIHJldHVybiBvdXRwdXREaXIuZ2V0KCk7Cit9CisKK3N0YXRp
YyBDU3RyaW5nIGdldEZvbnRzUGF0aCgpCit7CisgICAgQ1N0cmluZyB3ZWJraXRPdXRwdXREaXIg
PSBnZXRPdXRwdXREaXIoKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGZvbnRzUGF0aChnX2J1aWxk
X2ZpbGVuYW1lKHdlYmtpdE91dHB1dERpci5kYXRhKCksICJEZXBlbmRlbmNpZXNXUEUiLCAiUm9v
dCIsICJ3ZWJraXRndGstdGVzdC1mb250cyIsIG51bGxwdHIpKTsKKyAgICBpZiAoZ19maWxlX3Rl
c3QoZm9udHNQYXRoLmdldCgpLCBzdGF0aWNfY2FzdDxHRmlsZVRlc3Q+KEdfRklMRV9URVNUX0VY
SVNUUyB8IEdfRklMRV9URVNUX0lTX0RJUikpKQorICAgICAgICByZXR1cm4gZm9udHNQYXRoLmdl
dCgpOworCisgICAgLy8gVHJ5IGFsdGVybmF0aXZlIGZvbnRzIHBhdGguCisgICAgZm9udHNQYXRo
LnJlc2V0KGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwgIndlYmtpdGd0
ay10ZXN0LWZvbnRzIiwgTlVMTCkpOworICAgIGlmIChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0
KCksIHN0YXRpY19jYXN0PEdGaWxlVGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RF
U1RfSVNfRElSKSkpCisgICAgICAgIHJldHVybiBmb250c1BhdGguZ2V0KCk7CisKKyAgICByZXR1
cm4gQ1N0cmluZygpOworfQorCit2b2lkIGFjdGl2YXRlRm9udHMoKQoreworICAgIGlmIChnX2dl
dGVudigiV0VCS0lUX1NLSVBfV0VCS0lUVEVTVFJVTk5FUl9GT05UQ09ORklHX0lOSVRJQUxJWkFU
SU9OIikpCisgICAgICAgIHJldHVybjsKKworICAgIEZjSW5pdCgpOworCisgICAgLy8gSWYgYSB0
ZXN0IHJlc3VsdGVkIGEgZm9udCBiZWluZyBhZGRlZCBvciByZW1vdmVkIHZpYSB0aGUgQGZvbnQt
ZmFjZSBydWxlLCB0aGVuCisgICAgLy8gd2Ugd2FudCB0byByZXNldCB0aGUgRm9udENvbmZpZyBj
b25maWd1cmF0aW9uIHRvIHByZXZlbnQgaXQgZnJvbSBhZmZlY3Rpbmcgb3RoZXIgdGVzdHMuCisg
ICAgc3RhdGljIGludCBudW1Gb250cyA9IDA7CisgICAgRmNGb250U2V0KiBhcHBGb250U2V0ID0g
RmNDb25maWdHZXRGb250cygwLCBGY1NldEFwcGxpY2F0aW9uKTsKKyAgICBpZiAoYXBwRm9udFNl
dCAmJiBudW1Gb250cyAmJiBhcHBGb250U2V0LT5uZm9udCA9PSBudW1Gb250cykKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gTG9hZCBvdXIgY29uZmlndXJhdGlvbiBmaWxlLCB3aGljaCBzZXRz
IHVwIHByb3BlciBhbGlhc2VzIGZvciBmYW1pbHkKKyAgICAvLyBuYW1lcyBsaWtlIHNhbnMsIHNl
cmlmIGFuZCBtb25vc3BhY2UuCisgICAgRmNDb25maWcqIGNvbmZpZyA9IEZjQ29uZmlnQ3JlYXRl
KCk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9udENvbmZpZ0ZpbGVuYW1lKGdfYnVpbGRfZmls
ZW5hbWUoRk9OVFNfQ09ORl9ESVIsICJmb250cy5jb25mIiwgbnVsbHB0cikpOworICAgIGlmICgh
Z19maWxlX3Rlc3QoZm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpLCBHX0ZJTEVfVEVTVF9JU19SRUdV
TEFSKSkKKyAgICAgICAgZ19lcnJvcigiQ2Fubm90IGZpbmQgZm9udHMuY29uZiBhdCAlc1xuIiwg
Zm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpKTsKKyAgICBpZiAoIUZjQ29uZmlnUGFyc2VBbmRMb2Fk
KGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udENvbmZpZ0ZpbGVuYW1lLmdl
dCgpKSwgdHJ1ZSkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkbid0IGxvYWQgZm9udCBjb25maWd1
cmF0aW9uIGZpbGUgZnJvbTogJXMiLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworCisgICAg
Q1N0cmluZyBmb250c1BhdGggPSBnZXRGb250c1BhdGgoKTsKKyAgICBpZiAoZm9udHNQYXRoLmlz
TnVsbCgpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9jYXRlIHRlc3QgZm9udHMgYXQg
JXMuIElzIFdFQktJVF9UT1BfTEVWRUwgc2V0PyIsIGZvbnRzUGF0aC5kYXRhKCkpOworCisgICAg
R1VuaXF1ZVB0cjxHRGlyPiBmb250c0RpcmVjdG9yeShnX2Rpcl9vcGVuKGZvbnRzUGF0aC5kYXRh
KCksIDAsIG51bGxwdHIpKTsKKyAgICB3aGlsZSAoY29uc3QgY2hhciogZGlyZWN0b3J5RW50cnkg
PSBnX2Rpcl9yZWFkX25hbWUoZm9udHNEaXJlY3RvcnkuZ2V0KCkpKSB7CisgICAgICAgIGlmICgh
Z19zdHJfaGFzX3N1ZmZpeChkaXJlY3RvcnlFbnRyeSwgIi50dGYiKSAmJiAhZ19zdHJfaGFzX3N1
ZmZpeChkaXJlY3RvcnlFbnRyeSwgIi5vdGYiKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250UGF0aChnX2J1aWxkX2ZpbGVuYW1lKGZvbnRzUGF0
aC5kYXRhKCksIGRpcmVjdG9yeUVudHJ5LCBudWxscHRyKSk7CisgICAgICAgIGlmICghRmNDb25m
aWdBcHBGb250QWRkRmlsZShjb25maWcsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgRmNDaGFyOCo+
KGZvbnRQYXRoLmdldCgpKSkpCisgICAgICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBm
b250IGF0ICVzISIsIGZvbnRQYXRoLmdldCgpKTsKKyAgICB9CisKKyAgICAvLyBBaGVtIGlzIHVz
ZWQgYnkgbWFueSBsYXlvdXQgdGVzdHMuCisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gYWhlbUZvbnRG
aWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKEZPTlRTX0NPTkZfRElSLCAiQUhFTV9fX18uVFRGIiwg
bnVsbHB0cikpOworICAgIGlmICghRmNDb25maWdBcHBGb250QWRkRmlsZShjb25maWcsIHJlaW50
ZXJwcmV0X2Nhc3Q8RmNDaGFyOCo+KGFoZW1Gb250RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAg
Z19lcnJvcigiQ291bGQgbm90IGxvYWQgZm9udCBhdCAlcyEiLCBhaGVtRm9udEZpbGVuYW1lLmdl
dCgpKTsgCisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZm9udEZpbGVuYW1lc1tdID0geworICAg
ICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjEwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0
V2F0Y2hlcjIwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjMwMC50dGYiLAor
ICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjQwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2Vp
Z2h0V2F0Y2hlcjUwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjYwMC50dGYi
LAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50dGYiLAorICAgICAgICAiV2ViS2l0
V2VpZ2h0V2F0Y2hlcjgwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjkwMC50
dGYiLAorICAgICAgICAwCisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBmb250Rmls
ZW5hbWVzW2ldOyArK2kpIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9udEZpbGVuYW1l
KGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICIuLiIsICIuLiIsICJmb250cyIsIGZv
bnRGaWxlbmFtZXNbaV0sIG51bGxwdHIpKTsKKyAgICAgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRB
ZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udEZpbGVuYW1lLmdl
dCgpKSkpCisgICAgICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVzISIs
IGZvbnRGaWxlbmFtZS5nZXQoKSk7IAorICAgIH0KKworICAgIC8vIEEgZm9udCB3aXRoIG5vIHZh
bGlkIEZvbnRjb25maWcgZW5jb2RpbmcgdG8gdGVzdCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDc0NTIKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250V2l0aE5vVmFs
aWRFbmNvZGluZ0ZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICJGb250
V2l0aE5vVmFsaWRFbmNvZGluZy5mb24iLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0Fw
cEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udFdpdGhO
b1ZhbGlkRW5jb2RpbmdGaWxlbmFtZS5nZXQoKSkpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBu
b3QgbG9hZCBmb250IGF0ICVzISIsIGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUuZ2V0
KCkpOyAKKworICAgIGlmICghRmNDb25maWdTZXRDdXJyZW50KGNvbmZpZykpCisgICAgICAgIGdf
ZXJyb3IoIkNvdWxkIG5vdCBzZXQgdGhlIGN1cnJlbnQgZm9udCBjb25maWd1cmF0aW9uISIpOwor
CisgICAgbnVtRm9udHMgPSBGY0NvbmZpZ0dldEZvbnRzKGNvbmZpZywgRmNTZXRBcHBsaWNhdGlv
biktPm5mb250OworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxl
V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjQwODFmZjNh
MjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL3dwZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK3Zv
aWQgSW5qZWN0ZWRCdW5kbGU6OnBsYXRmb3JtSW5pdGlhbGl6ZShXS1R5cGVSZWYpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmYxNGZmZGQwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNw
cApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0UnVubmVyLmgi
CisKK25hbWVzcGFjZSBXVFIgeworCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5l
cjo6cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZikKK3sKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6Omluc3BlY3RvclRl
c3RTdHViVVJMKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IiIpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OmludmFsaWRhdGVXYWl0VG9EdW1wV2F0Y2hkb2dU
aW1lcigpCit7CisgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdG9wKCk7Cit9CisKK3Zv
aWQgVGVzdFJ1bm5lcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKwordm9pZCBUZXN0UnVu
bmVyOjppbml0aWFsaXplV2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJZk5lZWRlZCgpCit7CisgICAg
aWYgKCFtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fd2Fp
dFRvRHVtcFdhdGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KG1fdGltZW91dCAvIDEwMDAuMCk7Cit9
CisKKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdQ
RS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGE4NjJkNjlh
ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV1BF
LmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKK2ZpbmRfcGFja2FnZShMaWJHQk0gUkVRVUlSRUQpCitm
aW5kX3BhY2thZ2UoV1BFQmFja2VuZC1tZXNhIFJFUVVJUkVEKQorCithZGRfY3VzdG9tX3Rhcmdl
dChXZWJLaXRUZXN0UnVubmVyLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQRVJM
X0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1o
ZWFkZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfSAtLW91dHB1
dCAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlCispCisKK3NldChGb3J3
YXJkaW5nSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJfTkFNRSBXZWJLaXRUZXN0UnVubmVyLWZv
cndhcmRpbmctaGVhZGVycykKKworbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VT
CisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2NhaXJvL1Rlc3RJbnZvY2F0aW9uQ2Fpcm8u
Y3BwCisKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL0V2ZW50U2VuZGVyUHJveHlX
UEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9IZWFkbGVzc1ZpZXdCYWNr
ZW5kLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvUGxhdGZvcm1XZWJWaWV3
V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvVGVzdENvbnRyb2xsZXJX
UEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9tYWluLmNwcAorKQorCits
aXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke1dF
QktJVF9URVNUUlVOTkVSX0RJUn0vSW5qZWN0ZWRCdW5kbGUvd3BlCisgICAgJHtGT1JXQVJESU5H
X0hFQURFUlNfRElSfQorICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7R0xJQl9JTkNM
VURFX0RJUlN9CisgICAgJHtMSUJHQk1fSU5DTFVERV9ESVJTfQorICAgICR7V1BFX01FU0FfSU5D
TFVERV9ESVJTfQorKQorCitsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFUwor
ICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgJHtMSUJH
Qk1fTElCUkFSSUVTfQorICAgICR7V1BFX01FU0FfTElCUkFSSUVTfQorKQorCitsaXN0KEFQUEVO
RCBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUworICAgICR7V0VCS0lUX1RF
U1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJX
UEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5K
RUNURURCVU5ETEVfRElSfS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAKKyAgICAke1dFQktJVF9U
RVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcAor
ICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvVGVzdFJ1bm5l
cldQRS5jcHAKKykKKworYWRkX2RlZmluaXRpb25zKAorICAgIC1ERk9OVFNfQ09ORl9ESVI9IiR7
VE9PTFNfRElSfS9XZWJLaXRUZXN0UnVubmVyL2d0ay9mb250cyIKKyAgICAtRFRPUF9MRVZFTF9E
SVI9IiR7Q01BS0VfU09VUkNFX0RJUn0iCispCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bVdlYlZpZXcuaAppbmRleCA3MWE0ZTc2NjE3Ni4uNTQyZjAzNjZkNTcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtNTMsNiArNTMsMTEgQEAgdHlwZWRlZiBj
YWlyb19zdXJmYWNlX3QgKlBsYXRmb3JtSW1hZ2U7CiAjZWxpZiBQTEFURk9STShFRkwpCiB0eXBl
ZGVmIEV2YXNfT2JqZWN0KiBQbGF0Zm9ybVdLVmlldzsKIHR5cGVkZWYgRWNvcmVfRXZhcyogUGxh
dGZvcm1XaW5kb3c7CisjZWxpZiBQTEFURk9STShXUEUpCitjbGFzcyBIZWFkbGVzc1ZpZXdCYWNr
ZW5kOwordHlwZWRlZiBXS1ZpZXdSZWYgUGxhdGZvcm1XS1ZpZXc7Cit0eXBlZGVmIEhlYWRsZXNz
Vmlld0JhY2tlbmQqIFBsYXRmb3JtV2luZG93OwordHlwZWRlZiBjYWlyb19zdXJmYWNlX3QqIFBs
YXRmb3JtSW1hZ2U7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdUUiB7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDliNzA5ZTM2Zjc1Li5hZDE5ZjEwYjQyOCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTc2Nyw3ICs3
NjcsNyBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVz
KGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBkb2lu
ZyB0aGlzLCBpdCBzaG91bGQgcHJvYmFibHkgYmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAgdG9v
LgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKLSNp
ZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BF
KQogICAgIFdLVGV4dENoZWNrZXJDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNo
YW5nZWQodHJ1ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dw
ZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uNTFlZTBmYzJlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRXZlbnRTZW5kZXJQcm94eS5oIgorCituYW1lc3BhY2UgV1RS
IHsKKworRXZlbnRTZW5kZXJQcm94eTo6RXZlbnRTZW5kZXJQcm94eShUZXN0Q29udHJvbGxlciog
dGVzdENvbnRyb2xsZXIpCisgICAgOiBtX3Rlc3RDb250cm9sbGVyKHRlc3RDb250cm9sbGVyKQor
ICAgICwgbV90aW1lKDApCisgICAgLCBtX2xlZnRNb3VzZUJ1dHRvbkRvd24oZmFsc2UpCisgICAg
LCBtX2NsaWNrQ291bnQoMCkKKyAgICAsIG1fY2xpY2tUaW1lKDApCisgICAgLCBtX2NsaWNrQnV0
dG9uKGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1dHRvbikKK3sKK30KKworRXZlbnRTZW5kZXJQcm94
eTo6fkV2ZW50U2VuZGVyUHJveHkoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1v
dXNlRG93bih1bnNpZ25lZCwgV0tFdmVudE1vZGlmaWVycykKK3sKK30KKwordm9pZCBFdmVudFNl
bmRlclByb3h5Ojptb3VzZVVwKHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJzKQoreworfQorCit2
b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsZSwgZG91YmxlKQoreworfQor
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnkoaW50LCBpbnQpCit7Cit9CisK
K3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKGludCwgaW50LCBpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5
Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQsIGludCwgYm9vbCkKK3sKK30KKwordm9pZCBF
dmVudFNlbmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiwgV0tFdmVudE1vZGlmaWVycywgdW5zaWduZWQp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6YWRkVG91Y2hQb2ludChpbnQsIGludCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp1cGRhdGVUb3VjaFBvaW50KGludCwgaW50
LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0VG91Y2hNb2RpZmllcihX
S0V2ZW50TW9kaWZpZXJzLCBib29sKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNl
dFRvdWNoUG9pbnRSYWRpdXMoaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6dG91Y2hTdGFydCgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hNb3Zl
KCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaEVuZCgpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hDYW5jZWwoKQoreworfQorCit2b2lkIEV2ZW50U2Vu
ZGVyUHJveHk6OmNsZWFyVG91Y2hQb2ludHMoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6OnJlbGVhc2VUb3VjaFBvaW50KGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5
OjpjYW5jZWxUb3VjaFBvaW50KGludCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NjBiNDBhM2VmYgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tl
bmQuY3BwCkBAIC0wLDAgKzEsMjUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIZWFkbGVz
c1ZpZXdCYWNrZW5kLmgiCisKKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUgPGZjbnRsLmg+
CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKy8vIEZJWE1FOiBEZXBsb3kgZ29vZCBwcmFjdGljZXMg
YW5kIGNsZWFuIHVwIEdCTSByZXNvdXJjZXMgYXQgcHJvY2VzcyBleGl0Lgorc3RhdGljIEVHTERp
c3BsYXkgZ2V0RUdMRGlzcGxheSgpCit7CisgICAgc3RhdGljIEVHTERpc3BsYXkgc19kaXNwbGF5
ID0gRUdMX05PX0RJU1BMQVk7CisgICAgaWYgKHNfZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkg
eworICAgICAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L2RyaS9yZW5kZXJEMTI4IiwgT19SRFdSIHwg
T19DTE9FWEVDIHwgT19OT0NUVFkgfCBPX05PTkJMT0NLKTsKKyAgICAgICAgaWYgKGZkIDwgMCkK
KyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBzdHJ1Y3QgZ2Jt
X2RldmljZSogZGV2aWNlID0gZ2JtX2NyZWF0ZV9kZXZpY2UoZmQpOworICAgICAgICBpZiAoIWRl
dmljZSkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBFR0xE
aXNwbGF5IGRpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KGRldmljZSk7CisgICAgICAgIGlmIChkaXNw
bGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZ
OworCisgICAgICAgIGlmICghZWdsSW5pdGlhbGl6ZShkaXNwbGF5LCBudWxscHRyLCBudWxscHRy
KSkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBpZiAoIWVn
bEJpbmRBUEkoRUdMX09QRU5HTF9FU19BUEkpKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19E
SVNQTEFZOworCisgICAgICAgIHNfZGlzcGxheSA9IGRpc3BsYXk7CisgICAgfQorCisgICAgcmV0
dXJuIHNfZGlzcGxheTsKK30KKworSGVhZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFj
a2VuZCgpCit7CisgICAgbV9lZ2wuZGlzcGxheSA9IGdldEVHTERpc3BsYXkoKTsKKworICAgIHN0
YXRpYyBjb25zdCBFR0xpbnQgY29uZmlnQXR0cmlidXRlc1sxM10gPSB7CisgICAgICAgIEVHTF9T
VVJGQUNFX1RZUEUsIEVHTF9XSU5ET1dfQklULAorICAgICAgICBFR0xfUkVEX1NJWkUsIDEsCisg
ICAgICAgIEVHTF9HUkVFTl9TSVpFLCAxLAorICAgICAgICBFR0xfQkxVRV9TSVpFLCAxLAorICAg
ICAgICBFR0xfQUxQSEFfU0laRSwgMSwKKyAgICAgICAgRUdMX1JFTkRFUkFCTEVfVFlQRSwgRUdM
X09QRU5HTF9FUzJfQklULAorICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAgICBFR0xpbnQg
bnVtQ29uZmlnczsKKyAgICBFR0xCb29sZWFuIHJldCA9IGVnbENob29zZUNvbmZpZyhtX2VnbC5k
aXNwbGF5LCBjb25maWdBdHRyaWJ1dGVzLCAmbV9lZ2wuY29uZmlnLCAxLCAmbnVtQ29uZmlncyk7
CisgICAgaWYgKCFyZXQgfHwgIW51bUNvbmZpZ3MpCisgICAgICAgIHJldHVybjsKKworICAgIHN0
YXRpYyBjb25zdCBFR0xpbnQgY29udGV4dEF0dHJpYnV0ZXNbM10gPSB7CisgICAgICAgIEVHTF9D
T05URVhUX0NMSUVOVF9WRVJTSU9OLCAyLAorICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAg
ICBtX2VnbC5jb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5j
b25maWcsIEVHTF9OT19DT05URVhULCBjb250ZXh0QXR0cmlidXRlcyk7CisgICAgaWYgKG1fZWds
LmNvbnRleHQgPT0gRUdMX05PX0NPTlRFWFQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
ZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJG
QUNFLCBtX2VnbC5jb250ZXh0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9lZ2wuY3JlYXRl
SW1hZ2UgPSByZWludGVycHJldF9jYXN0PFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQz4oZWdsR2V0
UHJvY0FkZHJlc3MoImVnbENyZWF0ZUltYWdlS0hSIikpOworICAgIG1fZWdsLmRlc3Ryb3lJbWFn
ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJv
Y0FkZHJlc3MoImVnbERlc3Ryb3lJbWFnZUtIUiIpKTsKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRl
eHR1cmUyRE9FUyA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUy
RE9FU1BST0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VT
IikpOworCisgICAgbV9leHBvcnRhYmxlID0gd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFi
bGVfZG1hX2J1Zl9jcmVhdGUoJnNfZXhwb3J0YWJsZUNsaWVudCwgdGhpcyk7CisKKyAgICBtX3Vw
ZGF0ZVNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3KG1fZnJhbWVSYXRlIC8gMTAwMCk7Cisg
ICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdXBkYXRlU291cmNlLAorICAgICAgICBbXShncG9p
bnRlciBkYXRhKSAtPiBnYm9vbGVhbiB7CisgICAgICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0
YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAgICAgIGJhY2tl
bmQucGVyZm9ybVVwZGF0ZSgpOworICAgICAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgIH0s
IHRoaXMsIG51bGxwdHIpOworICAgIGdfc291cmNlX2F0dGFjaChtX3VwZGF0ZVNvdXJjZSwgZ19t
YWluX2NvbnRleHRfZGVmYXVsdCgpKTsKK30KKworSGVhZGxlc3NWaWV3QmFja2VuZDo6fkhlYWRs
ZXNzVmlld0JhY2tlbmQoKQoreworICAgIGlmIChtX3VwZGF0ZVNvdXJjZSkKKyAgICAgICAgZ19z
b3VyY2VfZGVzdHJveShtX3VwZGF0ZVNvdXJjZSk7CisKKyAgICBpZiAoYXV0byBpbWFnZSA9IHN0
ZDo6Z2V0PDA+KG1fcGVuZGluZ0ltYWdlLnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJ
bWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6Omdl
dDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZSht
X2VnbC5kaXNwbGF5LCBpbWFnZSk7CisKKyAgICBmb3IgKGF1dG8gaXQgOiBtX2V4cG9ydE1hcCkg
eworICAgICAgICBpbnQgZmQgPSBpdC5zZWNvbmQ7CisgICAgICAgIGlmIChmZCA+PSAwKQorICAg
ICAgICAgICAgY2xvc2UoZmQpOworICAgIH0KKworICAgIGlmIChtX2VnbC5jb250ZXh0KQorICAg
ICAgICBlZ2xEZXN0cm95Q29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb250ZXh0KTsKK30K
Kworc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmJhY2tlbmQo
KSBjb25zdAoreworICAgIHJldHVybiB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9k
bWFfYnVmX2dldF92aWV3X2JhY2tlbmQobV9leHBvcnRhYmxlKTsKK30KKworY2Fpcm9fc3VyZmFj
ZV90KiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpjcmVhdGVTbmFwc2hvdCgpCit7CisgICAgcGVyZm9y
bVVwZGF0ZSgpOworCisgICAgRUdMSW1hZ2VLSFIgaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tl
ZEltYWdlLnNlY29uZCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICB1aW50MzJfdCB3aWR0aCA9IHN0ZDo6Z2V0PDE+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25k
KTsKKyAgICB1aW50MzJfdCBoZWlnaHQgPSBzdGQ6OmdldDwyPihtX2xvY2tlZEltYWdlLnNlY29u
ZCk7CisKKyAgICB1aW50OF90KiBidWZmZXIgPSBuZXcgdWludDhfdFs0ICogd2lkdGggKiBoZWln
aHRdOworICAgIGJvb2wgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gZmFsc2U7CisKKyAgICBtYWtlQ3Vy
cmVudCgpOworCisgICAgR0x1aW50IGltYWdlVGV4dHVyZTsKKyAgICBnbEdlblRleHR1cmVzKDEs
ICZpbWFnZVRleHR1cmUpOworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgaW1hZ2VU
ZXh0dXJlKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9N
SU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJE
LCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJp
KEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAg
ICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NM
QU1QX1RPX0VER0UpOworICAgIGdsVGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBHTF9CR1JB
X0VYVCwgd2lkdGgsIGhlaWdodCwgMCwgR0xfQkdSQV9FWFQsIEdMX1VOU0lHTkVEX0JZVEUsIG51
bGxwdHIpOworCisgICAgbV9lZ2wuaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMoR0xfVEVYVFVSRV8y
RCwgaW1hZ2UpOworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CisKKyAgICBH
THVpbnQgaW1hZ2VGcmFtZWJ1ZmZlcjsKKyAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmaW1hZ2VG
cmFtZWJ1ZmZlcik7CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGltYWdl
RnJhbWVidWZmZXIpOworICAgIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIs
IEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCBpbWFnZVRleHR1cmUsIDApOwor
CisgICAgZ2xGbHVzaCgpOworICAgIGlmIChnbENoZWNrRnJhbWVidWZmZXJTdGF0dXMoR0xfRlJB
TUVCVUZGRVIpID09IEdMX0ZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7CisgICAgICAgIGdsUmVhZFBp
eGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBHTF9CR1JBX0VYVCwgR0xfVU5TSUdORURfQllURSwg
YnVmZmVyKTsKKyAgICAgICAgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gdHJ1ZTsKKyAgICB9CisKKyAg
ICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgMCk7CisgICAgZ2xEZWxldGVGcmFt
ZWJ1ZmZlcnMoMSwgJmltYWdlRnJhbWVidWZmZXIpOworICAgIGdsRGVsZXRlVGV4dHVyZXMoMSwg
JmltYWdlVGV4dHVyZSk7CisKKyAgICBpZiAoIXN1Y2Nlc3NmdWxTbmFwc2hvdCkgeworICAgICAg
ICBkZWxldGVbXSBidWZmZXI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAg
IGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VTdXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVh
dGVfZm9yX2RhdGEoYnVmZmVyLAorICAgICAgICBDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCwg
aGVpZ2h0LCBjYWlyb19mb3JtYXRfc3RyaWRlX2Zvcl93aWR0aChDQUlST19GT1JNQVRfQVJHQjMy
LCB3aWR0aCkpOworICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eShpbWFnZVN1cmZhY2UpOwor
CisgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBidWZmZXJLZXk7CisgICAgY2Fpcm9f
c3VyZmFjZV9zZXRfdXNlcl9kYXRhKGltYWdlU3VyZmFjZSwgJmJ1ZmZlcktleSwgYnVmZmVyLAor
ICAgICAgICBbXSh2b2lkKiBkYXRhKSB7CisgICAgICAgICAgICBhdXRvKiBidWZmZXIgPSBzdGF0
aWNfY2FzdDx1aW50OF90Kj4oZGF0YSk7CisgICAgICAgICAgICBkZWxldGVbXSBidWZmZXI7Cisg
ICAgICAgIH0pOworCisgICAgcmV0dXJuIGltYWdlU3VyZmFjZTsKK30KKworYm9vbCBIZWFkbGVz
c1ZpZXdCYWNrZW5kOjptYWtlQ3VycmVudCgpCit7CisgICAgcmV0dXJuIGVnbE1ha2VDdXJyZW50
KG1fZWdsLmRpc3BsYXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgbV9lZ2wuY29u
dGV4dCk7Cit9CisKK3ZvaWQgSGVhZGxlc3NWaWV3QmFja2VuZDo6cGVyZm9ybVVwZGF0ZSgpCit7
CisgICAgaWYgKCFtX3BlbmRpbmdJbWFnZS5maXJzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
d3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9mcmFtZV9j
b21wbGV0ZShtX2V4cG9ydGFibGUpOworICAgIGlmIChtX2xvY2tlZEltYWdlLmZpcnN0KSB7Cisg
ICAgICAgIHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZGlzcGF0Y2hf
cmVsZWFzZV9idWZmZXIobV9leHBvcnRhYmxlLCBtX2xvY2tlZEltYWdlLmZpcnN0KTsKKyAgICAg
ICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIHN0ZDo6Z2V0PDA+KG1fbG9ja2Vk
SW1hZ2Uuc2Vjb25kKSk7CisgICAgfQorCisgICAgbV9sb2NrZWRJbWFnZSA9IG1fcGVuZGluZ0lt
YWdlOworICAgIG1fcGVuZGluZ0ltYWdlID0gc3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxl
PEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiB7IH07Cit9CisKK3N0cnVjdCB3cGVf
bWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2NsaWVudCBIZWFkbGVzc1ZpZXdC
YWNrZW5kOjpzX2V4cG9ydGFibGVDbGllbnQgPSB7CisgICAgLy8gZXhwb3J0X2RtYV9idWYKKyAg
ICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVf
ZG1hX2J1Zl9kYXRhKiBpbWFnZURhdGEpCisgICAgeworICAgICAgICBhdXRvJiBiYWNrZW5kID0g
KnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKworICAgICAgICBhdXRv
IGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKTsKKyAgICAgICAgaWYgKGltYWdlRGF0YS0+
ZmQgPj0gMCkgeworICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChp
bWFnZURhdGEtPmhhbmRsZSkgPT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisKKyAgICAg
ICAgICAgIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5pbnNlcnQoeyBpbWFnZURhdGEtPmhhbmRs
ZSwgaW1hZ2VEYXRhLT5mZCB9KS5maXJzdDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGFzc2VydChiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpICE9IGJh
Y2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOworICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhw
b3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpOworICAgICAgICB9CisKKyAgICAgICAgYXNz
ZXJ0KGl0ICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOworICAgICAgICB1aW50MzJfdCBo
YW5kbGUgPSBpdC0+Zmlyc3Q7CisgICAgICAgIGludDMyX3QgZmQgPSBpdC0+c2Vjb25kOworCisg
ICAgICAgIGJhY2tlbmQubWFrZUN1cnJlbnQoKTsKKworICAgICAgICBFR0xpbnQgYXR0cmlidXRl
c1tdID0geworICAgICAgICAgICAgRUdMX1dJRFRILCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdl
RGF0YS0+d2lkdGgpLAorICAgICAgICAgICAgRUdMX0hFSUdIVCwgc3RhdGljX2Nhc3Q8RUdMaW50
PihpbWFnZURhdGEtPmhlaWdodCksCisgICAgICAgICAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19F
WFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5mb3JtYXQpLAorICAgICAgICAgICAg
RUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VYVCwgZmQsCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9Q
TEFORTBfT0ZGU0VUX0VYVCwgMCwKKyAgICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9QSVRD
SF9FWFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5zdHJpZGUpLAorICAgICAgICAg
ICAgRUdMX05PTkUsCisgICAgICAgIH07CisgICAgICAgIEVHTEltYWdlS0hSIGltYWdlID0gYmFj
a2VuZC5tX2VnbC5jcmVhdGVJbWFnZShiYWNrZW5kLm1fZWdsLmRpc3BsYXksIEVHTF9OT19DT05U
RVhULCBFR0xfTElOVVhfRE1BX0JVRl9FWFQsIG51bGxwdHIsIGF0dHJpYnV0ZXMpOworICAgICAg
ICBiYWNrZW5kLm1fcGVuZGluZ0ltYWdlID0geyBpbWFnZURhdGEtPmhhbmRsZSwgc3RkOjptYWtl
X3R1cGxlKGltYWdlLCBpbWFnZURhdGEtPndpZHRoLCBpbWFnZURhdGEtPmhlaWdodCkgfTsKKyAg
ICB9LAorfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNz
Vmlld0JhY2tlbmQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0Jh
Y2tlbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjA1NGY4MzQy
MjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVz
c1ZpZXdCYWNrZW5kLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGNhaXJv
Lmg+CisjaW5jbHVkZSA8Z2JtLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHVub3Jk
ZXJlZF9tYXA+CisjaW5jbHVkZSA8d3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtZG1h
LWJ1Zi5oPgorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorI2luY2x1ZGUgPEdMRVMyL2dsMmV4dC5o
PgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+CisKK2NsYXNz
IEhlYWRsZXNzVmlld0JhY2tlbmQgeworcHVibGljOgorICAgIEhlYWRsZXNzVmlld0JhY2tlbmQo
KTsKKyAgICB+SGVhZGxlc3NWaWV3QmFja2VuZCgpOworCisgICAgc3RydWN0IHdwZV92aWV3X2Jh
Y2tlbmQqIGJhY2tlbmQoKSBjb25zdDsKKworICAgIGNhaXJvX3N1cmZhY2VfdCogY3JlYXRlU25h
cHNob3QoKTsKKworcHJpdmF0ZToKKyAgICBib29sIG1ha2VDdXJyZW50KCk7CisgICAgdm9pZCBw
ZXJmb3JtVXBkYXRlKCk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2Vu
ZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50IHNfZXhwb3J0YWJsZUNsaWVudDsKKworICAgIHN0
cnVjdCB7CisgICAgICAgIEVHTERpc3BsYXkgZGlzcGxheTsKKyAgICAgICAgRUdMQ29uZmlnIGNv
bmZpZzsKKyAgICAgICAgRUdMQ29udGV4dCBjb250ZXh0OworCisgICAgICAgIFBGTkVHTENSRUFU
RUlNQUdFS0hSUFJPQyBjcmVhdGVJbWFnZTsKKyAgICAgICAgUEZORUdMREVTVFJPWUlNQUdFS0hS
UFJPQyBkZXN0cm95SW1hZ2U7CisgICAgICAgIFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJFMkRP
RVNQUk9DIGltYWdlVGFyZ2V0VGV4dHVyZTJET0VTOworICAgIH0gbV9lZ2w7CisKKyAgICBzdHJ1
Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1ZiogbV9leHBvcnRhYmxl
OworCisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQzMl90LCBpbnQzMl90PiBtX2V4cG9ydE1h
cDsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQz
Ml90LCB1aW50MzJfdD4+IG1fcGVuZGluZ0ltYWdlIHsgfTsKKyAgICBzdGQ6OnBhaXI8dWludDMy
X3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fbG9ja2Vk
SW1hZ2UgeyB9OworCisgICAgR1NvdXJjZSogbV91cGRhdGVTb3VyY2U7CisgICAgZ2ludDY0IG1f
ZnJhbWVSYXRlIHsgR19VU0VDX1BFUl9TRUMgLyA2MCB9OworfTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45NTA0Mzk0YmQ0NgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKQEAgLTAsMCAr
MSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorCisj
aW5jbHVkZSAiSGVhZGxlc3NWaWV3QmFja2VuZC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0ltYWdl
Q2Fpcm8uaD4KKyNpbmNsdWRlIDxjYWlyby5oPgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRl
IDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdUUiB7CisK
K1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYg
Y29uZmlndXJhdGlvbiwgY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBtX3dpbmRv
d0lzS2V5KHRydWUpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKK3sKKyAgICBtX3dpbmRvdyA9
IG5ldyBIZWFkbGVzc1ZpZXdCYWNrZW5kOworICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZVdpdGhW
aWV3QmFja2VuZChtX3dpbmRvdy0+YmFja2VuZCgpLCBjb25maWd1cmF0aW9uKTsKK30KKworUGxh
dGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkKK3sKKyAgICBkZWxldGUgbV93aW5kb3c7
Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCwgdW5zaWduZWQs
IFdlYlZpZXdTaXppbmdNb2RlKQoreworfQorCitXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3Ojpw
YWdlKCkKK3sKKyAgICByZXR1cm4gV0tWaWV3R2V0UGFnZShtX3ZpZXcpOworfQorCit2b2lkIFBs
YXRmb3JtV2ViVmlldzo6Zm9jdXMoKQoreworfQorCitXS1JlY3QgUGxhdGZvcm1XZWJWaWV3Ojp3
aW5kb3dGcmFtZSgpCit7CisgICAgcmV0dXJuIFdLUmVjdHsgMCwgMCwgMSwgMSB9OworfQorCit2
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93RnJhbWUoV0tSZWN0LCBXZWJWaWV3U2l6aW5n
TW9kZSkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmRpZEluaXRpYWxpemVDbGllbnRz
KCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZENocm9tZUlucHV0RmllbGQoKQor
eworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpCit7
Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjphZGRUb1dpbmRvdygpCit7Cit9CisKK3ZvaWQg
UGxhdGZvcm1XZWJWaWV3OjpyZW1vdmVGcm9tV2luZG93KCkKK3sKK30KKwordm9pZCBQbGF0Zm9y
bVdlYlZpZXc6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCit7CisgICAgbV93aW5k
b3dJc0tleSA9IHdpbmRvd0lzS2V5OworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6bWFrZVdl
YlZpZXdGaXJzdFJlc3BvbmRlcigpCit7Cit9CisKK2NhaXJvX3N1cmZhY2VfdCogUGxhdGZvcm1X
ZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKK3sKKyAgICB7CisgICAgICAgIHN0cnVjdCBU
aW1lb3V0VGltZXIgeworICAgICAgICAgICAgVGltZW91dFRpbWVyKCkKKyAgICAgICAgICAgICAg
ICA6IHRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbWVvdXRUaW1lcjo6ZmlyZWQpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGltZXIuc3RhcnRPbmVTaG90KDEuMCAvIDYw
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBmaXJlZCgpIHsgUnVuTG9vcDo6
bWFpbigpLnN0b3AoKTsgfQorICAgICAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZW91dFRpbWVy
PiB0aW1lcjsKKyAgICAgICAgfSB0aW1lb3V0VGltZXI7CisKKyAgICAgICAgUnVuTG9vcDo6bWFp
bigpLnJ1bigpOworICAgIH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VTdXJmYWNlID0g
bV93aW5kb3ctPmNyZWF0ZVNuYXBzaG90KCk7CisgICAgcmV0dXJuIGltYWdlU3VyZmFjZTsKK30K
Kwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQoZmxvYXQp
Cit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFi
bGVkKGJvb2wpCit7Cit9CisKK2Jvb2wgUGxhdGZvcm1XZWJWaWV3Ojp2aWV3U3VwcG9ydHNPcHRp
b25zKGNvbnN0IFRlc3RPcHRpb25zJikgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvcmNlV2luZG93RnJhbWVzQ2hhbmdlZCgpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVz
dENvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4wY2MzZGVkZTk4NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcApAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKwor
bmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURvbmUoKQorewor
ICAgIFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNl
dEhpZGRlbihib29sKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRp
YWxpemUoKQoreworfQorCitXS1ByZWZlcmVuY2VzUmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bVByZWZlcmVuY2VzKCkKK3sKKyAgICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyht
X3BhZ2VHcm91cC5nZXQoKSk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVz
dHJveSgpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZUNv
bnRleHQoKQoreworfQorCitzdGF0aWMgR01haW5Db250ZXh0KiB0aHJlYWREZWZhdWx0Q29udGV4
dCgpCit7CisgICAgaWYgKEdNYWluQ29udGV4dCogY29udGV4dCA9IGdfbWFpbl9jb250ZXh0X2dl
dF90aHJlYWRfZGVmYXVsdCgpKQorICAgICAgICByZXR1cm4gY29udGV4dDsKKyAgICByZXR1cm4g
Z19tYWluX2NvbnRleHRfZGVmYXVsdCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybVJ1blVudGlsKGJvb2wmIGNvbmRpdGlvbiwgZG91YmxlIHRpbWVvdXQpCit7CisgICAgc3Ry
dWN0IFRpbWVvdXRUaW1lciB7CisgICAgICAgIFRpbWVvdXRUaW1lcigpCisgICAgICAgICAgICA6
IHRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbWVvdXRUaW1lcjo6ZmlyZWQpCisgICAg
ICAgIHsgfQorCisgICAgICAgIHZvaWQgZmlyZWQoKSB7IFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7
IH0KKyAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZW91dFRpbWVyPiB0aW1lcjsKKyAgICB9IHRp
bWVvdXRUaW1lcjsKKworICAgIHRpbWVvdXRUaW1lci50aW1lci5zZXRQcmlvcml0eShHX1BSSU9S
SVRZX0RFRkFVTFRfSURMRSk7CisgICAgaWYgKHRpbWVvdXQgPj0gMCkKKyAgICAgICAgdGltZW91
dFRpbWVyLnRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lb3V0KTsKKworICAgIFJ1bkxvb3A6Om1haW4o
KS5ydW4oKTsKKworICAgIHRpbWVvdXRUaW1lci50aW1lci5zdG9wKCk7Cit9CisKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZikKK3sKK30KKworc3RhdGljIGNoYXIqIGdldEVudmlyb25tZW50VmFyaWFibGVBc1VU
RjhTdHJpbmcoY29uc3QgY2hhciogdmFyaWFibGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZh
bHVlID0gZ19nZXRlbnYodmFyaWFibGVOYW1lKTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiJXMgZW52aXJvbm1lbnQgdmFyaWFibGUgbm90IGZvdW5kXG4iLCB2
YXJpYWJsZU5hbWUpOworICAgICAgICBleGl0KDApOworICAgIH0KKyAgICBnc2l6ZSBieXRlc1dy
aXR0ZW47CisgICAgcmV0dXJuIGdfZmlsZW5hbWVfdG9fdXRmOCh2YWx1ZSwgLTEsIDAsICZieXRl
c1dyaXR0ZW4sIDApOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplSW5qZWN0
ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ2V0RW52aXJvbm1l
bnRWYXJpYWJsZUFzVVRGOFN0cmluZygiVEVTVF9SVU5ORVJfSU5KRUNURURfQlVORExFX0ZJTEVO
QU1FIikpOworICAgIG1faW5qZWN0ZWRCdW5kbGVQYXRoLmFkb3B0KFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKHBhdGguZ2V0KCkpKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6aW5p
dGlhbGl6ZVRlc3RQbHVnaW5EaXJlY3RvcnkoKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVy
OjpydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqKQoreworfQorCitXS0NvbnRleHRSZWYgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtQ29udGV4dCgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxpYnJhcnlQYXRoRm9yVGVzdGlu
ZygpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtQ29uZmlndXJlVmlld0ZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKQoreworfQor
Cit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3Rl
bnRWYWx1ZXMoKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjp1cGRhdGVQbGF0Zm9ybVNw
ZWNpZmljVGVzdE9wdGlvbnNGb3JUZXN0KFRlc3RPcHRpb25zJiwgY29uc3Qgc3RkOjpzdHJpbmcm
KSBjb25zdAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUv
bWFpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZjZjJiN2Zm
MzIxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5j
cHAKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJUZXN0Q29udHJv
bGxlci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgV1RSOjpU
ZXN0Q29udHJvbGxlciBjb250cm9sbGVyKGFyZ2MsIGNvbnN0X2Nhc3Q8Y29uc3QgY2hhcioqPihh
cmd2KSk7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9qaGJ1aWxkL2poYnVp
bGQtd3JhcHBlciBiL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCmluZGV4IGY2YzQwM2Qz
MWIwLi5lM2VlY2RmY2U4NyAxMDA3NTUKLS0tIGEvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBw
ZXIKKysrIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKQEAgLTMxLDYgKzMxLDggQEAg
ZGVmIGRldGVybWluZV9wbGF0Zm9ybSgpOgogICAgICAgICByZXR1cm4gImVmbCI7CiAgICAgaWYg
Jy0tZ3RrJyBpbiBzeXMuYXJndjoKICAgICAgICAgcmV0dXJuICJndGsiOworICAgIGlmICctLXdw
ZScgaW4gc3lzLmFyZ3Y6CisgICAgICAgIHJldHVybiAid3BlIgogICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ05vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgamhidWlsZC13cmFwcGVyLicpCiAKIHRyeToK
ZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlm
ZXN0LnB5IGIvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3Qu
cHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmFiMTk0NzQ0YzU1Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2Ut
bWFuaWZlc3QucHkKQEAgLTAsMCArMSw3NyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQg
Z2xvYgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK0NPTVBSRVNTSUJMRV9FWFRFTlNJT05TID0g
WycuaHRtbCcsICcuanMnLCAnLmNzcycsICcuc3ZnJ10KK0JBU0VfRElSID0gJ1dlYkluc3BlY3Rv
clVJLycKKworCitkZWYgZ2V0X2ZpbGVuYW1lcyhhcmdzKToKKyAgICBmaWxlbmFtZXMgPSBbXQor
CisgICAgZm9yIHBhdHRlcm4gaW4gYXJnczoKKyAgICAgICAgcGF0aHMgPSBnbG9iLmdsb2IocGF0
dGVybikKKyAgICAgICAgZm9yIGZpbGVuYW1lIGluIHBhdGhzOgorICAgICAgICAgICAgYmFzZV9k
aXJfaW5kZXggPSBmaWxlbmFtZS5yZmluZChCQVNFX0RJUikKKyAgICAgICAgICAgIGlmIGJhc2Vf
ZGlyX2luZGV4ICE9IC0xOgorICAgICAgICAgICAgICAgIG5hbWUgPSBmaWxlbmFtZVtiYXNlX2Rp
cl9pbmRleCArIGxlbihCQVNFX0RJUik6XQorICAgICAgICAgICAgICAgICMgVGhlIHJlc3VsdCBz
aG91bGQgdXNlIGZvcndhcmQgc2xhc2hlcywgdGh1cyBtYWtlIHN1cmUgYW55IG9zLXNwZWNpZmlj
CisgICAgICAgICAgICAgICAgIyBzZXBhcmF0b3IsIGFkZGVkIGJ5IHRoZSBnbG9iLmdsb2IoKSBj
YWxsLCBpcyBwcm9wZXJseSByZXBsYWNlZAorICAgICAgICAgICAgICAgIGlmIG9zLnNlcCAhPSAn
Lyc6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2Uob3Muc2VwLCAnLycp
CisgICAgICAgICAgICAgICAgZmlsZW5hbWVzLmFwcGVuZChuYW1lKQorICAgIHJldHVybiBmaWxl
bmFtZXMKKworCitkZWYgaXNfY29tcHJlc3NpYmxlKGZpbGVuYW1lKToKKyAgICByZXR1cm4gb3Mu
cGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMV0gaW4gQ09NUFJFU1NJQkxFX0VYVEVOU0lPTlMKKwor
CitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3Vt
ZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdHZW5lcmF0ZSBhIEdSZXNvdXJjZXMgZmlsZSBmb3IgdGhl
IGluc3BlY3Rvci4nKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0JywgbmFyZ3M9
Jz8nLCB0eXBlPWFyZ3BhcnNlLkZpbGVUeXBlKCd3JyksIGRlZmF1bHQ9c3lzLnN0ZG91dCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3RoZSBvdXRwdXQgZmlsZScpCisgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgnZmlsZW5hbWVzJywgbWV0YXZhcj0nRklMRVMnLCBuYXJncz0nKycsCisg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSd0aGUgbGlzdCBvZiBmaWxlcyB0byBpbmNsdWRl
JykKKworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhzeXMuYXJndlsxOl0pCisKKyAgICBh
cmdzLm91dHB1dC53cml0ZShcCisgICAgIiIiPD94bWwgdmVyc2lvbj0xLjAgZW5jb2Rpbmc9VVRG
LTg/PgorICAgIDxncmVzb3VyY2VzPgorICAgICAgICA8Z3Jlc291cmNlIHByZWZpeD0iL29yZy93
cGUvaW5zcGVjdG9yIj4KKyIiIikKKworICAgIGZvciBmaWxlbmFtZSBpbiBnZXRfZmlsZW5hbWVz
KGFyZ3MuZmlsZW5hbWVzKToKKyAgICAgICAgbGluZSA9ICcgICAgICAgICAgICA8ZmlsZScKKyAg
ICAgICAgaWYgaXNfY29tcHJlc3NpYmxlKGZpbGVuYW1lKToKKyAgICAgICAgICAgIGxpbmUgKz0g
JyBjb21wcmVzc2VkPSJ0cnVlIicKKyAgICAgICAgaWYgJ0ltYWdlcy9ndGsvJyBpbiBmaWxlbmFt
ZToKKyAgICAgICAgICAgIGxpbmUgKz0gJyBhbGlhcz0iJXMiJyAlIGZpbGVuYW1lLnJlcGxhY2Uo
J2d0ay8nLCAnJykKKyAgICAgICAgbGluZSArPSAnPiVzPC9maWxlPlxuJyAlIGZpbGVuYW1lCisK
KyAgICAgICAgYXJncy5vdXRwdXQud3JpdGUobGluZSkKKworICAgIGFyZ3Mub3V0cHV0LndyaXRl
KFwKKyAgICAiIiIgICAgPC9ncmVzb3VyY2U+Cis8L2dyZXNvdXJjZXM+CisiIiIpCisKZGlmZiAt
LWdpdCBhL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy93cGUvamhidWlsZC5tb2R1
bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yZWQ3NTYyNjRhMgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAgLTAsMCArMSwy
NDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIG1vZHVsZXNldCBTWVNURU0g
Im1vZHVsZXNldC5kdGQiPgorPD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L3hzbCIgaHJlZj0i
bW9kdWxlc2V0LnhzbCI/PgorPG1vZHVsZXNldD4KKworICA8bWV0YW1vZHVsZSBpZD0id2Via2l0
d3BlLXRlc3RpbmctZGVwZW5kZW5jaWVzIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRl
cCBwYWNrYWdlPSJnbGliIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImxpYnNvdXAiLz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iY2Fpcm8iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9udHMiLz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0iZGljdHMiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9udGNvbmZp
ZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmcmVldHlwZTYiLz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iaGFyZmJ1enoiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0ieGtiY29tbW9uIi8+CisgICAgICA8
ZGVwIHBhY2thZ2U9IndheWxhbmQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0cmVhbWVyIi8+
CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0iZ3N0LXBsdWdpbnMtZ29vZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lu
cy1iYWQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LWxpYmF2Ii8+CisgICAgICA8ZGVwIHBh
Y2thZ2U9IndwZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUtbWVzYSIvPgorICAgIDwvZGVw
ZW5kZW5jaWVzPgorICA8L21ldGFtb2R1bGU+CisKKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFs
bCIgbmFtZT0ic291cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgaHJlZj0iaHR0cDovL21pcnJv
cnMua2VybmVsLm9yZy9zb3VyY2VzLnJlZGhhdC5jb20vIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9
InRhcmJhbGwiIG5hbWU9ImZ0cC5nbm9tZS5vcmciCisgICAgICBocmVmPSJodHRwOi8vZnRwLmdu
b21lLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJjYWlyb2dyYXBo
aWNzLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyIvPgorICA8cmVw
b3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmcmVlZGVza3RvcC5vcmciCisgICAgICBocmVm
PSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJi
YWxsIiBuYW1lPSJ3YXlsYW5kLmZyZWVkZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly93
YXlsYW5kLmZyZWVkZXNrdG9wLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJnaXQiIG5hbWU9
ImdpdGh1Yi5jb20iCisgICAgICBocmVmPSJnaXQ6Ly9naXRodWIuY29tIi8+CisgIDxyZXBvc2l0
b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImdzdHJlYW1lciIKKyAgICAgIGhyZWY9Imh0dHA6Ly9n
c3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy8iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFy
YmFsbCIgbmFtZT0ieGtiY29tbW9uLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly94a2Jjb21tb24u
b3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9InNhdmFubmFoLmdudS5v
cmciCisgICAgICBocmVmPSJodHRwOi8vZG93bmxvYWQuc2F2YW5uYWguZ251Lm9yZy9yZWxlYXNl
cy8iLz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJmZmkiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+
CisgICAgPGJyYW5jaCBtb2R1bGU9ImxpYmZmaS9saWJmZmktMy4wLjEwLnRhci5neiIgdmVyc2lv
bj0iMy4wLjEwIgorICAgICAgICAgICAgIHJlcG89InNvdXJjZXdhcmUub3JnLW1pcnJvciIKKyAg
ICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZjAxZWI5MDI3ZTllYjU2YWVhZWVmNjM2NjQ5ODc3NzU2
ZDQ3NWQ3MTRlZjhiNDdmNjI3ZjY1YmM1ZjNiNDkyZiIvPgorICA8L2F1dG90b29scz4KKworICA8
YXV0b3Rvb2xzIGlkPSJnbGliIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIK
KyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWR0cmFjZSI+CisgICAgPGRlcGVu
ZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ibGliZmZpIi8+CisgICAgPC9kZXBlbmRlbmNp
ZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9nbGliLzIuNDQvZ2xp
Yi0yLjQ0LjEudGFyLnh6IiB2ZXJzaW9uPSIyLjQ0LjEiCisgICAgICAgICAgICByZXBvPSJmdHAu
Z25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2Ojg4MTFkZWFjYWY4YTUwM2QwYTli
NzAxNzc3ZWEwNzljYTZhNDI3N2JlMTBlM2Q3MzBkMjExMjczNWQ1ZWNhMDciPgorICAgICAgPHBh
dGNoIGZpbGU9ImdsaWItd2FybmluZy1maXgucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgICA8cGF0
Y2ggZmlsZT0iZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0
Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRv
dG9vbHMgaWQ9ImdsaWItbmV0d29ya2luZyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9k
dWxlPSIvcHViL0dOT01FL3NvdXJjZXMvZ2xpYi1uZXR3b3JraW5nLzIuNDIvZ2xpYi1uZXR3b3Jr
aW5nLTIuNDIuMC50YXIueHoiIHZlcnNpb249IjIuNDIuMCIKKyAgICAgICAgICAgIHJlcG89ImZ0
cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MzA0ZGQ5ZTRjMGNlZDY5MDk0
MzAwZTBiOWU2NmNkMmVhYWU3MTYxYjlmYzMxODY1MzZkMTE0NTg2NzdkODIwZCIvPgorICA8L2F1
dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJzb3VwIgorICAgICAgICAgICAgIGF1dG9n
ZW5hcmdzPSItLXdpdGhvdXQtZ25vbWUgLS1kaXNhYmxlLWludHJvc3BlY3Rpb24iPgorICAgIDxk
ZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWItbmV0d29ya2luZyIvPgorICAg
IDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMv
bGlic291cC8yLjQ4L2xpYnNvdXAtMi40OC4wLnRhci54eiIgdmVyc2lvbj0iMi40OC4wIgorICAg
ICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njpl
YTM0ZGQ2NGZlNDQzNDM0NDVkYWY2ZGQ2OTBkMDY5MWU5ZDk3MzQ2OGRlNDQ4NzhkYTk3MzcxYzE2
ZDg5Nzg0Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZvbnRzIiBzdXBw
b3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iCisgICAgICAgICAgICAgc2tpcC1hdXRvZ2VuPSJ0
cnVlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0ibXJvYmluc29uL3dl
YmtpdGd0ay10ZXN0LWZvbnRzLmdpdCIgY2hlY2tvdXRkaXI9IndlYmtpdGd0ay10ZXN0LWZvbnRz
IiB0YWc9IjAuMC41Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImRpY3Rz
IiBzdXBwb3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iCisgICAgICAgICAgICAgc2tpcC1hdXRv
Z2VuPSJ0cnVlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0ibXJvYmlu
c29uL3dlYmtpdGd0ay10ZXN0LWRpY3RzLmdpdCIgY2hlY2tvdXRkaXI9IndlYmtpdGd0ay10ZXN0
LWRpY3RzIiB0YWc9IjAuMC4xIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImZyZWV0eXBlNiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0i
ZnJlZXR5cGUvZnJlZXR5cGUtMi40LjExLnRhci5iejIiIHZlcnNpb249IjIuNC4xMSIKKyAgICAg
ICAgICAgIHJlcG89InNhdmFubmFoLmdudS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6
ZWY5ZDBiY2I2NDY0N2Q5ZTUxMjVkYzc1MzRkN2NhMzcxYzk4MzEwZmVjODc2NzdjNDEwZjM5N2Y3
MWZmYmUzZiIKKyAgICAgICAgICAgIG1kNXN1bT0iYjkzNDM1NDg4OTQyNDg2YzhkMGNhMjJlOGY3
NjgwMzQiPgorICAgICAgPHBhdGNoIGZpbGU9ImZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9u
dC1oZWlnaHQtZml4LnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90
b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250Y29uZmlnIiBhdXRvZ2VuLXNoPSJjb25maWd1
cmUiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0eXBlNiIv
PgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJzb2Z0d2FyZS9mb250
Y29uZmlnL3JlbGVhc2UvZm9udGNvbmZpZy0yLjExLjEudGFyLmd6IiB2ZXJzaW9uPSIyLjExLjEi
CisgICAgICAgICAgICByZXBvPSJmcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJz
aGEyNTY6YjZiMDY2YzdkY2UzZjQzNmZkYzBkZmJhZTlkMzYxMjJiMzgwOTRmNGY1M2JkOGRmZmQ0
NWUxOTViMDU0MGQ4ZCIKKyAgICAgICAgICAgIG1kNXN1bT0iZTc1ZTMwM2I0Zjc3NTZjMmIxNjIw
M2E1N2FjODdlYmEiPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rv
b2xzIGlkPSJoYXJmYnV6eiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICBhdXRvZ2Vu
YXJncz0iLS13aXRoLWNhaXJvPW5vIC0td2l0aC1nbGliPW5vIC0td2l0aC1mcmVldHlwZT15ZXMi
PgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0eXBlNiIvPgor
ICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJzb2Z0d2FyZS9oYXJmYnV6
ei9yZWxlYXNlL2hhcmZidXp6LTEuMy4zLnRhci5iejIiCisgICAgICAgICAgICB2ZXJzaW9uPSIx
LjMuMyIKKyAgICAgICAgICAgIGNoZWNrb3V0ZGlyPSJoYXJmYnV6ei0xLjMuMyIKKyAgICAgICAg
ICAgIHJlcG89ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjoyNjIw
OTg3MTE1YTQxMjJiNDczMjE2MTBkY2NiY2MxOGY3ZjEyMTExNWZkN2I4OGRjOGE2OTVjOGI2NmNi
M2M5IgorICAgICAgICAgICAgbWQ1c3VtPSI5N2FlMTVhNzJhOTNmMWYyNzMyNGEyYjhkOWJkM2Ix
ZCI+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9InBp
eG1hbiIKKyAgICAgICAgICAgICBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgICAgICAg
YXV0b2dlbmFyZ3M9Ii0tZW5hYmxlLWd0az1ubyI+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVh
c2VzL3BpeG1hbi0wLjMyLjYudGFyLmd6IiB2ZXJzaW9uPSIwLjMyLjYiCisgICAgICAgICAgICBy
ZXBvPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjozZGZlZDEz
YjgwNjBlYWRhYmYwYTQ5NDVjNzA0NWI3NzkzY2M3ZTNlOTEwZTc0OGE4YmIwZjBkYzNlNzk0OTA0
Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImNhaXJvIiBhdXRvZ2VuYXJn
cz0iLS1lbmFibGUtZWdsPXllcyAtLWVuYWJsZS1nbGVzdjIiPgorICAgIDxkZXBlbmRlbmNpZXM+
CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9udGNv
bmZpZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJwaXhtYW4iLz4KKyAgICA8L2RlcGVuZGVuY2ll
cz4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvY2Fpcm8tMS4xNC44LnRhci54eiIgdmVy
c2lvbj0iMS4xNC44IgorICAgICAgICAgICAgcmVwbz0iY2Fpcm9ncmFwaGljcy5vcmciCisgICAg
ICAgICAgICBoYXNoPSJzaGExOmM2ZjdiOTk5ODZmOTNjOWRmNzg2NTNjM2U2YTNiNTA0M2Y2NTE0
NWUiPgorICAgICAgPHBhdGNoIGZpbGU9ImNhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wt
c3VyZmFjZS5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0ieGtiY29tbW9uIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0iZG93
bmxvYWQvbGlieGtiY29tbW9uLTAuNS4wLnRhci54eiIgdmVyc2lvbj0iMC41LjAiCisgICAgICAg
ICAgICByZXBvPSJ4a2Jjb21tb24ub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMTo3MTI3OTkz
YmZiNjllMTNjZGZmMjVmYjhiM2M4ZjI2Y2U2YmU1YmZhIi8+CisgIDwvYXV0b3Rvb2xzPgorCisg
IDxhdXRvdG9vbHMgaWQ9IndheWxhbmQiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZG9jdW1lbnRh
dGlvbiI+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL3dheWxhbmQtMS45LjAudGFyLnh6
IiB2ZXJzaW9uPSIxLjkuMCIKKyAgICAgICAgICAgIHJlcG89IndheWxhbmQuZnJlZWRlc2t0b3Au
b3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjljODc3MDcyMGFhMDAzNDQ3OTczNWY1OGE0
ZGM0Y2E5YjE3MmVjZmVkZTI4ZjUxMzQzMTJlMTM1YjczMDFlZmEiLz4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0ib3JjIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWd0ay1kb2Mi
IGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGJyYW5jaCBtb2R1bGU9Im9yYy9vcmMtMC40
LjE3LnRhci5neiIgdmVyc2lvbj0iMC40LjE3IgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVy
IgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjRmYzdjY2E0OGM1OWZmZjIzYWZlZTc4ZmI2NDJj
ZGJkZTAwMWY1NjQwMWM4ZjQ3Yjk1YTE2NTc4ZDFkNWQ3ZTgiCisgICAgICAgICAgICBtZDVzdW09
ImFmMWJmM2RhYjllNjlmM2MzNmYzODkyODVlMmExMmExIi8+CisgIDwvYXV0b3Rvb2xzPgorCisg
IDxhdXRvdG9vbHMgaWQ9ImdzdHJlYW1lciIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2Vu
YXJncz0iLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVw
IHBhY2thZ2U9Im9yYyIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxl
PSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIK
KyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo1
YTM3MjJmYjkzMDJkZDk3N2MxN2NlZDQyNDAyOTNkYzc3N2NiNzE2ZGM5OGM4Y2NhNjNkNzVjMjdl
NWUzMTA3IgorICAgICAgICAgICAgbWQ1c3VtPSI3MTFhZGE3OWI2M2U0N2FjOTZhZGI0ZTU0NDRk
YzkwOCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1h
LUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwv
YnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtcGx1Z2lucy1i
YXNlIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAgICAgICAgICBh
dXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS1ndGstZG9jIj4KKyAgICA8
ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4KKyAgICA8L2Rl
cGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFzZS9nc3QtcGx1
Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAgICAgICAgICAg
IHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjoxNWE5ZGU5ODVjZDI2
NWMzNDRlMzU5ZjViMTkzNDdkZjQwMjFiNzYxMWVkMmMyZDkxOTE3Y2I5MDBmMmZhZDZmIgorICAg
ICAgICAgICAgbWQ1c3VtPSI1NDIxZWRmZWI3NDc5ZDVmNTc3NmU5MTdiYTMwZTI0ZSIvPgorICA8
L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtcGx1Z2lucy1nb29kIiBhdXRvZ2Vu
LXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxl
LXNvdXAgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVw
IHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKworICAg
IDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1nb29kL2dzdC1wbHVnaW5zLWdvb2QtJHt2ZXJz
aW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVy
IgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjIxMDNlMTc5MjFkNjc4OTRlODJlYWZkZDY0ZmI5
YjA2NTE4NTk5OTUyZmQ5M2U2MjViZmJjODNmZmVhZDA5NzIiCisgICAgICAgICAgICBtZDVzdW09
IjNlYWJlNzI3NzY4MWI5YmVmOGE2NGMzMTJkZTAzZDQ3Ij4KKyAgICAgIDxwYXRjaCBmaWxlPSJn
c3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaCIgc3RyaXA9IjEi
Lz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4
cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2giIHN0cmlwPSIxIi8+Cisg
ICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVn
aW5zLWJhZCIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4
YW1wbGVzIC0tZGlzYWJsZS1ndGstZG9jIC0tZGlzYWJsZS1pbnRyb3NwZWN0aW9uIj4KKyAgICA8
ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+Cisg
ICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWJhZC9n
c3QtcGx1Z2lucy1iYWQtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAg
ICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjBiYmQ1OGYz
NjM3MzRmYzBjNGE2MjBiMmQ2ZmIwMWQ0MjdmZGFmZGJkYTdiOTBiNGUxNWQwM2I3NTFjYTQwZjUi
CisgICAgICAgICAgICBtZDVzdW09ImU1MDhkYTJhOGE1YzNkMTIyNjRmZTM0MTViZTJmNDUxIj4K
KyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3Bl
blNTTC0xLjEuMC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1
Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9n
ZW5lcmF0ZV9rLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29s
cz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtbGliYXYiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIg
YXV0b2dlbmFyZ3M9Ii0td2l0aC1saWJhdi1leHRyYS1jb25maWd1cmU9Jy0tZGlzYWJsZS15YXNt
JyAtLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFu
Y2ggbW9kdWxlPSJnc3QtbGliYXYvZ3N0LWxpYmF2LSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9u
PSIxLjguMSIKKyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9
InNoYTI1Njo0NGE0OTEwOGMzNTMxYjVhYzRmMzQ2YTIyNDdjZDdmYmFmYjBlOGFiMzk0Mzk0Y2I2
ZDc1YTcwMzAwYjM4OTMzIgorICAgICAgICAgICAgbWQ1c3VtPSI4NWYxYTA0NzYwNmNhOWUwODQ5
M2Q3YjZiNDJkZjQ2MiIvPgorICA8L2F1dG90b29scz4KKworICA8Y21ha2UgaWQ9IndwZSI+Cisg
ICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9IldlYlBsYXRmb3JtRm9yRW1iZWRk
ZWQvV1BFQmFja2VuZC5naXQiCisgICAgICAgICAgICB0YWc9IjVlMmEyOWQyY2NjNjM3ZjcxMjJi
YTcyYzFkNjJlZjY2OWI0MmYwNWMiIC8+CisgIDwvY21ha2U+CisKKyAgPGNtYWtlIGlkPSJ3cGUt
bWVzYSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlIiAvPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3YXlsYW5k
IiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24iIC8+CisgICAgPC9kZXBlbmRlbmNp
ZXM+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9IldlYlBsYXRmb3JtRm9y
RW1iZWRkZWQvV1BFQmFja2VuZC1tZXNhLmdpdCIKKyAgICAgICAgICAgIHRhZz0iOTk0NTc1M2Y5
MzM3ZmQ2N2FmMDk4MjE4Yjc4MTkzMzdhYmEyMTE0MSIgLz4KKyAgPC9jbWFrZT4KKzwvbW9kdWxl
c2V0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGRyYyBiL1Rvb2xzL3dwZS9qaGJ1aWxk
cmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUyZmE4OGQ3MmE5Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpAQCAtMCwwICsxLDI1IEBACisj
IS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisj
CisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
CitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKworc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9p
bihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4vamhidWlsZCIpICkKK2ltcG9ydCBqaGJ1
aWxkcmNfY29tbW9uCitqaGJ1aWxkcmNfY29tbW9uLmluaXQoZ2xvYmFscygpLCAid3BlIikKKyMg
RW5hYmxlIGJ1aWxkZGlyICE9IHNyY2RpciBidWlsZHMuCitidWlsZHJvb3QgPSBvcy5wYXRoLmpv
aW4ob3MucGF0aC5kaXJuYW1lKGNoZWNrb3V0cm9vdCksICJCdWlsZCIpCmRpZmYgLS1naXQgYS9U
b29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2Uu
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWds
LXN1cmZhY2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0
NmRmNDViNmYzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvY2Fpcm8tZWds
LWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoCkBAIC0wLDAgKzEsMTMzIEBACitG
cm9tIGE0ZTBkYWYxOGJmODI1MjQ2M2Y2NmQ3NWVlZjQ5OWNmZmZhMzI1NjUgTW9uIFNlcCAxNyAw
MDowMDowMCAyMDAxCitGcm9tOiBaYW4gRG9iZXJzZWsgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgor
RGF0ZTogTW9uLCAxNyBOb3YgMjAxNCAwMToyMzoxNSAtMDgwMAorU3ViamVjdDogW1BBVENIXSBB
ZGQgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGVfZm9yX2VnbF9zdXJmYWNlKCkuCisKKy0tLQorIHNy
Yy9jYWlyby1lZ2wtY29udGV4dC5jIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrLS0tLS0tLQorIHNyYy9jYWlyby1nbC5oICAgICAgICAgIHwgIDMgKysrCisg
MiBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZm
IC0tZ2l0IGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgYi9zcmMvY2Fpcm8tZWdsLWNvbnRleHQu
YworaW5kZXggYmY3MDRjNi4uYmUyYmNmOSAxMDA2NDQKKy0tLSBhL3NyYy9jYWlyby1lZ2wtY29u
dGV4dC5jCisrKysgYi9zcmMvY2Fpcm8tZWdsLWNvbnRleHQuYworQEAgLTQ4LDcgKzQ4LDggQEAg
dHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX2VnbF9jb250ZXh0IHsKKyAgICAgRUdMRGlzcGxheSBkaXNw
bGF5OworICAgICBFR0xDb250ZXh0IGNvbnRleHQ7CisgCistICAgIEVHTFN1cmZhY2UgZHVtbXlf
c3VyZmFjZTsKKysgICAgRUdMU3VyZmFjZSBzdXJmYWNlOworKyAgICBjYWlyb19ib29sX3QgaXNf
ZHVtbXlfc3VyZmFjZTsKKyAKKyAgICAgRUdMQ29udGV4dCBwcmV2aW91c19jb250ZXh0OworICAg
ICBFR0xTdXJmYWNlIHByZXZpb3VzX3N1cmZhY2U7CitAQCAtNzQsNyArNzUsNyBAQCBfZWdsX2dl
dF9jdXJyZW50X3N1cmZhY2UgKGNhaXJvX2VnbF9jb250ZXh0X3QgKmN0eCkKKyB7CisgICAgIGlm
IChjdHgtPmJhc2UuY3VycmVudF90YXJnZXQgPT0gTlVMTCB8fAorICAgICAgICAgX2NhaXJvX2ds
X3N1cmZhY2VfaXNfdGV4dHVyZSAoY3R4LT5iYXNlLmN1cnJlbnRfdGFyZ2V0KSkgeworLQlyZXR1
cm4gIGN0eC0+ZHVtbXlfc3VyZmFjZTsKKysJcmV0dXJuICBjdHgtPnN1cmZhY2U7CisgICAgIH0K
KyAKKyAgICAgcmV0dXJuICgoY2Fpcm9fZWdsX3N1cmZhY2VfdCAqKSBjdHgtPmJhc2UuY3VycmVu
dF90YXJnZXQpLT5lZ2w7CitAQCAtMTUxLDggKzE1Miw4IEBAIF9lZ2xfZGVzdHJveSAodm9pZCAq
YWJzdHJhY3RfY3R4KQorIAorICAgICBlZ2xNYWtlQ3VycmVudCAoY3R4LT5kaXNwbGF5LAorIAkJ
ICAgIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOworLSAg
ICBpZiAoY3R4LT5kdW1teV9zdXJmYWNlICE9IEVHTF9OT19TVVJGQUNFKQorLSAgICAgICAgZWds
RGVzdHJveVN1cmZhY2UgKGN0eC0+ZGlzcGxheSwgY3R4LT5kdW1teV9zdXJmYWNlKTsKKysgICAg
aWYgKGN0eC0+aXNfZHVtbXlfc3VyZmFjZSAmJiBjdHgtPnN1cmZhY2UgIT0gRUdMX05PX1NVUkZB
Q0UpCisrICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNwbGF5LCBjdHgtPnN1cmZh
Y2UpOworIH0KKyAKKyBzdGF0aWMgY2Fpcm9fYm9vbF90CitAQCAtMjE4LDEzICsyMTksMTQgQEAg
Y2Fpcm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCkK
KyAJZWdsUXVlcnlDb250ZXh0IChkcHksIGVnbCwgRUdMX0NPTkZJR19JRCwgJmNvbmZpZ19hdHRy
aWJzWzFdKTsKKyAJZWdsQ2hvb3NlQ29uZmlnIChkcHksIGNvbmZpZ19hdHRyaWJzLCAmY29uZmln
LCAxLCAmbnVtQ29uZmlncyk7CisgCistCWN0eC0+ZHVtbXlfc3VyZmFjZSA9IGVnbENyZWF0ZVBi
dWZmZXJTdXJmYWNlIChkcHksIGNvbmZpZywgYXR0cmlicyk7CistCWlmIChjdHgtPmR1bW15X3N1
cmZhY2UgPT0gTlVMTCkgeworKwljdHgtPmlzX2R1bW15X3N1cmZhY2UgPSBUUlVFOworKwljdHgt
PnN1cmZhY2UgPSBlZ2xDcmVhdGVQYnVmZmVyU3VyZmFjZSAoZHB5LCBjb25maWcsIGF0dHJpYnMp
OworKwlpZiAoY3R4LT5zdXJmYWNlID09IE5VTEwpIHsKKyAJICAgIGZyZWUgKGN0eCk7CisgCSAg
ICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNf
Tk9fTUVNT1JZKTsKKyAJfQorIAorLQlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHksIGN0eC0+ZHVt
bXlfc3VyZmFjZSwgY3R4LT5kdW1teV9zdXJmYWNlLCBlZ2wpKSB7CisrCWlmICghZWdsTWFrZUN1
cnJlbnQgKGRweSwgY3R4LT5zdXJmYWNlLCBjdHgtPnN1cmZhY2UsIGVnbCkpIHsKKyAJICAgIGZy
ZWUgKGN0eCk7CisgCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9y
IChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKyAJfQorQEAgLTIzOCw4ICsyNDAsNTQgQEAgY2Fp
cm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCkKKyAK
KyAgICAgc3RhdHVzID0gX2NhaXJvX2dsX2NvbnRleHRfaW5pdCAoJmN0eC0+YmFzZSk7CisgICAg
IGlmICh1bmxpa2VseSAoc3RhdHVzKSkgeworLQlpZiAoY3R4LT5kdW1teV9zdXJmYWNlICE9IEVH
TF9OT19TVVJGQUNFKQorLQkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4LT5kdW1teV9z
dXJmYWNlKTsKKysJaWYgKGN0eC0+c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkKKysJICAgIGVn
bERlc3Ryb3lTdXJmYWNlIChkcHksIGN0eC0+c3VyZmFjZSk7CisrCWZyZWUgKGN0eCk7CisrCXJl
dHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisrICAgIH0K
KysKKysgICAgZWdsTWFrZUN1cnJlbnQgKGRweSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJG
QUNFLCBFR0xfTk9fQ09OVEVYVCk7CisrCisrICAgIHJldHVybiAmY3R4LT5iYXNlLmJhc2U7Cisr
fQorKworK2NhaXJvX2RldmljZV90ICoKKytjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9mb3JfZWds
X3N1cmZhY2UgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCwgRUdMU3VyZmFjZSBzdXJm
YWNlKQorK3sKKysgICAgY2Fpcm9fZWdsX2NvbnRleHRfdCAqY3R4OworKyAgICBjYWlyb19zdGF0
dXNfdCBzdGF0dXM7CisrCisrICAgIGN0eCA9IGNhbGxvYyAoMSwgc2l6ZW9mIChjYWlyb19lZ2xf
Y29udGV4dF90KSk7CisrICAgIGlmICh1bmxpa2VseSAoY3R4ID09IE5VTEwpKQorKwlyZXR1cm4g
X2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZ
KTsKKysKKysgICAgY3R4LT5kaXNwbGF5ID0gZHB5OworKyAgICBjdHgtPmNvbnRleHQgPSBlZ2w7
CisrICAgIGN0eC0+c3VyZmFjZSA9IHN1cmZhY2U7CisrCisrICAgIGN0eC0+YmFzZS5hY3F1aXJl
ID0gX2VnbF9hY3F1aXJlOworKyAgICBjdHgtPmJhc2UucmVsZWFzZSA9IF9lZ2xfcmVsZWFzZTsK
KysgICAgY3R4LT5iYXNlLm1ha2VfY3VycmVudCA9IF9lZ2xfbWFrZV9jdXJyZW50OworKyAgICBj
dHgtPmJhc2Uuc3dhcF9idWZmZXJzID0gX2VnbF9zd2FwX2J1ZmZlcnM7CisrICAgIGN0eC0+YmFz
ZS5kZXN0cm95ID0gX2VnbF9kZXN0cm95OworKworKyAgICAvKiBXZSBhcmUgYWJvdXQgdGhlIGNo
YW5nZSB0aGUgY3VycmVudCBzdGF0ZSBvZiBFR0wsIHNvIHdlIHNob3VsZAorKyAgICAgKiBxdWVy
eSB0aGUgcHJlLWV4aXN0aW5nIHN1cmZhY2Ugbm93IGluc3RlYWQgb2YgbGF0ZXIuICovCisrICAg
IF9lZ2xfcXVlcnlfY3VycmVudF9zdGF0ZSAoY3R4KTsKKysKKysJaWYgKCFlZ2xNYWtlQ3VycmVu
dCAoZHB5LCBzdXJmYWNlLCBzdXJmYWNlLCBlZ2wpKSB7CisrCSAgICBmcmVlIChjdHgpOworKwkg
ICAgcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoQ0FJUk9fU1RBVFVT
X05PX01FTU9SWSk7CisrCX0KKysKKysgICAgc3RhdHVzID0gX2NhaXJvX2dsX2Rpc3BhdGNoX2lu
aXQgKCZjdHgtPmJhc2UuZGlzcGF0Y2gsIGVnbEdldFByb2NBZGRyZXNzKTsKKysgICAgaWYgKHVu
bGlrZWx5IChzdGF0dXMpKSB7CisrCWZyZWUgKGN0eCk7CisrCXJldHVybiBfY2Fpcm9fZ2xfY29u
dGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisrICAgIH0KKysKKysgICAgc3RhdHVzID0g
X2NhaXJvX2dsX2NvbnRleHRfaW5pdCAoJmN0eC0+YmFzZSk7CisrICAgIGlmICh1bmxpa2VseSAo
c3RhdHVzKSkgeworIAlmcmVlIChjdHgpOworIAlyZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3Jl
YXRlX2luX2Vycm9yIChzdGF0dXMpOworICAgICB9CitkaWZmIC0tZ2l0IGEvc3JjL2NhaXJvLWds
LmggYi9zcmMvY2Fpcm8tZ2wuaAoraW5kZXggOWZkNzYwOC4uYTk0ZjU4MSAxMDA2NDQKKy0tLSBh
L3NyYy9jYWlyby1nbC5oCisrKysgYi9zcmMvY2Fpcm8tZ2wuaAorQEAgLTEzMiw2ICsxMzIsOSBA
QCBjYWlyb19nbF9zdXJmYWNlX2NyZWF0ZV9mb3JfZGMgKGNhaXJvX2RldmljZV90CQkqZGV2aWNl
LAorIGNhaXJvX3B1YmxpYyBjYWlyb19kZXZpY2VfdCAqCisgY2Fpcm9fZWdsX2RldmljZV9jcmVh
dGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCk7CisgCisrY2Fpcm9fcHVibGljIGNh
aXJvX2RldmljZV90ICoKKytjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9mb3JfZWdsX3N1cmZhY2Ug
KEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCwgRUdMU3VyZmFjZSBzdXJmYWNlKTsKKysK
KyBjYWlyb19wdWJsaWMgY2Fpcm9fc3VyZmFjZV90ICoKKyBjYWlyb19nbF9zdXJmYWNlX2NyZWF0
ZV9mb3JfZWdsIChjYWlyb19kZXZpY2VfdAkqZGV2aWNlLAorIAkJCQkgRUdMU3VyZmFjZQkgZWds
LApkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVz
LWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFs
LWFuZC1pZGVudGlmaWVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5iNGUwYTU0MWRiYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2Zv
bnRjb25maWctQy0xMS1yZXF1aXJlcy1hLXNwYWNlLWJldHdlZW4tbGl0ZXJhbC1hbmQtaWRlbnRp
Zmllci5wYXRjaApAQCAtMCwwICsxLDMwIEBACitGcm9tIDcwNjlkNzE3ZTk4MmFkY2Y4ZTFkMzAw
Y2JkMTBlZWM2MzIyYTY1YzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBa2lyYSBU
QUdPSCA8YWtpcmFAdGFnb2gub3JnPgorRGF0ZTogU3VuLCAyMiBBcHIgMjAxMiAyMTo0MDo0NCAr
MDkwMAorU3ViamVjdDogW1BBVENIXSBDKysxMSByZXF1aXJlcyBhIHNwYWNlIGJldHdlZW4gbGl0
ZXJhbCBhbmQgaWRlbnRpZmllcgorCitSZXBvcnRlZCBieSBCdWdhbmluaQorLS0tCisgZm9udGNv
bmZpZy9mb250Y29uZmlnLmggfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv
bnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9mb250Y29uZmlnL2ZvbnRjb25m
aWcuaCBiL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oCitpbmRleCAwZTJjYTUwLi5iMjdjY2I1IDEw
MDY0NAorLS0tIGEvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKKysrKyBiL2ZvbnRjb25maWcvZm9u
dGNvbmZpZy5oCitAQCAtMTEyLDkgKzExMiw5IEBAIHR5cGVkZWYgaW50CQlGY0Jvb2w7CisgI2Rl
ZmluZSBGQ19ERUNPUkFUSVZFCSAgICAiZGVjb3JhdGl2ZSIJLyogQm9vbCAtIHRydWUgaWYgc3R5
bGUgaXMgYSBkZWNvcmF0aXZlIHZhcmlhbnQgKi8KKyAjZGVmaW5lIEZDX0xDRF9GSUxURVIJICAg
ICJsY2RmaWx0ZXIiCQkvKiBJbnQgKi8KKyAKKy0jZGVmaW5lIEZDX0NBQ0hFX1NVRkZJWAkJICAg
ICIuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKy0jZGVmaW5lIEZDX0RJUl9DQUNIRV9GSUxFCSAg
ICAiZm9udHMuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKy0jZGVmaW5lIEZDX1VTRVJfQ0FDSEVf
RklMRQkgICAgIi5mb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgorKyNkZWZpbmUgRkNfQ0FD
SEVfU1VGRklYCQkgICAgIi5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKysjZGVmaW5lIEZDX0RJ
Ul9DQUNIRV9GSUxFCSAgICAiZm9udHMuY2FjaGUtIiBGQ19DQUNIRV9WRVJTSU9OCisrI2RlZmlu
ZSBGQ19VU0VSX0NBQ0hFX0ZJTEUJICAgICIuZm9udHMuY2FjaGUtIiBGQ19DQUNIRV9WRVJTSU9O
CisgCisgLyogQWRqdXN0IG91dGxpbmUgcmFzdGVyaXplciAqLworICNkZWZpbmUgRkNfQ0hBUl9X
SURUSAkgICAgImNoYXJ3aWR0aCIJLyogSW50ICovCistLSAKKzEuOC4zLjIKKwpkaWZmIC0tZ2l0
IGEvVG9vbHMvd3BlL3BhdGNoZXMvZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdo
dC1maXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBl
LWZvbnQtaGVpZ2h0LWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMGZmZTc2YjRlZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9m
cmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaApAQCAtMCwwICsx
LDM5IEBACitGcm9tIGUwNDY5MzcyYmUzODcwYTVhZDYwYjJjNDU4NmU5YzI4MTM1N2JkMjggTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBXZXJuZXIgTGVtYmVyZyA8d2xAZ251Lm9yZz4K
K0RhdGU6IFR1ZSwgMjIgSmFuIDIwMTMgMTA6MDc6MDcgKzAwMDAKK1N1YmplY3Q6IFt0cnVldHlw
ZV0gRml4IGZvbnQgaGVpZ2h0LgorCisqIHNyYy90cnVldHlwZS90dG9ianMuYyAodHRfc2l6ZV9y
ZXNldCk6IFRoZSBXaW5kb3dzIHJlbmRlcmluZworZW5naW5lIHVzZXMgcm91bmRlZCB2YWx1ZXMg
b2YgdGhlIGFzY2VuZGVyIGFuZCBkZXNjZW5kZXIgdG8gY29tcHV0ZQordGhlIFRydWVUeXBlIGZv
bnQgaGVpZ2h0LgorLS0tCitkaWZmIC0tZ2l0IGEvc3JjL3RydWV0eXBlL3R0b2Jqcy5jIGIvc3Jj
L3RydWV0eXBlL3R0b2Jqcy5jCitpbmRleCBjNjFiMjE4Li41OTBiNjZjIDEwMDY0NAorLS0tIGEv
c3JjL3RydWV0eXBlL3R0b2Jqcy5jCisrKysgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKK0BAIC00
LDcgKzQsNyBAQAorIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogICAgT2JqZWN0cyBtYW5hZ2Vy
IChib2R5KS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
KyAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLworLS8qICBDb3B5cmlnaHQgMTk5Ni0yMDEyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisrLyogIENvcHly
aWdodCAxOTk2LTIwMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKi8KKyAvKiAgRGF2aWQgVHVybmVyLCBSb2JlcnQgV2lsaGVsbSwgYW5kIFdlcm5l
ciBMZW1iZXJnLiAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov
CisgLyogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBGcmVlVHlwZSBwcm9qZWN0LCBhbmQgbWF5
IG9ubHkgYmUgdXNlZCwgICAgICAgKi8KK0BAIC0xMTc3LDExICsxMTc3LDEyIEBACisgICAgICAg
ICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5hc2NlbmRlciwgbWV0cmljcy0+
eV9zY2FsZSApICk7CisgICAgICAgbWV0cmljcy0+ZGVzY2VuZGVyID0KKyAgICAgICAgIEZUX1BJ
WF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5yb290LmRlc2NlbmRlciwgbWV0cmljcy0+eV9zY2Fs
ZSApICk7CistICAgICAgbWV0cmljcy0+aGVpZ2h0ID0KKy0gICAgICAgIEZUX1BJWF9ST1VORCgg
RlRfTXVsRml4KCBmYWNlLT5yb290LmhlaWdodCwgbWV0cmljcy0+eV9zY2FsZSApICk7CisgICAg
ICAgbWV0cmljcy0+bWF4X2FkdmFuY2UgPQorICAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxG
aXgoIGZhY2UtPnJvb3QubWF4X2FkdmFuY2Vfd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWV0cmljcy0+eF9zY2FsZSApICk7CisrCisrICAgICAgLyogdGhlIGhlaWdo
dCBpcyBkZXJpdmVkIGZyb20gcm91bmRlZCB2YWx1ZXMgKi8KKysgICAgICBtZXRyaWNzLT5oZWln
aHQgPSBtZXRyaWNzLT5hc2NlbmRlciAtIG1ldHJpY3MtPmRlc2NlbmRlcjsKKyAgICAgfQorIAor
ICAgICAvKiBjb21wdXRlIG5ldyB0cmFuc2Zvcm1hdGlvbiAqLworLS0KK2NnaXQgdjAuOS4wLjIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dkYXRlLXN1cHByZXNzLXN0cmluZy1mb3Jt
YXQtbGl0ZXJhbC13YXJuaW5nLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJl
c3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkwY2I5NTFhMTljCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5p
bmcucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSAzYTdlZmQ1OThkMzkzNjZjMmM5ZGUwZGVm
MmZkZmIzNWU1ZTlmMmExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogY295cHUgPGNv
eXB1QHNkZi5vcmc+CitEYXRlOiBNb24sIDggRmViIDIwMTYgMDA6MDY6MDYgKzAyMDAKK1N1Ympl
Y3Q6IFtQQVRDSCAxLzFdIGdkYXRlOiBTdXBwcmVzcyBzdHJpbmcgZm9ybWF0IGxpdGVyYWwgd2Fy
bmluZworCitOZXdlciB2ZXJzaW9ucyBvZiBHQ0MgZW1pdCBhbiBlcnJvciBoZXJlLCBidXQgd2Ug
a25vdyBpdCdzIHNhZmUuCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy83NjE1NTAKKy0tLQor
IGdsaWIvZ2RhdGUuYyB8IDMgKysrCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQor
CitkaWZmIC0tZ2l0IGEvZ2xpYi9nZGF0ZS5jIGIvZ2xpYi9nZGF0ZS5jCitpbmRleCA0YWVjZTAy
Li5jZGM3MzVjIDEwMDY0NAorLS0tIGEvZ2xpYi9nZGF0ZS5jCisrKysgYi9nbGliL2dkYXRlLmMK
K0BAIC0yNDk0LDcgKzI0OTQsMTAgQEAgZ19kYXRlX3N0cmZ0aW1lIChnY2hhciAgICAgICAqcywK
KyAgICAgICAgKiByZWNvZ25pemUgd2hldGhlciBzdHJmdGltZSBhY3R1YWxseSBmYWlsZWQgb3Ig
anVzdCByZXR1cm5lZCAiIi4KKyAgICAgICAgKi8KKyAgICAgICB0bXBidWZbMF0gPSAnXDEnOwor
KyAgICAgICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorKyAgICAgICNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKKyAgICAgICB0bXBsZW4gPSBz
dHJmdGltZSAodG1wYnVmLCB0bXBidWZzaXplLCBsb2NhbGVfZm9ybWF0LCAmdG0pOworKyAgICAg
ICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgCisgICAgICAgaWYgKHRtcGxlbiA9PSAwICYm
IHRtcGJ1ZlswXSAhPSAnXDAnKQorICAgICAgICAgeworLS0gCisyLjcuMAorCmRpZmYgLS1naXQg
YS9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoIGIvVG9vbHMvd3BlL3Bh
dGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uOGZhZjRkMTFmMmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0
Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK0Zyb20gOWY5MGVl
NWVlY2NkNDdmMzljN2EwM2RjZDc4NmIxMjVhMTljMTk1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw
MDEKK0Zyb206IE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQGdub21lLm9yZz4KK0RhdGU6
IFNhdCwgMTMgSnVuIDIwMTUgMjI6NTI6MzMgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gZ2VubWFy
c2hhbDogc2lsZW5jZSByZWdpc3RlciBzdG9yYWdlIGNsYXNzIHdhcm5pbmdzCisKK1VzaW5nIHRo
ZSByZWdpc3RlciBrZXl3b3JkIHRyaWdnZXJzIHdhcm5pbmdzIG9uIG5vdGV3b3J0aHkgY29tcGls
ZXJzCisoY2xhbmcpLCBzaW5jZSBpdCdzIGRlcHJlY2F0ZWQgaW4gQysrIGFuZCBhdCBkYW5nZXIg
b2YgYmVpbmcgcmVtb3ZlZAorZnJvbSB0aGUgbGFuZ3VhZ2UuIFRoZXJlIGlzIG5vIHJlYXNvbiB0
byB1c2UgaXQgc2luY2UgaXQgaXNuJ3QgMTk4MAorYW55bW9yZS4KKworaHR0cHM6Ly9idWd6aWxs
YS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDkxOAorLS0tCisgZ29iamVjdC9nbGliLWdl
bm1hcnNoYWwuYyB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg
MyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dvYmplY3QvZ2xpYi1nZW5tYXJzaGFsLmMg
Yi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitpbmRleCBiZTQxNTFhLi5jYTc4YTZmIDEwMDY0
NAorLS0tIGEvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYworKysrIGIvZ29iamVjdC9nbGliLWdl
bm1hcnNoYWwuYworQEAgLTQxMiw5ICs0MTIsOSBAQCBnZW5lcmF0ZV9tYXJzaGFsIChjb25zdCBn
Y2hhciAqc2lnbmFtZSwKKyAgICAgICBnX2ZwcmludGYgKGZvdXQsICIlcyVzIGRhdGEyKTtcbiIs
IGluZGVudCAoaW5kKSwgcGFkICgiZ3BvaW50ZXIiKSk7CisgCisgICAgICAgLyogY2ZpbGUgbWFy
c2hhbCB2YXJpYWJsZXMgKi8KKy0gICAgICBnX2ZwcmludGYgKGZvdXQsICIgIHJlZ2lzdGVyIEdN
YXJzaGFsRnVuY18lcyBjYWxsYmFjaztcbiIsIHNpZ25hbWUpOworLSAgICAgIGdfZnByaW50ZiAo
Zm91dCwgIiAgcmVnaXN0ZXIgR0NDbG9zdXJlICpjYyA9IChHQ0Nsb3N1cmUqKSBjbG9zdXJlO1xu
Iik7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBncG9pbnRlciBkYXRhMSwg
ZGF0YTI7XG4iKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIEdNYXJzaGFsRnVuY18lcyBj
YWxsYmFjaztcbiIsIHNpZ25hbWUpOworKyAgICAgIGdfZnByaW50ZiAoZm91dCwgIiAgR0NDbG9z
dXJlICpjYyA9IChHQ0Nsb3N1cmUqKSBjbG9zdXJlO1xuIik7CisrICAgICAgZ19mcHJpbnRmIChm
b3V0LCAiICBncG9pbnRlciBkYXRhMSwgZGF0YTI7XG4iKTsKKyAgICAgICBpZiAoc2lnLT5yYXJn
LT5zZXR0ZXIpCisgCWdfZnByaW50ZiAoZm91dCwgIiAgJXMgdl9yZXR1cm47XG4iLCBzaWctPnJh
cmctPmN0eXBlKTsKKyAKKy0tIAorMi40LjIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBv
cnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5z
LWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZDEwNjRlZDVlOQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVu
U1NMLTEuMS4wLnBhdGNoCkBAIC0wLDAgKzEsMjM2IEBACitGcm9tIGU5Mzg5MzMxNjdjNDk0Y2Rj
YTQ0MzMzNGY2NThiMDJhMDNjNDQ4NmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBE
YWlraSBVZW5vIDxkdWVub0ByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAyNiBPY3QgMjAxNiAxNDo1
MTowMSArMDIwMAorU3ViamVjdDogW1BBVENIXSBkdGxzOiBwb3J0IHRvIE9wZW5TU0wgMS4xLjAK
KworQ2hhbmdlcyBhcmU6CisKKy0gVXNlIHRoZSB3cmFwcGVyIGZ1bmN0aW9ucyB0byBhY2Nlc3Mg
b3BhcXVlIGRhdGEgdHlwZXMuICBUbyBwcmVzZXJ2ZQorICBiYWNrd2FyZCBjb21wYXRpYmlsaXR5
LCBkZWZpbmUgZmFsbGJhY2sgZGVmaW5pdGlvbnMKKworLSBSZW1vdmUgdGhlIHVzZSBvZiBpZGlv
bSAicHF1ZXVlX3NpemUoc3NsLT5kMS0+c2VudF9tZXNzYWdlcykiLCBzaW5jZQorICB0aGVyZSBp
cyBubyByZXBsYWNlbWVudAorCistIFVzZSBSU0FfZ2VuZXJhdGVfa2V5X2V4IGluc3RlYWQgb2Yg
dGhlIGRlcHJlY2F0ZWQgUlNBX2dlbmVyYXRlX2tleQorCitodHRwczovL2J1Z3ppbGxhLmdub21l
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNTQwCistLS0KKyBleHQvZHRscy9nc3RkdGxzY2VydGlm
aWNhdGUuYyB8IDE1ICsrKysrKysrCisgZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYyAgfCA4
NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisgMiBmaWxlcyBj
aGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv
ZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNh
dGUuYworaW5kZXggOTVmYmI4My4uYzFjOTYwMiAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0
bHNjZXJ0aWZpY2F0ZS5jCisrKysgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworQEAg
LTE5OSw3ICsxOTksMjIgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0ZSAqIHNl
bGYpCisgICAgIHByaXYtPnByaXZhdGVfa2V5ID0gTlVMTDsKKyAgICAgcmV0dXJuOworICAgfQor
KworKyAgLyogWFhYOiBSU0FfZ2VuZXJhdGVfa2V5IGlzIGFjdHVhbGx5IGRlcHJlY2F0ZWQgaW4g
MC45LjggKi8KKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDFMCisgICBy
c2EgPSBSU0FfZ2VuZXJhdGVfa2V5ICgyMDQ4LCBSU0FfRjQsIE5VTEwsIE5VTEwpOworKyNlbHNl
CisrICByc2EgPSBSU0FfbmV3ICgpOworKyAgaWYgKHJzYSAhPSBOVUxMKSB7CisrICAgIEJJR05V
TSAqZSA9IEJOX25ldyAoKTsKKysgICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRfd29yZCAoZSwg
UlNBX0Y0KQorKyAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAyMDQ4LCBlLCBO
VUxMKSkgeworKyAgICAgIFJTQV9mcmVlIChyc2EpOworKyAgICAgIHJzYSA9IE5VTEw7CisrICAg
IH0KKysgICAgQk5fZnJlZSAoZSk7CisrICB9CisrI2VuZGlmCisgCisgICBpZiAoIXJzYSkgewor
ICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsICJmYWlsZWQgdG8gZ2VuZXJhdGUgUlNBIik7
CitkaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYyBiL2V4dC9kdGxzL2dz
dGR0bHNjb25uZWN0aW9uLmMKK2luZGV4IDM2ZjZkNjMuLjcyOGY1YTcgMTAwNjQ0CistLS0gYS9l
eHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jCisrKysgYi9leHQvZHRscy9nc3RkdGxzY29ubmVj
dGlvbi5jCitAQCAtNDIsNiArNDIsOCBAQAorICNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgorICNp
bmNsdWRlIDxvcGVuc3NsL3NzbC5oPgorIAorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysKKyBHU1Rf
REVCVUdfQ0FURUdPUllfU1RBVElDIChnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVnKTsKKyAjZGVm
aW5lIEdTVF9DQVRfREVGQVVMVCBnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVnCisgR19ERUZJTkVf
VFlQRV9XSVRIX0NPREUgKEdzdER0bHNDb25uZWN0aW9uLCBnc3RfZHRsc19jb25uZWN0aW9uLCBH
X1RZUEVfT0JKRUNULAorQEAgLTIxNiw2ICsyMTgsMzggQEAgZ3N0X2R0bHNfY29ubmVjdGlvbl9m
aW5hbGl6ZSAoR09iamVjdCAqIGdvYmplY3QpCisgICBHX09CSkVDVF9DTEFTUyAoZ3N0X2R0bHNf
Y29ubmVjdGlvbl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAoZ29iamVjdCk7CisgfQorIAorKyNp
ZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKytzdGF0aWMgdm9pZAorK0JJ
T19zZXRfZGF0YSAoQklPICogYmlvLCB2b2lkICpwdHIpCisreworKyAgYmlvLT5wdHIgPSBwdHI7
CisrfQorKworK3N0YXRpYyB2b2lkICoKKytCSU9fZ2V0X2RhdGEgKEJJTyAqIGJpbykKKyt7Cisr
ICByZXR1cm4gYmlvLT5wdHI7CisrfQorKworK3N0YXRpYyB2b2lkCisrQklPX3NldF9zaHV0ZG93
biAoQklPICogYmlvLCBpbnQgc2h1dGRvd24pCisreworKyAgYmlvLT5zaHV0ZG93biA9IHNodXRk
b3duOworK30KKysKKytzdGF0aWMgdm9pZAorK0JJT19zZXRfaW5pdCAoQklPICogYmlvLCBpbnQg
aW5pdCkKKyt7CisrICBiaW8tPmluaXQgPSBpbml0OworK30KKysKKytzdGF0aWMgWDUwOSAqCisr
WDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0IChYNTA5X1NUT1JFX0NUWCAqIGN0eCkKKyt7CisrICBy
ZXR1cm4gY3R4LT5jZXJ0OworK30KKysjZW5kaWYKKysKKyBzdGF0aWMgdm9pZAorIGdzdF9kdGxz
X2Nvbm5lY3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lk
LAorICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHBzcGVjKQorQEAgLTIz
OSw3ICsyNzMsNyBAQCBnc3RfZHRsc19jb25uZWN0aW9uX3NldF9wcm9wZXJ0eSAoR09iamVjdCAq
IG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICBwcml2LT5iaW8gPSBCSU9fbmV3IChCSU9f
c19nc3RfZHRsc19jb25uZWN0aW9uICgpKTsKKyAgICAgICBnX3JldHVybl9pZl9mYWlsIChwcml2
LT5iaW8pOworIAorLSAgICAgIHByaXYtPmJpby0+cHRyID0gc2VsZjsKKysgICAgICBCSU9fc2V0
X2RhdGEgKHByaXYtPmJpbywgc2VsZik7CisgICAgICAgU1NMX3NldF9iaW8gKHByaXYtPnNzbCwg
cHJpdi0+YmlvLCBwcml2LT5iaW8pOworIAorICAgICAgIFNTTF9zZXRfdmVyaWZ5IChwcml2LT5z
c2wsCitAQCAtNTczLDYgKzYwNyw3IEBAIGxvZ19zdGF0ZSAoR3N0RHRsc0Nvbm5lY3Rpb24gKiBz
ZWxmLCBjb25zdCBnY2hhciAqIHN0cikKKyAgIHN0YXRlcyB8PSAoISAhU1NMX3dhbnRfd3JpdGUg
KHByaXYtPnNzbCkgPDwgMjApOworICAgc3RhdGVzIHw9ICghICFTU0xfd2FudF9yZWFkIChwcml2
LT5zc2wpIDw8IDI0KTsKKyAKKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAw
MDFMCisgICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIiVzOiByb2xlPSVzIGJ1Zj0oJWQsJXA6JWQv
JWQpICV4fCV4ICVzIiwKKyAgICAgICBzdHIsCisgICAgICAgcHJpdi0+aXNfY2xpZW50ID8gImNs
aWVudCIgOiAic2VydmVyIiwKK0BAIC01ODEsNiArNjE2LDE1IEBAIGxvZ19zdGF0ZSAoR3N0RHRs
c0Nvbm5lY3Rpb24gKiBzZWxmLCBjb25zdCBnY2hhciAqIHN0cikKKyAgICAgICBwcml2LT5iaW9f
YnVmZmVyX29mZnNldCwKKyAgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKyAgICAgICBzdGF0
ZXMsIFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJp
di0+c3NsKSk7CisrI2Vsc2UKKysgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiJXM6IHJvbGU9JXMg
YnVmPSglcDolZC8lZCkgJXh8JXggJXMiLAorKyAgICAgIHN0ciwKKysgICAgICBwcml2LT5pc19j
bGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorKyAgICAgIHByaXYtPmJpb19idWZmZXIsCisr
ICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9vZmZzZXQsCisrICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9s
ZW4sCisrICAgICAgc3RhdGVzLCBTU0xfZ2V0X3N0YXRlIChwcml2LT5zc2wpLCBTU0xfc3RhdGVf
c3RyaW5nX2xvbmcgKHByaXYtPnNzbCkpOworKyNlbmRpZgorIH0KKyAKKyBzdGF0aWMgdm9pZAor
QEAgLTczNyw3ICs3ODEsNyBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlm
eV9vaywgWDUwOV9TVE9SRV9DVFggKiB4NTA5X2N0eCkKKyAgIHNlbGYgPSBTU0xfZ2V0X2V4X2Rh
dGEgKHNzbCwgY29ubmVjdGlvbl9leF9pbmRleCk7CisgICBnX3JldHVybl92YWxfaWZfZmFpbCAo
R1NUX0lTX0RUTFNfQ09OTkVDVElPTiAoc2VsZiksIEZBTFNFKTsKKyAKKy0gIHBlbSA9IF9nc3Rf
ZHRsc194NTA5X3RvX3BlbSAoeDUwOV9jdHgtPmNlcnQpOworKyAgcGVtID0gX2dzdF9kdGxzX3g1
MDlfdG9fcGVtIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSk7CisgCisgICBp
ZiAoIXBlbSkgeworICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsCitAQCAtNzQ5LDcgKzc5
Myw4IEBAIG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NU
T1JFX0NUWCAqIHg1MDlfY3R4KQorICAgICAgIGdpbnQgbGVuOworIAorICAgICAgIGxlbiA9Cist
ICAgICAgICAgIFg1MDlfTkFNRV9wcmludF9leCAoYmlvLCBYNTA5X2dldF9zdWJqZWN0X25hbWUg
KHg1MDlfY3R4LT5jZXJ0KSwgMSwKKysgICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4IChiaW8s
CisrICAgICAgICAgIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoWDUwOV9TVE9SRV9DVFhfZ2V0MF9j
ZXJ0ICh4NTA5X2N0eCkpLCAxLAorICAgICAgICAgICBYTl9GTEFHX01VTFRJTElORSk7CisgICAg
ICAgQklPX3JlYWQgKGJpbywgYnVmZmVyLCBsZW4pOworICAgICAgIGJ1ZmZlcltsZW5dID0gJ1ww
JzsKK0BAIC03NzcsNiArODIyLDcgQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sgKGludCBwcmV2
ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAgICMjIyMjIyMjICAjIyMj
ICAjIyMjIyMjCisgKi8KKyAKKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAw
MDFMCisgc3RhdGljIEJJT19NRVRIT0QgY3VzdG9tX2Jpb19tZXRob2RzID0geworICAgQklPX1RZ
UEVfQklPLAorICAgInN0cmVhbSIsCitAQCAtNzk1LDExICs4NDEsMzQgQEAgQklPX3NfZ3N0X2R0
bHNfY29ubmVjdGlvbiAodm9pZCkKKyB7CisgICByZXR1cm4gJmN1c3RvbV9iaW9fbWV0aG9kczsK
KyB9CisrI2Vsc2UKKytzdGF0aWMgQklPX01FVEhPRCAqY3VzdG9tX2Jpb19tZXRob2RzOworKwor
K3N0YXRpYyBCSU9fTUVUSE9EICoKKytCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQor
K3sKKysgIGlmIChjdXN0b21fYmlvX21ldGhvZHMgIT0gTlVMTCkKKysgICAgcmV0dXJuIGN1c3Rv
bV9iaW9fbWV0aG9kczsKKysKKysgIGN1c3RvbV9iaW9fbWV0aG9kcyA9IEJJT19tZXRoX25ldyAo
QklPX1RZUEVfQklPLCAic3RyZWFtIik7CisrICBpZiAoY3VzdG9tX2Jpb19tZXRob2RzID09IE5V
TEwKKysgICAgICB8fCAhQklPX21ldGhfc2V0X3dyaXRlIChjdXN0b21fYmlvX21ldGhvZHMsIGJp
b19tZXRob2Rfd3JpdGUpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9yZWFkIChjdXN0b21fYmlv
X21ldGhvZHMsIGJpb19tZXRob2RfcmVhZCkKKysgICAgICB8fCAhQklPX21ldGhfc2V0X2N0cmwg
KGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9jdHJsKQorKyAgICAgIHx8ICFCSU9fbWV0
aF9zZXRfY3JlYXRlIChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfbmV3KQorKyAgICAg
IHx8ICFCSU9fbWV0aF9zZXRfZGVzdHJveSAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9k
X2ZyZWUpKSB7CisrICAgIEJJT19tZXRoX2ZyZWUgKGN1c3RvbV9iaW9fbWV0aG9kcyk7CisrICAg
IHJldHVybiBOVUxMOworKyAgfQorKworKyAgcmV0dXJuIGN1c3RvbV9iaW9fbWV0aG9kczsKKyt9
CisrI2VuZGlmCisgCisgc3RhdGljIGludAorIGJpb19tZXRob2Rfd3JpdGUgKEJJTyAqIGJpbywg
Y29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgeworLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNl
bGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3REdGxzQ29ubmVjdGlv
biAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlvKSk7CisgCisg
ICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIkJJTzogd3JpdGluZyAlZCIsIHNpemUpOworIAorQEAg
LTgyNCw3ICs4OTMsNyBAQCBiaW9fbWV0aG9kX3dyaXRlIChCSU8gKiBiaW8sIGNvbnN0IGNoYXIg
KmRhdGEsIGludCBzaXplKQorIHN0YXRpYyBpbnQKKyBiaW9fbWV0aG9kX3JlYWQgKEJJTyAqIGJp
bywgY2hhciAqb3V0X2J1ZmZlciwgaW50IHNpemUpCisgeworLSAgR3N0RHRsc0Nvbm5lY3Rpb24g
KnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3REdGxzQ29ubmVj
dGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlvKSk7Cisg
ICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5wcml2OworICAgZ3VpbnQg
aW50ZXJuYWxfc2l6ZTsKKyAgIGdpbnQgY29weV9zaXplOworQEAgLTg2OCw3ICs5MzcsNyBAQCBi
aW9fbWV0aG9kX3JlYWQgKEJJTyAqIGJpbywgY2hhciAqb3V0X2J1ZmZlciwgaW50IHNpemUpCisg
c3RhdGljIGxvbmcKKyBiaW9fbWV0aG9kX2N0cmwgKEJJTyAqIGJpbywgaW50IGNtZCwgbG9uZyBh
cmcxLCB2b2lkICphcmcyKQorIHsKKy0gIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RU
TFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpOworKyAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBH
U1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpOworICAgR3N0RHRsc0Nvbm5l
Y3Rpb25Qcml2YXRlICpwcml2ID0gc2VsZi0+cHJpdjsKKyAKKyAgIHN3aXRjaCAoY21kKSB7CitA
QCAtOTE2LDggKzk4NSw4IEBAIGJpb19tZXRob2RfbmV3IChCSU8gKiBiaW8pCisgeworICAgR1NU
X0xPR19PQkpFQ1QgKE5VTEwsICJCSU86IG5ldyIpOworIAorLSAgYmlvLT5zaHV0ZG93biA9IDA7
CistICBiaW8tPmluaXQgPSAxOworKyAgQklPX3NldF9zaHV0ZG93biAoYmlvLCAwKTsKKysgIEJJ
T19zZXRfaW5pdCAoYmlvLCAxKTsKKyAKKyAgIHJldHVybiAxOworIH0KK0BAIC05MzAsNiArOTk5
LDYgQEAgYmlvX21ldGhvZF9mcmVlIChCSU8gKiBiaW8pCisgICAgIHJldHVybiAwOworICAgfQor
IAorLSAgR1NUX0xPR19PQkpFQ1QgKEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRyKSwgIkJJ
TyBmcmVlIik7CisrICBHU1RfTE9HX09CSkVDVCAoR1NUX0RUTFNfQ09OTkVDVElPTiAoQklPX2dl
dF9kYXRhIChiaW8pKSwgIkJJTyBmcmVlIik7CisgICByZXR1cm4gMDsKKyB9CistLSAKKzIuMTAu
MgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1k
dGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNo
IGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmljYXRl
LUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzY2ODc3MzcwYzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUt
Rml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoCkBAIC0wLDAgKzEsMzcg
QEAKK0Zyb20gM2EwNjkxOTNlMjUzNjRlYmRhY2FjODZmNGIwMzAyMmMxNTFlYTI5YyBNb24gU2Vw
IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdl
Pz0gPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CitEYXRlOiBNb24sIDE0IE5vdiAyMDE2IDEx
OjMyOjE3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGR0bHNjZXJ0aWZpY2F0ZTogRml4IGVycm9y
IGNoZWNraW5nIGluIFJTQV9nZW5lcmF0ZV9rZXlfZXgoKQorIHVzYWdlCisKK1dhcyBicm9rZW4g
ZHVyaW5nIHRoZSBwb3J0IGZvciBPcGVuU1NMIDEuMS4KKworaHR0cHM6Ly9idWd6aWxsYS5nbm9t
ZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDMyOAorLS0tCisgZXh0L2R0bHMvZ3N0ZHRsc2NlcnRp
ZmljYXRlLmMgfCA3ICsrKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAz
IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRl
LmMgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworaW5kZXggYzFjOTYwMi4uYzJkOWJi
MiAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCisrKysgYi9leHQv
ZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworQEAgLTIwNywxMiArMjA3LDEzIEBAIGluaXRfZ2Vu
ZXJhdGVkIChHc3REdGxzQ2VydGlmaWNhdGUgKiBzZWxmKQorICAgcnNhID0gUlNBX25ldyAoKTsK
KyAgIGlmIChyc2EgIT0gTlVMTCkgeworICAgICBCSUdOVU0gKmUgPSBCTl9uZXcgKCk7CistICAg
IGlmIChlICE9IE5VTEwgJiYgQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKKy0gICAgICAgICYmIFJT
QV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVMTCkpIHsKKysgICAgaWYgKGUgPT0g
TlVMTCB8fCAhQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKKysgICAgICAgIHx8ICFSU0FfZ2VuZXJh
dGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisgICAgICAgUlNBX2ZyZWUgKHJzYSk7
CisgICAgICAgcnNhID0gTlVMTDsKKyAgICAgfQorLSAgICBCTl9mcmVlIChlKTsKKysgICAgaWYg
KGUpCisrICAgICAgQk5fZnJlZSAoZSk7CisgICB9CisgI2VuZGlmCisgCistLSAKKzIuMTAuMgor
CmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1x
dGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2ggYi9Ub29s
cy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJl
YW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjNhNjBkYjQ3NzJiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Utc3RyZWFtcy13
aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoCkBAIC0wLDAgKzEsMTMzIEBACitGcm9tIDFhODFi
ZDkwZDRhM2U1OWQ2NjY5YTBiYmZhNDU2ZjFlZDRlNWRiNDggTW9uIFNlcCAxNyAwMDowMDowMCAy
MDAxCitGcm9tOiBYYWJpZXIgUm9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4K
K0RhdGU6IFRodSwgNyBBcHIgMjAxNiAxMzo1NzoxNiArMDIwMAorU3ViamVjdDogW1BBVENIXSBS
ZXZlcnQgInF0ZGVtdXg6IGV4cG9zZSBzdHJlYW1zIHdpdGggZmlyc3QgbW9vZiBmb3IKKyBmcmFn
bWVudGVkIGZvcm1hdCIKKworVGhpcyByZXZlcnRzIGNvbW1pdCBkOGJiNjY4N2VhMjUxNTcwYzMz
MTAzODI3OWE0M2Q0NDgxNjdkNmFkLgorLS0tCisgZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCA1NCAr
KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZ3N0
L2lzb21wNC9xdGRlbXV4LmggfCAgMSAtCisgMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25z
KCspLCAzOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5j
IGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKK2luZGV4IDM5YmUxNjMuLjk2MzZiNGIgMTAwNjQ0Cist
LS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYworKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKK0BA
IC02MDksNyArNjA5LDYgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAoR3N0UVREZW11eCAqIHF0ZGVtdXgp
CisgICBxdGRlbXV4LT5zdGF0ZSA9IFFUREVNVVhfU1RBVEVfSU5JVElBTDsKKyAgIHF0ZGVtdXgt
PnB1bGxiYXNlZCA9IEZBTFNFOworICAgcXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0ID0gRkFMU0U7
CistICBxdGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworICAgcXRkZW11eC0+bmVl
ZGVkYnl0ZXMgPSAxNjsKKyAgIHF0ZGVtdXgtPnRvZHJvcCA9IDA7CisgICBxdGRlbXV4LT5hZGFw
dGVyID0gZ3N0X2FkYXB0ZXJfbmV3ICgpOworQEAgLTIwNDksNyArMjA0OCw2IEBAIGdzdF9xdGRl
bXV4X3Jlc2V0IChHc3RRVERlbXV4ICogcXRkZW11eCwgZ2Jvb2xlYW4gaGFyZCkKKyAgICAgZ3N0
X2NhcHNfcmVwbGFjZSAoJnF0ZGVtdXgtPm1lZGlhX2NhcHMsIE5VTEwpOworICAgICBxdGRlbXV4
LT50aW1lc2NhbGUgPSAwOworICAgICBxdGRlbXV4LT5nb3RfbW9vdiA9IEZBTFNFOworLSAgICBx
dGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworICAgfSBlbHNlIGlmIChxdGRlbXV4
LT5tc3NfbW9kZSkgeworICAgICBnc3RfZmxvd19jb21iaW5lcl9yZXNldCAocXRkZW11eC0+Zmxv
d2NvbWJpbmVyKTsKKyAgICAgZm9yIChuID0gMDsgbiA8IHF0ZGVtdXgtPm5fc3RyZWFtczsgbisr
KQorQEAgLTYxMDQsNyArNjEwMiw2IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0
UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAgICAgICAgICAgICAmZm91cmNjKTsK
KyAgICAgICAgIGlmIChmb3VyY2MgPT0gRk9VUkNDX21vb3YpIHsKKyAgICAgICAgICAgZ2ludCBu
OworLSAgICAgICAgICBnYm9vbGVhbiBnb3Rfc2FtcGxlcyA9IEZBTFNFOworIAorICAgICAgICAg
ICAvKiBpbiB1c3VhbCBmcmFnbWVudGVkIHNldHVwIHdlIGNvdWxkIHRyeSB0byBzY2FuIGZvciBt
b3JlCisgICAgICAgICAgICAqIGFuZCBlbmQgdXAgYXQgdGhlIHRoZSBtb292IChhZnRlciBtZGF0
KSBhZ2FpbiAqLworQEAgLTYxMzYsMjcgKzYxMzMsMTkgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19h
ZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAgICAgICAgICAg
IHF0ZGVtdXhfbm9kZV9kdW1wIChkZW11eCwgZGVtdXgtPm1vb3Zfbm9kZSk7CisgICAgICAgICAg
ICAgcXRkZW11eF9wYXJzZV90cmVlIChkZW11eCk7CisgICAgICAgICAgICAgcXRkZW11eF9wcmVw
YXJlX3N0cmVhbXMgKGRlbXV4KTsKKysgICAgICAgICAgICBpZiAoIWRlbXV4LT5nb3RfbW9vdikK
KysgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKysgICAgICAg
ICAgICBlbHNlIHsKKyAKKy0gICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3Ry
ZWFtczsgbisrKSB7CistICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11
eC0+c3RyZWFtc1tuXTsKKy0gICAgICAgICAgICAgIGdvdF9zYW1wbGVzIHw9IHN0cmVhbS0+c3Ri
bF9pbmRleCA+PSAwOworLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBpZiAoIWRlbXV4LT5m
cmFnbWVudGVkIHx8IGdvdF9zYW1wbGVzKSB7CistICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5n
b3RfbW9vdikgeworLSAgICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJlYW1zIChkZW11
eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBmb3IgKG4gPSAw
OyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAgICAgICAgICAgICAgUXREZW11
eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07CistICAgICAgICAgICAgICAgICAg
Z3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7CistICAgICAgICAg
ICAgICAgIH0KKysgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1z
OyBuKyspIHsKKysgICAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgt
PnN0cmVhbXNbbl07CisrCisrICAgICAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9z
dHJlYW0gKGRlbXV4LCBzdHJlYW0pOworICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg
Z3N0X3F0ZGVtdXhfY2hlY2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKKy0gICAgICAg
ICAgICAgIGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworLSAgICAgICAgICAgIH0g
ZWxzZSB7CistICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBUUlVFOwor
ICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICBkZW11eC0+Z290X21vb3YgPSBUUlVFOwor
KyAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11
eCk7CisgCisgICAgICAgICAgICAgLyogZnJhZ21lbnRlZCBzdHJlYW1zIGhlYWRlcnMgc2hvdWxk
bid0IGNvbnRhaW4gZWR0cyBhdG9tcyAqLworICAgICAgICAgICAgIGlmICghZGVtdXgtPmZyYWdt
ZW50ZWQpIHsKK0BAIC02MTc1LDcgKzYxNjQsNiBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0
ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAgICAgZ3Vp
bnQ2NCBkaXN0ID0gMDsKKyAgICAgICAgICAgICBHc3RDbG9ja1RpbWUgcHJldl9wdHM7CisgICAg
ICAgICAgICAgZ3VpbnQ2NCBwcmV2X29mZnNldDsKKy0gICAgICAgICAgICBnaW50IG47CisgCisg
ICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJQYXJzaW5nIFttb29mXSIpOwor
IAorQEAgLTYyMDksMjUgKzYxOTcsMTUgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19hZGFwdGVyIChH
c3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAgICAgICAgICAgICAgcmV0ID0g
R1NUX0ZMT1dfRVJST1I7CisgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICAg
fQorLSAgICAgICAgICAgIC8qIGluIE1TUyB3ZSBuZWVkIHRvIGV4cG9zZSB0aGUgcGFkcyBhZnRl
ciB0aGUgZmlyc3QgbW9vZiBhcyB3ZSB3b24ndCBnZXQgYSBtb292IAorLSAgICAgICAgICAgICAq
IEFsc28sIGZyYWdtZW50ZWQgZm9ybWF0IG5lZWQgdG8gYmUgZXhwb3NlZCBpZiBhIG1vb3YgaGF2
ZSBubyB2YWxpZCBzYW1wbGUgZGF0YSAqLworLSAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21v
ZGUgfHwgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlKSB7CistICAgICAgICAgICAgICBpZiAoIWRl
bXV4LT5leHBvc2VkKSB7CistICAgICAgICAgICAgICAgIGlmICghZGVtdXgtPnBlbmRpbmdfbmV3
c2VnbWVudCkgeworLSAgICAgICAgICAgICAgICAgIEdzdFNlZ21lbnQgc2VnbWVudDsKKy0gICAg
ICAgICAgICAgICAgICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1F
KTsKKy0gICAgICAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIm5ldyBwZW5k
aW5nX25ld3NlZ21lbnQiKTsKKy0gICAgICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19uZXdz
ZWdtZW50ID0gZ3N0X2V2ZW50X25ld19zZWdtZW50ICgmc2VnbWVudCk7CistICAgICAgICAgICAg
ICAgIH0KKy0gICAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAoZGVtdXgpOwor
LSAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8
IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworLSAgICAgICAgICAgICAgICAgIFF0RGVtdXhTdHJl
YW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAgICAgICAgIGdzdF9x
dGRlbXV4X2NvbmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJlYW0pOworLSAgICAgICAgICAgICAg
ICB9CisrICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQgdG8gZXhwb3NlIHRoZSBwYWRzIGFm
dGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBhIG1vb3YgKi8KKysgICAgICAgICAg
ICBpZiAoZGVtdXgtPm1zc19tb2RlICYmICFkZW11eC0+ZXhwb3NlZCkgeworKyAgICAgICAgICAg
ICAgaWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CisrICAgICAgICAgICAgICAgIEdz
dFNlZ21lbnQgc2VnbWVudDsKKysgICAgICAgICAgICAgICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnNl
Z21lbnQsIEdTVF9GT1JNQVRfVElNRSk7CisrICAgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpF
Q1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworKyAgICAgICAgICAgICAgICBk
ZW11eC0+cGVuZGluZ19uZXdzZWdtZW50ID0gZ3N0X2V2ZW50X25ld19zZWdtZW50ICgmc2VnbWVu
dCk7CisgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19z
ZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRp
bmdfY29uZmlndXJlID0gRkFMU0U7CisrICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJl
YW1zIChkZW11eCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAiRGlzY2FyZGluZyBbbW9vZl0iKTsKK2Rp
ZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguaCBiL2dzdC9pc29tcDQvcXRkZW11eC5oCitp
bmRleCA2MDYxMjE1Li5lY2YwYzYzIDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmgK
KysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCitAQCAtODksNyArODksNiBAQCBzdHJ1Y3QgX0dz
dFFURGVtdXggeworICAgZ2Jvb2xlYW4gcG9zdGVkX3JlZGlyZWN0OworIAorICAgLyogcHVzaCBi
YXNlZCB2YXJpYWJsZXMgKi8KKy0gIGdib29sZWFuIHBlbmRpbmdfY29uZmlndXJlOworICAgZ3Vp
bnQgbmVlZGVkYnl0ZXM7CisgICBndWludCB0b2Ryb3A7CisgICBHc3RBZGFwdGVyICphZGFwdGVy
OworLS0gCisyLjguMC5yYzMKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBs
dWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2ggYi9Ub29scy93cGUvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWU5ZGQ5N2Y3OTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZk
dC1kZWNvZGUtdGltZS5wYXRjaApAQCAtMCwwICsxLDE0NiBAQAorRnJvbSA0NmQzZTBmYWE5MjI2
NDMwOTRhNWU0NmEzMmU0ZjgyZjc3NGFlNzcyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv
bTogPT9VVEYtOD9xP0VucmlxdWU9MjBPY2E9QzM9QjFhPTIwR29uej1DMz1BMWxlej89IDxlb2Nh
bmhhQGlnYWxpYS5jb20+CitEYXRlOiBUdWUsIDEwIE5vdiAyMDE1IDEzOjA5OjAwICswMTAwCitT
dWJqZWN0OiBbUEFUQ0hdIFVzZSB0aGUgdGZkdCBkZWNvZGUgdGltZSB3aGVuIGl0J3Mgc2lnbmlm
aWNhbnRseSBkaWZmZXJlbnQKKyB0aGFuIHRoZSB0aW1lIGluIHRoZSBsYXN0IHNhbXBsZSBpZiBh
bHdheXMtaG9ub3ItdGZkdCBpcyBlbmFibGVkCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3Jn
L3Nob3dfYnVnLmNnaT9pZD03NTQyMzAKKy0tLQorIGdzdC9pc29tcDQvcXRkZW11eC5jIHwgNzIg
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGdz
dC9pc29tcDQvcXRkZW11eC5oIHwgIDEgKworIDIgZmlsZXMgY2hhbmdlZCwgNzMgaW5zZXJ0aW9u
cygrKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0
ZGVtdXguYworaW5kZXggODgwNTk1ZS4uZDhiNTRmMCAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQv
cXRkZW11eC5jCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTUzNSw2ICs1MzUsMTEg
QEAgc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfYXBwZW5kX3Byb3RlY3Rpb25fc3lzdGVtX2lkIChH
c3RRVERlbXV4ICogcXRkZW11eCwKKyAgICAgY29uc3QgZ2NoYXIgKiBpZCk7Cisgc3RhdGljIHZv
aWQgcXRkZW11eF9nc3Rfc3RydWN0dXJlX2ZyZWUgKEdzdFN0cnVjdHVyZSAqIGdzdHN0cnVjdHVy
ZSk7CisgCisrc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfc2V0X3Byb3BlcnR5IChHT2JqZWN0ICog
b2JqZWN0LCBndWludCBwcm9wX2lkLAorKyAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFt
U3BlYyAqIHNwZWMpOworK3N0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X2dldF9wcm9wZXJ0eSAoR09i
amVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgR1ZhbHVlICogdmFsdWUsIEdQYXJh
bVNwZWMgKiBzcGVjKTsKKysKKyBzdGF0aWMgdm9pZAorIGdzdF9xdGRlbXV4X2NsYXNzX2luaXQg
KEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQorIHsKK0BAIC01NDYsOCArNTUxLDIxIEBAIGdzdF9x
dGRlbXV4X2NsYXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQorIAorICAgcGFyZW50
X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50IChrbGFzcyk7CisgCisrICBnb2JqZWN0
X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9zZXRfcHJvcGVydHk7CisrICBnb2Jq
ZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9nZXRfcHJvcGVydHk7CisrCisg
ICBnb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gZ3N0X3F0ZGVtdXhfZGlzcG9zZTsKKyAKKysgLyoq
CisrICAgKiBHc3RRdERlbXV4OjphbHdheXMtaG9ub3ItdGZkdDoKKysgICAqCisrICAgKiBSZXF1
ZXN0cyB0aGUgZGVtdXhlciB0byByZXNwZWN0IHdoYXQgdGhlIFRGRFQgYXRvbSBzYXlzIGluIG9y
ZGVyIHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMuIERlZmF1bHRzIHRvIEZBTFNF
LgorKyAgICovCisrICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnb2JqZWN0X2Ns
YXNzLCBQUk9QX0FMV0FZU19IT05PUl9URkRULAorKyAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFu
ICgiYWx3YXlzLWhvbm9yLXRmZHQiLCAiQWx3YXlzIGhvbm9yIFRGRFQiLAorKyAgICAgICAgICAi
V2hlbiBlbmFibGVkLCBURkRUIGF0b20gd2lsbCBhbHdheXMgYmUgcmVzcGVjdGVkIGluIG9yZGVy
IHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMiLAorKyAgICAgICAgICBGQUxTRSwg
R19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTKSk7CisrCisgICBnc3Rl
bGVtZW50X2NsYXNzLT5jaGFuZ2Vfc3RhdGUgPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVt
dXhfY2hhbmdlX3N0YXRlKTsKKyAjaWYgMAorICAgZ3N0ZWxlbWVudF9jbGFzcy0+c2V0X2luZGV4
ID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X3NldF9pbmRleCk7CitAQCAtNjExLDYg
KzYyOSw3IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBxdGRlbXV4KQorICAgcXRk
ZW11eC0+Y2VuY19hdXhfaW5mb19zaXplcyA9IE5VTEw7CisgICBxdGRlbXV4LT5jZW5jX2F1eF9z
YW1wbGVfY291bnQgPSAwOworICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzID0gTlVM
TDsKKysgIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0ID0gRkFMU0U7CisgICBnX3F1ZXVlX2lu
aXQgKCZxdGRlbXV4LT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlKTsKKyAgIGdzdF9zZWdtZW50X2lu
aXQgKCZxdGRlbXV4LT5zZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworICAgcXRkZW11eC0+Zmxv
d2NvbWJpbmVyID0gZ3N0X2Zsb3dfY29tYmluZXJfbmV3ICgpOworQEAgLTYzOSw2ICs2NTgsNDIg
QEAgZ3N0X3F0ZGVtdXhfZGlzcG9zZSAoR09iamVjdCAqIG9iamVjdCkKKyB9CisgCisgc3RhdGlj
IHZvaWQKKytnc3RfcXRkZW11eF9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50
IHByb3BfaWQsCisrICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogcHNwZWMp
CisreworKyAgR3N0UVREZW11eCAqcXRkZW11eCA9IEdTVF9RVERFTVVYIChvYmplY3QpOworKwor
KyAgc3dpdGNoIChwcm9wX2lkKSB7CisrICAgIGNhc2UgUFJPUF9BTFdBWVNfSE9OT1JfVEZEVDoK
KysgICAgICBHU1RfT0JKRUNUX0xPQ0sgKHF0ZGVtdXgpOworKyAgICAgIHF0ZGVtdXgtPmFsd2F5
c19ob25vcl90ZmR0ID0gZ192YWx1ZV9nZXRfYm9vbGVhbiAodmFsdWUpOworKyAgICAgIEdTVF9P
QkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysg
ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwg
cHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMgdm9pZAorK2dzdF9x
dGRlbXV4X2dldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1Zh
bHVlICogdmFsdWUsCisrICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4
ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQp
IHsKKysgICAgY2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1Rf
TE9DSyAocXRkZW11eCk7CisrICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbiAodmFsdWUsIHF0ZGVt
dXgtPmFsd2F5c19ob25vcl90ZmR0KTsKKysgICAgICBHU1RfT0JKRUNUX1VOTE9DSyAocXRkZW11
eCk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgR19PQkpFQ1RfV0FSTl9J
TlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKysgICAgICBicmVh
azsKKysgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKyBnc3RfcXRkZW11eF9wb3N0X25vX3BsYXlh
YmxlX3N0cmVhbV9lcnJvciAoR3N0UVREZW11eCAqIHF0ZGVtdXgpCisgeworICAgaWYgKHF0ZGVt
dXgtPnBvc3RlZF9yZWRpcmVjdCkgeworQEAgLTI5OTUsNiArMzA1MCwxNiBAQCBxdGRlbXV4X3Bh
cnNlX3RydW4gKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHc3RCeXRlUmVhZGVyICogdHJ1biwKKyAg
ICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVzIC0gMV0udGltZXN0YW1w
ICsKKyAgICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVzIC0gMV0uZHVy
YXRpb247CisgCisrICAgICAgLyogSWYgd2UncmUgYWx3YXlzIGhvbm9yaW5nIFRGRFQgYW5kIHRo
ZXJlJ3MgYSBzaWduaWZpY2F0aXZlIGRpZmZlcmVuY2UKKysgICAgICAgKiBiZXR3ZWVuIHRoZSBk
ZWNvZGVfdHMgYW5kIHRoZSB0aW1lc3RhbXAsIHByZWZlciBkZWNvZGVfdHMgKi8KKysgICAgICBp
ZiAocXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPT0gVFJVRQorKyAgICAgICAgICAmJiBhYnMg
KGRlY29kZV90cyAtIHRpbWVzdGFtcCkgPgorKyAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3Ry
ZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbikgeworKyAgICAgICAgR1NUX0lORk9fT0JKRUNU
IChxdGRlbXV4LAorKyAgICAgICAgICAgICJkZWNvZGVfdHMgaXMgc2lnbmlmaWNhbnRseSBkaWZm
ZXJlbnQgZnJvbSB0aW1lc3RhbXAsIHVzaW5nIGRlY29kZV90cyIpOworKyAgICAgICAgdGltZXN0
YW1wID0gZGVjb2RlX3RzOworKyAgICAgIH0KKysKKyAgICAgICBnc3RfdHMgPSBRVFNUUkVBTVRJ
TUVfVE9fR1NUVElNRSAoc3RyZWFtLCB0aW1lc3RhbXApOworICAgICAgIEdTVF9JTkZPX09CSkVD
VCAocXRkZW11eCwgImZpcnN0IHNhbXBsZSB0cyAlIiBHU1RfVElNRV9GT1JNQVQKKyAgICAgICAg
ICAgIiAoZXh0ZW5kcyBwcmV2aW91cyBzYW1wbGVzKSIsIEdTVF9USU1FX0FSR1MgKGdzdF90cykp
OworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lzb21wNC9xdGRlbXV4
LmgKK2luZGV4IDUzYmQwNzEuLmVjZjBjNjMgMTAwNjQ0CistLS0gYS9nc3QvaXNvbXA0L3F0ZGVt
dXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK0BAIC0xNTQsMTIgKzE1NCwyMCBAQCBz
dHJ1Y3QgX0dzdFFURGVtdXggeworICAgZ3VpbnQ4ICpjZW5jX2F1eF9pbmZvX3NpemVzOworICAg
Z3VpbnQzMiBjZW5jX2F1eF9zYW1wbGVfY291bnQ7CisgCisrICBnYm9vbGVhbiBhbHdheXNfaG9u
b3JfdGZkdDsKKyB9OworIAorIHN0cnVjdCBfR3N0UVREZW11eENsYXNzIHsKKyAgIEdzdEVsZW1l
bnRDbGFzcyBwYXJlbnRfY2xhc3M7CisgfTsKKyAKKysvKiBwcm9wcyAqLworK2VudW0KKyt7Cisr
ICBQUk9QXzAsCisrICBQUk9QX0FMV0FZU19IT05PUl9URkRUCisrfTsKKysKKyBHVHlwZSBnc3Rf
cXRkZW11eF9nZXRfdHlwZSAodm9pZCk7CisgCisgR19FTkRfREVDTFMKKy0tIAorMi42LjEKKwpk
aWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVz
aC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNo
ZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1p
Zi10aGUtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNDQ2
YmQ1NDRjMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdHJlYW1lci10
eXBlZmluZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYtdGhlLS5wYXRjaApA
QCAtMCwwICsxLDMyIEBACitGcm9tIDVlNDNlZTU5ODlkN2I1MWRjYjMxNDViZDk5NzUyNTI0N2Ez
ZDYyZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/U2ViYXN0aWFu
PTIwRHI9QzM9QjZnZT89IDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgorRGF0ZTogV2VkLCAx
MSBNYXkgMjAxNiAxNTowNjozOSArMDMwMAorU3ViamVjdDogW1BBVENIXSB0eXBlZmluZDogT25s
eSBwdXNoIGEgQ0FQUyBldmVudCBkb3duc3RyZWFtIGlmIHRoZSBzaW5rcGFkIGlzCisgbm90IGlu
IFBVTEwgbW9kZQorCitUaGUgb3RoZXIgc2lnbmFsIGhhbmRsZXJzIG9mIHRoZSB0eXBlLWZvdW5k
IHNpZ25hbCBtaWdodCBoYXZlIHJlYWN0aXZhdGVkCit0eXBlZmluZCBpbiBQVUxMIG1vZGUgYWxy
ZWFkeSwgcHVzaGluZyBhIENBUFMgZXZlbnQgYXQgdGhhdCBwb2ludCB3b3VsZCBjYXVzZQorZGVh
ZGxvY2tzIGFuZCBpcyBpbiBnZW5lcmFsIHVuZXhwZWN0ZWQgYnkgZWxlbWVudHMgdGhhdCBhcmUg
aW4gUFVMTCBtb2RlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzY1OTA2CistLS0KKyBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIHwg
NCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEv
cGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyBiL3BsdWdpbnMvZWxlbWVudHMv
Z3N0dHlwZWZpbmRlbGVtZW50LmMKK2luZGV4IGM2ODY0MTIuLjQ1M2ZmNzUgMTAwNjQ0CistLS0g
YS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCisrKysgYi9wbHVnaW5zL2Vs
ZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCitAQCAtMTc5LDYgKzE3OSwxMCBAQCBnc3RfdHlw
ZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlIChHc3RUeXBlRmluZEVsZW1lbnQgKiB0eXBlZmluZCwK
KyAgIEdTVF9JTkZPX09CSkVDVCAodHlwZWZpbmQsICJmb3VuZCBjYXBzICUiIEdTVF9QVFJfRk9S
TUFUICIsIHByb2JhYmlsaXR5PSV1IiwKKyAgICAgICBjYXBzLCBwcm9iYWJpbGl0eSk7CisgCisr
ICAvKiBEbyBub3RoaW5nIGlmIGRvd25zdHJlYW0gaXMgcHVsbGluZyBmcm9tIHVzICovCisrICBp
ZiAoR1NUX1BBRF9NT0RFICh0eXBlZmluZC0+c3JjKSA9PSBHU1RfUEFEX01PREVfUFVMTCkKKysg
ICAgcmV0dXJuOworKworICAgR1NUX09CSkVDVF9MT0NLICh0eXBlZmluZCk7CisgCisgICAvKiBO
b3cgYWN0dWFsbHkgc2VuZCB0aGUgQ0FQUyBldmVudCBkb3duc3RyZWFtLgorLS0gCisyLjguMQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>307719</attachid>
            <date>2017-04-21 04:43:01 -0700</date>
            <delta_ts>2017-04-27 06:08:05 -0700</delta_ts>
            <desc>git diff --stat output for the specific changes</desc>
            <filename>upstream.stat</filename>
            <type>text/plain</type>
            <size>12359</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">Q2hhbmdlcyBhZ2FpbnN0IHIyMTU2MDc6CgogQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRm
b3JtV1BFLmNtYWtlICAgICAgICAgICAgfCAgMjMgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3No
ZWxsL1BsYXRmb3JtV1BFLmNtYWtlICAgICAgfCAgIDMgKwogU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCAgfCAgIDIgKy0KIFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgICAgICAgICB8ICAyOCArCiBTb3VyY2UvV1RG
L3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oICAgICAgICB8ICAyOSArCiBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogU291
cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgfCAgIDMgKwog
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UgICAgICAgICAgICAgICAgICAgfCAyODYg
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aCB8ICAgNCArCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BF
LmNwcCB8ICA2NSArKwogLi4uL2FjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RX
UEUuY3BwICAgfCAgNDIgKwogU291cmNlL1dlYkNvcmUvY29uZmlnLmggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eUVDLmggICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlSU0EuaCAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmggICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL3dwZS9FZGl0b3JXUEUuY3BwICAgICAgICAgICB8ICA4OCArKwogU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAgICAgICAgIHwgMTA4ICsrKwogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmggICAgICAgICAgICAgICAgICAgfCAgIDIgKwogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaCAgICAgICAgICAgICAgICAgfCAgIDIgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oICAgICAgICAgICAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggICAgICAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNw
cCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1l
ci5oICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggICAg
ICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0
cmF0ZWd5LmggICAgICAgfCAgIDkgKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Q
YXN0ZWJvYXJkLmggICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmNwcCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9X
aWRnZXQuaCAgICAgICAgICAgICAgICAgICB8ICAgNCArCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgICAgfCAgIDQgKwogLi4uL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAgICAgIHwgICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaCAgICAgICB8ICAgNiArCiAuLi4v
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMRVNTaGltcy5oICAgfCAgIDMg
Ky0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgIHwg
ICA4ICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5o
IHwgICAzICsKIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wu
Y3BwIHwgIDEwICsKIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRF
R0wuaCAgIHwgIDEzICsKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BF
LmNwcCAgICAgIHwgIDQ0ICsKIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHAgIHwgICA5ICsKIC4uLi9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xD
b21tb24uY3BwICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93cGUvSWNvbldQRS5jcHAgICB8ICA0NCArCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93cGUvSW1hZ2VXUEUuY3BwICB8ICA0MyArCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mvd3Bl
L1BsYXRmb3JtRGlzcGxheVdQRS5jcHAgICB8IDEzNCArKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGlj
cy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmggICAgIHwgMTAyICsrKwogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAgICAgICAgICAgfCAgMzUgKwogLi4uL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwICAgfCAgNTEgKysKIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcCAgICAgIHwgMTM0ICsrKwogLi4u
L3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwICAgICAgfCAgNTggKysK
IC4uLi9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwIHwgMTE1
ICsrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcCAg
fCAgNzQgKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAg
ICAgIHwgIDY2ICsrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUu
aCAgICAgICB8ICA1NiArKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRo
ZW1lV1BFLmNwcCAgfCAgNjkgKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxi
YXJUaGVtZVdQRS5oICAgIHwgIDQ4ICsrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291
bmRXUEUuY3BwICAgICAgICAgICB8ICAzOCArCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
VGhlbWVXUEUuY3BwICAgICAgICAgICB8IDE0OCArKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93cGUvVGhlbWVXUEUuaCAgICAgICAgICAgICB8ICA1MCArKwogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1dpZGdldFdQRS5jcHAgICAgICAgICAgfCAgODUgKysKIC4uLi9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcCAgIHwgICAzICsKIFNvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtV1BFLmNtYWtlICAgICAgICAgICAgICAgICAgIHwgNDcwICsrKysrKysrKysK
IC4uLi9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIHwgICAy
ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggICAgICAgICAgICAgICB8
ICAgNCArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oICAgICAg
ICB8ICAzNSArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oICAgICAg
ICAgICB8IDEwNiArKysKIC4uLi90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29w
LmNwcCAgICAgIHwgICAyICstCiAuLi4vdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5oICAgICAgICB8ICAgMSArCiAuLi4vdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAgICAgICB8ICA4NiArLQogLi4uL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZENvbXBvc2l0b3IuaCAgICAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3
aW5nQXJlYUluZm8uaCAgICAgICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
YXRpdmVXZWJLZXlib2FyZEV2ZW50LmggICAgIHwgICA4ICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmggICAgICAgIHwgICA4ICsKIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmggICAgICAgIHwgICA3ICsKIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmggICAgICAgIHwgICA4ICsKIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICAgIHwgIDIyICstCiBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggICAgICB8ICAxMyArCiBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oICB8ICAgMiArLQog
Li4uL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAgICAgICAgfCAgMzgg
KwogLi4uL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcCAgfCAg
MzggKwogLi4uL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcCAg
fCAgNDYgKwogLi4uL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNw
cCAgfCAgNDAgKwogLi4uL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcCAg
ICAgICAgfCAgODcgKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5
LmNwcCAgICAgIHwgMjE1ICsrKysrCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50
RmFjdG9yeS5oICAgICAgICB8ICA0OCArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oICAgICAgICAgfCAgIDQgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL3dwZS9XS0FQSUNhc3RXUEUuaCAgfCAgNTggKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy93cGUvV0tWaWV3LmNwcCAgICAgIHwgIDU5ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oICAgICAgICB8ICA3MSArKwogLi4uL1VJUHJvY2Vzcy9B
UEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcCAgfCAgNTUgKysKIC4uLi9VSVByb2Nl
c3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oICAgIHwgIDYyICsrCiAuLi4vQVBJ
L3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAgICB8ICAyNSArCiAuLi4v
VUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAgICAgICB8ICA5NCArKwog
Li4uL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaCAgICAgICAgfCAgNjAg
KysKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCAgIHwg
MzIxICsrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmggIHwgMTMwICsrKwogLi4uL1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250
cm9sbGVyLmNwcCAgfCAgODAgKysKIC4uLi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJl
Q29udHJvbGxlci5oICAgIHwgIDU2ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9XUEVWaWV3LmNwcCAgICAgICB8IDE1MyArKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9XUEVWaWV3LmggICAgICAgICB8ICA4NiArKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHAgfCAgNDMgKwogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oICAgfCAgNTAgKysKIC4uLi9BUEkvd3BlL1dl
YktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sICAgIHwgICA2ICsKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAgICAgIHwgICA0ICstCiAuLi4vVUlQ
cm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaCB8ICAgMiArLQogLi4u
L0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9yU2VydmVyV1BFLmNwcCAgfCAxNDIgKysr
CiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggICB8ICAg
MiArLQogLi4uL1VJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcCAg
fCAxNTMgKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lmgg
ICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJv
eHkuaCAgICAgIHwgIDEwICstCiAuLi4vVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbiAgICAgICB8ICAgNyArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9U
ZXh0Q2hlY2tlcldQRS5jcHAgICAgfCAxNDEgKysrCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3Mvd3Bl
L1dlYkluc3BlY3RvclByb3h5V1BFLmNwcCB8IDE1NiArKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAgICB8ICA2NCArKwogLi4uL1VJUHJvY2Vzcy93
cGUvV2ViUGFzdGVib2FyZFByb3h5V1BFLmNwcCAgICAgICAgfCAgNTUgKysKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwIHwgIDg3ICsrCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcCB8IDE2MyArKysrCiBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmggICAgICAgICAgICAgICAgICAgICB8ICAgMiAr
LQogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCAgfCAg
IDIgKy0KIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAgICAg
IHwgICA5ICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgICAg
ICAgIHwgICAyICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
ICAgICAgIHwgIDI3ICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCAgICAgICAgIHwgICA4ICsKIC4uLi9XZWJDb3JlU3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVD
bGllbnRXUEUuY3BwIHwgIDU4ICsrCiAuLi4vV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNs
aWVudFdQRS5jcHAgICAgICB8IDI0NiArKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC93cGUvV2Vi
UG9wdXBNZW51V1BFLmNwcCAgICAgICAgIHwgIDM4ICsKIC4uLi9UaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwICB8ICAgNSArCiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCAgICAgICAgfCAgIDIgKy0KIC4uLi9XZWJQ
cm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAgIHwgIDQ4ICsrCiAuLi4v
V2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaCAgICB8ICA1MCArKwog
Li4uL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwICAgICAgfCAxOTIg
KysrKysKIC4uLi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmggICAgICAg
IHwgIDkzICsrCiAuLi4vV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5j
cHAgICB8ICA0OCArKwogLi4uL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yV1BF
LmNwcCAgICAgfCAgNDUgKwogLi4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQ
YWdlV1BFLmNwcCAgfCAgOTggKysrCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL3dwZS9XZWJQcm9j
ZXNzTWFpbldQRS5jcHAgICB8ICA3OSArKwogU291cmNlL1dlYktpdDIvY29uZmlnLmggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL3dwZS93cGUtd2Vi
a2l0LnBjLmluICAgICAgICAgICAgICAgIHwgIDExICsKIFNvdXJjZS9jbWFrZS9GaW5kTGliR0JN
LmNtYWtlICAgICAgICAgICAgICAgICAgICAgIHwgIDQ2ICsKIFNvdXJjZS9jbWFrZS9GaW5kV1BF
QmFja2VuZC1tZXNhLmNtYWtlICAgICAgICAgICAgIHwgIDQ3ICsKIFNvdXJjZS9jbWFrZS9GaW5k
V1BFQmFja2VuZC5jbWFrZSAgICAgICAgICAgICAgICAgIHwgIDQ3ICsKIFNvdXJjZS9jbWFrZS9P
cHRpb25zV1BFLmNtYWtlICAgICAgICAgICAgICAgICAgICAgIHwgMTM4ICsrKwogVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1hcmNoaXZlICAgICAgfCAgIDggKy0KIFRvb2xz
L0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUgICAgICAgIHwgICA0ICstCiBU
b29scy9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSAr
CiBUb29scy9JbWFnZURpZmYvUGxhdGZvcm1XUEUuY21ha2UgICAgICAgICAgICAgICAgICB8ICAg
MSArCiBUb29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlICAgICAgICAgICAgICAgICB8
ICAgMiArLQogVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDEgKwogVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyICAgICAgICAg
ICAgICAgfCAgIDIgKy0KIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQg
ICAgICAgICAgIHwgICA1ICstCiBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicyAg
ICAgICAgICAgICAgICB8ICAyNCArCiBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gICAgICAg
ICAgICAgICAgICAgICAgICB8ICAzMCArLQogVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1
cmVMaXN0LnBtICAgICAgICAgICAgfCAgMzIgKy0KIC4uLi93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0cy5weSAgICAgIHwgICAyICstCiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvZmFjdG9yeS5weSAgICAgICAgICAgICB8ICAgNCArCiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvd3BlLnB5ICAgICAgICAgICAgICAgICB8ICA3OCArKwogVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgICAgfCAgNjAgKysKIC4uLi93cGUvSW5q
ZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCAgICAgICAgICAgIHwgIDM1ICsKIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BFLmNwcCAgIHwgIDY5ICsrCiBUb29s
cy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcCAgICAgICAgICAgICAgICAgICB8ICAzMiArCiAu
Li4vSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwICAgICB8ICAgMiAr
LQogLi4uL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmggICAgICAgfCAg
IDIgKy0KIC4uLi9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCAgICAg
IHwgICAyICstCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICAg
ICAgICB8ICAgMiArLQogLi4uL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oIHwgICAyICstCiAuLi4vd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BF
LmNwcCAgICAgICAgICAgICB8ICA3MSArKwogLi4uL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
V1BFLmNwcCAgICAgICAgICAgICAgfCA5NTkgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vSW5q
ZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRlRm9udHNXUEUuY3BwICAgICAgICB8IDE0NSArKysrCiAu
Li4vSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcCAgICAgICB8ICAzNSAr
CiAuLi4vSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwICAgICAgICAgICB8ICA1
NyArKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAg
fCAgNDcgKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCAgICAgICAg
ICAgfCAgIDUgKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAg
ICAgICAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJv
eHlXUEUuY3BwIHwgMTIxICsrKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NW
aWV3QmFja2VuZC5jcHAgfCAyNTAgKysrKysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9I
ZWFkbGVzc1ZpZXdCYWNrZW5kLmggICB8ICA3MSArKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcCAgfCAxNDAgKysrCiBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAgICB8IDEzOSArKysKIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd3BlL21haW4uY3BwICAgICAgICAgICAgICAgIHwgIDM0ICsKIFRvb2xzL2poYnVp
bGQvamhidWlsZC13cmFwcGVyICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIFRvb2xzL3dw
ZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5IHwgIDc3ICsrCiBUb29s
cy93cGUvamhidWlsZC5tb2R1bGVzICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0NiArKysr
KysKIFRvb2xzL3dwZS9qaGJ1aWxkcmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
IDI1ICsKIC4uLi9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2UucGF0Y2gg
IHwgMTMzICsrKwogLi4uZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIu
cGF0Y2ggfCAgMzAgKwogLi4uZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1m
aXgucGF0Y2ggfCAgMzkgKwogLi4udGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdh
cm5pbmcucGF0Y2ggfCAgMjkgKwogVG9vbHMvd3BlL3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5w
YXRjaCAgICAgICAgICAgfCAgMzQgKwogLi4udWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9w
ZW5TU0wtMS4xLjAucGF0Y2ggfCAyMzYgKysrKysKIC4uLmNhdGUtRml4LWVycm9yLWNoZWNraW5n
LWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoIHwgIDM3ICsKIC4uLm11eC1leHBvc2Utc3RyZWFtcy13
aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoIHwgMTMzICsrKwogLi4uZ3N0LXBsdWdpbnMtZ29v
ZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2ggfCAxNDYgKysrKwogLi4uT25seS1wdXNo
LWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2ggfCAgMzIgKwogMjAxIGZpbGVz
IGNoYW5nZWQsIDEwODk1IGluc2VydGlvbnMoKyksIDk2IGRlbGV0aW9ucygtKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307721</attachid>
            <date>2017-04-21 05:04:37 -0700</date>
            <delta_ts>2017-04-21 07:03:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>503320</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDc2MjkzY2NmMDlkLi5hYWFhZTRmZGRlZSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA0LTIxICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IEFkZCB0aGUgV1BFIHBvcnQgaWRlbnRpZmllci4KKyAgICAgICAgKiBTb3VyY2UvY21h
a2UvRmluZExpYkdCTS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRX
UEVCYWNrZW5kLW1lc2EuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5k
V1BFQmFja2VuZC5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNX
UEUuY21ha2U6IEFkZGVkLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51
bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5HX0hFQURF
UlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggNTUxN2Y0NmNiYjMuLmE2NTZiYTczNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtV1BFLmNt
YWtlOiBBZGRlZC4KKyAgICAgICAgKiBzaGVsbC9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisK
IDIwMTctMDQtMjAgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAg
ICAgICAgIFtjbWFrZV0gRGVmaW5lIEZPUldBUkRJTkdfSEVBREVSU19ESVIgaW4gV2ViS2l0RlMg
YW5kIHVzZSBpdCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1XUEUuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjZjZhZjkyY2Q0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
CkBAIC0wLDAgKzEsMjMgQEAKK2xpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9JTkNM
VURFX0RJUkVDVE9SSUVTCisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke1dURl9ESVJ9
CispCisKK3NldChXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hFQURFUlMKKyAgICBBUEkv
SmF2YVNjcmlwdC5oCisgICAgQVBJL0pTQmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisg
ICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAgICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5
cGVkQXJyYXkuaAorICAgIEFQSS9KU1ZhbHVlUmVmLmgKKyAgICBBUEkvV2ViS2l0QXZhaWxhYmls
aXR5LmgKKykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfSkFWQVNDUklQVENPUkVf
SEVBREVSU30KKyAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dw
ZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFL0phdmFTY3JpcHRDb3JlIgorICAgIENPTVBPTkVOVCAi
RGV2ZWxvcG1lbnQiCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvUGxhdGZvcm1X
UEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyMzE4M2Ey
YjA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRm
b3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMyBAQAorbGlzdChBUFBFTkQgSlNDX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5kZXgg
NmE0YzE4MGZhYWMuLjBkMTgxMGQ0OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oOgorICAgICAgICBBbGxvdyBidWlsZGluZyBXUEUgb24gcGxhdGZvcm1zIHRoYXQgZG9uJ3Qg
cHJvdmlkZSBYMTEgbGlicmFyaWVzLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5H
X0hFQURFUlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5
ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAgICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVm
IHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1hcF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5
cGVkZWYgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlw
ZTsKIAotI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkg
fHwgZGVmaW5lZChVU0VfV1BFKQogCiB0eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlU
eXBlOwogdHlwZWRlZiBpbnRwdHJfdCBFR0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjZGQyNzgx
NzA0Mi4uZTRiYzM5MzU3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMjEgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBX
UEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVk
LgorICAgICAgICAqIHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oOgorCiAyMDE3LTA0
LTIwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBub3RGb3Vu
ZCBpbnRvIGl0cyBvd24gZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggY2E2MmEzZjUwZGYuLmUxZmMzYmVi
MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ0OCw2ICs0NDgsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTQ5
Miw3ICs0OTQsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYwOCw3
ICs2MTAsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzQ0LDcgKzc0Niw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTM1LDcgKzkzNyw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAwMiw3ICsxMDA0LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDUyLDExICsxMDU0LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTE5LDcgKzExMjEsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMTRlZjQzMmJjMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dSZWZQdHIuY3BwCisgICAgZ2xpYi9HTGliVXRpbGl0
aWVzLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQ1ZjEyY2JkNTA3Li5kZmI4YmE1YWZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTYsMTEgKzM5OTYsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MjUwNGQwNmM3Ni4uMzUyNWRlYjQ1NzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtZGV2
IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJr
aXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBFeGlzdGluZyBmaWxlcyBt
b3N0bHkgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0oV1BFKSBidWlsZCBndWFyZHMu
CisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBDaGFuZ2VMb2cgZW50
cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQ
bGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNo
ZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxp
dHlPYmplY3RXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nbGliL0F1ZGlvQnVzR0xpYi5jcHAuCisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICog
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9L
ZXlSU0EuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL3dwZS9FZGl0b3JXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgICogcGFnZS93cGUvRXZl
bnRIYW5kbGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1h
Z2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NYWluVGhy
ZWFkU2hhcmVkVGltZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAg
ICAgICogcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnku
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9PcGVuR0xFU1NoaW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
cGUvSWNvbldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUu
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBw
bGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVi
b2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVl
bldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAg
ICAqIHBsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Nj
cm9sbGJhclRoZW1lV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQ
RS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9UaGVtZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9UaGVtZVdQRS5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKwogMjAxNy0wNC0yMSAgVGltb3RoeSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIG9ic2N1
cmVkIGluc2V0cyB0byB3ZWIgY29udGVudCAoYXMgInNhZmUgYXJlYSBpbnNldHMiKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKaW5kZXggM2Y1NmYyZWE0Y2MuLjZlOWJhYjAxYTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9QbGF0Zm9ybVdQRS5j
bWFrZTogQWRkZWQuCisKIDIwMTctMDQtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNYWNdIEFsbG93IGN1c3RvbWl6aW5nIEgyNjQgZW5jb2RlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjc3NWMxODk4NGFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3Qo
QVBQRU5EIFBBTF9TT1VSQ0VTCisgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9EaWdlc3RHQ3J5cHQu
Y3BwCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5lNjM3OTVmNGNiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjg2IEBACitpbmNsdWRlKHBsYXRmb3Jt
L0dTdHJlYW1lci5jbWFrZSkKK2luY2x1ZGUocGxhdGZvcm0vSW1hZ2VEZWNvZGVycy5jbWFrZSkK
K2luY2x1ZGUocGxhdGZvcm0vTGludXguY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL1RleHR1cmVN
YXBwZXIuY21ha2UpCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICIke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9IgorICAgICIke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3RvciIKKyAgICAke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0KKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJz
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCisg
ICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29tcGlsZXIiCisgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9kZmciCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQiCisgICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9oZWFwIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGVidWdnZXIiCisgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRlcnByZXRlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2ppdCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2xsaW50IgorICAgICIke0pB
VkFTQ1JJUFRDT1JFX0RJUn0vcGFyc2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcHJv
ZmlsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lIgorICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0veWFyciIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvIgorICAg
ICIke1RISVJEUEFSVFlfRElSfS9BTkdMRS9pbmNsdWRlL0tIUiIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dseCIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9o
YXJmYnV6ei9uZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlIgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvaWN1IgorICAgICR7V1RG
X0RJUn0KKykKKworbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgYWNjZXNzaWJpbGl0
eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAKKyAgICBhY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3Np
YmlsaXR5T2JqZWN0V1BFLmNwcAorCisgICAgbG9hZGVyL3NvdXAvQ2FjaGVkUmF3UmVzb3VyY2VT
b3VwLmNwcAorICAgIGxvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKKworICAg
IHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
b29yZGluYXRlZEdyYXBoaWNzLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3Jh
cGhpY3MvU2Nyb2xsaW5nU3RhdGVOb2RlQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKworICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKKyAgICBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCisKKyAgICBwbGF0Zm9ybS9DdXJzb3IuY3BwCisgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25l
LmNwcAorICAgIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKyAgICBwbGF0Zm9ybS9U
aGVtZS5jcHAKKworICAgIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAorCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCisKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9JbXBsLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0Zsb2F0UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJm
YnV6ek5HLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05h
dGl2ZUltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVBhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9UcmFuc2Zvcm1hdGlvbk1hdHJpeENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAorCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1enou
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcAorCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5nLmNwcAor
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuY3Bw
CisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcAorCisg
ICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5j
cHAKKworICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKKyAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0NyZWRlbnRpYWxTdG9yYWdlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
RE5TU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1JlZlB0clNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5U2VydmVyU291cC5jcHAKKyAgICBwbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXNwb25zZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVy
Q2xpZW50U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvV2ViS2l0U291cFJlcXVl
c3RHZW5lcmljLmNwcAorCisgICAgcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAKKworICAgIHBsYXRmb3JtL3RleHQvSHlwaGVu
YXRpb24uY3BwCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCisgICAgcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRl
Y3RvcklDVS5jcHAKKworICAgICMgRklYTUU6IFNwbGl0IGJ1aWxkIHRhcmdlcnMgYmVsb3cgaW50
byBhIFdlYkNvcmVQbGF0Zm9ybSBsaWJyYXJ5CisgICAgZWRpdGluZy93cGUvRWRpdG9yV1BFLmNw
cAorCisgICAgcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ2xp
Yi9FdmVudExvb3BHbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3Bw
CisgICAgcGxhdGZvcm0vZ2xpYi9LZXllZERlY29kZXJHbGliLmNwcAorICAgIHBsYXRmb3JtL2ds
aWIvS2V5ZWRFbmNvZGVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL01haW5UaHJlYWRTaGFy
ZWRUaW1lckdMaWIuY3BwCisgICAgcGxhdGZvcm0vZ2xpYi9TaGFyZWRCdWZmZXJHbGliLmNwcAor
ICAgIHBsYXRmb3JtL2dsaWIvU1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wv
R0xDb250ZXh0RUdMV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0lj
b25XUEUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcAorCisgICAg
cGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKworICAgIHBsYXRmb3JtL3dwZS9DdXJzb3JX
UEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCisgICAgcGxh
dGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BF
LmNwcAorICAgIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKKyAgICBwbGF0Zm9y
bS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1l
V1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUv
VGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKKworICAgIHBsYXRm
b3JtL3hkZy9NSU1FVHlwZVJlZ2lzdHJ5WGRnLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X1VTRVJfQUdFTlRfU1RZTEVfU0hFRVRTCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmNzcworKQorCitzZXQoV2ViQ29yZV9VU0VSX0FH
RU5UX1NDUklQVFMKKyAgICAke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9qL21lZGlhQ29udHJv
bHNMb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYWNv
bnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCispCisKK3NldChXZWJDb3JlX1VTRVJfQUdFTlRf
U0NSSVBUU19ERVBFTkRFTkNJRVMgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0NBSVJP
X0xJQlJBUklFU30KKyAgICAke0VHTF9MSUJSQVJJRVN9CisgICAgJHtGT05UQ09ORklHX0xJQlJB
UklFU30KKyAgICAke0ZSRUVUWVBFMl9MSUJSQVJJRVN9CisgICAgJHtHTElCX0dJT19MSUJSQVJJ
RVN9CisgICAgJHtHTElCX0dNT0RVTEVfTElCUkFSSUVTfQorICAgICR7R0xJQl9HT0JKRUNUX0xJ
QlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R05VVExTX0xJQlJBUklFU30K
KyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0lDVV9MSUJSQVJJRVN9CisgICAgJHtM
SUJHQ1JZUFRfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9CisgICAgJHtMSUJY
TUwyX0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFSSUVTfQorICAgICR7U1FMSVRFX0xJ
QlJBUklFU30KKyAgICAke1dQRV9MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7RUdM
X0lOQ0xVREVfRElSU30KKyAgICAke0ZPTlRDT05GSUdfSU5DTFVERV9ESVJTfQorICAgICR7RlJF
RVRZUEUyX0lOQ0xVREVfRElSU30KKyAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7R05V
VExTX0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpaX0lOQ0xVREVfRElSU30KKyAgICAke0lD
VV9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJHQ1JZUFRfSU5DTFVERV9ESVJTfQorICAgICR7TElC
U09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7TElC
WFNMVF9JTkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURFX0RJUn0KKyAgICAke1dQRV9J
TkNMVURFX0RJUlN9CispCisKK2lmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKKyAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAK
KyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAorICAgICAgICBjcnlw
dG8vQ3J5cHRvS2V5LmNwcAorICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAgICAg
ICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAorCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DVFIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19HQ00uY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNE
U0EuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuY3Bw
CisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCisgICAg
ICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5jcHAKKyAgICAgICAg
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKKyAg
ICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUu
Y3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNw
cAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCisgICAgICAg
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKKyAgICAgICAgY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAorICAgICAgICBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCisKKyAgICAgICAgY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DRkJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1BRVNfR0NNR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0
L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1FQ0RIR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0
b0FsZ29yaXRobUVDRFNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0Fs
Z29yaXRobUhLREZHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3Jp
dGhtSE1BQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1Q
QktERjJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SU0FfT0FFUEdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SZWdpc3RyeUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9LZXlFQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlSU0FH
Q3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvU2VyaWFsaXplZENyeXB0b0tleVdyYXBH
Q3J5cHQuY3BwCisKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAorICAgICAg
ICBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHAKKyAgICAgICAgY3J5
cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleUVDLmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNw
cAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleVJhdy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFs
aXphdGlvblJhdy5jcHAKKyAgICApCitlbmRpZiAoKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDE1OWQ1Y2NjNDIyLi4z
MWEyMWZhYjgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKQEAgLTY2LDYgKzY2LDggQEAgdHlwZWRlZiBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbGlmIFBMQVRG
T1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogdHlwZWRlZiBz
dHJ1Y3QgX0F0a09iamVjdCBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKKyNlbGlmIFBMQVRG
T1JNKFdQRSkKK2NsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+IHsgfTsKICNlbHNlCiBjbGFzcyBBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbmRpZgpAQCAtMTExMSw2ICsxMTEzLDggQEAgcHJv
dGVjdGVkOgogICAgIENPTVB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93cmFwcGVy
OwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEF0a09iamVjdCogbV93cmFwcGVyOworI2VsaWYg
UExBVEZPUk0oV1BFKQorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93
cmFwcGVyOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4xNTQxNTk0YWRlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlEZXRhY2ht
ZW50VHlwZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZChOb2RlKiwgTm9kZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBlOTRjNTk5NGNhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVj
dFdQRS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2Fs
aWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1l
bnQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKaW5kZXgg
ZDVkNDNmZTRkZjQuLjE4MDk5MGViZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb25m
aWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaApAQCAtMTA0LDcgKzEwNCw3IEBACiAj
ZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oV1BFKQogI2RlZmluZSBVU0VfTkVXX1RIRU1FIDEKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAppbmRleCA0NDNhNjgyMTVhYi4uNGM3ZDAy
OThlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaApAQCAtMzYs
NyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0NFQ0NyeXB0b3IgKkNDRUNDcnlwdG9yUmVmOwog
dHlwZWRlZiBDQ0VDQ3J5cHRvclJlZiBQbGF0Zm9ybUVDS2V5OwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5X3Nl
eHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBnY3J5
X3NleHAqIFBsYXRmb3JtRUNLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlSU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVJTQS5oCmluZGV4IDMwNWJkNGM0M2EwLi40MWJjZTg1OWVhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwogdHlwZWRlZiBDQ1JTQUNyeXB0b3JS
ZWYgUGxhdGZvcm1SU0FLZXk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIC8vIGdjcnlfc2V4cCogZXF1YXRlcyBnY3J5X3Nl
eHBfdC4KIHN0cnVjdCBnY3J5X3NleHA7CiB0eXBlZGVmIGdjcnlfc2V4cCogUGxhdGZvcm1SU0FL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggM2MxNTdlZjZkODguLjA1ZTkxYmZm
MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xMjQ2LDEzICsxMjQ2LDEzIEBA
IHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rp
b24pCiAgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1
bWVudChkb2N1bWVudCgpKTsKIAogICAgICAgICBpZiAoaW1hZ2VFbGVtZW50KSB7Ci0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgICAgICB3cml0ZUltYWdlVG9QYXN0
ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgKmltYWdlRWxlbWVu
dCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1lbnQoKS50aXRsZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgqaW1h
Z2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgpLnRpdGxlKCkpOwogI2VuZGlm
CiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAg
ICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0
IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KQEAgLTEz
NzcsNyArMTM3Nyw3IEBAIHZvaWQgRWRpdG9yOjpjb3B5SW1hZ2UoY29uc3QgSGl0VGVzdFJlc3Vs
dCYgcmVzdWx0KQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICB1cmwgPSByZXN1bHQu
YWJzb2x1dGVJbWFnZVVSTCgpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICplbGVtZW50LCB1cmwsIHJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOwogI2Vs
c2UKICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgq
ZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0RGlzcGxheVN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDE2NTJiNmRiMzkzLi4zNmI5NmIyYmNlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCkBAIC00NjcsNyArNDY3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmlu
ZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVz
cGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJk
KFBhc3RlYm9hcmQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlSW1hZ2VUb1Bhc3Rl
Ym9hcmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmIGltYWdlRWxlbWVudCwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihQYXN0ZWJvYXJkV3Jp
dGVyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9y
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFmZmQyZGUxZTk4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9yV1BFLmNwcApAQCAtMCww
ICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIm1hcmt1cC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBhc3RlYm9hcmREYXRhKFBhc3RlYm9hcmQmIHBhc3Rl
Ym9hcmQsIEZyYW1lJiBmcmFtZSwgUmFuZ2UmIHJhbmdlLCBib29sIGFsbG93UGxhaW5UZXh0LCBi
b29sJiBjaG9zZVBsYWluVGV4dCkKK3sKKyAgICBjaG9zZVBsYWluVGV4dCA9IGZhbHNlOworCisg
ICAgVmVjdG9yPFN0cmluZz4gdHlwZXMgPSBwYXN0ZWJvYXJkLnR5cGVzKCk7CisgICAgaWYgKHR5
cGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAodHlwZXMu
Y29udGFpbnMoInRleHQvaHRtbDtjaGFyc2V0PXV0Zi04IikgJiYgZnJhbWUuZG9jdW1lbnQoKSkg
eworICAgICAgICBTdHJpbmcgbWFya3VwID0gcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L2h0
bWw7Y2hhcnNldD11dGYtOCIpOworICAgICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKCpmcmFtZS5kb2N1bWVudCgpLCBt
YXJrdXAsIGVtcHR5U3RyaW5nKCksIERpc2FsbG93U2NyaXB0aW5nQW5kUGx1Z2luQ29udGVudCkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIGlm
ICghYWxsb3dQbGFpblRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKHR5
cGVzLmNvbnRhaW5zKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkgeworICAgICAgICBjaG9z
ZVBsYWluVGV4dCA9IHRydWU7CisgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KHJhbmdlLCBwYXN0ZWJvYXJkLnJlYWRT
dHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIpKSkKKyAgICAgICAgICAgIHJldHVybiBm
cmFnbWVudC5yZWxlYXNlKCk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Zv
aWQgRWRpdG9yOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJv
YXJkKQoreworICAgIFBhc3RlYm9hcmRXZWJDb250ZW50IHBhc3RlYm9hcmRDb250ZW50OworICAg
IHBhc3RlYm9hcmRDb250ZW50LnRleHQgPSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsK
KyAgICBwYXN0ZWJvYXJkQ29udGVudC5tYXJrdXAgPSBjcmVhdGVNYXJrdXAoKnNlbGVjdGVkUmFu
Z2UoKSwgbnVsbHB0ciwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25M
b2NhbFVSTHMpOworICAgIHBhc3RlYm9hcmQud3JpdGUocGFzdGVib2FyZENvbnRlbnQpOworfQor
Cit2b2lkIEVkaXRvcjo6d3JpdGVJbWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgRWxlbWVu
dCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVi
b2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxv
Y2txdW90ZUhhbmRsaW5nKQoreworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJh
bmdlKCk7CisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBjaG9z
ZVBsYWluVGV4dDsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVh
dGVGcmFnbWVudEZyb21QYXN0ZWJvYXJkRGF0YSgqcGFzdGVib2FyZCwgbV9mcmFtZSwgKnJhbmdl
LCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHQpOworICAgIGlmIChmcmFnbWVudCAmJiBz
aG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6
UGFzdGVkKSkKKyAgICAgICAgcGFzdGVBc0ZyYWdtZW50KCpmcmFnbWVudCwgY2FuU21hcnRSZXBs
YWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgbWFpbEJsb2Nr
cXVvdGVIYW5kbGluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2OTU3Yzg3ODRmYy4uZWRlOTQwMTczOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYgd2luZG93UG9p
bnQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogCiBib29sIEV2ZW50SGFuZGxlcjo6
c2hvdWxkVHVyblZlcnRpY2FsVGlja3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4zZWRjZDg1ZDgzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorCisjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEV2ZW50SGFu
ZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEV2ZW50SGFu
ZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRGcmFt
ZSgmbV9mcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3du
RXZlbnRUb1dpZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhh
bmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChXaWRnZXQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIFdpZGdldCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFt
ZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFz
c01vdXNlTW92ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwg
RnJhbWUqLCBIaXRUZXN0UmVzdWx0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVu
dFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworT3B0aW9uU2V0PFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9k
aWZpZXI6OkFsdEtleTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNh
bFRpY2tzSW50b0hvcml6b250YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKaW5kZXggY2RjZjI2NWYyNjAu
LjVlOTExZDcwOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNzQsNiArNzQsOCBA
QCB1c2luZyBQbGF0Zm9ybUN1cnNvciA9IFJlZlB0cjxTaGFyZWRDdXJzb3I+OwogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBOU0N1cnNvciAqOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdka0N1cnNvcj47CisjZWxpZiBQTEFURk9STShXUEUpCit1
c2luZyBQbGF0Zm9ybUN1cnNvciA9IHZvaWQqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAppbmRleCAxOTU3MjFiMWZkYS4uZjM2M2ZhZjU1NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBTZWxlY3Rpb25EYXRhOwogfQogdHlwZWRlZiBXZWJDb3JlOjpT
ZWxlY3Rpb25EYXRhKiBEcmFnRGF0YVJlZjsKLSNlbGlmIFBMQVRGT1JNKElPUykKKyNlbGlmIFBM
QVRGT1JNKElPUykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGUzMjU1ZDE5YWQy
Li5jYmVmNzM4ZjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0lt
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTQxLDcg
KzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsKIE9CSkNfQ0xBU1Mg
TlNJbWFnZTsKICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyog
SEJJVE1BUDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjZW5kaWYKIApAQCAtNjQsNyAr
NjQsNyBAQCB0eXBlZGVmIFJldGFpblB0cjxDR0ltYWdlUmVmPiBEcmFnSW1hZ2VSZWY7CiB0eXBl
ZGVmIFJldGFpblB0cjxOU0ltYWdlPiBEcmFnSW1hZ2VSZWY7CiAjZWxpZiBQTEFURk9STShXSU4p
CiB0eXBlZGVmIEhCSVRNQVAgRHJhZ0ltYWdlUmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2Vs
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+IERyYWdJbWFnZVJlZjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3lzdGVtLmgKaW5kZXggZjEyNjhhNjhkMmQuLjFkMTIzNmFhN2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xOTgsNyArMTk4LDcgQEAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBmaWxlc0hhdmVTYW1lVm9sdW1lKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogUmV0
YWluUHRyPENGVVJMUmVmPiBwYXRoQXNVUkwoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIFN0cmlu
ZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJik7CiBDU3RyaW5nIGFwcGxpY2F0aW9u
RGlyZWN0b3J5UGF0aCgpOwogQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcAppbmRleCA3
NzhjYWMyZDk4Yi4uZGRhNjgyZWI4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcApAQCAtMzQsNyArMzQsNyBAQCBNYWluVGhyZWFk
U2hhcmVkVGltZXImIE1haW5UaHJlYWRTaGFyZWRUaW1lcjo6c2luZ2xldG9uKCkKICAgICByZXR1
cm4gaW5zdGFuY2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShXUEUpCiBNYWluVGhyZWFkU2hhcmVkVGltZXI6Ok1haW5UaHJlYWRTaGFy
ZWRUaW1lcigpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWlu
VGhyZWFkU2hhcmVkVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCmluZGV4IDU5MGY2ODk0YWQzLi40OTA3MzBmMTQzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjZW5kaWYKIApAQCAtNTQsNyArNTQs
NyBAQCBwcml2YXRlOgogICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lcigpOwogCiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fZmlyZWRGdW5jdGlvbjsKLSNpZiBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgUnVuTG9vcDo6VGltZXI8TWFpblRo
cmVhZFNoYXJlZFRpbWVyPiBtX3RpbWVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCmluZGV4IGI5NGQ3MGExZjZhLi45YzE0YmEyN2M5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtNjIsNyArNjIsNyBAQCBlbnVtIFNob3VsZFNlcmlh
bGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciB7IERlZmF1bHRTZWxlY3RlZFRleHRUeXBl
LCBJbmNsdQogLy8gRm9yIHdyaXRpbmcgdG8gdGhlIHBhc3RlYm9hcmQuIEdlbmVyYWxseSBzb3J0
ZWQgd2l0aCB0aGUgcmljaGVzdCBmb3JtYXRzIG9uIHRvcC4KIAogc3RydWN0IFBhc3RlYm9hcmRX
ZWJDb250ZW50IHsKLSNpZiAhKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSkKKyNpZiAh
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUpKQogICAgIFdF
QkNPUkVfRVhQT1JUIFBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
flBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZTsK
QEAgLTgwLDYgKzgwLDEwIEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7CiAgICAgU3Ry
aW5nIHRleHQ7CiAgICAgU3RyaW5nIG1hcmt1cDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICBTdHJpbmcgdGV4dDsKKyAgICBTdHJpbmcgbWFya3VwOworI2VuZGlmCiB9OwogCiBzdHJ1
Y3QgUGFzdGVib2FyZFVSTCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRT
dHJhdGVneS5oCmluZGV4IGU4OGE0ODkxMTgzLi45OWQ3NWY0ZWJiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKQEAgLTY5LDEwICs2OSwxOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSA9IDA7CiAgICAgdmlydHVhbCBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdmly
dHVhbCB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
Y29uc3QgU2VsZWN0aW9uRGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxTZWxlY3Rpb25EYXRh
PiByZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAj
ZW5kaWYgLy8gUExBVEZPUk0oR1RLKQorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwg
dm9pZCBnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpID0gMDsKKyAgICB2aXJ0dWFsIFN0
cmluZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNv
bnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRv
UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSA9
IDA7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflBhc3RlYm9hcmRTdHJhdGVn
eSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Q
YXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aAppbmRleCAzN2E3OTE4M2Y2Yy4uZjNlNDMwNDNlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCkBAIC00MCw2ICs0MCwxMCBAQCBPQkpDX0NMQVNT
IE5TUGFzdGVib2FyZDsKIE9CSkNfQ0xBU1MgVUlQYXN0ZWJvYXJkOwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQ7CisjZW5kaWYKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDb2xvcjsKQEAgLTUyLDcgKzU2LDcgQEAgc3RydWN0IFBhc3Rl
Ym9hcmRXZWJDb250ZW50OwogY2xhc3MgUGxhdGZvcm1QYXN0ZWJvYXJkIHsKIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKElPUykg
fHwgUExBVEZPUk0oV1BFKQogICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtUGFzdGVib2FyZCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lc0ZvckRhdGFJbnRl
cmFjdGlvbigpOwogI2VuZGlmCkBAIC0xMDUsNiArMTA5LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFU
Rk9STShHVEspCiAgICAgR3RrQ2xpcGJvYXJkKiBtX2NsaXBib2FyZDsKICNlbmRpZgorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQqIG1fcGFzdGVib2FyZDsKKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1l
UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3Bw
CmluZGV4IDViYWQzY2QwZDU2Li42NGUzNTYzOTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcApAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgVVJMU2NoZW1l
c01hcCYgc2VjdXJlU2NoZW1lcygpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJh
Ym91dCIpOwogICAgICAgICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgiZGF0YSIpOwogICAgICAg
ICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgid3NzIik7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBzZWN1cmVTY2hlbWVzLmdl
dCgpLmFkZCgicmVzb3VyY2UiKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKaW5kZXggNTViNDlhNGRkYzcuLjVkN2FhNDhhNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRn
ZXQuaApAQCAtNjEsNiArNjEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX0d0a0NvbnRhaW5lciBHdGtD
b250YWluZXI7CiB0eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1XaWRnZXQ7CisjZW5kaWYK
KwogdHlwZWRlZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBhZ2VDbGllbnQ7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2ds
aWIvQXVkaW9CdXNHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIv
QXVkaW9CdXNHTGliLmNwcAppbmRleCA3OTFiZmEzOTYzNi4uODE5NzViNjRhNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAK
QEAgLTI3LDExICsyNywxNyBAQAogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisjZGVmaW5l
IEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8iCisj
ZWxpZiBQTEFURk9STShXUEUpCisjZGVmaW5lIEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dl
YmtpdHdwZS9yZXNvdXJjZXMvYXVkaW8iCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29u
c3QgY2hhciogbmFtZSwgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICBHVW5pcXVlUHRyPGNoYXI+
IHBhdGgoZ19zdHJkdXBfcHJpbnRmKCIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8vJXMi
LCBuYW1lKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdfc3RyZHVwX3ByaW50ZihBVURJ
T19HUkVTT1VSQ0VfUEFUSCAiLyVzIiwgbmFtZSkpOwogICAgIEdSZWZQdHI8R0J5dGVzPiBkYXRh
ID0gYWRvcHRHUmVmKGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHBhdGguZ2V0KCksIEdfUkVTT1VS
Q0VfTE9PS1VQX0ZMQUdTX05PTkUsIG51bGxwdHIpKTsKICAgICBBU1NFUlQoZGF0YSk7CiAgICAg
cmV0dXJuIGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShnX2J5dGVzX2dldF9kYXRhKGRh
dGEuZ2V0KCksIG51bGxwdHIpLCBnX2J5dGVzX2dldF9zaXplKGRhdGEuZ2V0KCkpLCBmYWxzZSwg
c2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0Zp
bGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwCmluZGV4IDZmYTNlYTc3MWYzLi44M2QzMmUxMzhmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAgLTIxMyw2ICsyMTMs
OSBAQCBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQogICAgIGlmICghY2FjaGVkUGF0aC5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBhdGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJ
UiwgIndwZSIsIG51bGxwdHIpKTsKKyNlbGlmIFBMQVRGT1JNKEdUSykKICNpZiBPUyhXSU5ET1dT
KQogICAgIEhNT0RVTEUgaG1vZHVsZSA9IDA7CiAgICAgR2V0TW9kdWxlSGFuZGxlRXhBKEdFVF9N
T0RVTEVfSEFORExFX0VYX0ZMQUdfRlJPTV9BRERSRVNTLCByZWludGVycHJldF9jYXN0PGNoYXIq
PihzaGFyZWRSZXNvdXJjZXNQYXRoKSwgJmhtb2R1bGUpOwpAQCAtMjIyLDYgKzIyNSw3IEBAIENT
dHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAjZWxzZQogICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGRhdGFQYXRoKGdfYnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3ZWJraXRndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HLCBOVUxMKSk7CiAjZW5kaWYKKyNlbmRpZgogCiAgICAgY2Fj
aGVkUGF0aCA9IGRhdGFQYXRoLmdldCgpOwogICAgIHJldHVybiBjYWNoZWRQYXRoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
aW5kZXggOTExNGU3NmM3NTkuLjJhY2NmYWQxNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKQEAgLTM2LDcgKzM2LDcg
QEAKICNpbmNsdWRlIDxPcGVuR0wvZ2wuaD4KICNlbGlmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRl
ICJPcGVuR0xFU1NoaW1zLmgiCi0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICNpZiBVU0UoT1BFTkdMX0VTXzIpCiAjaW5jbHVkZSA8R0xF
UzIvZ2wyLmg+CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHAKaW5kZXggNzBmNTg3MzkyZjYuLmMxNWJlYzVlOWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTEyMCw3ICsxMjAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZVNoYXJpbmdD
b250ZXh0KFBsYXRmb3JtRGlzcGxheSYgZGlzcAogICAgIH0KICNlbmRpZgogCi0jaWYgVVNFKEVH
TCkgfHwgUExBVEZPUk0oV0FZTEFORCkKKyNpZiBVU0UoRUdMKSB8fCBQTEFURk9STShXQVlMQU5E
KSB8fCBQTEFURk9STShXUEUpCiAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVH
TDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoZGlzcGxheSkpCiAgICAgICAgIHJldHVybiBXVEZNb3Zl
KGVnbENvbnRleHQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dMQ29udGV4dC5oCmluZGV4IDJjMGVhMjdlMTkzLi4wNDY5ZWI1MzNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKQEAgLTI1LDcgKzI1LDEzIEBA
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIEZJWE1FOiBGaW5kIHNvbWUgd2F5IHRvIGRl
ZHVjZSB0aGlzLgorI2RlZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0u
aD4KKyNlbHNlCiAjaW5jbHVkZSAiZWdscGxhdGZvcm0uaCIKKyNlbmRpZgogdHlwZWRlZiBFR0xO
YXRpdmVXaW5kb3dUeXBlIEdMTmF0aXZlV2luZG93VHlwZTsKICNlbHNlCiB0eXBlZGVmIHVpbnQ2
NF90IEdMTmF0aXZlV2luZG93VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDdkODBkNWI0NWI0Li5iMmI3OTUy
NTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oCkBAIC02MCw3ICs2MCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogT0JKQ19DTEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwotI2VsaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pCisjZWxpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdJTl9DQUlSTykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgR0x1aW50OwogI2VuZGlmCiAKQEAgLTEzNzMsNyArMTM3Myw3IEBAIHByaXZhdGU6CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFwRm9yU2hhZGVy
czsKIAotI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pKSAmJiBVU0UoT1BFTkdM
X0VTXzIpKQorI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JN
KFdQRSkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMz
RE9wZW5HTEVTOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0xFUz4gbV9l
eHRlbnNpb25zOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL09wZW5HTEVTU2hpbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L09wZW5HTEVTU2hpbXMuaAppbmRleCBiNGU5NTE1NzIxNy4uYWI3YzZiOGYzOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKQEAgLTI2
LDcgKzI2LDcgQEAKICNpZm5kZWYgT3BlbkdMRVNTaGltc19oCiAjZGVmaW5lIE9wZW5HTEVTU2hp
bXNfaAogCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgZ2xCaW5kRnJh
bWVidWZmZXJFWFQgZ2xCaW5kRnJhbWVidWZmZXIKICNkZWZpbmUgZ2xGcmFtZWJ1ZmZlclRleHR1
cmUyREVYVCBnbEZyYW1lYnVmZmVyVGV4dHVyZTJECiAjZGVmaW5lIGdsQmluZFJlbmRlcmJ1ZmZl
ckVYVCBnbEJpbmRSZW5kZXJidWZmZXIKQEAgLTQ1LDYgKzQ1LDcgQEAKICNkZWZpbmUgZ2xJc0Zy
YW1lYnVmZmVyRVhUIGdsSXNGcmFtZWJ1ZmZlcgogI2RlZmluZSBnbEdlbmVyYXRlTWlwbWFwRVhU
IGdsR2VuZXJhdGVNaXBtYXAKICNkZWZpbmUgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQgR0xfREVQ
VEhfQVRUQUNITUVOVAorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMF9FWFQgR0xfQ09MT1Jf
QVRUQUNITUVOVDAKICNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfQ09NUExFVEVfRVhUIEdMX0ZSQU1F
QlVGRkVSX0NPTVBMRVRFCiAjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0VYVCBHTF9GUkFNRUJVRkZF
UgogI2RlZmluZSBHTF9ERVBUSDI0X1NURU5DSUw4X0VYVCBHTF9ERVBUSDI0X1NURU5DSUw4X09F
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAKaW5kZXggNjdlZmJjZWI4YjMuLjFiNzE5NTRmNTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTQy
LDYgKzQyLDEwIEBACiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V2luLmgiCiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNlbmRpZgpAQCAt
MTAwLDYgKzEwNCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9y
bURpc3BsYXk6OmNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UGxhdGZvcm1EaXNwbGF5WDExPihudWxscHRyKTsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVdQRT4o
KTsKKyNlbmRpZgorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
RGlzcGxheS5oCmluZGV4IGY3NjRjMmQ0NTFmLi5jYjVmYTFlZjMwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKQEAgLTU0LDYg
KzU0LDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgV2luZG93cywKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgV1BFLAorI2VuZGlmCiAgICAgfTsKIAog
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCAxYzFjZWMy
NmFjZi4uOWZlNzU1ZmM1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0yMDQsNiArMjA0LDEzIEBAIHN0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRl
eHQoUGxhdGZvcm1EaXNwbGF5CiAgICAgaWYgKGVnbEJpbmRBUEkoZ0VHTEFQSVZlcnNpb24pID09
IEVHTF9GQUxTRSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgaWYgKHBsYXRmb3JtRGlzcGxheS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBl
OjpXUEUpIHsKKyAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGNyZWF0ZVdQRUNvbnRleHQocGxh
dGZvcm1EaXNwbGF5KSkKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKyNlbmRp
ZgorCiAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlU3VyZmFjZWxlc3NDb250ZXh0KHBsYXRmb3Jt
RGlzcGxheSk7CiAgICAgaWYgKCFjb250ZXh0KSB7CiAjaWYgUExBVEZPUk0oWDExKQpAQCAtMjUx
LDYgKzI1OCw5IEBAIEdMQ29udGV4dEVHTDo6fkdMQ29udGV4dEVHTCgpCiAjaWYgUExBVEZPUk0o
V0FZTEFORCkKICAgICBkZXN0cm95V2F5bGFuZFdpbmRvdygpOwogI2VuZGlmCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIGRlc3Ryb3lXUEVUYXJnZXQoKTsKKyNlbmRpZgogfQogCiBib29sIEdMQ29u
dGV4dEVHTDo6Y2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCmluZGV4IGU1YTMz
NTk3ZDdiLi45YTAzM2ZlYjJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApAQCAtMzIsNiArMzIsMTAgQEAKIHN0cnVjdCB3
bF9lZ2xfd2luZG93OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5V1BFLmgiCisjZW5kaWYKKwogdHlwZWRlZiB2b2lkICpFR0xDb25maWc7CiB0
eXBlZGVmIHZvaWQgKkVHTENvbnRleHQ7CiB0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7CkBAIC03
Myw2ICs3Nyw5IEBAIHByaXZhdGU6CiAgICAgR0xDb250ZXh0RUdMKFBsYXRmb3JtRGlzcGxheSYs
IEVHTENvbnRleHQsIEVHTFN1cmZhY2UsIFdsVW5pcXVlUHRyPHN0cnVjdCB3bF9zdXJmYWNlPiYm
LCBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdyopOwogICAgIHZvaWQgZGVzdHJveVdheWxhbmRXaW5kb3co
KTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGRlc3Ryb3lXUEVUYXJnZXQo
KTsKKyNlbmRpZgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNy
ZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlLCBQbGF0Zm9ybURpc3BsYXkmLCBF
R0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVBidWZmZXJDb250ZXh0KFBsYXRmb3JtRGlzcGxh
eSYsIEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKQEAgLTg1LDYgKzkyLDkg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3Jl
YXRlV2F5bGFuZENvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29u
dGV4dCA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBFR0xTdXJmYWNlIGNyZWF0ZVdpbmRvd1N1cmZh
Y2VXYXlsYW5kKEVHTERpc3BsYXksIEVHTENvbmZpZywgR0xOYXRpdmVXaW5kb3dUeXBlKTsKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29u
dGV4dEVHTD4gY3JlYXRlV1BFQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNo
YXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CisjZW5kaWYKIAogICAgIHN0YXRpYyBib29sIGdldEVH
TENvbmZpZyhFR0xEaXNwbGF5LCBFR0xDb25maWcqLCBFR0xTdXJmYWNlVHlwZSk7CiAKQEAgLTk4
LDYgKzEwOCw5IEBAIHByaXZhdGU6CiAgICAgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+
IG1fd2xTdXJmYWNlOwogICAgIHN0cnVjdCB3bF9lZ2xfd2luZG93KiBtX3dsV2luZG93IHsgbnVs
bHB0ciB9OwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gbV93cGVUYXJnZXQ7CisjZW5k
aWYKICNpZiBVU0UoQ0FJUk8pCiAgICAgY2Fpcm9fZGV2aWNlX3QqIG1fY2Fpcm9EZXZpY2UgeyBu
dWxscHRyIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjlmM2Y0MmQ3NjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJH
TENvbnRleHRFR0wuaCIKKworI2lmIFVTRShFR0wpICYmIFBMQVRGT1JNKFdQRSkKKworI2luY2x1
ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlV1BFQ29udGV4dChQ
bGF0Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4
dCkKK3sKKyAgICBhdXRvIG9mZnNjcmVlblRhcmdldCA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxh
eVdQRT4ocGxhdGZvcm1EaXNwbGF5KS5jcmVhdGVFR0xPZmZzY3JlZW5UYXJnZXQoKTsKKyAgICBh
dXRvIGNvbnRleHQgPSBjcmVhdGVXaW5kb3dDb250ZXh0KG9mZnNjcmVlblRhcmdldC0+bmF0aXZl
V2luZG93KCksIHBsYXRmb3JtRGlzcGxheSwgc2hhcmluZ0NvbnRleHQpOworICAgIGlmIChjb250
ZXh0KQorICAgICAgICBjb250ZXh0LT5tX3dwZVRhcmdldCA9IFdURk1vdmUob2Zmc2NyZWVuVGFy
Z2V0KTsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKwordm9pZCBHTENvbnRleHRFR0w6OmRlc3Ry
b3lXUEVUYXJnZXQoKQoreworICAgIG1fd3BlVGFyZ2V0ID0gbnVsbHB0cjsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEVHTCkgJiYgUExBVEZPUk0oV1BFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CmluZGV4IDJiZjExZWExYmQ3Li4yOTE3MzQzNmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNTksNyArNTksOSBAQAog
I2VuZGlmCiAKICNpZiBVU0UoRUdMKQorI2lmICFQTEFURk9STShXUEUpCiAjaW5jbHVkZSAiR0xD
b250ZXh0RUdMLmgiCisjZW5kaWYKICNpbmNsdWRlIDxnc3QvZ2wvZWdsL2dzdGdsZGlzcGxheV9l
Z2wuaD4KICNlbmRpZgogCkBAIC02OSw2ICs3MSw4IEBACiAKICNpZiBQTEFURk9STShXQVlMQU5E
KQogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdheWxhbmQuaCIKKyNlbGlmIFBMQVRGT1JNKFdQ
RSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKICNlbmRpZgogCiAvLyBnc3RnbGFw
aS5oIG1heSBpbmNsdWRlIGVnbHBsYXRmb3JtLmggYW5kIGl0IGluY2x1ZGVzIFguaCwgd2hpY2gK
QEAgLTQzOSw2ICs0NDMsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjplbnN1cmVHc3RHTENvbnRleHQoKQogICAgICAgICAgICAgbV9nbERpc3BsYXkgPSBHU1RfR0xf
RElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXkoZG93bmNhc3Q8
UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgQVNTRVJUKGlzPFBsYXRmb3JtRGlz
cGxheVdQRT4oc2hhcmVkRGlzcGxheSkpOworICAgICAgICBtX2dsRGlzcGxheSA9IEdTVF9HTF9E
SVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQ
bGF0Zm9ybURpc3BsYXlXUEU+KHNoYXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOworI2VuZGlm
CisKICAgICAgICAgQVNTRVJUKG1fZ2xEaXNwbGF5KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IGM3YTBlYzdmMjUyLi4xMjY1
ZTAwMWQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24u
Y3BwCkBAIC0yMzYsNiArMjM2LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRl
eHR1cmUoKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaWYgVVNFKE9QRU5HTF9FU18y
KQorICAgIDo6Z2xGbHVzaCgpOworI2VuZGlmCiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9j
b21wb3NpdG9yVGV4dHVyZSk7CiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9pbnRlcm1lZGlh
dGVUZXh0dXJlKTsKICAgICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zi
byk7CkBAIC0zOTgsNyArNDAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tWYXJ5
aW5nc1BhY2tpbmcoUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXQKICAgICAgICAg
dmFyaWFibGVzLnB1c2hfYmFjayh2YXJ5aW5nU3ltYm9sKTsKIAogICAgIEdDM0RpbnQgbWF4VmFy
eWluZ1ZlY3RvcnMgPSAwOwotI2lmICFQTEFURk9STShJT1MpICYmICEoKFBMQVRGT1JNKFdJTikg
fHwgUExBVEZPUk0oR1RLKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAhUExBVEZPUk0oSU9T
KSAmJiAhKChQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkg
JiYgVVNFKE9QRU5HTF9FU18yKSkKICAgICBHQzNEaW50IG1heFZhcnlpbmdGbG9hdHMgPSAwOwog
ICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9NQVhfVkFSWUlOR19GTE9BVFMsICZtYXhWYXJ5aW5nRmxv
YXRzKTsKICAgICBtYXhWYXJ5aW5nVmVjdG9ycyA9IG1heFZhcnlpbmdGbG9hdHMgLyA0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kM2MzN2JkZjhhYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNw
cApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJY29uLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSWNvbjo6fkljb24oKQoreworfQorCit2b2lkIEljb246OnBh
aW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit7Cit9CisKK1JlZlB0cjxJ
Y29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWFhMzBhODU2NmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgi
CisKKyNpbmNsdWRlIDxjc3RkaW8+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRt
YXBJbWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SW1h
Z2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSkKK3sK
KyAgICBzdGQ6OmZwcmludGYoc3RkZXJyLCAiV0FSTklORzogdHJ5aW5nIHRvIGxvYWQgcGxhdGZv
cm0gcmVzb3VyY2UgJyVzJ1xuIiwgcmVzb3VyY2UpOworICAgIHJldHVybiBCaXRtYXBJbWFnZTo6
Y3JlYXRlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkNWJiMWQxZjQxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1Bs
YXRmb3JtRGlzcGxheVdQRS5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgiCisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRl
ICJHTENvbnRleHRFR0wuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8RUdML2Vn
bC5oPgorI2luY2x1ZGUgPHdwZS9yZW5kZXJlci1iYWNrZW5kLWVnbC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6UGxhdGZvcm1EaXNwbGF5V1BFKCkgPSBk
ZWZhdWx0OworCitQbGF0Zm9ybURpc3BsYXlXUEU6On5QbGF0Zm9ybURpc3BsYXlXUEUoKQorewor
ICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1EaXNwbGF5V1BFOjppbml0aWFsaXplKGludCBob3N0RmQpCit7CisgICAgbV9i
YWNrZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX2NyZWF0ZShob3N0RmQpOworCisgICAg
bV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheSh3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZ2V0
X25hdGl2ZV9kaXNwbGF5KG1fYmFja2VuZCkpOworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdM
X05PX0RJU1BMQVkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJQbGF0Zm9ybURpc3BsYXlX
UEU6IGNvdWxkIG5vdCBjcmVhdGUgdGhlIEVHTCBkaXNwbGF5LlxuIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCk7
Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gUGxh
dGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVu
dCwgaW50IGhvc3RGZCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxFR0xUYXJnZXQ+
KCp0aGlzLCBjbGllbnQsIGhvc3RGZCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURp
c3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gUGxhdGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVF
R0xPZmZzY3JlZW5UYXJnZXQoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTE9m
ZnNjcmVlblRhcmdldD4oKnRoaXMpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdl
dDo6RUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSwgUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQgaG9zdEZkKQorICAgIDog
bV9kaXNwbGF5KGRpc3BsYXkpCisgICAgLCBtX2NsaWVudChjbGllbnQpCit7CisgICAgbV9iYWNr
ZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jcmVhdGUoaG9zdEZkKTsKKwor
ICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jbGllbnQg
c19jbGllbnQgPSB7CisgICAgICAgIC8vIGZyYW1lX2NvbXBsZXRlCisgICAgICAgIFtdKHZvaWQq
IGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHN1cmZhY2UgPSAqcmVpbnRlcnBy
ZXRfY2FzdDxFR0xUYXJnZXQqPihkYXRhKTsKKyAgICAgICAgICAgIHN1cmZhY2UubV9jbGllbnQu
ZnJhbWVDb21wbGV0ZSgpOworICAgICAgICB9LAorICAgIH07CisgICAgd3BlX3JlbmRlcmVyX2Jh
Y2tlbmRfZWdsX3RhcmdldF9zZXRfY2xpZW50KG1fYmFja2VuZCwgJnNfY2xpZW50LCB0aGlzKTsK
K30KKworUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6On5FR0xUYXJnZXQoKQoreworICAg
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZGVzdHJveShtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0Ojppbml0aWFsaXplKGNvbnN0IElu
dFNpemUmIHNpemUpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9pbml0
aWFsaXplKG1fYmFja2VuZCwgbV9kaXNwbGF5Lm1fYmFja2VuZCwKKyAgICAgICAgc3RkOjptYXgo
MCwgc2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCitFR0xO
YXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpuYXRpdmVXaW5k
b3coKSBjb25zdAoreworICAgIHJldHVybiB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0
X2dldF9uYXRpdmVfd2luZG93KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5
V1BFOjpFR0xUYXJnZXQ6OnJlc2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9y
ZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfcmVzaXplKG1fYmFja2VuZCwgc3RkOjptYXgoMCwg
c2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCit2b2lkIFBs
YXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpmcmFtZVdpbGxSZW5kZXIoKQoreworICAgIHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZnJhbWVfd2lsbF9yZW5kZXIobV9iYWNrZW5k
KTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVSZW5kZXJl
ZCgpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV9yZW5kZXJl
ZChtX2JhY2tlbmQpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdl
dDo6RUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSkK
K3sKKyAgICBtX3RhcmdldCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2NyZWF0ZSgpOworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2luaXRpYWxpemUobV90YXJnZXQsIGRpc3BsYXkubV9iYWNrZW5kKTsKK30KKworUGxhdGZv
cm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ6On5FR0xPZmZzY3JlZW5UYXJnZXQoKQor
eworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2Rlc3Ryb3ko
bV90YXJnZXQpOworfQorCitFR0xOYXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6
RUdMT2Zmc2NyZWVuVGFyZ2V0OjpuYXRpdmVXaW5kb3coKSBjb25zdAoreworICAgIHJldHVybiB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRv
dyhtX3RhcmdldCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBM
QVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uM2Y4Y2ZkOTk4ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKQEAgLTAsMCArMSwx
MDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFBsYXRmb3JtRGlzcGxheVdQRV9oCisjZGVmaW5lIFBsYXRmb3JtRGlzcGxheVdQRV9oCisK
KyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKworI2Rl
ZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKworc3RydWN0IHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xf
dGFyZ2V0Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dDsKK2NsYXNzIEludFNp
emU7CisKK2NsYXNzIFBsYXRmb3JtRGlzcGxheVdQRSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybURp
c3BsYXkgeworcHVibGljOgorICAgIFBsYXRmb3JtRGlzcGxheVdQRSgpOworICAgIHZpcnR1YWwg
flBsYXRmb3JtRGlzcGxheVdQRSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKGludCk7CisKKyAg
ICBjbGFzcyBFR0xUYXJnZXQgeworICAgIHB1YmxpYzoKKyAgICAgICAgY2xhc3MgQ2xpZW50IHsK
KyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lQ29tcGxldGUo
KSA9IDA7CisgICAgICAgIH07CisKKyAgICAgICAgRUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlz
cGxheVdQRSYsIENsaWVudCYsIGludCk7CisgICAgICAgIH5FR0xUYXJnZXQoKTsKKworICAgICAg
ICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBFR0xOYXRpdmVXaW5k
b3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OworCisgICAgICAgIHZvaWQgcmVzaXplKGNvbnN0
IEludFNpemUmKTsKKworICAgICAgICB2b2lkIGZyYW1lV2lsbFJlbmRlcigpOworICAgICAgICB2
b2lkIGZyYW1lUmVuZGVyZWQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFBsYXRm
b3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OworICAgICAgICBDbGllbnQmIG1fY2xpZW50OworICAg
ICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldCogbV9iYWNrZW5kOwor
ICAgIH07CisKKyAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYpOworICAg
ICAgICB+RUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKKyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlw
ZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVjdCB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldCogbV90YXJnZXQ7CisgICAg
fTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUYXJnZXQ+IGNyZWF0ZUVHTFRhcmdldChFR0xU
YXJnZXQ6OkNsaWVudCYsIGludCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVHTE9mZnNjcmVlblRh
cmdldD4gY3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKK3ByaXZhdGU6CisgICAgVHlwZSB0
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXUEU7
IH0KKworICAgIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2wqIG1fYmFja2VuZDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19QTEFU
Rk9STV9ESVNQTEFZKFBsYXRmb3JtRGlzcGxheVdQRSwgV1BFKQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oV1BFKQorCisjZW5kaWYgLy8gUGxhdGZvcm1EaXNwbGF5V1BFX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmQ0ZGM5NTVmOTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ3Vyc29yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBDdXJz
b3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXpl
ZFN0cmluZ3NXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0
cmluZ3NXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NzVk
N2ZjNTJiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9M
b2NhbGl6ZWRTdHJpbmdzV1BFLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiX1NlYXJj
aCB0aGUgV2ViIik7Cit9CisKK1N0cmluZyB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlVuYWNjZXB0YWJsZSBUTFMgY2VydGlmaWNh
dGUiKTsKK30KKworU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7Cit9CisKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzc4MDA4M2ZkMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcApAQCAt
MCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgi
CisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmRTdHJh
dGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9h
cmQ+KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigp
OworfQorCitQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKK3sKK30KKworYm9vbCBQYXN0ZWJvYXJk
OjpoYXNEYXRhKCkKK3sKKyAgICAvLyBGSVhNRTogR2V0dGluZyB0aGUgbGlzdCBvZiB0eXBlcyBm
b3IgdGhpcyBpcyB3YXN0ZWZ1bC4gRG8gdGhpcyBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICBWZWN0
b3I8U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4gIXR5cGVzLmlzRW1wdHkoKTsK
K30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQoreworICAgIFZlY3RvcjxT
dHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+Z2V0VHlwZXModHlwZXMpOworICAgIHJldHVybiB0eXBlczsKK30KKworU3RyaW5nIFBh
c3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9t
UGFzdGVib2FyZCgwLCB0eXBlKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKHR5cGUs
IHRleHQpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKK3sKK30KKwordm9pZCBQYXN0
ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OnJl
YWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKK3sKKyAgICB0ZXh0LnRleHQgPSBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9tUGFzdGVi
b2FyZCgwLCAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Iik7Cit9CisKK3ZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkVVJMJiB1
cmwpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT53
cml0ZVRvUGFzdGVib2FyZCgidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IiwgdXJsLnVybC5zdHJp
bmcoKSk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVUcnVzdHdvcnRoeVdlYlVSTHNQYm9h
cmRUeXBlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJikKK3sKK30K
Kwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29u
dGVudCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PndyaXRlVG9QYXN0ZWJvYXJkKGNvbnRlbnQpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJv
YXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30K
KworYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZU1hcmt1cChjb25zdCBTdHJpbmcmKQorewor
fQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
U21hcnRSZXBsYWNlT3B0aW9uKQoreworICAgIHdyaXRlU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJz
ZXQ9dXRmLTgiLCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBhc3RlYm9hcmQo
Y29uc3QgUGFzdGVib2FyZCYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRX
UEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhNGYzOGUx
MWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJkc0Nv
bXBhdGliaWxpdHkpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKKyAgICBtX3R5
cGUgPSB0eXBlOworICAgIGlmIChiYWNrd2FyZHNDb21wYXRpYmlsaXR5KQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAg
ICAgIG1fdGV4dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5n
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKCk7Cisg
ICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAgICB9Cit9CisKK2Jvb2wgUGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlm
aWVyU3RhdGUoYm9vbCYsIGJvb2wmLCBib29sJiwgYm9vbCYpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0
Zm9ybVBhc3RlYm9hcmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtUGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjlmNDM0NmEwMjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtUGFz
dGVib2FyZC5oIgorI2luY2x1ZGUgPHdwZS9wYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworI2luY2x1ZGUg
PG1hcD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRm
b3JtUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0
ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30K
KworUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoKQorICAgIDogbV9wYXN0
ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9w
YXN0ZWJvYXJkKTsKK30KKwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmdldFR5cGVzKFZlY3Rv
cjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3Zl
Y3RvciBwYXN0ZWJvYXJkVHlwZXMgPSB7IG51bGxwdHIsIDAgfTsKKyAgICB3cGVfcGFzdGVib2Fy
ZF9nZXRfdHlwZXMobV9wYXN0ZWJvYXJkLCAmcGFzdGVib2FyZFR5cGVzKTsKKworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwYXN0ZWJvYXJkVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgYXV0byYgdHlwZVN0cmluZyA9IHBhc3RlYm9hcmRUeXBlcy5zdHJpbmdzW2ldOworICAgICAg
ICB0eXBlcy5hcHBlbmQoU3RyaW5nKHR5cGVTdHJpbmcuZGF0YSwgdHlwZVN0cmluZy5sZW5ndGgp
KTsKKyAgICB9CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfdmVjdG9yX2ZyZWUoJnBhc3Rl
Ym9hcmRUeXBlcyk7Cit9CisKK1N0cmluZyBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRTdHJpbmco
aW50LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0
cmluZyBzdHJpbmc7CisgICAgd3BlX3Bhc3RlYm9hcmRfZ2V0X3N0cmluZyhtX3Bhc3RlYm9hcmQs
IHR5cGUudXRmOCgpLmRhdGEoKSwgJnN0cmluZyk7CisKKyAgICBTdHJpbmcgcmV0dXJuVmFsdWUo
c3RyaW5nLmRhdGEsIHN0cmluZy5sZW5ndGgpOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X2ZyZWUoJnN0cmluZyk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQorCit2b2lkIFBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQp
Cit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgcGxhaW5UZXh0W10gPSAidGV4dC9wbGFpbjtjaGFy
c2V0PXV0Zi04IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBodG1sVGV4dFtdID0gInRleHQvaHRt
bDtjaGFyc2V0PXV0Zi04IjsKKworICAgIENTdHJpbmcgdGV4dFN0cmluZyA9IGNvbnRlbnQudGV4
dC51dGY4KCk7CisgICAgQ1N0cmluZyBtYXJrdXBTdHJpbmcgPSBjb250ZW50Lm1hcmt1cC51dGY4
KCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsK
KyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICAgICAgeyB7
IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJv
YXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCBwbGFpblRleHQsIHN0cmxlbihw
bGFpblRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNb
MF0uc3RyaW5nLCB0ZXh0U3RyaW5nLmRhdGEoKSwgdGV4dFN0cmluZy5sZW5ndGgoKSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzFdLnR5cGUsIGh0bWxUZXh0
LCBzdHJsZW4oaHRtbFRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6
ZSgmcGFpcnNbMV0uc3RyaW5nLCBtYXJrdXBTdHJpbmcuZGF0YSgpLCBtYXJrdXBTdHJpbmcubGVu
Z3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFp
cnMsIDIgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dyaXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7
CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0udHlwZSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBdLnN0cmluZyk7CisgICAgd3BlX3Bh
c3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzFdLnR5cGUpOworICAgIHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ19mcmVlKCZwYWlyc1sxXS5zdHJpbmcpOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVi
b2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sK
KyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAg
ICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9w
YXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCB0eXBlLnV0ZjgoKS5k
YXRhKCksIHR5cGUudXRmOCgpLmxlbmd0aCgpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdf
aW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCBzdHJpbmcudXRmOCgpLmRhdGEoKSwgc3RyaW5n
LnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAg
bWFwID0geyBwYWlycywgMSB9OworCisgICAgd3BlX3Bhc3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJv
YXJkLCAmbWFwKTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS50
eXBlKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmUwOGViN2RlOGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcApAQCAtMCwwICsxLDc0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorCisjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAyNDsKK30KKworaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdl
dCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gODsKK30KKworYm9vbCBz
Y3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2
NDApOworfQorCitGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDAp
OworfQorCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE5MDc1NzM0ZTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZVdQRS5oIgorCisjaW5jbHVk
ZSAiVXNlckFnZW50U2NyaXB0cy5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFJlbmRlclRoZW1lPiBSZW5k
ZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQoreworICAgIHN0YXRpYyBSZW5kZXJUaGVtZSYg
dGhlbWUgPSBSZW5kZXJUaGVtZVdQRTo6Y3JlYXRlKCkubGVha1JlZigpOworICAgIHJldHVybiB0
aGVtZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZVdQRTo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERl
c2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6ZXh0cmFE
ZWZhdWx0U3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCisjaWYgRU5B
QkxFKFZJREVPKQorU3RyaW5nIFJlbmRlclRoZW1lV1BFOjptZWRpYUNvbnRyb2xzU3R5bGVTaGVl
dCgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbChtZWRpYUNvbnRyb2xzQmFzZVVzZXJBZ2Vu
dFN0eWxlU2hlZXQpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNT
Y3JpcHQoKQoreworICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKKyAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNp
emVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQpKTsKKyAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRp
YUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKKyAgICByZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0
cmluZygpOworfQorI2VuZGlmCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xMjJhMDg5NzgwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBS
ZW5kZXJUaGVtZVdQRV9oCisjZGVmaW5lIFJlbmRlclRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBSZW5kZXJUaGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVt
ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW5kZXJUaGVtZT4gY3JlYXRlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbmRlclRoZW1lV1BFKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIFN0cmluZyBleHRyYURlZmF1bHRTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7Cisj
aWYgRU5BQkxFKFZJREVPKQorICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNo
ZWV0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1NjcmlwdCgp
IG92ZXJyaWRlOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVuZGVyVGhlbWVXUEUoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQs
IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlbmRlclRoZW1lV1BFX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjlmZTVkNGQ4NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVXUEUu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzQnV0dG9ucyhTY3JvbGxiYXImKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU2Nyb2xsYmFy
VGhlbWVXUEU6Omhhc1RodW1iKFNjcm9sbGJhciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6YmFja0J1
dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFy
VGhlbWVXUEU6OmZvcndhcmRCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVjdCgpOworfQor
CitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjp0cmFja1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK1Nj
cm9sbGJhclRoZW1lJiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKQoreworICAgIHN0YXRp
YyBTY3JvbGxiYXJUaGVtZVdQRSB0aGVtZTsKKyAgICByZXR1cm4gdGhlbWU7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dw
ZS9TY3JvbGxiYXJUaGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9s
bGJhclRoZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRk
OGIwMzE2ODYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1Njcm9sbGJhclRoZW1lV1BFLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcm9sbGJhclRoZW1lV1BF
X2gKKyNkZWZpbmUgU2Nyb2xsYmFyVGhlbWVXUEVfaAorCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWVDb21wb3NpdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJU
aGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZSB7CitwdWJsaWM6
CisgICAgU2Nyb2xsYmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U2Nyb2xs
YmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQnV0dG9ucyhT
Y3JvbGxiYXImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVGh1bWIoU2Nyb2xsYmFy
Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIEludFJlY3QgYmFja0J1dHRvblJlY3QoU2Nyb2xs
YmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEludFJlY3QgZm9yd2FyZEJ1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFy
UGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFJl
Y3QgdHJhY2tSZWN0KFNjcm9sbGJhciYsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTY3JvbGxiYXJUaGVt
ZVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTkxNDc3YTQ1OTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdW5kLmgiCisKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgc3lzdGVtQmVlcCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1YWQ5NzczZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcApAQCAtMCwwICsxLDE0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGhlbWVXUEUuaCIKKworI2luY2x1ZGUgIkNvbG9yLmgi
CisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1RoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VGhlbWVXUEU+IHRoZW1lOworICAgIHJldHVybiAmdGhlbWUuZ2V0KCk7Cit9CisKK0xlbmd0
aFNpemUgVGhlbWVXUEU6OmNvbnRyb2xTaXplKENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250Q2FzY2FkZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvcikgY29uc3QKK3sKKyAgICBpZiAoIXpvb21lZFNpemUud2lkdGguaXNJbnRyaW5z
aWNPckF1dG8oKSAmJiAhem9vbWVkU2l6ZS5oZWlnaHQuaXNJbnRyaW5zaWNPckF1dG8oKSkKKyAg
ICAgICAgcmV0dXJuIFRoZW1lOjpjb250cm9sU2l6ZShwYXJ0LCBmb250Q2FzY2FkZSwgem9vbWVk
U2l6ZSwgem9vbUZhY3Rvcik7CisKKyAgICBzd2l0Y2ggKHBhcnQpIHsKKyAgICBjYXNlIENoZWNr
Ym94UGFydDoKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcmV0dXJuIExlbmd0aFNpemUg
eyBMZW5ndGgoMTIsIEZpeGVkKSwgTGVuZ3RoKDEyLCBGaXhlZCkgfTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gVGhlbWU6OmNvbnRyb2xTaXplKHBh
cnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFjdG9yKTsKK30KKwordm9pZCBUaGVt
ZVdQRTo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQg
em9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCkKK3sKKyAgICBzd2l0Y2ggKHBh
cnQpIHsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICAgICAgcGFpbnRDaGVja2JveChzdGF0
ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcGFpbnRSYWRpbyhzdGF0ZXMsIGNvbnRleHQsIHpv
b21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB1c2hCdXR0
b25QYXJ0OgorICAgICAgICBwYWludEJ1dHRvbihzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3Qs
IHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50Q2hlY2tib3goQ29udHJvbFN0YXRl
cyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9v
bWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXplIGNvcm5lcigyLCAyKTsKKyAgICBGbG9hdFJv
dW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJlY3QsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIs
IGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAgIHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRl
ZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQigyMjQsIDIyNCwgMjI0
KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tl
VGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQs
IDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworCisgICAgaWYgKHN0YXRlcy5z
dGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0ZSkgeworICAgICAgICBhdXRvJiBy
ZWN0ID0gcm91bmRlZFJlY3QucmVjdCgpOworCisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7Cisg
ICAgICAgIGNoZWNrZXJQYXRoLm1vdmVUbyhGbG9hdFBvaW50KHJlY3QueCgpICsgMywgcmVjdC5t
YXhZKCkgLSAzKSk7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZExpbmVUbyhGbG9hdFBvaW50KHJl
Y3QubWF4WCgpIC0gMywgcmVjdC55KCkgKyAzKSk7CisKKyAgICAgICAgY29udGV4dC5zZXRTdHJv
a2VUaGlja25lc3MoMik7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig4
NCwgODQsIDg0KSk7CisgICAgICAgIGNvbnRleHQuc3Ryb2tlUGF0aChjaGVja2VyUGF0aCk7Cisg
ICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludFJhZGlvKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZEVsbGlwc2Uoem9vbWVkUmVjdCk7
CisKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihtYWtlUkdCKDIyNCwgMjI0LCAyMjQpKTsKKyAg
ICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25l
c3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsK
KyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisKKyAgICBpZiAoc3RhdGVzLnN0YXRlcygp
ICYgQ29udHJvbFN0YXRlczo6Q2hlY2tlZFN0YXRlKSB7CisgICAgICAgIEZsb2F0UmVjdCBjaGVj
a2VyUmVjdCA9IHpvb21lZFJlY3Q7CisgICAgICAgIGNoZWNrZXJSZWN0LmluZmxhdGUoLTMpOwor
CisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZEVsbGlw
c2UoY2hlY2tlclJlY3QpOworCisgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKG1ha2VSR0Io
ODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKGNoZWNrZXJQYXRoKTsKKyAg
ICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50QnV0dG9uKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3JuZXIoMiwgMik7CisgICAgRmxvYXRSb3VuZGVkUmVj
dCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBjb3JuZXIsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIp
OworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0KTsK
KworICAgIENvbG9yIGZpbGxDb2xvciA9IHN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6
OlByZXNzZWRTdGF0ZSA/IG1ha2VSR0IoMjQ0LCAyNDQsIDI0NCkgOiBtYWtlUkdCKDIyNCwgMjI0
LCAyMjQpOworICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGZpbGxDb2xvcik7CisgICAgY29udGV4
dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDEpOwor
ICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQsIDk0KSk7CisgICAgY29u
dGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kZjA4MWIzYTdhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUaGVtZVdQRV9o
CisjZGVmaW5lIFRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlRoZW1lLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVGhlbWVXUEUgOiBwdWJsaWMgVGhlbWUgeworcHVibGljOgorICAg
IFRoZW1lV1BFKCkgeyB9CisgICAgdmlydHVhbCB+VGhlbWVXUEUoKSB7IH0KKworICAgIHZpcnR1
YWwgTGVuZ3RoU2l6ZSBjb250cm9sU2l6ZShDb250cm9sUGFydCwgY29uc3QgRm9udENhc2NhZGUm
LCBjb25zdCBMZW5ndGhTaXplJiwgZmxvYXQpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVh
bCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxvYXQpIG92
ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZvaWQgcGFpbnRDaGVja2JveChDb250cm9sU3RhdGVz
JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworICAgIHZvaWQg
cGFpbnRSYWRpbyhDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgZmxvYXQpOworICAgIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYsIEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFRoZW1lV1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjYyZGYwY2M2YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2lkZ2V0LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKK3sK
KyAgICBpbml0KHdpZGdldCk7Cit9CisKK1dpZGdldDo6fldpZGdldCgpCit7CisgICAgQVNTRVJU
KCFwYXJlbnQoKSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNl
dEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fZnJhbWUgPSByZWN0Owor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ludFJlY3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZyYW1lOworfQorCit2b2lkIFdpZGdldDo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzaG93KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6aGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZmJlNGFhY2U5OGQuLjQwZmE5NzZhZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIw
MTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgd2Via2l0LWRldiB0aHJlYWQ6CisgICAgICAgIGh0dHBzOi8vbGlzdHMu
d2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8yMDE3LUFwcmlsLzAyODkyMy5odG1sCisK
KyAgICAgICAgRXhpc3RpbmcgZmlsZXMgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0o
V1BFKSBidWlsZCBndWFyZHMgb3Igb3RoZXIKKyAgICAgICAgV1BFLXNwZWNpZmljIGFkZGl0aW9u
cyAoZS5nLiBwYXN0ZWJvYXJkIHN1cHBvcnQpLgorICAgICAgICBJbi1maWxlIGNoYW5nZXMgcmVt
b3ZlZCBmcm9tIHRoaXMgQ2hhbmdlTG9nIGVudHJ5IGZvciBicmV2aXR5LgorCisgICAgICAgICog
UGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwOgorICAgICAgICAqIFBsYXRmb3Jt
V1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmct
aGVhZGVycy5wbDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICog
U2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIv
U2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy93cGUvV2Vi
S2l0Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwOgorICAgICAgICAqIFNoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3Au
aDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmg6CisgICAgICAg
ICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJL
ZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaDoK
KyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oOgorICAgICAgICAqIFNoYXJl
ZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICog
U2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC93
cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL05hdGl2ZVdl
YlRvdWNoRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50
V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5m
by5oLgorICAgICAgICAqIFNoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcDog
QWRkZWQuCisgICAgICAgICogU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElD
YXN0V1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIv
U2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL0Nv
bXBvc2l0aW5nTWFuYWdlclByb3h5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3Np
dGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxH
ZXN0dXJlQ29udHJvbGxlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHA6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVj
dG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNw
ZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHA6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHA6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYXN0ZWJvYXJkUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nl
c3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dl
YlByZWZlcmVuY2VzV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQ
RS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8u
aC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGll
bnRXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dw
ZS9XZWJQb3B1cE1lbnVXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01h
bmFnZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJ
bmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFn
ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5o
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlX
UEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZv
LmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oLgorICAgICAgICAqIFdlYlByb2Nlc3Mvd3BlL1dl
YlByb2Nlc3NNYWluV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViS2l0MlBy
ZWZpeC5oLgorICAgICAgICAqIGNvbmZpZy5oOgorICAgICAgICAqIHdwZS93cGUtd2Via2l0LnBj
LmluOiBBZGRlZC4KKwogMjAxNy0wNC0yMCAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5
YW5kZXgucnU+CiAKICAgICAgICAgW2NtYWtlXSBEZWZpbmUgRk9SV0FSRElOR19IRUFERVJTX0RJ
UiBpbiBXZWJLaXRGUyBhbmQgdXNlIGl0IGV2ZXJ5d2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAppbmRleCAxNDMyOWI5Mzg5
MS4uOGQxMDFjZjRmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9n
bGliL0dTb2NrZXRNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Z2xpYi9HU29ja2V0TW9uaXRvci5jcHAKQEAgLTUxLDYgKzUxLDkgQEAgdm9pZCBHU29ja2V0TW9u
aXRvcjo6c3RhcnQoR1NvY2tldCogc29ja2V0LCBHSU9Db25kaXRpb24gY29uZGl0aW9uLCBSdW5M
b29wJiBydW4KICAgICBnX3NvdXJjZV9zZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgIltXZWJLaXRd
IFNvY2tldCBtb25pdG9yIik7CiAgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwog
ICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3NvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2Fz
dDxHU291cmNlRnVuYz4oc29ja2V0U291cmNlQ2FsbGJhY2spLCB0aGlzLCBudWxscHRyKTsKKyNp
ZiBQTEFURk9STShXUEUpCisgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdldCgp
LCBHX1BSSU9SSVRZX0hJR0ggKyAzMCk7CisjZW5kaWYKICAgICBnX3NvdXJjZV9hdHRhY2gobV9z
b3VyY2UuZ2V0KCksIHJ1bkxvb3AubWFpbkNvbnRleHQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1X
UEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg4NGYwZTRl
ZTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UK
QEAgLTAsMCArMSw0NzAgQEAKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMl9ESVJ9KQorCitjb25maWd1cmVfZmlsZSh3cGUvd3BlLXdlYmtpdC5wYy5pbiAke0NN
QUtFX0JJTkFSWV9ESVJ9L3dwZS13ZWJraXQucGMgQE9OTFkpCisKK2FkZF9kZWZpbml0aW9ucygt
RFdFQktJVDJfQ09NUElMQVRJT04pCisKK2FkZF9kZWZpbml0aW9ucygtRExJQkVYRUNESVI9IiR7
TElCRVhFQ19JTlNUQUxMX0RJUn0iKQorCitzZXQoV2ViS2l0Ml9VU0VfUFJFRklYX0hFQURFUiBP
TikKKworYWRkX2N1c3RvbV90YXJnZXQod2Via2l0MndwZS1mb3J3YXJkaW5nLWhlYWRlcnMKKyAg
ICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVy
YXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCAtLWluY2x1ZGUtcGF0aCAke1dFQktJVDJfRElSfSAt
LW91dHB1dCAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlIC0tcGxhdGZv
cm0gc291cAorKQorCitzZXQoV0VCS0lUMl9FWFRSQV9ERVBFTkRFTkNJRVMKKyAgICB3ZWJraXQy
d3BlLWZvcndhcmRpbmctaGVhZGVycworKQorCitsaXN0KEFQUEVORCBXZWJQcm9jZXNzX1NPVVJD
RVMKKyAgICBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9XZWJQcm9jZXNzTWFpbi5jcHAKKykK
KworbGlzdChBUFBFTkQgTmV0d29ya1Byb2Nlc3NfU09VUkNFUworICAgIE5ldHdvcmtQcm9jZXNz
L0VudHJ5UG9pbnQvdW5peC9OZXR3b3JrUHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQRU5E
IERhdGFiYXNlUHJvY2Vzc19TT1VSQ0VTCisgICAgRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQv
dW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX1NP
VVJDRVMKKyAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9MZWdhY3lDdXN0
b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAorCisgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlQ29kZXJzU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVEYXRhU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJ
T0NoYW5uZWxTb3VwLmNwcAorCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRh
c2tTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291
cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKKyAg
ICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKKyAgICBOZXR3b3Jr
UHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKKworICAgIFBsYXRm
b3JtL2NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuY3BwCisKKyAg
ICBQbGF0Zm9ybS9nbGliL01vZHVsZUdsaWIuY3BwCisKKyAgICBQbGF0Zm9ybS9JUEMvZ2xpYi9H
U29ja2V0TW9uaXRvci5jcHAKKworICAgIFBsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4
LmNwcAorICAgIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorCisgICAgUGxh
dGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKyAgICBQbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9y
eVVuaXguY3BwCisKKyAgICBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luQ29udHJvbGxlclByb3h5
VW5peC5jcHAKKyAgICBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNw
cAorICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzVW5peC5jcHAKKworICAgIFNo
YXJlZC9BUEkvYy9jYWlyby9XS0ltYWdlQ2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvQXV0aGVudGlj
YXRpb24vc291cC9BdXRoZW50aWNhdGlvbk1hbmFnZXJTb3VwLmNwcAorCisgICAgU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisgICAgU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorICAgIFNo
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1NpbXBsZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKKwor
ICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3Np
dGluZ1J1bkxvb3AuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3Iu
Y3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1Ro
cmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuY3BwCisKKyAgICBTaGFyZWQvUGx1Z2lucy9OZXRz
Y2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwCisKKyAgICBTaGFyZWQvY2Fpcm8v
U2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvZ2xpYi9XZWJFcnJvcnNHbGli
LmNwcAorCisgICAgU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKworICAg
IFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisgICAgU2hhcmVkL3Nv
dXAvV2ViRXJyb3JzU291cC5jcHAKKworICAgIFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4u
Y3BwCisKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCisgICAg
U2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUvTmF0
aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZl
bnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCisg
ICAgU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkv
Qy9jYWlyby9XS0ljb25EYXRhYmFzZUNhaXJvLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL3Nv
dXAvV0tDb29raWVNYW5hZ2VyU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tW
aWV3LmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
Y3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKKyAgICBV
SVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dw
ZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9XUEVW
aWV3LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCisKKyAgICBV
SVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAorICAgIFVJUHJvY2Vzcy9EZWZhdWx0VW5kb0NvbnRy
b2xsZXIuY3BwCisgICAgVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZ05vbmUuY3Bw
CisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAorICAg
IFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisKKyAgICBVSVBy
b2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCisKKyAg
ICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0U2VydmVyU291cC5jcHAK
KworICAgIFVJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcAorCisg
ICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorICAgIFVJ
UHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKKworICAgIFVJ
UHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorCisgICAgVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL3VuaXgvV2Vic2l0ZURhdGFTdG9yZVVuaXguY3BwCisKKyAgICBVSVByb2Nlc3MvY2Fp
cm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL0luc3Rh
bGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9jZXNz
L2dzdHJlYW1lci9XZWJQYWdlUHJveHlHU3RyZWFtZXIuY3BwCisKKyAgICBVSVByb2Nlc3MvbGlu
dXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorCisgICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29v
a2llTWFuYWdlclByb3h5U291cC5jcHAKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9v
bFNvdXAuY3BwCisKKyAgICBVSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcAorICAgIFVJ
UHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9X
ZWJQYWdlUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlX
UEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKKyAgICBVSVBy
b2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9Db29raWVz
L3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCisgICAgV2ViUHJvY2Vzcy9Db29raWVzL3Nv
dXAvV2ViS2l0U291cENvb2tpZUphclNxbGl0ZS5jcHAKKworICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvZ2xpYi9JbmplY3RlZEJ1bmRsZUdsaWIuY3BwCisKKyAgICBXZWJQcm9jZXNzL01l
ZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAKKworICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3Bw
CisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNw
cAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAK
KworICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9BY2NlbGVyYXRlZFN1cmZhY2UuY3BwCisKKyAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9BcmVhQWxsb2NhdG9yLmNwcAor
ICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29v
cmRpbmF0b3IuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorICAg
IFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcAor
CisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNwcAor
CisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwCisgICAg
V2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHAKKyAgICBXZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS93cGUvV2ViUGFnZVdQRS5jcHAKKworICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVx
dWVzdElucHV0U3RyZWFtLmNwcAorICAgIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5j
cHAKKworICAgIFdlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcAorCisgICAgIyBG
SVhNRS1HV1NIQVJFOgorICAgIERhdGFiYXNlUHJvY2Vzcy9ndGsvRGF0YWJhc2VQcm9jZXNzTWFp
bkd0ay5jcHAKKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUworICAg
IFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisp
CisKK2xpc3QoQVBQRU5EIFdlYktpdDJfREVSSVZFRF9TT1VSQ0VTCisgICAgJHtERVJJVkVEX1NP
VVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYworKQor
CitzZXQoV2ViS2l0MlJlc291cmNlcworKQorCitpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICBs
aXN0KEFQUEVORCBXZWJLaXQyUmVzb3VyY2VzCisgICAgICAgICIgICAgICAgIDxmaWxlIGFsaWFz
PVwiYXVkaW8vQ29tcG9zaXRlXCI+Q29tcG9zaXRlLndhdjwvZmlsZT5cbiIKKyAgICApCitlbmRp
ZiAoKQorCitmaWxlKFdSSVRFICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQy
UmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLnhtbAorICAgICI8P3htbCB2ZXJzaW9uPTEuMCBlbmNv
ZGluZz1VVEYtOD8+XG4iCisgICAgIjxncmVzb3VyY2VzPlxuIgorICAgICIgICAgPGdyZXNvdXJj
ZSBwcmVmaXg9XCIvb3JnL3dlYmtpdHdwZS9yZXNvdXJjZXNcIj5cbiIKKyAgICAke1dlYktpdDJS
ZXNvdXJjZXN9CisgICAgIiAgICA8L2dyZXNvdXJjZT5cbiIKKyAgICAiPC9ncmVzb3VyY2VzPlxu
IgorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VT
X1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBF
TkRTICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291
cmNlQnVuZGxlLnhtbAorICAgIENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVy
YXRlIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvUmVzb3Vy
Y2VzIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vcmVzb3VyY2VzIC0tdGFyZ2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElS
fS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLmMgJHtERVJJVkVEX1NPVVJDRVNfV0VC
S0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVSQkFU
SU0KKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7
Rk9SV0FSRElOR19IRUFERVJTX0RJUn0iCisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0iCisg
ICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgorICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3MvdW5p
eCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3Nv
dXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwIgor
ICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJVDJf
RElSfS9OZXR3b3JrUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybS9J
UEMvZ2xpYiIKKyAgICAiJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vSVBDL3VuaXgiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL2NsYXNzaWZpZXIiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1No
YXJlZC9BUEkvYy93cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9zb3VwIgorICAg
ICIke1dFQktJVDJfRElSfS9TaGFyZWQvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL2NhaXJvIgorICAgICIk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS93
cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvbGludXgiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNz
L3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvdW5peCIKKyAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwIgorICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZSIKKyAgICAiJHtXVEZfRElSfS93dGYvZ3Rr
LyIKKyAgICAiJHtXVEZfRElSfS93dGYvZ29iamVjdCIKKyAgICAiJHtXVEZfRElSfSIKKyAgICAk
e0NBSVJPX0lOQ0xVREVfRElSU30KKyAgICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtGUkVF
VFlQRTJfSU5DTFVERV9ESVJTfQorICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtHU1RS
RUFNRVJfSU5DTFVERV9ESVJTfQorICAgICR7SEFSRkJVWlpfSU5DTFVERV9ESVJTfQorICAgICR7
TElCU09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCitsaXN0
KEFQUEVORCBXZWJLaXQyX0xJQlJBUklFUworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7
RlJFRVRZUEUyX0xJQlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R1NUUkVB
TUVSX0xJQlJBUklFU30KKyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBf
TElCUkFSSUVTfQorICAgICR7V1BFX0xJQlJBUklFU30KKykKKworc2V0KEluc3BlY3RvckZpbGVz
CisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS8qLmh0bWwKKyAgICAke0NNQUtF
X1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvKi5q
cworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzLyouanMKKyAgICAke0NNQUtF
X1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnLyou
Y3NzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9EZWJ1Zy8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yLyouY3NzCisgICAgJHtD
TUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRl
cm5hbC9Db2RlTWlycm9yLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VTTGludC8qLmpzCisgICAgJHtDTUFL
RV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5h
bC9Fc3ByaW1hLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5wbmcKKyAgICAke0NNQUtFX1NPVVJDRV9E
SVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5zdmcK
KyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzLyouanMKKyAgICAk
e0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rl
c3QvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzLyouanMKKyAgICAke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0
dGVyLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90LyouanMKKykKKworZmlsZShHTE9CIElu
c3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzCisgICAgJHtJbnNwZWN0b3JGaWxlc30KKykKKworIyBE
ZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZENv
bW1hbmRzLmpzIGlzCisjIGV4cGVjdGVkIGluIERlcml2ZWRTb3VyY2VzL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvLgorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBV
VCAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCisgICAgREVQRU5EUyAke0RFUklWRURf
U09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29t
bWFuZHMuanMKKyAgICBDT01NQU5EIGNwICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JF
X0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcyAke0RFUklWRURfU09V
UkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9y
QmFja2VuZENvbW1hbmRzLmpzCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQg
JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VC
dW5kbGUueG1sCisgICAgREVQRU5EUyAke0luc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzfQorICAg
ICAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2VySW50ZXJm
YWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgICAgICAgICAgJHtU
T09MU19ESVJ9L3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5Cisg
ICAgQ09NTUFORCAke1RPT0xTX0RJUn0vd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2Ut
bWFuaWZlc3QucHkgLS1vdXRwdXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElS
fS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sICR7SW5zcGVjdG9yRmlsZXN9ICR7REVSSVZF
RF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNw
ZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9tX2Nv
bW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0v
SW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VT
X1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIENP
TU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7Q01B
S0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJIC0tc291cmNlZGlyPSR7REVSSVZF
RF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0gLS10YXJnZXQ9JHtERVJJVkVEX1NPVVJDRVNf
V0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke0RFUklWRURf
U09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwK
KyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJj
ZUJ1bmRsZS5jCisgICAgREVQRU5EUyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgICAgICAgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9mcm9udC1lbmQvaW5zcGVjdG9yUGFnZUlu
ZGV4Lmh0bWwKKyAgICBDT01NQU5EIGdsaWItY29tcGlsZS1yZXNvdXJjZXMgLS1nZW5lcmF0ZSAt
LXNvdXJjZWRpcj0ke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2Zyb250
LWVuZCAtLXRhcmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktp
dDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElNCisp
CisKK2xpc3QoQVBQRU5EIFdQRVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVMK
KyAgICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNv
dXJjZUJ1bmRsZS5jCisgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9X
ZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKykKKworbGlzdChBUFBFTkQgV1BFV2Vi
SW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJBUklFUworICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQor
KQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfSU5DTFVERV9ESVJFQ1RP
UklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CispCisKK2FkZF9saWJyYXJ5KFdQRVdlYklu
c3BlY3RvclJlc291cmNlcyBTSEFSRUQgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVSSVZF
RF9TT1VSQ0VTfSkKK2FkZF9kZXBlbmRlbmNpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIFdl
YktpdDIpCit0YXJnZXRfbGlua19saWJyYXJpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzICR7
V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJBUklFU30pCit0YXJnZXRfaW5jbHVkZV9kaXJl
Y3RvcmllcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgUFVCTElDICR7V1BFV2ViSW5zcGVjdG9y
UmVzb3VyY2VzX0lOQ0xVREVfRElSRUNUT1JJRVN9KQoraW5zdGFsbChUQVJHRVRTIFdQRVdlYklu
c3BlY3RvclJlc291cmNlcyBERVNUSU5BVElPTiAiJHtMSUJfSU5TVEFMTF9ESVJ9IikKKworc2V0
KFdQRV9JTlNUQUxMRURfV0VCS0lUX0hFQURFUlMKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQv
QVBJL2MvV0tBcnJheS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLQmFzZS5o
CisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGF0YS5oCisgICAgJHtXRUJLSVQy
X0RJUn0vU2hhcmVkL0FQSS9jL1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmgKKyAgICAke1dFQktJ
VDJfRElSfS9TaGFyZWQvQVBJL2MvV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaAorICAg
ICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFy
ZWQvQVBJL2MvV0tFdmVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRmlu
ZE9wdGlvbnMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0dlb21ldHJ5LmgK
KyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tJbWFnZS5oCisgICAgJHtXRUJLSVQy
X0RJUn0vU2hhcmVkL0FQSS9jL1dLTXV0YWJsZUFycmF5LmgKKyAgICAke1dFQktJVDJfRElSfS9T
aGFyZWQvQVBJL2MvV0tNdXRhYmxlRGljdGlvbmFyeS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL0FQSS9jL1dLTnVtYmVyLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQ
YWdlTG9hZFR5cGVzLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQYWdlVmlz
aWJpbGl0eVR5cGVzLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZWN1cml0
eU9yaWdpblJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTdHJpbmcu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1R5cGUuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VSTC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQ
SS9jL1dLVVJMUmVxdWVzdC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJM
UmVzcG9uc2UuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJDb250ZW50
SW5qZWN0ZWRGcmFtZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJD
b250ZW50VVJMUGF0dGVybi5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNl
clNjcmlwdEluamVjdGlvblRpbWUuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9j
L3dwZS9XS0Jhc2VXUEUuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oCisgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaAorICAgICR7V0VCS0lUMl9ESVJ9
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmgK
KyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlRnJhbWUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5pdGlhbGl6ZS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rv
ci5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlLmgKKyAgICAke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisgICAg
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VCYW5uZXIuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50
LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZUZvcm1DbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCisgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VH
cm91cC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlT3ZlcmxheS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQb2xp
Y3lDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50LmgK
KyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUmFuZ2VIYW5kbGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCisKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RSZWYuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKKyAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5o
CisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dERvd25sb2FkQ2xp
ZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SGlzdG9y
eUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dElu
amVjdGVkQnVuZGxlQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVN
YW5hZ2VyLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFs
LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsVHlwZXMu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmgKKyAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUluZm9SZWYuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5oCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlZi5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmgKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbnRleHRNZW51Q2xpZW50LmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorICAg
ICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGaW5kQ2xpZW50LmgKKyAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRmluZE1hdGNoZXNDbGllbnQuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGb3JtQ2xpZW50LmgKKyAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oCisg
ICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUxvYWRlckNsaWVudC5oCisg
ICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGllbnQu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQb2xpY3lDbGllbnQu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50cy5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJ
Q2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5Mb2Fk
UG9saWN5LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
c1JlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRl
UmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyQ29udGVudENv
bnRyb2xsZXJSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJT
Y3JpcHRSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0
QXR0cmlidXRlcy5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLV2luZG93
RmVhdHVyZXNSZWYuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dwZS9X
S1ZpZXcuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb29r
aWVNYW5hZ2VyU291cC5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX1dFQktJ
VF9IRUFERVJTfQorICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0v
d3BlLSR7V1BFX0FQSV9WRVJTSU9OfS9XUEUvV2ViS2l0IgorICAgIENPTVBPTkVOVCAiRGV2ZWxv
cG1lbnQiCispCisKK3NldChXUEVfSU5TVEFMTEVEX0hFQURFUlMKKyAgICAke1dFQktJVDJfRElS
fS9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5T
VEFMTEVEX0hFQURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURF
RElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJT059L1dQRSIKKyAgICBDT01QT05FTlQgIkRldmVsb3Bt
ZW50IgorKQorCitpbnN0YWxsKEZJTEVTICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5w
YworICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfS9wa2djb25maWciCisg
ICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIKKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIGIvU291cmNlL1dlYktpdDIv
U2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKaW5kZXggYjYxZGI3ODc3NGEu
LmE3ZDNhMGI2YjkyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRl
LWZvcndhcmRpbmctaGVhZGVycy5wbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVy
YXRlLWZvcndhcmRpbmctaGVhZGVycy5wbApAQCAtMzUsNyArMzUsNyBAQCB1c2UgRmlsZTo6U3Bl
Yzo6RnVuY3Rpb25zOwogdXNlIEdldG9wdDo6TG9uZzsKIAogbXkgJHNyY1Jvb3QgPSByZWFscGF0
aChGaWxlOjpTcGVjLT5jYXRmaWxlKGRpcm5hbWUoYWJzX3BhdGgoJDApKSwgIi4uLy4uIikpOwot
bXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29hIiwgIkNvY29hIiwgIkNv
b3JkaW5hdGVkR3JhcGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMiLCAi
c291cCIsICJ3aW4iKTsKK215IEBwbGF0Zm9ybVByZWZpeGVzID0gKCJjYSIsICJjZiIsICJjb2Nv
YSIsICJDb2NvYSIsICJDb29yZGluYXRlZEdyYXBoaWNzIiwgImN1cmwiLCAiZWZsIiwgImd0ayIs
ICJpb3MiLCAibWFjIiwgInNvdXAiLCAid2luIiwgIndwZSIpOwogbXkgQGZyYW1ld29ya3MgPSAo
IkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiLCAiV2ViS2l0Iik7CiBteSBAc2tpcHBlZFByZWZp
eGVzOwogbXkgQGZyYW1ld29ya0hlYWRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKaW5kZXggMmU4ZmJmYmJlNWMuLjMzYTA2OTg4ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2VN
YWMuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCYXNlV1BFLmg+CisjZW5kaWYKKwogLyogV2ViS2l0MiBzaGFyZWQgdHlwZXMgKi8K
IAogdHlwZWRlZiB1aW50MzJfdCBXS1R5cGVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2Mvd3BlL1dLQmFzZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5iNWVmMDYyMjAyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy93cGUvV0tCYXNlV1BFLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQmFzZVdQRV9oCisjZGVm
aW5lIFdLQmFzZVdQRV9oCisKKyNpZm5kZWYgV0tCYXNlX2gKKyNlcnJvciAiUGxlYXNlICNpbmNs
dWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYK
KwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3KiBXS1ZpZXdSZWY7CisKKyNlbmRp
ZiAvKiBXS0Jhc2VXUEVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL3dwZS9XZWJLaXQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlhODQxMTdmNDVjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQu
aApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdQRV9XZWJLaXRfaAorI2RlZmluZSBXUEVfV2ViS2l0X2gK
KworI2RlZmluZSBCVUlMRElOR19XUEVfXworCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0L1dLQXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGF0YS5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0RpY3Rpb25hcnku
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tFcnJvclJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0dl
b21ldHJ5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTXV0YWJsZUFycmF5Lmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLTXV0YWJsZURpY3Rpb25hcnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOdW1iZXIu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tTZWN1cml0eU9yaWdpblJlZi5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS1N0cmluZy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tVUkwuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXF1ZXN0Lmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLVVJMUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyQ29udGVu
dEluamVjdGVkRnJhbWVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVjdGlv
blRpbWUuaD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jLworI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZS5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVGaWxlSGFuZGxl
UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVIaXRUZXN0UmVzdWx0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSW5p
dGlhbGl6ZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUluc3BlY3Rvci5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCdW5kbGVOb2RlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VCYW5uZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUZvcm1D
bGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VHcm91cC5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQ
YWdlT3ZlcmxheS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnQu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50Lmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVVJQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlUmFuZ2VIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVTY3JpcHRX
b3JsZC5oPgorCisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQworI2luY2x1
ZGUgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCYWNrRm9yd2FyZExpc3RSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHQuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tDcmVkZW50aWFsLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbFR5cGVz
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFt
ZUluZm9SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLSGl0VGVzdFJlc3VsdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05h
dmlnYXRpb25BY3Rpb25SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uRGF0YVJl
Zi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05hdmlnYXRpb25SZWYuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlQ29u
ZmlndXJhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZi5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS1Nlc3Npb25TdGF0ZVJlZi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJT
Y3JpcHRSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3Lmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLVmlld3BvcnRBdHRyaWJ1dGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLV2luZG93RmVhdHVy
ZXNSZWYuaD4KKworI2VuZGlmIC8vIFdQRV9XZWJLaXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAppbmRleCA4YWNm
NTA2OTIxMC4uMjI0Mzg4ZWVjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3Au
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCkBAIC03NSw3ICs3NSw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgV29ya1F1ZXVlUG9vbCgpCiAgICAgewotI2lmIFBMQVRGT1JN
KEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAgICAgbV90aHJl
YWRDb3VudExpbWl0ID0gMTsKICNlbHNlCiAgICAgICAgIG1fdGhyZWFkQ291bnRMaW1pdCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21w
b3NpdGluZ1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaAppbmRleCA4MTZkNDY3
YjUxMC4uNjQ1ZDdiOTBkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKIAorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+
CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBv
c2l0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhy
ZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKaW5kZXggNTRkOTYwYjNkMGUu
Ljk2ZDI5NjZiZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcApAQCAtNDMsMTIgKzQzLDEyIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFRocmVhZGVkQ29t
cG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQsIGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2
ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFw
cGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCitSZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBUaHJl
YWRlZENvbXBvc2l0b3I6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgV2ViUGFnZSYgd2ViUGFnZSwg
Y29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3Qg
bmF0aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1
cmVNYXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUaHJlYWRlZENvbXBvc2l0b3IoY2xpZW50LCB2aWV3cG9ydFNpemUsIHNjYWxlRmFjdG9y
LCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFncykpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFRocmVhZGVkQ29tcG9zaXRvcihjbGllbnQsIHdlYlBhZ2UsIHZp
ZXdwb3J0U2l6ZSwgc2NhbGVGYWN0b3IsIG5hdGl2ZVN1cmZhY2VIYW5kbGUsIGRvRnJhbWVTeW5j
LCBwYWludEZsYWdzKSk7CiB9CiAKLVRocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFkZWRDb21wb3Np
dG9yKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNj
YWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3lu
YyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZsYWdzKQorVGhy
ZWFkZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBjbGllbnQsIFdlYlBh
Z2UmIHdlYlBhZ2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0
b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJh
bWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCiAgICAgOiBtX2Ns
aWVudChjbGllbnQpCiAgICAgLCBtX3ZpZXdwb3J0U2l6ZSh2aWV3cG9ydFNpemUpCiAgICAgLCBt
X3NjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKQpAQCAtNjQsMTMgKzY0LDIxIEBAIFRocmVhZGVkQ29t
cG9zaXRvcjo6VGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXpl
JiB2aWV3cG9ydFNpCiAgICAgbV9jbGllbnRSZW5kZXJzTmV4dEZyYW1lLnN0b3JlKGZhbHNlKTsK
ICAgICBtX2Nvb3JkaW5hdGVVcGRhdGVDb21wbGV0aW9uV2l0aENsaWVudC5zdG9yZShmYWxzZSk7
CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV9jb21wb3NpdGluZ01hbmFnZXIuZXN0YWJsaXNo
Q29ubmVjdGlvbih3ZWJQYWdlKTsKKyNlbmRpZgorCiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3At
PnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7
CiAgICAgICAgIG1fc2NlbmUgPSBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
KHRoaXMpKTsKKyNpZiBQTEFURk9STShHVEspCiAgICAgICAgIGlmIChtX25hdGl2ZVN1cmZhY2VI
YW5kbGUpIHsKICAgICAgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOwogICAgICAgICAgICAgbV9z
Y2VuZS0+c2V0QWN0aXZlKHRydWUpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1fc2Nl
bmUtPnNldEFjdGl2ZShmYWxzZSk7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgICAgIG1fc2Nl
bmUtPnNldEFjdGl2ZSh0cnVlKTsKKyNlbmRpZgogICAgIH0pOwogfQogCkBAIC04MSw2ICs4OSw4
IEBAIFRocmVhZGVkQ29tcG9zaXRvcjo6flRocmVhZGVkQ29tcG9zaXRvcigpCiB2b2lkIFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKKworI2lmIFBMQVRGT1JNKEdUSykKICAgICBBU1NFUlQobV9uYXRpdmVTdXJmYWNl
SGFuZGxlKTsKIAogICAgIG1fY29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlQ29udGV4dEZvcldp
bmRvdyhyZWludGVycHJldF9jYXN0PEdMTmF0aXZlV2luZG93VHlwZT4obV9uYXRpdmVTdXJmYWNl
SGFuZGxlKSwgJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkp
OwpAQCAtOTEsNiArMTAxLDIyIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVHTENv
bnRleHQoKQogICAgICAgICBpZiAobV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAg
ICAgICAgICAgIG1fY29udGV4dC0+c3dhcEludGVydmFsKDApOwogICAgIH0KKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIGF1dG8mIHBsYXRmb3JtRGlzcGxheSA9IFBsYXRmb3JtRGlz
cGxheTo6c2hhcmVkRGlzcGxheSgpOworICAgIFJFTEVBU0VfQVNTRVJUKGlzPFBsYXRmb3JtRGlz
cGxheVdQRT4ocGxhdGZvcm1EaXNwbGF5KSk7CisgICAgbV90YXJnZXQgPSBkb3duY2FzdDxQbGF0
Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkuY3JlYXRlRUdMVGFyZ2V0KCp0aGlzLCBt
X2NvbXBvc2l0aW5nTWFuYWdlci5yZWxlYXNlQ29ubmVjdGlvbkZkKCkpOworICAgIEFTU0VSVCht
X3RhcmdldCk7CisgICAgbV90YXJnZXQtPmluaXRpYWxpemUobV92aWV3cG9ydFNpemUpOworCisg
ICAgbV9jb250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2luZG93KG1fdGFyZ2V0
LT5uYXRpdmVXaW5kb3coKSwgJnBsYXRmb3JtRGlzcGxheSk7CisgICAgaWYgKCFtX2NvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJl
bnQoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3Np
dG9yOjppbnZhbGlkYXRlKCkKQEAgLTEwMCwxNiArMTI2LDIzIEBAIHZvaWQgVGhyZWFkZWRDb21w
b3NpdG9yOjppbnZhbGlkYXRlKCkKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRh
c2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAg
bV9zY2VuZS0+cHVyZ2VHTFJlc291cmNlcygpOwogICAgICAgICBtX2NvbnRleHQgPSBudWxscHRy
OworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgbV90YXJnZXQgPSBudWxscHRyOworI2VuZGlm
CiAgICAgICAgIG1fc2NlbmUgPSBudWxscHRyOwogICAgIH0pOwogI2lmIFVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgbV9kaXNwbGF5UmVmcmVzaE1vbml0
b3ItPmludmFsaWRhdGUoKTsKICNlbmRpZgogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wID0gbnVs
bHB0cjsKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQor
ICAgIG1fZGlzcGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7CisjZW5kaWYKIH0KIAog
dm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3Np
dGluZyh1aW50NjRfdCBoYW5kbGUpCiB7CisjaWYgUExBVEZPUk0oR1RLKQogICAgIG1fY29tcG9z
aXRpbmdSdW5Mb29wLT5zdG9wVXBkYXRlcygpOwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5w
ZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaGFu
ZGxlXSB7CiAgICAgICAgIC8vIEEgbmV3IG5hdGl2ZSBoYW5kbGUgY2FuJ3QgYmUgc2V0IHdpdGhv
dXQgZGVzdHJveWluZyB0aGUgcHJldmlvdXMgb25lIGZpcnN0IGlmIGFueS4KQEAgLTEyMyw2ICsx
NTYsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZv
ckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKICAgICAgICAgICAgIG1fY29udGV4dCA9IG51
bGxwdHI7CiAgICAgICAgIH0KICAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29t
cG9zaXRvcjo6c2V0U2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUpCkBAIC0xNDYsNiArMTgwLDEwIEBA
IHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXRWaWV3cG9ydFNpemUoY29uc3QgSW50U2l6ZSYg
dmlld3BvcnRTaXplLCBmbG9hdCBzY2FsCiB7CiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBl
cmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB2aWV3
cG9ydFNpemUsIHNjYWxlXSB7CiAgICAgICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXpl
OworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgaWYgKG1fdGFyZ2V0KQorICAgICAgICAgICAg
bV90YXJnZXQtPnJlc2l6ZSh2aWV3cG9ydFNpemUpOworI2VuZGlmCiAgICAgICAgIG1fc2NhbGVG
YWN0b3IgPSBzY2FsZTsKICAgICAgICAgbV9uZWVkc1Jlc2l6ZSA9IHRydWU7CiAgICAgICAgIG1f
Y29tcG9zaXRpbmdSdW5Mb29wLT5zY2hlZHVsZVVwZGF0ZSgpOwpAQCAtMTg5LDkgKzIyNywxOCBA
QCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cmVuZGVyTGF5ZXJUcmVlKCkKICAgICBpZiAoIW1f
c2NlbmUgfHwgIW1fc2NlbmUtPmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgY3JlYXRlR0xDb250ZXh0
KCk7CisjZW5kaWYKKwogICAgIGlmICghbV9jb250ZXh0IHx8ICFtX2NvbnRleHQtPm1ha2VDb250
ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAg
bV90YXJnZXQtPmZyYW1lV2lsbFJlbmRlcigpOworI2VuZGlmCisKICAgICBpZiAobV9uZWVkc1Jl
c2l6ZSkgewogICAgICAgICBnbFZpZXdwb3J0KDAsIDAsIG1fdmlld3BvcnRTaXplLndpZHRoKCks
IG1fdmlld3BvcnRTaXplLmhlaWdodCgpKTsKICAgICAgICAgbV9uZWVkc1Jlc2l6ZSA9IGZhbHNl
OwpAQCAtMjExLDcgKzI1OCwxMyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cmVuZGVyTGF5
ZXJUcmVlKCkKIAogICAgIG1fY29udGV4dC0+c3dhcEJ1ZmZlcnMoKTsKIAorI2lmIFBMQVRGT1JN
KFdQRSkKKyAgICBtX3RhcmdldC0+ZnJhbWVSZW5kZXJlZCgpOworI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShHVEspCiAgICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOworI2VuZGlmCiB9CiAKIHZvaWQg
VGhyZWFkZWRDb21wb3NpdG9yOjpzY2VuZVVwZGF0ZUZpbmlzaGVkKCkKQEAgLTI3MCw1ICszMjMs
MzIgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNvb3JkaW5hdGVVcGRhdGVDb21wbGV0aW9u
V2l0aENsaWVudCgpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0YXRpYyB2b2lk
IGRlYnVnVGhyZWFkZWRDb21wb3NpdG9yRlBTKCkKK3sKKyAgICBzdGF0aWMgZG91YmxlIGxhc3RU
aW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZnJhbWVDb3VudCA9IDA7
CisKKyAgICBkb3VibGUgY3QgPSBjdXJyZW50VGltZSgpOworICAgIGZyYW1lQ291bnQrKzsKKwor
ICAgIGlmIChjdCAtIGxhc3RUaW1lID49IDUuMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IlRocmVhZGVkQ29tcG9zaXRvcjogZnJhbWUgY2FsbGJhY2tzICUuMmYgRlBTXG4iLCBmcmFtZUNv
dW50IC8gKGN0IC0gbGFzdFRpbWUpKTsKKyAgICAgICAgbGFzdFRpbWUgPSBjdDsKKyAgICAgICAg
ZnJhbWVDb3VudCA9IDA7CisgICAgfQorfQorCit2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6ZnJh
bWVDb21wbGV0ZSgpCit7CisgICAgQVNTRVJUKG1fY29tcG9zaXRpbmdSdW5Mb29wLT5pc0N1cnJl
bnQoKSk7CisgICAgc3RhdGljIGJvb2wgcmVwb3J0RlBTID0gISFzdGQ6OmdldGVudigiV1BFX1RI
UkVBREVEX0NPTVBPU0lUT1JfRlBTIik7CisgICAgaWYgKHJlcG9ydEZQUykKKyAgICAgICAgZGVi
dWdUaHJlYWRlZENvbXBvc2l0b3JGUFMoKTsKKworICAgIHNjZW5lVXBkYXRlRmluaXNoZWQoKTsK
K30KKyNlbmRpZgorCiB9CiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVB
REVEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVk
Q29tcG9zaXRvci5oCmluZGV4IDY3OTU0YTA3YTQ2Li5lYjEyNDU5NzU2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaApA
QCAtNDIsNiArNDIsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ci5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdN
YW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXlXUEUuaD4KKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRl
OwogfQpAQCAtNTEsOCArNTYsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU7CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQ7
CiBjbGFzcyBUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcjsKK2NsYXNzIFdlYlBhZ2U7CiAK
LWNsYXNzIFRocmVhZGVkQ29tcG9zaXRvciA6IHB1YmxpYyBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmVDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRlZENvbXBvc2l0b3I+
IHsKK2NsYXNzIFRocmVhZGVkQ29tcG9zaXRvciA6IHB1YmxpYyBDb29yZGluYXRlZEdyYXBoaWNz
U2NlbmVDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRlZENvbXBvc2l0
b3I+CisjaWYgUExBVEZPUk0oV1BFKQorICAgICwgcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtRGlz
cGxheVdQRTo6RUdMVGFyZ2V0OjpDbGllbnQKKyNlbmRpZgorICAgIHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShUaHJlYWRlZENvbXBvc2l0b3IpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgpAQCAtNjQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICBlbnVtIGNsYXNz
IFNob3VsZERvRnJhbWVTeW5jIHsgTm8sIFllcyB9OwogCi0gICAgc3RhdGljIFJlZjxUaHJlYWRl
ZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxv
YXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUgPSAwLCBTaG91bGRE
b0ZyYW1lU3luYyA9IFNob3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXI6OlBhaW50RmxhZ3MgPSAwKTsKKyAgICBzdGF0aWMgUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4g
Y3JlYXRlKENsaWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQg
c2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUgPSAwLCBTaG91bGREb0Zy
YW1lU3luYyA9IFNob3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6
OlBhaW50RmxhZ3MgPSAwKTsKICAgICB2aXJ0dWFsIH5UaHJlYWRlZENvbXBvc2l0b3IoKTsKIAog
ICAgIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KTsK
QEAgLTg3LDEzICs5NywxOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBUaHJl
YWRlZENvbXBvc2l0b3IoQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNj
YWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3lu
YywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyk7CisgICAgVGhyZWFkZWRDb21w
b3NpdG9yKENsaWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQg
c2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVT
eW5jLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzKTsKIAogICAgIC8vIENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudAogICAgIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpIG92ZXJyaWRlOwogICAgIHZvaWQgY29t
bWl0U2Nyb2xsT2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IG9mZnNldCkgb3ZlcnJpZGU7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgLy8gV2ViQ29yZTo6
UGxhdGZvcm1EaXNwbGF5V1BFOjpTdXJmYWNlOjpDbGllbnQKKyAgICB2b2lkIGZyYW1lQ29tcGxl
dGUoKSBvdmVycmlkZTsKKyNlbmRpZgorCiAgICAgdm9pZCByZW5kZXJMYXllclRyZWUoKTsKICAg
ICB2b2lkIHNjZW5lVXBkYXRlRmluaXNoZWQoKTsKIApAQCAtMTAxLDYgKzExNiwxMiBAQCBwcml2
YXRlOgogCiAgICAgQ2xpZW50JiBtX2NsaWVudDsKICAgICBSZWZQdHI8Q29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lPiBtX3NjZW5lOworCisjaWYgUExBVEZPUk0oV1BFKQorICAgIENvbXBvc2l0aW5n
TWFuYWdlciBtX2NvbXBvc2l0aW5nTWFuYWdlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ+IG1fdGFyZ2V0OworI2VuZGlmCisKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R0xDb250ZXh0PiBtX2NvbnRleHQ7CiAKICAgICBX
ZWJDb3JlOjpJbnRTaXplIG1fdmlld3BvcnRTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdp
bmdBcmVhSW5mby5oCmluZGV4IDdmYzRkN2M0YjNmLi5hNDM1ZTE5YmI3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaApAQCAtMzQsNiArMzQsOCBAQCBlbnVtIERyYXdp
bmdBcmVhVHlwZSB7CiAgICAgRHJhd2luZ0FyZWFUeXBlVGlsZWRDb3JlQW5pbWF0aW9uLAogI2Vu
ZGlmCiAgICAgRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLAorI2VsaWYgUExBVEZPUk0o
V1BFKQorICAgIERyYXdpbmdBcmVhVHlwZVdQRQogI2Vsc2UKICAgICBEcmF3aW5nQXJlYVR5cGVJ
bXBsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJL
ZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudC5oCmluZGV4IGNiMWYxMThjODkyLi4xNGZkZGUyMjRlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC01MSw2ICs1MSwxMCBAQCB0
eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKIE9CSkNfQ0xBU1MgV2ViRXZlbnQ7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZl
bnQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQgOiBwdWJsaWMgV2ViS2V5Ym9hcmRFdmVudCB7CkBAIC02Miw2ICs2Niw4IEBAIHB1
YmxpYzoKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KEdka0V2ZW50KiwgY29uc3QgV2ViQ29y
ZTo6Q29tcG9zaXRpb25SZXN1bHRzJiwgSW5wdXRNZXRob2RGaWx0ZXI6OkV2ZW50RmFrZWRGb3JD
b21wb3NpdGlvbiwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcyk7CiAjZWxpZiBQTEFURk9STShJ
T1MpCiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCg6OldlYkV2ZW50ICopOworI2VsaWYgUExB
VEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9r
ZXlib2FyZF9ldmVudCopOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNzIsNiArNzgs
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Zha2VFdmVudEZvckNvbXBvc2l0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9mYWtlRXZlbnRGb3JDb21wb3NpdGlvbjsgfQogI2VsaWYgUExBVEZPUk0oSU9T
KQogICAgIDo6V2ViRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVF
dmVudC5nZXQoKTsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQqIG5hdGl2
ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaAppbmRleCA4OGNkMTQx
MDkzOC4uMjgzZmMzMzQ5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRp
dmVXZWJNb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1v
dXNlRXZlbnQuaApAQCAtMzgsNiArMzgsMTAgQEAgT0JKQ19DTEFTUyBOU1ZpZXc7CiB0eXBlZGVm
IHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQor
c3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBOYXRpdmVXZWJNb3VzZUV2ZW50IDogcHVibGljIFdlYk1vdXNlRXZlbnQg
ewpAQCAtNDcsNiArNTEsOCBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgTmF0
aXZlV2ViTW91c2VFdmVudChjb25zdCBOYXRpdmVXZWJNb3VzZUV2ZW50Jik7CiAgICAgTmF0aXZl
V2ViTW91c2VFdmVudChHZGtFdmVudCosIGludCk7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAg
TmF0aXZlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqLCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCkBAIC01NSw2
ICs2MSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShJT1MpCiAg
ICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CisjZWxpZiBQ
TEFURk9STShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVy
biBudWxscHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmF0aXZlV2ViVG91Y2hFdmVudC5oCmluZGV4IDExODEyNGNkZWJjLi44MmYzYjI0ZDQyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCkBAIC0zNCw2ICsz
NCw4IEBACiBzdHJ1Y3QgX1VJV2ViVG91Y2hFdmVudDsKICNlbGlmIFBMQVRGT1JNKEdUSykKICNp
bmNsdWRlIDxXZWJDb3JlL0dVbmlxdWVQdHJHdGsuaD4KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyNp
bmNsdWRlIDx3cGUvaW5wdXQuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ2
LDYgKzQ4LDkgQEAgcHVibGljOgogICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqLCBW
ZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmKTsKICAgICBOYXRpdmVXZWJUb3VjaEV2ZW50
KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmKTsKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZl
RXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CisjZWxpZiBQTEFU
Rk9STShXUEUpCisgICAgTmF0aXZlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNo
X2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIGNvbnN0IHN0cnVjdCB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBuYXRpdmVGYWxsYmFja1RvdWNoUG9pbnQoKSBjb25zdCB7
IHJldHVybiAmbV9mYWxsYmFja1RvdWNoUG9pbnQ7IH0KICNlbmRpZgogCiBwcml2YXRlOgpAQCAt
NTUsNiArNjAsOCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEdVbmlxdWVQ
dHI8R2RrRXZlbnQ+IG1fbmF0aXZlRXZlbnQ7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgc3Ry
dWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcgbV9mYWxsYmFja1RvdWNoUG9pbnQ7CiAjZW5k
aWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVl
bEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCmlu
ZGV4IDVkYjBiY2U4ZmViLi4xNWY5NTg2NzE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmF0aXZlV2ViV2hlZWxFdmVudC5oCkBAIC0zOCw2ICszOCwxMCBAQCBPQkpDX0NMQVNTIE5TVmll
dzsKIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShXUEUpCitzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQ7CisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQgOiBwdWJsaWMgV2ViV2hl
ZWxFdmVudCB7CkBAIC00Nyw2ICs1MSw4IEBAIHB1YmxpYzoKICNlbGlmIFBMQVRGT1JNKEdUSykK
ICAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKTsKICAg
ICBOYXRpdmVXZWJXaGVlbEV2ZW50KEdka0V2ZW50Kik7CisjZWxpZiBQTEFURk9STShXUEUpCisg
ICAgTmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqLCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCkBAIC01NSw2
ICs2MSw4IEBAIHB1YmxpYzoKICAgICBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJl
dHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShJT1MpCiAgICAgY29u
c3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CisjZWxpZiBQTEFURk9S
TShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggNThhYWVjMzFmZTMuLjllZmNlZjI4ZWQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApA
QCAtODMsMTEgKzgzLDE0IEBACiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRRdWFkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWxlY3Rpb25S
ZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNlbmRpZiAvLyBQTEFU
Rk9STShJT1MpCiAKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRl
IDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0Lmg+CiAjZW5kaWYKQEAgLTE0NzQsNiArMTQ3NywyMyBAQCBib29sIEFyZ3VtZW50Q29kZXI8
UGFzdGVib2FyZEltYWdlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRJbWFn
ZSYgcAogCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxQ
YXN0ZWJvYXJkV2ViQ29udGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQYXN0
ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBlbmNvZGVyIDw8IGNvbnRlbnQudGV4
dDsKKyAgICBlbmNvZGVyIDw8IGNvbnRlbnQubWFya3VwOworfQorCitib29sIEFyZ3VtZW50Q29k
ZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGFzdGVi
b2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb250
ZW50LnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb250ZW50Lm1hcmt1cCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCisKIHZvaWQgQXJndW1lbnRDb2RlcjxEaWN0
YXRpb25BbHRlcm5hdGl2ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEaWN0YXRp
b25BbHRlcm5hdGl2ZSYgZGljdGF0aW9uQWx0ZXJuYXRpdmUpCiB7CiAgICAgZW5jb2RlciA8PCBk
aWN0YXRpb25BbHRlcm5hdGl2ZS5yYW5nZVN0YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDRhNjM2OWJhMjlmLi40OTk3YTY0YWRkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAt
MTMxLDYgKzEzMSwxMiBAQCBzdHJ1Y3QgU291cE5ldHdvcmtQcm94eVNldHRpbmdzOwogfQogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgUGFz
dGVib2FyZFdlYkNvbnRlbnRzOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxU
RVJJTkcpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXI7CkBAIC00MDgsNiArNDE0LDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzPiB7CiB9OwogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShXUEUpCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlBhc3RlYm9hcmRXZWJDb250ZW50PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOworICAgIHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKK307Cisj
ZW5kaWYKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDb21wb3Np
dGlvblVuZGVybGluZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmUmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCA3NTA2ZmFk
OWQzYS4uMGIyOGMxNTdiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMzc2LDcgKzM3Niw3IEBACiAgICAgbWFjcm8oUGlj
dG9ncmFwaEZvbnRGYW1pbHksIHBpY3RvZ3JhcGhGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywg
IkFwcGxlIENvbG9yIEVtb2ppIiwgIiIsICIiKSBcCiAgICAgXAogCi0jZWxpZiBQTEFURk9STShH
VEspCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIAogI2RlZmluZSBGT1Jf
RUFDSF9XRUJLSVRfRk9OVF9GQU1JTFlfUFJFRkVSRU5DRShtYWNybykgXAogICAgIG1hY3JvKFN0
YW5kYXJkRm9udEZhbWlseSwgc3RhbmRhcmRGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIlRp
bWVzIiwgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9O
YXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uODY4M2I4MTJmM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKKwor
I2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKKyAgICA6IFdlYktleWJvYXJkRXZlbnQoV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2ZW50KSkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRp
dmVXZWJNb3VzZUV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYjRkOWQ0M2RlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKworI2luY2x1ZGUgIldl
YkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZlV2ViTW91c2VF
dmVudDo6TmF0aXZlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQq
IGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYk1vdXNlRXZlbnQoV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3Rv
cikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMxNDE1MTU1Y2RmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJUb3VjaEV2ZW50
LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK05hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9p
bnB1dF90b3VjaF9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQorICAgIDog
V2ViVG91Y2hFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoZXZlbnQs
IGRldmljZVNjYWxlRmFjdG9yKSkKKyAgICAsIG1fZmFsbGJhY2tUb3VjaFBvaW50eyB3cGVfaW5w
dXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsLCAwLCAwLCAwLCAwIH0KK3sKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytpKSB7CisgICAgICAg
IGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAgICBpZiAocG9pbnQu
dHlwZSAhPSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKSB7CisgICAgICAgICAgICBt
X2ZhbGxiYWNrVG91Y2hQb2ludCA9IHBvaW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhOTYyZWQ0ZGNjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNwcApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2
ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2luY2x1ZGUgPGNzdGRp
bz4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYldoZWVsRXZlbnQ6Ok5hdGl2ZVdl
YldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2
aWNlU2NhbGVGYWN0b3IpCisgICAgOiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViV2hlZWxFdmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQoreworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZDg3YTkyN2FiYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5jcHAKQEAgLTAsMCArMSw4NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBhdGguaCIKKworI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HTGliVXRpbGl0aWVzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworc3RhdGljIFN0cmluZyBnZXRFeGVjdXRhYmxlUGF0aCgpCit7CisgICAg
Q1N0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0aCgpOworICAg
IGlmICghZXhlY3V0YWJsZVBhdGguaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBkaXJlY3RvcnlO
YW1lKHN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGguZGF0
YSgpKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMgU3RyaW5nIGZpbmRXZWJL
aXRQcm9jZXNzKGNvbnN0IGNoYXIqIHByb2Nlc3NOYW1lKQoreworICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBleGVjRGlyZWN0b3J5ID0gZ19nZXRlbnYoIldFQktJVF9FWEVDX1BBVEgiKTsKKyAgICBp
ZiAoZXhlY0RpcmVjdG9yeSkgeworICAgICAgICBTdHJpbmcgcHJvY2Vzc1BhdGggPSBwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihleGVj
RGlyZWN0b3J5KSwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4aXN0cyhwcm9jZXNz
UGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAgfQorCisgICAgc3Rh
dGljIFN0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEV4ZWN1dGFibGVQYXRoKCk7CisgICAgaWYg
KCFleGVjdXRhYmxlUGF0aC5pc051bGwoKSkgeworICAgICAgICBTdHJpbmcgcHJvY2Vzc1BhdGgg
PSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZXhlY3V0YWJsZVBhdGgsIHByb2Nlc3NOYW1lKTsK
KyAgICAgICAgaWYgKGZpbGVFeGlzdHMocHJvY2Vzc1BhdGgpKQorICAgICAgICAgICAgcmV0dXJu
IHByb2Nlc3NQYXRoOworICAgIH0KKworICAgIHJldHVybiBwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihMSUJFWEVDRElSKSwgcHJvY2Vz
c05hbWUpOworfQorCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKQoreworICAg
IHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFV2ViUHJvY2VzcyIpOworfQorCitTdHJpbmcg
ZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0
UHJvY2VzcygiV1BFUGx1Z2luUHJvY2VzcyIpOworfQorCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhP
Zk5ldHdvcmtQcm9jZXNzKCkKK3sKKyAgICByZXR1cm4gZmluZFdlYktpdFByb2Nlc3MoIldQRU5l
dHdvcmtQcm9jZXNzIik7Cit9CisKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKK1N0cmlu
ZyBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCkKK3sKKyAgICByZXR1cm4gZmluZFdl
YktpdFByb2Nlc3MoIldQRURhdGFiYXNlUHJvY2VzcyIpOworfQorI2VuZGlmCisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJF
dmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3Rv
cnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43ODg3YTlmOGFj
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRG
YWN0b3J5LmNwcApAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
RXZlbnRGYWN0b3J5LmgiCisKKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbGJhci5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3RmL2dsaWIv
R1VuaXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFdlYkV2ZW50OjpN
b2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVu
dCogZXZlbnQpCit7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAgICB1bnNpZ25lZCBl
dmVudE1vZGlmaWVycyA9IGV2ZW50LT5tb2RpZmllcnM7CisKKyAgICBpZiAoZXZlbnRNb2RpZmll
cnMgJiB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfY29udHJvbCkKKyAgICAgICAgbW9kaWZp
ZXJzIHw9IFdlYkV2ZW50OjpDb250cm9sS2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdw
ZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9zaGlmdCkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdl
YkV2ZW50OjpTaGlmdEtleTsKKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5wdXRfa2V5
Ym9hcmRfbW9kaWZpZXJfYWx0KQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkFsdEtl
eTsKKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJf
bWV0YSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5OworCisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyk7Cit9CisKK3N0
YXRpYyBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nRm9yS2V5RXZlbnQoc3RydWN0IHdwZV9p
bnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgY29uc3QgY2hhciogc2luZ2xlQ2hh
cmFjdGVyID0gd3BlX2lucHV0X3NpbmdsZV9jaGFyYWN0ZXJfZm9yX2tleV9ldmVudCh3cGVfaW5w
dXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KTsKKyAgICBpZiAoc2luZ2xlQ2hh
cmFjdGVyKQorICAgICAgICByZXR1cm4gU3RyaW5nKHNpbmdsZUNoYXJhY3Rlcik7CisKKyAgICBn
bG9uZyBsZW5ndGg7CisgICAgR1VuaXF1ZVB0cjxndW5pY2hhcjI+IHVjaGFyMTYoZ191Y3M0X3Rv
X3V0ZjE2KCZldmVudC0+dW5pY29kZSwgMSwgMCwgJmxlbmd0aCwgbnVsbHB0cikpOworICAgIGlm
ICh1Y2hhcjE2KQorICAgICAgICByZXR1cm4gU3RyaW5nKHVjaGFyMTYuZ2V0KCkpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworc3RhdGljIFN0cmluZyBpZGVudGlmaWVyU3RyaW5nRm9yS2V5
RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgY29u
c3QgY2hhciogaWRlbnRpZmllciA9IHdwZV9pbnB1dF9pZGVudGlmaWVyX2Zvcl9rZXlfZXZlbnQo
d3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCk7CisgICAgaWYgKGlk
ZW50aWZpZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoaWRlbnRpZmllcik7CisKKyAgICByZXR1
cm4gU3RyaW5nOjpmb3JtYXQoIlUrJTA0WCIsIGV2ZW50LT51bmljb2RlKTsKK30KKworV2ViS2V5
Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgU3RyaW5nIHNpbmdsZUNo
YXJhY3RlclN0cmluZyA9IHNpbmdsZUNoYXJhY3RlclN0cmluZ0ZvcktleUV2ZW50KGV2ZW50KTsK
KyAgICBTdHJpbmcgaWRlbnRpZmllclN0cmluZyA9IGlkZW50aWZpZXJTdHJpbmdGb3JLZXlFdmVu
dChldmVudCk7CisKKyAgICByZXR1cm4gV2ViS2V5Ym9hcmRFdmVudChldmVudC0+cHJlc3NlZCA/
IFdlYkV2ZW50OjpLZXlEb3duIDogV2ViRXZlbnQ6OktleVVwLAorICAgICAgICBzaW5nbGVDaGFy
YWN0ZXJTdHJpbmcsIHNpbmdsZUNoYXJhY3RlclN0cmluZywgaWRlbnRpZmllclN0cmluZywKKyAg
ICAgICAgd3BlX2lucHV0X3dpbmRvd3Nfa2V5X2NvZGVfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRf
a2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KSwKKyAgICAgICAgZXZlbnQtPmtleUNv
ZGUsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2
ZW50KSwgZXZlbnQtPnRpbWUpOworfQorCitXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqIGV2ZW50
LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICBXZWJFdmVudDo6VHlwZSB0eXBlID0g
V2ViRXZlbnQ6Ok5vVHlwZTsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7CisgICAgY2FzZSB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgdHlwZSA9IFdlYkV2
ZW50OjpNb3VzZU1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50
ZXJfZXZlbnRfdHlwZV9idXR0b246CisgICAgICAgIHR5cGUgPSBldmVudC0+c3RhdGUgPyBXZWJF
dmVudDo6TW91c2VEb3duIDogV2ViRXZlbnQ6Ok1vdXNlVXA7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBXZWJNb3VzZUV2ZW50OjpCdXR0b24gYnV0dG9u
ID0gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgc3dpdGNoIChldmVudC0+dHlwZSkgewor
ICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgY2FzZSB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAgICAgaWYgKGV2ZW50LT5i
dXR0b24gPT0gMSkKKyAgICAgICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0
b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMikKKyAgICAgICAgICAgIGJ1
dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOworICAgICAgICBlbHNlIGlmIChldmVu
dC0+YnV0dG9uID09IDMpCisgICAgICAgICAgICBidXR0b24gPSBXZWJNb3VzZUV2ZW50OjpNaWRk
bGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZl
bnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAg
ICB1bnNpZ25lZCBjbGlja0NvdW50ID0gKHR5cGUgPT0gV2ViRXZlbnQ6Ok1vdXNlRG93bikgPyAx
IDogMDsKKworICAgIC8vIEZJWE1FOiBQcm9wZXIgYnV0dG9uIHN1cHBvcnQuIE1vZGlmaWVycy4g
ZGVsdGFYL1kvWi4gQ2xpY2sgY291bnQuCisgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24o
ZXZlbnQtPngsIGV2ZW50LT55KTsKKyAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2NhbGVG
YWN0b3IpOworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgcG9zaXRpb24s
IHBvc2l0aW9uLAorICAgICAgICAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJF
dmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworfQorCitXZWJXaGVlbEV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNf
ZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkbid0IGhhcmQtY29kZSB0aGlzLgorICAgIGVudW0gQXhpcyB7CisgICAgICAgIFZl
cnRpY2FsLAorICAgICAgICBIb3Jpem9udGFsLAorICAgICAgICBTbW9vdGgKKyAgICB9OworCisg
ICAgV2ViQ29yZTo6RmxvYXRTaXplIHdoZWVsVGlja3M7CisgICAgV2ViQ29yZTo6RmxvYXRTaXpl
IGRlbHRhOworICAgIHN3aXRjaCAoZXZlbnQtPmF4aXMpIHsKKyAgICBjYXNlIFZlcnRpY2FsOgor
ICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1ZSAv
IHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSkpOworICAgICAgICBkZWx0YSA9IHdoZWVsVGlja3M7Cisg
ICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSG9yaXpvbnRhbDoKKyAgICAgICAgd2hlZWxU
aWNrcyA9IFdlYkNvcmU6OkZsb2F0U2l6ZShldmVudC0+dmFsdWUgLyBzdGQ6OmFicyhldmVudC0+
dmFsdWUpLCAwKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAgICAgICBkZWx0YS5z
Y2FsZShXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNtb290aDoKKyAgICAgICAgd2hlZWxUaWNrcyA9IFdlYkNvcmU6OkZs
b2F0U2l6ZSgwLCBldmVudC0+dmFsdWUgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgIGRl
bHRhID0gd2hlZWxUaWNrczsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9OworCisgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oZXZlbnQtPngs
IGV2ZW50LT55KTsKKyAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOwor
ICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgcG9zaXRpb24sIHBvc2l0
aW9uLAorICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQ
aXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVu
dC0+dGltZSk7Cit9CisKK3N0YXRpYyBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hQb2ludFN0YXRlIHN0YXRlRm9yVG91Y2hQb2ludChpbnQgbWFpbkV2ZW50SWQsIGNvbnN0IHN0
cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBwb2ludCkKK3sKKyAgICBpZiAocG9pbnQt
PmlkICE9IG1haW5FdmVudElkKQorICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKKworICAgIHN3aXRjaCAocG9pbnQtPnR5cGUpIHsK
KyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHJldHVy
biBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVzc2VkOworICAgIGNhc2Ug
d3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgorICAgICAgICByZXR1cm4gV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRf
dG91Y2hfZXZlbnRfdHlwZV91cDoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1U
b3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50
X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFr
OworICAgIH07CisKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRv
dWNoU3RhdGlvbmFyeTsKK30KKworV2ViVG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZlbnQsIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVu
dDo6Tm9UeXBlOworICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1
dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hT
dGFydDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlw
ZV9tb3Rpb246CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hNb3ZlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICB0
eXBlID0gV2ViRXZlbnQ6OlRvdWNoRW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9p
bnB1dF90b3VjaF9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKworICAgIFZlY3RvcjxXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludD4gdG91
Y2hQb2ludHM7CisgICAgdG91Y2hQb2ludHMucmVzZXJ2ZUNhcGFjaXR5KGV2ZW50LT50b3VjaHBv
aW50c19sZW5ndGgpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGV2ZW50LT50b3Vj
aHBvaW50c19sZW5ndGg7ICsraSkgeworICAgICAgICBhdXRvJiBwb2ludCA9IGV2ZW50LT50b3Vj
aHBvaW50c1tpXTsKKyAgICAgICAgaWYgKHBvaW50LnR5cGUgPT0gd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3R5cGVfbnVsbCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIFdlYkNvcmU6
OkludFBvaW50IHBvaW50Q29vcmRpbmF0ZXM7CisgICAgICAgIHBvaW50Q29vcmRpbmF0ZXMuc2Nh
bGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgdG91Y2hQb2ludHMudW5jaGVja2Vk
QXBwZW5kKAorICAgICAgICAgICAgV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQocG9pbnQu
aWQsIHN0YXRlRm9yVG91Y2hQb2ludChldmVudC0+aWQsICZwb2ludCksCisgICAgICAgICAgICAg
ICAgcG9pbnRDb29yZGluYXRlcywgcG9pbnRDb29yZGluYXRlcykpOworICAgIH0KKworICAgIHJl
dHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6
TW9kaWZpZXJzKDApLCBldmVudC0+dGltZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJjNmRjODQ5YTAyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViRXZlbnRGYWN0b3J5X2gKKyNkZWZpbmUgV2ViRXZlbnRGYWN0b3J5X2gKKwor
I2luY2x1ZGUgIldlYkV2ZW50LmgiCisKK3N0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudDsKK3N0
cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50OworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViRXZlbnRGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViS2V5
Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9h
cmRfZXZlbnQqKTsKKyAgICBzdGF0aWMgV2ViTW91c2VFdmVudCBjcmVhdGVXZWJNb3VzZUV2ZW50
KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
KTsKKyAgICBzdGF0aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfYXhpc19ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICBzdGF0
aWMgV2ViVG91Y2hFdmVudCBjcmVhdGVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91
Y2hfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkV2ZW50RmFjdG9yeV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNzhhMzgwNDE1OWUuLjdiZmEwMzdkYWY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01NTcs
NCArNTU3LDggQEAgaW5saW5lIFByb3h5aW5nUmVmUHRyPFdlYkdyYW1tYXJEZXRhaWw+IHRvQVBJ
KGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmIGdyYW0KICNpbmNsdWRlICJXS0FQSUNhc3RH
dGsuaCIKICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRlICJX
S0FQSUNhc3RXUEUuaCIKKyNlbmRpZgorCiAjZW5kaWYgLy8gV0tBUElDYXN0X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLQVBJQ2FzdFdQRS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjhhMWU3MTcwMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmgK
QEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdLQVBJQ2FzdFdQRV9oCisjZGVmaW5lIFdLQVBJQ2FzdFdQRV9o
CisKKyNpZm5kZWYgV0tBUElDYXN0X2gKKyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tBUElD
YXN0LmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKworI2luY2x1
ZGUgIldLVmlldy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorCituYW1l
c3BhY2UgV0tXUEUgeworY2xhc3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dL
X0FERF9BUElfTUFQUElORyhXS1ZpZXdSZWYsIFdLV1BFOjpWaWV3KQorCitpbmxpbmUgV2ViQ29y
ZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgdG9WaWV3U3RhdGVGbGFncyhXS1ZpZXdTdGF0ZSB3a1Zp
ZXdTdGF0ZSkKK3sKKyAgICB1bnNpZ25lZCB2aWV3U3RhdGVGbGFncyA9IDA7CisKKyAgICBpZiAo
d2tWaWV3U3RhdGUgJiBrV0tWaWV3U3RhdGVJc0luV2luZG93KQorICAgICAgICB2aWV3U3RhdGVG
bGFncyB8PSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworICAgIGlmICh3a1Zp
ZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlzVmlzaWJsZSkKKyAgICAgICAgdmlld1N0YXRlRmxhZ3Mg
fD0gV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxlOworCisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzPih2aWV3U3RhdGVGbGFncyk7Cit9
CisKK30KKworI2VuZGlmIC8vIFdLQVBJQ2FzdFdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmNjYmIyMzcxNWVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldLVmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tW
aWV3UmVmIFdLVmlld0NyZWF0ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24p
Cit7CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUobnVsbHB0ciwgKnRvSW1w
bChjb25maWd1cmF0aW9uKSkpOworfQorCitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aFZpZXdC
YWNrZW5kKHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBXS1BhZ2VDb25maWd1cmF0
aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3Ojpj
cmVhdGUoYmFja2VuZCwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkpOworfQorCitXS1BhZ2VSZWYg
V0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYgdmlldykKK3sKKyAgICByZXR1cm4gdG9BUEkoJnRvSW1w
bCh2aWV3KS0+cGFnZSgpKTsKK30KKwordm9pZCBXS1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3UmVm
IHZpZXcsIFdLVmlld1N0YXRlIHZpZXdTdGF0ZSkKK3sKKyAgICB0b0ltcGwodmlldyktPnNldFZp
ZXdTdGF0ZSh0b1ZpZXdTdGF0ZUZsYWdzKHZpZXdTdGF0ZSkpOworfQorCit2b2lkIFdLVmlld1Nl
dFZpZXdDbGllbnQoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IFdLVmlld0NsaWVudEJhc2UqIGNsaWVu
dCkKK3sKKyAgICB0b0ltcGwodmlldyktPmluaXRpYWxpemVDbGllbnQoY2xpZW50KTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NTllYzJiNDViNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmgKQEAgLTAsMCArMSw3
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdLVmlld19oCisjZGVmaW5lIFdLVmlld19oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tC
YXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKworI2lmZGVmIF9fY3BsdXNw
bHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZDsKKwor
V0tfRVhQT1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVhdGUoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7
CitXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChzdHJ1Y3Qg
d3BlX3ZpZXdfYmFja2VuZCosIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpOworCitXS19FWFBPUlQg
V0tQYWdlUmVmIFdLVmlld0dldFBhZ2UoV0tWaWV3UmVmKTsKKworZW51bSB7CisgICAga1dLVmll
d1N0YXRlSXNJbldpbmRvdyA9IDEgPDwgMCwKKyAgICBrV0tWaWV3U3RhdGVJc1Zpc2libGUgPSAx
IDw8IDEsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS1ZpZXdTdGF0ZTsKKworV0tfRVhQT1JUIHZv
aWQgV0tWaWV3U2V0Vmlld1N0YXRlKFdLVmlld1JlZiwgV0tWaWV3U3RhdGUpOworCit0eXBlZGVm
IHZvaWQgKCpXS1ZpZXdGcmFtZURpc3BsYXllZCkoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOworCit0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRCYXNlIHsKKyAgICBp
bnQgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkKiBjbGllbnRJbmZvOworfSBXS1ZpZXdDbGllbnRC
YXNlOworCit0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRWMCB7CisgICAgV0tWaWV3Q2xpZW50
QmFzZSBiYXNlOworCisgICAgLy8gdmVyc2lvbiAwCisgICAgV0tWaWV3RnJhbWVEaXNwbGF5ZWQg
ZnJhbWVEaXNwbGF5ZWQ7Cit9IFdLVmlld0NsaWVudFYwOworCitXS19FWFBPUlQgdm9pZCBXS1Zp
ZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiwgY29uc3QgV0tWaWV3Q2xpZW50QmFzZSopOworCisj
aWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tWaWV3X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5n
TWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YTQwNGVjNWQ5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1
ZGUgIkF0dGFjaG1lbnQuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8d3BlL3ZpZXctYmFja2Vu
ZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkNv
bXBvc2l0aW5nTWFuYWdlclByb3h5KFdLV1BFOjpWaWV3JiB2aWV3KQorICAgIDogbV92aWV3KHZp
ZXcpCit7Cit9CisKK0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Ojp+Q29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHkoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmluaXRp
YWxpemUoKQoreworICAgIG1fdmlldy5wYWdlKCkucHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3ZpZXcucGFnZSgpLnBhZ2VJRCgpLCAqdGhpcyk7Cit9CisKK3Zv
aWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmVzdGFibGlzaENvbm5lY3Rpb24oSVBDOjpBdHRh
Y2htZW50JiBjb25uZWN0aW9uSGFuZGxlKQoreworICAgIGNvbm5lY3Rpb25IYW5kbGUgPSBJUEM6
OkF0dGFjaG1lbnQod3BlX3ZpZXdfYmFja2VuZF9nZXRfcmVuZGVyZXJfaG9zdF9mZChtX3ZpZXcu
YmFja2VuZCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI4OTYwOWQzZmE1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHlfaAorI2RlZmluZSBDb21wb3NpdGluZ01hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJN
ZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNw
YWNlIElQQyB7CitjbGFzcyBBdHRhY2htZW50OworfQorCituYW1lc3BhY2UgV0tXUEUgeworY2xh
c3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFu
YWdlclByb3h5IGZpbmFsIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShDb21wb3NpdGluZ01hbmFnZXJQcm94eSk7CitwdWJsaWM6CisgICAg
Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6OlZpZXcmKTsKKyAgICB2aXJ0dWFsIH5Db21w
b3NpdGluZ01hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKCk7CisKK3ByaXZh
dGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGUgeyB9
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKSBvdmVycmlkZTsKKworICAgIHZvaWQgZXN0YWJsaXNoQ29ubmVjdGlvbihJUEM6OkF0dGFj
aG1lbnQmKTsKKworICAgIFdLV1BFOjpWaWV3JiBtX3ZpZXc7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbXBvc2l0aW5nTWFuYWdlclByb3h5X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjE5YTAwNTU3Nzc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkgeworICAgIEVzdGFibGlzaENvbm5lY3Rpb24oKSAtPiAoSVBDOjpB
dHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YzYwYzQ2Yzc5MwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUu
Y3BwCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYXdpbmdBcmVh
UHJveHlXUEUuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEcmF3
aW5nQXJlYVByb3h5V1BFOjpEcmF3aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQcm94eSYgcGFnZSkK
KyAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlV1BFLCBwYWdlKQoreworfQor
CitEcmF3aW5nQXJlYVByb3h5V1BFOjp+RHJhd2luZ0FyZWFQcm94eVdQRSgpCit7Cit9CisKK3Zv
aWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6ZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6c2l6
ZURpZENoYW5nZSgpCit7CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkKKyAgICAg
ICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpV
cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgwLCBmYWxzZSwgbV93ZWJQYWdlUHJveHkuZGV2aWNlU2Nh
bGVGYWN0b3IoKSwgbV9zaXplLCBtX3Njcm9sbE9mZnNldCksIG1fd2ViUGFnZVByb3h5LnBhZ2VJ
RCgpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkaXNwYXRjaEFmdGVyRW5zdXJp
bmdEcmF3aW5nKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxi
YWNrRnVuY3Rpb24pCit7CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5pc1ZhbGlkKCkpIHsKKyAg
ICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldhc0ludmFs
aWRhdGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbY2FsbGJhY2tGdW5jdGlvbl0geyBjYWxsYmFja0Z1bmN0aW9uKENhbGxiYWNrQmFz
ZTo6RXJyb3I6Ok5vbmUpOyB9KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjp1cGRh
dGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkaWRV
cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25z
dCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjplbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVy
VHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCit7CisgICAgQVNTRVJUKCFiYWNraW5nU3Rv
cmVTdGF0ZUlEKTsKKworICAgIG1fbGF5ZXJUcmVlQ29udGV4dCA9IGxheWVyVHJlZUNvbnRleHQ7
CisgICAgbV93ZWJQYWdlUHJveHkuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXll
clRyZWVDb250ZXh0KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpleGl0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3Qg
VXBkYXRlSW5mbyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5n
QXJlYVByb3h5V1BFOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBi
YWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0JikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjAzMDIwODU4M2IKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVBy
b3h5V1BFLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERyYXdpbmdBcmVhUHJveHlXUEVfaAorI2RlZmlu
ZSBEcmF3aW5nQXJlYVByb3h5V1BFX2gKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIK
KworI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIERyYXdpbmdBcmVhUHJveHlXUEUgZmluYWwgOiBwdWJsaWMgRHJhd2luZ0FyZWFQcm94
eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRHJhd2luZ0FyZWFQcm94eVdQRShXZWJQYWdlUHJv
eHkmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVByb3h5V1BFKCk7CisKK3ByaXZhdGU6Cisg
ICAgLy8gRHJhd2luZ0FyZWFQcm94eQorICAgIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFu
Z2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoc3RkOjpmdW5jdGlvbjx2b2lkIChDYWxs
YmFja0Jhc2U6OkVycm9yKT4pIG92ZXJyaWRlOworCisgICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxl
cnMKKyAgICB2b2lkIHVwZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBV
cGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJiwgY29uc3Qg
TGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRy
ZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpIG92
ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0
X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRl
OworCisgICAgLy8gVGhlIGN1cnJlbnQgbGF5ZXIgdHJlZSBjb250ZXh0LgorICAgIExheWVyVHJl
ZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworfTsKKworfQorCisKKyNlbmRpZiAvLyBEcmF3
aW5nQXJlYVByb3h5V1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uODRlMTAyZWNmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSwzMjEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisKKyNpbmNsdWRlICJEcmF3aW5n
QXJlYVByb3h5V1BFLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1
ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JvbGxHZXN0dXJlQ29udHJv
bGxlci5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0TWVudVBy
b3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFnZUNsaWVu
dEltcGw6OlBhZ2VDbGllbnRJbXBsKFdLV1BFOjpWaWV3JiB2aWV3KQorICAgIDogbV92aWV3KHZp
ZXcpCisgICAgLCBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8U2Ny
b2xsR2VzdHVyZUNvbnRyb2xsZXI+KCkpCit7Cit9CisKK1BhZ2VDbGllbnRJbXBsOjp+UGFnZUNs
aWVudEltcGwoKSA9IGRlZmF1bHQ7CisKK3N0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5
PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCit7CisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0FyZWFQcm94eVdQRT4obV92aWV3LnBhZ2UoKSk7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29y
ZTo6UmVnaW9uJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29s
KQoreworfQorCitXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xs
UG9zaXRpb24oKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1dlYkNvcmU6OkludFNpemUgUGFn
ZUNsaWVudEltcGw6OnZpZXdTaXplKCkKK3sKKyAgICByZXR1cm4gbV92aWV3LnNpemUoKTsKK30K
KworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3V2luZG93QWN0aXZlKCkKK3sKKyAgICByZXR1
cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNB
Y3RpdmU7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld0ZvY3VzZWQoKQoreworICAg
IHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0Zv
Y3VzZWQ7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld1Zpc2libGUoKQoreworICAg
IHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zp
c2libGU7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld0luV2luZG93KCkKK3sKKyAg
ICByZXR1cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNJ
bldpbmRvdzsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc0RpZEV4aXQoKQorewor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3MoKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpwYWdlQ2xvc2VkKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBs
Ojp0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0cmlu
ZyYsIGJvb2wpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVx
dWVzdChEb3dubG9hZFByb3h5KikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hh
bmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpCit7Cit9CisKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkK
K3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVz
KGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpCit7Cit9CisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFBy
b3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjbGVhckFsbEVkaXRDb21tYW5kcygpCit7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6
OmNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4ZWN1dGVVbmRvUmVkbyhXZWJQYWdlUHJv
eHk6OlVuZG9PclJlZG8pCit7Cit9CisKK1dlYkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50SW1w
bDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZWN0KQor
eworICAgIHJldHVybiByZWN0OworfQorCitXZWJDb3JlOjpGbG9hdFJlY3QgUGFnZUNsaWVudElt
cGw6OmNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpCit7
CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK1dlYkNvcmU6OkludFBvaW50IFBhZ2VDbGllbnRJbXBs
OjpzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCkKK3sKKyAg
ICByZXR1cm4gcG9pbnQ7Cit9CisKK1dlYkNvcmU6OkludFJlY3QgUGFnZUNsaWVudEltcGw6OnJv
b3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1
cm4gcmVjdDsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25z
dCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIHRvdWNo
RXZlbnQsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKQoreworICAgIGlmICh3YXNFdmVudEhhbmRsZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZl
bnRfcmF3KiB0b3VjaFBvaW50ID0gdG91Y2hFdmVudC5uYXRpdmVGYWxsYmFja1RvdWNoUG9pbnQo
KTsKKyAgICBpZiAodG91Y2hQb2ludC0+dHlwZSA9PSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlw
ZV9udWxsKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBwYWdlID0gbV92aWV3LnBhZ2Uo
KTsKKworICAgIGlmIChtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyLT5oYW5kbGVFdmVudCh0b3Vj
aFBvaW50KSkgeworICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVu
dCA9IG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXItPmF4aXNFdmVudCgpOworICAgICAgICBpZiAo
YXhpc0V2ZW50LT50eXBlICE9IHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVfbnVsbCkKKyAgICAg
ICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQo
YXhpc0V2ZW50LCBtX3ZpZXcucGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBwb2lu
dGVyRXZlbnR7CisgICAgICAgIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbCwgdG91
Y2hQb2ludC0+dGltZSwKKyAgICAgICAgdG91Y2hQb2ludC0+eCwgdG91Y2hQb2ludC0+eSwKKyAg
ICAgICAgMSwgMAorICAgIH07CisKKyAgICBzd2l0Y2ggKHRvdWNoUG9pbnQtPnR5cGUpIHsKKyAg
ICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHBvaW50ZXJF
dmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgICAg
IHBvaW50ZXJFdmVudC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOworICAgICAgICBwb2ludGVyRXZl
bnQuc3RhdGUgPSAxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9l
dmVudF90eXBlX3VwOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2lu
dGVyX2V2ZW50X3R5cGVfYnV0dG9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAwOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVs
bDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBwYWdlLmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudCgmcG9pbnRl
ckV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hl
ZWxFdmVudCYpCit7Cit9CisKK1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudElt
cGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCit7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKK3N0ZDo6dW5pcXVlX3B0cjxX
ZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94
eShXZWJQYWdlUHJveHkmLCBjb25zdCBDb250ZXh0TWVudUNvbnRleHREYXRhJiwgY29uc3QgVXNl
ckRhdGEmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4aXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQ
cm92aWRlcihjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkKK3sKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVXaWxsRW5kKGJvb2wsIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZp
Z2F0aW9uR2VzdHVyZURpZEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikKK3sKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aWxsUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZW1v
dmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKK3sKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFt
ZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6cmVmVmlldygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRlcmVmVmlldygpCit7
Cit9CisKKyNpZiBFTkFCTEUoVklERU8pCitib29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xp
Y3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxN
aXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKyNlbmRpZgorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9z
aXRpb24oKQoreworfQorCitXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIFBh
Z2VDbGllbnRJbXBsOjp1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1
cm4gV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9QYWdlQ2xpZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4yOGVkODMzZDJlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQYWdlQ2xpZW50
SW1wbF9oCisjZGVmaW5lIFBhZ2VDbGllbnRJbXBsX2gKKworI2luY2x1ZGUgIlBhZ2VDbGllbnQu
aCIKKworbmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjsKKworY2xhc3MgUGFnZUNsaWVu
dEltcGwgZmluYWwgOiBwdWJsaWMgUGFnZUNsaWVudCB7CitwdWJsaWM6CisgICAgUGFnZUNsaWVu
dEltcGwoV0tXUEU6OlZpZXcmKTsKKyAgICB2aXJ0dWFsIH5QYWdlQ2xpZW50SW1wbCgpOworCitw
cml2YXRlOgorICAgIC8vIFBhZ2VDbGllbnQKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxE
cmF3aW5nQXJlYVByb3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkgb3ZlcnJpZGU7Cisg
ICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzVmlld0ZvY3VzZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3VmlzaWJs
ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdJbldpbmRvdygpIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRFeGl0KCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlbGF1bmNoUHJvY2VzcygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBwYWdlQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByZWZlcmVuY2VzRGlk
Q2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIGRp
ZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5Kikgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihj
b25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vy
c29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRy
aWJ1dGVzJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFu
ZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJl
ZG8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckFsbEVkaXRDb21tYW5kcygpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9P
clJlZG8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlVW5kb1JlZG8oV2ViUGFn
ZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6Rmxv
YXRSZWN0IGNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb1VzZXJTcGFj
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZG9u
ZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJU
b3VjaEV2ZW50JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRX
YXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBvdmVycmlk
ZTsKKworICAgIHZpcnR1YWwgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1l
bnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVh
dGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4
dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250
ZXh0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIo
Y29uc3QgU3RyaW5nJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJikgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRCZWdpbigpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2VzdHVy
ZURpZEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0ZvcndhcmRMaXN0SXRl
bSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVy
ZVNuYXBzaG90KCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
U2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
VHlwZSkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENv
bG9yKCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVmVmlldygpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsKKworI2lmIEVOQUJMRShWSURF
TykKKyAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdNZWRpYVBs
dWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Np
b25SZXF1ZXN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0
b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6VXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkg
b3ZlcnJpZGU7CisKKyAgICB2b2lkIGRpZENoYW5nZUNsaXBUb1NhZmVBcmVhKGJvb2wpIG92ZXJy
aWRlIHsgfQorCisgICAgV0tXUEU6OlZpZXcmIG1fdmlldzsKKworICAgIHN0ZDo6dW5pcXVlX3B0
cjxTY3JvbGxHZXN0dXJlQ29udHJvbGxlcj4gbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxlcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUGFnZUNsaWVudEltcGxfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVy
ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xs
R2VzdHVyZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5kYTEyYzhlYjM1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDgwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIgorCisj
aW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jv
b2wgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZUV2ZW50KGNvbnN0IHN0cnVjdCB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBvaW50KQoreworICAgIHN3aXRjaCAodG91Y2hQ
b2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoK
KyAgICAgICAgbV9zdGFydC50aW1lID0gdG91Y2hQb2ludC0+dGltZTsKKyAgICAgICAgbV9zdGFy
dC54ID0gdG91Y2hQb2ludC0+eDsKKyAgICAgICAgbV9zdGFydC55ID0gdG91Y2hQb2ludC0+eTsK
KyAgICAgICAgbV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgIG1fb2Zmc2V0Lnkg
PSB0b3VjaFBvaW50LT55OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSB3cGVfaW5w
dXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIGlmICghbV9oYW5kbGluZykgewor
ICAgICAgICAgICAgaW50MzJfdCBkZWx0YVggPSB0b3VjaFBvaW50LT54IC0gbV9zdGFydC54Owor
ICAgICAgICAgICAgaW50MzJfdCBkZWx0YVkgPSB0b3VjaFBvaW50LT55IC0gbV9zdGFydC55Owor
ICAgICAgICAgICAgdWludDMyX3QgZGVsdGFUaW1lID0gdG91Y2hQb2ludC0+dGltZSAtIG1fc3Rh
cnQudGltZTsKKworICAgICAgICAgICAgaW50IHBpeGVsc1BlckxpbmVTdGVwID0gV2ViQ29yZTo6
U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpOworICAgICAgICAgICAgbV9oYW5kbGluZyA9
IHN0ZDo6YWJzKGRlbHRhWCkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAgICAgICAgICAgICB8
fCBzdGQ6OmFicyhkZWx0YVkpID49IHBpeGVsc1BlckxpbmVTdGVwCisgICAgICAgICAgICAgICAg
fHwgZGVsdGFUaW1lID49IDIwMDsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9oYW5kbGluZykg
eworICAgICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3BlX2lucHV0
X2F4aXNfZXZlbnRfdHlwZV9tb3Rpb24sCisgICAgICAgICAgICAgICAgdG91Y2hQb2ludC0+dGlt
ZSwgbV9zdGFydC54LCBtX3N0YXJ0LnksCisgICAgICAgICAgICAgICAgMiwgKHRvdWNoUG9pbnQt
PnkgLSBtX29mZnNldC55KQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIG1fb2Zmc2V0Lngg
PSB0b3VjaFBvaW50LT54OworICAgICAgICAgICAgbV9vZmZzZXQueSA9IHRvdWNoUG9pbnQtPnk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV91cDoKKyAgICAgICAgaWYg
KG1faGFuZGxpbmcpIHsKKyAgICAgICAgICAgIG1faGFuZGxpbmcgPSBmYWxzZTsKKyAgICAgICAg
ICAgIG1fYXhpc0V2ZW50ID0geworICAgICAgICAgICAgICAgIHdwZV9pbnB1dF9heGlzX2V2ZW50
X3R5cGVfbnVsbCwKKyAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwCisgICAgICAgICAgICB9
OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3ZDE3MjRhYWRjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3BlL2lucHV0Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIgeworcHVibGlj
OgorICAgIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyKCkgPSBkZWZhdWx0OworCisgICAgc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBheGlzRXZlbnQoKSB7IHJldHVybiAmbV9heGlzRXZlbnQ7
IH0KKworICAgIGJvb2wgaGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9l
dmVudF9yYXcqKTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50MzJfdCB0
aW1lIHsgMCB9OworICAgICAgICBpbnQzMl90IHggeyAwIH07CisgICAgICAgIGludDMyX3QgeSB7
IDAgfTsKKyAgICB9IG1fc3RhcnQ7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBpbnQzMl90IHgg
eyAwIH07CisgICAgICAgIGludDMyX3QgeSB7IDAgfTsKKyAgICB9IG1fb2Zmc2V0OworCisgICAg
Ym9vbCBtX2hhbmRsaW5nIHsgZmFsc2UgfTsKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQgbV9heGlzRXZlbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjdmOWYxMmNkMmQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKQEAgLTAsMCArMSwxNTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKworI2luY2x1ZGUgIkFQSVBhZ2VD
b25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgorI2lu
Y2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJUb3VjaEV2
ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIldlYlBh
Z2VHcm91cC5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSA8d3BlL3Zp
ZXctYmFja2VuZC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV0tX
UEUgeworCitWaWV3OjpWaWV3KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBjb25z
dCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBiYXNlQ29uZmlndXJhdGlvbikKKyAgICA6IG1fcGFn
ZUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDbGllbnRJbXBsPigqdGhpcykpCisgICAgLCBt
X3NpemV7IDgwMCwgNjAwIH0KKyAgICAsIG1fdmlld1N0YXRlRmxhZ3MoV2ViQ29yZTo6QWN0aXZp
dHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3Vz
ZWQgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc0luV2luZG93KQorICAgICwgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94eSgqdGhp
cykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBiYXNlQ29uZmlndXJhdGlvbi5jb3B5KCk7
CisgICAgYXV0byogcHJlZmVyZW5jZXMgPSBjb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpOwor
ICAgIGlmICghcHJlZmVyZW5jZXMgJiYgY29uZmlndXJhdGlvbi0+cGFnZUdyb3VwKCkpIHsKKyAg
ICAgICAgcHJlZmVyZW5jZXMgPSAmY29uZmlndXJhdGlvbi0+cGFnZUdyb3VwKCktPnByZWZlcmVu
Y2VzKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldFByZWZlcmVuY2VzKHByZWZlcmVuY2Vz
KTsKKyAgICB9CisgICAgaWYgKHByZWZlcmVuY2VzKSB7CisgICAgICAgIHByZWZlcmVuY2VzLT5z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcHJlZmVyZW5j
ZXMtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgICBwcmVmZXJlbmNlcy0+
c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2Vz
LT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRXZWJTZWN1
cml0eUVuYWJsZWQoZmFsc2UpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0RGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisKKyAgICBhdXRvKiBwb29sID0gY29uZmlndXJhdGlv
bi0+cHJvY2Vzc1Bvb2woKTsKKyAgICBtX3BhZ2VQcm94eSA9IHBvb2wtPmNyZWF0ZVdlYlBhZ2Uo
Km1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisKKyAgICBtX2JhY2tlbmQg
PSBiYWNrZW5kOworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAgICBtX2JhY2tlbmQgPSB3cGVf
dmlld19iYWNrZW5kX2NyZWF0ZSgpOworICAgIG1fY29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaW5p
dGlhbGl6ZSgpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2NsaWVudCBz
X2JhY2tlbmRDbGllbnQgPSB7CisgICAgICAgIC8vIHNldF9zaXplCisgICAgICAgIFtdKHZvaWQq
IGRhdGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisgICAg
ICAgICAgICB2aWV3LnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7Cisg
ICAgICAgIH0sCisgICAgICAgIC8vIGZyYW1lX2Rpc3BsYXllZAorICAgICAgICBbXSh2b2lkKiBk
YXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3ID0gKnJlaW50ZXJwcmV0X2Nh
c3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5mcmFtZURpc3BsYXllZCgpOworICAg
ICAgICB9CisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9iYWNrZW5kX2NsaWVudCht
X2JhY2tlbmQsICZzX2JhY2tlbmRDbGllbnQsIHRoaXMpOworCisgICAgc3RhdGljIHN0cnVjdCB3
cGVfdmlld19iYWNrZW5kX2lucHV0X2NsaWVudCBzX2lucHV0Q2xpZW50ID0geworICAgICAgICAv
LyBoYW5kbGVfa2V5Ym9hcmRfZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdw
ZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1
dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisgICAgICAgICAgICB2
aWV3LnBhZ2UoKS5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRF
dmVudChldmVudCkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfcG9pbnRlcl9ldmVu
dAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQq
IGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnByZXRf
Y2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlTW91c2VF
dmVudChXZWJLaXQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVG
YWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfYXhpc19ldmVudAorICAg
ICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50KQor
ICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnByZXRfY2FzdDxWaWV3
Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJL
aXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkp
OworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfdG91Y2hfZXZlbnQKKyAgICAgICAgW10o
dm9pZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZlbnQpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRh
KS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3VjaEV2ZW50KFdlYktpdDo6TmF0
aXZlV2ViVG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7CisgICAg
ICAgIH0sCisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9pbnB1dF9jbGllbnQobV9i
YWNrZW5kLCAmc19pbnB1dENsaWVudCwgdGhpcyk7CisKKyAgICB3cGVfdmlld19iYWNrZW5kX2lu
aXRpYWxpemUobV9iYWNrZW5kKTsKKworICAgIG1fcGFnZVByb3h5LT5pbml0aWFsaXplV2ViUGFn
ZSgpOworfQorCitWaWV3Ojp+VmlldygpCit7CisgICAgd3BlX3ZpZXdfYmFja2VuZF9kZXN0cm95
KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgVmlldzo6aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS1Zp
ZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQp
OworfQorCit2b2lkIFZpZXc6OmZyYW1lRGlzcGxheWVkKCkKK3sKKyAgICBtX2NsaWVudC5mcmFt
ZURpc3BsYXllZCgqdGhpcyk7Cit9CisKK3ZvaWQgVmlldzo6c2V0U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisgICAgaWYgKG1fcGFnZVBy
b3h5LT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBtX3BhZ2VQcm94eS0+ZHJhd2luZ0FyZWEoKS0+
c2V0U2l6ZShzaXplLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNvcmU6OkludFNpemUoKSk7Cit9
CisKK3ZvaWQgVmlldzo6c2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdz
IGZsYWdzKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFn
cyBkZWZhdWx0RmxhZ3MgPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKKworICAgIFdlYkNvcmU6OkFjdGl2
aXR5U3RhdGU6OkZsYWdzIGNoYW5nZWRGbGFncyA9IG1fdmlld1N0YXRlRmxhZ3MgXiAoZGVmYXVs
dEZsYWdzIHwgZmxhZ3MpOworICAgIG1fdmlld1N0YXRlRmxhZ3MgPSBkZWZhdWx0RmxhZ3MgfCBm
bGFnczsKKworICAgIGlmIChjaGFuZ2VkRmxhZ3MpCisgICAgICAgIG1fcGFnZVByb3h5LT5hY3Rp
dml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWRGbGFncyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdL
V1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM3MzZlOTNjYzUwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oCkBAIC0wLDAg
KzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXUEVWaWV3X2gKKyNkZWZpbmUgV1BFVmlld19oCisKKyNpbmNsdWRlICJBUElP
YmplY3QuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUg
IlBhZ2VDbGllbnRJbXBsLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAi
V1BFVmlld0NsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2lu
Y2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3N0cnVjdCB3cGVfdmll
d19iYWNrZW5kOworCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VHcm91cDsKK2Ns
YXNzIFdlYlByb2Nlc3NQb29sOworfQorCituYW1lc3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3
IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Vmlldz4geworcHVi
bGljOgorICAgIHN0YXRpYyBWaWV3KiBjcmVhdGUoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJh
Y2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAg
eworICAgICAgICByZXR1cm4gbmV3IFZpZXcoYmFja2VuZCwgY29uZmlndXJhdGlvbik7CisgICAg
fQorCisgICAgLy8gQ2xpZW50IG1ldGhvZHMKKyAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29u
c3QgV0tWaWV3Q2xpZW50QmFzZSopOworICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoKTsKKworICAg
IFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gKm1fcGFnZVByb3h5OyB9CisK
KyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIHsgcmV0dXJuIG1fYmFja2Vu
ZDsgfQorCisgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2l6ZTsgfQorCisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRl
KCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3RhdGVGbGFnczsgfQorICAgIHZvaWQgc2V0Vmlld1N0
YXRlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBWaWV3
KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYp
OworICAgIHZpcnR1YWwgflZpZXcoKTsKKworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBzaXplKTsKKworICAgIFZpZXdDbGllbnQgbV9jbGllbnQ7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViS2l0OjpQYWdlQ2xpZW50SW1wbD4gbV9wYWdlQ2xpZW50OworICAgIFJl
ZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gbV9wYWdlUHJveHk7CisgICAgV2ViQ29yZTo6SW50
U2l6ZSBtX3NpemU7CisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgbV92aWV3U3Rh
dGVGbGFnczsKKworICAgIFdlYktpdDo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkgbV9jb21wb3Np
dGluZ01hbmFnZXJQcm94eTsKKyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogbV9iYWNrZW5k
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV0tXUEUKKworI2VuZGlmIC8vIFdQRVZpZXdfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWYxZjM3ZDllN2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xp
ZW50LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXUEVWaWV3
Q2xpZW50LmgiCisKKyNpbmNsdWRlICJXUEVWaWV3LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CisjaW5jbHVkZSAiV0tCYXNlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVz
cGFjZSBXS1dQRSB7CisKK3ZvaWQgVmlld0NsaWVudDo6ZnJhbWVEaXNwbGF5ZWQoVmlldyYgdmll
dykKK3sKKyAgICBpZiAobV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQpCisgICAgICAgIG1fY2xpZW50
LmZyYW1lRGlzcGxheWVkKHRvQVBJKCZ2aWV3KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV0tXUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uODRkZmQ1YjE1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQRVZp
ZXdDbGllbnRfaAorI2RlZmluZSBXUEVWaWV3Q2xpZW50X2gKKworI2luY2x1ZGUgIkFQSUNsaWVu
dC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXcuaD4KKworbmFtZXNwYWNlIEFQSSB7Cit0ZW1w
bGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tWaWV3Q2xpZW50QmFzZT4geworICAgIHR5cGVk
ZWYgc3RkOjp0dXBsZTxXS1ZpZXdDbGllbnRWMD4gVmVyc2lvbnM7Cit9OworfQorCituYW1lc3Bh
Y2UgV0tXUEUgeworCitjbGFzcyBWaWV3OworCitjbGFzcyBWaWV3Q2xpZW50IDogcHVibGljIEFQ
STo6Q2xpZW50PFdLVmlld0NsaWVudEJhc2U+IHsKK3B1YmxpYzoKKyAgICB2b2lkIGZyYW1lRGlz
cGxheWVkKFZpZXcmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisKKyNlbmRpZiAv
LyBXUEVWaWV3Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU4MjA5MmJiZmVhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mklu
c3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGdyZXNvdXJjZXM+CisgIDxncmVzb3VyY2UgcHJl
Zml4PSIvb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZSI+CisgICAgPGZpbGU+aW5zcGVj
dG9yUGFnZUluZGV4Lmh0bWw8L2ZpbGU+CisgIDwvZ3Jlc291cmNlPgorPC9ncmVzb3VyY2VzPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MjdiZWMzNjIzMTUuLmZkODQ4Y2NlZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBDaGlsZFByb2Nl
c3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMm
IGxhdW5jaE8KICAgICBpZiAobV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkpCiAgICAg
ICAgIGxhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKEFTQ0lJTGl0ZXJh
bCgiYWx3YXlzLXJ1bnMtYXQtYmFja2dyb3VuZC1wcmlvcml0eSIpLCAidHJ1ZSIpOwogCi0jaWYg
RU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjaWYgRU5BQkxFKERFVkVM
T1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQogICAgIGNvbnN0
IGNoYXIqIHZhcm5hbWU7CiAgICAgc3dpdGNoIChsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlKSB7
CiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWI6CkBAIC03OSw3ICs3
OSw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPCiAgICAgY29uc3QgY2hhciogcHJvY2Vzc0Nt
ZFByZWZpeCA9IGdldGVudih2YXJuYW1lKTsKICAgICBpZiAocHJvY2Vzc0NtZFByZWZpeCAmJiAq
cHJvY2Vzc0NtZFByZWZpeCkKICAgICAgICAgbGF1bmNoT3B0aW9ucy5wcm9jZXNzQ21kUHJlZml4
ID0gU3RyaW5nOjpmcm9tVVRGOChwcm9jZXNzQ21kUHJlZml4KTsKLSNlbmRpZiAvLyBFTkFCTEUo
REVWRUxPUEVSX01PREUpICYmIFBMQVRGT1JNKEdUSykKKyNlbmRpZiAvLyBFTkFCTEUoREVWRUxP
UEVSX01PREUpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiB9CiAKIHZvaWQg
Q2hpbGRQcm9jZXNzUHJveHk6OmNvbm5lY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmgKaW5k
ZXggOTM5YTdlMjFiNzguLjA3NDg3YmEzZTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmgK
QEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENsb3NlV2ViU29ja2V0Q29u
bmVjdGlvbihXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uKikgZmluYWw7CiAKICAgICBib29sIHBs
YXRmb3JtUmVzb3VyY2VGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgVmVjdG9yPGNoYXI+JiBk
YXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBidWlsZFBhZ2VMaXN0KFZlY3Rvcjxj
aGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9y
U2VydmVyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
d3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjI2ODNlM2Q3MTYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9yU2VydmVyV1BFLmNw
cApAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVs
ZWN0cm9uaWNzIEx0ZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgorCisjaWYg
RU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JQcm94eS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRl
IDxnbW9kdWxlLmg+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViSW5zcGVj
dG9yU2VydmVyOjpwbGF0Zm9ybVJlc291cmNlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIFZl
Y3RvcjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSkKK3sKKyAgICAvLyBUaGUgcGFn
ZSBsaXN0IGNvbnRhaW5zIGFuIHVuZm9ybWF0ZWQgbGlzdCBvZiBwYWdlcyB0aGF0IGNhbiBiZSBp
bnNwZWN0ZWQgd2l0aCBhIGxpbmsgdG8gb3BlbiBhIHNlc3Npb24uCisgICAgaWYgKHBhdGggPT0g
Ii9wYWdlbGlzdC5qc29uIikgeworICAgICAgICBidWlsZFBhZ2VMaXN0KGRhdGEsIGNvbnRlbnRU
eXBlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIGZsYWc7CisgICAgc3RkOjpjYWxsX29uY2UoZmxhZywgW10geworICAgICAgICBHTW9k
dWxlKiByZXNvdXJjZXNNb2R1bGUgPSBnX21vZHVsZV9vcGVuKCJsaWJXUEVXZWJJbnNwZWN0b3JS
ZXNvdXJjZXMuc28iLCBHX01PRFVMRV9CSU5EX0xBWlkpOworICAgICAgICBpZiAoIXJlc291cmNl
c01vZHVsZSkgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJFcnJvciBsb2FkaW5nIGxpYldQ
RVdlYkluc3BlY3RvclJlc291cmNlcy5zbzogJXMiLCBnX21vZHVsZV9lcnJvcigpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGdfbW9kdWxlX21ha2VfcmVzaWRl
bnQocmVzb3VyY2VzTW9kdWxlKTsKKyAgICB9KTsKKworICAgIC8vIFBvaW50IHRoZSBkZWZhdWx0
IHBhdGggdG8gYSBmb3JtYXR0ZWQgcGFnZSB0aGF0IHF1ZXJpZXMgdGhlIHBhZ2UgbGlzdCBhbmQg
ZGlzcGxheSB0aGVtLgorICAgIENTdHJpbmcgcmVzb3VyY2VQYXRoID0gbWFrZVN0cmluZygiL29y
Zy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UiLCAocGF0aCA9PSAiLyIgPyAiL2luc3BlY3Rv
clBhZ2VJbmRleC5odG1sIiA6IHBhdGgpKS51dGY4KCk7CisgICAgaWYgKHJlc291cmNlUGF0aC5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgR1VuaXF1ZU91dFB0cjxHRXJy
b3I+IGVycm9yOworICAgIEdSZWZQdHI8R0J5dGVzPiByZXNvdXJjZUJ5dGVzID0gYWRvcHRHUmVm
KGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHJlc291cmNlUGF0aC5kYXRhKCksIEdfUkVTT1VSQ0Vf
TE9PS1VQX0ZMQUdTX05PTkUsICZlcnJvci5vdXRQdHIoKSkpOworICAgIGlmICghcmVzb3VyY2VC
eXRlcykgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PkVy
cm9yOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoZXJyb3ItPmNvZGUpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgb2NjdXJy
ZWQgZHVyaW5nIGZldGNoaW5nIGluc3BlY3RvciByZXNvdXJjZSBmaWxlcy48L2JvZHk+PC9odG1s
PiIpOworCisgICAgICAgIENTdHJpbmcgZXJyb3JIVE1MID0gYnVpbGRlci50b1N0cmluZygpLnV0
ZjgoKTsKKyAgICAgICAgZGF0YS5hcHBlbmQoZXJyb3JIVE1MLmRhdGEoKSwgZXJyb3JIVE1MLmxl
bmd0aCgpKTsKKyAgICAgICAgY29udGVudFR5cGUgPSAidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04
IjsKKworICAgICAgICBXVEZMb2dBbHdheXMoIkVycm9yIGZldGNoaW5nIHdlYmluc3BlY3RvciBy
ZXNvdXJjZSBmaWxlczogJWQsICVzIiwgZXJyb3ItPmNvZGUsIGVycm9yLT5tZXNzYWdlKTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGdzaXplIHJlc291cmNlRGF0YVNpemU7
CisgICAgZ2NvbnN0cG9pbnRlciByZXNvdXJjZURhdGEgPSBnX2J5dGVzX2dldF9kYXRhKHJlc291
cmNlQnl0ZXMuZ2V0KCksICZyZXNvdXJjZURhdGFTaXplKTsKKyAgICBkYXRhLmFwcGVuZChzdGF0
aWNfY2FzdDxjb25zdCBjaGFyKj4ocmVzb3VyY2VEYXRhKSwgcmVzb3VyY2VEYXRhU2l6ZSk7CisK
KyAgICBHVW5pcXVlUHRyPGdjaGFyPiBtaW1lVHlwZShnX2NvbnRlbnRfdHlwZV9ndWVzcyhyZXNv
dXJjZVBhdGguZGF0YSgpLCBzdGF0aWNfY2FzdDxjb25zdCBndWNoYXIqPihyZXNvdXJjZURhdGEp
LCByZXNvdXJjZURhdGFTaXplLCBudWxscHRyKSk7CisgICAgY29udGVudFR5cGUgPSBtaW1lVHlw
ZS5nZXQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JTZXJ2ZXI6
OmJ1aWxkUGFnZUxpc3QoVmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKQor
eworICAgIC8vIGNocm9tZWRldnRvb2xzIChodHRwOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21l
ZGV2dG9vbHMpIDAuMy44IGV4cGVjdGVkIEpTT04gZm9ybWF0OgorICAgIC8vIHsKKyAgICAvLyAg
InRpdGxlIjogIkZvbyIsCisgICAgLy8gICJ1cmwiOiAiaHR0cDovL2ZvbyIsCisgICAgLy8gICJk
ZXZ0b29sc0Zyb250ZW5kVXJsIjogIi9NYWluLmh0bWw/d3M9bG9jYWxob3N0OjkyMjIvZGV2dG9v
bHMvcGFnZS8xIiwKKyAgICAvLyAgIndlYlNvY2tldERlYnVnZ2VyVXJsIjogIndzOi8vbG9jYWxo
b3N0OjkyMjIvZGV2dG9vbHMvcGFnZS8xIgorICAgIC8vIH0sCisKKyAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJbICIpOworICAgIENsaWVudE1h
cDo6aXRlcmF0b3IgZW5kID0gbV9jbGllbnRNYXAuZW5kKCk7CisgICAgZm9yIChDbGllbnRNYXA6
Oml0ZXJhdG9yIGl0ID0gbV9jbGllbnRNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Cisg
ICAgICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZSA9IGl0LT52YWx1ZS0+aW5zcGVjdGVkUGFnZSgp
OworICAgICAgICBpZiAoaXQgIT0gbV9jbGllbnRNYXAuYmVnaW4oKSkKKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJ7IFwiaWRcIjogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgXCJ0aXRsZVwiOiBcIiIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCh3ZWJQYWdlLT5wYWdlTG9hZFN0YXRlKCkudGl0bGUoKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwidXJsXCI6IFwiIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKHdlYlBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwiaW5zcGVjdG9yVXJsXCI6IFwiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL01haW4uaHRtbD9wYWdlPSIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJcIiwgXCJkZXZ0b29sc0Zyb250ZW5kVXJsXCI6IFwiIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiL01haW4uaHRtbD93cz0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoYmluZEFkZHJlc3MoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb3J0KCkpOworICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIi9kZXZ0b29scy9wYWdlLyIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJ3ZWJT
b2NrZXREZWJ1Z2dlclVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IndzOi8vIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJpbmRBZGRyZXNzKCkpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIocG9ydCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvZGV2dG9vbHMvcGFn
ZS8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIgfSIpOworICAgIH0KKyAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIiBdIik7CisgICAgQ1N0cmluZyBjc3RyID0gYnVpbGRlci50b1N0cmluZygpLnV0Zjgo
KTsKKyAgICBkYXRhLmFwcGVuZChjc3RyLmRhdGEoKSwgY3N0ci5sZW5ndGgoKSk7CisgICAgY29u
dGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCI7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCAzOTk1MDY5NDhlZi4uYmE3N2My
YWM3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9j
ZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJv
Y2Vzc0xhdW5jaGVyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgICAgICBQcm9jZXNz
VHlwZSBwcm9jZXNzVHlwZTsKICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZXh0cmFJ
bml0aWFsaXphdGlvbkRhdGE7CiAKLSNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIFBMQVRG
T1JNKEdUSykKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIChQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkpCiAgICAgICAgIFN0cmluZyBwcm9jZXNzQ21kUHJlZml4OwogI2VuZGlm
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93
cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNzAyM2M1NDIyMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAKQEAgLTAs
MCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1v
YmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgTU9UT1JPTEEgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisKKyNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRl
IDxmY250bC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3cGUvcmVuZGVyZXItaG9z
dC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGli
L0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKKy8v
IEZJWE1FOiBNZXJnZSB3aXRoIFByb2Nlc3NMYXVuY2hlckd0az8KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdm9pZCBjaGlsZFNldHVw
RnVuY3Rpb24oZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICAgaW50IHNvY2tldCA9IEdQT0lOVEVS
X1RPX0lOVCh1c2VyRGF0YSk7CisgICAgY2xvc2Uoc29ja2V0KTsKK30KKwordm9pZCBQcm9jZXNz
TGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQoreworICAgIEdQaWQgcGlkID0gMDsKKworICAgIElQ
Qzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWlyID0gSVBDOjpDb25uZWN0aW9uOjpj
cmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpDb25uZWN0aW9uT3B0aW9u
czo6U2V0Q2xvZXhlY09uU2VydmVyKTsKKworICAgIFN0cmluZyBleGVjdXRhYmxlUGF0aDsKKyAg
ICBDU3RyaW5nIHJlYWxFeGVjdXRhYmxlUGF0aDsKKyAgICBzd2l0Y2ggKG1fbGF1bmNoT3B0aW9u
cy5wcm9jZXNzVHlwZSkgeworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6
V2ViOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZXZWJQcm9jZXNz
KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlw
ZTo6TmV0d29yazoKKyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mTmV0
d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NF
U1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZToKKyAg
ICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCk7
CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZWFsRXhlY3V0YWJs
ZVBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGgpOworICAgIEdV
bmlxdWVQdHI8Z2NoYXI+IHdrU29ja2V0KGdfc3RyZHVwX3ByaW50ZigiJWQiLCBzb2NrZXRQYWly
LmNsaWVudCkpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHdwZVNvY2tldDsKKworICAgIHVuc2ln
bmVkIG5hcmdzID0gNDsgLy8gc2l6ZSBvZiB0aGUgYXJndiBhcnJheSBmb3IgZ19zcGF3bl9hc3lu
YygpCisgICAgaWYgKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNo
ZXI6OlByb2Nlc3NUeXBlOjpXZWIpIHsKKyAgICAgICAgd3BlU29ja2V0ID0gR1VuaXF1ZVB0cjxn
Y2hhcj4oZ19zdHJkdXBfcHJpbnRmKCIlZCIsIHdwZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGll
bnQoKSkpOworICAgICAgICBuYXJncyA9IDU7CisgICAgfQorCisjaWYgRU5BQkxFKERFVkVMT1BF
Ul9NT0RFKQorICAgIFZlY3RvcjxDU3RyaW5nPiBwcmVmaXhBcmdzOworICAgIGlmICghbV9sYXVu
Y2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXguaXNOdWxsKCkpIHsKKyAgICAgICAgVmVjdG9yPFN0
cmluZz4gc3BsaXRBcmdzOworICAgICAgICBtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZp
eC5zcGxpdCgnICcsIHNwbGl0QXJncyk7CisgICAgICAgIGZvciAoYXV0byBpdCA9IHNwbGl0QXJn
cy5iZWdpbigpOyBpdCAhPSBzcGxpdEFyZ3MuZW5kKCk7IGl0KyspCisgICAgICAgICAgICBwcmVm
aXhBcmdzLmFwcGVuZChpdC0+dXRmOCgpKTsKKyAgICAgICAgbmFyZ3MgKz0gcHJlZml4QXJncy5z
aXplKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBjaGFyKiogYXJndiA9IGdfbmV3YShjaGFyKiwg
bmFyZ3MpOworICAgIHVuc2lnbmVkIGkgPSAwOworI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkK
KyAgICAvLyBJZiB0aGVyZSdzIGEgcHJlZml4IGNvbW1hbmQsIHB1dCBpdCBiZWZvcmUgdGhlIHJl
c3Qgb2YgdGhlIGFyZ3MuCisgICAgZm9yIChhdXRvIGl0ID0gcHJlZml4QXJncy5iZWdpbigpOyBp
dCAhPSBwcmVmaXhBcmdzLmVuZCgpOyBpdCsrKQorICAgICAgICBhcmd2W2krK10gPSBjb25zdF9j
YXN0PGNoYXIqPihpdC0+ZGF0YSgpKTsKKyNlbmRpZgorICAgIGFyZ3ZbaSsrXSA9IGNvbnN0X2Nh
c3Q8Y2hhcio+KHJlYWxFeGVjdXRhYmxlUGF0aC5kYXRhKCkpOworICAgIGFyZ3ZbaSsrXSA9IHdr
U29ja2V0LmdldCgpOworICAgIGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0gUHJv
Y2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViKQorICAgICAgICBhcmd2W2krK10gPSB3cGVT
b2NrZXQuZ2V0KCk7CisgICAgYXJndltpKytdID0gbnVsbHB0cjsKKworICAgIEdVbmlxdWVPdXRQ
dHI8R0Vycm9yPiBlcnJvcjsKKyAgICBpZiAoIWdfc3Bhd25fYXN5bmMoMCwgYXJndiwgMCwgR19T
UEFXTl9MRUFWRV9ERVNDUklQVE9SU19PUEVOLCBjaGlsZFNldHVwRnVuY3Rpb24sIEdJTlRfVE9f
UE9JTlRFUihzb2NrZXRQYWlyLnNlcnZlciksICZwaWQsICZlcnJvci5vdXRQdHIoKSkpIHsKKyAg
ICAgICAgZ19wcmludGVycigiVW5hYmxlIHRvIGZvcmsgYSBuZXcgV2ViUHJvY2VzczogJXMuXG4i
LCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KworICAgIC8vIERvbid0IGV4cG9zZSB0aGUgcGFyZW50IHNvY2tldCB0byBwb3RlbnRpYWwgZnV0
dXJlIGNoaWxkcmVuLgorICAgIHdoaWxlIChmY250bChzb2NrZXRQYWlyLmNsaWVudCwgRl9TRVRG
RCwgRkRfQ0xPRVhFQykgPT0gLTEpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGVycm5vICE9IEVJ
TlRSKTsKKworICAgIGNsb3NlKHNvY2tldFBhaXIuY2xpZW50KTsKKyAgICBtX3Byb2Nlc3NJZGVu
dGlmaWVyID0gcGlkOworCisgICAgLy8gV2UndmUgZmluaXNoZWQgbGF1bmNoaW5nIHRoZSBwcm9j
ZXNzLCBtZXNzYWdlIGJhY2sgdG8gdGhlIG1haW4gcnVuIGxvb3AuCisgICAgUmVmUHRyPFByb2Nl
c3NMYXVuY2hlcj4gcHJvdGVjdG9yKHRoaXMpOworICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBzZXJ2ZXJTb2NrZXQgPSBzb2NrZXRQYWlyLnNlcnZlcjsKKyAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3Byb3RlY3RvciwgcGlkLCBzZXJ2ZXJTb2NrZXRdIHsKKyAgICAgICAgcHJv
dGVjdG9yLT5kaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNzKHBpZCwgc2VydmVyU29ja2V0KTsKKyAg
ICB9KTsKK30KKwordm9pZCBQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MoKQorewor
ICAgIGlmIChtX2lzTGF1bmNoaW5nKSB7CisgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9wcm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAg
cmV0dXJuOworCisgICAga2lsbChtX3Byb2Nlc3NJZGVudGlmaWVyLCBTSUdLSUxMKTsKKyAgICBt
X3Byb2Nlc3NJZGVudGlmaWVyID0gMDsKK30KKwordm9pZCBQcm9jZXNzTGF1bmNoZXI6OnBsYXRm
b3JtSW52YWxpZGF0ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCAxYzhlZjQ2M2NjMi4u
ODQ3ZmI1YzMyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5oCkBAIC0yMjQsNyArMjI0LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlByZWZlcmVuY2Vz
JiBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdDsKIAotI2lmIFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lkIGNyZWF0ZUluc3Bl
Y3RvcldpbmRvdygpOwogICAgIHZvaWQgdXBkYXRlSW5zcGVjdG9yV2luZG93VGl0bGUoKSBjb25z
dDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3Rl
Ym9hcmRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5oCmluZGV4IDI2NTU3MzYxZjU1Li43NzJlMTA5MTVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaApAQCAtOTQsNiArOTQsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0UGFzdGVib2FyZFN0cmluZ0ZvclR5cGUoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiwg
dWludDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICAgICB2b2lkIHNldFBhc3RlYm9hcmRCdWZmZXJG
b3JUeXBlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZFR5cGUsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgdWludDY0X3Qgc2l6ZSwgdWlu
dDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0oR1RLKQogICAg
IHZvaWQgd3JpdGVUb0NsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25z
dCBXZWJTZWxlY3Rpb25EYXRhJik7CiAgICAgdm9pZCByZWFkRnJvbUNsaXBib2FyZChjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXZWJTZWxlY3Rpb25EYXRhJik7CkBAIC0xMDEsNyArMTAy
LDE0IEBAIHByaXZhdGU6CiAgICAgV2ViRnJhbWVQcm94eSogbV9wcmltYXJ5U2VsZWN0aW9uT3du
ZXIgeyBudWxscHRyIH07CiAgICAgV2ViRnJhbWVQcm94eSogbV9mcmFtZVdyaXRpbmdUb0NsaXBi
b2FyZCB7IG51bGxwdHIgfTsKICNlbmRpZiAvLyBQTEFURk9STShHVEspCi0gICAgCisKKyNpZiBQ
TEFURk9STShXUEUpCisgICAgdm9pZCBnZXRQYXN0ZWJvYXJkVHlwZXMoVmVjdG9yPFN0cmluZz4m
IHBhc3RlYm9hcmRUeXBlcyk7CisgICAgdm9pZCByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWlu
dDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIFdURjo6U3RyaW5nJik7
CisgICAgdm9pZCB3cml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFz
dGVib2FyZFdlYkNvbnRlbnQmKTsKKyAgICB2b2lkIHdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAg
ICBXZWJQcm9jZXNzUHJveHlMaXN0IG1fd2ViUHJvY2Vzc1Byb3h5TGlzdDsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDczNmEwYWQ0NTFjLi43MDE1NDQzZWE4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCkBA
IC01NSw0ICs1NSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0ZWJvYXJkUHJveHkgewogICAgIFdy
aXRlVG9DbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBzdHJ1Y3QgV2ViS2l0OjpXZWJT
ZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQogICAgIFJlYWRGcm9tQ2xpcGJvYXJkKFN0
cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYlNlbGVjdGlvbkRhdGEg
cGFzdGVib2FyZENvbnRlbnQpCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBHZXRQ
YXN0ZWJvYXJkVHlwZXMoKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpCisgICAgUmVhZFN0cmlu
Z0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+
IChTdHJpbmcgc3RyaW5nKQorICAgIFdyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChzdHJ1Y3Qg
V2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQgY29udGVudCkKKyAgICBXcml0ZVN0cmluZ1Rv
UGFzdGVib2FyZChTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyB0ZXh0KQorI2VuZGlmCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAwZDMw
MmRkYWIxMy4uNGQzMjliNDBmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9j
ZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAg
ICBub3RpZnlUaGlzV2ViUHJvY2Vzc1Bvb2xXYXNDcmVhdGVkKCk7CiB9CiAKLSNpZiAhUExBVEZP
Uk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAzNzBmZjJiYTFjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAKQEAgLTAsMCArMSwx
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCisKKyNpbmNsdWRl
ICJUZXh0Q2hlY2tlclN0YXRlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0
YXRpYyBUZXh0Q2hlY2tlclN0YXRlIHRleHRDaGVja2VyU3RhdGU7CisKK2NvbnN0IFRleHRDaGVj
a2VyU3RhdGUmIFRleHRDaGVja2VyOjpzdGF0ZSgpCit7CisgICAgcmV0dXJuIHRleHRDaGVja2Vy
U3RhdGU7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldFRlc3RpbmdNb2RlKGJvb2wpCit7Cit9
CisKK2Jvb2wgVGV4dENoZWNrZXI6OmlzVGVzdGluZ01vZGUoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFRleHRDaGVja2VyOjppc0NvbnRp
bnVvdXNTcGVsbENoZWNraW5nQWxsb3dlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldENvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgVGV4dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxD
aGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFu
Z2VkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworaW50NjRfdCBUZXh0Q2hl
Y2tlcjo6dW5pcXVlU3BlbGxEb2N1bWVudFRhZyhXZWJQYWdlUHJveHkqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFRleHRDaGVja2VyOjpj
bG9zZVNwZWxsRG9jdW1lbnRXaXRoVGFnKGludDY0X3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGludDY0X3Qs
IFN0cmluZ1ZpZXcsIGludDMyX3QmLCBpbnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFRleHRDaGVja2VyOjpjaGVja0dyYW1tYXJPZlN0cmluZyhpbnQ2NF90LCBT
dHJpbmdWaWV3LCBWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQzMl90JiwgaW50
MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6
c3BlbGxpbmdVSUlzU2hvd2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnRvZ2dsZVNwZWxsaW5nVUlJc1Nob3dp
bmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnVw
ZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjp1cGRhdGVT
cGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoaW50NjRfdCwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
R3JhbW1hckRldGFpbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0
Q2hlY2tlcjo6Z2V0R3Vlc3Nlc0ZvcldvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgaW50MzJfdCwgVmVjdG9yPFN0cmluZz4mLCBib29sKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmxlYXJuV29yZChpbnQ2NF90LCBjb25z
dCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNr
ZXI6Omlnbm9yZVdvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhQ
YXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbj4sIGludDMyX3QpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmFlZWUzYzE3ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUu
Y3BwCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0
b3JQcm94eS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUGFn
ZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNwZWN0b3JXaW5kb3coKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1EaWRDbG9zZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1EaWRDbG9zZUZvckNyYXNoKCkKK3sKK30KKwordm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sKK30KKwordm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1IaWRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUJyaW5nVG9Gcm9udCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1CcmluZ0luc3BlY3RlZFBhZ2VUb0Zyb250KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCitib29sIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUlzRnJvbnQoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omlu
c3BlY3RvclBhZ2VVUkwoKQoreworICAgIHJldHVybiBTdHJpbmcoInJlc291cmNlOi8vL29yZy93
cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIik7Cit9CisKK1N0cmluZyBXZWJJ
bnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yVGVzdFBhZ2VVUkwoKQoreworICAgIHJldHVybiBTdHJp
bmcoInJlc291cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1s
Iik7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yQmFzZVVSTCgpCit7
CisgICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNwZWN0b3IvVXNlcklu
dGVyZmFjZS8iKTsKK30KKwordW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5z
cGVjdGVkV2luZG93SGVpZ2h0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biAwOworfQorCit1bnNpZ25lZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRX
aW5kb3dXaWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30K
Kwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGV0YWNo
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0
YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1TYXZlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1B
cHBlbmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaEF2YWlsYWJp
bGl0eUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUv
V2ViUGFnZVByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFn
ZVByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGEy
MDJhYmViNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3Bl
L1dlYlBhZ2VQcm94eVdQRS5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViUGFnZVByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kwordm9pZCBXZWJQYWdlUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQo
Y29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gIk1vemlsbGEvNS4wIChMaW51eDsgeDg2XzY0
IEdOVS9MaW51eCkgQXBwbGVXZWJLaXQvNjAxLjEgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9u
LzguMCBTYWZhcmkvNjAxLjEiOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2F2ZVJlY2VudFNl
YXJjaGVzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpSZWNlbnRTZWFyY2g+
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9h
ZFJlY2VudFNlYXJjaGVzKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxXZWJDb3JlOjpSZWNlbnRTZWFy
Y2g+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OnBsYXRmb3JtUmVtb3ZlUmVjZW50U2VhcmNoZXMoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9j
azo6dGltZV9wb2ludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZWRpdG9yU3RhdGVDaGFuZ2VkKGNvbnN0IEVkaXRvclN0YXRlJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFByb3h5V1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFByb3h5V1BFLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGQzZDBlYjQ2ZDQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQ
cm94eVdQRS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
UGFzdGVib2FyZFByb3h5LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7Cit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6
Z2V0UGFzdGVib2FyZFR5cGVzKFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMpCit7Cisg
ICAgUGxhdGZvcm1QYXN0ZWJvYXJkKCkuZ2V0VHlwZXMocGFzdGVib2FyZFR5cGVzKTsKK30KKwor
dm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRf
dCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgV1RGOjpTdHJpbmcmIHZhbHVl
KQoreworICAgIHZhbHVlID0gUGxhdGZvcm1QYXN0ZWJvYXJkKCkucmVhZFN0cmluZyhpbmRleCwg
cGFzdGVib2FyZFR5cGUpOworfQorCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6d3JpdGVXZWJD
b250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiBj
b250ZW50KQoreworICAgIFBsYXRmb3JtUGFzdGVib2FyZCgpLndyaXRlKGNvbnRlbnQpOworfQor
Cit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6d3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIFBsYXRm
b3JtUGFzdGVib2FyZCgpLndyaXRlKHBhc3RlYm9hcmRUeXBlLCB0ZXh0KTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3Bl
L1dlYlByZWZlcmVuY2VzV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2Vi
UHJlZmVyZW5jZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5mZjgxZmNkYTFjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlByZWZlcmVuY2Vz
OjpwbGF0Zm9ybUluaXRpYWxpemVTdG9yZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVTdHJpbmdWYWx1ZUZvcktleShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlQm9vbFZhbHVlRm9yS2V5KGNv
bnN0IFN0cmluZyYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBX
ZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJp
bmcmLCB1aW50MzJfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlBy
ZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZURvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYs
IGRvdWJsZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlByZWZlcmVu
Y2VzOjpwbGF0Zm9ybVVwZGF0ZUZsb2F0VmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgZmxvYXQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlczo6cGxh
dGZvcm1HZXRTdHJpbmdVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgU3RyaW5nJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQ
cmVmZXJlbmNlczo6cGxhdGZvcm1HZXRCb29sVXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYs
IGJvb2wmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldFVJbnQzMlVzZXJWYWx1ZUZvcktleShj
b25zdCBTdHJpbmcmLCB1aW50MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0RG91Ymxl
VXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGRvdWJsZSYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQ
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmRlNGYzMTcyNDUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQ
b29sV1BFLmNwcApAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcyBMdGQuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Bvb2wuaCIKKworI2luY2x1ZGUgIkFQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIgorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9y
U2VydmVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3Rl
bS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HVW5pcXVlUHRyLmg+CisKKy8vIEZJWE1FOiBNZXJnZSB3aXRoIFdlYlByb2Nlc3NQb29s
R3RrPyBBYnN0cmFjdCB0aGUgY29tbW9uIHBhcnRzPworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
I2lmIEVOQUJMRShJTlNQRUNUT1JfU0VSVkVSKQorc3RhdGljIHZvaWQgaW5pdEluc3BlY3RvclNl
cnZlcigpCit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBpZiAo
aW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGluaXRpYWxpemVkID0gdHJ1ZTsK
KyAgICBTdHJpbmcgc2VydmVyQWRkcmVzcyhnX2dldGVudigiV0VCS0lUX0lOU1BFQ1RPUl9TRVJW
RVIiKSk7CisKKyAgICBpZiAoIXNlcnZlckFkZHJlc3MuaXNOdWxsKCkpIHsKKyAgICAgICAgU3Ry
aW5nIGJpbmRBZGRyZXNzID0gIjEyNy4wLjAuMSI7CisgICAgICAgIHVuc2lnbmVkIHNob3J0IHBv
cnQgPSAyOTk5OworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKKyAgICAgICAgc2Vy
dmVyQWRkcmVzcy5zcGxpdCgnOicsIHJlc3VsdCk7CisKKyAgICAgICAgaWYgKHJlc3VsdC5zaXpl
KCkgPT0gMikgeworICAgICAgICAgICAgYmluZEFkZHJlc3MgPSByZXN1bHRbMF07CisgICAgICAg
ICAgICBib29sIG9rID0gZmFsc2U7CisgICAgICAgICAgICBwb3J0ID0gcmVzdWx0WzFdLnRvSW50
KCZvayk7CisgICAgICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICAgICAgcG9ydCA9IDI5
OTk7CisgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBwYXJzZSB0aGUgcG9ydC4g
VXNlIDI5OTkgaW5zdGVhZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHBhcnNlICVzLCB3cm9uZyBmb3JtYXQ/IFVzZSAx
MjcuMC4wLjE6Mjk5OSBpbnN0ZWFkLiIsIHNlcnZlckFkZHJlc3MudXRmOCgpLmRhdGEoKSk7CisK
KyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLmxpc3RlbihiaW5k
QWRkcmVzcywgcG9ydCkpCisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHN0YXJ0IGxp
c3RlbmluZyBvbjogSVAgYWRkcmVzcz0lcywgcG9ydD0lZC4iLCBiaW5kQWRkcmVzcy51dGY4KCku
ZGF0YSgpLCBwb3J0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIExPRyhJbnNwZWN0
b3JTZXJ2ZXIsICJUbyBzdGFydCBpbnNwZWN0b3Igc2VydmVyIHNldCBXRUJLSVRfSU5TUEVDVE9S
X1NFUlZFUiB0byAxMjcuMC4wLjE6Mjk5OSBmb3IgZXhhbXBsZS4iKTsKK30KKyNlbmRpZgorCitX
VEY6OlN0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0QXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gY2FjaGVEaXJlY3Rv
cnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgImFwcGNh
Y2hlIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKGNhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKworV1RGOjpTdHJpbmcg
V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdE1lZGlhQ2FjaGVEaXJlY3Rvcnko
KQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5h
bWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJtZWRpYWNhY2hlIiwgbnVsbHB0cikp
OworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KGNhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplKCkKK3sKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKQorICAgICAgICBt
X3dlYnNpdGVEYXRhU3RvcmUtPnJlZ2lzdGVyU2hhcmVkUmVzb3VyY2VMb2FkT2JzZXJ2ZXIoKTsK
K30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworI2lmIEVOQUJMRShJ
TlNQRUNUT1JfU0VSVkVSKQorICAgIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKTsKKyNlbmRpZgorCisg
ICAgcGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVkID0gbV9tZW1vcnlDYWNoZURpc2FibGVk
IHx8IGNhY2hlTW9kZWwoKSA9PSBDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI7Cit9CisKK3ZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1E
ZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2Rpcigp
LCAid3BlIiwgImRhdGFiYXNlcyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3Ry
aW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7
Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0SW5kZXhl
ZERCRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGluZGV4ZWRE
QkRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2Rpcigp
LCAid3BlIiwgImRhdGFiYXNlcyIsICJpbmRleGVkZGIiLCBudWxscHRyKSk7CisgICAgcmV0dXJu
IFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oaW5kZXhlZERCRGF0
YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtRGVmYXVsdEljb25EYXRhYmFzZVBhdGgoKSBjb25zdAoreworICAgIEdVbmlxdWVQdHI8Z2No
YXI+IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9k
aXIoKSwgIndwZSIsICJpY29uZGF0YWJhc2UiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNv
cmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGF0YWJhc2VEaXJlY3Rvcnku
Z2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVs
dExvY2FsU3RvcmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gc3RvcmFn
ZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIs
ICJsb2NhbHN0b3JhZ2UiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zy
b21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3RvcmFnZURpcmVjdG9yeS5nZXQoKSk7Cit9CisK
K1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbWVkaWFLZXlzU3RvcmFn
ZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIs
ICJtZWRpYWtleXMiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21G
aWxlU3lzdGVtUmVwcmVzZW50YXRpb24obWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeS5nZXQoKSk7
Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TmV0d29y
a0NhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGRpc2tDYWNoZURpcmVj
dG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAiY2Fj
aGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24oZGlza0NhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdl
YlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRKYXZhU2NyaXB0Q29uZmlndXJhdGlv
bkRpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gamF2YVNjcmlwdENvcmVDb25m
aWdEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUi
LCAiSmF2YVNjcmlwdENvcmVEZWJ1ZyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6
c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihqYXZhU2NyaXB0Q29yZUNvbmZpZ0Rp
cmVjdG9yeS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2
ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDJQcmVmaXguaAppbmRleCA1NzUwOWI5N2E0Yy4uZTJiZTgwOWQ4ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyUHJlZml4LmgKQEAgLTU3LDcgKzU3LDcgQEAKIAogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5l
IEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcAppbmRleCBjOTFiNDVhOWM1MS4uMDhhNjhkMDc5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAKQEAgLTI5Nyw3ICsyOTcsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVkbygpCiAg
ICAgbV9wYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGVjdXRlVW5kb1Jl
ZG8oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdlYlBhZ2VQcm94eTo6UmVkbykpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpFeGVjdXRlVW5kb1JlZG86OlJlcGx5KHJlc3VsdCkpOwogfQogCi0jaWYg
IVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFURk9STShHVEspICYm
ICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKIHZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIGlmICht
X3BhZ2UtPmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KGV2ZW50KSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNTUzN2YxOWYwNmQuLjJhYzVmZGE0MTA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTc5OCw0ICsxNzk4LDEzIEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbmlzaGVkTG9hZGluZ0ljb24odWludDY0X3QgbG9hZElk
ZW50aWZpZXIsIFNoYXJlZEJ1CiAgICAgfQogfQogCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpzaG91bGRQYWludEJyb2tlbkltYWdlKGNvbnN0IFdlYkNvcmU6OlVSTCYpIGNvbnN0Cit7Cisj
aWYgUExBVEZPUk0oV1BFKQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgcmV0dXJuIHRy
dWU7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggMjEyZjEwZmRkZTEuLjNmMDNlNjkzOWY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCkBAIC0yNjIsNiArMjYyLDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IGdldExvYWREZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0ljb24mLCB1aW50NjRf
dCBjYWxsYmFja0lEKSBmaW5hbDsKICAgICB2b2lkIGZpbmlzaGVkTG9hZGluZ0ljb24odWludDY0
X3QgbG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciopIGZpbmFsOwogCisgICAg
Ym9vbCBzaG91bGRQYWludEJyb2tlbkltYWdlKGNvbnN0IFdlYkNvcmU6OlVSTCYpIGNvbnN0IG92
ZXJyaWRlOworCiAgICAgV2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgUmVmUHRyPFBsdWdpblZpZXc+
IG1fcGx1Z2luVmlldzsKICAgICBib29sIG1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW5WaWV3Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDJlZGY0Yjc2ZDU0Li5iMjU3
MTY4MGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMzYwLDQg
KzM2MCwzMSBAQCBSZWY8U2VsZWN0aW9uRGF0YT4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFk
RnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYgogCiAjZW5kaWYgLy8gUExBVEZPUk0o
R1RLKQogCisjaWYgUExBVEZPUk0oV1BFKQorLy8gUGFzdGVib2FyZFN0cmF0ZWd5CisKK3ZvaWQg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpCit7
CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6R2V0UGFzdGVib2FyZFR5cGVz
KCksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldFBhc3RlYm9hcmRUeXBlczo6UmVw
bHkodHlwZXMpLCAwKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZFN0
cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSkKK3sKKyAgICBTdHJpbmcgdmFsdWU7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQ
cm94eTo6UmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGluZGV4LCBwYXN0ZWJvYXJkVHlwZSksIE1l
c3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZDo6UmVw
bHkodmFsdWUpLCAwKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3ZvaWQgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2Vi
Q29udGVudCYgY29udGVudCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6Oldy
aXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChjb250ZW50KSwgMCk7Cit9CisKK3ZvaWQgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmRUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFzdGVib2Fy
ZFByb3h5OjpXcml0ZVN0cmluZ1RvUGFzdGVib2FyZChwYXN0ZWJvYXJkVHlwZSwgdGV4dCksIDAp
OworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oV1BFKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IGU0Mzg3YzkzMDIxLi5hZWM3OWJj
ZmMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC04NiwxMCArODYsMTgg
QEAgcHJpdmF0ZToKICAgICBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9yPFN0
cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKSBvdmVycmlkZTsKICAgICBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKICAgICB2b2lk
IHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgV2Vi
Q29yZTo6U2VsZWN0aW9uRGF0YSYpIG92ZXJyaWRlOwogICAgIFJlZjxXZWJDb3JlOjpTZWxlY3Rp
b25EYXRhPiByZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBv
dmVycmlkZTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwgdm9pZCBn
ZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3Ry
aW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZFR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2Fy
ZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBl
LCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVkMDM0YjAyNjczCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUv
V2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6Omxvb2tVcEluRGljdGlv
bmFyeShXZWJDb3JlOjpGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9v
bCBXZWJDb250ZXh0TWVudUNsaWVudDo6aXNTcGVha2luZygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6
OnNwZWFrKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3RvcFNwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShD
T05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJkY2EzMDI0Y2VkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2Vi
RWRpdG9yQ2xpZW50V1BFLmNwcApAQCAtMCwwICsxLDI0NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9F
ZGl0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Ob2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rl
cy5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoZSBpZGVhIGZvciB0aGUgYXJy
YXkvbWFwIGJlbG93IGNvbWVzIGZyb20gQmxpbmsncyBFZGl0aW5nQmVoYXZpb3IuY3BwLgorCitz
dGF0aWMgY29uc3QgdW5zaWduZWQgQ3RybEtleSAgPSAxIDw8IDA7CitzdGF0aWMgY29uc3QgdW5z
aWduZWQgQWx0S2V5ICAgPSAxIDw8IDE7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgU2hpZnRLZXkg
PSAxIDw8IDI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgTWV0YUtleSAgPSAxIDw8IDM7CisKKy8v
IEtleXMgd2l0aCBzcGVjaWFsIG1lYW5pbmcuIFRoZXNlIHdpbGwgYmUgZGVsZWdhdGVkIHRvIHRo
ZSBlZGl0b3IgdXNpbmcKKy8vIHRoZSBleGVjQ29tbWFuZCgpIG1ldGhvZAorc3RydWN0IEtleURv
d25FbnRyeSB7CisgICAgdW5zaWduZWQgdmlydHVhbEtleTsKKyAgICB1bnNpZ25lZCBtb2RpZmll
cnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0cnVjdCBLZXlQcmVzc0VudHJ5IHsK
KyAgICB1bnNpZ25lZCBjaGFyQ29kZTsKKyAgICB1bnNpZ25lZCBtb2RpZmllcnM7CisgICAgY29u
c3QgY2hhciogbmFtZTsKK307CisKK3N0YXRpYyBjb25zdCBLZXlEb3duRW50cnkga2V5RG93bkVu
dHJpZXNbXSA9IHsKKyAgICB7IFZLX0xFRlQsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZUxl
ZnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBT
aGlmdEtleSwgICAgICAgICAgICJNb3ZlTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVXb3JkTGVm
dCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAgQ3RybEtl
eSB8IFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVdvcmRMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwg
IDAsICAgICAgICAgICAgICAgICAgIk1vdmVSaWdodCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVJpZ2h0
QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBDdHJs
S2V5LCAgICAgICAgICAgICJNb3ZlV29yZFJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVXb3JkUmlnaHRB
bmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgMCwgICAgICAg
ICAgICAgICAgICAiTW92ZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfVVAsICAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVXBBbmRNb2RpZnlTZWxl
Y3Rpb24iICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19QUklPUiwgIFNoaWZ0S2V5LCAgICAg
ICAgICAgIk1vdmVQYWdlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0RPV04sICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZURvd24iICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICBTaGlmdEtleSwgICAgICAgICAg
ICJNb3ZlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgIH0sCisgICAgeyBWS19O
RVhULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlRG93bkFuZE1vZGlmeVNlbGVjdGlv
biIgICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92
ZVBhcmFncmFwaEJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAgIHsgVktfRE9XTiwg
ICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFyYWdyYXBoRm9yd2FyZEFuZE1vZGlmeVNlbGVj
dGlvbiIgIH0sCisgICAgeyBWS19QUklPUiwgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVQYWdl
VXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgMCwg
ICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VEb3duIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfSE9NRSwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVG9CZWdpbm5p
bmdPZkxpbmUiICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIFNoaWZ0S2V5
LAorICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIEN0cmxLZXksICAg
ICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0hPTUUsICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVRvQmVnaW5u
aW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19FTkQsICAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVUb0VuZE9mTGlu
ZSIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgU2hpZnRLZXks
ICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICB9LAor
ICAgIHsgVktfRU5ELCAgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlVG9FbmRPZkRvY3VtZW50
IiAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0cmxLZXkgfCBTaGlm
dEtleSwKKyAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfQkFDSywgICAwLCAgICAg
ICAgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19CQUNLLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkRlbGV0ZUJhY2t3YXJkIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgMCwgICAgICAgICAg
ICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgVktfQkFDSywgICBDdHJsS2V5LCAgICAgICAgICAgICJEZWxldGVXb3JkQmFja3dhcmQiICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIEN0cmxLZXksICAgICAgICAg
ICAgIkRlbGV0ZVdvcmRGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdC
JywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVG9nZ2xlQm9sZCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ0knLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJU
b2dnbGVJdGFsaWMiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnVScsICAg
ICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZVVuZGVybGluZSIgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX0VTQ0FQRSwgMCwgICAgICAgICAgICAgICAgICAiQ2FuY2Vs
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfT0VNX1BFUklP
RCwgQ3RybEtleSwgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19UQUIsICAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydFRhYiIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RBQiwgICAgU2hpZnRL
ZXksICAgICAgICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfUkVUVVJOLCAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEN0cmxLZXksICAg
ICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX1JFVFVSTiwgQWx0S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRLZXkgfCBTaGlmdEtl
eSwgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19SRVRVUk4sIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydExpbmVCcmVhayIgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICAvLyBUaGVzZSBwcm9iYWJseSBuZWVkIGhhbmRsaW5nIHNv
bWV3aGVyZSBlbHNlIHNvIGRvIG5vdCBleGVjdXRlIHRoZW0uIFRoZQorICAgIC8vICdDdXQnIGNv
bW1hbmQgaXMgcmVtb3ZpbmcgdGV4dCBzbyBsZXQncyBhdm9pZCBsb3NpbmcgdGhlIHVzZXIgbG9z
aW5nIGRhdGEKKyAgICAvLyB1bnRpbCB3ZSBpbXBsZW1lbnQgY2xpcGJvYXJkIHN1cHBvcnQgd2hl
cmV2ZXIgaXQgc2hvdWxkIGJlLgorICAgIHsgVktfSU5TRVJULCBDdHJsS2V5LCAgICAgICAgICAg
ICJDb3B5IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19J
TlNFUlQsIFNoaWZ0S2V5LCAgICAgICAgICAgIlBhc3RlIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgU2hpZnRLZXksICAgICAgICAgICAiQ3V0
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0MnLCAgICAg
ICAgIEN0cmxLZXksICAgICAgICAgICJDb3B5IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyAnVicsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlBhc3RlIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdWJywgICAgICAgICBD
dHJsS2V5IHwgU2hpZnRLZXksICJQYXN0ZUFuZE1hdGNoU3R5bGUiICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgJ1gnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJDdXQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQScsICAgICAgICAgQ3RybEtl
eSwgICAgICAgICAgIlNlbGVjdEFsbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7ICdaJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVW5kbyIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1onLCAgICAgICAgIEN0cmxLZXkgfCBT
aGlmdEtleSwgIlJlZG8iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyAnWScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlJlZG8iICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VSVCwgMCwgICAgICAgICAgICAgICAg
ICAiT3ZlcldyaXRlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworc3Rh
dGljIGNvbnN0IEtleVByZXNzRW50cnkga2V5UHJlc3NFbnRyaWVzW10gPSB7CisgICAgeyAnXHQn
LCAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydFRhYiIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7ICdcdCcsICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0
QmFja3RhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICAw
LCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyAnXHInLCAgIEN0cmxLZXksICAgICAgICAgICAgIkluc2VydE5ld2xp
bmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgU2hpZnRL
ZXksICAgICAgICAgICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXksICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEFsdEtleSB8IFNo
aWZ0S2V5LCAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
K307CisKK3N0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBLZXlib2Fy
ZEV2ZW50JiBldmVudCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxpbnQs
IGNvbnN0IGNoYXIqPj4ga2V5RG93bkNvbW1hbmRzTWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxIYXNoTWFwPGludCwgY29uc3QgY2hhcio+PiBrZXlQcmVzc0NvbW1hbmRzTWFwOworCisg
ICAgaWYgKGtleURvd25Db21tYW5kc01hcC5nZXQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoa2V5RG93bkVudHJpZXMpOyBp
KyspCisgICAgICAgICAgICBrZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuc2V0KGtleURvd25FbnRy
aWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtleURvd25FbnRyaWVzW2ldLnZpcnR1YWxLZXksIGtl
eURvd25FbnRyaWVzW2ldLm5hbWUpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
V1RGX0FSUkFZX0xFTkdUSChrZXlQcmVzc0VudHJpZXMpOyBpKyspCisgICAgICAgICAgICBrZXlQ
cmVzc0NvbW1hbmRzTWFwLmdldCgpLnNldChrZXlQcmVzc0VudHJpZXNbaV0ubW9kaWZpZXJzIDw8
IDE2IHwga2V5UHJlc3NFbnRyaWVzW2ldLmNoYXJDb2RlLCBrZXlQcmVzc0VudHJpZXNbaV0ubmFt
ZSk7CisgICAgfQorCisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAgICBpZiAoZXZlbnQu
c2hpZnRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5OworICAgIGlmIChldmVu
dC5hbHRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICBpZiAoZXZlbnQu
Y3RybEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQ3RybEtleTsKKyAgICBpZiAoZXZlbnQu
bWV0YUtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gTWV0YUtleTsKKworICAgIGlmIChldmVu
dC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkgeworICAgICAgICBpbnQgbWFw
S2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQua2V5Q29kZSgpOworICAgICAgICByZXR1cm4g
bWFwS2V5ID8ga2V5RG93bkNvbW1hbmRzTWFwLmdldCgpLmdldChtYXBLZXkpIDogbnVsbHB0cjsK
KyAgICB9CisKKyAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQuY2hhckNv
ZGUoKTsKKyAgICByZXR1cm4gbWFwS2V5ID8ga2V5UHJlc3NDb21tYW5kc01hcC5nZXQoKS5nZXQo
bWFwS2V5KSA6IG51bGxwdHI7Cit9CisKK3N0YXRpYyB2b2lkIGhhbmRsZUtleVByZXNzKEZyYW1l
JiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dCYgcGxhdGZvcm1FdmVudCkKK3sKKyAgICBTdHJpbmcgY29tbWFuZE5hbWUgPSBpbnRlcnByZXRL
ZXlFdmVudChldmVudCk7CisKKyAgICBpZiAoIWNvbW1hbmROYW1lLmlzRW1wdHkoKSkgeworICAg
ICAgICBmcmFtZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKS5leGVjdXRlKCk7CisgICAg
ICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICAvLyBEb24ndCBpbnNlcnQgbnVsbCBvciBjb250cm9sIGNoYXJhY3RlcnMgYXMgdGhleSBj
YW4gcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3VyCisgICAgaWYgKGV2ZW50LmNoYXJDb2Rl
KCkgPCAnICcpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvbid0IGluc2VydCBhbnl0aGlu
ZyBpZiBhIG1vZGlmaWVyIGlzIHByZXNzZWQgYW5kIGl0IGhhcyBub3QgYmVlbiBoYW5kbGVkIHll
dAorICAgIGlmIChwbGF0Zm9ybUV2ZW50LmN0cmxLZXkoKSB8fCBwbGF0Zm9ybUV2ZW50LmFsdEtl
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZnJhbWUuZWRpdG9yKCkuaW5zZXJ0VGV4
dChwbGF0Zm9ybUV2ZW50LnRleHQoKSwgJmV2ZW50KSkKKyAgICAgICAgZXZlbnQuc2V0RGVmYXVs
dEhhbmRsZWQoKTsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlS2V5RG93bihGcmFtZSYgZnJhbWUs
IEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKQorewor
ICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2ZW50KGV2ZW50KTsKKyAgICBp
ZiAoY29tbWFuZE5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBz
aG91bGRuJ3QgaW5zZXJ0IHRleHQgdGhyb3VnaCB0aGUgZWRpdG9yLiBMZXQgV2ViQ29yZSBkZWNp
ZGUKKyAgICAvLyBob3cgdG8gaGFuZGxlIHRoYXQgKHNheSwgVGFiLCB3aGljaCBjb3VsZCBhbHNv
IGJlIHVzZWQgdG8KKyAgICAvLyBjaGFuZ2UgZm9jdXMpLgorICAgIEVkaXRvcjo6Q29tbWFuZCBj
b21tYW5kID0gZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21tYW5kTmFtZSk7CisgICAgaWYgKGNv
bW1hbmQuaXNUZXh0SW5zZXJ0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbW1hbmQu
ZXhlY3V0ZSgpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKK3ZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KFdlYkNvcmU6OktleWJvYXJkRXZlbnQq
IGV2ZW50KQoreworICAgIE5vZGUqIG5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwor
ICAgIEFTU0VSVChub2RlKTsKKyAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLmZy
YW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKworICAgIC8vIEZJWE1FOiBSZW9yZGVyIHRoZSBj
aGVja3MgaW4gYSBtb3JlIHNlbnNpYmxlIHdheS4KKworICAgIGNvbnN0IFBsYXRmb3JtS2V5Ym9h
cmRFdmVudCogcGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOworICAgIGlmICghcGxh
dGZvcm1FdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgdGhpcyB3YXMgYW4gSU1F
IGV2ZW50IGRvbid0IGRvIGFueXRoaW5nLgorICAgIGlmIChwbGF0Zm9ybUV2ZW50LT53aW5kb3dz
VmlydHVhbEtleUNvZGUoKSA9PSBWS19QUk9DRVNTS0VZKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBEb24ndCBhbGxvdyB0ZXh0IGluc2VydGlvbiBmb3Igbm9kZXMgdGhhdCBjYW5ub3QgZWRp
dC4KKyAgICBpZiAoIWZyYW1lLT5lZGl0b3IoKS5jYW5FZGl0KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRoaXMgaXMganVzdCBhIG5vcm1hbCB0ZXh0IGluc2VydGlvbiwgc28gd2FpdCB0
byBleGVjdXRlIHRoZSBpbnNlcnRpb24KKyAgICAvLyB1bnRpbCBhIGtleXByZXNzIGV2ZW50IGhh
cHBlbnMuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgaW5zZXJ0aW9uIHdpbGwgbm90CisgICAg
Ly8gYmUgcmVmbGVjdGVkIGluIHRoZSBjb250ZW50cyBvZiB0aGUgZmllbGQgdW50aWwgdGhlIGtl
eXVwIERPTSBldmVudC4KKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5
cHJlc3NFdmVudCkKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleVByZXNzKCpmcmFtZSwgKmV2ZW50
LCAqcGxhdGZvcm1FdmVudCk7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LmtleWRvd25FdmVudCkKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleURvd24oKmZyYW1lLCAqZXZl
bnQsICpwbGF0Zm9ybUV2ZW50KTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUlu
cHV0TWV0aG9kS2V5ZG93bihXZWJDb3JlOjpLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBj
b25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQqIHBsYXRmb3JtRXZlbnQgPSBldmVudC0+a2V5RXZl
bnQoKTsKKyAgICBpZiAocGxhdGZvcm1FdmVudCAmJiBwbGF0Zm9ybUV2ZW50LT53aW5kb3dzVmly
dHVhbEtleUNvZGUoKSA9PSBWS19QUk9DRVNTS0VZKQorICAgICAgICBldmVudC0+cHJldmVudERl
ZmF1bHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViUG9wdXBN
ZW51V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmFiODM3
YjBhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJQb3B1cE1l
bnU6OnNldFVwUGxhdGZvcm1EYXRhKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBQbGF0Zm9ybVBv
cHVwTWVudURhdGEmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCmluZGV4IDYwZTkxNjc5OWIzLi5k
M2RmNDZhMTg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAtNzQsMTAgKzc0LDEw
IEBAIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdChXZWJQYWdlJiB3ZWJQCiAgICAgICAgIC8vIERvIG5vdCBkbyBmcmFtZSBz
eW5jIHdoZW4gcmVuZGVyaW5nIG9mZnNjcmVlbiBpbiB0aGUgd2ViIHByb2Nlc3MgdG8gZW5zdXJl
IHRoYXQgU3dhcEJ1ZmZlcnMgbmV2ZXIgYmxvY2tzLgogICAgICAgICAvLyBSZW5kZXJpbmcgdG8g
dGhlIGFjdHVhbCBzY3JlZW4gd2lsbCBoYXBwZW4gbGF0ZXIgYW55d2F5IHNpbmNlIHRoZSBVSSBw
cm9jZXNzIHNjaGVkdWxlcyBhIHJlZHJhdyBmb3IgZXZlcnkgdXBkYXRlLAogICAgICAgICAvLyB0
aGUgY29tcG9zaXRvciB3aWxsIHRha2UgY2FyZSBvZiBzeW5jaW5nIHRvIHZibGFuay4KLSAgICAg
ICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUobV9jb21wb3NpdG9y
Q2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZhY3RvciwgbV9zdXJmYWNlLT53aW5kb3coKSwgVGhy
ZWFkZWRDb21wb3NpdG9yOjpTaG91bGREb0ZyYW1lU3luYzo6WWVzLCBwYWludEZsYWdzKTsKKyAg
ICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUobV9jb21wb3Np
dG9yQ2xpZW50LCB3ZWJQYWdlLCBzY2FsZWRTaXplLCBzY2FsZUZhY3RvciwgbV9zdXJmYWNlLT53
aW5kb3coKSwgVGhyZWFkZWRDb21wb3NpdG9yOjpTaG91bGREb0ZyYW1lU3luYzo6WWVzLCBwYWlu
dEZsYWdzKTsKICAgICAgICAgbV9sYXllclRyZWVDb250ZXh0LmNvbnRleHRJRCA9IG1fc3VyZmFj
ZS0+c3VyZmFjZUlEKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fY29tcG9zaXRvciA9IFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNsaWVudCwgc2NhbGVkU2l6ZSwgc2Nh
bGVGYWN0b3IpOworICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNy
ZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNpemUsIHNjYWxlRmFjdG9y
KTsKIAogICAgIGRpZENoYW5nZVZpZXdwb3J0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAppbmRleCAyZTc4MGQ5MWJlNS4uNWYw
OTNhYzdiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2lu
Y2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEuaCIKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJE
cmF3aW5nQXJlYVdQRS5oIgogI2Vsc2UKICNpbmNsdWRlICJEcmF3aW5nQXJlYUltcGwuaCIKICNl
bmRpZgpAQCAtNTUsNiArNTcsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWE+IERyYXdp
bmdBcmVhOjpjcmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFnZQogI2VuZGlmCiAg
ICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWU6CiAgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPih3ZWJQYWdlLCBwYXJh
bWV0ZXJzKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjYXNlIERyYXdpbmdBcmVhVHlwZVdQ
RToKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0FyZWFXUEU+KHdlYlBh
Z2UsIHBhcmFtZXRlcnMpOwogI2Vsc2UKICAgICBjYXNlIERyYXdpbmdBcmVhVHlwZUltcGw6CiAg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPERyYXdpbmdBcmVhSW1wbD4od2ViUGFnZSwg
cGFyYW1ldGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggMjFiMTJjZGJlMjMuLmU1MTJiYmI2Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDk1LDcgKzM0OTUsNyBAQCBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIFdlYlBhZ2U6Om5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYQogICAgIHJldHVybiBtX25vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5nZXQoKTsKIH0KIAotI2lmICFQTEFURk9STShHVEspICYmICFQTEFU
Rk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQ09DT0EpICYmICFQ
TEFURk9STShXUEUpCiBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtl
eWJvYXJkRXZlbnQqIGV2dCkKIHsKICAgICBOb2RlKiBub2RlID0gZXZ0LT50YXJnZXQoKS0+dG9O
b2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCAwYjA1NjFiYjE2Ny4uMjM0MWMxMzgwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTAxOCw3ICsxMDE4LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKENPQ09BKSAm
JiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVu
dChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01h
bmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZTIzZDM0
MGQ5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXIuaCIKKworI2luY2x1ZGUgIkNvbXBvc2l0
aW5nTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitDb21wb3NpdGluZ01hbmFnZXI6On5Db21wb3NpdGluZ01hbmFnZXIo
KQoreworICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25GZCA9PSAtMSk7Cit9CisKK3ZvaWQgQ29tcG9z
aXRpbmdNYW5hZ2VyOjplc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmIHdlYlBhZ2UpCit7Cisg
ICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGU7CisgICAgd2ViUGFnZS5zZW5kU3lu
YyhNZXNzYWdlczo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5lY3Rpb24o
KSwKKyAgICAgICAgTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjpFc3RhYmxpc2hD
b25uZWN0aW9uOjpSZXBseShjb25uZWN0aW9uSGFuZGxlKSk7CisKKyAgICBtX2Nvbm5lY3Rpb25G
ZCA9IGNvbm5lY3Rpb25IYW5kbGUucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjI2MzFhMzFjOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaApAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQ29tcG9zaXRpbmdNYW5hZ2VyX2gKKyNkZWZpbmUgQ29tcG9zaXRpbmdN
YW5hZ2VyX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgQ29tcG9zaXRpbmdNYW5hZ2VyIGZpbmFs
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21wb3NpdGluZ01hbmFnZXIpOworcHVibGlj
OgorICAgIENvbXBvc2l0aW5nTWFuYWdlcigpID0gZGVmYXVsdDsKKyAgICB+Q29tcG9zaXRpbmdN
YW5hZ2VyKCk7CisKKyAgICB2b2lkIGVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZSYpOworICAg
IGludCByZWxlYXNlQ29ubmVjdGlvbkZkKCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZShtX2Nvbm5l
Y3Rpb25GZCwgLTEpOyB9OworCitwcml2YXRlOgorICAgIGludCBtX2Nvbm5lY3Rpb25GZCB7IC0x
IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbXBvc2l0aW5n
TWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9EcmF3aW5nQXJlYVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlL0RyYXdpbmdBcmVhV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMzQ0N2FjOGNiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcApAQCAtMCwwICsxLDE5MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFXUEUuaCIKKworI2luY2x1ZGUgIkRy
YXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL01haW5GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworRHJhd2luZ0FyZWFXUEU6OkRyYXdpbmdBcmVhV1BF
KFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKQorICAg
IDogRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlV1BFLCB3ZWJQYWdlKQoreworICAgIHdlYlBh
Z2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsK
KyAgICBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKDApOworfQorCitEcmF3aW5nQXJl
YVdQRTo6fkRyYXdpbmdBcmVhV1BFKCkKK3sKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6bGF5
ZXJIb3N0RGlkRmx1c2hMYXllcnMoKQoreworICAgIG1fd2ViUGFnZS5zZW5kKE1lc3NhZ2VzOjpE
cmF3aW5nQXJlYVByb3h5OjpFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKDAsIG1fbGF5
ZXJUcmVlSG9zdC0+bGF5ZXJUcmVlQ29udGV4dCgpKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OnNldE5lZWRzRGlzcGxheSgpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7Cisg
ICAgbV9sYXllclRyZWVIb3N0LT5zZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheSgp
OworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3Qg
SW50UmVjdCYgcmVjdCkKK3sKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xh
eWVyVHJlZUhvc3QtPnNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KHJl
Y3QpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Ny
b2xsUmVjdCwgY29uc3QgSW50U2l6ZSYpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7
CisgICAgbV9sYXllclRyZWVIb3N0LT5zY3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoc2Nyb2xs
UmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnBhZ2VCYWNrZ3JvdW5kVHJhbnNwYXJl
bmN5Q2hhbmdlZCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9sYXll
clRyZWVIb3N0LT5wYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQoKTsKK30KKwordm9p
ZCBEcmF3aW5nQXJlYVdQRTo6Zm9yY2VSZXBhaW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCitib29sIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBj
YWxsYmFja0lEKQoreworICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3QgJiYgbV9sYXllclRyZWVI
b3N0LT5mb3JjZVJlcGFpbnRBc3luYyhjYWxsYmFja0lEKTsKK30KKwordm9pZCBEcmF3aW5nQXJl
YVdQRTo6c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sIGZyb3plbikKK3sKKyAgICBtX2xh
eWVyVHJlZVN0YXRlSXNGcm96ZW4gPSBmcm96ZW47Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6
OnNldFBhaW50aW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmIHN0b3JlKQoreworICAgIG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygp
LnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6Zm9yY2VDb21wb3NpdGluZ01vZGVLZXkoKSkpOworfQorCit2b2lkIERyYXdp
bmdBcmVhV1BFOjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVy
VHJlZUhvc3QtPmNvbnRlbnRzU2l6ZUNoYW5nZWQoc2l6ZSk7Cit9CisKK0dyYXBoaWNzTGF5ZXJG
YWN0b3J5KiBEcmF3aW5nQXJlYVdQRTo6Z3JhcGhpY3NMYXllckZhY3RvcnkoKQoreworICAgIGlm
IChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3QtPmdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgRHJhd2lu
Z0FyZWFXUEU6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVI
b3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xheWVyKTsKK30KKwordm9pZCBE
cmF3aW5nQXJlYVdQRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQoreworICAgIGlm
IChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2NoZWR1bGVMYXll
ckZsdXNoKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoSW1tZWRpYXRlbHkoKQoreworICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoKCk7Cit9CisKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SKQorUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRHJhd2luZ0FyZWFX
UEU6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5
SUQpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgcmV0dXJuIG1fbGF5ZXJU
cmVlSG9zdC0+Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCk7CisKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCit2b2lkIERyYXdpbmdBcmVhV1BFOjphdHRhY2hW
aWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqIGZyYW1lLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiB2aWV3T3ZlcmxheVJvb3RMYXllcikKK3sKKyAgICBpZiAoIWZyYW1lLT5p
c01haW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9sYXllclRyZWVI
b3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdPdmVybGF5Um9vdExheWVyKHZpZXdP
dmVybGF5Um9vdExheWVyKTsKK30KKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJF
QURFRCkKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmJikKK3sKK30KKyNlbmRpZgorCisjaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpCit2b2lkIERyYXdpbmdB
cmVhV1BFOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQoreworfQorI2VuZGlmCisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBi
b29sLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6
ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQoreworICAgIG1fd2ViUGFn
ZS5zZXREZXZpY2VTY2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgbV93ZWJQYWdl
LnNldFNpemUoc2l6ZSk7CisgICAgbV93ZWJQYWdlLmxheW91dElmTmVlZGVkKCk7CisgICAgbV93
ZWJQYWdlLnNjcm9sbE1haW5GcmFtZUlmTm90QXRNYXhTY3JvbGxQb3NpdGlvbihzY3JvbGxPZmZz
ZXQpOworCisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVIb3N0
LT5zaXplRGlkQ2hhbmdlKG1fd2ViUGFnZS5zaXplKCkpOworfQorCit2b2lkIERyYXdpbmdBcmVh
V1BFOjpkaWRVcGRhdGUoKQoreworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjplbnRlckFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7Cisg
ICAgQVNTRVJUKCFtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdCA9IExheWVy
VHJlZUhvc3Q6OmNyZWF0ZShtX3dlYlBhZ2UpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9v
dENvbXBvc2l0aW5nTGF5ZXIoZ3JhcGhpY3NMYXllcik7CisgICAgbV9sYXllclRyZWVIb3N0LT5z
ZXRTaG91bGROb3RpZnlBZnRlck5leHRTY2hlZHVsZWRMYXllckZsdXNoKHRydWUpOworICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2l6ZURpZENoYW5nZShtX3dlYlBhZ2Uuc2l6ZSgpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjQ2YzUzNTRlNGZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5oCkBAIC0wLDAgKzEsOTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBEcmF3aW5nQXJlYVdQRV9oCisjZGVmaW5lIERyYXdpbmdBcmVhV1BFX2gKKworI2luY2x1
ZGUgIkRyYXdpbmdBcmVhLmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVdQRSA6IHB1YmxpYyBEcmF3aW5nQXJl
YSB7CitwdWJsaWM6CisgICAgRHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYsIGNvbnN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVdQRSgpOworCisg
ICAgdm9pZCBsYXllckhvc3REaWRGbHVzaExheWVycygpIG92ZXJyaWRlOworCitwcml2YXRlOgor
ICAgIC8vIERyYXdpbmdBcmVhCisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Ny
b2xsRGVsdGEpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHBhZ2VCYWNrZ3JvdW5kVHJh
bnNwYXJlbmN5Q2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmb3JjZVJlcGFp
bnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0
X3QgY2FsbGJhY2tJRCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldExheWVyVHJlZVN0
YXRlSXNGcm96ZW4oYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGxheWVyVHJlZVN0
YXRlSXNGcm96ZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVyVHJlZVN0YXRlSXNG
cm96ZW47IH0KKyAgICB2aXJ0dWFsIExheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVyVHJlZUhvc3QuZ2V0KCk7IH0KKworICAgIHZpcnR1
YWwgdm9pZCBzZXRQYWludGluZ0VuYWJsZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1
c2goKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2hJbW1lZGlhdGVseSgpIG92ZXJyaWRlOworCisjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpEaXNw
bGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihXZWJDb3JlOjpQ
bGF0Zm9ybURpc3BsYXlJRCkgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
VEhSRUFERUQpCisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmJikgb3ZlcnJpZGU7CisjZW5kaWYKKworI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykgfHwgVVNFKFRFWFRVUkVfTUFQUEVSKQorICAgIHZpcnR1
YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBvdmVycmlkZTsKKyNlbmRp
ZgorCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBi
b29sLCBmbG9hdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopOworCisgICAgLy8gV2hlbiB0cnVlLCB3ZSBtYWludGFpbiB0aGUgbGF5ZXIgdHJl
ZSBpbiBpdHMgY3VycmVudCBzdGF0ZSBieSBub3QgbGVhdmluZyBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZyBtb2RlCisgICAgLy8gYW5kIG5vdCBzY2hlZHVsaW5nIGxheWVyIGZsdXNoZXMuCisgICAg
Ym9vbCBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4geyBmYWxzZSB9OworCisgICAgLy8gVGhlIGxh
eWVyIHRyZWUgaG9zdCB0aGF0IGhhbmRsZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCisgICAg
UmVmUHRyPExheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRHJhd2luZ0FyZWFXUEVfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJV1BF
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzRjODQ0YmNiYTkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L1dlYkluc3BlY3RvclVJV1BFLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJJbnNwZWN0b3JVSS5oIgorCisjaW5jbHVkZSAiUmVtb3RlV2ViSW5zcGVjdG9y
VUkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViSW5zcGVjdG9yVUk6OmNhblNh
dmUoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclVJOjps
b2NhbGl6ZWRTdHJpbmdzVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6bG9jYWxpemVkU3RyaW5nc1VSTCgpCit7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yV1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzRlMGM2NWUwZWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dl
Ykluc3BlY3RvcldQRS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViSW5zcGVjdG9yLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworYm9vbCBXZWJJbnNwZWN0b3I6OmNhblNhdmUoKSBjb25zdAoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKworU3RyaW5nIFdlYkluc3BlY3Rvcjo6bG9jYWxpemVkU3RyaW5nc1VS
TCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmVmMjRlNWRlZjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCkBA
IC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgor
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2Vz
U3RvcmUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6cGxhdGZvcm1EZXRhY2goKQoreworfQorCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRWRp
dG9yU3RhdGUoRnJhbWUmLCBFZGl0b3JTdGF0ZSYsIEluY2x1ZGVQb3N0TGF5b3V0RGF0YUhpbnQp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlOjpwbGF0
Zm9ybVByZWZlcmVuY2VzRGlkQ2hhbmdlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3Jl
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViUGFnZTo6cGVyZm9ybURl
ZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFdlYlBhZ2U6
OnBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJQYWdlOjpjYWNoZWRS
ZXNwb25zZU1JTUVUeXBlRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgV2ViUGFnZTo6cGxhdGZvcm1DYW5I
YW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJQYWdlOjpjYWNoZWRTdWdn
ZXN0ZWRGaWxlbmFtZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitSZWZQdHI8U2hhcmVkQnVmZmVyPiBXZWJQYWdl
OjpjYWNoZWRSZXNwb25zZURhdGFGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitTdHJpbmcgV2ViUGFnZTo6cGxhdGZv
cm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0NjEwNzNiZTNlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5X
UEUuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEw
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc01haW5Vbml4LmgiCisK
KyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5V1BFLmg+CisjaW5jbHVkZSA8Z2xpYi5o
PgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorCisjaW5jbHVkZSA8aW9zdHJlYW0+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
UHJvY2Vzc01haW4gZmluYWw6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluQmFzZSB7CitwdWJsaWM6
CisgICAgYm9vbCBwbGF0Zm9ybUluaXRpYWxpemUoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAg
Ly8gVE9ETzogV3JhcCB3aXRoICNpZm5kZWYgTkRFQlVHCisgICAgICAgIGlmIChnX2dldGVudigi
V0VCS0lUMl9QQVVTRV9XRUJfUFJPQ0VTU19PTl9MQVVOQ0giKSkgeworICAgICAgICAgICAgZ19w
cmludGVycigiV2ViUHJvY2VzcyBQSUQ6ICVkXG4iLCBnZXRwaWQoKSk7CisgICAgICAgICAgICBX
VEY6OnNsZWVwKDMwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIGJvb2wgcGFyc2VDb21tYW5kTGluZShpbnQgYXJnYywgY2hhcioqIGFyZ3YpIG92ZXJy
aWRlCisgICAgeworICAgICAgICBBU1NFUlQoYXJnYyA9PSAzKTsKKyAgICAgICAgaWYgKGFyZ2Mg
PCAzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICghQ2hpbGRQcm9j
ZXNzTWFpbkJhc2U6OnBhcnNlQ29tbWFuZExpbmUoYXJnYywgYXJndikpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaW50IHdwZUZkID0gYXRvaShhcmd2WzJdKTsKKyAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKAorICAgICAgICAgICAgW3dwZUZkXSB7CisgICAg
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5V1BFPihQbGF0Zm9y
bURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkpOworICAgICAgICAgICAgICAgIGRvd25jYXN0PFBs
YXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpLmluaXRp
YWxpemUod3BlRmQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KK307CisKK2ludCBXZWJQcm9jZXNzTWFpblVuaXgoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQor
eworICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPFdlYlByb2Nlc3MsIFdlYlByb2Nlc3NNYWlu
PihhcmdjLCBhcmd2KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9jb25maWcuaCBiL1NvdXJjZS9XZWJLaXQyL2NvbmZpZy5oCmluZGV4IGM2
M2QxYTI2Zjc5Li4zNDc5YjFlZDMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvY29uZmln
LmgKKysrIGIvU291cmNlL1dlYktpdDIvY29uZmlnLmgKQEAgLTU4LDcgKzU4LDcgQEAKICNkZWZp
bmUgUExVR0lOX0FSQ0hJVEVDVFVSRShBUkNIKSAoZGVmaW5lZCBQTFVHSU5fQVJDSElURUNUVVJF
XyMjQVJDSCAmJiBQTFVHSU5fQVJDSElURUNUVVJFXyMjQVJDSCkKIAogI2lmbmRlZiBFTkFCTEVf
SU5TUEVDVE9SX1NFUlZFUgotI2lmIEVOQUJMRShXRUJfU09DS0VUUykgJiYgUExBVEZPUk0oR1RL
KQorI2lmIEVOQUJMRShXRUJfU09DS0VUUykgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKSkKICNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9TRVJWRVIgMQogI2VuZGlmCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dwZS93cGUtd2Via2l0LnBjLmluIGIvU291cmNl
L1dlYktpdDIvd3BlL3dwZS13ZWJraXQucGMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmU5OWMwMjUxODE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvd3BlL3dwZS13ZWJraXQucGMuaW4KQEAgLTAsMCArMSwxMSBAQAorcHJlZml4PUBDTUFLRV9J
TlNUQUxMX1BSRUZJWEAKK2V4ZWNfcHJlZml4PSR7cHJlZml4fQorbGliZGlyPUBMSUJfSU5TVEFM
TF9ESVJACitpbmNsdWRlZGlyPSR7cHJlZml4fS9pbmNsdWRlCisKK05hbWU6IFdlYktpdDIKK0Rl
c2NyaXB0aW9uOiBXUEUtZmxhdm9yZWQgV2ViIGVuZ2luZQorVmVyc2lvbjogQFBST0pFQ1RfVkVS
U0lPTkAKK1JlcXVpcmVzLnByaXZhdGU6IGdsaWItMi4wIGxpYnNvdXAtMi40CitMaWJzOiAtTCR7
bGliZGlyfSAtbFdQRVdlYktpdCAtbFdQRQorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vd3BlLUBX
UEVfQVBJX1ZFUlNJT05AIC1JJHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAvV1BF
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZExpYkdCTS5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9GaW5kTGliR0JNLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5kMjA5MWNiZmI0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kTGliR0JN
LmNtYWtlCkBAIC0wLDAgKzEsNDYgQEAKKyMgLSBUcnkgdG8gZmluZCBnYm0uCisjIE9uY2UgZG9u
ZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgTElCR0JNX0lOQ0xVREVfRElSUyAtIHRoZSBnYm0g
aW5jbHVkZSBkaXJlY3RvcmllcworIyAgTElCR0JNX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8g
dXNlIGdibS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
ZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX0xJQkdCTSBnYm0p
CisKK2ZpbmRfcGF0aChMSUJHQk1fSU5DTFVERV9ESVJTCisgICAgTkFNRVMgZ2JtLmgKKyAgICBI
SU5UUyAke1BDX0xJQkdCTV9JTkNMVURFX0RJUlN9ICR7UENfTElCR0JNX0lOQ1VERURJUn0KKykK
KworZmluZF9saWJyYXJ5KExJQkdCTV9MSUJSQVJJRVMKKyAgICBOQU1FUyBnYm0KKyAgICBISU5U
UyAke1BDX0xJQkdCTV9MSUJSQVJZX0RJUlN9ICR7UENfTElCR0JNX0xJQkRJUn0KKykKKworaW5j
bHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVf
U1RBTkRBUkRfQVJHUyhMSUJHQk0gREVGQVVMVF9NU0cgTElCR0JNX0xJQlJBUklFUykKKworbWFy
a19hc19hZHZhbmNlZChMSUJHQk1fSU5DTFVERV9ESVJTIExJQkdCTV9MSUJSQVJJRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi42MTYxNTRlNjExOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFr
ZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkgdG8g
ZmluZCBXUEUtbWVzYS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBXUEVf
TUVTQV9GT1VORCAtIHN5c3RlbSBoYXMgV1BFLW1lc2EuCisjICBXUEVfTUVTQV9JTkNMVURFX0RJ
UlMgLSB0aGUgV1BFLW1lc2EgaW5jbHVkZSBkaXJlY3RvcmllcworIyAgV1BFX01FU0FfTElCUkFS
SUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BFLW1lc2EuCisjCisjIENvcHlyaWdodCAoQykgMjAx
NiBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisj
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hl
Y2tfbW9kdWxlcyhQQ19XUEVfTUVTQSBRVUlFVCB3cGUtbWVzYSkKKworZmluZF9wYXRoKFdQRV9N
RVNBX0lOQ0xVREVfRElSUworICAgIE5BTUVTIHdwZS1tZXNhL3ZpZXctYmFja2VuZC1leHBvcnRh
YmxlLWRtYS1idWYuaAorICAgIEhJTlRTICR7UENfV1BFX01FU0FfSU5DTFVERURJUn0gJHtQQ19X
UEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGlicmFyeShXUEVfTUVTQV9MSUJSQVJJ
RVMKKyAgICBOQU1FUyBXUEVCYWNrZW5kLW1lc2EKKyAgICBISU5UUyAke1BDX1dQRV9NRVNBX0xJ
QkRJUn0gJHtQQ19XUEVfTUVTQV9MSUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQo
V1BFX01FU0FfSU5DTFVERV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5k
UGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRf
QVJHUyhXUEVfTUVTQSBSRVFVSVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVT
QV9MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21h
a2UgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM3YTkzZDAwNTE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkg
dG8gZmluZCBXUEUuCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFX0ZP
VU5EIC0gc3lzdGVtIGhhcyBXUEUuCisjICBXUEVfSU5DTFVERV9ESVJTIC0gdGhlIFdQRSBpbmNs
dWRlIGRpcmVjdG9yaWVzCisjICBXUEVfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BF
LgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
CisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3Bh
Y2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfV1BFIFFVSUVUIHdwZSkKKwor
ZmluZF9wYXRoKFdQRV9JTkNMVURFX0RJUlMKKyAgICBOQU1FUyB3cGUvbG9hZGVyLmgKKyAgICBI
SU5UUyAke1BDX1dQRV9JTkNMVURFRElSfSAke1BDX1dQRV9JTkNMVURFX0RJUlN9CispCisKK2Zp
bmRfbGlicmFyeShXUEVfTElCUkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2VuZAorICAgIEhJTlRT
ICR7UENfV1BFX0xJQkRJUn0gJHtQQ19XUEVfTElCUkFSWV9ESVJTfQorKQorCittYXJrX2FzX2Fk
dmFuY2VkKFdQRV9JTkNMVURFX0RJUlMgV1BFX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5kUGFj
a2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJH
UyhXUEUgUkVRVUlSRURfVkFSUyBXUEVfSU5DTFVERV9ESVJTIFdQRV9MSUJSQVJJRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMjg3
MDYzZTEyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtl
CkBAIC0wLDAgKzEsMTM4IEBACitpbmNsdWRlKEdOVUluc3RhbGxEaXJzKQorCitzZXQoUFJPSkVD
VF9WRVJTSU9OX01BSk9SIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX01JTk9SIDApCitzZXQoUFJP
SkVDVF9WRVJTSU9OX1BBVENIIDIwMTcwMzMwKQorc2V0KFBST0pFQ1RfVkVSU0lPTiAke1BST0pF
Q1RfVkVSU0lPTl9NQUpPUn0uJHtQUk9KRUNUX1ZFUlNJT05fTUlOT1J9LiR7UFJPSkVDVF9WRVJT
SU9OX1BBVENIfSkKK3NldChXUEVfQVBJX1ZFUlNJT04gMC4xKQorCitpZiAoV1RGX0NQVV9YODZf
NjQpCisgICAgc2V0KEVOQUJMRV9GVExfREVGQVVMVCBPTikKK2Vsc2UgKCkKKyAgICBzZXQoRU5B
QkxFX0ZUTF9ERUZBVUxUIE9GRikKK2VuZGlmICgpCisKK1dFQktJVF9PUFRJT05fQkVHSU4oKQor
CitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfM0RfVFJBTlNGT1JNUyBQ
VUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfQ1NTX1JFR0lPTlMgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0IFBVQkxJQyBPTikKK1dFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9EQVRBQkFTRV9QUk9DRVNTIFBSSVZB
VEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZUTF9KSVQgUFJJVkFURSAke0VOQUJMRV9GVExfREVG
QVVMVH0pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR0FNRVBBRCBQ
VUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dFT0xP
Q0FUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBQUklWQVRFIE9GRikK
K1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9DT05UUk9MU19T
Q1JJUFQgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X01FRElBX1NPVVJDRSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9UT1VDSF9FVkVOVFMgUFVCTElDIE9OKQorV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJREVPIFBVQkxJQyBPTikKK1dF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFT19UUkFDSyBQVUJMSUMg
T04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklFV19NT0RFX0NT
U19NRURJQSBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfV0VCX0FOSU1BVElPTlMgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9XRUJfQVVESU8gUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIFBVQkxJQyBPTikKKworV0VCS0lUX09QVElP
Tl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9HTCAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3Ig
R1N0cmVhbWVyIEdMIiBQUklWQVRFIE9GRikKKworV0VCS0lUX09QVElPTl9FTkQoKQorCitzZXQo
RU5BQkxFX1dFQkNPUkUgT04pCitzZXQoRU5BQkxFX1dFQktJVCBPRkYpCitzZXQoRU5BQkxFX1dF
QktJVDIgT04pCitzZXQoRU5BQkxFX0FQSV9URVNUUyAke0RFVkVMT1BFUl9NT0RFfSkKK3NldChF
TkFCTEVfVE9PTFMgT04pCisKK3NldChXVEZfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChKYXZh
U2NyaXB0Q29yZV9MSUJSQVJZX1RZUEUgU1RBVElDKQorc2V0KFdlYkNvcmVfTElCUkFSWV9UWVBF
IFNUQVRJQykKK3NldChXZWJLaXQyX09VVFBVVF9OQU1FIFdQRVdlYktpdCkKK3NldChXZWJLaXQy
X1dlYlByb2Nlc3NfT1VUUFVUX05BTUUgV1BFV2ViUHJvY2VzcykKK3NldChXZWJLaXQyX05ldHdv
cmtQcm9jZXNzX09VVFBVVF9OQU1FIFdQRU5ldHdvcmtQcm9jZXNzKQorc2V0KFdlYktpdDJfRGF0
YWJhc2VQcm9jZXNzX09VVFBVVF9OQU1FIFdQRURhdGFiYXNlUHJvY2VzcykKKworZmluZF9wYWNr
YWdlKElDVSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShUaHJlYWRzIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKFpMSUIgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoR0xJQiAyLjQwLjAgUkVRVUlSRUQg
Q09NUE9ORU5UUyBnaW8gZ2lvLXVuaXggZ29iamVjdCBndGhyZWFkIGdtb2R1bGUpCitmaW5kX3Bh
Y2thZ2UoR251VExTIDMuMC4wIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2UoQ2Fpcm8gMS4xMC4y
IFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVRVUlSRUQpCitmaW5k
X3BhY2thZ2UoRnJlZXR5cGUyIDIuNC4yIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEhhcmZCdXp6
IDAuOS4xOCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShKUEVHIFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKExpYkdjcnlwdCAxLjYuMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJTb3VwIDIuNDIu
MCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYbWwyIDIuOC4wIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoUE5HIFJFUVVJUkVE
KQorZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXZWJQIFJFUVVJ
UkVEKQorCitmaW5kX3BhY2thZ2UoT3BlbkdMRVMyIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEVH
TCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKFdQRUJhY2tlbmQgUkVRVUlSRUQpCisKK3NldChV
U0VfWERHTUlNRSBPTikKKworaWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVfV0VCX0FVRElPKQor
ICAgIHNldChHU1RSRUFNRVJfQ09NUE9ORU5UUyBhcHAgYXVkaW8gcGJ1dGlscykKKyAgICBTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfR1NUUkVBTUVSIFRSVUUpCisgICAgaWYgKEVOQUJMRV9W
SURFTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgdmlkZW8gdGFn
KQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICAgICAgbGlz
dChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgZmZ0KQorICAgICAgICBTRVRfQU5EX0VYUE9T
RV9UT19CVUlMRChVU0VfV0VCQVVESU9fR1NUUkVBTUVSIFRSVUUpCisgICAgZW5kaWYgKCkKKwor
ICAgIGZpbmRfcGFja2FnZShHU3RyZWFtZXIgMS4yLjMgUkVRVUlSRUQgQ09NUE9ORU5UUyAke0dT
VFJFQU1FUl9DT01QT05FTlRTfSkKKworICAgICMgRklYTUU6IFdoYXQgYWJvdXQgTVBFR1RTIHN1
cHBvcnQ/IFVTRV9HU1RSRUFNRVJfTVBFR1RTPworZW5kaWYgKCkKKworaWYgKEVOQUJMRV9NRURJ
QV9TVFJFQU0gT1IgRU5BQkxFX1dFQl9SVEMpCisgICAgZmluZF9wYWNrYWdlKE9wZW5XZWJSVEMp
CisgICAgaWYgKE5PVCBPUEVOV0VCUlRDX0ZPVU5EKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VS
Uk9SICJPcGVuV2ViUlRDIGlzIG5lZWRlZCBmb3IgRU5BQkxFX01FRElBX1NUUkVBTSBhbmQgRU5B
QkxFX1dFQl9SVEMuIikKKyAgICBlbmRpZiAoKQorICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxE
KFVTRV9PUEVOV0VCUlRDIFRSVUUpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKKyAgICBmaW5kX3BhY2thZ2UoQ2Fpcm9HTCAxLjEwLjIgUkVRVUlSRUQgQ09N
UE9ORU5UUyBjYWlyby1lZ2wpCitlbmRpZiAoKQorCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElO
R19XUEVfXz0xKQorYWRkX2RlZmluaXRpb25zKC1EREFUQV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9E
QVRBRElSfSIpCisKK3NldChVU0VfVURJUzg2IDEpCisKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxE
KFVTRV9PUEVOR0xfRVNfMiBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0VHTCBU
UlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF8z
RCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVIgVFJV
RSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9URVhUVVJFX01BUFBFUl9HTCBUUlVFKQor
U0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgVFJVRSkKK1NF
VF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDUyBUUlVFKQorU0VU
X0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEIFRS
VUUpCisKK3NldChGT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0v
Rm9yd2FyZGluZ0hlYWRlcnMpCisKKyMgQnVpbGQgd2l0aCAtZnZpc2liaWxpdHk9aGlkZGVuIHRv
IHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCisjIE5vdCB0byBiZSB1c2Vk
IHdoZW4gYnVpbGRpbmcgdGhlIFdlYktpdFRlc3RSdW5uZXIgbGlicmFyeS4KK2lmIChOT1QgREVW
RUxPUEVSX01PREUpCisgICAgc2V0KENNQUtFX0NfRkxBR1NfUkVMRUFTRSAiJHtDTUFLRV9DX0ZM
QUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4iKQorICAgIHNldChDTUFLRV9DWFhfRkxB
R1NfUkVMRUFTRSAiJHtDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRX0gLWZ2aXNpYmlsaXR5PWhpZGRl
biAtZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW4iKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQppbmRleCBkNTgwMGExZTlkNC4uZWIy
MGY3MGYzZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1
Y3QtYXJjaGl2ZQorKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFy
Y2hpdmUKQEAgLTE2Myw3ICsxNjMsNyBAQCBkZWYgZGlyQ29udGFpbnNkd28oZGlyZWN0b3J5KToK
IAogCiBkZWYgYXJjaGl2ZUJ1aWx0UHJvZHVjdChjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgZnVs
bFBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycs
ICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0
aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICAjIEZJWE1FOiBJbWFnZURpZmYgc2hvdWxk
IGJlIGJ1aWx0IHdpdGggdGhlIGhvc3QgU0RLLCA8cmRhcjovL3Byb2JsZW0vMzAyNjYwMzg+Lgog
ICAgICMgQW4gYXBwcm9hY2ggc2ltaWxhciB0byB0aGUgb25lIHVzZWQgZm9yIExheW91dFRlc3RS
ZWxheSBpbiByMTkwNTE1IHNob3VsZCBiZSBpbWxlbWVudGVkLgpAQCAtMTgyLDcgKzE4Miw3IEBA
IGRlZiBhcmNoaXZlQnVpbHRQcm9kdWN0KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBmdWxsUGxh
dGZvcm0pOgogCiAgICAgICAgIHNodXRpbC5ybXRyZWUodGhpbkRpcmVjdG9yeSkKIAotICAgIGVs
aWYgcGxhdGZvcm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCc6CisgICAgZWxpZiBwbGF0
Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJyBvciBwbGF0Zm9ybSA9PSAnd3BlJzoK
ICAgICAgICAgIyBPbiBHVEsrL0VGTCB3ZSBkb24ndCBuZWVkIHRoZSBpbnRlcm1lZGlhdGUgc3Rl
cCBvZiBjcmVhdGluZyBhIHRoaW5EaXJlY3RvcnkKICAgICAgICAgIyB0byBiZSBjb21wcmVzc2Vk
IGluIGEgWklQIGZpbGUsIGJlY2F1c2Ugd2UgY2FuIGNyZWF0ZSB0aGUgWklQIGRpcmVjdGx5Lgog
ICAgICAgICAjIFRoaXMgaXMgZmFzdGVyIGFuZCByZXF1aXJlcyBsZXNzIGRpc2sgcmVzb3VyY2Vz
LgpAQCAtMjE2LDcgKzIxNiw3IEBAIGRlZiB1bnppcEFyY2hpdmUoZGlyZWN0b3J5VG9FeHRyYWN0
VG8sIGNvbmZpZ3VyYXRpb24pOgogCiAKIGRlZiBleHRyYWN0QnVpbHRQcm9kdWN0KGNvbmZpZ3Vy
YXRpb24sIHBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywg
J2d0aycsICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2lu
JywgJ2d0aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICBhcmNoaXZlRmlsZSA9IG9zLnBh
dGguam9pbihfdG9wTGV2ZWxCdWlsZERpcmVjdG9yeSwgY29uZmlndXJhdGlvbiArICcuemlwJykK
IApAQCAtMjI1LDcgKzIyNSw3IEBAIGRlZiBleHRyYWN0QnVpbHRQcm9kdWN0KGNvbmZpZ3VyYXRp
b24sIHBsYXRmb3JtKToKIAogICAgIGlmIHBsYXRmb3JtIGluICgnbWFjJywgJ2lvcycpOgogICAg
ICAgICByZXR1cm4gdW56aXBBcmNoaXZlKF90b3BMZXZlbEJ1aWxkRGlyZWN0b3J5LCBjb25maWd1
cmF0aW9uKQotICAgIGVsaWYgcGxhdGZvcm0gPT0gJ3dpbicgb3IgcGxhdGZvcm0gPT0gJ2d0aycg
b3IgcGxhdGZvcm0gPT0gJ2VmbCc6CisgICAgZWxpZiBwbGF0Zm9ybSA9PSAnd2luJyBvciBwbGF0
Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJyBvciBwbGF0Zm9ybSA9PSAnd3BlJzoK
ICAgICAgICAgcHJpbnQgJ0V4dHJhY3RpbmcnLCBfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5
CiAgICAgICAgIHJldHVybiB1bnppcEFyY2hpdmUoX2NvbmZpZ3VyYXRpb25CdWlsZERpcmVjdG9y
eSwgY29uZmlndXJhdGlvbikKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
dGVzdC1yZXN1bHQtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0
LWFyY2hpdmUKaW5kZXggM2MyYjBiZDdhMzYuLjk4MGYwNzFjMTRmIDEwMDY0NAotLS0gYS9Ub29s
cy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlCisrKyBiL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUKQEAgLTQ2LDcgKzQ2LDcgQEAgZGVmIG1h
aW4oKToKICAgICByZXR1cm4gYXJjaGl2ZVRlc3RSZXN1bHRzKG9wdGlvbnMuY29uZmlndXJhdGlv
biwgb3B0aW9ucy5wbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpCiAKIGRlZiBhcmNoaXZl
VGVzdFJlc3VsdHMoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGxheW91dFRlc3RSZXN1bHRzRGly
KToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAn
d2luY2Fpcm8nLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywg
J2d0aycsICdlZmwnLCAnd2luY2Fpcm8nLCAnaW9zJywgJ3dwZScpCiAKICAgICB0cnk6CiAgICAg
ICAgIG9zLnVubGluayhhcmNoaXZlRmlsZSkKQEAgLTY2LDcgKzY2LDcgQEAgZGVmIGFyY2hpdmVU
ZXN0UmVzdWx0cyhjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIp
OgogICAgIGlmIHBsYXRmb3JtIGluICgnbWFjJywgJ2lvcycpOgogICAgICAgICBpZiBzdWJwcm9j
ZXNzLmNhbGwoWyJkaXR0byIsICItYyIsICItayIsICItLXNlcXVlc3RlclJzcmMiLCAiLS16bGli
Q29tcHJlc3Npb25MZXZlbCIsICIyIiwgbGF5b3V0VGVzdFJlc3VsdHNEaXIsIGFyY2hpdmVGaWxl
XSk6CiAgICAgICAgICAgICByZXR1cm4gMQotICAgIGVsaWYgcGxhdGZvcm0gaW4gKCd3aW4nLCAn
Z3RrJywgJ2VmbCcsICd3aW5jYWlybycpOgorICAgIGVsaWYgcGxhdGZvcm0gaW4gKCd3aW4nLCAn
Z3RrJywgJ2VmbCcsICd3aW5jYWlybycsICd3cGUnKToKICAgICAgICAgaWYgc3VicHJvY2Vzcy5j
YWxsKFsiemlwIiwgIi1yIiwgIi0yIiwgYXJjaGl2ZUZpbGUsICIuIl0sIGN3ZD1sYXlvdXRUZXN0
UmVzdWx0c0Rpcik6CiAgICAgICAgICAgICByZXR1cm4gMQogCmRpZmYgLS1naXQgYS9Ub29scy9D
TWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0NNYWtlTGlzdHMudHh0CmluZGV4IDRiMmVkYjhkZTk3Li41
YjljZDM5Yjk5MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMv
Q01ha2VMaXN0cy50eHQKQEAgLTM1LDYgKzM1LDExIEBAIGVsc2VpZiAoIiR7UE9SVH0iIFNUUkVR
VUFMICJKU0NPbmx5IikKICAgICBpZiAoRU5BQkxFX0FQSV9URVNUUykKICAgICAgICAgYWRkX3N1
YmRpcmVjdG9yeShUZXN0V2ViS2l0QVBJKQogICAgIGVuZGlmICgpCitlbHNlaWYgKCIke1BPUlR9
IiBTVFJFUVVBTCAiV1BFIikKKyAgICBpZiAoREVWRUxPUEVSX01PREUpCisgICAgICAgIGFkZF9z
dWJkaXJlY3RvcnkoSW1hZ2VEaWZmKQorICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KFdlYktpdFRl
c3RSdW5uZXIpCisgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChXSU4zMikKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NGUwNmVkMmM0Mi4u
NzA5NWNkM2Y4MDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtZGV2IHRocmVh
ZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJraXQtZGV2
LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBBZGQgV1BFIHN1cHBvcnQgdG8gdmFy
aW91cyB0b29saW5nIHNjcmlwdHMsIFRlc3RXZWJLaXRBUEkgYW5kIFdlYktpdFRlc3RSdW5uZXIu
CisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBDaGFuZ2VMb2cgZW50
cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9k
dWN0LWFyY2hpdmU6CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJj
aGl2ZToKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBJbWFnZURpZmYvUGxh
dGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvYnVpbGQtZHVtcHJlbmRl
cnRyZWU6CisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6CisgICAgICAgICogU2NyaXB0
cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyOgorICAgICAgICAqIFNjcmlwdHMvdXBkYXRlLXdlYmtp
dC1saWJzLWpoYnVpbGQ6CisgICAgICAgICogU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnM6
IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvZmFjdG9yeS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
d3BlLnB5OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtV1BFLmNtYWtl
OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dwZS9JbmplY3RlZEJ1bmRsZUNvbnRy
b2xsZXJXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmguCisgICAgICAgICogVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1VdGlsaXRpZXNX
UEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcDogQWRkZWQuCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250c1dQRS5j
cHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3Bl
L0luamVjdGVkQnVuZGxlV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0
Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bVdlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNw
cDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFj
a2VuZC5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNz
Vmlld0JhY2tlbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oLgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHA6IEFkZGVk
LgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcDog
QWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBq
aGJ1aWxkL2poYnVpbGQtd3JhcHBlcjoKKyAgICAgICAgKiB3cGUvZ2VuZXJhdGUtaW5zcGVjdG9y
LWdyZXNvdXJjZS1tYW5pZmVzdC5weTogQWRkZWQuCisgICAgICAgICogd3BlL2poYnVpbGQubW9k
dWxlczogQWRkZWQuCisgICAgICAgICogd3BlL2poYnVpbGRyYzogQWRkZWQuCisgICAgICAgICog
d3BlL3BhdGNoZXMvY2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNo
OiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMt
YS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2g6IEFkZGVkLgorICAg
ICAgICAqIHdwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQt
Zml4LnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1z
dHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3Bl
L3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3Bh
dGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0
Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0
bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2g6
IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0
ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaDogQWRkZWQu
CisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVj
b2RlLXRpbWUucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdHJlYW1lci10
eXBlZmluZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYtdGhlLS5wYXRjaDog
QWRkZWQuCisKIDIwMTctMDQtMjAgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4
LnJ1PgogCiAgICAgICAgIFtjbWFrZV0gRGVmaW5lIEZPUldBUkRJTkdfSEVBREVSU19ESVIgaW4g
V2ViS2l0RlMgYW5kIHVzZSBpdCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9Ub29scy9JbWFnZURp
ZmYvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9JbWFnZURpZmYvUGxhdGZvcm1XUEUuY21ha2UK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRiMGVlNTMyOGJhCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAg
KzEgQEAKK2luY2x1ZGUoQ2Fpcm8uY21ha2UpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1
aWxkLWR1bXByZW5kZXJ0cmVlIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZQpp
bmRleCBjMzA5YjgyZDk4Yy4uNjliNGQwZTQ2NWQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
YnVpbGQtZHVtcHJlbmRlcnRyZWUKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVy
dHJlZQpAQCAtNjYsNyArNjYsNyBAQCBjaGRpciBGaWxlOjpTcGVjLT5jYXRkaXIoIlRvb2xzIiwg
IkR1bXBSZW5kZXJUcmVlIikgb3IgZGllOwogbXkgJHJlc3VsdDsKIGlmIChpc0FwcGxlQ29jb2FX
ZWJLaXQoKSkgewogICAgICRyZXN1bHQgPSBidWlsZFhDb2RlUHJvamVjdCgiRHVtcFJlbmRlclRy
ZWUiLCAkY2xlYW4sIFhjb2RlT3B0aW9ucygpLCBAQVJHVik7Ci19IGVsc2lmIChpc0d0aygpIHx8
IGlzRWZsKCkgfHwgaXNBbnlXaW5kb3dzKCkpIHsKK30gZWxzaWYgKGlzR3RrKCkgfHwgaXNFZmwo
KSB8fCBpc0FueVdpbmRvd3MoKSB8fCBpc1dQRSgpKSB7CiAgICAgIyBHdGssIEVGTCwgYW5kIFdp
bmRvd3MgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0
aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKaW5kZXgg
YWIyNTJhYzY1MGYuLmZmNGNiMGM0ZjMxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxk
LXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtMTAxLDYgKzEwMSw3
IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHRvIHBhc3MgdG8gYnVp
bGQgc3lzdGVtXQogCiAgIC0tZWZsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0
aGUgRUZMIHBvcnQKICAgLS1ndGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHRo
ZSBHVEsrIHBvcnQKKyAgLS13cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHRo
ZSBXUEUgcG9ydAogICAtLXdpbmNhaXJvICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdXNp
bmcgQ2Fpcm8gKHJhdGhlciB0aGFuIENvcmVHcmFwaGljcykgb24gV2luZG93cwogCiAgIC0taW5z
cGVjdG9yLWZyb250ZW5kICAgICAgICAgICAgICBDb3B5IFdlYiBJbnNwZWN0b3IgdXNlciBpbnRl
cmZhY2UgcmVzb3VyY2VzIHRvIHRoZSBidWlsZCBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lciBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Vi
a2l0dGVzdHJ1bm5lcgppbmRleCA0NGUyNWEzODUxOC4uMGZlNTFlMDgyMzQgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcgorKysgYi9Ub29scy9TY3JpcHRz
L2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKQEAgLTYxLDcgKzYxLDcgQEAgY2hkaXIgIlRvb2xzL1dl
YktpdFRlc3RSdW5uZXIiIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIldlYktpdFRlc3RSdW5u
ZXIiLCAkY2xlYW4sIFhjb2RlT3B0aW9ucygpLCBAQVJHVik7Ci19IGVsc2lmIChpc0d0aygpIHx8
IGlzRWZsKCkpIHsKK30gZWxzaWYgKGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQRSgpKSB7CiAg
ICAgIyBHVEsrIGFuZCBFRkwgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0
byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQgYi9Ub29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCmluZGV4IDM4OTNkYWZkOGVlLi5lZWQ1
ZjZiZGVhMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhi
dWlsZAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCkBAIC0y
NSw5ICsyNSwxMCBAQCB1c2UgR2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFzc190aHJvdWdoKTsK
IG15ICRwbGF0Zm9ybSA9ICIiOwogJHBsYXRmb3JtID0gImVmbCIgaWYgaXNFZmwoKTsKICRwbGF0
Zm9ybSA9ICJndGsiIGlmIGlzR3RrKCk7CiskcGxhdGZvcm0gPSAid3BlIiBpZiBpc1dQRSgpOwog
CiBpZiAoISRwbGF0Zm9ybSkgewotICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAi
IC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGsgb3IgLS1lZmwuXG4iOworICAgIGRpZSAiTm8g
cGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGssIC0t
ZWZsIG9yIC0td3BlLlxuIjsKIH0KIAogbXkgJHdpcGVPbkNoYW5nZSA9ICRFTlZ7SkhCVUlMRF9X
SVBFX09OX0NIQU5HRX0gLy8gMTsKQEAgLTEzMyw3ICsxMzQsNyBAQCBkZWxldGUgJEVOVntBUl9G
TEFHU30gaWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlwdHNE
aXIoKSAuICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3JtID0g
KCAiZWZsIiA9PiAiRUZMIiwgImd0ayIgPT4gIkdUSysiICk7CitteSAlcHJldHR5UGxhdGZvcm0g
PSAoICJlZmwiID0+ICJFRkwiLCAiZ3RrIiA9PiAiR1RLKyIsICJ3cGUiID0+ICJXUEUiICk7CiAK
IGlmICghJGZvcmNlICYmICFqaGJ1aWxkQ29uZmlndXJhdGlvbkNoYW5nZWQoKSkgewogICAgIHBy
aW50ICRwcmV0dHlQbGF0Zm9ybXskcGxhdGZvcm19IC4gIiBwb3J0IGRlcGVuZGVuY2llcyBhcmUg
YWxyZWFkeSB1cCB0byBkYXRlXG4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2Via2l0d3BlLWxpYnMgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicwpuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMC4uYjIzZmJkZTZiODMKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicwpAQCAtMCwwICsx
LDI0IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBT
LkwuCisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorIworIyBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisj
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisj
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKwordXNlIEZpbmRC
aW47Cit1c2UgbGliICRGaW5kQmluOjpCaW47Cit1c2Ugd2Via2l0ZGlyczsKKworbXkgJHNjcmlw
dHNEaXIgPSByZWxhdGl2ZVNjcmlwdHNEaXIoKTsKK3N5c3RlbSgicGVybCIsICIkc2NyaXB0c0Rp
ci91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZCIsICItLXdwZSIsIEBBUkdWKSA9PSAwIG9yIGRp
ZSAkITsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCBjNDBhZmY2ZjgyOC4uYmNiMWQzZWMwMmUgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdGRpcnMucG0KQEAgLTEwOCw2ICsxMDgsNyBAQCB1c2UgY29uc3RhbnQgewogICAgIE1hYyAg
ICAgID0+ICJNYWMiLAogICAgIEpTQ09ubHkgID0+ICJKU0NPbmx5IiwKICAgICBXaW5DYWlybyA9
PiAiV2luQ2Fpcm8iLAorICAgIFdQRSAgICAgID0+ICJXUEUiLAogICAgIFVua25vd24gID0+ICJV
bmtub3duIgogfTsKIApAQCAtNDQ3LDYgKzQ0OCw3IEBAIHN1YiBhcmd1bWVudHNGb3JDb25maWd1
cmF0aW9uKCkKICAgICBwdXNoKEBhcmdzLCAnLS02NC1iaXQnKSBpZiAoaXNXaW42NCgpKTsKICAg
ICBwdXNoKEBhcmdzLCAnLS1ndGsnKSBpZiBpc0d0aygpOwogICAgIHB1c2goQGFyZ3MsICctLWVm
bCcpIGlmIGlzRWZsKCk7CisgICAgcHVzaChAYXJncywgJy0td3BlJykgaWYgaXNXUEUoKTsKICAg
ICBwdXNoKEBhcmdzLCAnLS1qc2Mtb25seScpIGlmIGlzSlNDT25seSgpOwogICAgIHB1c2goQGFy
Z3MsICctLXdpbmNhaXJvJykgaWYgaXNXaW5DYWlybygpOwogICAgIHB1c2goQGFyZ3MsICctLWlu
c3BlY3Rvci1mcm9udGVuZCcpIGlmIGlzSW5zcGVjdG9yRnJvbnRlbmQoKTsKQEAgLTY4Miw3ICs2
ODQsNyBAQCBzdWIgZXhlY3V0YWJsZVByb2R1Y3REaXIKICAgICBteSAkcHJvZHVjdERpcmVjdG9y
eSA9IHByb2R1Y3REaXIoKTsKIAogICAgIG15ICRiaW5hcnlEaXJlY3Rvcnk7Ci0gICAgaWYgKGlz
RWZsKCkgfHwgaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSkgeworICAgIGlmIChpc0VmbCgpIHx8IGlz
R3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkgewogICAgICAgICAkYmluYXJ5RGlyZWN0
b3J5ID0gImJpbiI7CiAgICAgfSBlbHNpZiAoaXNBbnlXaW5kb3dzKCkpIHsKICAgICAgICAgJGJp
bmFyeURpcmVjdG9yeSA9IGlzV2luNjQoKSA/ICJiaW42NCIgOiAiYmluMzIiOwpAQCAtOTQzLDYg
Kzk0NSw5IEBAIHN1YiBidWlsdER5bGliUGF0aEZvck5hbWUKICAgICAgICAgICAgIHJldHVybiAi
JGJhc2VQcm9kdWN0RGlyLyRsaWJyYXJ5TmFtZS5pbnRlcm1lZGlhdGUvJGNvbmZpZ3VyYXRpb24v
JGxpYnJhcnlOYW1lLmludGVybWVkaWF0ZS8kbGlicmFyeU5hbWUubGliIjsKICAgICAgICAgfQog
ICAgIH0KKyAgICBpZiAoaXNXUEUoKSkgeworICAgICAgICByZXR1cm4gIiRjb25maWd1cmF0aW9u
UHJvZHVjdERpci9saWIvbGliV1BFV2ViS2l0LnNvIjsKKyAgICB9CiAKICAgICBkaWUgIlVuc3Vw
cG9ydGVkIHBsYXRmb3JtLCBjYW4ndCBkZXRlcm1pbmUgYnVpbHQgbGlicmFyeSBsb2NhdGlvbnMu
XG5UcnkgYGJ1aWxkLXdlYmtpdCAtLWhlbHBgIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIjsKIH0K
QEAgLTEwNTgsNyArMTA2Myw4IEBAIHN1YiBkZXRlcm1pbmVQb3J0TmFtZSgpCiAgICAgICAgIGVm
bCA9PiBFZmwsCiAgICAgICAgIGd0ayA9PiBHVEssCiAgICAgICAgICdqc2Mtb25seScgPT4gSlND
T25seSwKLSAgICAgICAgd2luY2Fpcm8gPT4gV2luQ2Fpcm8KKyAgICAgICAgd2luY2Fpcm8gPT4g
V2luQ2Fpcm8sCisgICAgICAgIHdwZSA9PiBXUEUKICAgICApOwogCiAgICAgZm9yIG15ICRhcmcg
KHNvcnQga2V5cyAlYXJnVG9Qb3J0TmFtZSkgewpAQCAtMTA5Myw2ICsxMDk5LDcgQEAgc3ViIGRl
dGVybWluZVBvcnROYW1lKCkKICAgICAgICAgICAgICAgICAtLWVmbAogICAgICAgICAgICAgICAg
IC0tZ3RrCiAgICAgICAgICAgICAgICAgLS1qc2Mtb25seQorICAgICAgICAgICAgICAgIC0td3Bl
CiAgICAgICAgICAgICApOwogICAgICAgICAgICAgZGllICJQbGVhc2Ugc3BlY2lmeSB3aGljaCBX
ZWJLaXQgcG9ydCB0byBidWlsZCB1c2luZyBvbmUgb2YgdGhlIGZvbGxvd2luZyBvcHRpb25zOiIK
ICAgICAgICAgICAgICAgICAuICJcblx0JHBvcnRzQ2hvaWNlXG4iOwpAQCAtMTEyNSw2ICsxMTMy
LDExIEBAIHN1YiBpc0pTQ09ubHkoKQogICAgIHJldHVybiBwb3J0TmFtZSgpIGVxIEpTQ09ubHk7
CiB9CiAKK3N1YiBpc1dQRSgpCit7CisgICAgcmV0dXJuIHBvcnROYW1lKCkgZXEgV1BFOworfQor
CiAjIERldGVybWluZSBpZiB0aGlzIGlzIGRlYmlhbiwgdWJ1bnR1LCBsaW5zcGlyZSwgb3Igc29t
ZXRoaW5nIHNpbWlsYXIuCiBzdWIgaXNEZWJpYW5CYXNlZCgpCiB7CkBAIC0xNTI4LDYgKzE1NDAs
OCBAQCBzdWIgbGF1bmNoZXJQYXRoKCkKICAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVTY3JpcHRz
UGF0aC9ydW4tbWluaWJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVXZWJLaXQoKSkgewog
ICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi1zYWZhcmkiOworICAgIH0g
ZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9y
dW4td3BlIjsKICAgICB9CiB9CiAKQEAgLTE1MzksNiArMTU1Myw4IEBAIHN1YiBsYXVuY2hlck5h
bWUoKQogICAgICAgICByZXR1cm4gIlNhZmFyaSI7CiAgICAgfSBlbHNpZiAoaXNBcHBsZVdpbldl
YktpdCgpKSB7CiAgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIiOworICAgIH0gZWxzaWYgKGlz
V1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICJXUEVMYXVuY2hlciI7CiAgICAgfQogfQogCkBAIC0x
ODQwLDYgKzE4NTYsOCBAQCBzdWIgZ2V0SmhidWlsZFBhdGgoKQogICAgICAgICBwdXNoKEBqaGJ1
aWxkUGF0aCwgIkRlcGVuZGVuY2llc0VGTCIpOwogICAgIH0gZWxzaWYgKGlzR3RrKCkpIHsKICAg
ICAgICAgcHVzaChAamhidWlsZFBhdGgsICJEZXBlbmRlbmNpZXNHVEsiKTsKKyAgICB9IGVsc2lm
IChpc1dQRSgpKSB7CisgICAgICAgIHB1c2goQGpoYnVpbGRQYXRoLCAiRGVwZW5kZW5jaWVzV1BF
Iik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZGllICJDYW5ub3QgZ2V0IEpIQnVpbGQgcGF0aCBm
b3IgcGxhdGZvcm0gdGhhdCBpc24ndCBHVEsrIG9yIEVGTC5cbiI7CiAgICAgfQpAQCAtMTg4Miw2
ICsxOTAwLDggQEAgc3ViIHdyYXBwZXJQcmVmaXhJZk5lZWRlZCgpCiAgICAgICAgICAgICBwdXNo
KEBwcmVmaXgsICItLWVmbCIpOwogICAgICAgICB9IGVsc2lmIChpc0d0aygpKSB7CiAgICAgICAg
ICAgICBwdXNoKEBwcmVmaXgsICItLWd0ayIpOworICAgICAgICB9IGVsc2lmIChpc1dQRSgpKSB7
CisgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLXdwZSIpOwogICAgICAgICB9CiAgICAgICAg
IHB1c2goQHByZWZpeCwgInJ1biIpOwogCkBAIC0yMDQwLDcgKzIwNjAsNyBAQCBzdWIgZ2VuZXJh
dGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QKICAgICBwdXNoIEBhcmdzLCAnLURTSE9XX0JJ
TkRJTkdTX0dFTkVSQVRJT05fUFJPR1JFU1M9MScgdW5sZXNzICgkd2lsbFVzZU5pbmphICYmIC10
IFNURE9VVCk7CiAKICAgICAjIFNvbWUgcG9ydHMgaGF2ZSBwcm9kdWN0aW9uIG1vZGUsIGJ1dCBi
dWlsZC13ZWJraXQgc2hvdWxkIGFsd2F5cyB1c2UgZGV2ZWxvcGVyIG1vZGUuCi0gICAgcHVzaCBA
YXJncywgIi1EREVWRUxPUEVSX01PREU9T04iIGlmIGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc0pT
Q09ubHkoKTsKKyAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIgaWYgaXNFZmwo
KSB8fCBpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCk7CiAKICAgICAjIERvbid0IHdh
cm4gdmFyaWFibGVzIHdoaWNoIGFyZW4ndCB1c2VkIGJ5IGNtYWtlIHBvcnRzLgogICAgIHB1c2gg
QGFyZ3MsICItLW5vLXdhcm4tdW51c2VkLWNsaSI7CkBAIC0yMTIxLDYgKzIxNDEsMTAgQEAgc3Vi
IGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KCQkJEApCiAgICAgICAgIHN5c3RlbSgicGVybCIsICIk
c291cmNlRGlyL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdGd0ay1saWJzIikgPT0gMCBvciBk
aWUgJCE7CiAgICAgfQogCisgICAgaWYgKGlzV1BFKCkgJiYgY2hlY2tGb3JBcmd1bWVudEFuZFJl
bW92ZUZyb21BUkdWKCItLXVwZGF0ZS13cGUiKSkgeworICAgICAgICBzeXN0ZW0oInBlcmwiLCAi
JHNvdXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicyIpID09IDAgb3Ig
ZGllICQhOworICAgIH0KKwogICAgICRyZXR1cm5Db2RlID0gZXhpdFN0YXR1cyhnZW5lcmF0ZUJ1
aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdCgkcHJlZml4UGF0aCwgQGNtYWtlQXJncykpOwogICAg
IGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOwogCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG0KaW5kZXggYjc3ZTJhMGRmMmMuLjRjNzRkOWM0MGUxIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0xNDcsMTAgKzE0NywxMCBAQCBw
cm9oaWJpdFVua25vd25Qb3J0KCk7CiAKIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9
PiAiM2QtcmVuZGVyaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIDNEIFJlbmRlcmluZyBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFXzNEX1RSQU5TRk9STVMiLCBkZWZhdWx0ID0+IChpc0Fw
cGxlQ29jb2FXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSks
IHZhbHVlID0+IFwkdGhyZWVEVHJhbnNmb3Jtc1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFXzNEX1RSQU5TRk9STVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8
fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUg
PT4gXCR0aHJlZURUcmFuc2Zvcm1zU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFjY2Vs
ZXJhdGVkLTJkLWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSBBY2NlbGVyYXRlZCAyRCBDYW52YXMg
c3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMi
LCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkYWNjZWxlcmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwK
KyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyIsIGRlZmF1bHQg
PT4gaXNXUEUoKSwgdmFsdWUgPT4gXCRhY2NlbGVyYXRlZDJEQ2FudmFzU3VwcG9ydCB9LAogCiAg
ICAgeyBvcHRpb24gPT4gImFsbGlub25lLWJ1aWxkIiwgZGVzYyA9PiAiVG9nZ2xlIGFsbC1pbi1v
bmUgYnVpbGQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUxMSU5PTkVfQlVJTEQiLCBkZWZh
dWx0ID0+IGlzV2luZG93cygpLCB2YWx1ZSA9PiBcJGFsbEluT25lQnVpbGQgfSwKQEAgLTE4Myw3
ICsxODMsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1Nf
SU1BR0VfUkVTT0xVVElPTiIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFn
ZVJlc29sdXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiY3NzLWltYWdlLXNldCIs
IGRlc2MgPT4gIlRvZ2dsZSBDU1MgaW1hZ2Utc2V0IHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfQ1NTX0lNQUdFX1NFVCIsIGRlZmF1bHQgPT4gKGlzRWZsKCkgfHwgaXNHdGsoKSks
IHZhbHVlID0+IFwkY3NzSW1hZ2VTZXRTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9DU1NfSU1BR0VfU0VUIiwgZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlzV1BF
KCkpLCB2YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
ImNzcy1yZWdpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBSZWdpb25zIHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX1JFR0lPTlMiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+
IFwkY3NzUmVnaW9uc1N1cHBvcnQgfSwKQEAgLTIwNyw3ICsyMDcsNyBAQCBteSBAZmVhdHVyZXMg
PSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIiwgZGVmYXVsdCA9
PiBpc0VmbCgpLCB2YWx1ZSA9PiBcJGRhdGFsaXN0RWxlbWVudFN1cHBvcnQgfSwKIAogICAgIHsg
b3B0aW9uID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNjID0+ICJUb2dnbGUgRGV2aWNlIE9y
aWVudGF0aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OIiwgZGVmYXVsdCA9PiBpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJGRldmljZU9yaWVu
dGF0aW9uU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRk
ZXZpY2VPcmllbnRhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJkb200LWV2ZW50
cy1jb25zdHJ1Y3RvciIsIGRlc2MgPT4gIkV4cG9zZSBET000IEV2ZW50cyBjb25zdHJ1Y3RvcnMi
LAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IiLCBkZWZh
dWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4g
XCRkb200RXZlbnRzQ29uc3RydWN0b3IgfSwKQEAgLTIyNSw3ICsyMjUsNyBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GT05UX0xPQURfRVZFTlRTIiwgZGVmYXVs
dCA9PiAwLCB2YWx1ZSA9PiBcJGZvbnRMb2FkRXZlbnRzU3VwcG9ydCB9LAogCiAgICAgeyBvcHRp
b24gPT4gImZ0bC1qaXQiLCBkZXNjID0+ICJUb2dnbGUgRlRMSklUIHN1cHBvcnQiLAotICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfRlRMX0pJVCIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlz
R3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3VwcG9ydCB9LAorICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfRlRMX0pJVCIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYg
KGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkpICwgdmFsdWUgPT4gXCRmdGxKSVRT
dXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZnRwZGlyIiwgZGVzYyA9PiAiVG9nZ2xlIEZU
UCBEaXJlY3Rvcnkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GVFBESVIiLCBk
ZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkZnRwRGlyU3VwcG9ydCB9LApAQCAtMjM3LDcgKzIzNyw3
IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0dBTUVQQUQiLCBk
ZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkZ2FtZXBhZFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJnZW9sb2NhdGlvbiIsIGRlc2MgPT4gIlRvZ2dsZSBHZW9sb2NhdGlvbiBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0dFT0xPQ0FUSU9OIiwgZGVmYXVsdCA9PiAoaXNBcHBs
ZVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUg
PT4gXCRnZW9sb2NhdGlvblN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0dFT0xP
Q0FUSU9OIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkgfHwg
aXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGdlb2xvY2F0aW9uU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImhpZ2gtZHBpLWNhbnZhcyIsIGRlc2MgPT4gIlRv
Z2dsZSBIaWdoIERQSSBDYW52YXMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9I
SUdIX0RQSV9DQU5WQVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkpLCB2YWx1ZSA9PiBc
JGhpZ2hEUElDYW52YXNTdXBwb3J0IH0sCkBAIC0yNDYsNyArMjQ2LDcgQEAgbXkgQGZlYXR1cmVz
ID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSUNPTkRBVEFCQVNFIiwgZGVmYXVsdCA9PiAh
aXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRpY29uZGF0YWJhc2VTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAiaW5kZXhlZC1kYXRhYmFzZSIsIGRlc2MgPT4gIlRvZ2dsZSBJbmRleGVkIERh
dGFiYXNlIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzRWZsKCkgfHwgaXNHdGso
KSksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktp
dCgpIHx8IGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRpbmRleGVk
RGF0YWJhc2VTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5wdXQtc3BlZWNoIiwgZGVz
YyA9PiAiVG9nZ2xlIElucHV0IFNwZWVjaCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX0lOUFVUX1NQRUVDSCIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRpbnB1dFNwZWVjaFN1
cHBvcnQgfSwKQEAgLTMxMiw3ICszMTIsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9NRVRFUl9FTEVNRU5UIiwgZGVmYXVsdCA9PiAhaXNBcHBsZVdpbldlYktp
dCgpLCB2YWx1ZSA9PiBcJG1ldGVyRWxlbWVudFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+
ICJtaHRtbCIsIGRlc2MgPT4gIlRvZ2dsZSBNSFRNTCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX01IVE1MIiwgZGVmYXVsdCA9PiAoaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUg
PT4gXCRtaHRtbFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01IVE1MIiwgZGVm
YXVsdCA9PiAoaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJG1odG1s
U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm1vdXNlLWN1cnNvci1zY2FsZSIsIGRlc2Mg
PT4gIlRvZ2dsZSBTY2FsZWQgbW91c2UgY3Vyc29yIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFIiwgZGVmYXVsdCA9PiBpc0VmbCgpLCB2YWx1ZSA9
PiBcJG1vdXNlQ3Vyc29yU2NhbGVTdXBwb3J0IH0sCkBAIC0zMjQsNyArMzI0LDcgQEAgbXkgQGZl
YXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVO
Q1kiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkaGFyZHdhcmVDb25jdXJyZW5jeVN1cHBvcnQg
fSwKIAogICAgIHsgb3B0aW9uID0+ICJuZXRzY2FwZS1wbHVnaW4tYXBpIiwgZGVzYyA9PiAiVG9n
Z2xlIE5ldHNjYXBlIFBsdWdpbiBBUEkgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9ORVRTQ0FQRV9QTFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAhaXNJT1NXZWJLaXQoKSwgdmFsdWUg
PT4gXCRuZXRzY2FwZVBsdWdpbkFQSVN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0ID0+ICghaXNJT1NXZWJLaXQoKSAmJiAhaXNX
UEUoKSksIHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0IH0sCiAKICAgICB7IG9w
dGlvbiA9PiAibm9zbmlmZiIsIGRlc2MgPT4gIlRvZ2dsZSBzdXBwb3J0IGZvciAnWC1Db250ZW50
LVR5cGUtT3B0aW9uczogbm9zbmlmZiciLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTk9TTklG
RiIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRub3NuaWZmU3VwcG9ydCB9LApAQCAt
MzM2LDcgKzMzNiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4g
XCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwZXJmb3Jt
YW5jZS10aW1lbGluZSIsIGRlc2MgPT4gIlRvZ2dsZSBQZXJmb3JtYW5jZSBUaW1lbGluZSBzdXBw
b3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BFUkZPUk1BTkNFX1RJTUVMSU5FIiwgZGVm
YXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxpbmVTdXBwb3J0IH0s
CisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSIsIGRlZmF1bHQg
PT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkcGVyZm9ybWFuY2VUaW1lbGluZVN1
cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwcm94aW1pdHktZXZlbnRzIiwgZGVzYyA9PiAi
VG9nZ2xlIFByb3hpbWl0eSBFdmVudHMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9QUk9YSU1JVFlfRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHByb3hpbWl0eUV2
ZW50c1N1cHBvcnQgfSwKQEAgLTM2Niw3ICszNjYsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAg
ICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFMTE9DIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBc
JHN5c3RlbU1hbGxvY1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ0b3VjaC1ldmVudHMi
LCBkZXNjID0+ICJUb2dnbGUgVG91Y2ggRXZlbnRzIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc0Vm
bCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJHRvdWNoRXZlbnRzU3VwcG9ydCB9LAorICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQo
KSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkdG91Y2hFdmVu
dHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidG91Y2gtaWNvbi1sb2FkaW5nIiwgZGVz
YyA9PiAiVG9nZ2xlIFRvdWNoIEljb24gTG9hZGluZyBTdXBwb3J0IiwKICAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCR0
b3VjaEljb25Mb2FkaW5nU3VwcG9ydCB9LApAQCAtMzc4LDE2ICszNzgsMTYgQEAgbXkgQGZlYXR1
cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklCUkFUSU9OIiwgZGVmYXVsdCA9PiBp
c0VmbCgpLCB2YWx1ZSA9PiBcJHZpYnJhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+
ICJ2aWRlbyIsIGRlc2MgPT4gIlRvZ2dsZSBWaWRlbyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX1ZJREVPIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkg
fHwgaXNFZmwoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8
IGlzRWZsKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAidmlkZW8tdHJhY2siLCBkZXNjID0+ICJUb2dnbGUgVmlkZW8gVHJhY2sgc3Vw
cG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFT19UUkFDSyIsIGRlZmF1bHQgPT4g
KGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkpLCB2YWx1ZSA9PiBcJHZpZGVv
VHJhY2tTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFT19UUkFDSyIsIGRl
ZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUo
KSksIHZhbHVlID0+IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3
ZWItYW5pbWF0aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQW5pbWF0aW9ucyBzdXBwb3J0IiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BTklNQVRJT05TIiwgZGVmYXVsdCA9PiAxLCB2
YWx1ZSA9PiBcJHdlYkFuaW1hdGlvbnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2Vi
LWF1ZGlvIiwgZGVzYyA9PiAiVG9nZ2xlIFdlYiBBdWRpbyBzdXBwb3J0IiwKLSAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gKGlzRWZsKCkgfHwgaXNHdGsoKSks
IHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9X
RUJfQVVESU8iLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZh
bHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViLXJlcGxh
eSIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgUmVwbGF5IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfV0VCX1JFUExBWSIsIGRlZmF1bHQgPT4gaXNBcHBsZUNvY29hV2ViS2l0KCksIHZh
bHVlID0+IFwkd2ViUmVwbGF5U3VwcG9ydCB9LApAQCAtNDAyLDEwICs0MDIsMTAgQEAgbXkgQGZl
YXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1RJTUlORyIsIGRlZmF1bHQg
PT4gMSwgdmFsdWUgPT4gXCR3ZWJUaW1pbmdTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAi
d2ViYXNzZW1ibHkiLCBkZXNjID0+ICJUb2dnbGUgV2ViQXNzZW1ibHkgc3VwcG9ydCIsCi0gICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkg
JiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVlID0+IFwkd2ViQXNzZW1ibHlTdXBw
b3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIsIGRlZmF1bHQgPT4g
KGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkpICwgdmFs
dWUgPT4gXCR3ZWJBc3NlbWJseVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWJnbCIs
IGRlc2MgPT4gIlRvZ2dsZSBXZWJHTCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBp
c0VmbCgpKSwgdmFsdWUgPT4gXCR3ZWJnbFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwgaXNHdGsoKSB8
fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHdlYmdsU3VwcG9ydCB9LAogCiAgICAg
eyBvcHRpb24gPT4gIndyaXRhYmxlU3RyZWFtQVBJIiwgZGVzYyA9PiAiVG9nZ2xlIFdyaXRhYmxl
U3RyZWFtIEFQSSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dSSVRBQkxFX1NU
UkVBTV9BUEkiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkd3JpdGFibGVTdHJlYW1BUElTdXBw
b3J0IH0sCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCA3YzZkZGM4MzlmMy4uNTcyZThhNWU3N2QgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVz
dHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtp
dF90ZXN0cy5weQpAQCAtNDI0LDcgKzQyNCw3IEBAIGRlZiBfc2V0X3VwX2Rlcml2ZWRfb3B0aW9u
cyhwb3J0LCBvcHRpb25zKToKICAgICAgICAgb3B0aW9ucy52ZXJib3NlID0gVHJ1ZQogCiAgICAg
IyBUaGUgR1RLKyBhbmQgRUZMIHBvcnRzIG9ubHkgc3VwcG9ydCBXZWJLaXQyIHNvIHRoZXkgYWx3
YXlzIHVzZSBXS1RSLgotICAgIGlmIG9wdGlvbnMucGxhdGZvcm0gPT0gImd0ayIgb3Igb3B0aW9u
cy5wbGF0Zm9ybSA9PSAiZWZsIjoKKyAgICBpZiBvcHRpb25zLnBsYXRmb3JtIGluIFsiZWZsIiwg
Imd0ayIsICJ3cGUiXToKICAgICAgICAgb3B0aW9ucy53ZWJraXRfdGVzdF9ydW5uZXIgPSBUcnVl
CiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQppbmRleCBjNjFkMTdmNjUz
NC4uYTcxNjQ5OWIzMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9m
YWN0b3J5LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CkBA
IC01Niw2ICs1Niw5IEBAIGRlZiBwbGF0Zm9ybV9vcHRpb25zKHVzZV9nbG9icz1GYWxzZSk6CiAg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWd0aycsIGFjdGlvbj0nc3RvcmVfY29uc3Qn
LCBkZXN0PSdwbGF0Zm9ybScsCiAgICAgICAgICAgICBjb25zdD0oJ2d0ayonIGlmIHVzZV9nbG9i
cyBlbHNlICdndGsnKSwKICAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1n
dGsqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3RrJykpLAorICAg
ICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS13cGUnLCBhY3Rpb249J3N0b3JlX2NvbnN0Jywg
ZGVzdD0ncGxhdGZvcm0nLAorICAgICAgICAgICAgY29uc3Q9KCd3cGUqJyBpZiB1c2VfZ2xvYnMg
ZWxzZSAnd3BlJyksCisgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09d3Bl
JykpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1uby1pbnN0YWxsJywgYWN0aW9u
PSdzdG9yZV9jb25zdCcsCiAgICAgICAgICAgICBjb25zdD1GYWxzZSwgZGVmYXVsdD1UcnVlLCBk
ZXN0PSdpbnN0YWxsJywKICAgICAgICAgICAgIGhlbHA9J1NraXAgaW5zdGFsbCBzdGVwIGZvciBk
ZXZpY2UgYW5kIHNpbXVsYXRvciB0ZXN0aW5nJyksCkBAIC05Nyw2ICsxMDAsNyBAQCBjbGFzcyBQ
b3J0RmFjdG9yeShvYmplY3QpOgogICAgICAgICAndGVzdC5UZXN0UG9ydCcsCiAgICAgICAgICd3
aW4uV2luQ2Fpcm9Qb3J0JywKICAgICAgICAgJ3dpbi5XaW5Qb3J0JywKKyAgICAgICAgJ3dwZS5X
UEVQb3J0JywKICAgICApCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCk6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd3BlLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L3dwZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uY2M4MzllN2ZjMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvd3BlLnB5CkBAIC0wLDAgKzEsNzggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBHb29n
bGUgbmFtZSBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0cHku
Y29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMubW9kZWxzLnRlc3RfY29uZmlndXJhdGlvbiBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb24KK2Zy
b20gd2Via2l0cHkucG9ydC5iYXNlIGltcG9ydCBQb3J0Citmcm9tIHdlYmtpdHB5LnBvcnQubGlu
dXhfZ2V0X2NyYXNoX2xvZyBpbXBvcnQgR0RCQ3Jhc2hMb2dHZW5lcmF0b3IKKworY2xhc3MgV1BF
UG9ydChQb3J0KToKKyAgICBwb3J0X25hbWUgPSAid3BlIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFdQRVBvcnQsIHNlbGYpLl9faW5p
dF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBpZiBzZWxmLl9zaG91bGRfdXNlX2poYnVp
bGQoKToKKyAgICAgICAgICAgIHNlbGYuX2poYnVpbGRfd3JhcHBlciA9IFtzZWxmLnBhdGhfZnJv
bV93ZWJraXRfYmFzZSgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdyYXBwZXInKSwgJy0t
d3BlJywgJ3J1biddCisgICAgICAgICAgICBzZWxmLnNldF9vcHRpb25fZGVmYXVsdCgnd3JhcHBl
cicsICcgJy5qb2luKHNlbGYuX2poYnVpbGRfd3JhcHBlcikpCisKKyAgICBkZWYgZGVmYXVsdF90
aW1lb3V0X21zKHNlbGYpOgorICAgICAgICByZXR1cm4gNjAwMAorCisgICAgZGVmIF9idWlsdF9l
eGVjdXRhYmxlc19wYXRoKHNlbGYsICpwYXRoKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxk
X3BhdGgoKigoJ2JpbicsKSArIHBhdGgpKQorCisgICAgZGVmIF9idWlsdF9saWJyYXJpZXNfcGF0
aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCooKCdsaWIn
LCkgKyBwYXRoKSkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3JpcHRzKHNlbGYpOgorICAg
ICAgICByZXR1cm4gIi0td3BlIgorCisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihz
ZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52aXJvbm1lbnQgPSBzdXBlcihXUEVQ
b3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUpCisgICAgICAg
IGVudmlyb25tZW50WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScKKyAgICAgICAgZW52
aXJvbm1lbnRbJ1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSddID0gc2VsZi5f
YnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5zbycpCisgICAg
ICAgIGVudmlyb25tZW50WydURVNUX1JVTk5FUl9URVNUX1BMVUdJTl9QQVRIJ10gPSBzZWxmLl9i
dWlsZF9wYXRoKCdsaWInLCAncGx1Z2lucycpCisgICAgICAgIGVudmlyb25tZW50WydXRUJLSVRf
RVhFQ19QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdiaW4nKQorICAgICAgICByZXR1cm4gZW52
aXJvbm1lbnQKKworICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMoc2Vs
Zik6CisgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KKyAgICAgICAgZm9yIGJ1aWxkX3R5cGUg
aW4gc2VsZi5BTExfQlVJTERfVFlQRVM6CisgICAgICAgICAgICBjb25maWd1cmF0aW9ucy5hcHBl
bmQoVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBhcmNoaXRlY3R1cmU9
J3g4NicsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkpCisgICAgICAgIHJldHVybiBjb25maWd1cmF0
aW9ucworCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoc2VsZi5kcml2ZXJfbmFtZSgpKQorCisgICAgZGVm
IF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsdF9l
eGVjdXRhYmxlc19wYXRoKCdJbWFnZURpZmYnKQorCisgICAgZGVmIF9nZXRfY3Jhc2hfbG9nKHNl
bGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgorICAgICAgICBuYW1l
ID0gIldQRVdlYlByb2Nlc3MiIGlmIG5hbWUgPT0gIldlYlByb2Nlc3MiIGVsc2UgbmFtZQorICAg
ICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdlcl90aGFuLCBz
ZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hfbG9n
KHN0ZG91dCwgc3RkZXJyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9y
bVdQRS5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI5Nzg0NzU1ZjM2Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsx
LDYwIEBACitzZXQoVEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgIiR7Q01B
S0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9UZXN0V2ViS2l0QVBJIikKK3NldChURVNUV0VC
S0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWV9XVEYgIiR7VEVTVFdFQktJVEFQSV9SVU5U
SU1FX09VVFBVVF9ESVJFQ1RPUll9L1dURiIpCisKKyMgVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVz
ZSBpdCBpcyBwb3NzaWJsZSB0byBidWlsZCBUZXN0V2ViS2l0QVBJIHdpdGggV2ViS2l0MgorIyBk
aXNhYmxlZCBhbmQgdGhpcyB0cmlnZ2VycyB0aGUgaW5jbHVzaW9uIG9mIHRoZSBXZWJLaXQyIGhl
YWRlcnMuCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XRUJLSVQyX18pCisKK2FkZF9jdXN0
b21fdGFyZ2V0KFRlc3RXZWJLaXRBUEktZm9yd2FyZGluZy1oZWFkZXJzCisgICAgQ09NTUFORCAk
e1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJk
aW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtURVNUV0VCS0lUQVBJX0RJUn0gLS1vdXRw
dXQgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSAtLXBsYXRmb3JtIHdwZSAtLXBsYXRmb3JtIHNv
dXAKKyAgICBERVBFTkRTIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCispCisKK3NldChG
b3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRSBUZXN0V2ViS2l0QVBJLWZvcndh
cmRpbmctaGVhZGVycykKKworaW5jbHVkZV9kaXJlY3RvcmllcygKKyAgICAke0ZPUldBUkRJTkdf
SEVBREVSU19ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS9KYXZhU2NyaXB0Q29y
ZQorKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTQorICAgICR7R0xJQl9JTkNMVURFX0RJ
UlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKykKKworc2V0KHRlc3RfbWFpbl9TT1VS
Q0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL21haW4uY3BwCispCisKK3NldChidW5k
bGVfaGFybmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL0luamVjdGVk
QnVuZGxlQ29udHJvbGxlcldQRS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS93cGUvUGxh
dGZvcm1VdGlsaXRpZXNXUEUuY3BwCispCisKKyMgVGVzdFdURgorCitsaXN0KEFQUEVORCBUZXN0
V1RGX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9HVW5p
cXVlUHRyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9nbGliL1dvcmtR
dWV1ZUdMaWIuY3BwCispCisKKyMgVGVzdFdlYkNvcmUKKworYWRkX2V4ZWN1dGFibGUoVGVzdFdl
YkNvcmUKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzQ29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJD
b3JlL0hUTUxQYXJzZXJJZGlvbXMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMv
V2ViQ29yZS9MYXlvdXRVbml0LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvVVJMLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyVGVzdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3Jl
L0ZpbGVTeXN0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9Q
dWJsaWNTdWZmaXguY3BwCispCisKK3RhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0V2ViQ29yZSAk
e3Rlc3Rfd2ViY29yZV9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhUZXN0V2ViQ29yZSAk
e0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKworYWRkX3Rlc3QoVGVz
dFdlYkNvcmUgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vV2ViQ29y
ZS9UZXN0V2ViQ29yZSkKK3NldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RXZWJDb3JlIFBST1BFUlRJ
RVMgVElNRU9VVCA2MCkKK3NldF90YXJnZXRfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9QRVJU
SUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQ
VVRfRElSRUNUT1JZfS9XZWJDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93
cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmZkMjEyMWJkN2EyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUNvbnRyb2xs
ZXIuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2b2lkIEluamVjdGVkQnVuZGxl
Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZv
cm1VdGlsaXRpZXNXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1VdGls
aXRpZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMjFj
MWVhYTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRm
b3JtVXRpbGl0aWVzV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworbmFtZXNwYWNlIFV0aWwgeworCit2b2lkIHNsZWVwKGRvdWJsZSBzZWNvbmRzKQor
eworICAgIGdfdXNsZWVwKHNlY29uZHMgKiAxMDAwMDAwKTsKK30KKworc3RhdGljIGNoYXIqIGdl
dEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoY29uc3QgY2hhciogdmFyaWFi
bGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYodmFyaWFibGVOYW1l
KTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIGdfcHJpbnRlcnIoIiVzIGVudmlyb25tZW50
IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAgICAgZXhpdCgxKTsK
KyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBnX2ZpbGVuYW1lX3Rv
X3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKworV0tTdHJpbmdSZWYg
Y3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGluamVj
dGVkQnVuZGxlUGF0aChnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KCJU
RVNUX1dFQktJVF9BUElfV0VCS0lUMl9JTkpFQ1RFRF9CVU5ETEVfUEFUSCIpKTsKKyAgICBHVW5p
cXVlUHRyPGNoYXI+IGluamVjdGVkQnVuZGxlRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShpbmpl
Y3RlZEJ1bmRsZVBhdGguZ2V0KCksICJsaWJUZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGUuc28i
LCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGlu
amVjdGVkQnVuZGxlRmlsZW5hbWUuZ2V0KCkpOworfQorCitXS1VSTFJlZiBjcmVhdGVVUkxGb3JS
ZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSwgY29uc3QgY2hhciogZXh0ZW5zaW9uKQorewor
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGVzdFJlc291cmNlc1BhdGgoZ2V0RmlsZW5hbWVGcm9tRW52
aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfUkVTT1VSQ0VT
X1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUJhc2VuYW1lKGdfc3RyZHVw
X3ByaW50ZigiJXMuJXMiLCByZXNvdXJjZSwgZXh0ZW5zaW9uKSk7CisgICAgR1VuaXF1ZVB0cjxj
aGFyPiByZXNvdXJjZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUodGVzdFJlc291cmNlc1BhdGgu
Z2V0KCksIHJlc291cmNlQmFzZW5hbWUuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBHUmVmUHRyPEdG
aWxlPiByZXNvdXJjZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChyZXNvdXJj
ZUZpbGVuYW1lLmdldCgpKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZVVSSShnX2Zp
bGVfZ2V0X3VyaShyZXNvdXJjZUZpbGUuZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tVUkxDcmVhdGVX
aXRoVVRGOENTdHJpbmcocmVzb3VyY2VVUkkuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBV
dGlsCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL3dwZS9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjU2OGI2YzMyZAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3BwCkBAIC0wLDAg
KzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RzQ29udHJvbGxlci5oIgorCitp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIFRlc3RXZWJLaXRB
UEk6OlRlc3RzQ29udHJvbGxlcjo6c2luZ2xldG9uKCkucnVuKGFyZ2MsIGFyZ3YpID8gRVhJVF9T
VUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNw
cAppbmRleCAwYTEzMGQ0ZThkZC4uZGUyYmUzZTdiY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQogICAgIHJldHVybiBXS0FjY2Vzc2li
aWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CiB9CiAKLSNpZiAhUExBVEZPUk0o
R1RLKSAmJiAhUExBVEZPUk0oRUZMKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShF
RkwpICYmICFQTEFURk9STShXUEUpCiBSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKIHsKICAgICBXS0J1bmRsZVBhZ2VSZWYg
cGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCA1Y2YwZDczOWMxZS4uYzhkNzhlNzdhMTIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOb3RpZmljYXRpb25IYW5kbGVy
PiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7Ci0jZWxzZQorI2VsaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShFRkwpCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25I
YW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7CiAjZW5kaWYKIH07CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCAyMzNmZjdkMjAzNC4uYjhhZjZmMTZjYTggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApAQCAtNzgsNyArNzgsNyBAQCBib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dEFyZWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogI2VuZGlmCiAgICAgCiAvLyBVbnN1cHBvcnRlZCBtZXRob2RzIG9uIHZhcmlvdXMgcGxhdGZv
cm1zLiBBcyB0aGV5J3JlIGltcGxlbWVudGVkIG9uIG90aGVyIHBsYXRmb3JtcyB0aGlzIGxpc3Qg
c2hvdWxkIGJlIG1vZGlmaWVkLgotI2lmICghUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZM
KSkgfHwgIUhBVkUoQUNDRVNTSUJJTElUWSkKKyNpZiAoIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRG
T1JNKEVGTCkgJiYgIVBMQVRGT1JNKFdQRSkpIHx8ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCiBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hhcmFjdGVyQXRP
ZmZzZXQoaW50KSB7IHJldHVybiBudWxscHRyOyB9CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkgeyByZXR1cm4gbnVsbHB0
cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omxp
bmVBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgKaW5kZXggNTUwOWFmMjE3N2QuLjZkMDcwNjc4YjllIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaApAQCAtMzE3LDcgKzMxNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRVSUVs
ZW1lbnRzV2l0aEF0dHJpYnV0ZShKU1N0cmluZ1JlZiwgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiA+JikgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8
fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lk
IGdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYpOwog
ICAgIHZvaWQgZ2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiA+JiwgdW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCmluZGV4IGFmZmM0MGYwZTQzLi4wMTkxMzYyMzc0ZCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC05
OCw3ICs5OCw3IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgICwgbV9kYXRhYmFzZU1h
eFF1b3RhKC0xKQogICAgICwgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQoZmFsc2UpCiAgICAgLCBt
X3VzZXJTdHlsZVNoZWV0TG9jYXRpb24oYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiIikpKQotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKICAgICAsIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoUnVuTG9vcDo6bWFpbigp
LCB0aGlzLCAmVGVzdFJ1bm5lcjo6d2FpdFRvRHVtcFdhdGNoZG9nVGltZXJGaXJlZCkKICNlbmRp
ZgogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaAppbmRleCA4ZGM4OWNhMzE1ZS4uNGRiMjhhZDRhMmMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0zOCw3ICsz
OCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPENvcmVGb3VuZGF0
aW9uL0NGUnVuTG9vcC5oPgogdHlwZWRlZiBSZXRhaW5QdHI8Q0ZSdW5Mb29wVGltZXJSZWY+IFBs
YXRmb3JtVGltZXJSZWY7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogbmFtZXNwYWNlIFdU
UiB7CiBjbGFzcyBUZXN0UnVubmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXUEUuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lOTRj
MmFhYjcwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcApAQCAtMCwwICsxLDcx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Jl
ZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVs
ZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsKK30KKworUmVmPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3Jl
YXRlKG51bGxwdHIpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3Rp
ZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZW1v
dmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCisjZW5kaWYgLy8gSEFWRShB
Q0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDY0OTE1MGE1NDAKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dw
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcApAQCAtMCwwICsxLDk1OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudChQbGF0Zm9ybVVJRWxlbWVudCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Pj4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Pj4mLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuQ291bnQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVtZW50QXRQb2ludChp
bnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleE9mQ2hpbGQoQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4KHVuc2lnbmVk
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojphcmlh
T3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgodW5zaWduZWQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFD
b250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVuc2lnbmVkKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dBdElu
ZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit1bnNpZ25lZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0SW5kZXgodW5z
aWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnRpdGxlVUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2VkVUlFbGVtZW50cygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNP
ZkRvY3VtZW50TGlua3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitkb3VibGUg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYg
YXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30K
KworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBcnJheUF0dHJp
YnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVm
IGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xBdHRyaWJ1dGVW
YWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRy
aWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYW1ldGVyaXplZEF0dHJpYnV0ZU5h
bWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZSgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1YnJvbGUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlRGVzY3JpcHRp
b24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb21wdXRl
ZFJvbGVTdHJpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0aXRsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRl
c2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aGVscFRleHQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp4KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3aWR0aCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
bGlja1BvaW50WCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOwor
fQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2ludFkoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpt
aW5WYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQor
Citkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24oKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmNy
ZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRGVjcmVtZW50
QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzRm9jdXNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZCgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIGNv
bnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0lu
ZGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGllcmFyY2hpY2FsTGV2
ZWwoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzcGVhaygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9v
bCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEcm9wRWZmZWN0cygpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworaW50
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRleChpbnQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9zaXRpb24oaW50LCBpbnQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvdW5kc0ZvclJh
bmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yUmFu
Z2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
ZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWduZWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVkaWNhdGUoSlNDb250ZXh0
UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdS
ZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwgYm9vbCwgYm9vbCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdp
dGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmLCBKU1N0cmlu
Z1JlZiwgSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJzKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29sdW1ucygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNP
ZlJvd3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRy
aWJ1dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
b3dDb3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwor
aW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aW5kZXhJblRhYmxlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cm93SW5kZXhSYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnbmVkLCB1bnNpZ25lZCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aG9yaXpv
bnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UodW5zaWduZWQsIHVuc2lnbmVk
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZWNyZW1lbnQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2hvd01lbnUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6cHJlc3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5z
aWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkIGlu
ZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y2xlYXJTZWxlY3RlZENoaWxkcmVuKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZygpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50VVJJKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTVmFsdWVSZWYgZnVuY3Rpb25DYWxs
YmFjaykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNN
dWx0aVNlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmlzaWJsZSgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4oKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0lnbm9yZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2luZ2xlTGluZSgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aUxpbmUoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0
YWtlRm9jdXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRTZWxlY3Rpb24oKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVt
b3ZlU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitSZWZQdHI8QWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZVRl
eHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0
TWFya2VyUmFuZ2VGb3JFbGVtZW50KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwor
UmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpw
cmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFRleHRNYXJrZXIoQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXIqLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFu
Z2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJh
bmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvckJvdW5kcyhpbnQs
IGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBpbnQsIGludCwgaW50KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1h
cmtlckZvclBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRleHRNYXJrZXIoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0
cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVmLCBBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4Rm9y
VGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c1RleHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvckluZGV4KGlu
dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitS
ZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0
YXJ0VGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNl
bGVjdGVkVmlzaWJsZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFRvR2xv
YmFsUG9pbnQoaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlV2l0aFN1YkZvY3VzKGlu
dCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3VwcG9ydGVkQWN0aW9u
cygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBh
dGhEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNjcmlwdHNEZXNjcmlwdGlv
bigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNs
YXNzTGlzdCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgIFdURgorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250c1dQRS5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZv
bnRzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzNjZjcy
MWIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApAQCAtMCwwICsxLDE0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCisjaW5jbHVkZSA8Zm9udGNvbmZp
Zy9mb250Y29uZmlnLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK0NTdHJp
bmcgdG9wTGV2ZWxQYXRoKCkKK3sKKyAgICBpZiAoY29uc3QgY2hhciogdG9wTGV2ZWxEaXJlY3Rv
cnkgPSBnX2dldGVudigiV0VCS0lUX1RPUF9MRVZFTCIpKQorICAgICAgICByZXR1cm4gdG9wTGV2
ZWxEaXJlY3Rvcnk7CisKKyAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgd2Fzbid0
IHByb3ZpZGVkIHRoZW4gYXNzdW1lIHdlIHdlcmUgYnVpbHQgaW50bworICAgIC8vIFdlYktpdEJ1
aWxkL0RlYnVnIG9yIFdlYktpdEJ1aWxkL1JlbGVhc2UuIE9idmlvdXNseSB0aGlzIHdpbGwgZmFp
bCBpZiB0aGUgYnVpbGQKKyAgICAvLyBkaXJlY3RvcnkgaXMgbm9uLXN0YW5kYXJkLCBidXQgd2Ug
Y2FuJ3QgZG8gbXVjaCBtb3JlIGFib3V0IHRoaXMuCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXJl
bnRQYXRoKGdfcGF0aF9nZXRfZGlybmFtZShnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKS5kYXRh
KCkpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGxheW91dFRlc3RzUGF0aChnX2J1aWxkX2ZpbGVu
YW1lKHBhcmVudFBhdGguZ2V0KCksICIuLiIsICIuLiIsICIuLiIsIG51bGxwdHIpKTsKKyAgICBH
VW5pcXVlUHRyPGNoYXI+IGFic29sdXRlVG9wTGV2ZWxQYXRoKHJlYWxwYXRoKGxheW91dFRlc3Rz
UGF0aC5nZXQoKSwgMCkpOworICAgIHJldHVybiBhYnNvbHV0ZVRvcExldmVsUGF0aC5nZXQoKTsK
K30KKworQ1N0cmluZyBnZXRPdXRwdXREaXIoKQoreworICAgIGNvbnN0IGNoYXIqIHdlYmtpdE91
dHB1dERpciA9IGdfZ2V0ZW52KCJXRUJLSVRfT1VUUFVURElSIik7CisgICAgaWYgKHdlYmtpdE91
dHB1dERpcikKKyAgICAgICAgcmV0dXJuIHdlYmtpdE91dHB1dERpcjsKKworICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gb3V0cHV0RGlyKGdfYnVpbGRfZmlsZW5hbWUodG9wTGV2ZWxQYXRoKCkuZGF0YSgp
LCAiV2ViS2l0QnVpbGQiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIG91dHB1dERpci5nZXQoKTsK
K30KKworc3RhdGljIENTdHJpbmcgZ2V0Rm9udHNQYXRoKCkKK3sKKyAgICBDU3RyaW5nIHdlYmtp
dE91dHB1dERpciA9IGdldE91dHB1dERpcigpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gZm9udHNQ
YXRoKGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwgIkRlcGVuZGVuY2ll
c1dQRSIsICJSb290IiwgIndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgbnVsbHB0cikpOworICAgIGlm
IChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0PEdGaWxlVGVzdD4oR19G
SUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfRElSKSkpCisgICAgICAgIHJldHVybiBm
b250c1BhdGguZ2V0KCk7CisKKyAgICAvLyBUcnkgYWx0ZXJuYXRpdmUgZm9udHMgcGF0aC4KKyAg
ICBmb250c1BhdGgucmVzZXQoZ19idWlsZF9maWxlbmFtZSh3ZWJraXRPdXRwdXREaXIuZGF0YSgp
LCAid2Via2l0Z3RrLXRlc3QtZm9udHMiLCBOVUxMKSk7CisgICAgaWYgKGdfZmlsZV90ZXN0KGZv
bnRzUGF0aC5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVTVF9FWElTVFMg
fCBHX0ZJTEVfVEVTVF9JU19ESVIpKSkKKyAgICAgICAgcmV0dXJuIGZvbnRzUGF0aC5nZXQoKTsK
KworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisKK3ZvaWQgYWN0aXZhdGVGb250cygpCit7Cisg
ICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVRfU0tJUF9XRUJLSVRURVNUUlVOTkVSX0ZPTlRDT05GSUdf
SU5JVElBTElaQVRJT04iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmNJbml0KCk7CisKKyAg
ICAvLyBJZiBhIHRlc3QgcmVzdWx0ZWQgYSBmb250IGJlaW5nIGFkZGVkIG9yIHJlbW92ZWQgdmlh
IHRoZSBAZm9udC1mYWNlIHJ1bGUsIHRoZW4KKyAgICAvLyB3ZSB3YW50IHRvIHJlc2V0IHRoZSBG
b250Q29uZmlnIGNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBpdCBmcm9tIGFmZmVjdGluZyBvdGhl
ciB0ZXN0cy4KKyAgICBzdGF0aWMgaW50IG51bUZvbnRzID0gMDsKKyAgICBGY0ZvbnRTZXQqIGFw
cEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGljYXRpb24pOworICAgIGlm
IChhcHBGb250U2V0ICYmIG51bUZvbnRzICYmIGFwcEZvbnRTZXQtPm5mb250ID09IG51bUZvbnRz
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBMb2FkIG91ciBjb25maWd1cmF0aW9uIGZpbGUs
IHdoaWNoIHNldHMgdXAgcHJvcGVyIGFsaWFzZXMgZm9yIGZhbWlseQorICAgIC8vIG5hbWVzIGxp
a2Ugc2Fucywgc2VyaWYgYW5kIG1vbm9zcGFjZS4KKyAgICBGY0NvbmZpZyogY29uZmlnID0gRmND
b25maWdDcmVhdGUoKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250Q29uZmlnRmlsZW5hbWUo
Z19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgImZvbnRzLmNvbmYiLCBudWxscHRyKSk7
CisgICAgaWYgKCFnX2ZpbGVfdGVzdChmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCksIEdfRklMRV9U
RVNUX0lTX1JFR1VMQVIpKQorICAgICAgICBnX2Vycm9yKCJDYW5ub3QgZmluZCBmb250cy5jb25m
IGF0ICVzXG4iLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworICAgIGlmICghRmNDb25maWdQ
YXJzZUFuZExvYWQoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgqPihmb250Q29uZmln
RmlsZW5hbWUuZ2V0KCkpLCB0cnVlKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGRuJ3QgbG9hZCBm
b250IGNvbmZpZ3VyYXRpb24gZmlsZSBmcm9tOiAlcyIsIGZvbnRDb25maWdGaWxlbmFtZS5nZXQo
KSk7CisKKyAgICBDU3RyaW5nIGZvbnRzUGF0aCA9IGdldEZvbnRzUGF0aCgpOworICAgIGlmIChm
b250c1BhdGguaXNOdWxsKCkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2NhdGUgdGVz
dCBmb250cyBhdCAlcy4gSXMgV0VCS0lUX1RPUF9MRVZFTCBzZXQ/IiwgZm9udHNQYXRoLmRhdGEo
KSk7CisKKyAgICBHVW5pcXVlUHRyPEdEaXI+IGZvbnRzRGlyZWN0b3J5KGdfZGlyX29wZW4oZm9u
dHNQYXRoLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAgIHdoaWxlIChjb25zdCBjaGFyKiBkaXJl
Y3RvcnlFbnRyeSA9IGdfZGlyX3JlYWRfbmFtZShmb250c0RpcmVjdG9yeS5nZXQoKSkpIHsKKyAg
ICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLnR0ZiIpICYmICFn
X3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLm90ZiIpKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRQYXRoKGdfYnVpbGRfZmlsZW5h
bWUoZm9udHNQYXRoLmRhdGEoKSwgZGlyZWN0b3J5RW50cnksIG51bGxwdHIpKTsKKyAgICAgICAg
aWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBGY0NoYXI4Kj4oZm9udFBhdGguZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNvdWxk
IG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFBhdGguZ2V0KCkpOworICAgIH0KKworICAgIC8v
IEFoZW0gaXMgdXNlZCBieSBtYW55IGxheW91dCB0ZXN0cy4KKyAgICBHVW5pcXVlUHRyPGdjaGFy
PiBhaGVtRm9udEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICJBSEVN
X19fXy5UVEYiLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNv
bmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oYWhlbUZvbnRGaWxlbmFtZS5nZXQoKSkp
KQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVzISIsIGFoZW1Gb250
RmlsZW5hbWUuZ2V0KCkpOyAKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBmb250RmlsZW5hbWVz
W10gPSB7CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMTAwLnR0ZiIsCisgICAgICAgICJX
ZWJLaXRXZWlnaHRXYXRjaGVyMjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVy
MzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNDAwLnR0ZiIsCisgICAgICAg
ICJXZWJLaXRXZWlnaHRXYXRjaGVyNTAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRj
aGVyNjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0ZiIsCisgICAg
ICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRX
YXRjaGVyOTAwLnR0ZiIsCisgICAgICAgIDAKKyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGZvbnRGaWxlbmFtZXNbaV07ICsraSkgeworICAgICAgICBHVW5pcXVlUHRyPGdjaGFyPiBm
b250RmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgIi4uIiwgIi4uIiwg
ImZvbnRzIiwgZm9udEZpbGVuYW1lc1tpXSwgbnVsbHB0cikpOworICAgICAgICBpZiAoIUZjQ29u
ZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgqPihmb250
RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZv
bnQgYXQgJXMhIiwgZm9udEZpbGVuYW1lLmdldCgpKTsgCisgICAgfQorCisgICAgLy8gQSBmb250
IHdpdGggbm8gdmFsaWQgRm9udGNvbmZpZyBlbmNvZGluZyB0byB0ZXN0IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ1MgorICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZv
bnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05G
X0RJUiwgIkZvbnRXaXRoTm9WYWxpZEVuY29kaW5nLmZvbiIsIG51bGxwdHIpKTsKKyAgICBpZiAo
IUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgq
Pihmb250V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lLmdldCgpKSkpCisgICAgICAgIGdfZXJy
b3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFdpdGhOb1ZhbGlkRW5jb2RpbmdG
aWxlbmFtZS5nZXQoKSk7IAorCisgICAgaWYgKCFGY0NvbmZpZ1NldEN1cnJlbnQoY29uZmlnKSkK
KyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IHNldCB0aGUgY3VycmVudCBmb250IGNvbmZpZ3Vy
YXRpb24hIik7CisKKyAgICBudW1Gb250cyA9IEZjQ29uZmlnR2V0Rm9udHMoY29uZmlnLCBGY1Nl
dEFwcGxpY2F0aW9uKS0+bmZvbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvSW5qZWN0ZWRCdW5k
bGVXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvSW5q
ZWN0ZWRCdW5kbGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4yNDA4MWZmM2EyOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcApAQCAtMCwwICsxLDM1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgorCituYW1lc3BhY2Ug
V1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1Jbml0aWFsaXplKFdLVHlwZVJl
ZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZjE0ZmZkZDA1NgotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RS
dW5uZXJXUEUuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRl
c3RSdW5uZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5nUmVmKQoreworICAgIHJl
dHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6
aW5zcGVjdG9yVGVzdFN0dWJVUkwoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiIik7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW52YWxpZGF0ZVdhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVyKCkKK3sKKyAgICBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyLnN0b3Ao
KTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQorCit2
b2lkIFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcklmTmVlZGVk
KCkKK3sKKyAgICBpZiAoIW1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuaXNBY3RpdmUoKSkKKyAg
ICAgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydE9uZVNob3QobV90aW1lb3V0IC8g
MTAwMC4wKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li40YTg2MmQ2OWFmYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
UGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NyBAQAorZmluZF9wYWNrYWdlKExpYkdCTSBS
RVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1lc2EgUkVRVUlSRUQpCisKK2FkZF9j
dXN0b21fdGFyZ2V0KFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzCisgICAgQ09N
TUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1m
b3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtXRUJLSVRfVEVTVFJVTk5FUl9E
SVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3cGUKKykK
Kworc2V0KEZvcndhcmRpbmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5lcl9OQU1FIFdlYktpdFRl
c3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzKQorCitsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVu
bmVyX1NPVVJDRVMKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vY2Fpcm8vVGVzdEludm9j
YXRpb25DYWlyby5jcHAKKworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvRXZlbnRT
ZW5kZXJQcm94eVdQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL0hlYWRs
ZXNzVmlld0JhY2tlbmQuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9QbGF0
Zm9ybVdlYlZpZXdXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9UZXN0
Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL21haW4u
Y3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5DTFVERV9ESVJFQ1RPUklF
UworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9JbmplY3RlZEJ1bmRsZS93cGUKKyAgICAk
e0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtDQUlST19JTkNMVURFX0RJUlN9CisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0xJQkdCTV9JTkNMVURFX0RJUlN9CisgICAgJHtX
UEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJf
TElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30K
KyAgICAke0xJQkdCTV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTUVTQV9MSUJSQVJJRVN9CispCisK
K2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9TT1VSQ0VTCisgICAg
JHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExF
X0RJUn0vd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVT
VFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcAorICAg
ICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvSW5qZWN0ZWRCdW5k
bGVXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dw
ZS9UZXN0UnVubmVyV1BFLmNwcAorKQorCithZGRfZGVmaW5pdGlvbnMoCisgICAgLURGT05UU19D
T05GX0RJUj0iJHtUT09MU19ESVJ9L1dlYktpdFRlc3RSdW5uZXIvZ3RrL2ZvbnRzIgorICAgIC1E
VE9QX0xFVkVMX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKykKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IDcxYTRlNzY2MTc2Li41NDJmMDM2NmQ1NyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC01Myw2ICs1MywxMSBA
QCB0eXBlZGVmIGNhaXJvX3N1cmZhY2VfdCAqUGxhdGZvcm1JbWFnZTsKICNlbGlmIFBMQVRGT1JN
KEVGTCkKIHR5cGVkZWYgRXZhc19PYmplY3QqIFBsYXRmb3JtV0tWaWV3OwogdHlwZWRlZiBFY29y
ZV9FdmFzKiBQbGF0Zm9ybVdpbmRvdzsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKK2NsYXNzIEhlYWRs
ZXNzVmlld0JhY2tlbmQ7Cit0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdLVmlldzsKK3R5cGVk
ZWYgSGVhZGxlc3NWaWV3QmFja2VuZCogUGxhdGZvcm1XaW5kb3c7Cit0eXBlZGVmIGNhaXJvX3N1
cmZhY2VfdCogUGxhdGZvcm1JbWFnZTsKICNlbmRpZgogCiBuYW1lc3BhY2UgV1RSIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOWI3MDllMzZmNzUuLmFk
MTlmMTBiNDI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApA
QCAtNzY3LDcgKzc2Nyw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgLy8gc29tZSBvdGhl
ciBjb2RlIGRvaW5nIHRoaXMsIGl0IHNob3VsZCBwcm9iYWJseSBiZSByZXNwb25zaWJsZSBmb3Ig
Y2xlYW51cCB0b28uCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhvcHRp
b25zKTsKIAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQ
TEFURk9STShXUEUpCiAgICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5h
YmxlZFN0YXRlQ2hhbmdlZCh0cnVlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi41MWVlMGZjMmU1NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEs
MTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudFNlbmRlclByb3h5LmgiCisKK25h
bWVzcGFjZSBXVFIgeworCitFdmVudFNlbmRlclByb3h5OjpFdmVudFNlbmRlclByb3h5KFRlc3RD
b250cm9sbGVyKiB0ZXN0Q29udHJvbGxlcikKKyAgICA6IG1fdGVzdENvbnRyb2xsZXIodGVzdENv
bnRyb2xsZXIpCisgICAgLCBtX3RpbWUoMCkKKyAgICAsIG1fbGVmdE1vdXNlQnV0dG9uRG93bihm
YWxzZSkKKyAgICAsIG1fY2xpY2tDb3VudCgwKQorICAgICwgbV9jbGlja1RpbWUoMCkKKyAgICAs
IG1fY2xpY2tCdXR0b24oa1dLRXZlbnRNb3VzZUJ1dHRvbk5vQnV0dG9uKQoreworfQorCitFdmVu
dFNlbmRlclByb3h5Ojp+RXZlbnRTZW5kZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6bW91c2VEb3duKHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJzKQoreworfQorCit2
b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlVXAodW5zaWduZWQsIFdLRXZlbnRNb2RpZmllcnMp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VNb3ZlVG8oZG91YmxlLCBkb3Vi
bGUpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeShpbnQsIGlu
dCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoaW50LCBpbnQsIGludCwgaW50KQoreworfQorCit2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCwgaW50LCBib29sKQorewor
fQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCkKK3sKK30KKwordm9p
ZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUmVmLCBXS0V2ZW50TW9kaWZpZXJz
LCB1bnNpZ25lZCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjphZGRUb3VjaFBvaW50
KGludCwgaW50KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnVwZGF0ZVRvdWNoUG9p
bnQoaW50LCBpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpzZXRUb3Vj
aE1vZGlmaWVyKFdLRXZlbnRNb2RpZmllcnMsIGJvb2wpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6c2V0VG91Y2hQb2ludFJhZGl1cyhpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVu
dFNlbmRlclByb3h5Ojp0b3VjaFN0YXJ0KCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5
Ojp0b3VjaE1vdmUoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnRvdWNoRW5kKCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaENhbmNlbCgpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6Y2xlYXJUb3VjaFBvaW50cygpCit7Cit9CisKK3ZvaWQgRXZl
bnRTZW5kZXJQcm94eTo6cmVsZWFzZVRvdWNoUG9pbnQoaW50KQoreworfQorCit2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OmNhbmNlbFRvdWNoUG9pbnQoaW50KQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmll
d0JhY2tlbmQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFj
a2VuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU2MGI0MGEz
ZWZiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxl
c3NWaWV3QmFja2VuZC5jcHAKQEAgLTAsMCArMSwyNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkhlYWRsZXNzVmlld0JhY2tlbmQuaCIKKworI2luY2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVk
ZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworLy8gRklYTUU6IERlcGxveSBnb29k
IHByYWN0aWNlcyBhbmQgY2xlYW4gdXAgR0JNIHJlc291cmNlcyBhdCBwcm9jZXNzIGV4aXQuCitz
dGF0aWMgRUdMRGlzcGxheSBnZXRFR0xEaXNwbGF5KCkKK3sKKyAgICBzdGF0aWMgRUdMRGlzcGxh
eSBzX2Rpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKKyAgICBpZiAoc19kaXNwbGF5ID09IEVHTF9O
T19ESVNQTEFZKSB7CisgICAgICAgIGludCBmZCA9IG9wZW4oIi9kZXYvZHJpL3JlbmRlckQxMjgi
LCBPX1JEV1IgfCBPX0NMT0VYRUMgfCBPX05PQ1RUWSB8IE9fTk9OQkxPQ0spOworICAgICAgICBp
ZiAoZmQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAg
IHN0cnVjdCBnYm1fZGV2aWNlKiBkZXZpY2UgPSBnYm1fY3JlYXRlX2RldmljZShmZCk7CisgICAg
ICAgIGlmICghZGV2aWNlKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisg
ICAgICAgIEVHTERpc3BsYXkgZGlzcGxheSA9IGVnbEdldERpc3BsYXkoZGV2aWNlKTsKKyAgICAg
ICAgaWYgKGRpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgICAgICAgICByZXR1cm4gRUdM
X05PX0RJU1BMQVk7CisKKyAgICAgICAgaWYgKCFlZ2xJbml0aWFsaXplKGRpc3BsYXksIG51bGxw
dHIsIG51bGxwdHIpKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAg
ICAgIGlmICghZWdsQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSkpCisgICAgICAgICAgICByZXR1
cm4gRUdMX05PX0RJU1BMQVk7CisKKyAgICAgICAgc19kaXNwbGF5ID0gZGlzcGxheTsKKyAgICB9
CisKKyAgICByZXR1cm4gc19kaXNwbGF5OworfQorCitIZWFkbGVzc1ZpZXdCYWNrZW5kOjpIZWFk
bGVzc1ZpZXdCYWNrZW5kKCkKK3sKKyAgICBtX2VnbC5kaXNwbGF5ID0gZ2V0RUdMRGlzcGxheSgp
OworCisgICAgc3RhdGljIGNvbnN0IEVHTGludCBjb25maWdBdHRyaWJ1dGVzWzEzXSA9IHsKKyAg
ICAgICAgRUdMX1NVUkZBQ0VfVFlQRSwgRUdMX1dJTkRPV19CSVQsCisgICAgICAgIEVHTF9SRURf
U0laRSwgMSwKKyAgICAgICAgRUdMX0dSRUVOX1NJWkUsIDEsCisgICAgICAgIEVHTF9CTFVFX1NJ
WkUsIDEsCisgICAgICAgIEVHTF9BTFBIQV9TSVpFLCAxLAorICAgICAgICBFR0xfUkVOREVSQUJM
RV9UWVBFLCBFR0xfT1BFTkdMX0VTMl9CSVQsCisgICAgICAgIEVHTF9OT05FCisgICAgfTsKKwor
ICAgIEVHTGludCBudW1Db25maWdzOworICAgIEVHTEJvb2xlYW4gcmV0ID0gZWdsQ2hvb3NlQ29u
ZmlnKG1fZWdsLmRpc3BsYXksIGNvbmZpZ0F0dHJpYnV0ZXMsICZtX2VnbC5jb25maWcsIDEsICZu
dW1Db25maWdzKTsKKyAgICBpZiAoIXJldCB8fCAhbnVtQ29uZmlncykKKyAgICAgICAgcmV0dXJu
OworCisgICAgc3RhdGljIGNvbnN0IEVHTGludCBjb250ZXh0QXR0cmlidXRlc1szXSA9IHsKKyAg
ICAgICAgRUdMX0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04sIDIsCisgICAgICAgIEVHTF9OT05FCisg
ICAgfTsKKworICAgIG1fZWdsLmNvbnRleHQgPSBlZ2xDcmVhdGVDb250ZXh0KG1fZWdsLmRpc3Bs
YXksIG1fZWdsLmNvbmZpZywgRUdMX05PX0NPTlRFWFQsIGNvbnRleHRBdHRyaWJ1dGVzKTsKKyAg
ICBpZiAobV9lZ2wuY29udGV4dCA9PSBFR0xfTk9fQ09OVEVYVCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKCFlZ2xNYWtlQ3VycmVudChtX2VnbC5kaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwg
RUdMX05PX1NVUkZBQ0UsIG1fZWdsLmNvbnRleHQpKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2VnbC5jcmVhdGVJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMQ1JFQVRFSU1BR0VLSFJQ
Uk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsQ3JlYXRlSW1hZ2VLSFIiKSk7CisgICAgbV9lZ2wu
ZGVzdHJveUltYWdlID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xERVNUUk9ZSU1BR0VLSFJQUk9D
PihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsRGVzdHJveUltYWdlS0hSIikpOworICAgIG1fZWdsLmlt
YWdlVGFyZ2V0VGV4dHVyZTJET0VTID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTEVHTElNQUdFVEFS
R0VUVEVYVFVSRTJET0VTUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsRUdMSW1hZ2VUYXJnZXRU
ZXh0dXJlMkRPRVMiKSk7CisKKyAgICBtX2V4cG9ydGFibGUgPSB3cGVfbWVzYV92aWV3X2JhY2tl
bmRfZXhwb3J0YWJsZV9kbWFfYnVmX2NyZWF0ZSgmc19leHBvcnRhYmxlQ2xpZW50LCB0aGlzKTsK
KworICAgIG1fdXBkYXRlU291cmNlID0gZ190aW1lb3V0X3NvdXJjZV9uZXcobV9mcmFtZVJhdGUg
LyAxMDAwKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV91cGRhdGVTb3VyY2UsCisgICAg
ICAgIFtdKGdwb2ludGVyIGRhdGEpIC0+IGdib29sZWFuIHsKKyAgICAgICAgICAgIGF1dG8mIGJh
Y2tlbmQgPSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KGRhdGEpOworICAgICAg
ICAgICAgYmFja2VuZC5wZXJmb3JtVXBkYXRlKCk7CisgICAgICAgICAgICByZXR1cm4gVFJVRTsK
KyAgICAgICAgfSwgdGhpcywgbnVsbHB0cik7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1fdXBkYXRl
U291cmNlLCBnX21haW5fY29udGV4dF9kZWZhdWx0KCkpOworfQorCitIZWFkbGVzc1ZpZXdCYWNr
ZW5kOjp+SGVhZGxlc3NWaWV3QmFja2VuZCgpCit7CisgICAgaWYgKG1fdXBkYXRlU291cmNlKQor
ICAgICAgICBnX3NvdXJjZV9kZXN0cm95KG1fdXBkYXRlU291cmNlKTsKKworICAgIGlmIChhdXRv
IGltYWdlID0gc3RkOjpnZXQ8MD4obV9wZW5kaW5nSW1hZ2Uuc2Vjb25kKSkKKyAgICAgICAgbV9l
Z2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKKyAgICBpZiAoYXV0byBpbWFn
ZSA9IHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSkKKyAgICAgICAgbV9lZ2wuZGVz
dHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKKworICAgIGZvciAoYXV0byBpdCA6IG1f
ZXhwb3J0TWFwKSB7CisgICAgICAgIGludCBmZCA9IGl0LnNlY29uZDsKKyAgICAgICAgaWYgKGZk
ID49IDApCisgICAgICAgICAgICBjbG9zZShmZCk7CisgICAgfQorCisgICAgaWYgKG1fZWdsLmNv
bnRleHQpCisgICAgICAgIGVnbERlc3Ryb3lDb250ZXh0KG1fZWdsLmRpc3BsYXksIG1fZWdsLmNv
bnRleHQpOworfQorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogSGVhZGxlc3NWaWV3QmFja2Vu
ZDo6YmFja2VuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9l
eHBvcnRhYmxlX2RtYV9idWZfZ2V0X3ZpZXdfYmFja2VuZChtX2V4cG9ydGFibGUpOworfQorCitj
YWlyb19zdXJmYWNlX3QqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmNyZWF0ZVNuYXBzaG90KCkKK3sK
KyAgICBwZXJmb3JtVXBkYXRlKCk7CisKKyAgICBFR0xJbWFnZUtIUiBpbWFnZSA9IHN0ZDo6Z2V0
PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIHVpbnQzMl90IHdpZHRoID0gc3RkOjpnZXQ8MT4obV9sb2NrZWRJ
bWFnZS5zZWNvbmQpOworICAgIHVpbnQzMl90IGhlaWdodCA9IHN0ZDo6Z2V0PDI+KG1fbG9ja2Vk
SW1hZ2Uuc2Vjb25kKTsKKworICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IG5ldyB1aW50OF90WzQgKiB3
aWR0aCAqIGhlaWdodF07CisgICAgYm9vbCBzdWNjZXNzZnVsU25hcHNob3QgPSBmYWxzZTsKKwor
ICAgIG1ha2VDdXJyZW50KCk7CisKKyAgICBHTHVpbnQgaW1hZ2VUZXh0dXJlOworICAgIGdsR2Vu
VGV4dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJF
XzJELCBpbWFnZVRleHR1cmUpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdM
X1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbFRl
eFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RP
X0VER0UpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dS
QVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2xUZXhJbWFnZTJEKEdMX1RFWFRVUkVfMkQs
IDAsIEdMX0JHUkFfRVhULCB3aWR0aCwgaGVpZ2h0LCAwLCBHTF9CR1JBX0VYVCwgR0xfVU5TSUdO
RURfQllURSwgbnVsbHB0cik7CisKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRleHR1cmUyRE9FUyhH
TF9URVhUVVJFXzJELCBpbWFnZSk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAw
KTsKKworICAgIEdMdWludCBpbWFnZUZyYW1lYnVmZmVyOworICAgIGdsR2VuRnJhbWVidWZmZXJz
KDEsICZpbWFnZUZyYW1lYnVmZmVyKTsKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9G
UkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIGltYWdlVGV4
dHVyZSwgMCk7CisKKyAgICBnbEZsdXNoKCk7CisgICAgaWYgKGdsQ2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhHTF9GUkFNRUJVRkZFUikgPT0gR0xfRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKKyAgICAg
ICAgZ2xSZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIEdMX0JHUkFfRVhULCBHTF9VTlNJ
R05FRF9CWVRFLCBidWZmZXIpOworICAgICAgICBzdWNjZXNzZnVsU25hcHNob3QgPSB0cnVlOwor
ICAgIH0KKworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCAwKTsKKyAgICBn
bERlbGV0ZUZyYW1lYnVmZmVycygxLCAmaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xEZWxldGVU
ZXh0dXJlcygxLCAmaW1hZ2VUZXh0dXJlKTsKKworICAgIGlmICghc3VjY2Vzc2Z1bFNuYXBzaG90
KSB7CisgICAgICAgIGRlbGV0ZVtdIGJ1ZmZlcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCisgICAgY2Fpcm9fc3VyZmFjZV90KiBpbWFnZVN1cmZhY2UgPSBjYWlyb19pbWFnZV9z
dXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXIsCisgICAgICAgIENBSVJPX0ZPUk1BVF9BUkdC
MzIsIHdpZHRoLCBoZWlnaHQsIGNhaXJvX2Zvcm1hdF9zdHJpZGVfZm9yX3dpZHRoKENBSVJPX0ZP
Uk1BVF9BUkdCMzIsIHdpZHRoKSk7CisgICAgY2Fpcm9fc3VyZmFjZV9tYXJrX2RpcnR5KGltYWdl
U3VyZmFjZSk7CisKKyAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IGJ1ZmZlcktleTsK
KyAgICBjYWlyb19zdXJmYWNlX3NldF91c2VyX2RhdGEoaW1hZ2VTdXJmYWNlLCAmYnVmZmVyS2V5
LCBidWZmZXIsCisgICAgICAgIFtdKHZvaWQqIGRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8qIGJ1
ZmZlciA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhKTsKKyAgICAgICAgICAgIGRlbGV0ZVtd
IGJ1ZmZlcjsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gaW1hZ2VTdXJmYWNlOworfQorCiti
b29sIEhlYWRsZXNzVmlld0JhY2tlbmQ6Om1ha2VDdXJyZW50KCkKK3sKKyAgICByZXR1cm4gZWds
TWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNF
LCBtX2VnbC5jb250ZXh0KTsKK30KKwordm9pZCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpwZXJmb3Jt
VXBkYXRlKCkKK3sKKyAgICBpZiAoIW1fcGVuZGluZ0ltYWdlLmZpcnN0KQorICAgICAgICByZXR1
cm47CisKKyAgICB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2Rpc3Bh
dGNoX2ZyYW1lX2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7CisgICAgaWYgKG1fbG9ja2VkSW1hZ2Uu
Zmlyc3QpIHsKKyAgICAgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1
Zl9kaXNwYXRjaF9yZWxlYXNlX2J1ZmZlcihtX2V4cG9ydGFibGUsIG1fbG9ja2VkSW1hZ2UuZmly
c3QpOworICAgICAgICBtX2VnbC5kZXN0cm95SW1hZ2UobV9lZ2wuZGlzcGxheSwgc3RkOjpnZXQ8
MD4obV9sb2NrZWRJbWFnZS5zZWNvbmQpKTsKKyAgICB9CisKKyAgICBtX2xvY2tlZEltYWdlID0g
bV9wZW5kaW5nSW1hZ2U7CisgICAgbV9wZW5kaW5nSW1hZ2UgPSBzdGQ6OnBhaXI8dWludDMyX3Qs
IHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IHsgfTsKK30KKwor
c3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50IEhl
YWRsZXNzVmlld0JhY2tlbmQ6OnNfZXhwb3J0YWJsZUNsaWVudCA9IHsKKyAgICAvLyBleHBvcnRf
ZG1hX2J1ZgorICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRf
ZXhwb3J0YWJsZV9kbWFfYnVmX2RhdGEqIGltYWdlRGF0YSkKKyAgICB7CisgICAgICAgIGF1dG8m
IGJhY2tlbmQgPSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KGRhdGEpOworCisg
ICAgICAgIGF1dG8gaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgpOworICAgICAgICBpZiAo
aW1hZ2VEYXRhLT5mZCA+PSAwKSB7CisgICAgICAgICAgICBhc3NlcnQoYmFja2VuZC5tX2V4cG9y
dE1hcC5maW5kKGltYWdlRGF0YS0+aGFuZGxlKSA9PSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgp
KTsKKworICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmluc2VydCh7IGltYWdl
RGF0YS0+aGFuZGxlLCBpbWFnZURhdGEtPmZkIH0pLmZpcnN0OworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhh
bmRsZSkgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisgICAgICAgICAgICBpdCA9IGJh
Y2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSk7CisgICAgICAgIH0KKwor
ICAgICAgICBhc3NlcnQoaXQgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisgICAgICAg
IHVpbnQzMl90IGhhbmRsZSA9IGl0LT5maXJzdDsKKyAgICAgICAgaW50MzJfdCBmZCA9IGl0LT5z
ZWNvbmQ7CisKKyAgICAgICAgYmFja2VuZC5tYWtlQ3VycmVudCgpOworCisgICAgICAgIEVHTGlu
dCBhdHRyaWJ1dGVzW10gPSB7CisgICAgICAgICAgICBFR0xfV0lEVEgsIHN0YXRpY19jYXN0PEVH
TGludD4oaW1hZ2VEYXRhLT53aWR0aCksCisgICAgICAgICAgICBFR0xfSEVJR0hULCBzdGF0aWNf
Y2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+aGVpZ2h0KSwKKyAgICAgICAgICAgIEVHTF9MSU5VWF9E
Uk1fRk9VUkNDX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPmZvcm1hdCksCisg
ICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfRkRfRVhULCBmZCwKKyAgICAgICAgICAgIEVH
TF9ETUFfQlVGX1BMQU5FMF9PRkZTRVRfRVhULCAwLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZf
UExBTkUwX1BJVENIX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPnN0cmlkZSks
CisgICAgICAgICAgICBFR0xfTk9ORSwKKyAgICAgICAgfTsKKyAgICAgICAgRUdMSW1hZ2VLSFIg
aW1hZ2UgPSBiYWNrZW5kLm1fZWdsLmNyZWF0ZUltYWdlKGJhY2tlbmQubV9lZ2wuZGlzcGxheSwg
RUdMX05PX0NPTlRFWFQsIEVHTF9MSU5VWF9ETUFfQlVGX0VYVCwgbnVsbHB0ciwgYXR0cmlidXRl
cyk7CisgICAgICAgIGJhY2tlbmQubV9wZW5kaW5nSW1hZ2UgPSB7IGltYWdlRGF0YS0+aGFuZGxl
LCBzdGQ6Om1ha2VfdHVwbGUoaW1hZ2UsIGltYWdlRGF0YS0+d2lkdGgsIGltYWdlRGF0YS0+aGVp
Z2h0KSB9OworICAgIH0sCit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVh
ZGxlc3NWaWV3QmFja2VuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5iMDU0ZjgzNDIyMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDxnYm0uaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5j
bHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx3cGUtbWVzYS92aWV3LWJhY2tlbmQtZXhw
b3J0YWJsZS1kbWEtYnVmLmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjaW5jbHVkZSA8R0xF
UzIvZ2wyZXh0Lmg+CisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2luY2x1ZGUgPEVHTC9lZ2xleHQu
aD4KKworY2xhc3MgSGVhZGxlc3NWaWV3QmFja2VuZCB7CitwdWJsaWM6CisgICAgSGVhZGxlc3NW
aWV3QmFja2VuZCgpOworICAgIH5IZWFkbGVzc1ZpZXdCYWNrZW5kKCk7CisKKyAgICBzdHJ1Y3Qg
d3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIGNvbnN0OworCisgICAgY2Fpcm9fc3VyZmFjZV90
KiBjcmVhdGVTbmFwc2hvdCgpOworCitwcml2YXRlOgorICAgIGJvb2wgbWFrZUN1cnJlbnQoKTsK
KyAgICB2b2lkIHBlcmZvcm1VcGRhdGUoKTsKKworICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX21lc2Ff
dmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jbGllbnQgc19leHBvcnRhYmxlQ2xpZW50
OworCisgICAgc3RydWN0IHsKKyAgICAgICAgRUdMRGlzcGxheSBkaXNwbGF5OworICAgICAgICBF
R0xDb25maWcgY29uZmlnOworICAgICAgICBFR0xDb250ZXh0IGNvbnRleHQ7CisKKyAgICAgICAg
UEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DIGNyZWF0ZUltYWdlOworICAgICAgICBQRk5FR0xERVNU
Uk9ZSU1BR0VLSFJQUk9DIGRlc3Ryb3lJbWFnZTsKKyAgICAgICAgUEZOR0xFR0xJTUFHRVRBUkdF
VFRFWFRVUkUyRE9FU1BST0MgaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVM7CisgICAgfSBtX2VnbDsK
KworICAgIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmKiBt
X2V4cG9ydGFibGU7CisKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8dWludDMyX3QsIGludDMyX3Q+
IG1fZXhwb3J0TWFwOworICAgIHN0ZDo6cGFpcjx1aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFn
ZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4gbV9wZW5kaW5nSW1hZ2UgeyB9OworICAgIHN0ZDo6
cGFpcjx1aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwgdWludDMyX3QsIHVpbnQzMl90
Pj4gbV9sb2NrZWRJbWFnZSB7IH07CisKKyAgICBHU291cmNlKiBtX3VwZGF0ZVNvdXJjZTsKKyAg
ICBnaW50NjQgbV9mcmFtZVJhdGUgeyBHX1VTRUNfUEVSX1NFQyAvIDYwIH07Cit9OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk1MDQzOTRiZDQ2Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNw
cApAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJW
aWV3LmgiCisKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisjaW5jbHVkZSA8V2Vi
S2l0L1dLSW1hZ2VDYWlyby5oPgorI2luY2x1ZGUgPGNhaXJvLmg+CisjaW5jbHVkZSA8Y3N0ZGlv
PgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCituYW1lc3Bh
Y2UgV1RSIHsKKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKKyAg
ICA6IG1fd2luZG93SXNLZXkodHJ1ZSkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQoreworICAg
IG1fd2luZG93ID0gbmV3IEhlYWRsZXNzVmlld0JhY2tlbmQ7CisgICAgbV92aWV3ID0gV0tWaWV3
Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKG1fd2luZG93LT5iYWNrZW5kKCksIGNvbmZpZ3VyYXRpb24p
OworfQorCitQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQoreworICAgIGRlbGV0
ZSBtX3dpbmRvdzsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2lnbmVk
LCB1bnNpZ25lZCwgV2ViVmlld1NpemluZ01vZGUpCit7Cit9CisKK1dLUGFnZVJlZiBQbGF0Zm9y
bVdlYlZpZXc6OnBhZ2UoKQoreworICAgIHJldHVybiBXS1ZpZXdHZXRQYWdlKG1fdmlldyk7Cit9
CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCit7Cit9CisKK1dLUmVjdCBQbGF0Zm9y
bVdlYlZpZXc6OndpbmRvd0ZyYW1lKCkKK3sKKyAgICByZXR1cm4gV0tSZWN0eyAwLCAwLCAxLCAx
IH07Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dGcmFtZShXS1JlY3QsIFdl
YlZpZXdTaXppbmdNb2RlKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6ZGlkSW5pdGlh
bGl6ZUNsaWVudHMoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6YWRkQ2hyb21lSW5w
dXRGaWVsZCgpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZW1vdmVDaHJvbWVJbnB1
dEZpZWxkKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZFRvV2luZG93KCkKK3sK
K30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlbW92ZUZyb21XaW5kb3coKQoreworfQorCit2
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tleSkKK3sK
KyAgICBtX3dpbmRvd0lzS2V5ID0gd2luZG93SXNLZXk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJW
aWV3OjptYWtlV2ViVmlld0ZpcnN0UmVzcG9uZGVyKCkKK3sKK30KKworY2Fpcm9fc3VyZmFjZV90
KiBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UoKQoreworICAgIHsKKyAgICAg
ICAgc3RydWN0IFRpbWVvdXRUaW1lciB7CisgICAgICAgICAgICBUaW1lb3V0VGltZXIoKQorICAg
ICAgICAgICAgICAgIDogdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGltZW91dFRpbWVy
OjpmaXJlZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aW1lci5zdGFydE9uZVNo
b3QoMS4wIC8gNjApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIGZpcmVkKCkg
eyBSdW5Mb29wOjptYWluKCkuc3RvcCgpOyB9CisgICAgICAgICAgICBSdW5Mb29wOjpUaW1lcjxU
aW1lb3V0VGltZXI+IHRpbWVyOworICAgICAgICB9IHRpbWVvdXRUaW1lcjsKKworICAgICAgICBS
dW5Mb29wOjptYWluKCkucnVuKCk7CisgICAgfQorCisgICAgY2Fpcm9fc3VyZmFjZV90KiBpbWFn
ZVN1cmZhY2UgPSBtX3dpbmRvdy0+Y3JlYXRlU25hcHNob3QoKTsKKyAgICByZXR1cm4gaW1hZ2VT
dXJmYWNlOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Y2hhbmdlV2luZG93U2NhbGVJZk5l
ZWRlZChmbG9hdCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNldE5hdmlnYXRpb25H
ZXN0dXJlc0VuYWJsZWQoYm9vbCkKK3sKK30KKworYm9vbCBQbGF0Zm9ybVdlYlZpZXc6OnZpZXdT
dXBwb3J0c09wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmKSBjb25zdAoreworICAgIHJldHVybiB0
cnVlOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9yY2VXaW5kb3dGcmFtZXNDaGFuZ2Vk
KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjBjYzNkZWRlOTg2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTM5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgorCisjaW5jbHVkZSA8Z2xp
Yi5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1
ZVB0ci5oPgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBUZXN0Q29udHJvbGxlcjo6bm90aWZ5
RG9uZSgpCit7CisgICAgUnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKK30KKwordm9pZCBUZXN0Q29u
dHJvbGxlcjo6c2V0SGlkZGVuKGJvb2wpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK1dLUHJlZmVyZW5jZXNSZWYgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQoreworICAgIHJldHVybiBXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzKG1fcGFnZUdyb3VwLmdldCgpKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6
cGxhdGZvcm1EZXN0cm95KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1J
bml0aWFsaXplQ29udGV4dCgpCit7Cit9CisKK3N0YXRpYyBHTWFpbkNvbnRleHQqIHRocmVhZERl
ZmF1bHRDb250ZXh0KCkKK3sKKyAgICBpZiAoR01haW5Db250ZXh0KiBjb250ZXh0ID0gZ19tYWlu
X2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkpCisgICAgICAgIHJldHVybiBjb250ZXh0Owor
ICAgIHJldHVybiBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBkb3VibGUgdGltZW91dCkK
K3sKKyAgICBzdHJ1Y3QgVGltZW91dFRpbWVyIHsKKyAgICAgICAgVGltZW91dFRpbWVyKCkKKyAg
ICAgICAgICAgIDogdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGltZW91dFRpbWVyOjpm
aXJlZCkKKyAgICAgICAgeyB9CisKKyAgICAgICAgdm9pZCBmaXJlZCgpIHsgUnVuTG9vcDo6bWFp
bigpLnN0b3AoKTsgfQorICAgICAgICBSdW5Mb29wOjpUaW1lcjxUaW1lb3V0VGltZXI+IHRpbWVy
OworICAgIH0gdGltZW91dFRpbWVyOworCisgICAgdGltZW91dFRpbWVyLnRpbWVyLnNldFByaW9y
aXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKKyAgICBpZiAodGltZW91dCA+PSAwKQorICAg
ICAgICB0aW1lb3V0VGltZXIudGltZXIuc3RhcnRPbmVTaG90KHRpbWVvdXQpOworCisgICAgUnVu
TG9vcDo6bWFpbigpLnJ1bigpOworCisgICAgdGltZW91dFRpbWVyLnRpbWVyLnN0b3AoKTsKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQ
YWdlUmVmLCBXS0ZyYW1lUmVmKQoreworfQorCitzdGF0aWMgY2hhciogZ2V0RW52aXJvbm1lbnRW
YXJpYWJsZUFzVVRGOFN0cmluZyhjb25zdCBjaGFyKiB2YXJpYWJsZU5hbWUpCit7CisgICAgY29u
c3QgY2hhciogdmFsdWUgPSBnX2dldGVudih2YXJpYWJsZU5hbWUpOworICAgIGlmICghdmFsdWUp
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBub3Qg
Zm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMCk7CisgICAgfQorICAgIGdz
aXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191dGY4KHZhbHVlLCAt
MSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRp
YWxpemVJbmplY3RlZEJ1bmRsZVBhdGgoKQoreworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aChn
ZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKCJURVNUX1JVTk5FUl9JTkpFQ1RFRF9C
VU5ETEVfRklMRU5BTUUiKSk7CisgICAgbV9pbmplY3RlZEJ1bmRsZVBhdGguYWRvcHQoV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocGF0aC5nZXQoKSkpOworfQorCit2b2lkIFRlc3RDb250
cm9sbGVyOjppbml0aWFsaXplVGVzdFBsdWdpbkRpcmVjdG9yeSgpCit7Cit9CisKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopCit7Cit9CisKK1dLQ29udGV4
dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db250ZXh0KCkKK3sKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtTGlicmFyeVBh
dGhGb3JUZXN0aW5nKCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlv
biYpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXJlbmNl
c1RvQ29uc2lzdGVudFZhbHVlcygpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnVwZGF0
ZVBsYXRmb3JtU3BlY2lmaWNUZXN0T3B0aW9uc0ZvclRlc3QoVGVzdE9wdGlvbnMmLCBjb25zdCBz
dGQ6OnN0cmluZyYpIGNvbnN0Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dwZS9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNmNmMmI3ZmYzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L3dwZS9tYWluLmNwcApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
IlRlc3RDb250cm9sbGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sK
KyAgICBXVFI6OlRlc3RDb250cm9sbGVyIGNvbnRyb2xsZXIoYXJnYywgY29uc3RfY2FzdDxjb25z
dCBjaGFyKio+KGFyZ3YpKTsKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL2po
YnVpbGQvamhidWlsZC13cmFwcGVyIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKaW5k
ZXggZjZjNDAzZDMxYjAuLmUzZWVjZGZjZTg3IDEwMDc1NQotLS0gYS9Ub29scy9qaGJ1aWxkL2po
YnVpbGQtd3JhcHBlcgorKysgYi9Ub29scy9qaGJ1aWxkL2poYnVpbGQtd3JhcHBlcgpAQCAtMzEs
NiArMzEsOCBAQCBkZWYgZGV0ZXJtaW5lX3BsYXRmb3JtKCk6CiAgICAgICAgIHJldHVybiAiZWZs
IjsKICAgICBpZiAnLS1ndGsnIGluIHN5cy5hcmd2OgogICAgICAgICByZXR1cm4gImd0ayI7Cisg
ICAgaWYgJy0td3BlJyBpbiBzeXMuYXJndjoKKyAgICAgICAgcmV0dXJuICJ3cGUiCiAgICAgcmFp
c2UgVmFsdWVFcnJvcignTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciBqaGJ1aWxkLXdyYXBwZXIu
JykKIAogdHJ5OgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVz
b3VyY2UtbWFuaWZlc3QucHkgYi9Ub29scy93cGUvZ2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJj
ZS1tYW5pZmVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMC4uYWIx
OTQ3NDRjNTUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvZ2VuZXJhdGUtaW5zcGVjdG9y
LWdyZXNvdXJjZS1tYW5pZmVzdC5weQpAQCAtMCwwICsxLDc3IEBACisjIS91c3IvYmluL2VudiBw
eXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisjCisjIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
IyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVz
c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorCitpbXBvcnQgYXJncGFy
c2UKK2ltcG9ydCBnbG9iCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworQ09NUFJFU1NJQkxFX0VY
VEVOU0lPTlMgPSBbJy5odG1sJywgJy5qcycsICcuY3NzJywgJy5zdmcnXQorQkFTRV9ESVIgPSAn
V2ViSW5zcGVjdG9yVUkvJworCisKK2RlZiBnZXRfZmlsZW5hbWVzKGFyZ3MpOgorICAgIGZpbGVu
YW1lcyA9IFtdCisKKyAgICBmb3IgcGF0dGVybiBpbiBhcmdzOgorICAgICAgICBwYXRocyA9IGds
b2IuZ2xvYihwYXR0ZXJuKQorICAgICAgICBmb3IgZmlsZW5hbWUgaW4gcGF0aHM6CisgICAgICAg
ICAgICBiYXNlX2Rpcl9pbmRleCA9IGZpbGVuYW1lLnJmaW5kKEJBU0VfRElSKQorICAgICAgICAg
ICAgaWYgYmFzZV9kaXJfaW5kZXggIT0gLTE6CisgICAgICAgICAgICAgICAgbmFtZSA9IGZpbGVu
YW1lW2Jhc2VfZGlyX2luZGV4ICsgbGVuKEJBU0VfRElSKTpdCisgICAgICAgICAgICAgICAgIyBU
aGUgcmVzdWx0IHNob3VsZCB1c2UgZm9yd2FyZCBzbGFzaGVzLCB0aHVzIG1ha2Ugc3VyZSBhbnkg
b3Mtc3BlY2lmaWMKKyAgICAgICAgICAgICAgICAjIHNlcGFyYXRvciwgYWRkZWQgYnkgdGhlIGds
b2IuZ2xvYigpIGNhbGwsIGlzIHByb3Blcmx5IHJlcGxhY2VkCisgICAgICAgICAgICAgICAgaWYg
b3Muc2VwICE9ICcvJzoKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZShv
cy5zZXAsICcvJykKKyAgICAgICAgICAgICAgICBmaWxlbmFtZXMuYXBwZW5kKG5hbWUpCisgICAg
cmV0dXJuIGZpbGVuYW1lcworCisKK2RlZiBpc19jb21wcmVzc2libGUoZmlsZW5hbWUpOgorICAg
IHJldHVybiBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVsxXSBpbiBDT01QUkVTU0lCTEVfRVhU
RU5TSU9OUworCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgcGFyc2VyID0gYXJn
cGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J0dlbmVyYXRlIGEgR1Jlc291cmNlcyBm
aWxlIGZvciB0aGUgaW5zcGVjdG9yLicpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1vdXRw
dXQnLCBuYXJncz0nPycsIHR5cGU9YXJncGFyc2UuRmlsZVR5cGUoJ3cnKSwgZGVmYXVsdD1zeXMu
c3Rkb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ndGhlIG91dHB1dCBmaWxlJykK
KyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdmaWxlbmFtZXMnLCBtZXRhdmFyPSdGSUxFUycsIG5h
cmdzPScrJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3RoZSBsaXN0IG9mIGZpbGVz
IHRvIGluY2x1ZGUnKQorCisgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKHN5cy5hcmd2WzE6
XSkKKworICAgIGFyZ3Mub3V0cHV0LndyaXRlKFwKKyAgICAiIiI8P3htbCB2ZXJzaW9uPTEuMCBl
bmNvZGluZz1VVEYtOD8+CisgICAgPGdyZXNvdXJjZXM+CisgICAgICAgIDxncmVzb3VyY2UgcHJl
Zml4PSIvb3JnL3dwZS9pbnNwZWN0b3IiPgorIiIiKQorCisgICAgZm9yIGZpbGVuYW1lIGluIGdl
dF9maWxlbmFtZXMoYXJncy5maWxlbmFtZXMpOgorICAgICAgICBsaW5lID0gJyAgICAgICAgICAg
IDxmaWxlJworICAgICAgICBpZiBpc19jb21wcmVzc2libGUoZmlsZW5hbWUpOgorICAgICAgICAg
ICAgbGluZSArPSAnIGNvbXByZXNzZWQ9InRydWUiJworICAgICAgICBpZiAnSW1hZ2VzL2d0ay8n
IGluIGZpbGVuYW1lOgorICAgICAgICAgICAgbGluZSArPSAnIGFsaWFzPSIlcyInICUgZmlsZW5h
bWUucmVwbGFjZSgnZ3RrLycsICcnKQorICAgICAgICBsaW5lICs9ICc+JXM8L2ZpbGU+XG4nICUg
ZmlsZW5hbWUKKworICAgICAgICBhcmdzLm91dHB1dC53cml0ZShsaW5lKQorCisgICAgYXJncy5v
dXRwdXQud3JpdGUoXAorICAgICIiIiAgICA8L2dyZXNvdXJjZT4KKzwvZ3Jlc291cmNlcz4KKyIi
IikKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dwZS9q
aGJ1aWxkLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJl
ZDc1NjI2NGEyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwpA
QCAtMCwwICsxLDI0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgbW9kdWxl
c2V0IFNZU1RFTSAibW9kdWxlc2V0LmR0ZCI+Cis8P3htbC1zdHlsZXNoZWV0IHR5cGU9InRleHQv
eHNsIiBocmVmPSJtb2R1bGVzZXQueHNsIj8+Cis8bW9kdWxlc2V0PgorCisgIDxtZXRhbW9kdWxl
IGlkPSJ3ZWJraXR3cGUtdGVzdGluZy1kZXBlbmRlbmNpZXMiPgorICAgIDxkZXBlbmRlbmNpZXM+
CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0ibGlic291
cCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJjYWlybyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJm
b250cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJkaWN0cyIvPgorICAgICAgPGRlcCBwYWNrYWdl
PSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0eXBlNiIvPgorICAgICAg
PGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24i
Lz4KKyAgICAgIDxkZXAgcGFja2FnZT0id2F5bGFuZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJn
c3RyZWFtZXIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1nb29kIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9
ImdzdC1wbHVnaW5zLWJhZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtbGliYXYiLz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0id3BlIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9IndwZS1tZXNhIi8+
CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvbWV0YW1vZHVsZT4KKworICA8cmVwb3NpdG9yeSB0
eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJlLm9yZy1taXJyb3IiCisgICAgICBocmVmPSJo
dHRwOi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJjZXMucmVkaGF0LmNvbS8iLz4KKyAgPHJlcG9z
aXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRwLmdub21lLm9yZyIKKyAgICAgIGhyZWY9Imh0
dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9
ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgaHJlZj0iaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3Jn
Ii8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZyZWVkZXNrdG9wLm9yZyIK
KyAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnIi8+CisgIDxyZXBvc2l0b3J5
IHR5cGU9InRhcmJhbGwiIG5hbWU9IndheWxhbmQuZnJlZWRlc2t0b3Aub3JnIgorICAgICAgaHJl
Zj0iaHR0cDovL3dheWxhbmQuZnJlZWRlc2t0b3Aub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9
ImdpdCIgbmFtZT0iZ2l0aHViLmNvbSIKKyAgICAgIGhyZWY9ImdpdDovL2dpdGh1Yi5jb20iLz4K
KyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZ3N0cmVhbWVyIgorICAgICAgaHJl
Zj0iaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvc3JjLyIvPgorICA8cmVwb3NpdG9y
eSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJ4a2Jjb21tb24ub3JnIgorICAgICAgaHJlZj0iaHR0cDov
L3hrYmNvbW1vbi5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0ic2F2
YW5uYWguZ251Lm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5zYXZhbm5haC5nbnUu
b3JnL3JlbGVhc2VzLyIvPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYmZmaSIgYXV0b2dlbi1zaD0i
Y29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0ibGliZmZpL2xpYmZmaS0zLjAuMTAudGFy
Lmd6IiB2ZXJzaW9uPSIzLjAuMTAiCisgICAgICAgICAgICAgcmVwbz0ic291cmNld2FyZS5vcmct
bWlycm9yIgorICAgICAgICAgICAgIGhhc2g9InNoYTI1NjpmMDFlYjkwMjdlOWViNTZhZWFlZWY2
MzY2NDk4Nzc3NTZkNDc1ZDcxNGVmOGI0N2Y2MjdmNjViYzVmM2I0OTJmIi8+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIiCisgICAgICAgICAgICAgYXV0b2dlbi1zaD0i
Y29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZHRyYWNlIj4K
KyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJsaWJmZmkiLz4KKyAgICA8
L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2ds
aWIvMi40NC9nbGliLTIuNDQuMS50YXIueHoiIHZlcnNpb249IjIuNDQuMSIKKyAgICAgICAgICAg
IHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6ODgxMWRlYWNh
ZjhhNTAzZDBhOWI3MDE3NzdlYTA3OWNhNmE0Mjc3YmUxMGUzZDczMGQyMTEyNzM1ZDVlY2EwNyI+
CisgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi13YXJuaW5nLWZpeC5wYXRjaCIgc3RyaXA9IjEiLz4K
KyAgICAgIDxwYXRjaCBmaWxlPSJnZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwt
d2FybmluZy5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYi1uZXR3b3JraW5nIj4KKyAgICA8ZGVwZW5kZW5jaWVz
PgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAg
PGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9nbGliLW5ldHdvcmtpbmcvMi40Mi9n
bGliLW5ldHdvcmtpbmctMi40Mi4wLnRhci54eiIgdmVyc2lvbj0iMi40Mi4wIgorICAgICAgICAg
ICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjozMDRkZDll
NGMwY2VkNjkwOTQzMDBlMGI5ZTY2Y2QyZWFhZTcxNjFiOWZjMzE4NjUzNmQxMTQ1ODY3N2Q4MjBk
Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYnNvdXAiCisgICAgICAg
ICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1nbm9tZSAtLWRpc2FibGUtaW50cm9zcGVjdGlv
biI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYi1uZXR3b3Jr
aW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05P
TUUvc291cmNlcy9saWJzb3VwLzIuNDgvbGlic291cC0yLjQ4LjAudGFyLnh6IiB2ZXJzaW9uPSIy
LjQ4LjAiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFz
aD0ic2hhMjU2OmVhMzRkZDY0ZmU0NDM0MzQ0NWRhZjZkZDY5MGQwNjkxZTlkOTczNDY4ZGU0NDg3
OGRhOTczNzFjMTZkODk3ODQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0i
Zm9udHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIKKyAgICAgICAgICAgICBza2lw
LWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJt
cm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZm9udHMuZ2l0IiBjaGVja291dGRpcj0id2Via2l0Z3Rr
LXRlc3QtZm9udHMiIHRhZz0iMC4wLjUiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29s
cyBpZD0iZGljdHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIKKyAgICAgICAgICAg
ICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9k
dWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZGljdHMuZ2l0IiBjaGVja291dGRpcj0id2Vi
a2l0Z3RrLXRlc3QtZGljdHMiIHRhZz0iMC4wLjEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1
dG90b29scyBpZD0iZnJlZXR5cGU2IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgIDxicmFu
Y2ggbW9kdWxlPSJmcmVldHlwZS9mcmVldHlwZS0yLjQuMTEudGFyLmJ6MiIgdmVyc2lvbj0iMi40
LjExIgorICAgICAgICAgICAgcmVwbz0ic2F2YW5uYWguZ251Lm9yZyIKKyAgICAgICAgICAgIGhh
c2g9InNoYTI1NjplZjlkMGJjYjY0NjQ3ZDllNTEyNWRjNzUzNGQ3Y2EzNzFjOTgzMTBmZWM4NzY3
N2M0MTBmMzk3ZjcxZmZiZTNmIgorICAgICAgICAgICAgbWQ1c3VtPSJiOTM0MzU0ODg5NDI0ODZj
OGQwY2EyMmU4Zjc2ODAzNCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZnJlZXR5cGU2LTIuNC4xMS10
cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+
CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZvbnRjb25maWciIGF1dG9nZW4t
c2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0i
ZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNv
ZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9mb250Y29uZmlnLTIuMTEuMS50YXIuZ3oiIHZlcnNp
b249IjIuMTEuMSIKKyAgICAgICAgICAgIHJlcG89ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgICAg
ICAgIGhhc2g9InNoYTI1NjpiNmIwNjZjN2RjZTNmNDM2ZmRjMGRmYmFlOWQzNjEyMmIzODA5NGY0
ZjUzYmQ4ZGZmZDQ1ZTE5NWIwNTQwZDhkIgorICAgICAgICAgICAgbWQ1c3VtPSJlNzVlMzAzYjRm
Nzc1NmMyYjE2MjAzYTU3YWM4N2ViYSI+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgor
CisgIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAg
ICAgIGF1dG9nZW5hcmdzPSItLXdpdGgtY2Fpcm89bm8gLS13aXRoLWdsaWI9bm8gLS13aXRoLWZy
ZWV0eXBlPXllcyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJl
ZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3
YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMS4zLjMudGFyLmJ6MiIKKyAgICAgICAgICAg
IHZlcnNpb249IjEuMy4zIgorICAgICAgICAgICAgY2hlY2tvdXRkaXI9ImhhcmZidXp6LTEuMy4z
IgorICAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0b3Aub3JnIgorICAgICAgICAgICAgaGFzaD0i
c2hhMjU2OjI2MjA5ODcxMTVhNDEyMmI0NzMyMTYxMGRjY2JjYzE4ZjdmMTIxMTE1ZmQ3Yjg4ZGM4
YTY5NWM4YjY2Y2IzYzkiCisgICAgICAgICAgICBtZDVzdW09Ijk3YWUxNWE3MmE5M2YxZjI3MzI0
YTJiOGQ5YmQzYjFkIj4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90
b29scyBpZD0icGl4bWFuIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAg
ICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1lbmFibGUtZ3RrPW5vIj4KKyAgICA8YnJhbmNoIG1v
ZHVsZT0icmVsZWFzZXMvcGl4bWFuLTAuMzIuNi50YXIuZ3oiIHZlcnNpb249IjAuMzIuNiIKKyAg
ICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hh
MjU2OjNkZmVkMTNiODA2MGVhZGFiZjBhNDk0NWM3MDQ1Yjc3OTNjYzdlM2U5MTBlNzQ4YThiYjBm
MGRjM2U3OTQ5MDQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iY2Fpcm8i
IGF1dG9nZW5hcmdzPSItLWVuYWJsZS1lZ2w9eWVzIC0tZW5hYmxlLWdsZXN2MiI+CisgICAgPGRl
cGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgICAgPGRlcCBwYWNr
YWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9InBpeG1hbiIvPgorICAgIDwv
ZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJyZWxlYXNlcy9jYWlyby0xLjE0Ljgu
dGFyLnh6IiB2ZXJzaW9uPSIxLjE0LjgiCisgICAgICAgICAgICByZXBvPSJjYWlyb2dyYXBoaWNz
Lm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTE6YzZmN2I5OTk4NmY5M2M5ZGY3ODY1M2MzZTZh
M2I1MDQzZjY1MTQ1ZSI+CisgICAgICA8cGF0Y2ggZmlsZT0iY2Fpcm8tZWdsLWRldmljZS1jcmVh
dGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8
L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJ4a2Jjb21tb24iPgorICAgIDxicmFuY2gg
bW9kdWxlPSJkb3dubG9hZC9saWJ4a2Jjb21tb24tMC41LjAudGFyLnh6IiB2ZXJzaW9uPSIwLjUu
MCIKKyAgICAgICAgICAgIHJlcG89InhrYmNvbW1vbi5vcmciCisgICAgICAgICAgICBoYXNoPSJz
aGExOjcxMjc5OTNiZmI2OWUxM2NkZmYyNWZiOGIzYzhmMjZjZTZiZTViZmEiLz4KKyAgPC9hdXRv
dG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0id2F5bGFuZCIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJs
ZS1kb2N1bWVudGF0aW9uIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvd2F5bGFuZC0x
LjkuMC50YXIueHoiIHZlcnNpb249IjEuOS4wIgorICAgICAgICAgICAgcmVwbz0id2F5bGFuZC5m
cmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6OWM4NzcwNzIwYWEwMDM0
NDc5NzM1ZjU4YTRkYzRjYTliMTcyZWNmZWRlMjhmNTEzNDMxMmUxMzViNzMwMWVmYSIvPgorICA8
L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJvcmMiIGF1dG9nZW5hcmdzPSItLWRpc2Fi
bGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0i
b3JjL29yYy0wLjQuMTcudGFyLmd6IiB2ZXJzaW9uPSIwLjQuMTciCisgICAgICAgICAgICByZXBv
PSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NGZjN2NjYTQ4YzU5ZmZmMjNh
ZmVlNzhmYjY0MmNkYmRlMDAxZjU2NDAxYzhmNDdiOTVhMTY1NzhkMWQ1ZDdlOCIKKyAgICAgICAg
ICAgIG1kNXN1bT0iYWYxYmYzZGFiOWU2OWYzYzM2ZjM4OTI4NWUyYTEyYTEiLz4KKyAgPC9hdXRv
dG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0cmVhbWVyIiBhdXRvZ2VuLXNoPSJjb25maWd1
cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4K
KyAgICAgIDxkZXAgcGFja2FnZT0ib3JjIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJy
YW5jaCBtb2R1bGU9ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNp
b249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFz
aD0ic2hhMjU2OjVhMzcyMmZiOTMwMmRkOTc3YzE3Y2VkNDI0MDI5M2RjNzc3Y2I3MTZkYzk4Yzhj
Y2E2M2Q3NWMyN2U1ZTMxMDciCisgICAgICAgICAgICBtZDVzdW09IjcxMWFkYTc5YjYzZTQ3YWM5
NmFkYjRlNTQ0NGRjOTA4Ij4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3RyZWFtZXItdHlwZWZpbmQt
T25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2giIHN0cmlwPSIx
Ii8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9Imdz
dC1wbHVnaW5zLWJhc2UiCisgICAgICAgICAgICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAg
ICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1k
b2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdHJlYW1lciIv
PgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1i
YXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgor
ICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjE1
YTlkZTk4NWNkMjY1YzM0NGUzNTlmNWIxOTM0N2RmNDAyMWI3NjExZWQyYzJkOTE5MTdjYjkwMGYy
ZmFkNmYiCisgICAgICAgICAgICBtZDVzdW09IjU0MjFlZGZlYjc0NzlkNWY1Nzc2ZTkxN2JhMzBl
MjRlIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWdv
b2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1leGFtcGxl
cyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4K
KyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAgIDwvZGVwZW5kZW5j
aWVzPgorCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWdvb2QvZ3N0LXBsdWdpbnMt
Z29vZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAgICAgICAgICByZXBv
PSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MjEwM2UxNzkyMWQ2Nzg5NGU4
MmVhZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYyNWJmYmM4M2ZmZWFkMDk3MiIKKyAgICAgICAg
ICAgIG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4YTY0YzMxMmRlMDNkNDciPgorICAgICAgPHBh
dGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNo
IiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0
LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaCIgc3Ry
aXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBp
ZD0iZ3N0LXBsdWdpbnMtYmFkIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSIt
LWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1kb2MgLS1kaXNhYmxlLWludHJvc3BlY3Rp
b24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5z
LWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBs
dWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44
LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6MGJiZDU4ZjM2MzczNGZjMGM0YTYyMGIyZDZmYjAxZDQyN2ZkYWZkYmRhN2I5MGI0ZTE1ZDAz
Yjc1MWNhNDBmNSIKKyAgICAgICAgICAgIG1kNXN1bT0iZTUwOGRhMmE4YTVjM2QxMjI2NGZlMzQx
NWJlMmY0NTEiPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMt
cG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZp
bGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tp
bmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+Cisg
IDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1saWJhdiIgYXV0b2dlbi1zaD0i
Y29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRoLWxpYmF2LWV4dHJhLWNvbmZpZ3VyZT0nLS1k
aXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9jIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+
CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJhdi9nc3QtbGliYXYtJHt2ZXJzaW9ufS50YXIu
eHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAg
ICAgICAgaGFzaD0ic2hhMjU2OjQ0YTQ5MTA4YzM1MzFiNWFjNGYzNDZhMjI0N2NkN2ZiYWZiMGU4
YWIzOTQzOTRjYjZkNzVhNzAzMDBiMzg5MzMiCisgICAgICAgICAgICBtZDVzdW09Ijg1ZjFhMDQ3
NjA2Y2E5ZTA4NDkzZDdiNmI0MmRmNDYyIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxjbWFrZSBp
ZD0id3BlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZv
cm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLmdpdCIKKyAgICAgICAgICAgIHRhZz0iNWUyYTI5ZDJj
Y2M2MzdmNzEyMmJhNzJjMWQ2MmVmNjY5YjQyZjA1YyIgLz4KKyAgPC9jbWFrZT4KKworICA8Y21h
a2UgaWQ9IndwZS1tZXNhIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdl
PSJ3cGUiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiIC8+CisgICAgICA8ZGVwIHBhY2th
Z2U9IndheWxhbmQiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9InhrYmNvbW1vbiIgLz4KKyAgICA8
L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iV2Vi
UGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLW1lc2EuZ2l0IgorICAgICAgICAgICAgdGFn
PSI5OTQ1NzUzZjkzMzdmZDY3YWYwOTgyMThiNzgxOTMzN2FiYTIxMTQxIiAvPgorICA8L2NtYWtl
PgorPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9Ub29scy93cGUvamhidWlsZHJjIGIvVG9vbHMv
d3BlL2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTJm
YTg4ZDcyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvamhidWlsZHJjCkBAIC0wLDAg
KzEsMjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCitzeXMucGF0aC5pbnNlcnQoMCwg
b3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLi9qaGJ1aWxkIikgKQor
aW1wb3J0IGpoYnVpbGRyY19jb21tb24KK2poYnVpbGRyY19jb21tb24uaW5pdChnbG9iYWxzKCks
ICJ3cGUiKQorIyBFbmFibGUgYnVpbGRkaXIgIT0gc3JjZGlyIGJ1aWxkcy4KK2J1aWxkcm9vdCA9
IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoY2hlY2tvdXRyb290KSwgIkJ1aWxkIikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1l
Z2wtc3VyZmFjZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVnbC1kZXZpY2UtY3Jl
YXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uZDQ2ZGY0NWI2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hl
cy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2UucGF0Y2gKQEAgLTAsMCAr
MSwxMzMgQEAKK0Zyb20gYTRlMGRhZjE4YmY4MjUyNDYzZjY2ZDc1ZWVmNDk5Y2ZmZmEzMjU2NSBN
b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFphbiBEb2JlcnNlayA8emRvYmVyc2VrQGln
YWxpYS5jb20+CitEYXRlOiBNb24sIDE3IE5vdiAyMDE0IDAxOjIzOjE1IC0wODAwCitTdWJqZWN0
OiBbUEFUQ0hdIEFkZCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9mb3JfZWdsX3N1cmZhY2UoKS4K
KworLS0tCisgc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgfCA2NiArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgc3JjL2NhaXJvLWdsLmggICAgICAgICAg
fCAgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z
KC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZWdsLWNvbnRleHQuYyBiL3NyYy9jYWlyby1l
Z2wtY29udGV4dC5jCitpbmRleCBiZjcwNGM2Li5iZTJiY2Y5IDEwMDY0NAorLS0tIGEvc3JjL2Nh
aXJvLWVnbC1jb250ZXh0LmMKKysrKyBiL3NyYy9jYWlyby1lZ2wtY29udGV4dC5jCitAQCAtNDgs
NyArNDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fZWdsX2NvbnRleHQgeworICAgICBFR0xE
aXNwbGF5IGRpc3BsYXk7CisgICAgIEVHTENvbnRleHQgY29udGV4dDsKKyAKKy0gICAgRUdMU3Vy
ZmFjZSBkdW1teV9zdXJmYWNlOworKyAgICBFR0xTdXJmYWNlIHN1cmZhY2U7CisrICAgIGNhaXJv
X2Jvb2xfdCBpc19kdW1teV9zdXJmYWNlOworIAorICAgICBFR0xDb250ZXh0IHByZXZpb3VzX2Nv
bnRleHQ7CisgICAgIEVHTFN1cmZhY2UgcHJldmlvdXNfc3VyZmFjZTsKK0BAIC03NCw3ICs3NSw3
IEBAIF9lZ2xfZ2V0X2N1cnJlbnRfc3VyZmFjZSAoY2Fpcm9fZWdsX2NvbnRleHRfdCAqY3R4KQor
IHsKKyAgICAgaWYgKGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCA9PSBOVUxMIHx8CisgICAgICAg
ICBfY2Fpcm9fZ2xfc3VyZmFjZV9pc190ZXh0dXJlIChjdHgtPmJhc2UuY3VycmVudF90YXJnZXQp
KSB7CistCXJldHVybiAgY3R4LT5kdW1teV9zdXJmYWNlOworKwlyZXR1cm4gIGN0eC0+c3VyZmFj
ZTsKKyAgICAgfQorIAorICAgICByZXR1cm4gKChjYWlyb19lZ2xfc3VyZmFjZV90ICopIGN0eC0+
YmFzZS5jdXJyZW50X3RhcmdldCktPmVnbDsKK0BAIC0xNTEsOCArMTUyLDggQEAgX2VnbF9kZXN0
cm95ICh2b2lkICphYnN0cmFjdF9jdHgpCisgCisgICAgIGVnbE1ha2VDdXJyZW50IChjdHgtPmRp
c3BsYXksCisgCQkgICAgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09O
VEVYVCk7CistICAgIGlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCist
ICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNwbGF5LCBjdHgtPmR1bW15X3N1cmZh
Y2UpOworKyAgICBpZiAoY3R4LT5pc19kdW1teV9zdXJmYWNlICYmIGN0eC0+c3VyZmFjZSAhPSBF
R0xfTk9fU1VSRkFDRSkKKysgICAgICAgIGVnbERlc3Ryb3lTdXJmYWNlIChjdHgtPmRpc3BsYXks
IGN0eC0+c3VyZmFjZSk7CisgfQorIAorIHN0YXRpYyBjYWlyb19ib29sX3QKK0BAIC0yMTgsMTMg
KzIxOSwxNCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENv
bnRleHQgZWdsKQorIAllZ2xRdWVyeUNvbnRleHQgKGRweSwgZWdsLCBFR0xfQ09ORklHX0lELCAm
Y29uZmlnX2F0dHJpYnNbMV0pOworIAllZ2xDaG9vc2VDb25maWcgKGRweSwgY29uZmlnX2F0dHJp
YnMsICZjb25maWcsIDEsICZudW1Db25maWdzKTsKKyAKKy0JY3R4LT5kdW1teV9zdXJmYWNlID0g
ZWdsQ3JlYXRlUGJ1ZmZlclN1cmZhY2UgKGRweSwgY29uZmlnLCBhdHRyaWJzKTsKKy0JaWYgKGN0
eC0+ZHVtbXlfc3VyZmFjZSA9PSBOVUxMKSB7CisrCWN0eC0+aXNfZHVtbXlfc3VyZmFjZSA9IFRS
VUU7CisrCWN0eC0+c3VyZmFjZSA9IGVnbENyZWF0ZVBidWZmZXJTdXJmYWNlIChkcHksIGNvbmZp
ZywgYXR0cmlicyk7CisrCWlmIChjdHgtPnN1cmZhY2UgPT0gTlVMTCkgeworIAkgICAgZnJlZSAo
Y3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENB
SVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CisgCistCWlmICghZWdsTWFrZUN1cnJlbnQgKGRw
eSwgY3R4LT5kdW1teV9zdXJmYWNlLCBjdHgtPmR1bW15X3N1cmZhY2UsIGVnbCkpIHsKKysJaWYg
KCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBjdHgtPnN1cmZhY2UsIGN0eC0+c3VyZmFjZSwgZWdsKSkg
eworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVh
dGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CitAQCAtMjM4LDggKzI0
MCw1NCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRl
eHQgZWdsKQorIAorICAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9pbml0ICgmY3R4LT5i
YXNlKTsKKyAgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CistCWlmIChjdHgtPmR1bW15X3N1
cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistCSAgICBlZ2xEZXN0cm95U3VyZmFjZSAoZHB5LCBj
dHgtPmR1bW15X3N1cmZhY2UpOworKwlpZiAoY3R4LT5zdXJmYWNlICE9IEVHTF9OT19TVVJGQUNF
KQorKwkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4LT5zdXJmYWNlKTsKKysJZnJlZSAo
Y3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVz
KTsKKysgICAgfQorKworKyAgICBlZ2xNYWtlQ3VycmVudCAoZHB5LCBFR0xfTk9fU1VSRkFDRSwg
RUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsKKysKKysgICAgcmV0dXJuICZjdHgtPmJh
c2UuYmFzZTsKKyt9CisrCisrY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2VnbF9kZXZpY2VfY3Jl
YXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsLCBFR0xT
dXJmYWNlIHN1cmZhY2UpCisreworKyAgICBjYWlyb19lZ2xfY29udGV4dF90ICpjdHg7CisrICAg
IGNhaXJvX3N0YXR1c190IHN0YXR1czsKKysKKysgICAgY3R4ID0gY2FsbG9jICgxLCBzaXplb2Yg
KGNhaXJvX2VnbF9jb250ZXh0X3QpKTsKKysgICAgaWYgKHVubGlrZWx5IChjdHggPT0gTlVMTCkp
CisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRV
U19OT19NRU1PUlkpOworKworKyAgICBjdHgtPmRpc3BsYXkgPSBkcHk7CisrICAgIGN0eC0+Y29u
dGV4dCA9IGVnbDsKKysgICAgY3R4LT5zdXJmYWNlID0gc3VyZmFjZTsKKysKKysgICAgY3R4LT5i
YXNlLmFjcXVpcmUgPSBfZWdsX2FjcXVpcmU7CisrICAgIGN0eC0+YmFzZS5yZWxlYXNlID0gX2Vn
bF9yZWxlYXNlOworKyAgICBjdHgtPmJhc2UubWFrZV9jdXJyZW50ID0gX2VnbF9tYWtlX2N1cnJl
bnQ7CisrICAgIGN0eC0+YmFzZS5zd2FwX2J1ZmZlcnMgPSBfZWdsX3N3YXBfYnVmZmVyczsKKysg
ICAgY3R4LT5iYXNlLmRlc3Ryb3kgPSBfZWdsX2Rlc3Ryb3k7CisrCisrICAgIC8qIFdlIGFyZSBh
Ym91dCB0aGUgY2hhbmdlIHRoZSBjdXJyZW50IHN0YXRlIG9mIEVHTCwgc28gd2Ugc2hvdWxkCisr
ICAgICAqIHF1ZXJ5IHRoZSBwcmUtZXhpc3Rpbmcgc3VyZmFjZSBub3cgaW5zdGVhZCBvZiBsYXRl
ci4gKi8KKysgICAgX2VnbF9xdWVyeV9jdXJyZW50X3N0YXRlIChjdHgpOworKworKwlpZiAoIWVn
bE1ha2VDdXJyZW50IChkcHksIHN1cmZhY2UsIHN1cmZhY2UsIGVnbCkpIHsKKysJICAgIGZyZWUg
KGN0eCk7CisrCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChD
QUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKysJfQorKworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xf
ZGlzcGF0Y2hfaW5pdCAoJmN0eC0+YmFzZS5kaXNwYXRjaCwgZWdsR2V0UHJvY0FkZHJlc3MpOwor
KyAgICBpZiAodW5saWtlbHkgKHN0YXR1cykpIHsKKysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9j
YWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVzKTsKKysgICAgfQorKworKyAg
ICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9pbml0ICgmY3R4LT5iYXNlKTsKKysgICAgaWYg
KHVubGlrZWx5IChzdGF0dXMpKSB7CisgCWZyZWUgKGN0eCk7CisgCXJldHVybiBfY2Fpcm9fZ2xf
Y29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisgICAgIH0KK2RpZmYgLS1naXQgYS9z
cmMvY2Fpcm8tZ2wuaCBiL3NyYy9jYWlyby1nbC5oCitpbmRleCA5ZmQ3NjA4Li5hOTRmNTgxIDEw
MDY0NAorLS0tIGEvc3JjL2NhaXJvLWdsLmgKKysrKyBiL3NyYy9jYWlyby1nbC5oCitAQCAtMTMy
LDYgKzEzMiw5IEBAIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYyAoY2Fpcm9fZGV2aWNl
X3QJCSpkZXZpY2UsCisgY2Fpcm9fcHVibGljIGNhaXJvX2RldmljZV90ICoKKyBjYWlyb19lZ2xf
ZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsKTsKKyAKKytjYWly
b19wdWJsaWMgY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2VnbF9kZXZpY2VfY3JlYXRlX2Zvcl9l
Z2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsLCBFR0xTdXJmYWNlIHN1
cmZhY2UpOworKworIGNhaXJvX3B1YmxpYyBjYWlyb19zdXJmYWNlX3QgKgorIGNhaXJvX2dsX3N1
cmZhY2VfY3JlYXRlX2Zvcl9lZ2wgKGNhaXJvX2RldmljZV90CSpkZXZpY2UsCisgCQkJCSBFR0xT
dXJmYWNlCSBlZ2wsCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMt
MTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2gg
Yi9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3
ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmI0ZTBhNTQxZGJjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFs
LWFuZC1pZGVudGlmaWVyLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKK0Zyb20gNzA2OWQ3MTdlOTgy
YWRjZjhlMWQzMDBjYmQxMGVlYzYzMjJhNjVjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy
b206IEFraXJhIFRBR09IIDxha2lyYUB0YWdvaC5vcmc+CitEYXRlOiBTdW4sIDIyIEFwciAyMDEy
IDIxOjQwOjQ0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEMrKzExIHJlcXVpcmVzIGEgc3BhY2Ug
YmV0d2VlbiBsaXRlcmFsIGFuZCBpZGVudGlmaWVyCisKK1JlcG9ydGVkIGJ5IEJ1Z2FuaW5pCist
LS0KKyBmb250Y29uZmlnL2ZvbnRjb25maWcuaCB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQs
IDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2ZvbnRjb25m
aWcvZm9udGNvbmZpZy5oIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK2luZGV4IDBlMmNhNTAu
LmIyN2NjYjUgMTAwNjQ0CistLS0gYS9mb250Y29uZmlnL2ZvbnRjb25maWcuaAorKysrIGIvZm9u
dGNvbmZpZy9mb250Y29uZmlnLmgKK0BAIC0xMTIsOSArMTEyLDkgQEAgdHlwZWRlZiBpbnQJCUZj
Qm9vbDsKKyAjZGVmaW5lIEZDX0RFQ09SQVRJVkUJICAgICJkZWNvcmF0aXZlIgkvKiBCb29sIC0g
dHJ1ZSBpZiBzdHlsZSBpcyBhIGRlY29yYXRpdmUgdmFyaWFudCAqLworICNkZWZpbmUgRkNfTENE
X0ZJTFRFUgkgICAgImxjZGZpbHRlciIJCS8qIEludCAqLworIAorLSNkZWZpbmUgRkNfQ0FDSEVf
U1VGRklYCQkgICAgIi5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgorLSNkZWZpbmUgRkNfRElSX0NB
Q0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgorLSNkZWZpbmUgRkNf
VVNFUl9DQUNIRV9GSUxFCSAgICAiLmZvbnRzLmNhY2hlLSJGQ19DQUNIRV9WRVJTSU9OCisrI2Rl
ZmluZSBGQ19DQUNIRV9TVUZGSVgJCSAgICAiLmNhY2hlLSIgRkNfQ0FDSEVfVkVSU0lPTgorKyNk
ZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJ
T04KKysjZGVmaW5lIEZDX1VTRVJfQ0FDSEVfRklMRQkgICAgIi5mb250cy5jYWNoZS0iIEZDX0NB
Q0hFX1ZFUlNJT04KKyAKKyAvKiBBZGp1c3Qgb3V0bGluZSByYXN0ZXJpemVyICovCisgI2RlZmlu
ZSBGQ19DSEFSX1dJRFRICSAgICAiY2hhcndpZHRoIgkvKiBJbnQgKi8KKy0tIAorMS44LjMuMgor
CmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBl
LWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQu
MTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4wZmZlNzZiNGVmMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dw
ZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNo
CkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gZTA0NjkzNzJiZTM4NzBhNWFkNjBiMmM0NTg2ZTljMjgx
MzU3YmQyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdlcm5lciBMZW1iZXJnIDx3
bEBnbnUub3JnPgorRGF0ZTogVHVlLCAyMiBKYW4gMjAxMyAxMDowNzowNyArMDAwMAorU3ViamVj
dDogW3RydWV0eXBlXSBGaXggZm9udCBoZWlnaHQuCisKKyogc3JjL3RydWV0eXBlL3R0b2Jqcy5j
ICh0dF9zaXplX3Jlc2V0KTogVGhlIFdpbmRvd3MgcmVuZGVyaW5nCitlbmdpbmUgdXNlcyByb3Vu
ZGVkIHZhbHVlcyBvZiB0aGUgYXNjZW5kZXIgYW5kIGRlc2NlbmRlciB0byBjb21wdXRlCit0aGUg
VHJ1ZVR5cGUgZm9udCBoZWlnaHQuCistLS0KK2RpZmYgLS1naXQgYS9zcmMvdHJ1ZXR5cGUvdHRv
YmpzLmMgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKK2luZGV4IGM2MWIyMTguLjU5MGI2NmMgMTAw
NjQ0CistLS0gYS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKKysrKyBiL3NyYy90cnVldHlwZS90dG9i
anMuYworQEAgLTQsNyArNCw3IEBACisgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgICBPYmpl
Y3RzIG1hbmFnZXIgKGJvZHkpLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLworIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCistLyogIENvcHlyaWdodCAxOTk2LTIw
MTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
KysvKiAgQ29weXJpZ2h0IDE5OTYtMjAxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLworIC8qICBEYXZpZCBUdXJuZXIsIFJvYmVydCBXaWxoZWxt
LCBhbmQgV2VybmVyIExlbWJlcmcuICAgICAgICAgICAgICAgICAgICAgICovCisgLyogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKi8KKyAvKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEZyZWVUeXBlIHByb2pl
Y3QsIGFuZCBtYXkgb25seSBiZSB1c2VkLCAgICAgICAqLworQEAgLTExNzcsMTEgKzExNzcsMTIg
QEAKKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5yb290LmFzY2VuZGVy
LCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5kZXNjZW5kZXIgPQorICAg
ICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuZGVzY2VuZGVyLCBtZXRy
aWNzLT55X3NjYWxlICkgKTsKKy0gICAgICBtZXRyaWNzLT5oZWlnaHQgPQorLSAgICAgICAgRlRf
UElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuaGVpZ2h0LCBtZXRyaWNzLT55X3NjYWxl
ICkgKTsKKyAgICAgICBtZXRyaWNzLT5tYXhfYWR2YW5jZSA9CisgICAgICAgICBGVF9QSVhfUk9V
TkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5tYXhfYWR2YW5jZV93aWR0aCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLT54X3NjYWxlICkgKTsKKysKKysgICAgICAv
KiB0aGUgaGVpZ2h0IGlzIGRlcml2ZWQgZnJvbSByb3VuZGVkIHZhbHVlcyAqLworKyAgICAgIG1l
dHJpY3MtPmhlaWdodCA9IG1ldHJpY3MtPmFzY2VuZGVyIC0gbWV0cmljcy0+ZGVzY2VuZGVyOwor
ICAgICB9CisgCisgICAgIC8qIGNvbXB1dGUgbmV3IHRyYW5zZm9ybWF0aW9uICovCistLQorY2dp
dCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mt
c3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9n
ZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTBjYjk1MWExOWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxp
dGVyYWwtd2FybmluZy5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIDNhN2VmZDU5OGQzOTM2
NmMyYzlkZTBkZWYyZmRmYjM1ZTVlOWYyYTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t
OiBjb3lwdSA8Y295cHVAc2RmLm9yZz4KK0RhdGU6IE1vbiwgOCBGZWIgMjAxNiAwMDowNjowNiAr
MDIwMAorU3ViamVjdDogW1BBVENIIDEvMV0gZ2RhdGU6IFN1cHByZXNzIHN0cmluZyBmb3JtYXQg
bGl0ZXJhbCB3YXJuaW5nCisKK05ld2VyIHZlcnNpb25zIG9mIEdDQyBlbWl0IGFuIGVycm9yIGhl
cmUsIGJ1dCB3ZSBrbm93IGl0J3Mgc2FmZS4KK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLzc2
MTU1MAorLS0tCisgZ2xpYi9nZGF0ZS5jIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl
cnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nbGliL2dkYXRlLmMgYi9nbGliL2dkYXRlLmMKK2lu
ZGV4IDRhZWNlMDIuLmNkYzczNWMgMTAwNjQ0CistLS0gYS9nbGliL2dkYXRlLmMKKysrKyBiL2ds
aWIvZ2RhdGUuYworQEAgLTI0OTQsNyArMjQ5NCwxMCBAQCBnX2RhdGVfc3RyZnRpbWUgKGdjaGFy
ICAgICAgICpzLAorICAgICAgICAqIHJlY29nbml6ZSB3aGV0aGVyIHN0cmZ0aW1lIGFjdHVhbGx5
IGZhaWxlZCBvciBqdXN0IHJldHVybmVkICIiLgorICAgICAgICAqLworICAgICAgIHRtcGJ1Zlsw
XSA9ICdcMSc7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisrICAgICAgI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgorICAgICAg
IHRtcGxlbiA9IHN0cmZ0aW1lICh0bXBidWYsIHRtcGJ1ZnNpemUsIGxvY2FsZV9mb3JtYXQsICZ0
bSk7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAKKyAgICAgICBpZiAodG1w
bGVuID09IDAgJiYgdG1wYnVmWzBdICE9ICdcMCcpCisgICAgICAgICB7CistLSAKKzIuNy4wCisK
ZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2ggYi9U
b29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZmFmNGQxMWYyYwotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAor
RnJvbSA5ZjkwZWU1ZWVjY2Q0N2YzOWM3YTAzZGNkNzg2YjEyNWExOWMxOTVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AZ25vbWUu
b3JnPgorRGF0ZTogU2F0LCAxMyBKdW4gMjAxNSAyMjo1MjozMyAtMDUwMAorU3ViamVjdDogW1BB
VENIXSBnZW5tYXJzaGFsOiBzaWxlbmNlIHJlZ2lzdGVyIHN0b3JhZ2UgY2xhc3Mgd2FybmluZ3MK
KworVXNpbmcgdGhlIHJlZ2lzdGVyIGtleXdvcmQgdHJpZ2dlcnMgd2FybmluZ3Mgb24gbm90ZXdv
cnRoeSBjb21waWxlcnMKKyhjbGFuZyksIHNpbmNlIGl0J3MgZGVwcmVjYXRlZCBpbiBDKysgYW5k
IGF0IGRhbmdlciBvZiBiZWluZyByZW1vdmVkCitmcm9tIHRoZSBsYW5ndWFnZS4gVGhlcmUgaXMg
bm8gcmVhc29uIHRvIHVzZSBpdCBzaW5jZSBpdCBpc24ndCAxOTgwCithbnltb3JlLgorCitodHRw
czovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwOTE4CistLS0KKyBnb2Jq
ZWN0L2dsaWItZ2VubWFyc2hhbC5jIHwgNiArKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl
cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ29iamVjdC9nbGliLWdl
bm1hcnNoYWwuYyBiL2dvYmplY3QvZ2xpYi1nZW5tYXJzaGFsLmMKK2luZGV4IGJlNDE1MWEuLmNh
NzhhNmYgMTAwNjQ0CistLS0gYS9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCisrKysgYi9nb2Jq
ZWN0L2dsaWItZ2VubWFyc2hhbC5jCitAQCAtNDEyLDkgKzQxMiw5IEBAIGdlbmVyYXRlX21hcnNo
YWwgKGNvbnN0IGdjaGFyICpzaWduYW1lLAorICAgICAgIGdfZnByaW50ZiAoZm91dCwgIiVzJXMg
ZGF0YTIpO1xuIiwgaW5kZW50IChpbmQpLCBwYWQgKCJncG9pbnRlciIpKTsKKyAKKyAgICAgICAv
KiBjZmlsZSBtYXJzaGFsIHZhcmlhYmxlcyAqLworLSAgICAgIGdfZnByaW50ZiAoZm91dCwgIiAg
cmVnaXN0ZXIgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFtZSk7CistICAgICAg
Z19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSop
IGNsb3N1cmU7XG4iKTsKKy0gICAgICBnX2ZwcmludGYgKGZvdXQsICIgIHJlZ2lzdGVyIGdwb2lu
dGVyIGRhdGExLCBkYXRhMjtcbiIpOworKyAgICAgIGdfZnByaW50ZiAoZm91dCwgIiAgR01hcnNo
YWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFtZSk7CisrICAgICAgZ19mcHJpbnRmIChmb3V0
LCAiICBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4iKTsKKysgICAgICBn
X2ZwcmludGYgKGZvdXQsICIgIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIpOworICAgICAgIGlm
IChzaWctPnJhcmctPnNldHRlcikKKyAJZ19mcHJpbnRmIChmb3V0LCAiICAlcyB2X3JldHVybjtc
biIsIHNpZy0+cmFyZy0+Y3R5cGUpOworIAorLS0gCisyLjQuMgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0w
MDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMv
Z3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVkMTA2NGVkNWU5Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1w
b3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKQEAgLTAsMCArMSwyMzYgQEAKK0Zyb20gZTkzODkz
MzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0NDg2YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw
MDEKK0Zyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJlZGhhdC5jb20+CitEYXRlOiBXZWQsIDI2IE9j
dCAyMDE2IDE0OjUxOjAxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGR0bHM6IHBvcnQgdG8gT3Bl
blNTTCAxLjEuMAorCitDaGFuZ2VzIGFyZToKKworLSBVc2UgdGhlIHdyYXBwZXIgZnVuY3Rpb25z
IHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4gIFRvIHByZXNlcnZlCisgIGJhY2t3YXJkIGNv
bXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBkZWZpbml0aW9ucworCistIFJlbW92ZSB0aGUg
dXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wtPmQxLT5zZW50X21lc3NhZ2VzKSIsIHNpbmNl
CisgIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50CisKKy0gVXNlIFJTQV9nZW5lcmF0ZV9rZXlfZXgg
aW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0FfZ2VuZXJhdGVfa2V5CisKK2h0dHBzOi8vYnVn
emlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM1NDAKKy0tLQorIGV4dC9kdGxzL2dz
dGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysrKysKKyBleHQvZHRscy9nc3RkdGxzY29ubmVj
dGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0K
KyAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2Rp
ZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0
bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCA5NWZiYjgzLi5jMWM5NjAyIDEwMDY0NAorLS0tIGEvZXh0
L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZp
Y2F0ZS5jCitAQCAtMTk5LDcgKzE5OSwyMiBAQCBpbml0X2dlbmVyYXRlZCAoR3N0RHRsc0NlcnRp
ZmljYXRlICogc2VsZikKKyAgICAgcHJpdi0+cHJpdmF0ZV9rZXkgPSBOVUxMOworICAgICByZXR1
cm47CisgICB9CisrCisrICAvKiBYWFg6IFJTQV9nZW5lcmF0ZV9rZXkgaXMgYWN0dWFsbHkgZGVw
cmVjYXRlZCBpbiAwLjkuOCAqLworKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEw
MDAwMUwKKyAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9rZXkgKDIwNDgsIFJTQV9GNCwgTlVMTCwgTlVM
TCk7CisrI2Vsc2UKKysgIHJzYSA9IFJTQV9uZXcgKCk7CisrICBpZiAocnNhICE9IE5VTEwpIHsK
KysgICAgQklHTlVNICplID0gQk5fbmV3ICgpOworKyAgICBpZiAoZSAhPSBOVUxMICYmIEJOX3Nl
dF93b3JkIChlLCBSU0FfRjQpCisrICAgICAgICAmJiBSU0FfZ2VuZXJhdGVfa2V5X2V4IChyc2Es
IDIwNDgsIGUsIE5VTEwpKSB7CisrICAgICAgUlNBX2ZyZWUgKHJzYSk7CisrICAgICAgcnNhID0g
TlVMTDsKKysgICAgfQorKyAgICBCTl9mcmVlIChlKTsKKysgIH0KKysjZW5kaWYKKyAKKyAgIGlm
ICghcnNhKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoc2VsZiwgImZhaWxlZCB0byBnZW5l
cmF0ZSBSU0EiKTsKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jIGIv
ZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYworaW5kZXggMzZmNmQ2My4uNzI4ZjVhNyAxMDA2
NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKKysrKyBiL2V4dC9kdGxzL2dz
dGR0bHNjb25uZWN0aW9uLmMKK0BAIC00Miw2ICs0Miw4IEBACisgI2luY2x1ZGUgPG9wZW5zc2wv
ZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+CisgCisrI2luY2x1ZGUgPHN0cmluZy5o
PgorKworIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgKGdzdF9kdGxzX2Nvbm5lY3Rpb25fZGVi
dWcpOworICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIGdzdF9kdGxzX2Nvbm5lY3Rpb25fZGVidWcK
KyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0RHRsc0Nvbm5lY3Rpb24sIGdzdF9kdGxzX2Nv
bm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCitAQCAtMjE2LDYgKzIxOCwzOCBAQCBnc3RfZHRsc19j
b25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICogZ29iamVjdCkKKyAgIEdfT0JKRUNUX0NMQVNT
IChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9jbGFzcyktPmZpbmFsaXplIChnb2JqZWN0KTsK
KyB9CisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAwMDAxTAorK3N0YXRp
YyB2b2lkCisrQklPX3NldF9kYXRhIChCSU8gKiBiaW8sIHZvaWQgKnB0cikKKyt7CisrICBiaW8t
PnB0ciA9IHB0cjsKKyt9CisrCisrc3RhdGljIHZvaWQgKgorK0JJT19nZXRfZGF0YSAoQklPICog
YmlvKQorK3sKKysgIHJldHVybiBiaW8tPnB0cjsKKyt9CisrCisrc3RhdGljIHZvaWQKKytCSU9f
c2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBzaHV0ZG93bikKKyt7CisrICBiaW8tPnNodXRk
b3duID0gc2h1dGRvd247CisrfQorKworK3N0YXRpYyB2b2lkCisrQklPX3NldF9pbml0IChCSU8g
KiBiaW8sIGludCBpbml0KQorK3sKKysgIGJpby0+aW5pdCA9IGluaXQ7CisrfQorKworK3N0YXRp
YyBYNTA5ICoKKytYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKFg1MDlfU1RPUkVfQ1RYICogY3R4
KQorK3sKKysgIHJldHVybiBjdHgtPmNlcnQ7CisrfQorKyNlbmRpZgorKworIHN0YXRpYyB2b2lk
CisgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1
aW50IHByb3BfaWQsCisgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogcHNw
ZWMpCitAQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9kdGxzX2Nvbm5lY3Rpb25fc2V0X3Byb3BlcnR5
IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAgICAgIHByaXYtPmJpbyA9IEJJ
T19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKCkpOworICAgICAgIGdfcmV0dXJuX2lm
X2ZhaWwgKHByaXYtPmJpbyk7CisgCistICAgICAgcHJpdi0+YmlvLT5wdHIgPSBzZWxmOworKyAg
ICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBzZWxmKTsKKyAgICAgICBTU0xfc2V0X2JpbyAo
cHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJpbyk7CisgCisgICAgICAgU1NMX3NldF92ZXJp
ZnkgKHByaXYtPnNzbCwKK0BAIC01NzMsNiArNjA3LDcgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29u
bmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICogc3RyKQorICAgc3RhdGVzIHw9ICghICFTU0xf
d2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7CisgICBzdGF0ZXMgfD0gKCEgIVNTTF93YW50
X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOworIAorKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVS
IDwgMHgxMDEwMDAwMUwKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiJXM6IHJvbGU9JXMgYnVm
PSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAorICAgICAgIHN0ciwKKyAgICAgICBwcml2LT5pc19j
bGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorQEAgLTU4MSw2ICs2MTYsMTUgQEAgbG9nX3N0
YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICogc3RyKQorICAgICAg
IHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAorICAgICAgIHByaXYtPmJpb19idWZmZXJfbGVuLAor
ICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAocHJpdi0+c3NsKSwgU1NMX3N0YXRlX3N0cmlu
Z19sb25nIChwcml2LT5zc2wpKTsKKysjZWxzZQorKyAgR1NUX0xPR19PQkpFQ1QgKHNlbGYsICIl
czogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwleCAlcyIsCisrICAgICAgc3RyLAorKyAgICAg
IHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDogInNlcnZlciIsCisrICAgICAgcHJpdi0+Ymlv
X2J1ZmZlciwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX29mZnNldCwKKysgICAgICBwcml2LT5i
aW9fYnVmZmVyX2xlbiwKKysgICAgICBzdGF0ZXMsIFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCks
IFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+c3NsKSk7CisrI2VuZGlmCisgfQorIAorIHN0
YXRpYyB2b2lkCitAQCAtNzM3LDcgKzc4MSw3IEBAIG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChp
bnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4KQorICAgc2VsZiA9IFNT
TF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9uX2V4X2luZGV4KTsKKyAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNUSU9OIChzZWxmKSwgRkFMU0UpOworIAorLSAg
cGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4NTA5X2N0eC0+Y2VydCk7CisrICBwZW0gPSBf
Z3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RPUkVfQ1RYX2dldDBfY2VydCAoeDUwOV9jdHgp
KTsKKyAKKyAgIGlmICghcGVtKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoc2VsZiwKK0BA
IC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sgKGludCBwcmV2ZXJpZnlf
b2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAgICAgZ2ludCBsZW47CisgCisgICAg
ICAgbGVuID0KKy0gICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4IChiaW8sIFg1MDlfZ2V0X3N1
YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAxLAorKyAgICAgICAgICBYNTA5X05BTUVfcHJp
bnRfZXggKGJpbywKKysgICAgICAgICAgWDUwOV9nZXRfc3ViamVjdF9uYW1lIChYNTA5X1NUT1JF
X0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEsCisgICAgICAgICAgIFhOX0ZMQUdfTVVMVElM
SU5FKTsKKyAgICAgICBCSU9fcmVhZCAoYmlvLCBidWZmZXIsIGxlbik7CisgICAgICAgYnVmZmVy
W2xlbl0gPSAnXDAnOworQEAgLTc3Nyw2ICs4MjIsNyBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFj
ayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFggKiB4NTA5X2N0eCkKKyAgICAgIyMj
IyMjIyMgICMjIyMgICMjIyMjIyMKKyAqLworIAorKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVS
IDwgMHgxMDEwMDAwMUwKKyBzdGF0aWMgQklPX01FVEhPRCBjdXN0b21fYmlvX21ldGhvZHMgPSB7
CisgICBCSU9fVFlQRV9CSU8sCisgICAic3RyZWFtIiwKK0BAIC03OTUsMTEgKzg0MSwzNCBAQCBC
SU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQorIHsKKyAgIHJldHVybiAmY3VzdG9tX2Jp
b19tZXRob2RzOworIH0KKysjZWxzZQorK3N0YXRpYyBCSU9fTUVUSE9EICpjdXN0b21fYmlvX21l
dGhvZHM7CisrCisrc3RhdGljIEJJT19NRVRIT0QgKgorK0JJT19zX2dzdF9kdGxzX2Nvbm5lY3Rp
b24gKHZvaWQpCisreworKyAgaWYgKGN1c3RvbV9iaW9fbWV0aG9kcyAhPSBOVUxMKQorKyAgICBy
ZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworKworKyAgY3VzdG9tX2Jpb19tZXRob2RzID0gQklP
X21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJlYW0iKTsKKysgIGlmIChjdXN0b21fYmlvX21l
dGhvZHMgPT0gTlVMTAorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfd3JpdGUgKGN1c3RvbV9iaW9f
bWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKKysgICAgICB8fCAhQklPX21ldGhfc2V0X3JlYWQg
KGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9yZWFkKQorKyAgICAgIHx8ICFCSU9fbWV0
aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9kX2N0cmwpCisrICAgICAg
fHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9u
ZXcpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9kZXN0cm95IChjdXN0b21fYmlvX21ldGhvZHMs
IGJpb19tZXRob2RfZnJlZSkpIHsKKysgICAgQklPX21ldGhfZnJlZSAoY3VzdG9tX2Jpb19tZXRo
b2RzKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICByZXR1cm4gY3VzdG9tX2Jpb19t
ZXRob2RzOworK30KKysjZW5kaWYKKyAKKyBzdGF0aWMgaW50CisgYmlvX21ldGhvZF93cml0ZSAo
QklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgc2l6ZSkKKyB7CistICBHc3REdGxzQ29u
bmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRyKTsKKysgIEdzdER0
bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoQklPX2dldF9kYXRhIChi
aW8pKTsKKyAKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiQklPOiB3cml0aW5nICVkIiwgc2l6
ZSk7CisgCitAQCAtODI0LDcgKzg5Myw3IEBAIGJpb19tZXRob2Rfd3JpdGUgKEJJTyAqIGJpbywg
Y29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgc3RhdGljIGludAorIGJpb19tZXRob2RfcmVh
ZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyB7CistICBHc3REdGxz
Q29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRyKTsKKysgIEdz
dER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoQklPX2dldF9kYXRh
IChiaW8pKTsKKyAgIEdzdER0bHNDb25uZWN0aW9uUHJpdmF0ZSAqcHJpdiA9IHNlbGYtPnByaXY7
CisgICBndWludCBpbnRlcm5hbF9zaXplOworICAgZ2ludCBjb3B5X3NpemU7CitAQCAtODY4LDcg
KzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBp
bnQgc2l6ZSkKKyBzdGF0aWMgbG9uZworIGJpb19tZXRob2RfY3RybCAoQklPICogYmlvLCBpbnQg
Y21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCisgeworLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNl
bGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3REdGxzQ29ubmVjdGlv
biAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlvKSk7CisgICBH
c3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5wcml2OworIAorICAgc3dpdGNo
IChjbWQpIHsKK0BAIC05MTYsOCArOTg1LDggQEAgYmlvX21ldGhvZF9uZXcgKEJJTyAqIGJpbykK
KyB7CisgICBHU1RfTE9HX09CSkVDVCAoTlVMTCwgIkJJTzogbmV3Iik7CisgCistICBiaW8tPnNo
dXRkb3duID0gMDsKKy0gIGJpby0+aW5pdCA9IDE7CisrICBCSU9fc2V0X3NodXRkb3duIChiaW8s
IDApOworKyAgQklPX3NldF9pbml0IChiaW8sIDEpOworIAorICAgcmV0dXJuIDE7CisgfQorQEAg
LTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2ZyZWUgKEJJTyAqIGJpbykKKyAgICAgcmV0dXJu
IDA7CisgICB9CisgCistICBHU1RfTE9HX09CSkVDVCAoR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlv
LT5wdHIpLCAiQklPIGZyZWUiKTsKKysgIEdTVF9MT0dfT0JKRUNUIChHU1RfRFRMU19DT05ORUNU
SU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklPIGZyZWUiKTsKKyAgIHJldHVybiAwOworIH0K
Ky0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5z
LWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVy
YXRlX2sucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxz
Y2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNjY4NzczNzBjNgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNj
ZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2gKQEAg
LTAsMCArMSwzNyBAQAorRnJvbSAzYTA2OTE5M2UyNTM2NGViZGFjYWM4NmY0YjAzMDIyYzE1MWVh
MjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP1NlYmFzdGlhbj0y
MERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KK0RhdGU6IE1vbiwgMTQg
Tm92IDIwMTYgMTE6MzI6MTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZHRsc2NlcnRpZmljYXRl
OiBGaXggZXJyb3IgY2hlY2tpbmcgaW4gUlNBX2dlbmVyYXRlX2tleV9leCgpCisgdXNhZ2UKKwor
V2FzIGJyb2tlbiBkdXJpbmcgdGhlIHBvcnQgZm9yIE9wZW5TU0wgMS4xLgorCitodHRwczovL2J1
Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MzI4CistLS0KKyBleHQvZHRscy9n
c3RkdGxzY2VydGlmaWNhdGUuYyB8IDcgKysrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2Vy
dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxz
Y2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCBjMWM5
NjAyLi5jMmQ5YmIyIDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMK
KysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMjA3LDEyICsyMDcsMTMg
QEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0ZSAqIHNlbGYpCisgICByc2EgPSBS
U0FfbmV3ICgpOworICAgaWYgKHJzYSAhPSBOVUxMKSB7CisgICAgIEJJR05VTSAqZSA9IEJOX25l
dyAoKTsKKy0gICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRfd29yZCAoZSwgUlNBX0Y0KQorLSAg
ICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAyMDQ4LCBlLCBOVUxMKSkgeworKyAg
ICBpZiAoZSA9PSBOVUxMIHx8ICFCTl9zZXRfd29yZCAoZSwgUlNBX0Y0KQorKyAgICAgICAgfHwg
IVJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVMTCkpIHsKKyAgICAgICBSU0Ff
ZnJlZSAocnNhKTsKKyAgICAgICByc2EgPSBOVUxMOworICAgICB9CistICAgIEJOX2ZyZWUgKGUp
OworKyAgICBpZiAoZSkKKysgICAgICBCTl9mcmVlIChlKTsKKyAgIH0KKyAjZW5kaWYKKyAKKy0t
IAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5w
YXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgt
ZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2E2MGRiNDc3MmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9z
ZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKQEAgLTAsMCArMSwxMzMgQEAK
K0Zyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJiZmE0NTZmMWVkNGU1ZGI0OCBNb24gU2VwIDE3
IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0Bp
Z2FsaWEuY29tPgorRGF0ZTogVGh1LCA3IEFwciAyMDE2IDEzOjU3OjE2ICswMjAwCitTdWJqZWN0
OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhwb3NlIHN0cmVhbXMgd2l0aCBmaXJzdCBtb29m
IGZvcgorIGZyYWdtZW50ZWQgZm9ybWF0IgorCitUaGlzIHJldmVydHMgY29tbWl0IGQ4YmI2Njg3
ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2YWQuCistLS0KKyBnc3QvaXNvbXA0L3F0ZGVt
dXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxIC0KKyAyIGZpbGVzIGNoYW5nZWQsIDE2
IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21w
NC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworaW5kZXggMzliZTE2My4uOTYzNmI0
YiAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCisrKysgYi9nc3QvaXNvbXA0L3F0
ZGVtdXguYworQEAgLTYwOSw3ICs2MDksNiBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RRVERlbXV4
ICogcXRkZW11eCkKKyAgIHF0ZGVtdXgtPnN0YXRlID0gUVRERU1VWF9TVEFURV9JTklUSUFMOwor
ICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7CisgICBxdGRlbXV4LT5wb3N0ZWRfcmVkaXJl
Y3QgPSBGQUxTRTsKKy0gIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7CisgICBx
dGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OworICAgcXRkZW11eC0+dG9kcm9wID0gMDsKKyAgIHF0
ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9uZXcgKCk7CitAQCAtMjA0OSw3ICsyMDQ4LDYg
QEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBnYm9vbGVhbiBoYXJk
KQorICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRkZW11eC0+bWVkaWFfY2FwcywgTlVMTCk7Cisg
ICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7CisgICAgIHF0ZGVtdXgtPmdvdF9tb292ID0gRkFM
U0U7CistICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7CisgICB9IGVsc2Ug
aWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7CisgICAgIGdzdF9mbG93X2NvbWJpbmVyX3Jlc2V0IChx
dGRlbXV4LT5mbG93Y29tYmluZXIpOworICAgICBmb3IgKG4gPSAwOyBuIDwgcXRkZW11eC0+bl9z
dHJlYW1zOyBuKyspCitAQCAtNjEwNCw3ICs2MTAyLDYgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19h
ZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAgICAgICAgICAg
ICZmb3VyY2MpOworICAgICAgICAgaWYgKGZvdXJjYyA9PSBGT1VSQ0NfbW9vdikgeworICAgICAg
ICAgICBnaW50IG47CistICAgICAgICAgIGdib29sZWFuIGdvdF9zYW1wbGVzID0gRkFMU0U7Cisg
CisgICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdtZW50ZWQgc2V0dXAgd2UgY291bGQgdHJ5IHRv
IHNjYW4gZm9yIG1vcmUKKyAgICAgICAgICAgICogYW5kIGVuZCB1cCBhdCB0aGUgdGhlIG1vb3Yg
KGFmdGVyIG1kYXQpIGFnYWluICovCitAQCAtNjEzNiwyNyArNjEzMywxOSBAQCBnc3RfcXRkZW11
eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisg
ICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAgKGRlbXV4LCBkZW11eC0+bW9vdl9ub2RlKTsK
KyAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3RyZWUgKGRlbXV4KTsKKyAgICAgICAgICAgICBx
dGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAgIGlmICghZGVtdXgt
PmdvdF9tb292KQorKyAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAoZGVtdXgp
OworKyAgICAgICAgICAgIGVsc2UgeworIAorLSAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBk
ZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAgICAgICAgICAgIFF0RGVtdXhTdHJlYW0gKnN0
cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAgICAgZ290X3NhbXBsZXMgfD0g
c3RyZWFtLT5zdGJsX2luZGV4ID49IDA7CistICAgICAgICAgICAgfQorLSAgICAgICAgICAgIGlm
ICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3NhbXBsZXMpIHsKKy0gICAgICAgICAgICAgIGlm
ICghZGVtdXgtPmdvdF9tb292KSB7CistICAgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0
cmVhbXMgKGRlbXV4KTsKKy0gICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAg
IGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAgICAgICAgICAg
ICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKy0gICAgICAg
ICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFtIChkZW11eCwgc3RyZWFtKTsK
Ky0gICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGRlbXV4
LT5uX3N0cmVhbXM7IG4rKykgeworKyAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJl
YW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKysKKysgICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhf
Y29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7CisgICAgICAgICAgICAgICB9CistICAg
ICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVtdXgp
OworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7CistICAg
ICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3Vy
ZSA9IFRSVUU7CisgICAgICAgICAgICAgfQorIAorICAgICAgICAgICAgIGRlbXV4LT5nb3RfbW9v
diA9IFRSVUU7CisrICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tfc2VuZF9wZW5kaW5nX3Nl
Z21lbnQgKGRlbXV4KTsKKyAKKyAgICAgICAgICAgICAvKiBmcmFnbWVudGVkIHN0cmVhbXMgaGVh
ZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0b21zICovCisgICAgICAgICAgICAgaWYgKCFk
ZW11eC0+ZnJhZ21lbnRlZCkgeworQEAgLTYxNzUsNyArNjE2NCw2IEBAIGdzdF9xdGRlbXV4X3By
b2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAgICAg
ICAgICAgICBndWludDY0IGRpc3QgPSAwOworICAgICAgICAgICAgIEdzdENsb2NrVGltZSBwcmV2
X3B0czsKKyAgICAgICAgICAgICBndWludDY0IHByZXZfb2Zmc2V0OworLSAgICAgICAgICAgIGdp
bnQgbjsKKyAKKyAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIlBhcnNpbmcg
W21vb2ZdIik7CisgCitAQCAtNjIwOSwyNSArNjE5NywxNSBAQCBnc3RfcXRkZW11eF9wcm9jZXNz
X2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAg
ICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKyAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAg
ICAgICAgICAgICB9CistICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQgdG8gZXhwb3NlIHRo
ZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBhIG1vb3YgCistICAg
ICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBmb3JtYXQgbmVlZCB0byBiZSBleHBvc2VkIGlm
IGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBkYXRhICovCistICAgICAgICAgICAgaWYgKGRl
bXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGluZ19jb25maWd1cmUpIHsKKy0gICAgICAgICAg
ICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKKy0gICAgICAgICAgICAgICAgaWYgKCFkZW11eC0+
cGVuZGluZ19uZXdzZWdtZW50KSB7CistICAgICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdt
ZW50OworLSAgICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2luaXQgKCZzZWdtZW50LCBHU1Rf
Rk9STUFUX1RJTUUpOworLSAgICAgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4
LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworLSAgICAgICAgICAgICAgICAgIGRlbXV4LT5w
ZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKy0g
ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJlYW1z
IChkZW11eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBmb3Ig
KG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAgICAgICAgICAgICAg
UXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07CistICAgICAgICAgICAg
ICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7CistICAg
ICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvKiBpbiBNU1Mgd2UgbmVlZCB0byBleHBvc2Ug
dGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29uJ3QgZ2V0IGEgbW9vdiAqLwor
KyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21vZGUgJiYgIWRlbXV4LT5leHBvc2VkKSB7Cisr
ICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQpIHsKKysgICAgICAg
ICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OworKyAgICAgICAgICAgICAgICBnc3Rfc2VnbWVu
dF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKKysgICAgICAgICAgICAgICAgR1NU
X0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVuZGluZ19uZXdzZWdtZW50Iik7CisrICAgICAg
ICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21l
bnQgKCZzZWdtZW50KTsKKyAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgIGdzdF9xdGRl
bXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7CistICAgICAgICAgICAgICBk
ZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKKysgICAgICAgICAgICAgIHF0ZGVtdXhf
ZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJEaXNjYXJkaW5nIFtt
b29mXSIpOworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lzb21wNC9x
dGRlbXV4LmgKK2luZGV4IDYwNjEyMTUuLmVjZjBjNjMgMTAwNjQ0CistLS0gYS9nc3QvaXNvbXA0
L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK0BAIC04OSw3ICs4OSw2IEBA
IHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBnYm9vbGVhbiBwb3N0ZWRfcmVkaXJlY3Q7CisgCisg
ICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLworLSAgZ2Jvb2xlYW4gcGVuZGluZ19jb25maWd1
cmU7CisgICBndWludCBuZWVkZWRieXRlczsKKyAgIGd1aW50IHRvZHJvcDsKKyAgIEdzdEFkYXB0
ZXIgKmFkYXB0ZXI7CistLSAKKzIuOC4wLnJjMworCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaCBiL1Rv
b2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1l
LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZTlkZDk3Zjc5
MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2Qt
dXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCkBAIC0wLDAgKzEsMTQ2IEBACitGcm9tIDQ2
ZDNlMGZhYTkyMjY0MzA5NGE1ZTQ2YTMyZTRmODJmNzc0YWU3NzIgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCitGcm9tOiA9P1VURi04P3E/RW5yaXF1ZT0yME9jYT1DMz1CMWE9MjBHb256PUMzPUEx
bGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KK0RhdGU6IFR1ZSwgMTAgTm92IDIwMTUgMTM6MDk6
MDAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIHRoZSB0ZmR0IGRlY29kZSB0aW1lIHdoZW4g
aXQncyBzaWduaWZpY2FudGx5IGRpZmZlcmVudAorIHRoYW4gdGhlIHRpbWUgaW4gdGhlIGxhc3Qg
c2FtcGxlIGlmIGFsd2F5cy1ob25vci10ZmR0IGlzIGVuYWJsZWQKKworaHR0cHM6Ly9idWd6aWxs
YS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDIzMAorLS0tCisgZ3N0L2lzb21wNC9xdGRl
bXV4LmMgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrCisgZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAgMSArCisgMiBmaWxlcyBjaGFuZ2VkLCA3
MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguYyBiL2dz
dC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA4ODA1OTVlLi5kOGI1NGYwIDEwMDY0NAorLS0tIGEv
Z3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitAQCAtNTM1
LDYgKzUzNSwxMSBAQCBzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9hcHBlbmRfcHJvdGVjdGlvbl9z
eXN0ZW1faWQgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICBjb25zdCBnY2hhciAqIGlkKTsK
KyBzdGF0aWMgdm9pZCBxdGRlbXV4X2dzdF9zdHJ1Y3R1cmVfZnJlZSAoR3N0U3RydWN0dXJlICog
Z3N0c3RydWN0dXJlKTsKKyAKKytzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9zZXRfcHJvcGVydHkg
KEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisrICAgIGNvbnN0IEdWYWx1ZSAqIHZh
bHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Cisrc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfZ2V0X3By
b3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorKyAgICBHVmFsdWUgKiB2
YWx1ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworKworIHN0YXRpYyB2b2lkCisgZ3N0X3F0ZGVtdXhf
Y2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3MpCisgeworQEAgLTU0Niw4ICs1NTEs
MjEgQEAgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3MpCisg
CisgICBwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQgKGtsYXNzKTsKKyAK
KysgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IGdzdF9xdGRlbXV4X3NldF9wcm9wZXJ0
eTsKKysgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IGdzdF9xdGRlbXV4X2dldF9wcm9w
ZXJ0eTsKKysKKyAgIGdvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBnc3RfcXRkZW11eF9kaXNwb3Nl
OworIAorKyAvKioKKysgICAqIEdzdFF0RGVtdXg6OmFsd2F5cy1ob25vci10ZmR0OgorKyAgICoK
KysgICAqIFJlcXVlc3RzIHRoZSBkZW11eGVyIHRvIHJlc3BlY3Qgd2hhdCB0aGUgVEZEVCBhdG9t
IHNheXMgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24gdGltZXN0YW1wcy4gRGVmYXVs
dHMgdG8gRkFMU0UuCisrICAgKi8KKysgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkg
KGdvYmplY3RfY2xhc3MsIFBST1BfQUxXQVlTX0hPTk9SX1RGRFQsCisrICAgICAgZ19wYXJhbV9z
cGVjX2Jvb2xlYW4gKCJhbHdheXMtaG9ub3ItdGZkdCIsICJBbHdheXMgaG9ub3IgVEZEVCIsCisr
ICAgICAgICAgICJXaGVuIGVuYWJsZWQsIFRGRFQgYXRvbSB3aWxsIGFsd2F5cyBiZSByZXNwZWN0
ZWQgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24gdGltZXN0YW1wcyIsCisrICAgICAg
ICAgIEZBTFNFLCBHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElDX1NUUklOR1MpKTsK
KysKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmNoYW5nZV9zdGF0ZSA9IEdTVF9ERUJVR19GVU5DUFRS
IChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpOworICNpZiAwCisgICBnc3RlbGVtZW50X2NsYXNz
LT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVtdXhfc2V0X2luZGV4KTsK
K0BAIC02MTEsNiArNjI5LDcgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAoR3N0UVREZW11eCAqIHF0ZGVt
dXgpCisgICBxdGRlbXV4LT5jZW5jX2F1eF9pbmZvX3NpemVzID0gTlVMTDsKKyAgIHF0ZGVtdXgt
PmNlbmNfYXV4X3NhbXBsZV9jb3VudCA9IDA7CisgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3Rl
bV9pZHMgPSBOVUxMOworKyAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBGQUxTRTsKKyAg
IGdfcXVldWVfaW5pdCAoJnF0ZGVtdXgtPnByb3RlY3Rpb25fZXZlbnRfcXVldWUpOworICAgZ3N0
X3NlZ21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNlZ21lbnQsIEdTVF9GT1JNQVRfVElNRSk7CisgICBx
dGRlbXV4LT5mbG93Y29tYmluZXIgPSBnc3RfZmxvd19jb21iaW5lcl9uZXcgKCk7CitAQCAtNjM5
LDYgKzY1OCw0MiBAQCBnc3RfcXRkZW11eF9kaXNwb3NlIChHT2JqZWN0ICogb2JqZWN0KQorIH0K
KyAKKyBzdGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4X3NldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9i
amVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgY29uc3QgR1ZhbHVlICogdmFsdWUsIEdQYXJhbVNw
ZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKG9i
amVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQpIHsKKysgICAgY2FzZSBQUk9QX0FMV0FZU19I
T05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1RfTE9DSyAocXRkZW11eCk7CisrICAgICAgcXRk
ZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBnX3ZhbHVlX2dldF9ib29sZWFuICh2YWx1ZSk7Cisr
ICAgICAgR1NUX09CSkVDVF9VTkxPQ0sgKHF0ZGVtdXgpOworKyAgICAgIGJyZWFrOworKyAgICBk
ZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0
LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJlYWs7CisrICB9CisrfQorKworK3N0YXRpYyB2
b2lkCisrZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBw
cm9wX2lkLCBHVmFsdWUgKiB2YWx1ZSwKKysgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQorK3sKKysg
IEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1VWCAob2JqZWN0KTsKKysKKysgIHN3aXRj
aCAocHJvcF9pZCkgeworKyAgICBjYXNlIFBST1BfQUxXQVlTX0hPTk9SX1RGRFQ6CisrICAgICAg
R1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsKKysgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuICh2
YWx1ZSwgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQpOworKyAgICAgIEdTVF9PQkpFQ1RfVU5M
T0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBHX09C
SkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwor
KyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMgdm9pZAorIGdzdF9xdGRlbXV4X3Bv
c3Rfbm9fcGxheWFibGVfc3RyZWFtX2Vycm9yIChHc3RRVERlbXV4ICogcXRkZW11eCkKKyB7Cisg
ICBpZiAocXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0KSB7CitAQCAtMjk5NSw2ICszMDUwLDE2IEBA
IHF0ZGVtdXhfcGFyc2VfdHJ1biAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIEdzdEJ5dGVSZWFkZXIg
KiB0cnVuLAorICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAx
XS50aW1lc3RhbXAgKworICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3RyZWFtLT5uX3NhbXBs
ZXMgLSAxXS5kdXJhdGlvbjsKKyAKKysgICAgICAvKiBJZiB3ZSdyZSBhbHdheXMgaG9ub3Jpbmcg
VEZEVCBhbmQgdGhlcmUncyBhIHNpZ25pZmljYXRpdmUgZGlmZmVyZW5jZQorKyAgICAgICAqIGJl
dHdlZW4gdGhlIGRlY29kZV90cyBhbmQgdGhlIHRpbWVzdGFtcCwgcHJlZmVyIGRlY29kZV90cyAq
LworKyAgICAgIGlmIChxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCA9PSBUUlVFCisrICAgICAg
ICAgICYmIGFicyAoZGVjb2RlX3RzIC0gdGltZXN0YW1wKSA+CisrICAgICAgICAgIHN0cmVhbS0+
c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLmR1cmF0aW9uKSB7CisrICAgICAgICBHU1Rf
SU5GT19PQkpFQ1QgKHF0ZGVtdXgsCisrICAgICAgICAgICAgImRlY29kZV90cyBpcyBzaWduaWZp
Y2FudGx5IGRpZmZlcmVudCBmcm9tIHRpbWVzdGFtcCwgdXNpbmcgZGVjb2RlX3RzIik7CisrICAg
ICAgICB0aW1lc3RhbXAgPSBkZWNvZGVfdHM7CisrICAgICAgfQorKworICAgICAgIGdzdF90cyA9
IFFUU1RSRUFNVElNRV9UT19HU1RUSU1FIChzdHJlYW0sIHRpbWVzdGFtcCk7CisgICAgICAgR1NU
X0lORk9fT0JKRUNUIChxdGRlbXV4LCAiZmlyc3Qgc2FtcGxlIHRzICUiIEdTVF9USU1FX0ZPUk1B
VAorICAgICAgICAgICAiIChleHRlbmRzIHByZXZpb3VzIHNhbXBsZXMpIiwgR1NUX1RJTUVfQVJH
UyAoZ3N0X3RzKSk7CitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmggYi9nc3QvaXNv
bXA0L3F0ZGVtdXguaAoraW5kZXggNTNiZDA3MS4uZWNmMGM2MyAxMDA2NDQKKy0tLSBhL2dzdC9p
c29tcDQvcXRkZW11eC5oCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAorQEAgLTE1NCwxMiAr
MTU0LDIwIEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBndWludDggKmNlbmNfYXV4X2luZm9f
c2l6ZXM7CisgICBndWludDMyIGNlbmNfYXV4X3NhbXBsZV9jb3VudDsKKyAKKysgIGdib29sZWFu
IGFsd2F5c19ob25vcl90ZmR0OworIH07CisgCisgc3RydWN0IF9Hc3RRVERlbXV4Q2xhc3Mgewor
ICAgR3N0RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKKyB9OworIAorKy8qIHByb3BzICovCisr
ZW51bQorK3sKKysgIFBST1BfMCwKKysgIFBST1BfQUxXQVlTX0hPTk9SX1RGRFQKKyt9OworKwor
IEdUeXBlIGdzdF9xdGRlbXV4X2dldF90eXBlICh2b2lkKTsKKyAKKyBHX0VORF9ERUNMUworLS0g
CisyLjYuMQorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZp
bmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2ggYi9Ub29s
cy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1k
b3duc3RyZWFtLWlmLXRoZS0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmI0NDZiZDU0NGMzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMv
Z3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10
aGUtLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gNWU0M2VlNTk4OWQ3YjUxZGNiMzE0NWJk
OTk3NTI1MjQ3YTNkNjJkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/
cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CitE
YXRlOiBXZWQsIDExIE1heSAyMDE2IDE1OjA2OjM5ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIHR5
cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50IGRvd25zdHJlYW0gaWYgdGhlIHNpbmtwYWQg
aXMKKyBub3QgaW4gUFVMTCBtb2RlCisKK1RoZSBvdGhlciBzaWduYWwgaGFuZGxlcnMgb2YgdGhl
IHR5cGUtZm91bmQgc2lnbmFsIG1pZ2h0IGhhdmUgcmVhY3RpdmF0ZWQKK3R5cGVmaW5kIGluIFBV
TEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQUyBldmVudCBhdCB0aGF0IHBvaW50IHdvdWxk
IGNhdXNlCitkZWFkbG9ja3MgYW5kIGlzIGluIGdlbmVyYWwgdW5leHBlY3RlZCBieSBlbGVtZW50
cyB0aGF0IGFyZSBpbiBQVUxMIG1vZGUuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3No
b3dfYnVnLmNnaT9pZD03NjU5MDYKKy0tLQorIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRl
bGVtZW50LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2Rp
ZmYgLS1naXQgYS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIGIvcGx1Z2lu
cy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYworaW5kZXggYzY4NjQxMi4uNDUzZmY3NSAx
MDA2NDQKKy0tLSBhL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKKysrKyBi
L3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKK0BAIC0xNzksNiArMTc5LDEw
IEBAIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUgKEdzdFR5cGVGaW5kRWxlbWVudCAq
IHR5cGVmaW5kLAorICAgR1NUX0lORk9fT0JKRUNUICh0eXBlZmluZCwgImZvdW5kIGNhcHMgJSIg
R1NUX1BUUl9GT1JNQVQgIiwgcHJvYmFiaWxpdHk9JXUiLAorICAgICAgIGNhcHMsIHByb2JhYmls
aXR5KTsKKyAKKysgIC8qIERvIG5vdGhpbmcgaWYgZG93bnN0cmVhbSBpcyBwdWxsaW5nIGZyb20g
dXMgKi8KKysgIGlmIChHU1RfUEFEX01PREUgKHR5cGVmaW5kLT5zcmMpID09IEdTVF9QQURfTU9E
RV9QVUxMKQorKyAgICByZXR1cm47CisrCisgICBHU1RfT0JKRUNUX0xPQ0sgKHR5cGVmaW5kKTsK
KyAKKyAgIC8qIE5vdyBhY3R1YWxseSBzZW5kIHRoZSBDQVBTIGV2ZW50IGRvd25zdHJlYW0uCist
LSAKKzIuOC4xCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307726</attachid>
            <date>2017-04-21 07:03:19 -0700</date>
            <delta_ts>2017-04-21 07:48:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>503332</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDc2MjkzY2NmMDlkLi5hYWFhZTRmZGRlZSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA0LTIxICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IEFkZCB0aGUgV1BFIHBvcnQgaWRlbnRpZmllci4KKyAgICAgICAgKiBTb3VyY2UvY21h
a2UvRmluZExpYkdCTS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRX
UEVCYWNrZW5kLW1lc2EuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5k
V1BFQmFja2VuZC5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNX
UEUuY21ha2U6IEFkZGVkLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51
bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5HX0hFQURF
UlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggNTUxN2Y0NmNiYjMuLmE2NTZiYTczNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtV1BFLmNt
YWtlOiBBZGRlZC4KKyAgICAgICAgKiBzaGVsbC9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisK
IDIwMTctMDQtMjAgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAg
ICAgICAgIFtjbWFrZV0gRGVmaW5lIEZPUldBUkRJTkdfSEVBREVSU19ESVIgaW4gV2ViS2l0RlMg
YW5kIHVzZSBpdCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1XUEUuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjZjZhZjkyY2Q0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
CkBAIC0wLDAgKzEsMjMgQEAKK2xpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9JTkNM
VURFX0RJUkVDVE9SSUVTCisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke1dURl9ESVJ9
CispCisKK3NldChXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hFQURFUlMKKyAgICBBUEkv
SmF2YVNjcmlwdC5oCisgICAgQVBJL0pTQmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisg
ICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAgICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5
cGVkQXJyYXkuaAorICAgIEFQSS9KU1ZhbHVlUmVmLmgKKyAgICBBUEkvV2ViS2l0QXZhaWxhYmls
aXR5LmgKKykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfSkFWQVNDUklQVENPUkVf
SEVBREVSU30KKyAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dw
ZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFL0phdmFTY3JpcHRDb3JlIgorICAgIENPTVBPTkVOVCAi
RGV2ZWxvcG1lbnQiCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvUGxhdGZvcm1X
UEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyMzE4M2Ey
YjA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRm
b3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMyBAQAorbGlzdChBUFBFTkQgSlNDX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5kZXgg
NmE0YzE4MGZhYWMuLjBkMTgxMGQ0OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oOgorICAgICAgICBBbGxvdyBidWlsZGluZyBXUEUgb24gcGxhdGZvcm1zIHRoYXQgZG9uJ3Qg
cHJvdmlkZSBYMTEgbGlicmFyaWVzLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5H
X0hFQURFUlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5
ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAgICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVm
IHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1hcF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5
cGVkZWYgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlw
ZTsKIAotI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkg
fHwgZGVmaW5lZChVU0VfV1BFKQogCiB0eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlU
eXBlOwogdHlwZWRlZiBpbnRwdHJfdCBFR0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjZGQyNzgx
NzA0Mi4uZTRiYzM5MzU3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMjEgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBX
UEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVk
LgorICAgICAgICAqIHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oOgorCiAyMDE3LTA0
LTIwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBub3RGb3Vu
ZCBpbnRvIGl0cyBvd24gZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggY2E2MmEzZjUwZGYuLmUxZmMzYmVi
MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ0OCw2ICs0NDgsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTQ5
Miw3ICs0OTQsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYwOCw3
ICs2MTAsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzQ0LDcgKzc0Niw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTM1LDcgKzkzNyw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAwMiw3ICsxMDA0LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDUyLDExICsxMDU0LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTE5LDcgKzExMjEsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMTRlZjQzMmJjMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dSZWZQdHIuY3BwCisgICAgZ2xpYi9HTGliVXRpbGl0
aWVzLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQ1ZjEyY2JkNTA3Li5kZmI4YmE1YWZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTYsMTEgKzM5OTYsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MjUwNGQwNmM3Ni4uMzUyNWRlYjQ1NzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtZGV2
IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJr
aXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBFeGlzdGluZyBmaWxlcyBt
b3N0bHkgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0oV1BFKSBidWlsZCBndWFyZHMu
CisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBDaGFuZ2VMb2cgZW50
cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQ
bGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNo
ZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxp
dHlPYmplY3RXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nbGliL0F1ZGlvQnVzR0xpYi5jcHAuCisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICog
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9L
ZXlSU0EuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL3dwZS9FZGl0b3JXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgICogcGFnZS93cGUvRXZl
bnRIYW5kbGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1h
Z2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NYWluVGhy
ZWFkU2hhcmVkVGltZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAg
ICAgICogcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnku
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9PcGVuR0xFU1NoaW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
cGUvSWNvbldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUu
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBw
bGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVi
b2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVl
bldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAg
ICAqIHBsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Nj
cm9sbGJhclRoZW1lV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQ
RS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9UaGVtZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9UaGVtZVdQRS5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKwogMjAxNy0wNC0yMSAgVGltb3RoeSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIG9ic2N1
cmVkIGluc2V0cyB0byB3ZWIgY29udGVudCAoYXMgInNhZmUgYXJlYSBpbnNldHMiKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKaW5kZXggM2Y1NmYyZWE0Y2MuLjZlOWJhYjAxYTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9QbGF0Zm9ybVdQRS5j
bWFrZTogQWRkZWQuCisKIDIwMTctMDQtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNYWNdIEFsbG93IGN1c3RvbWl6aW5nIEgyNjQgZW5jb2RlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjc3NWMxODk4NGFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3Qo
QVBQRU5EIFBBTF9TT1VSQ0VTCisgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9EaWdlc3RHQ3J5cHQu
Y3BwCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5lNjM3OTVmNGNiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjg2IEBACitpbmNsdWRlKHBsYXRmb3Jt
L0dTdHJlYW1lci5jbWFrZSkKK2luY2x1ZGUocGxhdGZvcm0vSW1hZ2VEZWNvZGVycy5jbWFrZSkK
K2luY2x1ZGUocGxhdGZvcm0vTGludXguY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL1RleHR1cmVN
YXBwZXIuY21ha2UpCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICIke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9IgorICAgICIke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3RvciIKKyAgICAke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0KKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJz
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCisg
ICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29tcGlsZXIiCisgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9kZmciCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQiCisgICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9oZWFwIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGVidWdnZXIiCisgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRlcnByZXRlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2ppdCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2xsaW50IgorICAgICIke0pB
VkFTQ1JJUFRDT1JFX0RJUn0vcGFyc2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcHJv
ZmlsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lIgorICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0veWFyciIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvIgorICAg
ICIke1RISVJEUEFSVFlfRElSfS9BTkdMRS9pbmNsdWRlL0tIUiIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dseCIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9o
YXJmYnV6ei9uZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlIgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvaWN1IgorICAgICR7V1RG
X0RJUn0KKykKKworbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgYWNjZXNzaWJpbGl0
eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAKKyAgICBhY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3Np
YmlsaXR5T2JqZWN0V1BFLmNwcAorCisgICAgbG9hZGVyL3NvdXAvQ2FjaGVkUmF3UmVzb3VyY2VT
b3VwLmNwcAorICAgIGxvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKKworICAg
IHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
b29yZGluYXRlZEdyYXBoaWNzLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3Jh
cGhpY3MvU2Nyb2xsaW5nU3RhdGVOb2RlQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKworICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKKyAgICBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCisKKyAgICBwbGF0Zm9ybS9DdXJzb3IuY3BwCisgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25l
LmNwcAorICAgIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKyAgICBwbGF0Zm9ybS9U
aGVtZS5jcHAKKworICAgIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAorCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCisKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9JbXBsLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0Zsb2F0UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJm
YnV6ek5HLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05h
dGl2ZUltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVBhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9UcmFuc2Zvcm1hdGlvbk1hdHJpeENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAorCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1enou
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcAorCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5nLmNwcAor
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuY3Bw
CisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcAorCisg
ICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5j
cHAKKworICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKKyAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0NyZWRlbnRpYWxTdG9yYWdlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
RE5TU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1JlZlB0clNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5U2VydmVyU291cC5jcHAKKyAgICBwbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXNwb25zZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVy
Q2xpZW50U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvV2ViS2l0U291cFJlcXVl
c3RHZW5lcmljLmNwcAorCisgICAgcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAKKworICAgIHBsYXRmb3JtL3RleHQvSHlwaGVu
YXRpb24uY3BwCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCisgICAgcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRl
Y3RvcklDVS5jcHAKKworICAgICMgRklYTUU6IFNwbGl0IGJ1aWxkIHRhcmdlcnMgYmVsb3cgaW50
byBhIFdlYkNvcmVQbGF0Zm9ybSBsaWJyYXJ5CisgICAgZWRpdGluZy93cGUvRWRpdG9yV1BFLmNw
cAorCisgICAgcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ2xp
Yi9FdmVudExvb3BHbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3Bw
CisgICAgcGxhdGZvcm0vZ2xpYi9LZXllZERlY29kZXJHbGliLmNwcAorICAgIHBsYXRmb3JtL2ds
aWIvS2V5ZWRFbmNvZGVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL01haW5UaHJlYWRTaGFy
ZWRUaW1lckdMaWIuY3BwCisgICAgcGxhdGZvcm0vZ2xpYi9TaGFyZWRCdWZmZXJHbGliLmNwcAor
ICAgIHBsYXRmb3JtL2dsaWIvU1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wv
R0xDb250ZXh0RUdMV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0lj
b25XUEUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcAorCisgICAg
cGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKworICAgIHBsYXRmb3JtL3dwZS9DdXJzb3JX
UEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCisgICAgcGxh
dGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BF
LmNwcAorICAgIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKKyAgICBwbGF0Zm9y
bS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1l
V1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUv
VGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKKworICAgIHBsYXRm
b3JtL3hkZy9NSU1FVHlwZVJlZ2lzdHJ5WGRnLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X1VTRVJfQUdFTlRfU1RZTEVfU0hFRVRTCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmNzcworKQorCitzZXQoV2ViQ29yZV9VU0VSX0FH
RU5UX1NDUklQVFMKKyAgICAke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9qL21lZGlhQ29udHJv
bHNMb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYWNv
bnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCispCisKK3NldChXZWJDb3JlX1VTRVJfQUdFTlRf
U0NSSVBUU19ERVBFTkRFTkNJRVMgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0NBSVJP
X0xJQlJBUklFU30KKyAgICAke0VHTF9MSUJSQVJJRVN9CisgICAgJHtGT05UQ09ORklHX0xJQlJB
UklFU30KKyAgICAke0ZSRUVUWVBFMl9MSUJSQVJJRVN9CisgICAgJHtHTElCX0dJT19MSUJSQVJJ
RVN9CisgICAgJHtHTElCX0dNT0RVTEVfTElCUkFSSUVTfQorICAgICR7R0xJQl9HT0JKRUNUX0xJ
QlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R05VVExTX0xJQlJBUklFU30K
KyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0lDVV9MSUJSQVJJRVN9CisgICAgJHtM
SUJHQ1JZUFRfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9CisgICAgJHtMSUJY
TUwyX0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFSSUVTfQorICAgICR7U1FMSVRFX0xJ
QlJBUklFU30KKyAgICAke1dQRV9MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7RUdM
X0lOQ0xVREVfRElSU30KKyAgICAke0ZPTlRDT05GSUdfSU5DTFVERV9ESVJTfQorICAgICR7RlJF
RVRZUEUyX0lOQ0xVREVfRElSU30KKyAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7R05V
VExTX0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpaX0lOQ0xVREVfRElSU30KKyAgICAke0lD
VV9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJHQ1JZUFRfSU5DTFVERV9ESVJTfQorICAgICR7TElC
U09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7TElC
WFNMVF9JTkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURFX0RJUn0KKyAgICAke1dQRV9J
TkNMVURFX0RJUlN9CispCisKK2lmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKKyAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAK
KyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAorICAgICAgICBjcnlw
dG8vQ3J5cHRvS2V5LmNwcAorICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAgICAg
ICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAorCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DVFIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19HQ00uY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNE
U0EuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuY3Bw
CisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCisgICAg
ICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5jcHAKKyAgICAgICAg
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKKyAg
ICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUu
Y3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNw
cAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCisgICAgICAg
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKKyAgICAgICAgY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAorICAgICAgICBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCisKKyAgICAgICAgY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DRkJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1BRVNfR0NNR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0
L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1FQ0RIR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0
b0FsZ29yaXRobUVDRFNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0Fs
Z29yaXRobUhLREZHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3Jp
dGhtSE1BQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1Q
QktERjJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SU0FfT0FFUEdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SZWdpc3RyeUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9LZXlFQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlSU0FH
Q3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvU2VyaWFsaXplZENyeXB0b0tleVdyYXBH
Q3J5cHQuY3BwCisKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAorICAgICAg
ICBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHAKKyAgICAgICAgY3J5
cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleUVDLmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNw
cAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleVJhdy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFs
aXphdGlvblJhdy5jcHAKKyAgICApCitlbmRpZiAoKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDE1OWQ1Y2NjNDIyLi4z
MWEyMWZhYjgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKQEAgLTY2LDYgKzY2LDggQEAgdHlwZWRlZiBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbGlmIFBMQVRG
T1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogdHlwZWRlZiBz
dHJ1Y3QgX0F0a09iamVjdCBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKKyNlbGlmIFBMQVRG
T1JNKFdQRSkKK2NsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+IHsgfTsKICNlbHNlCiBjbGFzcyBBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbmRpZgpAQCAtMTExMSw2ICsxMTEzLDggQEAgcHJv
dGVjdGVkOgogICAgIENPTVB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93cmFwcGVy
OwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEF0a09iamVjdCogbV93cmFwcGVyOworI2VsaWYg
UExBVEZPUk0oV1BFKQorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93
cmFwcGVyOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4xNTQxNTk0YWRlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlEZXRhY2ht
ZW50VHlwZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZChOb2RlKiwgTm9kZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBlOTRjNTk5NGNhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVj
dFdQRS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2Fs
aWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1l
bnQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKaW5kZXgg
ZDVkNDNmZTRkZjQuLjE4MDk5MGViZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb25m
aWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaApAQCAtMTA0LDcgKzEwNCw3IEBACiAj
ZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oV1BFKQogI2RlZmluZSBVU0VfTkVXX1RIRU1FIDEKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAppbmRleCA0NDNhNjgyMTVhYi4uNGM3ZDAy
OThlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaApAQCAtMzYs
NyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0NFQ0NyeXB0b3IgKkNDRUNDcnlwdG9yUmVmOwog
dHlwZWRlZiBDQ0VDQ3J5cHRvclJlZiBQbGF0Zm9ybUVDS2V5OwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5X3Nl
eHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBnY3J5
X3NleHAqIFBsYXRmb3JtRUNLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlSU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVJTQS5oCmluZGV4IDMwNWJkNGM0M2EwLi40MWJjZTg1OWVhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwogdHlwZWRlZiBDQ1JTQUNyeXB0b3JS
ZWYgUGxhdGZvcm1SU0FLZXk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIC8vIGdjcnlfc2V4cCogZXF1YXRlcyBnY3J5X3Nl
eHBfdC4KIHN0cnVjdCBnY3J5X3NleHA7CiB0eXBlZGVmIGdjcnlfc2V4cCogUGxhdGZvcm1SU0FL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggM2MxNTdlZjZkODguLjA1ZTkxYmZm
MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xMjQ2LDEzICsxMjQ2LDEzIEBA
IHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rp
b24pCiAgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1
bWVudChkb2N1bWVudCgpKTsKIAogICAgICAgICBpZiAoaW1hZ2VFbGVtZW50KSB7Ci0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgICAgICB3cml0ZUltYWdlVG9QYXN0
ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgKmltYWdlRWxlbWVu
dCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1lbnQoKS50aXRsZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgqaW1h
Z2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgpLnRpdGxlKCkpOwogI2VuZGlm
CiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAg
ICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0
IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KQEAgLTEz
NzcsNyArMTM3Nyw3IEBAIHZvaWQgRWRpdG9yOjpjb3B5SW1hZ2UoY29uc3QgSGl0VGVzdFJlc3Vs
dCYgcmVzdWx0KQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICB1cmwgPSByZXN1bHQu
YWJzb2x1dGVJbWFnZVVSTCgpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICplbGVtZW50LCB1cmwsIHJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOwogI2Vs
c2UKICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgq
ZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0RGlzcGxheVN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDE2NTJiNmRiMzkzLi4zNmI5NmIyYmNlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCkBAIC00NjcsNyArNDY3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmlu
ZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVz
cGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJk
KFBhc3RlYm9hcmQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlSW1hZ2VUb1Bhc3Rl
Ym9hcmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmIGltYWdlRWxlbWVudCwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihQYXN0ZWJvYXJkV3Jp
dGVyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9y
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFmZmQyZGUxZTk4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9yV1BFLmNwcApAQCAtMCww
ICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIm1hcmt1cC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBhc3RlYm9hcmREYXRhKFBhc3RlYm9hcmQmIHBhc3Rl
Ym9hcmQsIEZyYW1lJiBmcmFtZSwgUmFuZ2UmIHJhbmdlLCBib29sIGFsbG93UGxhaW5UZXh0LCBi
b29sJiBjaG9zZVBsYWluVGV4dCkKK3sKKyAgICBjaG9zZVBsYWluVGV4dCA9IGZhbHNlOworCisg
ICAgVmVjdG9yPFN0cmluZz4gdHlwZXMgPSBwYXN0ZWJvYXJkLnR5cGVzKCk7CisgICAgaWYgKHR5
cGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAodHlwZXMu
Y29udGFpbnMoInRleHQvaHRtbDtjaGFyc2V0PXV0Zi04IikgJiYgZnJhbWUuZG9jdW1lbnQoKSkg
eworICAgICAgICBTdHJpbmcgbWFya3VwID0gcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L2h0
bWw7Y2hhcnNldD11dGYtOCIpOworICAgICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKCpmcmFtZS5kb2N1bWVudCgpLCBt
YXJrdXAsIGVtcHR5U3RyaW5nKCksIERpc2FsbG93U2NyaXB0aW5nQW5kUGx1Z2luQ29udGVudCkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIGlm
ICghYWxsb3dQbGFpblRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKHR5
cGVzLmNvbnRhaW5zKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkgeworICAgICAgICBjaG9z
ZVBsYWluVGV4dCA9IHRydWU7CisgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KHJhbmdlLCBwYXN0ZWJvYXJkLnJlYWRT
dHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIpKSkKKyAgICAgICAgICAgIHJldHVybiBm
cmFnbWVudC5yZWxlYXNlKCk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Zv
aWQgRWRpdG9yOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJv
YXJkKQoreworICAgIFBhc3RlYm9hcmRXZWJDb250ZW50IHBhc3RlYm9hcmRDb250ZW50OworICAg
IHBhc3RlYm9hcmRDb250ZW50LnRleHQgPSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsK
KyAgICBwYXN0ZWJvYXJkQ29udGVudC5tYXJrdXAgPSBjcmVhdGVNYXJrdXAoKnNlbGVjdGVkUmFu
Z2UoKSwgbnVsbHB0ciwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25M
b2NhbFVSTHMpOworICAgIHBhc3RlYm9hcmQud3JpdGUocGFzdGVib2FyZENvbnRlbnQpOworfQor
Cit2b2lkIEVkaXRvcjo6d3JpdGVJbWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgRWxlbWVu
dCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVi
b2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxv
Y2txdW90ZUhhbmRsaW5nKQoreworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJh
bmdlKCk7CisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBjaG9z
ZVBsYWluVGV4dDsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVh
dGVGcmFnbWVudEZyb21QYXN0ZWJvYXJkRGF0YSgqcGFzdGVib2FyZCwgbV9mcmFtZSwgKnJhbmdl
LCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHQpOworICAgIGlmIChmcmFnbWVudCAmJiBz
aG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6
UGFzdGVkKSkKKyAgICAgICAgcGFzdGVBc0ZyYWdtZW50KCpmcmFnbWVudCwgY2FuU21hcnRSZXBs
YWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgbWFpbEJsb2Nr
cXVvdGVIYW5kbGluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2OTU3Yzg3ODRmYy4uZWRlOTQwMTczOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYgd2luZG93UG9p
bnQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogCiBib29sIEV2ZW50SGFuZGxlcjo6
c2hvdWxkVHVyblZlcnRpY2FsVGlja3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4zZWRjZDg1ZDgzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorCisjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEV2ZW50SGFu
ZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEV2ZW50SGFu
ZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRGcmFt
ZSgmbV9mcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3du
RXZlbnRUb1dpZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhh
bmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChXaWRnZXQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIFdpZGdldCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFt
ZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFz
c01vdXNlTW92ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwg
RnJhbWUqLCBIaXRUZXN0UmVzdWx0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVu
dFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworT3B0aW9uU2V0PFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9k
aWZpZXI6OkFsdEtleTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNh
bFRpY2tzSW50b0hvcml6b250YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKaW5kZXggY2RjZjI2NWYyNjAu
LjVlOTExZDcwOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNzQsNiArNzQsOCBA
QCB1c2luZyBQbGF0Zm9ybUN1cnNvciA9IFJlZlB0cjxTaGFyZWRDdXJzb3I+OwogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBOU0N1cnNvciAqOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdka0N1cnNvcj47CisjZWxpZiBQTEFURk9STShXUEUpCit1
c2luZyBQbGF0Zm9ybUN1cnNvciA9IHZvaWQqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAppbmRleCAxOTU3MjFiMWZkYS4uZjM2M2ZhZjU1NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBTZWxlY3Rpb25EYXRhOwogfQogdHlwZWRlZiBXZWJDb3JlOjpT
ZWxlY3Rpb25EYXRhKiBEcmFnRGF0YVJlZjsKLSNlbGlmIFBMQVRGT1JNKElPUykKKyNlbGlmIFBM
QVRGT1JNKElPUykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGUzMjU1ZDE5YWQy
Li5jYmVmNzM4ZjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0lt
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTQxLDcg
KzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsKIE9CSkNfQ0xBU1Mg
TlNJbWFnZTsKICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyog
SEJJVE1BUDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjZW5kaWYKIApAQCAtNjQsNyAr
NjQsNyBAQCB0eXBlZGVmIFJldGFpblB0cjxDR0ltYWdlUmVmPiBEcmFnSW1hZ2VSZWY7CiB0eXBl
ZGVmIFJldGFpblB0cjxOU0ltYWdlPiBEcmFnSW1hZ2VSZWY7CiAjZWxpZiBQTEFURk9STShXSU4p
CiB0eXBlZGVmIEhCSVRNQVAgRHJhZ0ltYWdlUmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2Vs
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+IERyYWdJbWFnZVJlZjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3lzdGVtLmgKaW5kZXggZjEyNjhhNjhkMmQuLjFkMTIzNmFhN2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xOTgsNyArMTk4LDcgQEAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBmaWxlc0hhdmVTYW1lVm9sdW1lKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogUmV0
YWluUHRyPENGVVJMUmVmPiBwYXRoQXNVUkwoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIFN0cmlu
ZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJik7CiBDU3RyaW5nIGFwcGxpY2F0aW9u
RGlyZWN0b3J5UGF0aCgpOwogQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcAppbmRleCA3
NzhjYWMyZDk4Yi4uZGRhNjgyZWI4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcApAQCAtMzQsNyArMzQsNyBAQCBNYWluVGhyZWFk
U2hhcmVkVGltZXImIE1haW5UaHJlYWRTaGFyZWRUaW1lcjo6c2luZ2xldG9uKCkKICAgICByZXR1
cm4gaW5zdGFuY2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShXUEUpCiBNYWluVGhyZWFkU2hhcmVkVGltZXI6Ok1haW5UaHJlYWRTaGFy
ZWRUaW1lcigpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWlu
VGhyZWFkU2hhcmVkVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCmluZGV4IDU5MGY2ODk0YWQzLi40OTA3MzBmMTQzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjZW5kaWYKIApAQCAtNTQsNyArNTQs
NyBAQCBwcml2YXRlOgogICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lcigpOwogCiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fZmlyZWRGdW5jdGlvbjsKLSNpZiBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgUnVuTG9vcDo6VGltZXI8TWFpblRo
cmVhZFNoYXJlZFRpbWVyPiBtX3RpbWVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCmluZGV4IGI5NGQ3MGExZjZhLi45YzE0YmEyN2M5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtNjIsNyArNjIsNyBAQCBlbnVtIFNob3VsZFNlcmlh
bGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciB7IERlZmF1bHRTZWxlY3RlZFRleHRUeXBl
LCBJbmNsdQogLy8gRm9yIHdyaXRpbmcgdG8gdGhlIHBhc3RlYm9hcmQuIEdlbmVyYWxseSBzb3J0
ZWQgd2l0aCB0aGUgcmljaGVzdCBmb3JtYXRzIG9uIHRvcC4KIAogc3RydWN0IFBhc3RlYm9hcmRX
ZWJDb250ZW50IHsKLSNpZiAhKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSkKKyNpZiAh
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUpKQogICAgIFdF
QkNPUkVfRVhQT1JUIFBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
flBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZTsK
QEAgLTgwLDYgKzgwLDEwIEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7CiAgICAgU3Ry
aW5nIHRleHQ7CiAgICAgU3RyaW5nIG1hcmt1cDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICBTdHJpbmcgdGV4dDsKKyAgICBTdHJpbmcgbWFya3VwOworI2VuZGlmCiB9OwogCiBzdHJ1
Y3QgUGFzdGVib2FyZFVSTCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRT
dHJhdGVneS5oCmluZGV4IGU4OGE0ODkxMTgzLi45OWQ3NWY0ZWJiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKQEAgLTY5LDEwICs2OSwxOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSA9IDA7CiAgICAgdmlydHVhbCBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdmly
dHVhbCB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
Y29uc3QgU2VsZWN0aW9uRGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxTZWxlY3Rpb25EYXRh
PiByZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAj
ZW5kaWYgLy8gUExBVEZPUk0oR1RLKQorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwg
dm9pZCBnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpID0gMDsKKyAgICB2aXJ0dWFsIFN0
cmluZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNv
bnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRv
UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSA9
IDA7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflBhc3RlYm9hcmRTdHJhdGVn
eSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Q
YXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aAppbmRleCAzN2E3OTE4M2Y2Yy4uZjNlNDMwNDNlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCkBAIC00MCw2ICs0MCwxMCBAQCBPQkpDX0NMQVNT
IE5TUGFzdGVib2FyZDsKIE9CSkNfQ0xBU1MgVUlQYXN0ZWJvYXJkOwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQ7CisjZW5kaWYKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDb2xvcjsKQEAgLTUyLDcgKzU2LDcgQEAgc3RydWN0IFBhc3Rl
Ym9hcmRXZWJDb250ZW50OwogY2xhc3MgUGxhdGZvcm1QYXN0ZWJvYXJkIHsKIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKElPUykg
fHwgUExBVEZPUk0oV1BFKQogICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtUGFzdGVib2FyZCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lc0ZvckRhdGFJbnRl
cmFjdGlvbigpOwogI2VuZGlmCkBAIC0xMDUsNiArMTA5LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFU
Rk9STShHVEspCiAgICAgR3RrQ2xpcGJvYXJkKiBtX2NsaXBib2FyZDsKICNlbmRpZgorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQqIG1fcGFzdGVib2FyZDsKKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1l
UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3Bw
CmluZGV4IDViYWQzY2QwZDU2Li42NGUzNTYzOTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcApAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgVVJMU2NoZW1l
c01hcCYgc2VjdXJlU2NoZW1lcygpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJh
Ym91dCIpOwogICAgICAgICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgiZGF0YSIpOwogICAgICAg
ICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgid3NzIik7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBzZWN1cmVTY2hlbWVzLmdl
dCgpLmFkZCgicmVzb3VyY2UiKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKaW5kZXggNTViNDlhNGRkYzcuLjVkN2FhNDhhNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRn
ZXQuaApAQCAtNjEsNiArNjEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX0d0a0NvbnRhaW5lciBHdGtD
b250YWluZXI7CiB0eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1XaWRnZXQ7CisjZW5kaWYK
KwogdHlwZWRlZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBhZ2VDbGllbnQ7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2ds
aWIvQXVkaW9CdXNHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIv
QXVkaW9CdXNHTGliLmNwcAppbmRleCA3OTFiZmEzOTYzNi4uODE5NzViNjRhNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAK
QEAgLTI3LDExICsyNywxNyBAQAogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisjZGVmaW5l
IEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8iCisj
ZWxpZiBQTEFURk9STShXUEUpCisjZGVmaW5lIEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dl
YmtpdHdwZS9yZXNvdXJjZXMvYXVkaW8iCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29u
c3QgY2hhciogbmFtZSwgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICBHVW5pcXVlUHRyPGNoYXI+
IHBhdGgoZ19zdHJkdXBfcHJpbnRmKCIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8vJXMi
LCBuYW1lKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdfc3RyZHVwX3ByaW50ZihBVURJ
T19HUkVTT1VSQ0VfUEFUSCAiLyVzIiwgbmFtZSkpOwogICAgIEdSZWZQdHI8R0J5dGVzPiBkYXRh
ID0gYWRvcHRHUmVmKGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHBhdGguZ2V0KCksIEdfUkVTT1VS
Q0VfTE9PS1VQX0ZMQUdTX05PTkUsIG51bGxwdHIpKTsKICAgICBBU1NFUlQoZGF0YSk7CiAgICAg
cmV0dXJuIGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShnX2J5dGVzX2dldF9kYXRhKGRh
dGEuZ2V0KCksIG51bGxwdHIpLCBnX2J5dGVzX2dldF9zaXplKGRhdGEuZ2V0KCkpLCBmYWxzZSwg
c2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0Zp
bGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwCmluZGV4IDZmYTNlYTc3MWYzLi44M2QzMmUxMzhmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAgLTIxMyw2ICsyMTMs
OSBAQCBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQogICAgIGlmICghY2FjaGVkUGF0aC5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBhdGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJ
UiwgIndwZSIsIG51bGxwdHIpKTsKKyNlbGlmIFBMQVRGT1JNKEdUSykKICNpZiBPUyhXSU5ET1dT
KQogICAgIEhNT0RVTEUgaG1vZHVsZSA9IDA7CiAgICAgR2V0TW9kdWxlSGFuZGxlRXhBKEdFVF9N
T0RVTEVfSEFORExFX0VYX0ZMQUdfRlJPTV9BRERSRVNTLCByZWludGVycHJldF9jYXN0PGNoYXIq
PihzaGFyZWRSZXNvdXJjZXNQYXRoKSwgJmhtb2R1bGUpOwpAQCAtMjIyLDYgKzIyNSw3IEBAIENT
dHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAjZWxzZQogICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGRhdGFQYXRoKGdfYnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3ZWJraXRndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HLCBOVUxMKSk7CiAjZW5kaWYKKyNlbmRpZgogCiAgICAgY2Fj
aGVkUGF0aCA9IGRhdGFQYXRoLmdldCgpOwogICAgIHJldHVybiBjYWNoZWRQYXRoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
aW5kZXggOTExNGU3NmM3NTkuLjJhY2NmYWQxNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKQEAgLTM2LDcgKzM2LDcg
QEAKICNpbmNsdWRlIDxPcGVuR0wvZ2wuaD4KICNlbGlmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRl
ICJPcGVuR0xFU1NoaW1zLmgiCi0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICNpZiBVU0UoT1BFTkdMX0VTXzIpCiAjaW5jbHVkZSA8R0xF
UzIvZ2wyLmg+CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHAKaW5kZXggNzBmNTg3MzkyZjYuLmMxNWJlYzVlOWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTEyMCw3ICsxMjAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZVNoYXJpbmdD
b250ZXh0KFBsYXRmb3JtRGlzcGxheSYgZGlzcAogICAgIH0KICNlbmRpZgogCi0jaWYgVVNFKEVH
TCkgfHwgUExBVEZPUk0oV0FZTEFORCkKKyNpZiBVU0UoRUdMKSB8fCBQTEFURk9STShXQVlMQU5E
KSB8fCBQTEFURk9STShXUEUpCiAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVH
TDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoZGlzcGxheSkpCiAgICAgICAgIHJldHVybiBXVEZNb3Zl
KGVnbENvbnRleHQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dMQ29udGV4dC5oCmluZGV4IDJjMGVhMjdlMTkzLi4wNDY5ZWI1MzNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKQEAgLTI1LDcgKzI1LDEzIEBA
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIEZJWE1FOiBGaW5kIHNvbWUgd2F5IHRvIGRl
ZHVjZSB0aGlzLgorI2RlZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0u
aD4KKyNlbHNlCiAjaW5jbHVkZSAiZWdscGxhdGZvcm0uaCIKKyNlbmRpZgogdHlwZWRlZiBFR0xO
YXRpdmVXaW5kb3dUeXBlIEdMTmF0aXZlV2luZG93VHlwZTsKICNlbHNlCiB0eXBlZGVmIHVpbnQ2
NF90IEdMTmF0aXZlV2luZG93VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDdkODBkNWI0NWI0Li5iMmI3OTUy
NTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oCkBAIC02MCw3ICs2MCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogT0JKQ19DTEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwotI2VsaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pCisjZWxpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdJTl9DQUlSTykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgR0x1aW50OwogI2VuZGlmCiAKQEAgLTEzNzMsNyArMTM3Myw3IEBAIHByaXZhdGU6CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFwRm9yU2hhZGVy
czsKIAotI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pKSAmJiBVU0UoT1BFTkdM
X0VTXzIpKQorI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JN
KFdQRSkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMz
RE9wZW5HTEVTOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0xFUz4gbV9l
eHRlbnNpb25zOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL09wZW5HTEVTU2hpbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L09wZW5HTEVTU2hpbXMuaAppbmRleCBiNGU5NTE1NzIxNy4uYWI3YzZiOGYzOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKQEAgLTI2
LDcgKzI2LDcgQEAKICNpZm5kZWYgT3BlbkdMRVNTaGltc19oCiAjZGVmaW5lIE9wZW5HTEVTU2hp
bXNfaAogCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgZ2xCaW5kRnJh
bWVidWZmZXJFWFQgZ2xCaW5kRnJhbWVidWZmZXIKICNkZWZpbmUgZ2xGcmFtZWJ1ZmZlclRleHR1
cmUyREVYVCBnbEZyYW1lYnVmZmVyVGV4dHVyZTJECiAjZGVmaW5lIGdsQmluZFJlbmRlcmJ1ZmZl
ckVYVCBnbEJpbmRSZW5kZXJidWZmZXIKQEAgLTQ1LDYgKzQ1LDcgQEAKICNkZWZpbmUgZ2xJc0Zy
YW1lYnVmZmVyRVhUIGdsSXNGcmFtZWJ1ZmZlcgogI2RlZmluZSBnbEdlbmVyYXRlTWlwbWFwRVhU
IGdsR2VuZXJhdGVNaXBtYXAKICNkZWZpbmUgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQgR0xfREVQ
VEhfQVRUQUNITUVOVAorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMF9FWFQgR0xfQ09MT1Jf
QVRUQUNITUVOVDAKICNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfQ09NUExFVEVfRVhUIEdMX0ZSQU1F
QlVGRkVSX0NPTVBMRVRFCiAjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0VYVCBHTF9GUkFNRUJVRkZF
UgogI2RlZmluZSBHTF9ERVBUSDI0X1NURU5DSUw4X0VYVCBHTF9ERVBUSDI0X1NURU5DSUw4X09F
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAKaW5kZXggNjdlZmJjZWI4YjMuLjFiNzE5NTRmNTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTQy
LDYgKzQyLDEwIEBACiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V2luLmgiCiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNlbmRpZgpAQCAt
MTAwLDYgKzEwNCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9y
bURpc3BsYXk6OmNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UGxhdGZvcm1EaXNwbGF5WDExPihudWxscHRyKTsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVdQRT4o
KTsKKyNlbmRpZgorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
RGlzcGxheS5oCmluZGV4IGY3NjRjMmQ0NTFmLi5jYjVmYTFlZjMwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKQEAgLTU0LDYg
KzU0LDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgV2luZG93cywKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgV1BFLAorI2VuZGlmCiAgICAgfTsKIAog
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCAxYzFjZWMy
NmFjZi4uOWZlNzU1ZmM1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0yMDQsNiArMjA0LDEzIEBAIHN0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRl
eHQoUGxhdGZvcm1EaXNwbGF5CiAgICAgaWYgKGVnbEJpbmRBUEkoZ0VHTEFQSVZlcnNpb24pID09
IEVHTF9GQUxTRSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgaWYgKHBsYXRmb3JtRGlzcGxheS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBl
OjpXUEUpIHsKKyAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGNyZWF0ZVdQRUNvbnRleHQocGxh
dGZvcm1EaXNwbGF5KSkKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKyNlbmRp
ZgorCiAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlU3VyZmFjZWxlc3NDb250ZXh0KHBsYXRmb3Jt
RGlzcGxheSk7CiAgICAgaWYgKCFjb250ZXh0KSB7CiAjaWYgUExBVEZPUk0oWDExKQpAQCAtMjUx
LDYgKzI1OCw5IEBAIEdMQ29udGV4dEVHTDo6fkdMQ29udGV4dEVHTCgpCiAjaWYgUExBVEZPUk0o
V0FZTEFORCkKICAgICBkZXN0cm95V2F5bGFuZFdpbmRvdygpOwogI2VuZGlmCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIGRlc3Ryb3lXUEVUYXJnZXQoKTsKKyNlbmRpZgogfQogCiBib29sIEdMQ29u
dGV4dEVHTDo6Y2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCmluZGV4IGU1YTMz
NTk3ZDdiLi45YTAzM2ZlYjJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApAQCAtMzIsNiArMzIsMTAgQEAKIHN0cnVjdCB3
bF9lZ2xfd2luZG93OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5V1BFLmgiCisjZW5kaWYKKwogdHlwZWRlZiB2b2lkICpFR0xDb25maWc7CiB0
eXBlZGVmIHZvaWQgKkVHTENvbnRleHQ7CiB0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7CkBAIC03
Myw2ICs3Nyw5IEBAIHByaXZhdGU6CiAgICAgR0xDb250ZXh0RUdMKFBsYXRmb3JtRGlzcGxheSYs
IEVHTENvbnRleHQsIEVHTFN1cmZhY2UsIFdsVW5pcXVlUHRyPHN0cnVjdCB3bF9zdXJmYWNlPiYm
LCBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdyopOwogICAgIHZvaWQgZGVzdHJveVdheWxhbmRXaW5kb3co
KTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGRlc3Ryb3lXUEVUYXJnZXQo
KTsKKyNlbmRpZgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNy
ZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlLCBQbGF0Zm9ybURpc3BsYXkmLCBF
R0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVBidWZmZXJDb250ZXh0KFBsYXRmb3JtRGlzcGxh
eSYsIEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKQEAgLTg1LDYgKzkyLDkg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3Jl
YXRlV2F5bGFuZENvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29u
dGV4dCA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBFR0xTdXJmYWNlIGNyZWF0ZVdpbmRvd1N1cmZh
Y2VXYXlsYW5kKEVHTERpc3BsYXksIEVHTENvbmZpZywgR0xOYXRpdmVXaW5kb3dUeXBlKTsKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29u
dGV4dEVHTD4gY3JlYXRlV1BFQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNo
YXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CisjZW5kaWYKIAogICAgIHN0YXRpYyBib29sIGdldEVH
TENvbmZpZyhFR0xEaXNwbGF5LCBFR0xDb25maWcqLCBFR0xTdXJmYWNlVHlwZSk7CiAKQEAgLTk4
LDYgKzEwOCw5IEBAIHByaXZhdGU6CiAgICAgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+
IG1fd2xTdXJmYWNlOwogICAgIHN0cnVjdCB3bF9lZ2xfd2luZG93KiBtX3dsV2luZG93IHsgbnVs
bHB0ciB9OwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gbV93cGVUYXJnZXQ7CisjZW5k
aWYKICNpZiBVU0UoQ0FJUk8pCiAgICAgY2Fpcm9fZGV2aWNlX3QqIG1fY2Fpcm9EZXZpY2UgeyBu
dWxscHRyIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjlmM2Y0MmQ3NjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJH
TENvbnRleHRFR0wuaCIKKworI2lmIFVTRShFR0wpICYmIFBMQVRGT1JNKFdQRSkKKworI2luY2x1
ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlV1BFQ29udGV4dChQ
bGF0Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4
dCkKK3sKKyAgICBhdXRvIG9mZnNjcmVlblRhcmdldCA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxh
eVdQRT4ocGxhdGZvcm1EaXNwbGF5KS5jcmVhdGVFR0xPZmZzY3JlZW5UYXJnZXQoKTsKKyAgICBh
dXRvIGNvbnRleHQgPSBjcmVhdGVXaW5kb3dDb250ZXh0KG9mZnNjcmVlblRhcmdldC0+bmF0aXZl
V2luZG93KCksIHBsYXRmb3JtRGlzcGxheSwgc2hhcmluZ0NvbnRleHQpOworICAgIGlmIChjb250
ZXh0KQorICAgICAgICBjb250ZXh0LT5tX3dwZVRhcmdldCA9IFdURk1vdmUob2Zmc2NyZWVuVGFy
Z2V0KTsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKwordm9pZCBHTENvbnRleHRFR0w6OmRlc3Ry
b3lXUEVUYXJnZXQoKQoreworICAgIG1fd3BlVGFyZ2V0ID0gbnVsbHB0cjsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEVHTCkgJiYgUExBVEZPUk0oV1BFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CmluZGV4IDJiZjExZWExYmQ3Li4yOTE3MzQzNmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNTksNyArNTksOSBAQAog
I2VuZGlmCiAKICNpZiBVU0UoRUdMKQorI2lmICFQTEFURk9STShXUEUpCiAjaW5jbHVkZSAiR0xD
b250ZXh0RUdMLmgiCisjZW5kaWYKICNpbmNsdWRlIDxnc3QvZ2wvZWdsL2dzdGdsZGlzcGxheV9l
Z2wuaD4KICNlbmRpZgogCkBAIC02OSw2ICs3MSw4IEBACiAKICNpZiBQTEFURk9STShXQVlMQU5E
KQogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdheWxhbmQuaCIKKyNlbGlmIFBMQVRGT1JNKFdQ
RSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKICNlbmRpZgogCiAvLyBnc3RnbGFw
aS5oIG1heSBpbmNsdWRlIGVnbHBsYXRmb3JtLmggYW5kIGl0IGluY2x1ZGVzIFguaCwgd2hpY2gK
QEAgLTQzOSw2ICs0NDMsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjplbnN1cmVHc3RHTENvbnRleHQoKQogICAgICAgICAgICAgbV9nbERpc3BsYXkgPSBHU1RfR0xf
RElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXkoZG93bmNhc3Q8
UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgQVNTRVJUKGlzPFBsYXRmb3JtRGlz
cGxheVdQRT4oc2hhcmVkRGlzcGxheSkpOworICAgICAgICBtX2dsRGlzcGxheSA9IEdTVF9HTF9E
SVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQ
bGF0Zm9ybURpc3BsYXlXUEU+KHNoYXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOworI2VuZGlm
CisKICAgICAgICAgQVNTRVJUKG1fZ2xEaXNwbGF5KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IGM3YTBlYzdmMjUyLi4xMjY1
ZTAwMWQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24u
Y3BwCkBAIC0yMzYsNiArMjM2LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRl
eHR1cmUoKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaWYgVVNFKE9QRU5HTF9FU18y
KQorICAgIDo6Z2xGbHVzaCgpOworI2VuZGlmCiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9j
b21wb3NpdG9yVGV4dHVyZSk7CiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9pbnRlcm1lZGlh
dGVUZXh0dXJlKTsKICAgICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zi
byk7CkBAIC0zOTgsNyArNDAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tWYXJ5
aW5nc1BhY2tpbmcoUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXQKICAgICAgICAg
dmFyaWFibGVzLnB1c2hfYmFjayh2YXJ5aW5nU3ltYm9sKTsKIAogICAgIEdDM0RpbnQgbWF4VmFy
eWluZ1ZlY3RvcnMgPSAwOwotI2lmICFQTEFURk9STShJT1MpICYmICEoKFBMQVRGT1JNKFdJTikg
fHwgUExBVEZPUk0oR1RLKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAhUExBVEZPUk0oSU9T
KSAmJiAhKChQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkg
JiYgVVNFKE9QRU5HTF9FU18yKSkKICAgICBHQzNEaW50IG1heFZhcnlpbmdGbG9hdHMgPSAwOwog
ICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9NQVhfVkFSWUlOR19GTE9BVFMsICZtYXhWYXJ5aW5nRmxv
YXRzKTsKICAgICBtYXhWYXJ5aW5nVmVjdG9ycyA9IG1heFZhcnlpbmdGbG9hdHMgLyA0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kM2MzN2JkZjhhYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNw
cApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJY29uLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSWNvbjo6fkljb24oKQoreworfQorCit2b2lkIEljb246OnBh
aW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit7Cit9CisKK1JlZlB0cjxJ
Y29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWFhMzBhODU2NmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgi
CisKKyNpbmNsdWRlIDxjc3RkaW8+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRt
YXBJbWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SW1h
Z2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSkKK3sK
KyAgICBzdGQ6OmZwcmludGYoc3RkZXJyLCAiV0FSTklORzogdHJ5aW5nIHRvIGxvYWQgcGxhdGZv
cm0gcmVzb3VyY2UgJyVzJ1xuIiwgcmVzb3VyY2UpOworICAgIHJldHVybiBCaXRtYXBJbWFnZTo6
Y3JlYXRlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkNWJiMWQxZjQxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1Bs
YXRmb3JtRGlzcGxheVdQRS5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgiCisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRl
ICJHTENvbnRleHRFR0wuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8RUdML2Vn
bC5oPgorI2luY2x1ZGUgPHdwZS9yZW5kZXJlci1iYWNrZW5kLWVnbC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6UGxhdGZvcm1EaXNwbGF5V1BFKCkgPSBk
ZWZhdWx0OworCitQbGF0Zm9ybURpc3BsYXlXUEU6On5QbGF0Zm9ybURpc3BsYXlXUEUoKQorewor
ICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1EaXNwbGF5V1BFOjppbml0aWFsaXplKGludCBob3N0RmQpCit7CisgICAgbV9i
YWNrZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX2NyZWF0ZShob3N0RmQpOworCisgICAg
bV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheSh3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZ2V0
X25hdGl2ZV9kaXNwbGF5KG1fYmFja2VuZCkpOworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdM
X05PX0RJU1BMQVkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJQbGF0Zm9ybURpc3BsYXlX
UEU6IGNvdWxkIG5vdCBjcmVhdGUgdGhlIEVHTCBkaXNwbGF5LlxuIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCk7
Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gUGxh
dGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVu
dCwgaW50IGhvc3RGZCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxFR0xUYXJnZXQ+
KCp0aGlzLCBjbGllbnQsIGhvc3RGZCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURp
c3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gUGxhdGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVF
R0xPZmZzY3JlZW5UYXJnZXQoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTE9m
ZnNjcmVlblRhcmdldD4oKnRoaXMpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdl
dDo6RUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSwgUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQgaG9zdEZkKQorICAgIDog
bV9kaXNwbGF5KGRpc3BsYXkpCisgICAgLCBtX2NsaWVudChjbGllbnQpCit7CisgICAgbV9iYWNr
ZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jcmVhdGUoaG9zdEZkKTsKKwor
ICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jbGllbnQg
c19jbGllbnQgPSB7CisgICAgICAgIC8vIGZyYW1lX2NvbXBsZXRlCisgICAgICAgIFtdKHZvaWQq
IGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHN1cmZhY2UgPSAqcmVpbnRlcnBy
ZXRfY2FzdDxFR0xUYXJnZXQqPihkYXRhKTsKKyAgICAgICAgICAgIHN1cmZhY2UubV9jbGllbnQu
ZnJhbWVDb21wbGV0ZSgpOworICAgICAgICB9LAorICAgIH07CisgICAgd3BlX3JlbmRlcmVyX2Jh
Y2tlbmRfZWdsX3RhcmdldF9zZXRfY2xpZW50KG1fYmFja2VuZCwgJnNfY2xpZW50LCB0aGlzKTsK
K30KKworUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6On5FR0xUYXJnZXQoKQoreworICAg
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZGVzdHJveShtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0Ojppbml0aWFsaXplKGNvbnN0IElu
dFNpemUmIHNpemUpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9pbml0
aWFsaXplKG1fYmFja2VuZCwgbV9kaXNwbGF5Lm1fYmFja2VuZCwKKyAgICAgICAgc3RkOjptYXgo
MCwgc2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCitFR0xO
YXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpuYXRpdmVXaW5k
b3coKSBjb25zdAoreworICAgIHJldHVybiB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0
X2dldF9uYXRpdmVfd2luZG93KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5
V1BFOjpFR0xUYXJnZXQ6OnJlc2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9y
ZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfcmVzaXplKG1fYmFja2VuZCwgc3RkOjptYXgoMCwg
c2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCit2b2lkIFBs
YXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpmcmFtZVdpbGxSZW5kZXIoKQoreworICAgIHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZnJhbWVfd2lsbF9yZW5kZXIobV9iYWNrZW5k
KTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVSZW5kZXJl
ZCgpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV9yZW5kZXJl
ZChtX2JhY2tlbmQpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdl
dDo6RUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSkK
K3sKKyAgICBtX3RhcmdldCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2NyZWF0ZSgpOworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2luaXRpYWxpemUobV90YXJnZXQsIGRpc3BsYXkubV9iYWNrZW5kKTsKK30KKworUGxhdGZv
cm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ6On5FR0xPZmZzY3JlZW5UYXJnZXQoKQor
eworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2Rlc3Ryb3ko
bV90YXJnZXQpOworfQorCitFR0xOYXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6
RUdMT2Zmc2NyZWVuVGFyZ2V0OjpuYXRpdmVXaW5kb3coKSBjb25zdAoreworICAgIHJldHVybiB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRv
dyhtX3RhcmdldCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBM
QVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uM2Y4Y2ZkOTk4ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKQEAgLTAsMCArMSwx
MDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFBsYXRmb3JtRGlzcGxheVdQRV9oCisjZGVmaW5lIFBsYXRmb3JtRGlzcGxheVdQRV9oCisK
KyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKworI2Rl
ZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKworc3RydWN0IHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xf
dGFyZ2V0Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dDsKK2NsYXNzIEludFNp
emU7CisKK2NsYXNzIFBsYXRmb3JtRGlzcGxheVdQRSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybURp
c3BsYXkgeworcHVibGljOgorICAgIFBsYXRmb3JtRGlzcGxheVdQRSgpOworICAgIHZpcnR1YWwg
flBsYXRmb3JtRGlzcGxheVdQRSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKGludCk7CisKKyAg
ICBjbGFzcyBFR0xUYXJnZXQgeworICAgIHB1YmxpYzoKKyAgICAgICAgY2xhc3MgQ2xpZW50IHsK
KyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lQ29tcGxldGUo
KSA9IDA7CisgICAgICAgIH07CisKKyAgICAgICAgRUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlz
cGxheVdQRSYsIENsaWVudCYsIGludCk7CisgICAgICAgIH5FR0xUYXJnZXQoKTsKKworICAgICAg
ICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBFR0xOYXRpdmVXaW5k
b3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OworCisgICAgICAgIHZvaWQgcmVzaXplKGNvbnN0
IEludFNpemUmKTsKKworICAgICAgICB2b2lkIGZyYW1lV2lsbFJlbmRlcigpOworICAgICAgICB2
b2lkIGZyYW1lUmVuZGVyZWQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFBsYXRm
b3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OworICAgICAgICBDbGllbnQmIG1fY2xpZW50OworICAg
ICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldCogbV9iYWNrZW5kOwor
ICAgIH07CisKKyAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYpOworICAg
ICAgICB+RUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKKyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlw
ZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVjdCB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldCogbV90YXJnZXQ7CisgICAg
fTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUYXJnZXQ+IGNyZWF0ZUVHTFRhcmdldChFR0xU
YXJnZXQ6OkNsaWVudCYsIGludCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVHTE9mZnNjcmVlblRh
cmdldD4gY3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKK3ByaXZhdGU6CisgICAgVHlwZSB0
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXUEU7
IH0KKworICAgIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2wqIG1fYmFja2VuZDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19QTEFU
Rk9STV9ESVNQTEFZKFBsYXRmb3JtRGlzcGxheVdQRSwgV1BFKQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oV1BFKQorCisjZW5kaWYgLy8gUGxhdGZvcm1EaXNwbGF5V1BFX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmQ0ZGM5NTVmOTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ3Vyc29yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBDdXJz
b3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXpl
ZFN0cmluZ3NXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0
cmluZ3NXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NzVk
N2ZjNTJiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9M
b2NhbGl6ZWRTdHJpbmdzV1BFLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiX1NlYXJj
aCB0aGUgV2ViIik7Cit9CisKK1N0cmluZyB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlVuYWNjZXB0YWJsZSBUTFMgY2VydGlmaWNh
dGUiKTsKK30KKworU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7Cit9CisKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzc4MDA4M2ZkMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcApAQCAt
MCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgi
CisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmRTdHJh
dGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9h
cmQ+KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigp
OworfQorCitQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKK3sKK30KKworYm9vbCBQYXN0ZWJvYXJk
OjpoYXNEYXRhKCkKK3sKKyAgICAvLyBGSVhNRTogR2V0dGluZyB0aGUgbGlzdCBvZiB0eXBlcyBm
b3IgdGhpcyBpcyB3YXN0ZWZ1bC4gRG8gdGhpcyBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICBWZWN0
b3I8U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4gIXR5cGVzLmlzRW1wdHkoKTsK
K30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQoreworICAgIFZlY3RvcjxT
dHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+Z2V0VHlwZXModHlwZXMpOworICAgIHJldHVybiB0eXBlczsKK30KKworU3RyaW5nIFBh
c3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9t
UGFzdGVib2FyZCgwLCB0eXBlKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKHR5cGUs
IHRleHQpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKK3sKK30KKwordm9pZCBQYXN0
ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OnJl
YWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKK3sKKyAgICB0ZXh0LnRleHQgPSBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9tUGFzdGVi
b2FyZCgwLCAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Iik7Cit9CisKK3ZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkVVJMJiB1
cmwpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT53
cml0ZVRvUGFzdGVib2FyZCgidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IiwgdXJsLnVybC5zdHJp
bmcoKSk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVUcnVzdHdvcnRoeVdlYlVSTHNQYm9h
cmRUeXBlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJikKK3sKK30K
Kwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29u
dGVudCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PndyaXRlVG9QYXN0ZWJvYXJkKGNvbnRlbnQpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJv
YXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30K
KworYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZU1hcmt1cChjb25zdCBTdHJpbmcmKQorewor
fQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
U21hcnRSZXBsYWNlT3B0aW9uKQoreworICAgIHdyaXRlU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJz
ZXQ9dXRmLTgiLCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBhc3RlYm9hcmQo
Y29uc3QgUGFzdGVib2FyZCYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRX
UEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhNGYzOGUx
MWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJkc0Nv
bXBhdGliaWxpdHkpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKKyAgICBtX3R5
cGUgPSB0eXBlOworICAgIGlmIChiYWNrd2FyZHNDb21wYXRpYmlsaXR5KQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAg
ICAgIG1fdGV4dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5n
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKCk7Cisg
ICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAgICB9Cit9CisKK2Jvb2wgUGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlm
aWVyU3RhdGUoYm9vbCYsIGJvb2wmLCBib29sJiwgYm9vbCYpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0
Zm9ybVBhc3RlYm9hcmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtUGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjlmNDM0NmEwMjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtUGFz
dGVib2FyZC5oIgorI2luY2x1ZGUgPHdwZS9wYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworI2luY2x1ZGUg
PG1hcD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRm
b3JtUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0
ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30K
KworUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoKQorICAgIDogbV9wYXN0
ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9w
YXN0ZWJvYXJkKTsKK30KKwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmdldFR5cGVzKFZlY3Rv
cjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3Zl
Y3RvciBwYXN0ZWJvYXJkVHlwZXMgPSB7IG51bGxwdHIsIDAgfTsKKyAgICB3cGVfcGFzdGVib2Fy
ZF9nZXRfdHlwZXMobV9wYXN0ZWJvYXJkLCAmcGFzdGVib2FyZFR5cGVzKTsKKworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwYXN0ZWJvYXJkVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgYXV0byYgdHlwZVN0cmluZyA9IHBhc3RlYm9hcmRUeXBlcy5zdHJpbmdzW2ldOworICAgICAg
ICB0eXBlcy5hcHBlbmQoU3RyaW5nKHR5cGVTdHJpbmcuZGF0YSwgdHlwZVN0cmluZy5sZW5ndGgp
KTsKKyAgICB9CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfdmVjdG9yX2ZyZWUoJnBhc3Rl
Ym9hcmRUeXBlcyk7Cit9CisKK1N0cmluZyBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRTdHJpbmco
aW50LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0
cmluZyBzdHJpbmc7CisgICAgd3BlX3Bhc3RlYm9hcmRfZ2V0X3N0cmluZyhtX3Bhc3RlYm9hcmQs
IHR5cGUudXRmOCgpLmRhdGEoKSwgJnN0cmluZyk7CisKKyAgICBTdHJpbmcgcmV0dXJuVmFsdWUo
c3RyaW5nLmRhdGEsIHN0cmluZy5sZW5ndGgpOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X2ZyZWUoJnN0cmluZyk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQorCit2b2lkIFBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQp
Cit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgcGxhaW5UZXh0W10gPSAidGV4dC9wbGFpbjtjaGFy
c2V0PXV0Zi04IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBodG1sVGV4dFtdID0gInRleHQvaHRt
bDtjaGFyc2V0PXV0Zi04IjsKKworICAgIENTdHJpbmcgdGV4dFN0cmluZyA9IGNvbnRlbnQudGV4
dC51dGY4KCk7CisgICAgQ1N0cmluZyBtYXJrdXBTdHJpbmcgPSBjb250ZW50Lm1hcmt1cC51dGY4
KCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsK
KyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICAgICAgeyB7
IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJv
YXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCBwbGFpblRleHQsIHN0cmxlbihw
bGFpblRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNb
MF0uc3RyaW5nLCB0ZXh0U3RyaW5nLmRhdGEoKSwgdGV4dFN0cmluZy5sZW5ndGgoKSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzFdLnR5cGUsIGh0bWxUZXh0
LCBzdHJsZW4oaHRtbFRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6
ZSgmcGFpcnNbMV0uc3RyaW5nLCBtYXJrdXBTdHJpbmcuZGF0YSgpLCBtYXJrdXBTdHJpbmcubGVu
Z3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFp
cnMsIDIgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dyaXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7
CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0udHlwZSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBdLnN0cmluZyk7CisgICAgd3BlX3Bh
c3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzFdLnR5cGUpOworICAgIHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ19mcmVlKCZwYWlyc1sxXS5zdHJpbmcpOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVi
b2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sK
KyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAg
ICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9w
YXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCB0eXBlLnV0ZjgoKS5k
YXRhKCksIHR5cGUudXRmOCgpLmxlbmd0aCgpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdf
aW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCBzdHJpbmcudXRmOCgpLmRhdGEoKSwgc3RyaW5n
LnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAg
bWFwID0geyBwYWlycywgMSB9OworCisgICAgd3BlX3Bhc3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJv
YXJkLCAmbWFwKTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS50
eXBlKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmUwOGViN2RlOGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcApAQCAtMCwwICsxLDc0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorCisjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAyNDsKK30KKworaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdl
dCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gODsKK30KKworYm9vbCBz
Y3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2
NDApOworfQorCitGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDAp
OworfQorCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE5MDc1NzM0ZTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZVdQRS5oIgorCisjaW5jbHVk
ZSAiVXNlckFnZW50U2NyaXB0cy5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFJlbmRlclRoZW1lPiBSZW5k
ZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQoreworICAgIHN0YXRpYyBSZW5kZXJUaGVtZSYg
dGhlbWUgPSBSZW5kZXJUaGVtZVdQRTo6Y3JlYXRlKCkubGVha1JlZigpOworICAgIHJldHVybiB0
aGVtZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZVdQRTo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERl
c2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6ZXh0cmFE
ZWZhdWx0U3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCisjaWYgRU5B
QkxFKFZJREVPKQorU3RyaW5nIFJlbmRlclRoZW1lV1BFOjptZWRpYUNvbnRyb2xzU3R5bGVTaGVl
dCgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbChtZWRpYUNvbnRyb2xzQmFzZVVzZXJBZ2Vu
dFN0eWxlU2hlZXQpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNT
Y3JpcHQoKQoreworICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKKyAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNp
emVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQpKTsKKyAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRp
YUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKKyAgICByZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0
cmluZygpOworfQorI2VuZGlmCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xMjJhMDg5NzgwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBS
ZW5kZXJUaGVtZVdQRV9oCisjZGVmaW5lIFJlbmRlclRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBSZW5kZXJUaGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVt
ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW5kZXJUaGVtZT4gY3JlYXRlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbmRlclRoZW1lV1BFKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIFN0cmluZyBleHRyYURlZmF1bHRTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7Cisj
aWYgRU5BQkxFKFZJREVPKQorICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNo
ZWV0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1NjcmlwdCgp
IG92ZXJyaWRlOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVuZGVyVGhlbWVXUEUoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQs
IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlbmRlclRoZW1lV1BFX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjlmZTVkNGQ4NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVXUEUu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzQnV0dG9ucyhTY3JvbGxiYXImKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU2Nyb2xsYmFy
VGhlbWVXUEU6Omhhc1RodW1iKFNjcm9sbGJhciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6YmFja0J1
dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFy
VGhlbWVXUEU6OmZvcndhcmRCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVjdCgpOworfQor
CitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjp0cmFja1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK1Nj
cm9sbGJhclRoZW1lJiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKQoreworICAgIHN0YXRp
YyBTY3JvbGxiYXJUaGVtZVdQRSB0aGVtZTsKKyAgICByZXR1cm4gdGhlbWU7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dw
ZS9TY3JvbGxiYXJUaGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9s
bGJhclRoZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRk
OGIwMzE2ODYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1Njcm9sbGJhclRoZW1lV1BFLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcm9sbGJhclRoZW1lV1BF
X2gKKyNkZWZpbmUgU2Nyb2xsYmFyVGhlbWVXUEVfaAorCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWVDb21wb3NpdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJU
aGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZSB7CitwdWJsaWM6
CisgICAgU2Nyb2xsYmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U2Nyb2xs
YmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQnV0dG9ucyhT
Y3JvbGxiYXImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVGh1bWIoU2Nyb2xsYmFy
Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIEludFJlY3QgYmFja0J1dHRvblJlY3QoU2Nyb2xs
YmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEludFJlY3QgZm9yd2FyZEJ1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFy
UGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFJl
Y3QgdHJhY2tSZWN0KFNjcm9sbGJhciYsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTY3JvbGxiYXJUaGVt
ZVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTkxNDc3YTQ1OTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdW5kLmgiCisKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgc3lzdGVtQmVlcCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1YWQ5NzczZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcApAQCAtMCwwICsxLDE0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGhlbWVXUEUuaCIKKworI2luY2x1ZGUgIkNvbG9yLmgi
CisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1RoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VGhlbWVXUEU+IHRoZW1lOworICAgIHJldHVybiAmdGhlbWUuZ2V0KCk7Cit9CisKK0xlbmd0
aFNpemUgVGhlbWVXUEU6OmNvbnRyb2xTaXplKENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250Q2FzY2FkZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvcikgY29uc3QKK3sKKyAgICBpZiAoIXpvb21lZFNpemUud2lkdGguaXNJbnRyaW5z
aWNPckF1dG8oKSAmJiAhem9vbWVkU2l6ZS5oZWlnaHQuaXNJbnRyaW5zaWNPckF1dG8oKSkKKyAg
ICAgICAgcmV0dXJuIFRoZW1lOjpjb250cm9sU2l6ZShwYXJ0LCBmb250Q2FzY2FkZSwgem9vbWVk
U2l6ZSwgem9vbUZhY3Rvcik7CisKKyAgICBzd2l0Y2ggKHBhcnQpIHsKKyAgICBjYXNlIENoZWNr
Ym94UGFydDoKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcmV0dXJuIExlbmd0aFNpemUg
eyBMZW5ndGgoMTIsIEZpeGVkKSwgTGVuZ3RoKDEyLCBGaXhlZCkgfTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gVGhlbWU6OmNvbnRyb2xTaXplKHBh
cnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFjdG9yKTsKK30KKwordm9pZCBUaGVt
ZVdQRTo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQg
em9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCkKK3sKKyAgICBzd2l0Y2ggKHBh
cnQpIHsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICAgICAgcGFpbnRDaGVja2JveChzdGF0
ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcGFpbnRSYWRpbyhzdGF0ZXMsIGNvbnRleHQsIHpv
b21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB1c2hCdXR0
b25QYXJ0OgorICAgICAgICBwYWludEJ1dHRvbihzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3Qs
IHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50Q2hlY2tib3goQ29udHJvbFN0YXRl
cyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9v
bWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXplIGNvcm5lcigyLCAyKTsKKyAgICBGbG9hdFJv
dW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJlY3QsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIs
IGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAgIHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRl
ZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQigyMjQsIDIyNCwgMjI0
KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tl
VGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQs
IDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworCisgICAgaWYgKHN0YXRlcy5z
dGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0ZSkgeworICAgICAgICBhdXRvJiBy
ZWN0ID0gcm91bmRlZFJlY3QucmVjdCgpOworCisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7Cisg
ICAgICAgIGNoZWNrZXJQYXRoLm1vdmVUbyhGbG9hdFBvaW50KHJlY3QueCgpICsgMywgcmVjdC5t
YXhZKCkgLSAzKSk7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZExpbmVUbyhGbG9hdFBvaW50KHJl
Y3QubWF4WCgpIC0gMywgcmVjdC55KCkgKyAzKSk7CisKKyAgICAgICAgY29udGV4dC5zZXRTdHJv
a2VUaGlja25lc3MoMik7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig4
NCwgODQsIDg0KSk7CisgICAgICAgIGNvbnRleHQuc3Ryb2tlUGF0aChjaGVja2VyUGF0aCk7Cisg
ICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludFJhZGlvKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZEVsbGlwc2Uoem9vbWVkUmVjdCk7
CisKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihtYWtlUkdCKDIyNCwgMjI0LCAyMjQpKTsKKyAg
ICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25l
c3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsK
KyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisKKyAgICBpZiAoc3RhdGVzLnN0YXRlcygp
ICYgQ29udHJvbFN0YXRlczo6Q2hlY2tlZFN0YXRlKSB7CisgICAgICAgIEZsb2F0UmVjdCBjaGVj
a2VyUmVjdCA9IHpvb21lZFJlY3Q7CisgICAgICAgIGNoZWNrZXJSZWN0LmluZmxhdGUoLTMpOwor
CisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZEVsbGlw
c2UoY2hlY2tlclJlY3QpOworCisgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKG1ha2VSR0Io
ODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKGNoZWNrZXJQYXRoKTsKKyAg
ICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50QnV0dG9uKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3JuZXIoMiwgMik7CisgICAgRmxvYXRSb3VuZGVkUmVj
dCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBjb3JuZXIsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIp
OworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0KTsK
KworICAgIENvbG9yIGZpbGxDb2xvciA9IHN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6
OlByZXNzZWRTdGF0ZSA/IG1ha2VSR0IoMjQ0LCAyNDQsIDI0NCkgOiBtYWtlUkdCKDIyNCwgMjI0
LCAyMjQpOworICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGZpbGxDb2xvcik7CisgICAgY29udGV4
dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDEpOwor
ICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQsIDk0KSk7CisgICAgY29u
dGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kZjA4MWIzYTdhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUaGVtZVdQRV9o
CisjZGVmaW5lIFRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlRoZW1lLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVGhlbWVXUEUgOiBwdWJsaWMgVGhlbWUgeworcHVibGljOgorICAg
IFRoZW1lV1BFKCkgeyB9CisgICAgdmlydHVhbCB+VGhlbWVXUEUoKSB7IH0KKworICAgIHZpcnR1
YWwgTGVuZ3RoU2l6ZSBjb250cm9sU2l6ZShDb250cm9sUGFydCwgY29uc3QgRm9udENhc2NhZGUm
LCBjb25zdCBMZW5ndGhTaXplJiwgZmxvYXQpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVh
bCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxvYXQpIG92
ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZvaWQgcGFpbnRDaGVja2JveChDb250cm9sU3RhdGVz
JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworICAgIHZvaWQg
cGFpbnRSYWRpbyhDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgZmxvYXQpOworICAgIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYsIEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFRoZW1lV1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjYyZGYwY2M2YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2lkZ2V0LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKK3sK
KyAgICBpbml0KHdpZGdldCk7Cit9CisKK1dpZGdldDo6fldpZGdldCgpCit7CisgICAgQVNTRVJU
KCFwYXJlbnQoKSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNl
dEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fZnJhbWUgPSByZWN0Owor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ludFJlY3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZyYW1lOworfQorCit2b2lkIFdpZGdldDo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzaG93KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6aGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZmJlNGFhY2U5OGQuLjcyZjFmOWI5NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIw
MTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgd2Via2l0LWRldiB0aHJlYWQ6CisgICAgICAgIGh0dHBzOi8vbGlzdHMu
d2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8yMDE3LUFwcmlsLzAyODkyMy5odG1sCisK
KyAgICAgICAgRXhpc3RpbmcgZmlsZXMgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0o
V1BFKSBidWlsZCBndWFyZHMgb3Igb3RoZXIKKyAgICAgICAgV1BFLXNwZWNpZmljIGFkZGl0aW9u
cyAoZS5nLiBwYXN0ZWJvYXJkIHN1cHBvcnQpLgorICAgICAgICBJbi1maWxlIGNoYW5nZXMgcmVt
b3ZlZCBmcm9tIHRoaXMgQ2hhbmdlTG9nIGVudHJ5IGZvciBicmV2aXR5LgorCisgICAgICAgICog
UGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwOgorICAgICAgICAqIFBsYXRmb3Jt
V1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmct
aGVhZGVycy5wbDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICog
U2hhcmVkL0FQSS9jL3dwZS9XUEVXZWJLaXQuaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0FQ
SS9jL3dwZS9XS0Jhc2VXUEUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3Ro
cmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwOgorICAgICAgICAqIFNoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxv
b3AuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmg6CisgICAg
ICAgICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQu
aDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oOgorICAgICAgICAqIFNo
YXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAg
ICogU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJl
ZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL05hdGl2
ZVdlYlRvdWNoRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2
ZW50V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVh
SW5mby5oLgorICAgICAgICAqIFNoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNw
cDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tB
UElDYXN0V1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJl
YUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
d3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9Db21w
b3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0Nv
bXBvc2l0aW5nUnVuTG9vcC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGll
bnRJbXBsLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVy
ZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9TY3Jv
bGxHZXN0dXJlQ29udHJvbGxlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5j
cHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5z
cGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYXN0ZWJvYXJkUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHA6CisgICAgICAgICogVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHA6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd3Bl
L1dlYlByZWZlcmVuY2VzV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9v
cC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVu
dFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JD
bGllbnRXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGlu
Z01hbmFnZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01h
bmFnZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5m
by5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BF
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9y
VUlXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJ
bmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oLgorICAgICAgICAqIFdlYlByb2Nlc3Mvd3Bl
L1dlYlByb2Nlc3NNYWluV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViS2l0
MlByZWZpeC5oLgorICAgICAgICAqIGNvbmZpZy5oOgorICAgICAgICAqIHdwZS93cGUtd2Via2l0
LnBjLmluOiBBZGRlZC4KKwogMjAxNy0wNC0yMCAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxl
bkB5YW5kZXgucnU+CiAKICAgICAgICAgW2NtYWtlXSBEZWZpbmUgRk9SV0FSRElOR19IRUFERVJT
X0RJUiBpbiBXZWJLaXRGUyBhbmQgdXNlIGl0IGV2ZXJ5d2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAppbmRleCAxNDMyOWI5
Mzg5MS4uOGQxMDFjZjRmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHAKQEAgLTUxLDYgKzUxLDkgQEAgdm9pZCBHU29ja2V0
TW9uaXRvcjo6c3RhcnQoR1NvY2tldCogc29ja2V0LCBHSU9Db25kaXRpb24gY29uZGl0aW9uLCBS
dW5Mb29wJiBydW4KICAgICBnX3NvdXJjZV9zZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgIltXZWJL
aXRdIFNvY2tldCBtb25pdG9yIik7CiAgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
OwogICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3NvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRf
Y2FzdDxHU291cmNlRnVuYz4oc29ja2V0U291cmNlQ2FsbGJhY2spLCB0aGlzLCBudWxscHRyKTsK
KyNpZiBQTEFURk9STShXUEUpCisgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdl
dCgpLCBHX1BSSU9SSVRZX0hJR0ggKyAzMCk7CisjZW5kaWYKICAgICBnX3NvdXJjZV9hdHRhY2go
bV9zb3VyY2UuZ2V0KCksIHJ1bkxvb3AubWFpbkNvbnRleHQoKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg4NGYw
ZTRlZTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21h
a2UKQEAgLTAsMCArMSw0NzAgQEAKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJD
RVNfV0VCS0lUMl9ESVJ9KQorCitjb25maWd1cmVfZmlsZSh3cGUvd3BlLXdlYmtpdC5wYy5pbiAk
e0NNQUtFX0JJTkFSWV9ESVJ9L3dwZS13ZWJraXQucGMgQE9OTFkpCisKK2FkZF9kZWZpbml0aW9u
cygtRFdFQktJVDJfQ09NUElMQVRJT04pCisKK2FkZF9kZWZpbml0aW9ucygtRExJQkVYRUNESVI9
IiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iKQorCitzZXQoV2ViS2l0Ml9VU0VfUFJFRklYX0hFQURF
UiBPTikKKworYWRkX2N1c3RvbV90YXJnZXQod2Via2l0MndwZS1mb3J3YXJkaW5nLWhlYWRlcnMK
KyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dl
bmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCAtLWluY2x1ZGUtcGF0aCAke1dFQktJVDJfRElS
fSAtLW91dHB1dCAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlIC0tcGxh
dGZvcm0gc291cAorKQorCitzZXQoV0VCS0lUMl9FWFRSQV9ERVBFTkRFTkNJRVMKKyAgICB3ZWJr
aXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworKQorCitsaXN0KEFQUEVORCBXZWJQcm9jZXNzX1NP
VVJDRVMKKyAgICBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9XZWJQcm9jZXNzTWFpbi5jcHAK
KykKKworbGlzdChBUFBFTkQgTmV0d29ya1Byb2Nlc3NfU09VUkNFUworICAgIE5ldHdvcmtQcm9j
ZXNzL0VudHJ5UG9pbnQvdW5peC9OZXR3b3JrUHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQ
RU5EIERhdGFiYXNlUHJvY2Vzc19TT1VSQ0VTCisgICAgRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9p
bnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQy
X1NPVVJDRVMKKyAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9MZWdhY3lD
dXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAorCisgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlQ29kZXJzU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVEYXRhU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWxTb3VwLmNwcAorCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0
YVRhc2tTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWlu
U291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAK
KyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKKyAgICBOZXR3
b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKKworICAgIFBs
YXRmb3JtL2NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuY3BwCisK
KyAgICBQbGF0Zm9ybS9nbGliL01vZHVsZUdsaWIuY3BwCisKKyAgICBQbGF0Zm9ybS9JUEMvZ2xp
Yi9HU29ja2V0TW9uaXRvci5jcHAKKworICAgIFBsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRV
bml4LmNwcAorICAgIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorCisgICAg
UGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKyAgICBQbGF0Zm9ybS91bml4L1NoYXJlZE1l
bW9yeVVuaXguY3BwCisKKyAgICBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luQ29udHJvbGxlclBy
b3h5VW5peC5jcHAKKyAgICBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4
LmNwcAorICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzVW5peC5jcHAKKworICAg
IFNoYXJlZC9BUEkvYy9jYWlyby9XS0ltYWdlQ2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvQXV0aGVu
dGljYXRpb24vc291cC9BdXRoZW50aWNhdGlvbk1hbmFnZXJTb3VwLmNwcAorCisgICAgU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisgICAgU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorICAg
IFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1NpbXBsZVZpZXdwb3J0Q29udHJvbGxlci5jcHAK
KworICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21w
b3NpdGluZ1J1bkxvb3AuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L1RocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuY3BwCisKKyAgICBTaGFyZWQvUGx1Z2lucy9O
ZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwCisKKyAgICBTaGFyZWQvY2Fp
cm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvZ2xpYi9XZWJFcnJvcnNH
bGliLmNwcAorCisgICAgU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKwor
ICAgIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisgICAgU2hhcmVk
L3NvdXAvV2ViRXJyb3JzU291cC5jcHAKKworICAgIFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01h
aW4uY3BwCisKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCisg
ICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUv
TmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVs
RXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3Bw
CisgICAgU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5jcHAKKworICAgIFVJUHJvY2Vzcy9B
UEkvQy9jYWlyby9XS0ljb25EYXRhYmFzZUNhaXJvLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9D
L3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy93cGUv
V0tWaWV3LmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKKyAg
ICBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJ
L3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9X
UEVWaWV3LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCisKKyAg
ICBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAorICAgIFVJUHJvY2Vzcy9EZWZhdWx0VW5kb0Nv
bnRyb2xsZXIuY3BwCisgICAgVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZ05vbmUu
Y3BwCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAor
ICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisKKyAgICBV
SVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCisK
KyAgICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0U2VydmVyU291cC5j
cHAKKworICAgIFVJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcAor
CisgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorICAg
IFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKKworICAg
IFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorCisgICAgVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL3VuaXgvV2Vic2l0ZURhdGFTdG9yZVVuaXguY3BwCisKKyAgICBVSVByb2Nlc3Mv
Y2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL0lu
c3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9j
ZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlHU3RyZWFtZXIuY3BwCisKKyAgICBVSVByb2Nlc3Mv
bGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorCisgICAgVUlQcm9jZXNzL3NvdXAvV2Vi
Q29va2llTWFuYWdlclByb3h5U291cC5jcHAKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNz
UG9vbFNvdXAuY3BwCisKKyAgICBVSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcAorICAg
IFVJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dw
ZS9XZWJQYWdlUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJv
eHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKKyAgICBV
SVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9Db29r
aWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCisgICAgV2ViUHJvY2Vzcy9Db29raWVz
L3NvdXAvV2ViS2l0U291cENvb2tpZUphclNxbGl0ZS5jcHAKKworICAgIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvZ2xpYi9JbmplY3RlZEJ1bmRsZUdsaWIuY3BwCisKKyAgICBXZWJQcm9jZXNz
L01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAKKworICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorCisg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUu
Y3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BF
LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5j
cHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9BY2NlbGVyYXRlZFN1cmZhY2UuY3BwCisKKyAg
ICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9BcmVhQWxsb2NhdG9yLmNw
cAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5n
Q29vcmRpbmF0b3IuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAor
ICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNw
cAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNw
cAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwCisg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHAKKyAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2Vi
UGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKKworICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3Vw
UmVxdWVzdElucHV0U3RyZWFtLmNwcAorICAgIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291
cC5jcHAKKworICAgIFdlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcAorCisgICAg
IyBGSVhNRS1HV1NIQVJFOgorICAgIERhdGFiYXNlUHJvY2Vzcy9ndGsvRGF0YWJhc2VQcm9jZXNz
TWFpbkd0ay5jcHAKKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwor
ICAgIFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfREVSSVZFRF9TT1VSQ0VTCisgICAgJHtERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYwor
KQorCitzZXQoV2ViS2l0MlJlc291cmNlcworKQorCitpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAg
ICBsaXN0KEFQUEVORCBXZWJLaXQyUmVzb3VyY2VzCisgICAgICAgICIgICAgICAgIDxmaWxlIGFs
aWFzPVwiYXVkaW8vQ29tcG9zaXRlXCI+Q29tcG9zaXRlLndhdjwvZmlsZT5cbiIKKyAgICApCitl
bmRpZiAoKQorCitmaWxlKFdSSVRFICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJL
aXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLnhtbAorICAgICI8P3htbCB2ZXJzaW9uPTEuMCBl
bmNvZGluZz1VVEYtOD8+XG4iCisgICAgIjxncmVzb3VyY2VzPlxuIgorICAgICIgICAgPGdyZXNv
dXJjZSBwcmVmaXg9XCIvb3JnL3dlYmtpdHdwZS9yZXNvdXJjZXNcIj5cbiIKKyAgICAke1dlYktp
dDJSZXNvdXJjZXN9CisgICAgIiAgICA8L2dyZXNvdXJjZT5cbiIKKyAgICAiPC9ncmVzb3VyY2Vz
PlxuIgorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VS
Q0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLmMKKyAgICBE
RVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jl
c291cmNlQnVuZGxlLnhtbAorICAgIENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdl
bmVyYXRlIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vcmVzb3VyY2VzIC0tdGFyZ2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJf
RElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLmMgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVS
QkFUSU0KKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
IiR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0iCisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0i
CisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgorICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3Mv
dW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xz
L3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3Vw
IgorICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJ
VDJfRElSfS9OZXR3b3JrUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9y
bS9JUEMvZ2xpYiIKKyAgICAiJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vSVBDL3VuaXgiCisgICAg
IiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL2NsYXNzaWZpZXIiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9BUEkvYy93cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9zb3VwIgor
ICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL2NhaXJvIgorICAg
ICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQ
SS93cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvbGludXgiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvdW5peCIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwIgorICAgICIke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZSIKKyAgICAiJHtXVEZfRElSfS93dGYv
Z3RrLyIKKyAgICAiJHtXVEZfRElSfS93dGYvZ29iamVjdCIKKyAgICAiJHtXVEZfRElSfSIKKyAg
ICAke0NBSVJPX0lOQ0xVREVfRElSU30KKyAgICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtG
UkVFVFlQRTJfSU5DTFVERV9ESVJTfQorICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtH
U1RSRUFNRVJfSU5DTFVERV9ESVJTfQorICAgICR7SEFSRkJVWlpfSU5DTFVERV9ESVJTfQorICAg
ICR7TElCU09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCits
aXN0KEFQUEVORCBXZWJLaXQyX0xJQlJBUklFUworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAg
ICR7RlJFRVRZUEUyX0xJQlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R1NU
UkVBTUVSX0xJQlJBUklFU30KKyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0xJQlNP
VVBfTElCUkFSSUVTfQorICAgICR7V1BFX0xJQlJBUklFU30KKykKKworc2V0KEluc3BlY3RvckZp
bGVzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxp
emF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS8qLmh0bWwKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2Uv
Ki5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzLyouanMKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVn
LyouY3NzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9EZWJ1Zy8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yLyouY3NzCisgICAg
JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9F
eHRlcm5hbC9Db2RlTWlycm9yLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VTTGludC8qLmpzCisgICAgJHtD
TUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRl
cm5hbC9Fc3ByaW1hLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5wbmcKKyAgICAke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5z
dmcKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzLyouanMKKyAg
ICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Rlc3QvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzLyouanMKKyAgICAke0NNQUtFX1NP
VVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9y
bWF0dGVyLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90LyouanMKKykKKworZmlsZShHTE9C
IEluc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzCisgICAgJHtJbnNwZWN0b3JGaWxlc30KKykKKwor
IyBEZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZENvbW1hbmRzLmpzIGlzCisjIGV4cGVjdGVkIGluIERlcml2ZWRTb3VyY2VzL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvLgorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9V
VFBVVCAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCisgICAgREVQRU5EUyAke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5k
Q29tbWFuZHMuanMKKyAgICBDT01NQU5EIGNwICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRD
T1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcyAke0RFUklWRURf
U09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVj
dG9yQmFja2VuZENvbW1hbmRzLmpzCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQ
VVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3Vy
Y2VCdW5kbGUueG1sCisgICAgREVQRU5EUyAke0luc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzfQor
ICAgICAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgICAgICAgICAg
JHtUT09MU19ESVJ9L3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5
CisgICAgQ09NTUFORCAke1RPT0xTX0RJUn0vd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3Vy
Y2UtbWFuaWZlc3QucHkgLS1vdXRwdXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlf
RElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sICR7SW5zcGVjdG9yRmlsZXN9ICR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9J
bnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9t
X2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJ
Un0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VS
Q0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAg
IENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7
Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJIC0tc291cmNlZGlyPSR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0gLS10YXJnZXQ9JHtERVJJVkVEX1NPVVJD
RVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke0RFUklW
RURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54
bWwKKyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7
REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdSZXNv
dXJjZUJ1bmRsZS5jCisgICAgREVQRU5EUyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgICAgICAgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9mcm9udC1lbmQvaW5zcGVjdG9yUGFn
ZUluZGV4Lmh0bWwKKyAgICBDT01NQU5EIGdsaWItY29tcGlsZS1yZXNvdXJjZXMgLS1nZW5lcmF0
ZSAtLXNvdXJjZWRpcj0ke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2Zy
b250LWVuZCAtLXRhcmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dl
YktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElN
CispCisKK2xpc3QoQVBQRU5EIFdQRVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJD
RVMKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdS
ZXNvdXJjZUJ1bmRsZS5jCisgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElS
fS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKykKKworbGlzdChBUFBFTkQgV1BF
V2ViSW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJBUklFUworICAgICR7R0xJQl9HSU9fTElCUkFSSUVT
fQorKQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfSU5DTFVERV9ESVJF
Q1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CispCisKK2FkZF9saWJyYXJ5KFdQRVdl
Ykluc3BlY3RvclJlc291cmNlcyBTSEFSRUQgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVS
SVZFRF9TT1VSQ0VTfSkKK2FkZF9kZXBlbmRlbmNpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2Vz
IFdlYktpdDIpCit0YXJnZXRfbGlua19saWJyYXJpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2Vz
ICR7V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJBUklFU30pCit0YXJnZXRfaW5jbHVkZV9k
aXJlY3RvcmllcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgUFVCTElDICR7V1BFV2ViSW5zcGVj
dG9yUmVzb3VyY2VzX0lOQ0xVREVfRElSRUNUT1JJRVN9KQoraW5zdGFsbChUQVJHRVRTIFdQRVdl
Ykluc3BlY3RvclJlc291cmNlcyBERVNUSU5BVElPTiAiJHtMSUJfSU5TVEFMTF9ESVJ9IikKKwor
c2V0KFdQRV9JTlNUQUxMRURfV0VCS0lUX0hFQURFUlMKKyAgICAke1dFQktJVDJfRElSfS9TaGFy
ZWQvQVBJL2MvV0tBcnJheS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGF0YS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9T
aGFyZWQvQVBJL2MvV0tFdmVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dL
RmluZE9wdGlvbnMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0dlb21ldHJ5
LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tJbWFnZS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLTXV0YWJsZUFycmF5LmgKKyAgICAke1dFQktJVDJfRElS
fS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlRGljdGlvbmFyeS5oCisgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL1dLTnVtYmVyLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mv
V0tQYWdlTG9hZFR5cGVzLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQYWdl
VmlzaWJpbGl0eVR5cGVzLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZWN1
cml0eU9yaWdpblJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTdHJp
bmcuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1R5cGUuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VSTC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0FQSS9jL1dLVVJMUmVxdWVzdC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dL
VVJMUmVzcG9uc2UuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1Vz
ZXJDb250ZW50VVJMUGF0dGVybi5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dL
VXNlclNjcmlwdEluamVjdGlvblRpbWUuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQ
SS9jL3dwZS9XS0Jhc2VXUEUuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oCisgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tG
b3J3YXJkTGlzdEl0ZW0uaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaAorICAgICR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVm
LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlRnJhbWUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5pdGlhbGl6ZS5oCisgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3Bl
Y3Rvci5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlLmgKKyAgICAke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisg
ICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VCYW5uZXIuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaAorICAgICR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRWRpdG9yQ2xp
ZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VHcm91cC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlT3ZlcmxheS5oCisgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQ
b2xpY3lDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmgKKyAgICAke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50
LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUmFuZ2VIYW5kbGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCisKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmgKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RSZWYuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKKyAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVu
dC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dERvd25sb2Fk
Q2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SGlz
dG9yeUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dEluamVjdGVkQnVuZGxlQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb29r
aWVNYW5hZ2VyLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50
aWFsLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsVHlw
ZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmgKKyAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUluZm9SZWYuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmgKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5oCisgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlZi5oCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmgKKyAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbnRleHRNZW51Q2xpZW50LmgKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGaW5kQ2xpZW50LmgKKyAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRmluZE1hdGNoZXNDbGllbnQu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGb3JtQ2xpZW50LmgK
KyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5o
CisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUxvYWRlckNsaWVudC5o
CisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGll
bnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQb2xpY3lDbGll
bnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50cy5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5M
b2FkUG9saWN5LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlc1JlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0
YXRlUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyQ29udGVu
dENvbnRyb2xsZXJSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1Vz
ZXJTY3JpcHRSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdw
b3J0QXR0cmlidXRlcy5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLV2lu
ZG93RmVhdHVyZXNSZWYuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dw
ZS9XS1ZpZXcuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tD
b29raWVNYW5hZ2VyU291cC5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX1dF
QktJVF9IRUFERVJTfQorICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfSU5DTFVERURJ
Un0vd3BlLSR7V1BFX0FQSV9WRVJTSU9OfS9XUEUvV2ViS2l0IgorICAgIENPTVBPTkVOVCAiRGV2
ZWxvcG1lbnQiCispCisKK3NldChXUEVfSU5TVEFMTEVEX0hFQURFUlMKKyAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVf
SU5TVEFMTEVEX0hFQURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNM
VURFRElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJT059L1dQRSIKKyAgICBDT01QT05FTlQgIkRldmVs
b3BtZW50IgorKQorCitpbnN0YWxsKEZJTEVTICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtp
dC5wYworICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfS9wa2djb25maWci
CisgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIKKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIGIvU291cmNlL1dlYktp
dDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKaW5kZXggYjYxZGI3ODc3
NGEuLmE3ZDNhMGI2YjkyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVy
YXRlLWZvcndhcmRpbmctaGVhZGVycy5wbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dl
bmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbApAQCAtMzUsNyArMzUsNyBAQCB1c2UgRmlsZTo6
U3BlYzo6RnVuY3Rpb25zOwogdXNlIEdldG9wdDo6TG9uZzsKIAogbXkgJHNyY1Jvb3QgPSByZWFs
cGF0aChGaWxlOjpTcGVjLT5jYXRmaWxlKGRpcm5hbWUoYWJzX3BhdGgoJDApKSwgIi4uLy4uIikp
OwotbXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29hIiwgIkNvY29hIiwg
IkNvb3JkaW5hdGVkR3JhcGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMi
LCAic291cCIsICJ3aW4iKTsKK215IEBwbGF0Zm9ybVByZWZpeGVzID0gKCJjYSIsICJjZiIsICJj
b2NvYSIsICJDb2NvYSIsICJDb29yZGluYXRlZEdyYXBoaWNzIiwgImN1cmwiLCAiZWZsIiwgImd0
ayIsICJpb3MiLCAibWFjIiwgInNvdXAiLCAid2luIiwgIndwZSIpOwogbXkgQGZyYW1ld29ya3Mg
PSAoIkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiLCAiV2ViS2l0Iik7CiBteSBAc2tpcHBlZFBy
ZWZpeGVzOwogbXkgQGZyYW1ld29ya0hlYWRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKaW5kZXggMmU4ZmJmYmJlNWMuLjMzYTA2OTg4ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLQmFzZS5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0Jh
c2VNYWMuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRl
IDxXZWJLaXQvV0tCYXNlV1BFLmg+CisjZW5kaWYKKwogLyogV2ViS2l0MiBzaGFyZWQgdHlwZXMg
Ki8KIAogdHlwZWRlZiB1aW50MzJfdCBXS1R5cGVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2Mvd3BlL1dLQmFzZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5iNWVmMDYyMjAyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQmFzZVdQRV9oCisj
ZGVmaW5lIFdLQmFzZVdQRV9oCisKKyNpZm5kZWYgV0tCYXNlX2gKKyNlcnJvciAiUGxlYXNlICNp
bmNsdWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5k
aWYKKwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3KiBXS1ZpZXdSZWY7CisKKyNl
bmRpZiAvKiBXS0Jhc2VXUEVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL3dwZS9XUEVXZWJLaXQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUv
V1BFV2ViS2l0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlhODQx
MTdmNDVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dw
ZS9XUEVXZWJLaXQuaApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQRV9XZWJLaXRfaAorI2RlZmluZSBX
UEVfV2ViS2l0X2gKKworI2RlZmluZSBCVUlMRElOR19XUEVfXworCisjaW5jbHVkZSA8V2ViS2l0
L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4KKworLy8gRnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0L1dLQXJyYXkuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGF0YS5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0RpY3Rpb25hcnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tFcnJvclJlZi5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS0dlb21ldHJ5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTXV0YWJsZUFycmF5Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLTXV0YWJsZURpY3Rpb25hcnkuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tOdW1iZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tTZWN1cml0eU9yaWdpblJlZi5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1N0cmluZy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tVUkwuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlclNj
cmlwdEluamVjdGlvblRpbWUuaD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jLworI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5k
bGVGaWxlSGFuZGxlUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlRnJhbWUuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVIaXRUZXN0UmVzdWx0Lmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlSW5pdGlhbGl6ZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUluc3BlY3Rv
ci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCdW5kbGVOb2RlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVu
ZGxlUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VCYW5uZXIuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVu
ZGxlUGFnZUZvcm1DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlRnVsbFNj
cmVlbkNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VHcm91cC5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVQYWdlT3ZlcmxheS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VQ
b2xpY3lDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2Fk
Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVVJQ2xpZW50Lmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQnVuZGxlUmFuZ2VIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tC
dW5kbGVTY3JpcHRXb3JsZC5oPgorCisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQworI2luY2x1ZGUgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCYWNrRm9yd2FyZExpc3RSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tD
b250ZXh0Q29uZmlndXJhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHQuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tDcmVkZW50aWFsLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ3Jl
ZGVudGlhbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWUuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tGcmFtZUluZm9SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFtZVBvbGljeUxp
c3RlbmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLSGl0VGVzdFJlc3VsdC5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS05hdmlnYXRpb25BY3Rpb25SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZp
Z2F0aW9uRGF0YVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05hdmlnYXRpb25SZWYuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VHcm91
cC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQcmVm
ZXJlbmNlc1JlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1Nlc3Npb25TdGF0ZVJlZi5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS1VzZXJTY3JpcHRSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3Lmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLVmlld3BvcnRBdHRyaWJ1dGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
V2luZG93RmVhdHVyZXNSZWYuaD4KKworI2VuZGlmIC8vIFdQRV9XZWJLaXRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNw
cAppbmRleCA4YWNmNTA2OTIxMC4uMjI0Mzg4ZWVjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3Np
dGluZ1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCkBAIC03NSw3
ICs3NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV29ya1F1ZXVlUG9vbCgpCiAgICAgewot
I2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAg
ICAgICAgbV90aHJlYWRDb3VudExpbWl0ID0gMTsKICNlbHNlCiAgICAgICAgIG1fdGhyZWFkQ291
bnRMaW1pdCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaApp
bmRleCA4MTZkNDY3YjUxMC4uNjQ1ZDdiOTBkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGlu
Z1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKIAorI2luY2x1ZGUg
PGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvQ29u
ZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKaW5kZXgg
NTRkOTYwYjNkMGUuLjk2ZDI5NjZiZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3Np
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcApAQCAtNDMsMTIgKzQzLDEy
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVm
PFRocmVhZGVkQ29tcG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50JiBj
bGllbnQsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVp
bnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5j
LCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCitSZWY8VGhyZWFkZWRDb21w
b3NpdG9yPiBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgV2ViUGFn
ZSYgd2ViUGFnZSwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3Rv
ciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFt
ZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBUaHJlYWRlZENvbXBvc2l0b3IoY2xpZW50LCB2aWV3cG9ydFNpemUs
IHNjYWxlRmFjdG9yLCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFn
cykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRocmVhZGVkQ29tcG9zaXRvcihjbGllbnQs
IHdlYlBhZ2UsIHZpZXdwb3J0U2l6ZSwgc2NhbGVGYWN0b3IsIG5hdGl2ZVN1cmZhY2VIYW5kbGUs
IGRvRnJhbWVTeW5jLCBwYWludEZsYWdzKSk7CiB9CiAKLVRocmVhZGVkQ29tcG9zaXRvcjo6VGhy
ZWFkZWRDb21wb3NpdG9yKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNp
emUsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91
bGREb0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWlu
dEZsYWdzKQorVGhyZWFkZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBj
bGllbnQsIFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxv
YXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJh
bWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3Mp
CiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3ZpZXdwb3J0U2l6ZSh2aWV3cG9ydFNp
emUpCiAgICAgLCBtX3NjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKQpAQCAtNjQsMTMgKzY0LDIxIEBA
IFRocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYgY2xpZW50LCBj
b25zdCBJbnRTaXplJiB2aWV3cG9ydFNpCiAgICAgbV9jbGllbnRSZW5kZXJzTmV4dEZyYW1lLnN0
b3JlKGZhbHNlKTsKICAgICBtX2Nvb3JkaW5hdGVVcGRhdGVDb21wbGV0aW9uV2l0aENsaWVudC5z
dG9yZShmYWxzZSk7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV9jb21wb3NpdGluZ01hbmFn
ZXIuZXN0YWJsaXNoQ29ubmVjdGlvbih3ZWJQYWdlKTsKKyNlbmRpZgorCiAgICAgbV9jb21wb3Np
dGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXSB7CiAgICAgICAgIG1fc2NlbmUgPSBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lKHRoaXMpKTsKKyNpZiBQTEFURk9STShHVEspCiAgICAgICAgIGlmIChtX25h
dGl2ZVN1cmZhY2VIYW5kbGUpIHsKICAgICAgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOwogICAg
ICAgICAgICAgbV9zY2VuZS0+c2V0QWN0aXZlKHRydWUpOwogICAgICAgICB9IGVsc2UKICAgICAg
ICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZShmYWxzZSk7CisjZWxpZiBQTEFURk9STShXUEUpCisg
ICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKKyNlbmRpZgogICAgIH0pOwogfQogCkBA
IC04MSw2ICs4OSw4IEBAIFRocmVhZGVkQ29tcG9zaXRvcjo6flRocmVhZGVkQ29tcG9zaXRvcigp
CiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKIHsKICAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKKworI2lmIFBMQVRGT1JNKEdUSykKICAgICBBU1NFUlQobV9u
YXRpdmVTdXJmYWNlSGFuZGxlKTsKIAogICAgIG1fY29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRl
Q29udGV4dEZvcldpbmRvdyhyZWludGVycHJldF9jYXN0PEdMTmF0aXZlV2luZG93VHlwZT4obV9u
YXRpdmVTdXJmYWNlSGFuZGxlKSwgJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNv
bXBvc2l0aW5nKCkpOwpAQCAtOTEsNiArMTAxLDIyIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9y
OjpjcmVhdGVHTENvbnRleHQoKQogICAgICAgICBpZiAobV9jb250ZXh0LT5tYWtlQ29udGV4dEN1
cnJlbnQoKSkKICAgICAgICAgICAgIG1fY29udGV4dC0+c3dhcEludGVydmFsKDApOwogICAgIH0K
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIGF1dG8mIHBsYXRmb3JtRGlzcGxheSA9
IFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpOworICAgIFJFTEVBU0VfQVNTRVJUKGlz
PFBsYXRmb3JtRGlzcGxheVdQRT4ocGxhdGZvcm1EaXNwbGF5KSk7CisgICAgbV90YXJnZXQgPSBk
b3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkuY3JlYXRlRUdMVGFy
Z2V0KCp0aGlzLCBtX2NvbXBvc2l0aW5nTWFuYWdlci5yZWxlYXNlQ29ubmVjdGlvbkZkKCkpOwor
ICAgIEFTU0VSVChtX3RhcmdldCk7CisgICAgbV90YXJnZXQtPmluaXRpYWxpemUobV92aWV3cG9y
dFNpemUpOworCisgICAgbV9jb250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2lu
ZG93KG1fdGFyZ2V0LT5uYXRpdmVXaW5kb3coKSwgJnBsYXRmb3JtRGlzcGxheSk7CisgICAgaWYg
KCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9jb250ZXh0LT5tYWtl
Q29udGV4dEN1cnJlbnQoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCiB9CiAKIHZvaWQgVGhy
ZWFkZWRDb21wb3NpdG9yOjppbnZhbGlkYXRlKCkKQEAgLTEwMCwxNiArMTI2LDIzIEBAIHZvaWQg
VGhyZWFkZWRDb21wb3NpdG9yOjppbnZhbGlkYXRlKCkKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9v
cC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
IHsKICAgICAgICAgbV9zY2VuZS0+cHVyZ2VHTFJlc291cmNlcygpOwogICAgICAgICBtX2NvbnRl
eHQgPSBudWxscHRyOworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgbV90YXJnZXQgPSBudWxs
cHRyOworI2VuZGlmCiAgICAgICAgIG1fc2NlbmUgPSBudWxscHRyOwogICAgIH0pOwogI2lmIFVT
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgbV9kaXNwbGF5
UmVmcmVzaE1vbml0b3ItPmludmFsaWRhdGUoKTsKICNlbmRpZgogICAgIG1fY29tcG9zaXRpbmdS
dW5Mb29wID0gbnVsbHB0cjsKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExB
WV9NT05JVE9SKQorICAgIG1fZGlzcGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5k
bGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiB7CisjaWYgUExBVEZPUk0oR1RLKQog
ICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5zdG9wVXBkYXRlcygpOwogICAgIG1fY29tcG9zaXRp
bmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgaGFuZGxlXSB7CiAgICAgICAgIC8vIEEgbmV3IG5hdGl2ZSBoYW5kbGUgY2FuJ3Qg
YmUgc2V0IHdpdGhvdXQgZGVzdHJveWluZyB0aGUgcHJldmlvdXMgb25lIGZpcnN0IGlmIGFueS4K
QEAgLTEyMyw2ICsxNTYsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0TmF0aXZlU3Vy
ZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKICAgICAgICAgICAgIG1f
Y29udGV4dCA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lk
IFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0U2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUpCkBAIC0xNDYs
NiArMTgwLDEwIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXRWaWV3cG9ydFNpemUoY29u
c3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsCiB7CiAgICAgbV9jb21wb3NpdGlu
Z1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCB2aWV3cG9ydFNpemUsIHNjYWxlXSB7CiAgICAgICAgIG1fdmlld3BvcnRTaXplID0g
dmlld3BvcnRTaXplOworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgaWYgKG1fdGFyZ2V0KQor
ICAgICAgICAgICAgbV90YXJnZXQtPnJlc2l6ZSh2aWV3cG9ydFNpemUpOworI2VuZGlmCiAgICAg
ICAgIG1fc2NhbGVGYWN0b3IgPSBzY2FsZTsKICAgICAgICAgbV9uZWVkc1Jlc2l6ZSA9IHRydWU7
CiAgICAgICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5zY2hlZHVsZVVwZGF0ZSgpOwpAQCAtMTg5
LDkgKzIyNywxOCBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cmVuZGVyTGF5ZXJUcmVlKCkK
ICAgICBpZiAoIW1fc2NlbmUgfHwgIW1fc2NlbmUtPmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVy
bjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgY3Jl
YXRlR0xDb250ZXh0KCk7CisjZW5kaWYKKwogICAgIGlmICghbV9jb250ZXh0IHx8ICFtX2NvbnRl
eHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9S
TShXUEUpCisgICAgbV90YXJnZXQtPmZyYW1lV2lsbFJlbmRlcigpOworI2VuZGlmCisKICAgICBp
ZiAobV9uZWVkc1Jlc2l6ZSkgewogICAgICAgICBnbFZpZXdwb3J0KDAsIDAsIG1fdmlld3BvcnRT
aXplLndpZHRoKCksIG1fdmlld3BvcnRTaXplLmhlaWdodCgpKTsKICAgICAgICAgbV9uZWVkc1Jl
c2l6ZSA9IGZhbHNlOwpAQCAtMjExLDcgKzI1OCwxMyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRv
cjo6cmVuZGVyTGF5ZXJUcmVlKCkKIAogICAgIG1fY29udGV4dC0+c3dhcEJ1ZmZlcnMoKTsKIAor
I2lmIFBMQVRGT1JNKFdQRSkKKyAgICBtX3RhcmdldC0+ZnJhbWVSZW5kZXJlZCgpOworI2VuZGlm
CisKKyNpZiBQTEFURk9STShHVEspCiAgICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOworI2VuZGlm
CiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzY2VuZVVwZGF0ZUZpbmlzaGVkKCkKQEAg
LTI3MCw1ICszMjMsMzIgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNvb3JkaW5hdGVVcGRh
dGVDb21wbGV0aW9uV2l0aENsaWVudCgpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkK
K3N0YXRpYyB2b2lkIGRlYnVnVGhyZWFkZWRDb21wb3NpdG9yRlBTKCkKK3sKKyAgICBzdGF0aWMg
ZG91YmxlIGxhc3RUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZnJh
bWVDb3VudCA9IDA7CisKKyAgICBkb3VibGUgY3QgPSBjdXJyZW50VGltZSgpOworICAgIGZyYW1l
Q291bnQrKzsKKworICAgIGlmIChjdCAtIGxhc3RUaW1lID49IDUuMCkgeworICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIlRocmVhZGVkQ29tcG9zaXRvcjogZnJhbWUgY2FsbGJhY2tzICUuMmYgRlBT
XG4iLCBmcmFtZUNvdW50IC8gKGN0IC0gbGFzdFRpbWUpKTsKKyAgICAgICAgbGFzdFRpbWUgPSBj
dDsKKyAgICAgICAgZnJhbWVDb3VudCA9IDA7CisgICAgfQorfQorCit2b2lkIFRocmVhZGVkQ29t
cG9zaXRvcjo6ZnJhbWVDb21wbGV0ZSgpCit7CisgICAgQVNTRVJUKG1fY29tcG9zaXRpbmdSdW5M
b29wLT5pc0N1cnJlbnQoKSk7CisgICAgc3RhdGljIGJvb2wgcmVwb3J0RlBTID0gISFzdGQ6Omdl
dGVudigiV1BFX1RIUkVBREVEX0NPTVBPU0lUT1JfRlBTIik7CisgICAgaWYgKHJlcG9ydEZQUykK
KyAgICAgICAgZGVidWdUaHJlYWRlZENvbXBvc2l0b3JGUFMoKTsKKworICAgIHNjZW5lVXBkYXRl
RmluaXNoZWQoKTsKK30KKyNlbmRpZgorCiB9CiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTX1RIUkVBREVEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCmluZGV4IDY3OTU0YTA3YTQ2Li5lYjEyNDU5NzU2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhy
ZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENv
bXBvc2l0b3IuaApAQCAtNDIsNiArNDIsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvci5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAi
Q29tcG9zaXRpbmdNYW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXlX
UEUuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQ29vcmRpbmF0ZWRH
cmFwaGljc1N0YXRlOwogfQpAQCAtNTEsOCArNTYsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBj
bGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU7CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNz
U2NlbmVDbGllbnQ7CiBjbGFzcyBUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcjsKK2NsYXNz
IFdlYlBhZ2U7CiAKLWNsYXNzIFRocmVhZGVkQ29tcG9zaXRvciA6IHB1YmxpYyBDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmVDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRl
ZENvbXBvc2l0b3I+IHsKK2NsYXNzIFRocmVhZGVkQ29tcG9zaXRvciA6IHB1YmxpYyBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmVDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJl
YWRlZENvbXBvc2l0b3I+CisjaWYgUExBVEZPUk0oV1BFKQorICAgICwgcHVibGljIFdlYkNvcmU6
OlBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpDbGllbnQKKyNlbmRpZgorICAgIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRlZENvbXBvc2l0b3IpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNjQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAg
ICBlbnVtIGNsYXNzIFNob3VsZERvRnJhbWVTeW5jIHsgTm8sIFllcyB9OwogCi0gICAgc3RhdGlj
IFJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUg
PSAwLCBTaG91bGREb0ZyYW1lU3luYyA9IFNob3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6
OlRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgPSAwKTsKKyAgICBzdGF0aWMgUmVmPFRocmVhZGVk
Q29tcG9zaXRvcj4gY3JlYXRlKENsaWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUgPSAw
LCBTaG91bGREb0ZyYW1lU3luYyA9IFNob3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgPSAwKTsKICAgICB2aXJ0dWFsIH5UaHJlYWRlZENvbXBv
c2l0b3IoKTsKIAogICAgIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5n
KHVpbnQ2NF90KTsKQEAgLTg3LDEzICs5NywxOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0
ZToKLSAgICBUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91
bGREb0ZyYW1lU3luYywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyk7CisgICAg
VGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNo
b3VsZERvRnJhbWVTeW5jLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzKTsKIAog
ICAgIC8vIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudAogICAgIHZvaWQgcmVuZGVyTmV4
dEZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpIG92ZXJyaWRlOwog
ICAgIHZvaWQgY29tbWl0U2Nyb2xsT2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIG9mZnNldCkgb3ZlcnJpZGU7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAg
Ly8gV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V1BFOjpTdXJmYWNlOjpDbGllbnQKKyAgICB2b2lk
IGZyYW1lQ29tcGxldGUoKSBvdmVycmlkZTsKKyNlbmRpZgorCiAgICAgdm9pZCByZW5kZXJMYXll
clRyZWUoKTsKICAgICB2b2lkIHNjZW5lVXBkYXRlRmluaXNoZWQoKTsKIApAQCAtMTAxLDYgKzEx
NiwxMiBAQCBwcml2YXRlOgogCiAgICAgQ2xpZW50JiBtX2NsaWVudDsKICAgICBSZWZQdHI8Q29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lPiBtX3NjZW5lOworCisjaWYgUExBVEZPUk0oV1BFKQorICAg
IENvbXBvc2l0aW5nTWFuYWdlciBtX2NvbXBvc2l0aW5nTWFuYWdlcjsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ+IG1fdGFyZ2V0Owor
I2VuZGlmCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R0xDb250ZXh0PiBtX2NvbnRl
eHQ7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fdmlld3BvcnRTaXplOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCmluZGV4IDdmYzRkN2M0YjNmLi5hNDM1ZTE5YmI3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaApAQCAtMzQsNiArMzQsOCBA
QCBlbnVtIERyYXdpbmdBcmVhVHlwZSB7CiAgICAgRHJhd2luZ0FyZWFUeXBlVGlsZWRDb3JlQW5p
bWF0aW9uLAogI2VuZGlmCiAgICAgRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLAorI2Vs
aWYgUExBVEZPUk0oV1BFKQorICAgIERyYXdpbmdBcmVhVHlwZVdQRQogI2Vsc2UKICAgICBEcmF3
aW5nQXJlYVR5cGVJbXBsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudC5oCmluZGV4IGNiMWYxMThjODkyLi4xNGZkZGUyMjRlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC01MSw2
ICs1MSwxMCBAQCB0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKIE9CSkNfQ0xBU1Mg
V2ViRXZlbnQ7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRf
a2V5Ym9hcmRfZXZlbnQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5h
dGl2ZVdlYktleWJvYXJkRXZlbnQgOiBwdWJsaWMgV2ViS2V5Ym9hcmRFdmVudCB7CkBAIC02Miw2
ICs2Niw4IEBAIHB1YmxpYzoKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KEdka0V2ZW50Kiwg
Y29uc3QgV2ViQ29yZTo6Q29tcG9zaXRpb25SZXN1bHRzJiwgSW5wdXRNZXRob2RGaWx0ZXI6OkV2
ZW50RmFrZWRGb3JDb21wb3NpdGlvbiwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcyk7CiAjZWxp
ZiBQTEFURk9STShJT1MpCiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCg6OldlYkV2ZW50ICop
OworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCopOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpA
QCAtNzIsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Zha2VFdmVudEZvckNvbXBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9mYWtlRXZlbnRGb3JDb21wb3NpdGlvbjsgfQogI2VsaWYg
UExBVEZPUk0oSU9TKQogICAgIDo6V2ViRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1
cm4gbV9uYXRpdmVFdmVudC5nZXQoKTsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0
IHZvaWQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaApp
bmRleCA4OGNkMTQxMDkzOC4uMjgzZmMzMzQ5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L05hdGl2ZVdlYk1vdXNlRXZlbnQuaApAQCAtMzgsNiArMzgsMTAgQEAgT0JKQ19DTEFTUyBOU1Zp
ZXc7CiB0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oV1BFKQorc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50OworI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOYXRpdmVXZWJNb3VzZUV2ZW50IDogcHVibGljIFdl
Yk1vdXNlRXZlbnQgewpAQCAtNDcsNiArNTEsOCBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShH
VEspCiAgICAgTmF0aXZlV2ViTW91c2VFdmVudChjb25zdCBOYXRpdmVXZWJNb3VzZUV2ZW50Jik7
CiAgICAgTmF0aXZlV2ViTW91c2VFdmVudChHZGtFdmVudCosIGludCk7CisjZWxpZiBQTEFURk9S
TShXUEUpCisgICAgTmF0aXZlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBL
SVQpCkBAIC01NSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZl
RXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFU
Rk9STShJT1MpCiAgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAw
OyB9CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBj
b25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCmluZGV4IDExODEyNGNkZWJjLi44MmYz
YjI0ZDQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNo
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5o
CkBAIC0zNCw2ICszNCw4IEBACiBzdHJ1Y3QgX1VJV2ViVG91Y2hFdmVudDsKICNlbGlmIFBMQVRG
T1JNKEdUSykKICNpbmNsdWRlIDxXZWJDb3JlL0dVbmlxdWVQdHJHdGsuaD4KKyNlbGlmIFBMQVRG
T1JNKFdQRSkKKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTQ2LDYgKzQ4LDkgQEAgcHVibGljOgogICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQo
R2RrRXZlbnQqLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmKTsKICAgICBOYXRpdmVX
ZWJUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmKTsKICAgICBjb25zdCBHZGtF
dmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9
CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgTmF0aXZlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X3RvdWNoX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIGNvbnN0
IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBuYXRpdmVGYWxsYmFja1RvdWNoUG9p
bnQoKSBjb25zdCB7IHJldHVybiAmbV9mYWxsYmFja1RvdWNoUG9pbnQ7IH0KICNlbmRpZgogCiBw
cml2YXRlOgpAQCAtNTUsNiArNjAsOCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oR1RLKQog
ICAgIEdVbmlxdWVQdHI8R2RrRXZlbnQ+IG1fbmF0aXZlRXZlbnQ7CisjZWxpZiBQTEFURk9STShX
UEUpCisgICAgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcgbV9mYWxsYmFja1RvdWNo
UG9pbnQ7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
YXRpdmVXZWJXaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hl
ZWxFdmVudC5oCmluZGV4IDVkYjBiY2U4ZmViLi4xNWY5NTg2NzE3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCkBAIC0zOCw2ICszOCwxMCBAQCBPQkpD
X0NMQVNTIE5TVmlldzsKIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQ7CisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQgOiBw
dWJsaWMgV2ViV2hlZWxFdmVudCB7CkBAIC00Nyw2ICs1MSw4IEBAIHB1YmxpYzoKICNlbGlmIFBM
QVRGT1JNKEdUSykKICAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVs
RXZlbnQmKTsKICAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KEdka0V2ZW50Kik7CisjZWxpZiBQTEFU
Rk9STShXUEUpCisgICAgTmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNf
ZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBL
SVQpCkBAIC01NSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBHZGtFdmVudCogbmF0aXZlRXZlbnQo
KSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShJ
T1MpCiAgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAwOyB9Cisj
ZWxpZiBQTEFURk9STShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggNThhYWVjMzFmZTMuLjll
ZmNlZjI4ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcApAQCAtODMsMTEgKzgzLDE0IEBACiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1
ZGUgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JPdmVy
bGF5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWxlY3Rpb25SZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNl
bmRpZiAvLyBQTEFURk9STShJT1MpCiAKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQ
RSkKKyNpbmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KKyNlbmRpZgorCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0Lmg+CiAjZW5kaWYKQEAgLTE0NzQsNiArMTQ3NywyMyBAQCBib29sIEFy
Z3VtZW50Q29kZXI8UGFzdGVib2FyZEltYWdlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBh
c3RlYm9hcmRJbWFnZSYgcAogCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3ZvaWQgQXJn
dW1lbnRDb2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBlbmNvZGVyIDw8
IGNvbnRlbnQudGV4dDsKKyAgICBlbmNvZGVyIDw8IGNvbnRlbnQubWFya3VwOworfQorCitib29s
IEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShjb250ZW50LnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShjb250ZW50Lm1hcmt1cCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCisKIHZvaWQgQXJndW1l
bnRDb2RlcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBEaWN0YXRpb25BbHRlcm5hdGl2ZSYgZGljdGF0aW9uQWx0ZXJuYXRpdmUpCiB7CiAgICAg
ZW5jb2RlciA8PCBkaWN0YXRpb25BbHRlcm5hdGl2ZS5yYW5nZVN0YXJ0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDRhNjM2OWJhMjlmLi40
OTk3YTY0YWRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaApAQCAtMTMxLDYgKzEzMSwxMiBAQCBzdHJ1Y3QgU291cE5ldHdvcmtQcm94eVNldHRp
bmdzOwogfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCituYW1lc3BhY2UgV2ViQ29yZSB7
CitzdHJ1Y3QgUGFzdGVib2FyZFdlYkNvbnRlbnRzOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUo
Q09OVEVOVF9GSUxURVJJTkcpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb250ZW50Rmls
dGVyVW5ibG9ja0hhbmRsZXI7CkBAIC00MDgsNiArNDE0LDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzPiB7CiB9Owog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50PiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOworICAg
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRl
bnQmKTsKK307CisjZW5kaWYKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmUmKTsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9u
cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApp
bmRleCA3NTA2ZmFkOWQzYS4uMGIyOGMxNTdiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMzc2LDcgKzM3Niw3IEBACiAg
ICAgbWFjcm8oUGljdG9ncmFwaEZvbnRGYW1pbHksIHBpY3RvZ3JhcGhGb250RmFtaWx5LCBTdHJp
bmcsIFN0cmluZywgIkFwcGxlIENvbG9yIEVtb2ppIiwgIiIsICIiKSBcCiAgICAgXAogCi0jZWxp
ZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIAog
I2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRk9OVF9GQU1JTFlfUFJFRkVSRU5DRShtYWNybykgXAog
ICAgIG1hY3JvKFN0YW5kYXJkRm9udEZhbWlseSwgc3RhbmRhcmRGb250RmFtaWx5LCBTdHJpbmcs
IFN0cmluZywgIlRpbWVzIiwgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODY4M2I4MTJmM2IKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCkBA
IC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJk
RXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKKyAgICA6IFdlYktleWJvYXJk
RXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2ZW50KSkKK3sK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uYjRkOWQ0M2RlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKwor
I2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0
aXZlV2ViTW91c2VFdmVudDo6TmF0aXZlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3Bv
aW50ZXJfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYk1v
dXNlRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBkZXZp
Y2VTY2FsZUZhY3RvcikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMxNDE1MTU1Y2RmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50
V1BFLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVX
ZWJUb3VjaEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKQorICAgIDogV2ViVG91Y2hFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNo
RXZlbnQoZXZlbnQsIGRldmljZVNjYWxlRmFjdG9yKSkKKyAgICAsIG1fZmFsbGJhY2tUb3VjaFBv
aW50eyB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsLCAwLCAwLCAwLCAwIH0KK3sKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytp
KSB7CisgICAgICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAg
ICBpZiAocG9pbnQudHlwZSAhPSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKSB7Cisg
ICAgICAgICAgICBtX2ZhbGxiYWNrVG91Y2hQb2ludCA9IHBvaW50OworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhOTYyZWQ0ZGNjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2
ZW50V1BFLmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRp
dmVXZWJXaGVlbEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2lu
Y2x1ZGUgPGNzdGRpbz4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYldoZWVsRXZl
bnQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVu
dCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCisgICAgOiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50
RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDg3YTkyN2FiYjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5jcHAKQEAg
LTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEg
TW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBhdGguaCIKKwor
I2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFN0cmluZyBnZXRFeGVjdXRhYmxlUGF0
aCgpCit7CisgICAgQ1N0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEN1cnJlbnRFeGVjdXRhYmxl
UGF0aCgpOworICAgIGlmICghZXhlY3V0YWJsZVBhdGguaXNOdWxsKCkpCisgICAgICAgIHJldHVy
biBkaXJlY3RvcnlOYW1lKHN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0
YWJsZVBhdGguZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMgU3Ry
aW5nIGZpbmRXZWJLaXRQcm9jZXNzKGNvbnN0IGNoYXIqIHByb2Nlc3NOYW1lKQoreworICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBleGVjRGlyZWN0b3J5ID0gZ19nZXRlbnYoIldFQktJVF9FWEVDX1BB
VEgiKTsKKyAgICBpZiAoZXhlY0RpcmVjdG9yeSkgeworICAgICAgICBTdHJpbmcgcHJvY2Vzc1Bh
dGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihleGVjRGlyZWN0b3J5KSwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4
aXN0cyhwcm9jZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAg
fQorCisgICAgc3RhdGljIFN0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEV4ZWN1dGFibGVQYXRo
KCk7CisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwoKSkgeworICAgICAgICBTdHJpbmcg
cHJvY2Vzc1BhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZXhlY3V0YWJsZVBhdGgsIHBy
b2Nlc3NOYW1lKTsKKyAgICAgICAgaWYgKGZpbGVFeGlzdHMocHJvY2Vzc1BhdGgpKQorICAgICAg
ICAgICAgcmV0dXJuIHByb2Nlc3NQYXRoOworICAgIH0KKworICAgIHJldHVybiBwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihMSUJFWEVD
RElSKSwgcHJvY2Vzc05hbWUpOworfQorCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nl
c3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFV2ViUHJvY2VzcyIpOwor
fQorCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKQoreworICAgIHJldHVy
biBmaW5kV2ViS2l0UHJvY2VzcygiV1BFUGx1Z2luUHJvY2VzcyIpOworfQorCitTdHJpbmcgZXhl
Y3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCkKK3sKKyAgICByZXR1cm4gZmluZFdlYktpdFBy
b2Nlc3MoIldQRU5ldHdvcmtQcm9jZXNzIik7Cit9CisKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJP
Q0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCkKK3sKKyAgICBy
ZXR1cm4gZmluZFdlYktpdFByb2Nlc3MoIldQRURhdGFiYXNlUHJvY2VzcyIpOworfQorI2VuZGlm
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9X
ZWJFdmVudEZhY3RvcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li43ODg3YTlmOGFjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93
cGUvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGlj
IFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9r
ZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAg
ICB1bnNpZ25lZCBldmVudE1vZGlmaWVycyA9IGV2ZW50LT5tb2RpZmllcnM7CisKKyAgICBpZiAo
ZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfY29udHJvbCkKKyAg
ICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpDb250cm9sS2V5OworICAgIGlmIChldmVudE1v
ZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9zaGlmdCkKKyAgICAgICAgbW9k
aWZpZXJzIHw9IFdlYkV2ZW50OjpTaGlmdEtleTsKKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3
cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfYWx0KQorICAgICAgICBtb2RpZmllcnMgfD0gV2Vi
RXZlbnQ6OkFsdEtleTsKKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5wdXRfa2V5Ym9h
cmRfbW9kaWZpZXJfbWV0YSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5
OworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVy
cyk7Cit9CisKK3N0YXRpYyBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nRm9yS2V5RXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgY29uc3QgY2hh
ciogc2luZ2xlQ2hhcmFjdGVyID0gd3BlX2lucHV0X3NpbmdsZV9jaGFyYWN0ZXJfZm9yX2tleV9l
dmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KTsKKyAgICBp
ZiAoc2luZ2xlQ2hhcmFjdGVyKQorICAgICAgICByZXR1cm4gU3RyaW5nKHNpbmdsZUNoYXJhY3Rl
cik7CisKKyAgICBnbG9uZyBsZW5ndGg7CisgICAgR1VuaXF1ZVB0cjxndW5pY2hhcjI+IHVjaGFy
MTYoZ191Y3M0X3RvX3V0ZjE2KCZldmVudC0+dW5pY29kZSwgMSwgMCwgJmxlbmd0aCwgbnVsbHB0
cikpOworICAgIGlmICh1Y2hhcjE2KQorICAgICAgICByZXR1cm4gU3RyaW5nKHVjaGFyMTYuZ2V0
KCkpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworc3RhdGljIFN0cmluZyBpZGVudGlmaWVy
U3RyaW5nRm9yS2V5RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQp
Cit7CisgICAgY29uc3QgY2hhciogaWRlbnRpZmllciA9IHdwZV9pbnB1dF9pZGVudGlmaWVyX2Zv
cl9rZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCk7
CisgICAgaWYgKGlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoaWRlbnRpZmllcik7
CisKKyAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIlUrJTA0WCIsIGV2ZW50LT51bmljb2RlKTsK
K30KKworV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJk
RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgU3Ry
aW5nIHNpbmdsZUNoYXJhY3RlclN0cmluZyA9IHNpbmdsZUNoYXJhY3RlclN0cmluZ0ZvcktleUV2
ZW50KGV2ZW50KTsKKyAgICBTdHJpbmcgaWRlbnRpZmllclN0cmluZyA9IGlkZW50aWZpZXJTdHJp
bmdGb3JLZXlFdmVudChldmVudCk7CisKKyAgICByZXR1cm4gV2ViS2V5Ym9hcmRFdmVudChldmVu
dC0+cHJlc3NlZCA/IFdlYkV2ZW50OjpLZXlEb3duIDogV2ViRXZlbnQ6OktleVVwLAorICAgICAg
ICBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIHNpbmdsZUNoYXJhY3RlclN0cmluZywgaWRlbnRpZmll
clN0cmluZywKKyAgICAgICAgd3BlX2lucHV0X3dpbmRvd3Nfa2V5X2NvZGVfZm9yX2tleV9ldmVu
dCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KSwKKyAgICAgICAg
ZXZlbnQtPmtleUNvZGUsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgICAgIG1vZGlmaWVy
c0ZvckV2ZW50KGV2ZW50KSwgZXZlbnQtPnRpbWUpOworfQorCitXZWJNb3VzZUV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICBXZWJFdmVudDo6
VHlwZSB0eXBlID0gV2ViRXZlbnQ6Ok5vVHlwZTsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7
CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAg
dHlwZSA9IFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3Bl
X2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b246CisgICAgICAgIHR5cGUgPSBldmVudC0+
c3RhdGUgPyBXZWJFdmVudDo6TW91c2VEb3duIDogV2ViRXZlbnQ6Ok1vdXNlVXA7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsOgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBXZWJNb3VzZUV2ZW50OjpC
dXR0b24gYnV0dG9uID0gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgc3dpdGNoIChldmVu
dC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9tb3Rpb246
CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAgICAg
aWYgKGV2ZW50LT5idXR0b24gPT0gMSkKKyAgICAgICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZl
bnQ6OkxlZnRCdXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMikKKyAg
ICAgICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOworICAgICAgICBl
bHNlIGlmIChldmVudC0+YnV0dG9uID09IDMpCisgICAgICAgICAgICBidXR0b24gPSBXZWJNb3Vz
ZUV2ZW50OjpNaWRkbGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0
X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICB9CisKKyAgICB1bnNpZ25lZCBjbGlja0NvdW50ID0gKHR5cGUgPT0gV2ViRXZlbnQ6Ok1v
dXNlRG93bikgPyAxIDogMDsKKworICAgIC8vIEZJWE1FOiBQcm9wZXIgYnV0dG9uIHN1cHBvcnQu
IE1vZGlmaWVycy4gZGVsdGFYL1kvWi4gQ2xpY2sgY291bnQuCisgICAgV2ViQ29yZTo6SW50UG9p
bnQgcG9zaXRpb24oZXZlbnQtPngsIGV2ZW50LT55KTsKKyAgICBwb3NpdGlvbi5zY2FsZSgxIC8g
ZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRv
biwgcG9zaXRpb24sIHBvc2l0aW9uLAorICAgICAgICAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0
aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworfQorCitXZWJX
aGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhcmQtY29kZSB0aGlzLgorICAgIGVudW0gQXhpcyB7
CisgICAgICAgIFZlcnRpY2FsLAorICAgICAgICBIb3Jpem9udGFsLAorICAgICAgICBTbW9vdGgK
KyAgICB9OworCisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHdoZWVsVGlja3M7CisgICAgV2ViQ29y
ZTo6RmxvYXRTaXplIGRlbHRhOworICAgIHN3aXRjaCAoZXZlbnQtPmF4aXMpIHsKKyAgICBjYXNl
IFZlcnRpY2FsOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2
ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSkpOworICAgICAgICBkZWx0YSA9IHdo
ZWVsVGlja3M7CisgICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4ZWxz
UGVyTGluZVN0ZXAoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSG9yaXpvbnRhbDoKKyAg
ICAgICAgd2hlZWxUaWNrcyA9IFdlYkNvcmU6OkZsb2F0U2l6ZShldmVudC0+dmFsdWUgLyBzdGQ6
OmFicyhldmVudC0+dmFsdWUpLCAwKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAg
ICAgICBkZWx0YS5zY2FsZShXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNtb290aDoKKyAgICAgICAgd2hlZWxUaWNrcyA9
IFdlYkNvcmU6OkZsb2F0U2l6ZSgwLCBldmVudC0+dmFsdWUgLyBkZXZpY2VTY2FsZUZhY3Rvcik7
CisgICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9OworCisgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRp
b24oZXZlbnQtPngsIGV2ZW50LT55KTsKKyAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2Nh
bGVGYWN0b3IpOworICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgcG9z
aXRpb24sIHBvc2l0aW9uLAorICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVu
dDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmll
cnM+KDApLCBldmVudC0+dGltZSk7Cit9CisKK3N0YXRpYyBXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlRm9yVG91Y2hQb2ludChpbnQgbWFpbkV2ZW50
SWQsIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBwb2ludCkKK3sKKyAg
ICBpZiAocG9pbnQtPmlkICE9IG1haW5FdmVudElkKQorICAgICAgICByZXR1cm4gV2ViS2l0OjpX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKKworICAgIHN3aXRjaCAocG9p
bnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246Cisg
ICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVzc2Vk
OworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgorICAgICAgICBy
ZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQ7CisgICAgY2Fz
ZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV91cDoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkOworICAgIGNhc2Ugd3BlX2lucHV0
X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIGJyZWFrOworICAgIH07CisKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKK30KKworV2ViVG91Y2hFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCog
ZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIFdlYkV2ZW50OjpUeXBlIHR5
cGUgPSBXZWJFdmVudDo6Tm9UeXBlOworICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsKKyAgICBj
YXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHR5cGUgPSBXZWJF
dmVudDo6VG91Y2hTdGFydDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91
Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hNb3Zl
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3Vw
OgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6OlRvdWNoRW5kOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIFZlY3RvcjxXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludD4gdG91Y2hQb2ludHM7CisgICAgdG91Y2hQb2ludHMucmVzZXJ2ZUNhcGFjaXR5KGV2
ZW50LT50b3VjaHBvaW50c19sZW5ndGgpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGV2ZW50LT50b3VjaHBvaW50c19sZW5ndGg7ICsraSkgeworICAgICAgICBhdXRvJiBwb2ludCA9
IGV2ZW50LT50b3VjaHBvaW50c1tpXTsKKyAgICAgICAgaWYgKHBvaW50LnR5cGUgPT0gd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIFdlYkNvcmU6OkludFBvaW50IHBvaW50Q29vcmRpbmF0ZXM7CisgICAgICAgIHBvaW50Q29v
cmRpbmF0ZXMuc2NhbGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgdG91Y2hQb2lu
dHMudW5jaGVja2VkQXBwZW5kKAorICAgICAgICAgICAgV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNo
UG9pbnQocG9pbnQuaWQsIHN0YXRlRm9yVG91Y2hQb2ludChldmVudC0+aWQsICZwb2ludCksCisg
ICAgICAgICAgICAgICAgcG9pbnRDb29yZGluYXRlcywgcG9pbnRDb29yZGluYXRlcykpOworICAg
IH0KKworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMp
LCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBldmVudC0+dGltZSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVu
dEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJjNmRjODQ5YTAyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3Rvcnku
aApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViRXZlbnRGYWN0b3J5X2gKKyNkZWZpbmUgV2ViRXZlbnRG
YWN0b3J5X2gKKworI2luY2x1ZGUgIldlYkV2ZW50LmgiCisKK3N0cnVjdCB3cGVfaW5wdXRfYXhp
c19ldmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lu
cHV0X3BvaW50ZXJfZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50OworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRXZlbnRGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVf
aW5wdXRfa2V5Ym9hcmRfZXZlbnQqKTsKKyAgICBzdGF0aWMgV2ViTW91c2VFdmVudCBjcmVhdGVX
ZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCosIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yKTsKKyAgICBzdGF0aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2
ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
KTsKKyAgICBzdGF0aWMgV2ViVG91Y2hFdmVudCBjcmVhdGVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfdG91Y2hfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkV2ZW50RmFjdG9yeV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNzhhMzgwNDE1OWUu
LjdiZmEwMzdkYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCkBAIC01NTcsNCArNTU3LDggQEAgaW5saW5lIFByb3h5aW5nUmVmUHRyPFdlYkdyYW1tYXJE
ZXRhaWw+IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmIGdyYW0KICNpbmNsdWRl
ICJXS0FQSUNhc3RHdGsuaCIKICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykK
KyNpbmNsdWRlICJXS0FQSUNhc3RXUEUuaCIKKyNlbmRpZgorCiAjZW5kaWYgLy8gV0tBUElDYXN0
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElD
YXN0V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLQVBJQ2FzdFdQ
RS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjhhMWU3MTcwMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tB
UElDYXN0V1BFLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQVBJQ2FzdFdQRV9oCisjZGVmaW5lIFdL
QVBJQ2FzdFdQRV9oCisKKyNpZm5kZWYgV0tBUElDYXN0X2gKKyNlcnJvciAiUGxlYXNlICNpbmNs
dWRlIFwiV0tBUElDYXN0LmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5k
aWYKKworI2luY2x1ZGUgIldLVmlldy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0
ZS5oPgorCituYW1lc3BhY2UgV0tXUEUgeworY2xhc3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1dLX0FERF9BUElfTUFQUElORyhXS1ZpZXdSZWYsIFdLV1BFOjpWaWV3KQorCitp
bmxpbmUgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgdG9WaWV3U3RhdGVGbGFncyhXS1Zp
ZXdTdGF0ZSB3a1ZpZXdTdGF0ZSkKK3sKKyAgICB1bnNpZ25lZCB2aWV3U3RhdGVGbGFncyA9IDA7
CisKKyAgICBpZiAod2tWaWV3U3RhdGUgJiBrV0tWaWV3U3RhdGVJc0luV2luZG93KQorICAgICAg
ICB2aWV3U3RhdGVGbGFncyB8PSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93Owor
ICAgIGlmICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlzVmlzaWJsZSkKKyAgICAgICAgdmll
d1N0YXRlRmxhZ3MgfD0gV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxlOworCisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzPih2aWV3U3Rh
dGVGbGFncyk7Cit9CisKK30KKworI2VuZGlmIC8vIFdLQVBJQ2FzdFdQRV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjYmIyMzcxNWVmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKKworV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNv
bmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUobnVs
bHB0ciwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkpOworfQorCitXS1ZpZXdSZWYgV0tWaWV3Q3Jl
YXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdL
V1BFOjpWaWV3OjpjcmVhdGUoYmFja2VuZCwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkpOworfQor
CitXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYgdmlldykKK3sKKyAgICByZXR1cm4g
dG9BUEkoJnRvSW1wbCh2aWV3KS0+cGFnZSgpKTsKK30KKwordm9pZCBXS1ZpZXdTZXRWaWV3U3Rh
dGUoV0tWaWV3UmVmIHZpZXcsIFdLVmlld1N0YXRlIHZpZXdTdGF0ZSkKK3sKKyAgICB0b0ltcGwo
dmlldyktPnNldFZpZXdTdGF0ZSh0b1ZpZXdTdGF0ZUZsYWdzKHZpZXdTdGF0ZSkpOworfQorCit2
b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IFdLVmlld0NsaWVu
dEJhc2UqIGNsaWVudCkKK3sKKyAgICB0b0ltcGwodmlldyktPmluaXRpYWxpemVDbGllbnQoY2xp
ZW50KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUv
V0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NTllYzJiNDViNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmgK
QEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdLVmlld19oCisjZGVmaW5lIFdLVmlld19oCisKKyNpbmNsdWRl
IDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKworI2lm
ZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitzdHJ1Y3Qgd3BlX3ZpZXdf
YmFja2VuZDsKKworV0tfRVhQT1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVhdGUoV0tQYWdlQ29uZmln
dXJhdGlvblJlZik7CitXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFj
a2VuZChzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCosIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpOwor
CitXS19FWFBPUlQgV0tQYWdlUmVmIFdLVmlld0dldFBhZ2UoV0tWaWV3UmVmKTsKKworZW51bSB7
CisgICAga1dLVmlld1N0YXRlSXNJbldpbmRvdyA9IDEgPDwgMCwKKyAgICBrV0tWaWV3U3RhdGVJ
c1Zpc2libGUgPSAxIDw8IDEsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS1ZpZXdTdGF0ZTsKKwor
V0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld1N0YXRlKFdLVmlld1JlZiwgV0tWaWV3U3RhdGUp
OworCit0eXBlZGVmIHZvaWQgKCpXS1ZpZXdGcmFtZURpc3BsYXllZCkoV0tWaWV3UmVmIHZpZXcs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRC
YXNlIHsKKyAgICBpbnQgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkKiBjbGllbnRJbmZvOworfSBX
S1ZpZXdDbGllbnRCYXNlOworCit0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRWMCB7CisgICAg
V0tWaWV3Q2xpZW50QmFzZSBiYXNlOworCisgICAgLy8gdmVyc2lvbiAwCisgICAgV0tWaWV3RnJh
bWVEaXNwbGF5ZWQgZnJhbWVEaXNwbGF5ZWQ7Cit9IFdLVmlld0NsaWVudFYwOworCitXS19FWFBP
UlQgdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiwgY29uc3QgV0tWaWV3Q2xpZW50
QmFzZSopOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tW
aWV3X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBv
c2l0aW5nTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uYTQwNGVjNWQ5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
aCIKKworI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8d3Bl
L3ZpZXctYmFja2VuZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHk6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5KFdLV1BFOjpWaWV3JiB2aWV3KQorICAg
IDogbV92aWV3KHZpZXcpCit7Cit9CisKK0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Ojp+Q29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHk6OmluaXRpYWxpemUoKQoreworICAgIG1fdmlldy5wYWdlKCkucHJvY2VzcygpLnByb2Nl
c3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3ZpZXcucGFnZSgpLnBhZ2VJRCgpLCAqdGhp
cyk7Cit9CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmVzdGFibGlzaENvbm5lY3Rp
b24oSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSGFuZGxlKQoreworICAgIGNvbm5lY3Rpb25I
YW5kbGUgPSBJUEM6OkF0dGFjaG1lbnQod3BlX3ZpZXdfYmFja2VuZF9nZXRfcmVuZGVyZXJfaG9z
dF9mZChtX3ZpZXcuYmFja2VuZCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5n
TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI4
OTYwOWQzZmE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDYyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBDb21wb3NpdGluZ01hbmFnZXJQcm94eV9oCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBBdHRhY2htZW50OworfQorCituYW1lc3BhY2Ug
V0tXUEUgeworY2xhc3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENv
bXBvc2l0aW5nTWFuYWdlclByb3h5IGZpbmFsIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21wb3NpdGluZ01hbmFnZXJQcm94eSk7Citw
dWJsaWM6CisgICAgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6OlZpZXcmKTsKKyAgICB2
aXJ0dWFsIH5Db21wb3NpdGluZ01hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBpbml0aWFsaXpl
KCk7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiYgcmVwbHlFbmNvZGVyKSBvdmVycmlkZTsKKworICAgIHZvaWQgZXN0YWJsaXNoQ29ubmVjdGlv
bihJUEM6OkF0dGFjaG1lbnQmKTsKKworICAgIFdLV1BFOjpWaWV3JiBtX3ZpZXc7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbXBvc2l0aW5nTWFuYWdlclByb3h5
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0
aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5YTAwNTU3Nzc2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlh
IFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2Fn
ZXMgLT4gQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkgeworICAgIEVzdGFibGlzaENvbm5lY3Rpb24o
KSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YzYwYzQ2Yzc5MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdB
cmVhUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitEcmF3aW5nQXJlYVByb3h5V1BFOjpEcmF3aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQ
cm94eSYgcGFnZSkKKyAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlV1BFLCBw
YWdlKQoreworfQorCitEcmF3aW5nQXJlYVByb3h5V1BFOjp+RHJhd2luZ0FyZWFQcm94eVdQRSgp
Cit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6ZGV2aWNlU2NhbGVGYWN0b3JEaWRD
aGFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQ
cm94eVdQRTo6c2l6ZURpZENoYW5nZSgpCit7CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LmlzVmFs
aWQoKSkKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRy
YXdpbmdBcmVhOjpVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgwLCBmYWxzZSwgbV93ZWJQYWdlUHJv
eHkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbV9zaXplLCBtX3Njcm9sbE9mZnNldCksIG1fd2ViUGFn
ZVByb3h5LnBhZ2VJRCgpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkaXNwYXRj
aEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpF
cnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCit7CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5pc1Zh
bGlkKCkpIHsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFja0Jhc2U6OkVycm9yOjpP
d25lcldhc0ludmFsaWRhdGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2tGdW5jdGlvbl0geyBjYWxsYmFja0Z1bmN0aW9u
KENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpOyB9KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVBy
b3h5V1BFOjp1cGRhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRl
SW5mbyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVBy
b3h5V1BFOjpkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVT
dGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjplbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQs
IGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCit7CisgICAgQVNTRVJU
KCFiYWNraW5nU3RvcmVTdGF0ZUlEKTsKKworICAgIG1fbGF5ZXJUcmVlQ29udGV4dCA9IGxheWVy
VHJlZUNvbnRleHQ7CisgICAgbV93ZWJQYWdlUHJveHkuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BF
OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3Rh
dGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0JikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJv
eHlXUEUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJv
eHlXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjAzMDIwODU4
M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9E
cmF3aW5nQXJlYVByb3h5V1BFLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERyYXdpbmdBcmVhUHJveHlX
UEVfaAorI2RlZmluZSBEcmF3aW5nQXJlYVByb3h5V1BFX2gKKworI2luY2x1ZGUgIkRyYXdpbmdB
cmVhUHJveHkuaCIKKworI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIERyYXdpbmdBcmVhUHJveHlXUEUgZmluYWwgOiBwdWJsaWMgRHJh
d2luZ0FyZWFQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRHJhd2luZ0FyZWFQcm94eVdQ
RShXZWJQYWdlUHJveHkmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVByb3h5V1BFKCk7CisK
K3ByaXZhdGU6CisgICAgLy8gRHJhd2luZ0FyZWFQcm94eQorICAgIHZvaWQgZGV2aWNlU2NhbGVG
YWN0b3JEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoc3RkOjpmdW5jdGlv
bjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4pIG92ZXJyaWRlOworCisgICAgLy8gSVBDIG1l
c3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHVwZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRVcGRhdGVCYWNr
aW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJ
bmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBj
b25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGl0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBk
YXRlSW5mbyYpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4
dCYpIG92ZXJyaWRlOworCisgICAgLy8gVGhlIGN1cnJlbnQgbGF5ZXIgdHJlZSBjb250ZXh0Lgor
ICAgIExheWVyVHJlZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworfTsKKworfQorCisKKyNl
bmRpZiAvLyBEcmF3aW5nQXJlYVByb3h5V1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uODRlMTAyZWNmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSwz
MjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisKKyNpbmNs
dWRlICJEcmF3aW5nQXJlYVByb3h5V1BFLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVu
dC5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JvbGxH
ZXN0dXJlQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKyNpbmNsdWRlICJXZWJD
b250ZXh0TWVudVByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUGFnZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBsKFdLV1BFOjpWaWV3JiB2aWV3KQorICAg
IDogbV92aWV3KHZpZXcpCisgICAgLCBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyKHN0ZDo6bWFr
ZV91bmlxdWU8U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI+KCkpCit7Cit9CisKK1BhZ2VDbGllbnRJ
bXBsOjp+UGFnZUNsaWVudEltcGwoKSA9IGRlZmF1bHQ7CisKK3N0ZDo6dW5pcXVlX3B0cjxEcmF3
aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCit7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0FyZWFQcm94eVdQRT4obV92aWV3
LnBhZ2UoKSk7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXko
Y29uc3QgV2ViQ29yZTo6UmVnaW9uJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmLCBib29sKQoreworfQorCitXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBs
Ojp2aWV3U2Nyb2xsUG9zaXRpb24oKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1dlYkNvcmU6
OkludFNpemUgUGFnZUNsaWVudEltcGw6OnZpZXdTaXplKCkKK3sKKyAgICByZXR1cm4gbV92aWV3
LnNpemUoKTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3V2luZG93QWN0aXZlKCkK
K3sKKyAgICByZXR1cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2ViQ29yZTo6QWN0aXZpdHlTdGF0
ZTo6V2luZG93SXNBY3RpdmU7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld0ZvY3Vz
ZWQoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc0ZvY3VzZWQ7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld1Zpc2li
bGUoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc1Zpc2libGU7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld0luV2lu
ZG93KCkKK3sKKyAgICByZXR1cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2ViQ29yZTo6QWN0aXZp
dHlTdGF0ZTo6SXNJbldpbmRvdzsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc0Rp
ZEV4aXQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3Mo
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwYWdlQ2xvc2VkKCkKK3sKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQoreworfQorCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjp0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1l
KGNvbnN0IFN0cmluZyYsIGJvb2wpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRs
ZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3Im
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlVmlld3Bv
cnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJF
ZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKQoreworfQorCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpjbGVhckFsbEVkaXRDb21tYW5kcygpCit7Cit9CisKK2Jvb2wgUGFn
ZUNsaWVudEltcGw6OmNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4ZWN1dGVVbmRvUmVk
byhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pCit7Cit9CisKK1dlYkNvcmU6OkZsb2F0UmVjdCBQ
YWdlQ2xpZW50SW1wbDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiByZWN0KQoreworICAgIHJldHVybiByZWN0OworfQorCitXZWJDb3JlOjpGbG9hdFJlY3Qg
UGFnZUNsaWVudEltcGw6OmNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHJlY3QpCit7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK1dlYkNvcmU6OkludFBvaW50IFBh
Z2VDbGllbnRJbXBsOjpzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBw
b2ludCkKK3sKKyAgICByZXR1cm4gcG9pbnQ7Cit9CisKK1dlYkNvcmU6OkludFJlY3QgUGFnZUNs
aWVudEltcGw6OnJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkK
K3sKKyAgICByZXR1cm4gcmVjdDsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhL
ZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCkKK3sKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNo
RXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKQoreworICAgIGlmICh3YXNF
dmVudEhhbmRsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IHN0cnVjdCB3cGVfaW5w
dXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBvaW50ID0gdG91Y2hFdmVudC5uYXRpdmVGYWxsYmFj
a1RvdWNoUG9pbnQoKTsKKyAgICBpZiAodG91Y2hQb2ludC0+dHlwZSA9PSB3cGVfaW5wdXRfdG91
Y2hfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBwYWdlID0g
bV92aWV3LnBhZ2UoKTsKKworICAgIGlmIChtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyLT5oYW5k
bGVFdmVudCh0b3VjaFBvaW50KSkgeworICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQqIGF4aXNFdmVudCA9IG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXItPmF4aXNFdmVudCgpOwor
ICAgICAgICBpZiAoYXhpc0V2ZW50LT50eXBlICE9IHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVf
bnVsbCkKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdl
YldoZWVsRXZlbnQoYXhpc0V2ZW50LCBtX3ZpZXcucGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCkp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudCBwb2ludGVyRXZlbnR7CisgICAgICAgIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5
cGVfbnVsbCwgdG91Y2hQb2ludC0+dGltZSwKKyAgICAgICAgdG91Y2hQb2ludC0+eCwgdG91Y2hQ
b2ludC0+eSwKKyAgICAgICAgMSwgMAorICAgIH07CisKKyAgICBzd2l0Y2ggKHRvdWNoUG9pbnQt
PnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAg
ICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0
b247CisgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgorICAgICAgICBwb2ludGVy
RXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOworICAgICAg
ICBwb2ludGVyRXZlbnQuc3RhdGUgPSAxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9p
bnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdw
ZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uOworICAgICAgICBwb2ludGVyRXZlbnQu
c3RhdGUgPSAwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2
ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBwYWdlLmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VF
dmVudCgmcG9pbnRlckV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3Qg
TmF0aXZlV2ViV2hlZWxFdmVudCYpCit7Cit9CisKK1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4g
UGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCit7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKK3N0ZDo6
dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29u
dGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmLCBjb25zdCBDb250ZXh0TWVudUNvbnRleHREYXRh
JiwgY29uc3QgVXNlckRhdGEmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29u
c3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4aXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQm
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1
c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEJl
Z2luKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVXaWxs
RW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVEaWRF
bmQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aWxsUmVjb3JkTmF2aWdhdGlvblNu
YXBzaG90KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1l
KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFt
ZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1l
KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlv
bkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVmVmlldygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRl
cmVmVmlldygpCit7Cit9CisKKyNpZiBFTkFCTEUoVklERU8pCitib29sIFBhZ2VDbGllbnRJbXBs
OjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1
ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZXN0
b3JlU2Nyb2xsUG9zaXRpb24oKQoreworfQorCitXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uIFBhZ2VDbGllbnRJbXBsOjp1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkK
K3sKKyAgICByZXR1cm4gV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRS
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4yOGVkODMzZDJlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTAsMCArMSwxMzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBQYWdlQ2xpZW50SW1wbF9oCisjZGVmaW5lIFBhZ2VDbGllbnRJbXBsX2gKKworI2luY2x1ZGUg
IlBhZ2VDbGllbnQuaCIKKworbmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjsKKworY2xh
c3MgUGFnZUNsaWVudEltcGwgZmluYWwgOiBwdWJsaWMgUGFnZUNsaWVudCB7CitwdWJsaWM6Cisg
ICAgUGFnZUNsaWVudEltcGwoV0tXUEU6OlZpZXcmKTsKKyAgICB2aXJ0dWFsIH5QYWdlQ2xpZW50
SW1wbCgpOworCitwcml2YXRlOgorICAgIC8vIFBhZ2VDbGllbnQKKyAgICB2aXJ0dWFsIHN0ZDo6
dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29y
ZTo6UmVnaW9uJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGwoY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkg
b3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGlzVmlld0ZvY3VzZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNWaWV3VmlzaWJsZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdJbldpbmRv
dygpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRFeGl0KCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlbGF1bmNoUHJvY2VzcygpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBwYWdlQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBy
ZWZlcmVuY2VzRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRvb2xUaXBD
aGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCisgICAgdmly
dHVhbCB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9h
ZFByb3h5Kikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNp
emUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lk
IHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6
Vmlld3BvcnRBdHRyaWJ1dGVzJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0
ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJv
eHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckFsbEVkaXRD
b21tYW5kcygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvUmVkbyhXZWJQYWdl
UHJveHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlVW5k
b1JlZG8oV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwg
V2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZl
cnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZp
ZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0
dWFsIHZvaWQgZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50Jiwg
Ym9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25z
dCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZl
bnQmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBj
cmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVu
dVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIGNvbnN0IENvbnRl
eHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpIG92ZXJyaWRlOworI2VuZGlmCisK
KyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBM
YXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJp
ZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250
ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJikgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRCZWdpbigpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwg
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBuYXZp
Z2F0aW9uR2VzdHVyZURpZEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0Zv
cndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVOYXZp
Z2F0aW9uR2VzdHVyZVNuYXBzaG90KCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZSkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdl
QmFja2dyb3VuZENvbG9yKCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVmVmlldygp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsKKworI2lm
IEVOQUJMRShWSURFTykKKyAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1p
c3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwg
V2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRpZENoYW5nZUNsaXBUb1NhZmVBcmVh
KGJvb2wpIG92ZXJyaWRlIHsgfQorCisgICAgV0tXUEU6OlZpZXcmIG1fdmlldzsKKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxTY3JvbGxHZXN0dXJlQ29udHJvbGxlcj4gbV9zY3JvbGxHZXN0dXJlQ29u
dHJvbGxlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUGFnZUNs
aWVudEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUv
U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5kYTEyYzhlYjM1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcApAQCAt
MCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxHZXN0dXJlQ29udHJv
bGxlci5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXIuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2Jvb2wgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZUV2ZW50KGNvbnN0
IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBvaW50KQoreworICAgIHN3
aXRjaCAodG91Y2hQb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50
X3R5cGVfZG93bjoKKyAgICAgICAgbV9zdGFydC50aW1lID0gdG91Y2hQb2ludC0+dGltZTsKKyAg
ICAgICAgbV9zdGFydC54ID0gdG91Y2hQb2ludC0+eDsKKyAgICAgICAgbV9zdGFydC55ID0gdG91
Y2hQb2ludC0+eTsKKyAgICAgICAgbV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAg
IG1fb2Zmc2V0LnkgPSB0b3VjaFBvaW50LT55OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIGlmICghbV9o
YW5kbGluZykgeworICAgICAgICAgICAgaW50MzJfdCBkZWx0YVggPSB0b3VjaFBvaW50LT54IC0g
bV9zdGFydC54OworICAgICAgICAgICAgaW50MzJfdCBkZWx0YVkgPSB0b3VjaFBvaW50LT55IC0g
bV9zdGFydC55OworICAgICAgICAgICAgdWludDMyX3QgZGVsdGFUaW1lID0gdG91Y2hQb2ludC0+
dGltZSAtIG1fc3RhcnQudGltZTsKKworICAgICAgICAgICAgaW50IHBpeGVsc1BlckxpbmVTdGVw
ID0gV2ViQ29yZTo6U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpOworICAgICAgICAgICAg
bV9oYW5kbGluZyA9IHN0ZDo6YWJzKGRlbHRhWCkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAg
ICAgICAgICAgICB8fCBzdGQ6OmFicyhkZWx0YVkpID49IHBpeGVsc1BlckxpbmVTdGVwCisgICAg
ICAgICAgICAgICAgfHwgZGVsdGFUaW1lID49IDIwMDsKKyAgICAgICAgfQorICAgICAgICBpZiAo
bV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAg
ICAgd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9tb3Rpb24sCisgICAgICAgICAgICAgICAgdG91
Y2hQb2ludC0+dGltZSwgbV9zdGFydC54LCBtX3N0YXJ0LnksCisgICAgICAgICAgICAgICAgMiwg
KHRvdWNoUG9pbnQtPnkgLSBtX29mZnNldC55KQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
IG1fb2Zmc2V0LnggPSB0b3VjaFBvaW50LT54OworICAgICAgICAgICAgbV9vZmZzZXQueSA9IHRv
dWNoUG9pbnQtPnk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV91cDoK
KyAgICAgICAgaWYgKG1faGFuZGxpbmcpIHsKKyAgICAgICAgICAgIG1faGFuZGxpbmcgPSBmYWxz
ZTsKKyAgICAgICAgICAgIG1fYXhpc0V2ZW50ID0geworICAgICAgICAgICAgICAgIHdwZV9pbnB1
dF9heGlzX2V2ZW50X3R5cGVfbnVsbCwKKyAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwCisg
ICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3ZDE3MjRhYWRjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3BlL2lucHV0
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgU2Nyb2xsR2VzdHVyZUNvbnRyb2xs
ZXIgeworcHVibGljOgorICAgIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyKCkgPSBkZWZhdWx0Owor
CisgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBheGlzRXZlbnQoKSB7IHJldHVybiAm
bV9heGlzRXZlbnQ7IH0KKworICAgIGJvb2wgaGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9p
bnB1dF90b3VjaF9ldmVudF9yYXcqKTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgeworICAgICAg
ICB1aW50MzJfdCB0aW1lIHsgMCB9OworICAgICAgICBpbnQzMl90IHggeyAwIH07CisgICAgICAg
IGludDMyX3QgeSB7IDAgfTsKKyAgICB9IG1fc3RhcnQ7CisKKyAgICBzdHJ1Y3QgeworICAgICAg
ICBpbnQzMl90IHggeyAwIH07CisgICAgICAgIGludDMyX3QgeSB7IDAgfTsKKyAgICB9IG1fb2Zm
c2V0OworCisgICAgYm9vbCBtX2hhbmRsaW5nIHsgZmFsc2UgfTsKKyAgICBzdHJ1Y3Qgd3BlX2lu
cHV0X2F4aXNfZXZlbnQgbV9heGlzRXZlbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdmOWYxMmNkMmQyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKQEAgLTAs
MCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKworI2luY2x1
ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudC5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRp
dmVXZWJUb3VjaEV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5j
bHVkZSA8d3BlL3ZpZXctYmFja2VuZC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitu
YW1lc3BhY2UgV0tXUEUgeworCitWaWV3OjpWaWV3KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBi
YWNrZW5kLCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBiYXNlQ29uZmlndXJhdGlvbikK
KyAgICA6IG1fcGFnZUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDbGllbnRJbXBsPigqdGhp
cykpCisgICAgLCBtX3NpemV7IDgwMCwgNjAwIH0KKyAgICAsIG1fdmlld1N0YXRlRmxhZ3MoV2Vi
Q29yZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rpdml0eVN0
YXRlOjpJc0ZvY3VzZWQgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUgfCBXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KQorICAgICwgbV9jb21wb3NpdGluZ01hbmFn
ZXJQcm94eSgqdGhpcykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBiYXNlQ29uZmlndXJh
dGlvbi5jb3B5KCk7CisgICAgYXV0byogcHJlZmVyZW5jZXMgPSBjb25maWd1cmF0aW9uLT5wcmVm
ZXJlbmNlcygpOworICAgIGlmICghcHJlZmVyZW5jZXMgJiYgY29uZmlndXJhdGlvbi0+cGFnZUdy
b3VwKCkpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMgPSAmY29uZmlndXJhdGlvbi0+cGFnZUdyb3Vw
KCktPnByZWZlcmVuY2VzKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldFByZWZlcmVuY2Vz
KHByZWZlcmVuY2VzKTsKKyAgICB9CisgICAgaWYgKHByZWZlcmVuY2VzKSB7CisgICAgICAgIHBy
ZWZlcmVuY2VzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICAg
ICAgcHJlZmVyZW5jZXMtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgICBw
cmVmZXJlbmNlcy0+c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQodHJ1ZSk7CisgICAgICAg
IHByZWZlcmVuY2VzLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2Vz
LT5zZXRXZWJTZWN1cml0eUVuYWJsZWQoZmFsc2UpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0
RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisKKyAgICBhdXRvKiBwb29sID0g
Y29uZmlndXJhdGlvbi0+cHJvY2Vzc1Bvb2woKTsKKyAgICBtX3BhZ2VQcm94eSA9IHBvb2wtPmNy
ZWF0ZVdlYlBhZ2UoKm1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisKKyAg
ICBtX2JhY2tlbmQgPSBiYWNrZW5kOworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAgICBtX2Jh
Y2tlbmQgPSB3cGVfdmlld19iYWNrZW5kX2NyZWF0ZSgpOworICAgIG1fY29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuaW5pdGlhbGl6ZSgpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNr
ZW5kX2NsaWVudCBzX2JhY2tlbmRDbGllbnQgPSB7CisgICAgICAgIC8vIHNldF9zaXplCisgICAg
ICAgIFtdKHZvaWQqIGRhdGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4o
ZGF0YSk7CisgICAgICAgICAgICB2aWV3LnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZSh3aWR0aCwg
aGVpZ2h0KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGZyYW1lX2Rpc3BsYXllZAorICAgICAg
ICBbXSh2b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3ID0gKnJl
aW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5mcmFtZURpc3Bs
YXllZCgpOworICAgICAgICB9CisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9iYWNr
ZW5kX2NsaWVudChtX2JhY2tlbmQsICZzX2JhY2tlbmRDbGllbnQsIHRoaXMpOworCisgICAgc3Rh
dGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2lucHV0X2NsaWVudCBzX2lucHV0Q2xpZW50ID0g
eworICAgICAgICAvLyBoYW5kbGVfa2V5Ym9hcmRfZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0
YSwgc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7Cisg
ICAgICAgICAgICB2aWV3LnBhZ2UoKS5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0aXZl
V2ViS2V5Ym9hcmRFdmVudChldmVudCkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVf
cG9pbnRlcl9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X3Bv
aW50ZXJfZXZlbnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0g
cmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2Uu
aGFuZGxlTW91c2VFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIHBhZ2Uu
ZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfYXhp
c19ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnBy
ZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hl
ZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2Nh
bGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfdG91Y2hfZXZlbnQK
KyAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZl
bnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0
PFZpZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3VjaEV2ZW50
KFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3Rv
cigpKSk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9pbnB1
dF9jbGllbnQobV9iYWNrZW5kLCAmc19pbnB1dENsaWVudCwgdGhpcyk7CisKKyAgICB3cGVfdmll
d19iYWNrZW5kX2luaXRpYWxpemUobV9iYWNrZW5kKTsKKworICAgIG1fcGFnZVByb3h5LT5pbml0
aWFsaXplV2ViUGFnZSgpOworfQorCitWaWV3Ojp+VmlldygpCit7CisgICAgd3BlX3ZpZXdfYmFj
a2VuZF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgVmlldzo6aW5pdGlhbGl6ZUNsaWVu
dChjb25zdCBXS1ZpZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jbGllbnQuaW5pdGlh
bGl6ZShjbGllbnQpOworfQorCit2b2lkIFZpZXc6OmZyYW1lRGlzcGxheWVkKCkKK3sKKyAgICBt
X2NsaWVudC5mcmFtZURpc3BsYXllZCgqdGhpcyk7Cit9CisKK3ZvaWQgVmlldzo6c2V0U2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisgICAg
aWYgKG1fcGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBtX3BhZ2VQcm94eS0+ZHJh
d2luZ0FyZWEoKS0+c2V0U2l6ZShzaXplLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNvcmU6Oklu
dFNpemUoKSk7Cit9CisKK3ZvaWQgVmlldzo6c2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5
U3RhdGU6OkZsYWdzIGZsYWdzKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpGbGFncyBkZWZhdWx0RmxhZ3MgPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5k
b3dJc0FjdGl2ZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKKworICAgIFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIGNoYW5nZWRGbGFncyA9IG1fdmlld1N0YXRlRmxh
Z3MgXiAoZGVmYXVsdEZsYWdzIHwgZmxhZ3MpOworICAgIG1fdmlld1N0YXRlRmxhZ3MgPSBkZWZh
dWx0RmxhZ3MgfCBmbGFnczsKKworICAgIGlmIChjaGFuZ2VkRmxhZ3MpCisgICAgICAgIG1fcGFn
ZVByb3h5LT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWRGbGFncyk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9XUEVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM3MzZlOTNjYzUwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmll
dy5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXUEVWaWV3X2gKKyNkZWZpbmUgV1BFVmlld19oCisKKyNp
bmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5o
IgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5Lmgi
CisjaW5jbHVkZSAiV1BFVmlld0NsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlT
dGF0ZS5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3N0
cnVjdCB3cGVfdmlld19iYWNrZW5kOworCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBh
Z2VHcm91cDsKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworfQorCituYW1lc3BhY2UgV0tXUEUgewor
CitjbGFzcyBWaWV3IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6
Vmlldz4geworcHVibGljOgorICAgIHN0YXRpYyBWaWV3KiBjcmVhdGUoc3RydWN0IHdwZV92aWV3
X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFZpZXcoYmFja2VuZCwgY29uZmlndXJh
dGlvbik7CisgICAgfQorCisgICAgLy8gQ2xpZW50IG1ldGhvZHMKKyAgICB2b2lkIGluaXRpYWxp
emVDbGllbnQoY29uc3QgV0tWaWV3Q2xpZW50QmFzZSopOworICAgIHZvaWQgZnJhbWVEaXNwbGF5
ZWQoKTsKKworICAgIFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gKm1fcGFn
ZVByb3h5OyB9CisKKyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIHsgcmV0
dXJuIG1fYmFja2VuZDsgfQorCisgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6Rmxh
Z3Mgdmlld1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3RhdGVGbGFnczsgfQorICAgIHZv
aWQgc2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKKworcHJpdmF0
ZToKKyAgICBWaWV3KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiwgY29uc3QgQVBJOjpQYWdlQ29u
ZmlndXJhdGlvbiYpOworICAgIHZpcnR1YWwgflZpZXcoKTsKKworICAgIHZvaWQgc2V0U2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKTsKKworICAgIFZpZXdDbGllbnQgbV9jbGllbnQ7
CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpQYWdlQ2xpZW50SW1wbD4gbV9wYWdlQ2xp
ZW50OworICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gbV9wYWdlUHJveHk7CisgICAg
V2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6Rmxh
Z3MgbV92aWV3U3RhdGVGbGFnczsKKworICAgIFdlYktpdDo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94eTsKKyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2Vu
ZCogbV9iYWNrZW5kOworfTsKKworfSAvLyBuYW1lc3BhY2UgV0tXUEUKKworI2VuZGlmIC8vIFdQ
RVZpZXdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BF
Vmlld0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
Q2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWYxZjM3
ZDllN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9XUEVWaWV3Q2xpZW50LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXUEVWaWV3Q2xpZW50LmgiCisKKyNpbmNsdWRlICJXUEVWaWV3LmgiCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tCYXNlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK3ZvaWQgVmlld0NsaWVudDo6ZnJhbWVEaXNwbGF5
ZWQoVmlldyYgdmlldykKK3sKKyAgICBpZiAobV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQpCisgICAg
ICAgIG1fY2xpZW50LmZyYW1lRGlzcGxheWVkKHRvQVBJKCZ2aWV3KSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV0tXUEUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uODRkZmQ1YjE1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50LmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdQRVZpZXdDbGllbnRfaAorI2RlZmluZSBXUEVWaWV3Q2xpZW50X2gKKworI2luY2x1
ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXcuaD4KKworbmFtZXNwYWNl
IEFQSSB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tWaWV3Q2xpZW50QmFzZT4g
eworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1ZpZXdDbGllbnRWMD4gVmVyc2lvbnM7Cit9Owor
fQorCituYW1lc3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3OworCitjbGFzcyBWaWV3Q2xpZW50
IDogcHVibGljIEFQSTo6Q2xpZW50PFdLVmlld0NsaWVudEJhc2U+IHsKK3B1YmxpYzoKKyAgICB2
b2lkIGZyYW1lRGlzcGxheWVkKFZpZXcmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisKKyNlbmRpZiAvLyBXUEVWaWV3Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJj
ZUJ1bmRsZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU4MjA5
MmJiZmVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKQEAgLTAsMCArMSw2IEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGdyZXNvdXJjZXM+CisgIDxn
cmVzb3VyY2UgcHJlZml4PSIvb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZSI+CisgICAg
PGZpbGU+aW5zcGVjdG9yUGFnZUluZGV4Lmh0bWw8L2ZpbGU+CisgIDwvZ3Jlc291cmNlPgorPC9n
cmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94
eS5jcHAKaW5kZXggMjdiZWMzNjIzMTUuLmZkODQ4Y2NlZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9p
ZCBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6Okxh
dW5jaE9wdGlvbnMmIGxhdW5jaE8KICAgICBpZiAobV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJp
b3JpdHkpCiAgICAgICAgIGxhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRk
KEFTQ0lJTGl0ZXJhbCgiYWx3YXlzLXJ1bnMtYXQtYmFja2dyb3VuZC1wcmlvcml0eSIpLCAidHJ1
ZSIpOwogCi0jaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjaWYg
RU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
KQogICAgIGNvbnN0IGNoYXIqIHZhcm5hbWU7CiAgICAgc3dpdGNoIChsYXVuY2hPcHRpb25zLnBy
b2Nlc3NUeXBlKSB7CiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWI6
CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlv
bnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPCiAgICAgY29uc3QgY2hh
ciogcHJvY2Vzc0NtZFByZWZpeCA9IGdldGVudih2YXJuYW1lKTsKICAgICBpZiAocHJvY2Vzc0Nt
ZFByZWZpeCAmJiAqcHJvY2Vzc0NtZFByZWZpeCkKICAgICAgICAgbGF1bmNoT3B0aW9ucy5wcm9j
ZXNzQ21kUHJlZml4ID0gU3RyaW5nOjpmcm9tVVRGOChwcm9jZXNzQ21kUHJlZml4KTsKLSNlbmRp
ZiAvLyBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIFBMQVRGT1JNKEdUSykKKyNlbmRpZiAvLyBF
TkFCTEUoREVWRUxPUEVSX01PREUpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkp
CiB9CiAKIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OmNvbm5lY3QoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9y
U2VydmVyLmgKaW5kZXggOTM5YTdlMjFiNzguLjA3NDg3YmEzZTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVj
dG9yU2VydmVyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENsb3Nl
V2ViU29ja2V0Q29ubmVjdGlvbihXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uKikgZmluYWw7CiAK
ICAgICBib29sIHBsYXRmb3JtUmVzb3VyY2VGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgVmVj
dG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKLSNpZiBQTEFURk9STShHVEsp
CisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBidWlsZFBhZ2VM
aXN0KFZlY3RvcjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUv
V2ViSW5zcGVjdG9yU2VydmVyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNw
ZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI2ODNlM2Q3MTYwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9y
U2VydmVyV1BFLmNwcApAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzIEx0ZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZl
ci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisKKyNpbmNsdWRlICJXZWJJbnNw
ZWN0b3JQcm94eS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgPGNzdGRp
bz4KKyNpbmNsdWRlIDxnbW9kdWxlLmg+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jv
b2wgV2ViSW5zcGVjdG9yU2VydmVyOjpwbGF0Zm9ybVJlc291cmNlRm9yUGF0aChjb25zdCBTdHJp
bmcmIHBhdGgsIFZlY3RvcjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSkKK3sKKyAg
ICAvLyBUaGUgcGFnZSBsaXN0IGNvbnRhaW5zIGFuIHVuZm9ybWF0ZWQgbGlzdCBvZiBwYWdlcyB0
aGF0IGNhbiBiZSBpbnNwZWN0ZWQgd2l0aCBhIGxpbmsgdG8gb3BlbiBhIHNlc3Npb24uCisgICAg
aWYgKHBhdGggPT0gIi9wYWdlbGlzdC5qc29uIikgeworICAgICAgICBidWlsZFBhZ2VMaXN0KGRh
dGEsIGNvbnRlbnRUeXBlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc3Rh
dGljIHN0ZDo6b25jZV9mbGFnIGZsYWc7CisgICAgc3RkOjpjYWxsX29uY2UoZmxhZywgW10gewor
ICAgICAgICBHTW9kdWxlKiByZXNvdXJjZXNNb2R1bGUgPSBnX21vZHVsZV9vcGVuKCJsaWJXUEVX
ZWJJbnNwZWN0b3JSZXNvdXJjZXMuc28iLCBHX01PRFVMRV9CSU5EX0xBWlkpOworICAgICAgICBp
ZiAoIXJlc291cmNlc01vZHVsZSkgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJFcnJvciBs
b2FkaW5nIGxpYldQRVdlYkluc3BlY3RvclJlc291cmNlcy5zbzogJXMiLCBnX21vZHVsZV9lcnJv
cigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGdfbW9kdWxl
X21ha2VfcmVzaWRlbnQocmVzb3VyY2VzTW9kdWxlKTsKKyAgICB9KTsKKworICAgIC8vIFBvaW50
IHRoZSBkZWZhdWx0IHBhdGggdG8gYSBmb3JtYXR0ZWQgcGFnZSB0aGF0IHF1ZXJpZXMgdGhlIHBh
Z2UgbGlzdCBhbmQgZGlzcGxheSB0aGVtLgorICAgIENTdHJpbmcgcmVzb3VyY2VQYXRoID0gbWFr
ZVN0cmluZygiL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UiLCAocGF0aCA9PSAiLyIg
PyAiL2luc3BlY3RvclBhZ2VJbmRleC5odG1sIiA6IHBhdGgpKS51dGY4KCk7CisgICAgaWYgKHJl
c291cmNlUGF0aC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgR1VuaXF1
ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIEdSZWZQdHI8R0J5dGVzPiByZXNvdXJjZUJ5dGVz
ID0gYWRvcHRHUmVmKGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHJlc291cmNlUGF0aC5kYXRhKCks
IEdfUkVTT1VSQ0VfTE9PS1VQX0ZMQUdTX05PTkUsICZlcnJvci5vdXRQdHIoKSkpOworICAgIGlm
ICghcmVzb3VyY2VCeXRlcykgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9o
ZWFkPjxib2R5PkVycm9yOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoZXJyb3It
PmNvZGUpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgb2NjdXJyZWQgZHVyaW5nIGZldGNoaW5nIGluc3BlY3RvciByZXNvdXJjZSBmaWxlcy48
L2JvZHk+PC9odG1sPiIpOworCisgICAgICAgIENTdHJpbmcgZXJyb3JIVE1MID0gYnVpbGRlci50
b1N0cmluZygpLnV0ZjgoKTsKKyAgICAgICAgZGF0YS5hcHBlbmQoZXJyb3JIVE1MLmRhdGEoKSwg
ZXJyb3JIVE1MLmxlbmd0aCgpKTsKKyAgICAgICAgY29udGVudFR5cGUgPSAidGV4dC9odG1sOyBj
aGFyc2V0PXV0Zi04IjsKKworICAgICAgICBXVEZMb2dBbHdheXMoIkVycm9yIGZldGNoaW5nIHdl
Ymluc3BlY3RvciByZXNvdXJjZSBmaWxlczogJWQsICVzIiwgZXJyb3ItPmNvZGUsIGVycm9yLT5t
ZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGdzaXplIHJlc291
cmNlRGF0YVNpemU7CisgICAgZ2NvbnN0cG9pbnRlciByZXNvdXJjZURhdGEgPSBnX2J5dGVzX2dl
dF9kYXRhKHJlc291cmNlQnl0ZXMuZ2V0KCksICZyZXNvdXJjZURhdGFTaXplKTsKKyAgICBkYXRh
LmFwcGVuZChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4ocmVzb3VyY2VEYXRhKSwgcmVzb3VyY2VE
YXRhU2l6ZSk7CisKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBtaW1lVHlwZShnX2NvbnRlbnRfdHlw
ZV9ndWVzcyhyZXNvdXJjZVBhdGguZGF0YSgpLCBzdGF0aWNfY2FzdDxjb25zdCBndWNoYXIqPihy
ZXNvdXJjZURhdGEpLCByZXNvdXJjZURhdGFTaXplLCBudWxscHRyKSk7CisgICAgY29udGVudFR5
cGUgPSBtaW1lVHlwZS5nZXQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJJbnNw
ZWN0b3JTZXJ2ZXI6OmJ1aWxkUGFnZUxpc3QoVmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNv
bnRlbnRUeXBlKQoreworICAgIC8vIGNocm9tZWRldnRvb2xzIChodHRwOi8vY29kZS5nb29nbGUu
Y29tL3AvY2hyb21lZGV2dG9vbHMpIDAuMy44IGV4cGVjdGVkIEpTT04gZm9ybWF0OgorICAgIC8v
IHsKKyAgICAvLyAgInRpdGxlIjogIkZvbyIsCisgICAgLy8gICJ1cmwiOiAiaHR0cDovL2ZvbyIs
CisgICAgLy8gICJkZXZ0b29sc0Zyb250ZW5kVXJsIjogIi9NYWluLmh0bWw/d3M9bG9jYWxob3N0
OjkyMjIvZGV2dG9vbHMvcGFnZS8xIiwKKyAgICAvLyAgIndlYlNvY2tldERlYnVnZ2VyVXJsIjog
IndzOi8vbG9jYWxob3N0OjkyMjIvZGV2dG9vbHMvcGFnZS8xIgorICAgIC8vIH0sCisKKyAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJbICIpOwor
ICAgIENsaWVudE1hcDo6aXRlcmF0b3IgZW5kID0gbV9jbGllbnRNYXAuZW5kKCk7CisgICAgZm9y
IChDbGllbnRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9jbGllbnRNYXAuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7CisgICAgICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZSA9IGl0LT52YWx1ZS0+aW5z
cGVjdGVkUGFnZSgpOworICAgICAgICBpZiAoaXQgIT0gbV9jbGllbnRNYXAuYmVnaW4oKSkKKyAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJ7IFwiaWRcIjogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KGl0LT5rZXkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgXCJ0aXRsZVwiOiBc
IiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJQYWdlLT5wYWdlTG9hZFN0YXRlKCkudGl0
bGUoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwidXJsXCI6IFwiIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHdlYlBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVV
UkwoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwiaW5zcGVjdG9yVXJs
XCI6IFwiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL01haW4uaHRtbD9wYWdl
PSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJkZXZ0b29sc0Zyb250ZW5kVXJsXCI6IFwiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL01haW4uaHRtbD93cz0iKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoYmluZEFkZHJlc3MoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiOiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb3J0KCkpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIi9kZXZ0b29scy9wYWdlLyIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJcIiwgXCJ3ZWJTb2NrZXREZWJ1Z2dlclVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIndzOi8vIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJpbmRBZGRyZXNz
KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIocG9ydCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIv
ZGV2dG9vbHMvcGFnZS8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIgfSIpOworICAgIH0KKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiBdIik7CisgICAgQ1N0cmluZyBjc3RyID0gYnVpbGRlci50b1N0
cmluZygpLnV0ZjgoKTsKKyAgICBkYXRhLmFwcGVuZChjc3RyLmRhdGEoKSwgY3N0ci5sZW5ndGgo
KSk7CisgICAgY29udGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCI7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCAzOTk1MDY5
NDhlZi4uYmE3N2MyYWM3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAg
ICAgICBQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZTsKICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gZXh0cmFJbml0aWFsaXphdGlvbkRhdGE7CiAKLSNpZiBFTkFCTEUoREVWRUxPUEVSX01P
REUpICYmIFBMQVRGT1JNKEdUSykKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIChQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiAgICAgICAgIFN0cmluZyBwcm9jZXNzQ21kUHJl
Zml4OwogI2VuZGlmCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzAyM2M1NDIyMTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQ
RS5jcHAKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEw
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTU9UT1JPTEEgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgi
CisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8ZXJybm8u
aD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3cGUv
cmVuZGVyZXItaG9zdC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVl
UHRyLmg+CisKKy8vIEZJWE1FOiBNZXJnZSB3aXRoIFByb2Nlc3NMYXVuY2hlckd0az8KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdm9p
ZCBjaGlsZFNldHVwRnVuY3Rpb24oZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICAgaW50IHNvY2tl
dCA9IEdQT0lOVEVSX1RPX0lOVCh1c2VyRGF0YSk7CisgICAgY2xvc2Uoc29ja2V0KTsKK30KKwor
dm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQoreworICAgIEdQaWQgcGlkID0g
MDsKKworICAgIElQQzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWlyID0gSVBDOjpD
b25uZWN0aW9uOjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpDb25u
ZWN0aW9uT3B0aW9uczo6U2V0Q2xvZXhlY09uU2VydmVyKTsKKworICAgIFN0cmluZyBleGVjdXRh
YmxlUGF0aDsKKyAgICBDU3RyaW5nIHJlYWxFeGVjdXRhYmxlUGF0aDsKKyAgICBzd2l0Y2ggKG1f
bGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSkgeworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQ
cm9jZXNzVHlwZTo6V2ViOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRo
T2ZXZWJQcm9jZXNzKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVy
OjpQcm9jZXNzVHlwZTo6TmV0d29yazoKKyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRh
YmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKERB
VEFCQVNFX1BST0NFU1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpE
YXRhYmFzZToKKyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mRGF0YWJh
c2VQcm9jZXNzKCk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBy
ZWFsRXhlY3V0YWJsZVBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBh
dGgpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHdrU29ja2V0KGdfc3RyZHVwX3ByaW50ZigiJWQi
LCBzb2NrZXRQYWlyLmNsaWVudCkpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHdwZVNvY2tldDsK
KworICAgIHVuc2lnbmVkIG5hcmdzID0gNDsgLy8gc2l6ZSBvZiB0aGUgYXJndiBhcnJheSBmb3Ig
Z19zcGF3bl9hc3luYygpCisgICAgaWYgKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQ
cm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWIpIHsKKyAgICAgICAgd3BlU29ja2V0ID0g
R1VuaXF1ZVB0cjxnY2hhcj4oZ19zdHJkdXBfcHJpbnRmKCIlZCIsIHdwZV9yZW5kZXJlcl9ob3N0
X2NyZWF0ZV9jbGllbnQoKSkpOworICAgICAgICBuYXJncyA9IDU7CisgICAgfQorCisjaWYgRU5B
QkxFKERFVkVMT1BFUl9NT0RFKQorICAgIFZlY3RvcjxDU3RyaW5nPiBwcmVmaXhBcmdzOworICAg
IGlmICghbV9sYXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXguaXNOdWxsKCkpIHsKKyAgICAg
ICAgVmVjdG9yPFN0cmluZz4gc3BsaXRBcmdzOworICAgICAgICBtX2xhdW5jaE9wdGlvbnMucHJv
Y2Vzc0NtZFByZWZpeC5zcGxpdCgnICcsIHNwbGl0QXJncyk7CisgICAgICAgIGZvciAoYXV0byBp
dCA9IHNwbGl0QXJncy5iZWdpbigpOyBpdCAhPSBzcGxpdEFyZ3MuZW5kKCk7IGl0KyspCisgICAg
ICAgICAgICBwcmVmaXhBcmdzLmFwcGVuZChpdC0+dXRmOCgpKTsKKyAgICAgICAgbmFyZ3MgKz0g
cHJlZml4QXJncy5zaXplKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBjaGFyKiogYXJndiA9IGdf
bmV3YShjaGFyKiwgbmFyZ3MpOworICAgIHVuc2lnbmVkIGkgPSAwOworI2lmIEVOQUJMRShERVZF
TE9QRVJfTU9ERSkKKyAgICAvLyBJZiB0aGVyZSdzIGEgcHJlZml4IGNvbW1hbmQsIHB1dCBpdCBi
ZWZvcmUgdGhlIHJlc3Qgb2YgdGhlIGFyZ3MuCisgICAgZm9yIChhdXRvIGl0ID0gcHJlZml4QXJn
cy5iZWdpbigpOyBpdCAhPSBwcmVmaXhBcmdzLmVuZCgpOyBpdCsrKQorICAgICAgICBhcmd2W2kr
K10gPSBjb25zdF9jYXN0PGNoYXIqPihpdC0+ZGF0YSgpKTsKKyNlbmRpZgorICAgIGFyZ3ZbaSsr
XSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHJlYWxFeGVjdXRhYmxlUGF0aC5kYXRhKCkpOworICAgIGFy
Z3ZbaSsrXSA9IHdrU29ja2V0LmdldCgpOworICAgIGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vz
c1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViKQorICAgICAgICBhcmd2
W2krK10gPSB3cGVTb2NrZXQuZ2V0KCk7CisgICAgYXJndltpKytdID0gbnVsbHB0cjsKKworICAg
IEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICBpZiAoIWdfc3Bhd25fYXN5bmMoMCwg
YXJndiwgMCwgR19TUEFXTl9MRUFWRV9ERVNDUklQVE9SU19PUEVOLCBjaGlsZFNldHVwRnVuY3Rp
b24sIEdJTlRfVE9fUE9JTlRFUihzb2NrZXRQYWlyLnNlcnZlciksICZwaWQsICZlcnJvci5vdXRQ
dHIoKSkpIHsKKyAgICAgICAgZ19wcmludGVycigiVW5hYmxlIHRvIGZvcmsgYSBuZXcgV2ViUHJv
Y2VzczogJXMuXG4iLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KKworICAgIC8vIERvbid0IGV4cG9zZSB0aGUgcGFyZW50IHNvY2tldCB0byBw
b3RlbnRpYWwgZnV0dXJlIGNoaWxkcmVuLgorICAgIHdoaWxlIChmY250bChzb2NrZXRQYWlyLmNs
aWVudCwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgPT0gLTEpCisgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGVycm5vICE9IEVJTlRSKTsKKworICAgIGNsb3NlKHNvY2tldFBhaXIuY2xpZW50KTsKKyAgICBt
X3Byb2Nlc3NJZGVudGlmaWVyID0gcGlkOworCisgICAgLy8gV2UndmUgZmluaXNoZWQgbGF1bmNo
aW5nIHRoZSBwcm9jZXNzLCBtZXNzYWdlIGJhY2sgdG8gdGhlIG1haW4gcnVuIGxvb3AuCisgICAg
UmVmUHRyPFByb2Nlc3NMYXVuY2hlcj4gcHJvdGVjdG9yKHRoaXMpOworICAgIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciBzZXJ2ZXJTb2NrZXQgPSBzb2NrZXRQYWlyLnNlcnZlcjsKKyAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RvciwgcGlkLCBzZXJ2ZXJTb2NrZXRdIHsK
KyAgICAgICAgcHJvdGVjdG9yLT5kaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNzKHBpZCwgc2VydmVy
U29ja2V0KTsKKyAgICB9KTsKK30KKwordm9pZCBQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVBy
b2Nlc3MoKQoreworICAgIGlmIChtX2lzTGF1bmNoaW5nKSB7CisgICAgICAgIGludmFsaWRhdGUo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9wcm9jZXNzSWRlbnRpZmll
cikKKyAgICAgICAgcmV0dXJuOworCisgICAga2lsbChtX3Byb2Nlc3NJZGVudGlmaWVyLCBTSUdL
SUxMKTsKKyAgICBtX3Byb2Nlc3NJZGVudGlmaWVyID0gMDsKK30KKwordm9pZCBQcm9jZXNzTGF1
bmNoZXI6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCAx
YzhlZjQ2M2NjMi4uODQ3ZmI1YzMyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0yMjQsNyArMjI0LDcgQEAgcHJpdmF0ZToKIAogICAgIFdl
YlByZWZlcmVuY2VzJiBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdDsKIAotI2lmIFBM
QVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lk
IGNyZWF0ZUluc3BlY3RvcldpbmRvdygpOwogICAgIHZvaWQgdXBkYXRlSW5zcGVjdG9yV2luZG93
VGl0bGUoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
c3RlYm9hcmRQcm94eS5oCmluZGV4IDI2NTU3MzYxZjU1Li43NzJlMTA5MTVmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaApAQCAtOTQsNiArOTQs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UGFzdGVib2FyZFN0cmluZ0ZvclR5cGUoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29u
c3QgU3RyaW5nJiwgdWludDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICAgICB2b2lkIHNldFBhc3Rl
Ym9hcmRCdWZmZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgdWludDY0
X3Qgc2l6ZSwgdWludDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oR1RLKQogICAgIHZvaWQgd3JpdGVUb0NsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lLCBjb25zdCBXZWJTZWxlY3Rpb25EYXRhJik7CiAgICAgdm9pZCByZWFkRnJvbUNsaXBi
b2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXZWJTZWxlY3Rpb25EYXRhJik7CkBA
IC0xMDEsNyArMTAyLDE0IEBAIHByaXZhdGU6CiAgICAgV2ViRnJhbWVQcm94eSogbV9wcmltYXJ5
U2VsZWN0aW9uT3duZXIgeyBudWxscHRyIH07CiAgICAgV2ViRnJhbWVQcm94eSogbV9mcmFtZVdy
aXRpbmdUb0NsaXBib2FyZCB7IG51bGxwdHIgfTsKICNlbmRpZiAvLyBQTEFURk9STShHVEspCi0g
ICAgCisKKyNpZiBQTEFURk9STShXUEUpCisgICAgdm9pZCBnZXRQYXN0ZWJvYXJkVHlwZXMoVmVj
dG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcyk7CisgICAgdm9pZCByZWFkU3RyaW5nRnJvbVBh
c3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIFdU
Rjo6U3RyaW5nJik7CisgICAgdm9pZCB3cml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29uc3Qg
V2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKKyAgICB2b2lkIHdyaXRlU3RyaW5nVG9Q
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYpOwor
I2VuZGlmCisKICAgICBXZWJQcm9jZXNzUHJveHlMaXN0IG1fd2ViUHJvY2Vzc1Byb3h5TGlzdDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJk
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDczNmEwYWQ0NTFjLi43MDE1NDQzZWE4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1l
c3NhZ2VzLmluCkBAIC01NSw0ICs1NSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0ZWJvYXJkUHJv
eHkgewogICAgIFdyaXRlVG9DbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBzdHJ1Y3Qg
V2ViS2l0OjpXZWJTZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQogICAgIFJlYWRGcm9t
Q2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYlNl
bGVjdGlvbkRhdGEgcGFzdGVib2FyZENvbnRlbnQpCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQ
RSkKKyAgICBHZXRQYXN0ZWJvYXJkVHlwZXMoKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpCisg
ICAgUmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBTdHJpbmcgcGFzdGVi
b2FyZFR5cGUpIC0+IChTdHJpbmcgc3RyaW5nKQorICAgIFdyaXRlV2ViQ29udGVudFRvUGFzdGVi
b2FyZChzdHJ1Y3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQgY29udGVudCkKKyAgICBX
cml0ZVN0cmluZ1RvUGFzdGVib2FyZChTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyB0ZXh0
KQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAppbmRleCAwZDMwMmRkYWIxMy4uNGQzMjliNDBmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIFdlYlByb2Nlc3NQ
b29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmln
dXJhdGlvbikKICAgICBub3RpZnlUaGlzV2ViUHJvY2Vzc1Bvb2xXYXNDcmVhdGVkKCk7CiB9CiAK
LSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0o
V1BFKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAzNzBmZjJiYTFjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAK
QEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyLmgi
CisKKyNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3N0YXRpYyBUZXh0Q2hlY2tlclN0YXRlIHRleHRDaGVja2VyU3RhdGU7CisKK2Nv
bnN0IFRleHRDaGVja2VyU3RhdGUmIFRleHRDaGVja2VyOjpzdGF0ZSgpCit7CisgICAgcmV0dXJu
IHRleHRDaGVja2VyU3RhdGU7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldFRlc3RpbmdNb2Rl
KGJvb2wpCit7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OmlzVGVzdGluZ01vZGUoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFRleHRDaGVj
a2VyOjppc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nQWxsb3dlZCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldENv
bnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoYm9v
bCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjb250
aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFi
bGVkU3RhdGVDaGFuZ2VkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworaW50
NjRfdCBUZXh0Q2hlY2tlcjo6dW5pcXVlU3BlbGxEb2N1bWVudFRhZyhXZWJQYWdlUHJveHkqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFRl
eHRDaGVja2VyOjpjbG9zZVNwZWxsRG9jdW1lbnRXaXRoVGFnKGludDY0X3QpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y2hlY2tTcGVsbGluZ09mU3Ry
aW5nKGludDY0X3QsIFN0cmluZ1ZpZXcsIGludDMyX3QmLCBpbnQzMl90JikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjaGVja0dyYW1tYXJPZlN0cmlu
ZyhpbnQ2NF90LCBTdHJpbmdWaWV3LCBWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBp
bnQzMl90JiwgaW50MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBU
ZXh0Q2hlY2tlcjo6c3BlbGxpbmdVSUlzU2hvd2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnRvZ2dsZVNwZWxs
aW5nVUlJc1Nob3dpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4
dENoZWNrZXI6OnVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoaW50NjRfdCwgY29u
c3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVj
a2VyOjp1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoaW50NjRfdCwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgR3JhbW1hckRldGFpbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBUZXh0Q2hlY2tlcjo6Z2V0R3Vlc3Nlc0ZvcldvcmQoaW50NjRfdCwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgaW50MzJfdCwgVmVjdG9yPFN0cmluZz4mLCBib29sKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmxlYXJuV29yZChp
bnQ2NF90LCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgVGV4dENoZWNrZXI6Omlnbm9yZVdvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhQYXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbj4sIGludDMyX3QpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BF
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmFlZWUzYzE3Zgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVj
dG9yUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJJbnNwZWN0b3JQcm94eS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNw
ZWN0b3JQYWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNwZWN0b3JXaW5kb3coKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtT3BlbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1EaWRDbG9zZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1EaWRDbG9zZUZvckNyYXNoKCkK
K3sKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sK
K30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1IaWRlKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUJyaW5n
VG9Gcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1CcmluZ0luc3BlY3RlZFBhZ2VUb0Zyb250KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUlzRnJv
bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFVSTENoYW5nZWQoY29uc3Qg
U3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgV2ViSW5zcGVj
dG9yUHJveHk6Omluc3BlY3RvclBhZ2VVUkwoKQoreworICAgIHJldHVybiBTdHJpbmcoInJlc291
cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIik7Cit9CisK
K1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yVGVzdFBhZ2VVUkwoKQoreworICAg
IHJldHVybiBTdHJpbmcoInJlc291cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZh
Y2UvVGVzdC5odG1sIik7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9y
QmFzZVVSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNw
ZWN0b3IvVXNlckludGVyZmFjZS8iKTsKK30KKwordW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCit1bnNpZ25lZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtRGV0YWNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93
RHJhZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TYXZlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1BcHBlbmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0
dGFjaEF2YWlsYWJpbGl0eUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy93cGUvV2ViUGFnZVByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy93cGUvV2ViUGFnZVByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uNGEyMDJhYmViNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJzaXRlRGF0
YVN0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBXZWJQYWdlUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRh
cmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gIk1vemlsbGEvNS4wIChM
aW51eDsgeDg2XzY0IEdOVS9MaW51eCkgQXBwbGVXZWJLaXQvNjAxLjEgKEtIVE1MLCBsaWtlIEdl
Y2tvKSBWZXJzaW9uLzguMCBTYWZhcmkvNjAxLjEiOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6
c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpS
ZWNlbnRTZWFyY2g+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlBh
Z2VQcm94eTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxXZWJDb3Jl
OjpSZWNlbnRTZWFyY2g+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtUmVtb3ZlUmVjZW50U2VhcmNoZXMoc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZWRpdG9yU3RhdGVDaGFuZ2VkKGNvbnN0IEVkaXRvclN0YXRl
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFBy
b3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFBy
b3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGQzZDBl
YjQ2ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dl
YlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViUGFzdGVib2FyZFByb3h5LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtUGFzdGVib2FyZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7Cit2b2lkIFdlYlBhc3Rl
Ym9hcmRQcm94eTo6Z2V0UGFzdGVib2FyZFR5cGVzKFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJk
VHlwZXMpCit7CisgICAgUGxhdGZvcm1QYXN0ZWJvYXJkKCkuZ2V0VHlwZXMocGFzdGVib2FyZFR5
cGVzKTsKK30KKwordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OnJlYWRTdHJpbmdGcm9tUGFzdGVi
b2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgV1RGOjpT
dHJpbmcmIHZhbHVlKQoreworICAgIHZhbHVlID0gUGxhdGZvcm1QYXN0ZWJvYXJkKCkucmVhZFN0
cmluZyhpbmRleCwgcGFzdGVib2FyZFR5cGUpOworfQorCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94
eTo6d3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRX
ZWJDb250ZW50JiBjb250ZW50KQoreworICAgIFBsYXRmb3JtUGFzdGVib2FyZCgpLndyaXRlKGNv
bnRlbnQpOworfQorCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6d3JpdGVTdHJpbmdUb1Bhc3Rl
Ym9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQor
eworICAgIFBsYXRmb3JtUGFzdGVib2FyZCgpLndyaXRlKHBhc3RlYm9hcmRUeXBlLCB0ZXh0KTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2VzV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5mZjgxZmNkYTFjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwCkBAIC0wLDAgKzEsODcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdl
YlByZWZlcmVuY2VzOjpwbGF0Zm9ybUluaXRpYWxpemVTdG9yZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVTdHJpbmdW
YWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlQm9vbFZh
bHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVVSW50MzJWYWx1ZUZvcktl
eShjb25zdCBTdHJpbmcmLCB1aW50MzJfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZURvdWJsZVZhbHVlRm9yS2V5KGNv
bnN0IFN0cmluZyYsIGRvdWJsZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZUZsb2F0VmFsdWVGb3JLZXkoY29uc3QgU3Ry
aW5nJiwgZmxvYXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBXZWJQcmVm
ZXJlbmNlczo6cGxhdGZvcm1HZXRTdHJpbmdVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwg
U3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1HZXRCb29sVXNlclZhbHVlRm9yS2V5KGNv
bnN0IFN0cmluZyYsIGJvb2wmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldFVJbnQzMlVzZXJW
YWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCB1aW50MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRm
b3JtR2V0RG91YmxlVXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGRvdWJsZSYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQ
cm9jZXNzUG9vbFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nl
c3NQb29sV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmRl
NGYzMTcyNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3Bl
L1dlYlByb2Nlc3NQb29sV1BFLmNwcApAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBD
b3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcyBMdGQuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKworI2luY2x1ZGUgIkFQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAi
V2ViSW5zcGVjdG9yU2VydmVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKKy8vIEZJWE1FOiBNZXJnZSB3aXRoIFdl
YlByb2Nlc3NQb29sR3RrPyBBYnN0cmFjdCB0aGUgY29tbW9uIHBhcnRzPworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworI2lmIEVOQUJMRShJTlNQRUNUT1JfU0VSVkVSKQorc3RhdGljIHZvaWQgaW5p
dEluc3BlY3RvclNlcnZlcigpCit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxz
ZTsKKyAgICBpZiAoaW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGluaXRpYWxp
emVkID0gdHJ1ZTsKKyAgICBTdHJpbmcgc2VydmVyQWRkcmVzcyhnX2dldGVudigiV0VCS0lUX0lO
U1BFQ1RPUl9TRVJWRVIiKSk7CisKKyAgICBpZiAoIXNlcnZlckFkZHJlc3MuaXNOdWxsKCkpIHsK
KyAgICAgICAgU3RyaW5nIGJpbmRBZGRyZXNzID0gIjEyNy4wLjAuMSI7CisgICAgICAgIHVuc2ln
bmVkIHNob3J0IHBvcnQgPSAyOTk5OworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsK
KyAgICAgICAgc2VydmVyQWRkcmVzcy5zcGxpdCgnOicsIHJlc3VsdCk7CisKKyAgICAgICAgaWYg
KHJlc3VsdC5zaXplKCkgPT0gMikgeworICAgICAgICAgICAgYmluZEFkZHJlc3MgPSByZXN1bHRb
MF07CisgICAgICAgICAgICBib29sIG9rID0gZmFsc2U7CisgICAgICAgICAgICBwb3J0ID0gcmVz
dWx0WzFdLnRvSW50KCZvayk7CisgICAgICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICAg
ICAgcG9ydCA9IDI5OTk7CisgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBwYXJz
ZSB0aGUgcG9ydC4gVXNlIDI5OTkgaW5zdGVhZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHBhcnNlICVzLCB3cm9uZyBm
b3JtYXQ/IFVzZSAxMjcuMC4wLjE6Mjk5OSBpbnN0ZWFkLiIsIHNlcnZlckFkZHJlc3MudXRmOCgp
LmRhdGEoKSk7CisKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigp
Lmxpc3RlbihiaW5kQWRkcmVzcywgcG9ydCkpCisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxk
bid0IHN0YXJ0IGxpc3RlbmluZyBvbjogSVAgYWRkcmVzcz0lcywgcG9ydD0lZC4iLCBiaW5kQWRk
cmVzcy51dGY4KCkuZGF0YSgpLCBwb3J0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IExPRyhJbnNwZWN0b3JTZXJ2ZXIsICJUbyBzdGFydCBpbnNwZWN0b3Igc2VydmVyIHNldCBXRUJL
SVRfSU5TUEVDVE9SX1NFUlZFUiB0byAxMjcuMC4wLjE6Mjk5OSBmb3IgZXhhbXBsZS4iKTsKK30K
KyNlbmRpZgorCitXVEY6OlN0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZh
dWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4g
Y2FjaGVEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAi
d3BlIiwgImFwcGNhY2hlIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdG
cm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGNhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKwor
V1RGOjpTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdE1lZGlhQ2Fj
aGVEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdf
YnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJtZWRpYWNhY2hl
IiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKGNhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3Jl
KQorICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnJlZ2lzdGVyU2hhcmVkUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIoKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorewor
I2lmIEVOQUJMRShJTlNQRUNUT1JfU0VSVkVSKQorICAgIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKTsK
KyNlbmRpZgorCisgICAgcGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVkID0gbV9tZW1vcnlD
YWNoZURpc2FibGVkIHx8IGNhY2hlTW9kZWwoKSA9PSBDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI7
Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVn
YWN5UGxhdGZvcm1EZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNl
cl9kYXRhX2RpcigpLCAid3BlIiwgImRhdGFiYXNlcyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4g
V2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkYXRhYmFzZURpcmVj
dG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1E
ZWZhdWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2No
YXI+IGluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNl
cl9kYXRhX2RpcigpLCAid3BlIiwgImRhdGFiYXNlcyIsICJpbmRleGVkZGIiLCBudWxscHRyKSk7
CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24o
aW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vz
c1Bvb2w6OnBsYXRmb3JtRGVmYXVsdEljb25EYXRhYmFzZVBhdGgoKSBjb25zdAoreworICAgIEdV
bmlxdWVQdHI8Z2NoYXI+IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRf
dXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJpY29uZGF0YWJhc2UiLCBudWxscHRyKSk7CisgICAg
cmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGF0YWJh
c2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBs
YXRmb3JtRGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gc3RvcmFnZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9k
aXIoKSwgIndwZSIsICJsb2NhbHN0b3JhZ2UiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNv
cmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3RvcmFnZURpcmVjdG9yeS5n
ZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0
TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbWVk
aWFLZXlzU3RvcmFnZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9k
aXIoKSwgIndwZSIsICJtZWRpYWtleXMiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6
OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24obWVkaWFLZXlzU3RvcmFnZURpcmVj
dG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1E
ZWZhdWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGRp
c2tDYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCks
ICJ3cGUiLCAiY2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zy
b21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGlza0NhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30K
KworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRKYXZhU2NyaXB0
Q29uZmlndXJhdGlvbkRpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gamF2YVNj
cmlwdENvcmVDb25maWdEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFf
ZGlyKCksICJ3cGUiLCAiSmF2YVNjcmlwdENvcmVEZWJ1ZyIsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihqYXZhU2NyaXB0
Q29yZUNvbmZpZ0RpcmVjdG9yeS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQoreworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXgu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAppbmRleCA1NzUwOWI5N2E0Yy4uZTJi
ZTgwOWQ4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKQEAgLTU3LDcgKzU3LDcgQEAKIAogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCiAjZGVmaW5lIEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UgMQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcAppbmRleCBjOTFiNDVhOWM1MS4uMDhhNjhkMDc5ODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAKQEAgLTI5Nyw3ICsyOTcsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVu
dDo6cmVkbygpCiAgICAgbV9wYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpF
eGVjdXRlVW5kb1JlZG8oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdlYlBhZ2VQcm94eTo6UmVkbykp
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGVjdXRlVW5kb1JlZG86OlJlcGx5KHJlc3VsdCkp
OwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFU
Rk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKIHZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
ewogICAgIGlmIChtX3BhZ2UtPmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KGV2ZW50KSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNTUzN2YxOWYwNmQuLjJhYzVmZGE0
MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTc5OCw0ICsxNzk4
LDEzIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbmlzaGVkTG9hZGluZ0ljb24odWlu
dDY0X3QgbG9hZElkZW50aWZpZXIsIFNoYXJlZEJ1CiAgICAgfQogfQogCitib29sIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpzaG91bGRQYWludEJyb2tlbkltYWdlKGNvbnN0IFdlYkNvcmU6OlVSTCYp
IGNvbnN0Cit7CisjaWYgUExBVEZPUk0oV1BFKQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisg
ICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMjEyZjEwZmRkZTEuLjNmMDNlNjkzOWY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yNjIsNiArMjYyLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0lj
b24mLCB1aW50NjRfdCBjYWxsYmFja0lEKSBmaW5hbDsKICAgICB2b2lkIGZpbmlzaGVkTG9hZGlu
Z0ljb24odWludDY0X3QgbG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciopIGZp
bmFsOwogCisgICAgYm9vbCBzaG91bGRQYWludEJyb2tlbkltYWdlKGNvbnN0IFdlYkNvcmU6OlVS
TCYpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgV2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgUmVmUHRy
PFBsdWdpblZpZXc+IG1fcGx1Z2luVmlldzsKICAgICBib29sIG1faGFzU2VudFJlc3BvbnNlVG9Q
bHVnaW5WaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDJlZGY0
Yjc2ZDU0Li5iMjU3MTY4MGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cApAQCAtMzYwLDQgKzM2MCwzMSBAQCBSZWY8U2VsZWN0aW9uRGF0YT4gV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpyZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYgogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oR1RLKQogCisjaWYgUExBVEZPUk0oV1BFKQorLy8gUGFzdGVib2FyZFN0cmF0
ZWd5CisKK3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRUeXBlcyhWZWN0b3I8U3RyaW5n
PiYgdHlwZXMpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6R2V0UGFz
dGVib2FyZFR5cGVzKCksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldFBhc3RlYm9h
cmRUeXBlczo6UmVwbHkodHlwZXMpLCAwKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkVHlwZSkKK3sKKyAgICBTdHJpbmcgdmFsdWU7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhc3RlYm9hcmRQcm94eTo6UmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGluZGV4LCBwYXN0ZWJv
YXJkVHlwZSksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRTdHJpbmdGcm9tUGFz
dGVib2FyZDo6UmVwbHkodmFsdWUpLCAwKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3ZvaWQg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQ
YXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYXN0ZWJv
YXJkUHJveHk6OldyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChjb250ZW50KSwgMCk7Cit9CisK
K3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViUGFzdGVib2FyZFByb3h5OjpXcml0ZVN0cmluZ1RvUGFzdGVib2FyZChwYXN0ZWJvYXJkVHlw
ZSwgdGV4dCksIDApOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oV1BFKQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IGU0Mzg3Yzkz
MDIxLi5hZWM3OWJjZmMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC04
NiwxMCArODYsMTggQEAgcHJpdmF0ZToKICAgICBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29u
c3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICBsb25nIHNldFN0cmluZ0ZvclR5
cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdU
SykKICAgICB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSwgY29uc3QgV2ViQ29yZTo6U2VsZWN0aW9uRGF0YSYpIG92ZXJyaWRlOwogICAgIFJlZjxXZWJD
b3JlOjpTZWxlY3Rpb25EYXRhPiByZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKSBvdmVycmlkZTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZp
cnR1YWwgdm9pZCBnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgU3RyaW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3cml0
ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVu
dFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVkMDM0YjAy
NjczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6Omxv
b2tVcEluRGljdGlvbmFyeShXZWJDb3JlOjpGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworYm9vbCBXZWJDb250ZXh0TWVudUNsaWVudDo6aXNTcGVha2luZygpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViQ29udGV4
dE1lbnVDbGllbnQ6OnNwZWFrKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3RvcFNwZWFraW5nKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQ
RS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJkY2EzMDI0Y2Vk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApAQCAtMCwwICsxLDI0NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCisKKyNpbmNsdWRlICJQbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9FZGl0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dz
S2V5Ym9hcmRDb2Rlcy5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoZSBpZGVh
IGZvciB0aGUgYXJyYXkvbWFwIGJlbG93IGNvbWVzIGZyb20gQmxpbmsncyBFZGl0aW5nQmVoYXZp
b3IuY3BwLgorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgQ3RybEtleSAgPSAxIDw8IDA7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgQWx0S2V5ICAgPSAxIDw8IDE7CitzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU2hpZnRLZXkgPSAxIDw8IDI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgTWV0YUtleSAgPSAx
IDw8IDM7CisKKy8vIEtleXMgd2l0aCBzcGVjaWFsIG1lYW5pbmcuIFRoZXNlIHdpbGwgYmUgZGVs
ZWdhdGVkIHRvIHRoZSBlZGl0b3IgdXNpbmcKKy8vIHRoZSBleGVjQ29tbWFuZCgpIG1ldGhvZAor
c3RydWN0IEtleURvd25FbnRyeSB7CisgICAgdW5zaWduZWQgdmlydHVhbEtleTsKKyAgICB1bnNp
Z25lZCBtb2RpZmllcnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0cnVjdCBLZXlQ
cmVzc0VudHJ5IHsKKyAgICB1bnNpZ25lZCBjaGFyQ29kZTsKKyAgICB1bnNpZ25lZCBtb2RpZmll
cnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0YXRpYyBjb25zdCBLZXlEb3duRW50
cnkga2V5RG93bkVudHJpZXNbXSA9IHsKKyAgICB7IFZLX0xFRlQsICAgMCwgICAgICAgICAgICAg
ICAgICAiTW92ZUxlZnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfTEVGVCwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlTGVmdEFuZE1vZGlmeVNlbGVjdGlv
biIgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXksICAgICAgICAgICAg
Ik1vdmVXb3JkTGVmdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xF
RlQsICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVdvcmRMZWZ0QW5kTW9kaWZ5
U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19SSUdIVCwgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVSaWdodCIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgU2hpZnRLZXksICAgICAgICAg
ICAiTW92ZVJpZ2h0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICB9LAorICAgIHsgVktf
UklHSFQsICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZFJpZ2h0IiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1v
dmVXb3JkUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAg
ICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVXBB
bmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19QUklPUiwgIFNo
aWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgfSwKKyAgICB7IFZLX0RPV04sICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZURvd24iICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICBTaGlmdEtl
eSwgICAgICAgICAgICJNb3ZlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19ORVhULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlRG93bkFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgQ3RybEtleSB8IFNo
aWZ0S2V5LCAiTW92ZVBhcmFncmFwaEJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAg
IHsgVktfRE9XTiwgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFyYWdyYXBoRm9yd2FyZEFu
ZE1vZGlmeVNlbGVjdGlvbiIgIH0sCisgICAgeyBWS19QUklPUiwgIDAsICAgICAgICAgICAgICAg
ICAgIk1vdmVQYWdlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X05FWFQsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VEb3duIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICAwLCAgICAgICAgICAgICAgICAgICJN
b3ZlVG9CZWdpbm5pbmdPZkxpbmUiICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01F
LCAgIFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lQW5kTW9kaWZ5U2Vs
ZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAg
IEN0cmxLZXksICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAi
TW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIDAsICAgICAgICAgICAgICAgICAgIk1v
dmVUb0VuZE9mTGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwg
ICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9u
IiAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlVG9F
bmRPZkRvY3VtZW50IiAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0
cmxLZXkgfCBTaGlmdEtleSwKKyAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnRBbmRNb2RpZnlT
ZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfQkFD
SywgICAwLCAgICAgICAgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkRlbGV0
ZUJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwg
MCwgICAgICAgICAgICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfQkFDSywgICBDdHJsS2V5LCAgICAgICAgICAgICJEZWxldGVXb3Jk
QmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIEN0cmxL
ZXksICAgICAgICAgICAgIkRlbGV0ZVdvcmRGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdCJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVG9nZ2xlQm9sZCIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0knLCAgICAgICAgIEN0cmxLZXks
ICAgICAgICAgICJUb2dnbGVJdGFsaWMiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyAnVScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZVVuZGVybGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VTQ0FQRSwgMCwgICAgICAgICAgICAg
ICAgICAiQ2FuY2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfT0VNX1BFUklPRCwgQ3RybEtleSwgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19UQUIsICAgIDAsICAgICAgICAgICAgICAgICAg
Ikluc2VydFRhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RB
QiwgICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCAwLCAgICAgICAgICAgICAgICAgICJJbnNl
cnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4s
IEN0cmxLZXksICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3
bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRL
ZXkgfCBTaGlmdEtleSwgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19SRVRVUk4sIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydExpbmVCcmVh
ayIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAvLyBUaGVzZSBwcm9iYWJseSBuZWVk
IGhhbmRsaW5nIHNvbWV3aGVyZSBlbHNlIHNvIGRvIG5vdCBleGVjdXRlIHRoZW0uIFRoZQorICAg
IC8vICdDdXQnIGNvbW1hbmQgaXMgcmVtb3ZpbmcgdGV4dCBzbyBsZXQncyBhdm9pZCBsb3Npbmcg
dGhlIHVzZXIgbG9zaW5nIGRhdGEKKyAgICAvLyB1bnRpbCB3ZSBpbXBsZW1lbnQgY2xpcGJvYXJk
IHN1cHBvcnQgd2hlcmV2ZXIgaXQgc2hvdWxkIGJlLgorICAgIHsgVktfSU5TRVJULCBDdHJsS2V5
LCAgICAgICAgICAgICJDb3B5IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19JTlNFUlQsIFNoaWZ0S2V5LCAgICAgICAgICAgIlBhc3RlIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgU2hpZnRLZXksICAg
ICAgICAgICAiQ3V0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgJ0MnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJDb3B5IiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnVicsICAgICAgICAgQ3RybEtleSwgICAgICAg
ICAgIlBhc3RlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdW
JywgICAgICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJQYXN0ZUFuZE1hdGNoU3R5bGUiICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ1gnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJD
dXQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQScsICAg
ICAgICAgQ3RybEtleSwgICAgICAgICAgIlNlbGVjdEFsbCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7ICdaJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVW5kbyIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1onLCAgICAgICAg
IEN0cmxLZXkgfCBTaGlmdEtleSwgIlJlZG8iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyAnWScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlJlZG8iICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VSVCwgMCwgICAg
ICAgICAgICAgICAgICAiT3ZlcldyaXRlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorfTsKKworc3RhdGljIGNvbnN0IEtleVByZXNzRW50cnkga2V5UHJlc3NFbnRyaWVzW10gPSB7
CisgICAgeyAnXHQnLCAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydFRhYiIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdcdCcsICAgU2hpZnRLZXksICAgICAg
ICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgJ1xyJywgICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEN0cmxLZXksICAgICAgICAgICAg
Ikluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdc
cicsICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXksICAgICAgICAgICAgICJJbnNl
cnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAg
IEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChj
b25zdCBLZXlib2FyZEV2ZW50JiBldmVudCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPj4ga2V5RG93bkNvbW1hbmRzTWFwOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGludCwgY29uc3QgY2hhcio+PiBrZXlQcmVzc0NvbW1h
bmRzTWFwOworCisgICAgaWYgKGtleURvd25Db21tYW5kc01hcC5nZXQoKS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoa2V5RG93
bkVudHJpZXMpOyBpKyspCisgICAgICAgICAgICBrZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuc2V0
KGtleURvd25FbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtleURvd25FbnRyaWVzW2ldLnZp
cnR1YWxLZXksIGtleURvd25FbnRyaWVzW2ldLm5hbWUpOworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlQcmVzc0VudHJpZXMpOyBpKyspCisgICAg
ICAgICAgICBrZXlQcmVzc0NvbW1hbmRzTWFwLmdldCgpLnNldChrZXlQcmVzc0VudHJpZXNbaV0u
bW9kaWZpZXJzIDw8IDE2IHwga2V5UHJlc3NFbnRyaWVzW2ldLmNoYXJDb2RlLCBrZXlQcmVzc0Vu
dHJpZXNbaV0ubmFtZSk7CisgICAgfQorCisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAg
ICBpZiAoZXZlbnQuc2hpZnRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5Owor
ICAgIGlmIChldmVudC5hbHRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAg
ICBpZiAoZXZlbnQuY3RybEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQ3RybEtleTsKKyAg
ICBpZiAoZXZlbnQubWV0YUtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gTWV0YUtleTsKKwor
ICAgIGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkgeworICAg
ICAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQua2V5Q29kZSgpOworICAg
ICAgICByZXR1cm4gbWFwS2V5ID8ga2V5RG93bkNvbW1hbmRzTWFwLmdldCgpLmdldChtYXBLZXkp
IDogbnVsbHB0cjsKKyAgICB9CisKKyAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwg
ZXZlbnQuY2hhckNvZGUoKTsKKyAgICByZXR1cm4gbWFwS2V5ID8ga2V5UHJlc3NDb21tYW5kc01h
cC5nZXQoKS5nZXQobWFwS2V5KSA6IG51bGxwdHI7Cit9CisKK3N0YXRpYyB2b2lkIGhhbmRsZUtl
eVByZXNzKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudCYgcGxhdGZvcm1FdmVudCkKK3sKKyAgICBTdHJpbmcgY29tbWFuZE5hbWUg
PSBpbnRlcnByZXRLZXlFdmVudChldmVudCk7CisKKyAgICBpZiAoIWNvbW1hbmROYW1lLmlzRW1w
dHkoKSkgeworICAgICAgICBmcmFtZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKS5leGVj
dXRlKCk7CisgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAvLyBEb24ndCBpbnNlcnQgbnVsbCBvciBjb250cm9sIGNoYXJhY3Rl
cnMgYXMgdGhleSBjYW4gcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3VyCisgICAgaWYgKGV2
ZW50LmNoYXJDb2RlKCkgPCAnICcpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvbid0IGlu
c2VydCBhbnl0aGluZyBpZiBhIG1vZGlmaWVyIGlzIHByZXNzZWQgYW5kIGl0IGhhcyBub3QgYmVl
biBoYW5kbGVkIHlldAorICAgIGlmIChwbGF0Zm9ybUV2ZW50LmN0cmxLZXkoKSB8fCBwbGF0Zm9y
bUV2ZW50LmFsdEtleSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZnJhbWUuZWRpdG9y
KCkuaW5zZXJ0VGV4dChwbGF0Zm9ybUV2ZW50LnRleHQoKSwgJmV2ZW50KSkKKyAgICAgICAgZXZl
bnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlS2V5RG93bihG
cmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQmKQoreworICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2ZW50KGV2
ZW50KTsKKyAgICBpZiAoY29tbWFuZE5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBXZSBzaG91bGRuJ3QgaW5zZXJ0IHRleHQgdGhyb3VnaCB0aGUgZWRpdG9yLiBMZXQg
V2ViQ29yZSBkZWNpZGUKKyAgICAvLyBob3cgdG8gaGFuZGxlIHRoYXQgKHNheSwgVGFiLCB3aGlj
aCBjb3VsZCBhbHNvIGJlIHVzZWQgdG8KKyAgICAvLyBjaGFuZ2UgZm9jdXMpLgorICAgIEVkaXRv
cjo6Q29tbWFuZCBjb21tYW5kID0gZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21tYW5kTmFtZSk7
CisgICAgaWYgKGNvbW1hbmQuaXNUZXh0SW5zZXJ0aW9uKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGNvbW1hbmQuZXhlY3V0ZSgpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Cit9
CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KFdlYkNvcmU6Oktl
eWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIE5vZGUqIG5vZGUgPSBldmVudC0+dGFyZ2V0KCkt
PnRvTm9kZSgpOworICAgIEFTU0VSVChub2RlKTsKKyAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5k
b2N1bWVudCgpLmZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKworICAgIC8vIEZJWE1FOiBS
ZW9yZGVyIHRoZSBjaGVja3MgaW4gYSBtb3JlIHNlbnNpYmxlIHdheS4KKworICAgIGNvbnN0IFBs
YXRmb3JtS2V5Ym9hcmRFdmVudCogcGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOwor
ICAgIGlmICghcGxhdGZvcm1FdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgdGhp
cyB3YXMgYW4gSU1FIGV2ZW50IGRvbid0IGRvIGFueXRoaW5nLgorICAgIGlmIChwbGF0Zm9ybUV2
ZW50LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKSA9PSBWS19QUk9DRVNTS0VZKQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBEb24ndCBhbGxvdyB0ZXh0IGluc2VydGlvbiBmb3Igbm9kZXMgdGhh
dCBjYW5ub3QgZWRpdC4KKyAgICBpZiAoIWZyYW1lLT5lZGl0b3IoKS5jYW5FZGl0KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIFRoaXMgaXMganVzdCBhIG5vcm1hbCB0ZXh0IGluc2VydGlv
biwgc28gd2FpdCB0byBleGVjdXRlIHRoZSBpbnNlcnRpb24KKyAgICAvLyB1bnRpbCBhIGtleXBy
ZXNzIGV2ZW50IGhhcHBlbnMuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgaW5zZXJ0aW9uIHdp
bGwgbm90CisgICAgLy8gYmUgcmVmbGVjdGVkIGluIHRoZSBjb250ZW50cyBvZiB0aGUgZmllbGQg
dW50aWwgdGhlIGtleXVwIERPTSBldmVudC4KKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkua2V5cHJlc3NFdmVudCkKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleVByZXNzKCpm
cmFtZSwgKmV2ZW50LCAqcGxhdGZvcm1FdmVudCk7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleURvd24o
KmZyYW1lLCAqZXZlbnQsICpwbGF0Zm9ybUV2ZW50KTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGll
bnQ6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihXZWJDb3JlOjpLZXlib2FyZEV2ZW50KiBldmVu
dCkKK3sKKyAgICBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQqIHBsYXRmb3JtRXZlbnQgPSBl
dmVudC0+a2V5RXZlbnQoKTsKKyAgICBpZiAocGxhdGZvcm1FdmVudCAmJiBwbGF0Zm9ybUV2ZW50
LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKSA9PSBWS19QUk9DRVNTS0VZKQorICAgICAgICBldmVu
dC0+cHJldmVudERlZmF1bHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1
cE1lbnVXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93
cGUvV2ViUG9wdXBNZW51V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYmFiODM3YjBhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgorCisjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9p
ZCBXZWJQb3B1cE1lbnU6OnNldFVwUGxhdGZvcm1EYXRhKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCmluZGV4IDYw
ZTkxNjc5OWIzLi5kM2RmNDZhMTg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAt
NzQsMTAgKzc0LDEwIEBAIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpUaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlJiB3ZWJQCiAgICAgICAgIC8vIERvIG5v
dCBkbyBmcmFtZSBzeW5jIHdoZW4gcmVuZGVyaW5nIG9mZnNjcmVlbiBpbiB0aGUgd2ViIHByb2Nl
c3MgdG8gZW5zdXJlIHRoYXQgU3dhcEJ1ZmZlcnMgbmV2ZXIgYmxvY2tzLgogICAgICAgICAvLyBS
ZW5kZXJpbmcgdG8gdGhlIGFjdHVhbCBzY3JlZW4gd2lsbCBoYXBwZW4gbGF0ZXIgYW55d2F5IHNp
bmNlIHRoZSBVSSBwcm9jZXNzIHNjaGVkdWxlcyBhIHJlZHJhdyBmb3IgZXZlcnkgdXBkYXRlLAog
ICAgICAgICAvLyB0aGUgY29tcG9zaXRvciB3aWxsIHRha2UgY2FyZSBvZiBzeW5jaW5nIHRvIHZi
bGFuay4KLSAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUo
bV9jb21wb3NpdG9yQ2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZhY3RvciwgbV9zdXJmYWNlLT53
aW5kb3coKSwgVGhyZWFkZWRDb21wb3NpdG9yOjpTaG91bGREb0ZyYW1lU3luYzo6WWVzLCBwYWlu
dEZsYWdzKTsKKyAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVh
dGUobV9jb21wb3NpdG9yQ2xpZW50LCB3ZWJQYWdlLCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvciwg
bV9zdXJmYWNlLT53aW5kb3coKSwgVGhyZWFkZWRDb21wb3NpdG9yOjpTaG91bGREb0ZyYW1lU3lu
Yzo6WWVzLCBwYWludEZsYWdzKTsKICAgICAgICAgbV9sYXllclRyZWVDb250ZXh0LmNvbnRleHRJ
RCA9IG1fc3VyZmFjZS0+c3VyZmFjZUlEKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fY29tcG9z
aXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNsaWVudCwgc2Nh
bGVkU2l6ZSwgc2NhbGVGYWN0b3IpOworICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENv
bXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNpemUs
IHNjYWxlRmFjdG9yKTsKIAogICAgIGRpZENoYW5nZVZpZXdwb3J0KCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAppbmRleCAyZTc4
MGQ5MWJlNS4uNWYwOTNhYzdiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2lmIFBMQVRGT1JN
KENPQ09BKQogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgiCiAjaW5jbHVk
ZSAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCIKKyNlbGlmIFBMQVRGT1JNKFdQRSkK
KyNpbmNsdWRlICJEcmF3aW5nQXJlYVdQRS5oIgogI2Vsc2UKICNpbmNsdWRlICJEcmF3aW5nQXJl
YUltcGwuaCIKICNlbmRpZgpAQCAtNTUsNiArNTcsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWE+IERyYXdpbmdBcmVhOjpjcmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFn
ZQogI2VuZGlmCiAgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWU6CiAgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPih3
ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjYXNlIERyYXdp
bmdBcmVhVHlwZVdQRToKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0Fy
ZWFXUEU+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOwogI2Vsc2UKICAgICBjYXNlIERyYXdpbmdBcmVh
VHlwZUltcGw6CiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPERyYXdpbmdBcmVhSW1w
bD4od2ViUGFnZSwgcGFyYW1ldGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMjFiMTJjZGJlMjMuLmU1MTJiYmI2Nzg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDk1LDcg
KzM0OTUsNyBAQCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIFdlYlBhZ2U6
Om5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYQogICAgIHJldHVybiBtX25vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5nZXQoKTsKIH0KIAotI2lmICFQTEFURk9STShH
VEspICYmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0o
Q09DT0EpICYmICFQTEFURk9STShXUEUpCiBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXli
b2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIHsKICAgICBOb2RlKiBub2RlID0gZXZ0LT50
YXJnZXQoKS0+dG9Ob2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCAwYjA1NjFiYjE2Ny4uMjM0MWMxMzgwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTAxOCw3ICsxMDE4LDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRG
T1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRl
cnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3Np
dGluZ01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9D
b21wb3NpdGluZ01hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi40ZTIzZDM0MGQ5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXIuaCIKKworI2luY2x1
ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitDb21wb3NpdGluZ01hbmFnZXI6On5Db21wb3Np
dGluZ01hbmFnZXIoKQoreworICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25GZCA9PSAtMSk7Cit9CisK
K3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyOjplc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmIHdl
YlBhZ2UpCit7CisgICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGU7CisgICAgd2Vi
UGFnZS5zZW5kU3luYyhNZXNzYWdlczo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlz
aENvbm5lY3Rpb24oKSwKKyAgICAgICAgTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5
OjpFc3RhYmxpc2hDb25uZWN0aW9uOjpSZXBseShjb25uZWN0aW9uSGFuZGxlKSk7CisKKyAgICBt
X2Nvbm5lY3Rpb25GZCA9IGNvbm5lY3Rpb25IYW5kbGUucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI2MzFhMzFjOTk1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01h
bmFnZXIuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29tcG9zaXRpbmdNYW5hZ2VyX2gKKyNkZWZpbmUg
Q29tcG9zaXRpbmdNYW5hZ2VyX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgQ29tcG9zaXRpbmdN
YW5hZ2VyIGZpbmFsIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21wb3NpdGluZ01hbmFn
ZXIpOworcHVibGljOgorICAgIENvbXBvc2l0aW5nTWFuYWdlcigpID0gZGVmYXVsdDsKKyAgICB+
Q29tcG9zaXRpbmdNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGVzdGFibGlzaENvbm5lY3Rpb24oV2Vi
UGFnZSYpOworICAgIGludCByZWxlYXNlQ29ubmVjdGlvbkZkKCkgeyByZXR1cm4gc3RkOjpleGNo
YW5nZShtX2Nvbm5lY3Rpb25GZCwgLTEpOyB9OworCitwcml2YXRlOgorICAgIGludCBtX2Nvbm5l
Y3Rpb25GZCB7IC0xIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IENvbXBvc2l0aW5nTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMzQ0N2FjOGNiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcApAQCAtMCww
ICsxLDE5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFXUEUuaCIKKwor
I2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2Uu
aCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJl
bmNlc1N0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworRHJhd2luZ0FyZWFXUEU6OkRy
YXdpbmdBcmVhV1BFKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMmKQorICAgIDogRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlV1BFLCB3ZWJQYWdlKQor
eworICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRGb3JjZUNvbXBvc2l0aW5n
TW9kZSh0cnVlKTsKKyAgICBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKDApOworfQor
CitEcmF3aW5nQXJlYVdQRTo6fkRyYXdpbmdBcmVhV1BFKCkKK3sKK30KKwordm9pZCBEcmF3aW5n
QXJlYVdQRTo6bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKQoreworICAgIG1fd2ViUGFnZS5zZW5k
KE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKDAsIG1fbGF5ZXJUcmVlSG9zdC0+bGF5ZXJUcmVlQ29udGV4dCgpKSk7Cit9CisKK3ZvaWQg
RHJhd2luZ0FyZWFXUEU6OnNldE5lZWRzRGlzcGxheSgpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJU
cmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXROb25Db21wb3NpdGVkQ29udGVudHNO
ZWVkRGlzcGxheSgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzZXROZWVkc0Rpc3BsYXlJ
blJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0
KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNw
bGF5SW5SZWN0KHJlY3QpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY3JvbGwoY29uc3Qg
SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYpCit7CisgICAgQVNTRVJUKG1fbGF5
ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zY3JvbGxOb25Db21wb3NpdGVkQ29u
dGVudHMoc2Nyb2xsUmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnBhZ2VCYWNrZ3Jv
dW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAg
ICAgICAgbV9sYXllclRyZWVIb3N0LT5wYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQo
KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6Zm9yY2VSZXBhaW50KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitib29sIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJlcGFpbnRBc3lu
Yyh1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3QgJiYg
bV9sYXllclRyZWVIb3N0LT5mb3JjZVJlcGFpbnRBc3luYyhjYWxsYmFja0lEKTsKK30KKwordm9p
ZCBEcmF3aW5nQXJlYVdQRTo6c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sIGZyb3plbikK
K3sKKyAgICBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4gPSBmcm96ZW47Cit9CisKK3ZvaWQgRHJh
d2luZ0FyZWFXUEU6OnNldFBhaW50aW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0
IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQoreworICAgIG1fd2ViUGFnZS5jb3JlUGFnZSgp
LT5zZXR0aW5ncygpLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6Zm9yY2VDb21wb3NpdGluZ01vZGVLZXkoKSkpOworfQor
Cit2b2lkIERyYXdpbmdBcmVhV1BFOjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAg
ICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbnRlbnRzU2l6ZUNoYW5nZWQoc2l6ZSk7Cit9CisKK0dy
YXBoaWNzTGF5ZXJGYWN0b3J5KiBEcmF3aW5nQXJlYVdQRTo6Z3JhcGhpY3NMYXllckZhY3Rvcnko
KQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIHJldHVybiBtX2xheWVyVHJl
ZUhvc3QtPmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKEdyYXBoaWNzTGF5
ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAg
bV9sYXllclRyZWVIb3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xheWVyKTsK
K30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKQoreworICAgIHNjaGVkdWxlQ29tcG9z
aXRpbmdMYXllckZsdXNoKCk7Cit9CisKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVf
RElTUExBWV9NT05JVE9SKQorUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4g
RHJhd2luZ0FyZWFXUEU6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3Bs
YXlJRCBkaXNwbGF5SUQpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgcmV0
dXJuIG1fbGF5ZXJUcmVlSG9zdC0+Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJ
RCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCit2b2lkIERyYXdpbmdBcmVh
V1BFOjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqIGZyYW1l
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiB2aWV3T3ZlcmxheVJvb3RMYXllcikKK3sKKyAgICBp
ZiAoIWZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQo
bV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdPdmVybGF5Um9v
dExheWVyKHZpZXdPdmVybGF5Um9vdExheWVyKTsKK30KKworI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDU19USFJFQURFRCkKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRpZENoYW5nZVZpZXdwb3J0
QXR0cmlidXRlcyhXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmJikKK3sKK30KKyNlbmRpZgor
CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpCit2
b2lkIERyYXdpbmdBcmVhV1BFOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQorewor
fQorI2VuZGlmCisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
KHVpbnQ2NF90LCBib29sLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgc2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQorewor
ICAgIG1fd2ViUGFnZS5zZXREZXZpY2VTY2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7Cisg
ICAgbV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7CisgICAgbV93ZWJQYWdlLmxheW91dElmTmVlZGVk
KCk7CisgICAgbV93ZWJQYWdlLnNjcm9sbE1haW5GcmFtZUlmTm90QXRNYXhTY3JvbGxQb3NpdGlv
bihzY3JvbGxPZmZzZXQpOworCisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9s
YXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdlKG1fd2ViUGFnZS5zaXplKCkpOworfQorCit2b2lk
IERyYXdpbmdBcmVhV1BFOjpkaWRVcGRhdGUoKQoreworfQorCit2b2lkIERyYXdpbmdBcmVhV1BF
OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIpCit7CisgICAgQVNTRVJUKCFtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVl
SG9zdCA9IExheWVyVHJlZUhvc3Q6OmNyZWF0ZShtX3dlYlBhZ2UpOworICAgIG1fbGF5ZXJUcmVl
SG9zdC0+c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoZ3JhcGhpY3NMYXllcik7CisgICAgbV9sYXll
clRyZWVIb3N0LT5zZXRTaG91bGROb3RpZnlBZnRlck5leHRTY2hlZHVsZWRMYXllckZsdXNoKHRy
dWUpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2l6ZURpZENoYW5nZShtX3dlYlBhZ2Uuc2l6ZSgp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ2YzUzNTRlNGZkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5oCkBA
IC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBEcmF3aW5nQXJlYVdQRV9oCisjZGVmaW5lIERyYXdpbmdBcmVhV1BF
X2gKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVIb3N0
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVdQRSA6IHB1Ymxp
YyBEcmF3aW5nQXJlYSB7CitwdWJsaWM6CisgICAgRHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYsIGNv
bnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJl
YVdQRSgpOworCisgICAgdm9pZCBsYXllckhvc3REaWRGbHVzaExheWVycygpIG92ZXJyaWRlOwor
Citwcml2YXRlOgorICAgIC8vIERyYXdpbmdBcmVhCisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRz
RGlzcGxheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJl
Y3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHBhZ2VC
YWNrZ3JvdW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBmb3JjZVJlcGFpbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50
QXN5bmModWludDY0X3QgY2FsbGJhY2tJRCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dExheWVyVHJlZVN0YXRlSXNGcm96ZW4oYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVy
VHJlZVN0YXRlSXNGcm96ZW47IH0KKyAgICB2aXJ0dWFsIExheWVyVHJlZUhvc3QqIGxheWVyVHJl
ZUhvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVyVHJlZUhvc3QuZ2V0KCk7IH0K
KworICAgIHZpcnR1YWwgdm9pZCBzZXRQYWludGluZ0VuYWJsZWQoYm9vbCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3Rv
cmUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFu
Z2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpIG92ZXJyaWRlOworCisjaWYgVVNFKFJFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyAgICB2aXJ0dWFsIFJlZlB0cjxX
ZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRv
cihXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCkgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUq
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisKKyNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0
QXR0cmlidXRlcyhXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmJikgb3ZlcnJpZGU7CisjZW5k
aWYKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykgfHwgVVNFKFRFWFRVUkVfTUFQUEVS
KQorICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBvdmVy
cmlkZTsKKyNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
KHVpbnQ2NF90LCBib29sLCBmbG9hdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkg
b3ZlcnJpZGU7CisKKyAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopOworCisgICAgLy8gV2hlbiB0cnVlLCB3ZSBtYWludGFpbiB0
aGUgbGF5ZXIgdHJlZSBpbiBpdHMgY3VycmVudCBzdGF0ZSBieSBub3QgbGVhdmluZyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZyBtb2RlCisgICAgLy8gYW5kIG5vdCBzY2hlZHVsaW5nIGxheWVyIGZs
dXNoZXMuCisgICAgYm9vbCBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4geyBmYWxzZSB9OworCisg
ICAgLy8gVGhlIGxheWVyIHRyZWUgaG9zdCB0aGF0IGhhbmRsZXMgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcuCisgICAgUmVmUHRyPExheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRHJhd2luZ0FyZWFXUEVfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0
b3JVSVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYklu
c3BlY3RvclVJV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
NzRjODQ0YmNiYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJV1BFLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSS5oIgorCisjaW5jbHVkZSAiUmVtb3Rl
V2ViSW5zcGVjdG9yVUkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViSW5zcGVj
dG9yVUk6OmNhblNhdmUoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworU3RyaW5nIFdlYklu
c3BlY3RvclVJOjpsb2NhbGl6ZWRTdHJpbmdzVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6bG9jYWxpemVkU3RyaW5nc1VSTCgp
Cit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVj
dG9yV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5z
cGVjdG9yV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzRl
MGM2NWUwZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBXZWJJbnNwZWN0b3I6OmNhblNhdmUoKSBjb25z
dAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworU3RyaW5nIFdlYkluc3BlY3Rvcjo6bG9jYWxp
emVkU3RyaW5nc1VSTCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmVmMjRlNWRlZjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBh
Z2VXUEUuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBh
Z2UuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
ZXR0aW5ncy5oPgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldl
YlByZWZlcmVuY2VzU3RvcmUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9
CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EZXRhY2goKQoreworfQorCit2b2lkIFdlYlBhZ2U6
OnBsYXRmb3JtRWRpdG9yU3RhdGUoRnJhbWUmLCBFZGl0b3JTdGF0ZSYsIEluY2x1ZGVQb3N0TGF5
b3V0RGF0YUhpbnQpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBX
ZWJQYWdlOjpwbGF0Zm9ybVByZWZlcmVuY2VzRGlkQ2hhbmdlKGNvbnN0IFdlYlByZWZlcmVuY2Vz
U3RvcmUmIHN0b3JlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViUGFn
ZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZl
bnQmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIFdlYlBhZ2U6OnBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJQ
YWdlOjpjYWNoZWRSZXNwb25zZU1JTUVUeXBlRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgV2ViUGFnZTo6
cGxhdGZvcm1DYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJQYWdl
OjpjYWNoZWRTdWdnZXN0ZWRGaWxlbmFtZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBXZWJQYWdlOjpjYWNoZWRSZXNwb25zZURhdGFGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitTdHJpbmcgV2Vi
UGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNz
TWFpbldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFp
bldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0NjEwNzNi
ZTNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2Vi
UHJvY2Vzc01haW5XUEUuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJp
Z2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc01h
aW5Vbml4LmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluLmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5V1BFLmg+CisjaW5j
bHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorCisjaW5jbHVkZSA8aW9z
dHJlYW0+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgV2ViUHJvY2Vzc01haW4gZmluYWw6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluQmFz
ZSB7CitwdWJsaWM6CisgICAgYm9vbCBwbGF0Zm9ybUluaXRpYWxpemUoKSBvdmVycmlkZQorICAg
IHsKKyAgICAgICAgLy8gVE9ETzogV3JhcCB3aXRoICNpZm5kZWYgTkRFQlVHCisgICAgICAgIGlm
IChnX2dldGVudigiV0VCS0lUMl9QQVVTRV9XRUJfUFJPQ0VTU19PTl9MQVVOQ0giKSkgeworICAg
ICAgICAgICAgZ19wcmludGVycigiV2ViUHJvY2VzcyBQSUQ6ICVkXG4iLCBnZXRwaWQoKSk7Cisg
ICAgICAgICAgICBXVEY6OnNsZWVwKDMwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIGJvb2wgcGFyc2VDb21tYW5kTGluZShpbnQgYXJnYywgY2hhcioq
IGFyZ3YpIG92ZXJyaWRlCisgICAgeworICAgICAgICBBU1NFUlQoYXJnYyA9PSAzKTsKKyAgICAg
ICAgaWYgKGFyZ2MgPCAzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlm
ICghQ2hpbGRQcm9jZXNzTWFpbkJhc2U6OnBhcnNlQ29tbWFuZExpbmUoYXJnYywgYXJndikpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaW50IHdwZUZkID0gYXRvaShhcmd2
WzJdKTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKAorICAgICAgICAgICAgW3dw
ZUZkXSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5
V1BFPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkpOworICAgICAgICAgICAgICAg
IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNw
bGF5KCkpLmluaXRpYWxpemUod3BlRmQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KK307CisKK2ludCBXZWJQcm9jZXNzTWFpblVuaXgoaW50IGFyZ2MsIGNo
YXIqKiBhcmd2KQoreworICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPFdlYlByb2Nlc3MsIFdl
YlByb2Nlc3NNYWluPihhcmdjLCBhcmd2KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9jb25maWcuaCBiL1NvdXJjZS9XZWJLaXQyL2NvbmZp
Zy5oCmluZGV4IGM2M2QxYTI2Zjc5Li4zNDc5YjFlZDMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvY29uZmlnLmgKKysrIGIvU291cmNlL1dlYktpdDIvY29uZmlnLmgKQEAgLTU4LDcgKzU4
LDcgQEAKICNkZWZpbmUgUExVR0lOX0FSQ0hJVEVDVFVSRShBUkNIKSAoZGVmaW5lZCBQTFVHSU5f
QVJDSElURUNUVVJFXyMjQVJDSCAmJiBQTFVHSU5fQVJDSElURUNUVVJFXyMjQVJDSCkKIAogI2lm
bmRlZiBFTkFCTEVfSU5TUEVDVE9SX1NFUlZFUgotI2lmIEVOQUJMRShXRUJfU09DS0VUUykgJiYg
UExBVEZPUk0oR1RLKQorI2lmIEVOQUJMRShXRUJfU09DS0VUUykgJiYgKFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9TRVJWRVIgMQogI2Vu
ZGlmCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dwZS93cGUtd2Via2l0LnBj
LmluIGIvU291cmNlL1dlYktpdDIvd3BlL3dwZS13ZWJraXQucGMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5OWMwMjUxODE0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvd3BlL3dwZS13ZWJraXQucGMuaW4KQEAgLTAsMCArMSwxMSBAQAorcHJl
Zml4PUBDTUFLRV9JTlNUQUxMX1BSRUZJWEAKK2V4ZWNfcHJlZml4PSR7cHJlZml4fQorbGliZGly
PUBMSUJfSU5TVEFMTF9ESVJACitpbmNsdWRlZGlyPSR7cHJlZml4fS9pbmNsdWRlCisKK05hbWU6
IFdlYktpdDIKK0Rlc2NyaXB0aW9uOiBXUEUtZmxhdm9yZWQgV2ViIGVuZ2luZQorVmVyc2lvbjog
QFBST0pFQ1RfVkVSU0lPTkAKK1JlcXVpcmVzLnByaXZhdGU6IGdsaWItMi4wIGxpYnNvdXAtMi40
CitMaWJzOiAtTCR7bGliZGlyfSAtbFdQRVdlYktpdCAtbFdQRQorQ2ZsYWdzOiAtSSR7aW5jbHVk
ZWRpcn0vd3BlLUBXUEVfQVBJX1ZFUlNJT05AIC1JJHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElf
VkVSU0lPTkAvV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZExpYkdCTS5jbWFrZSBi
L1NvdXJjZS9jbWFrZS9GaW5kTGliR0JNLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kMjA5MWNiZmI0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFr
ZS9GaW5kTGliR0JNLmNtYWtlCkBAIC0wLDAgKzEsNDYgQEAKKyMgLSBUcnkgdG8gZmluZCBnYm0u
CisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgTElCR0JNX0lOQ0xVREVfRElS
UyAtIHRoZSBnYm0gaW5jbHVkZSBkaXJlY3RvcmllcworIyAgTElCR0JNX0xJQlJBUklFUyAtIGxp
bmsgdGhlc2UgdG8gdXNlIGdibS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IKKyMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBD
X0xJQkdCTSBnYm0pCisKK2ZpbmRfcGF0aChMSUJHQk1fSU5DTFVERV9ESVJTCisgICAgTkFNRVMg
Z2JtLmgKKyAgICBISU5UUyAke1BDX0xJQkdCTV9JTkNMVURFX0RJUlN9ICR7UENfTElCR0JNX0lO
Q1VERURJUn0KKykKKworZmluZF9saWJyYXJ5KExJQkdCTV9MSUJSQVJJRVMKKyAgICBOQU1FUyBn
Ym0KKyAgICBISU5UUyAke1BDX0xJQkdCTV9MSUJSQVJZX0RJUlN9ICR7UENfTElCR0JNX0xJQkRJ
Un0KKykKKworaW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFD
S0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhMSUJHQk0gREVGQVVMVF9NU0cgTElCR0JNX0xJQlJB
UklFUykKKworbWFya19hc19hZHZhbmNlZChMSUJHQk1fSU5DTFVERV9ESVJTIExJQkdCTV9MSUJS
QVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQtbWVzYS5jbWFr
ZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MTYxNTRlNjExOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAK
KyMgLSBUcnkgdG8gZmluZCBXUEUtbWVzYS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5l
CisjCisjICBXUEVfTUVTQV9GT1VORCAtIHN5c3RlbSBoYXMgV1BFLW1lc2EuCisjICBXUEVfTUVT
QV9JTkNMVURFX0RJUlMgLSB0aGUgV1BFLW1lc2EgaW5jbHVkZSBkaXJlY3RvcmllcworIyAgV1BF
X01FU0FfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BFLW1lc2EuCisjCisjIENvcHly
aWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUwor
IyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksCisjIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25m
aWcpCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19XUEVfTUVTQSBRVUlFVCB3cGUtbWVzYSkKKworZmlu
ZF9wYXRoKFdQRV9NRVNBX0lOQ0xVREVfRElSUworICAgIE5BTUVTIHdwZS1tZXNhL3ZpZXctYmFj
a2VuZC1leHBvcnRhYmxlLWRtYS1idWYuaAorICAgIEhJTlRTICR7UENfV1BFX01FU0FfSU5DTFVE
RURJUn0gJHtQQ19XUEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGlicmFyeShXUEVf
TUVTQV9MSUJSQVJJRVMKKyAgICBOQU1FUyBXUEVCYWNrZW5kLW1lc2EKKyAgICBISU5UUyAke1BD
X1dQRV9NRVNBX0xJQkRJUn0gJHtQQ19XUEVfTUVTQV9MSUJSQVJZX0RJUlN9CispCisKK21hcmtf
YXNfYWR2YW5jZWQoV1BFX01FU0FfSU5DTFVERV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKKwor
aW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5E
TEVfU1RBTkRBUkRfQVJHUyhXUEVfTUVTQSBSRVFVSVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVf
RElSUyBXUEVfTUVTQV9MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQ
RUJhY2tlbmQuY21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21ha2UKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM3YTkzZDAwNTE3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLmNtYWtlCkBAIC0wLDAgKzEsNDcg
QEAKKyMgLSBUcnkgdG8gZmluZCBXUEUuCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQor
IworIyAgV1BFX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUuCisjICBXUEVfSU5DTFVERV9ESVJTIC0g
dGhlIFdQRSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBXUEVfTElCUkFSSUVTIC0gbGluayB0aGVz
ZSB0byB1c2UgV1BFLgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfV1BFIFFV
SUVUIHdwZSkKKworZmluZF9wYXRoKFdQRV9JTkNMVURFX0RJUlMKKyAgICBOQU1FUyB3cGUvbG9h
ZGVyLmgKKyAgICBISU5UUyAke1BDX1dQRV9JTkNMVURFRElSfSAke1BDX1dQRV9JTkNMVURFX0RJ
UlN9CispCisKK2ZpbmRfbGlicmFyeShXUEVfTElCUkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2Vu
ZAorICAgIEhJTlRTICR7UENfV1BFX0xJQkRJUn0gJHtQQ19XUEVfTElCUkFSWV9ESVJTfQorKQor
CittYXJrX2FzX2FkdmFuY2VkKFdQRV9JTkNMVURFX0RJUlMgV1BFX0xJQlJBUklFUykKKworaW5j
bHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVf
U1RBTkRBUkRfQVJHUyhXUEUgUkVRVUlSRURfVkFSUyBXUEVfSU5DTFVERV9ESVJTIFdQRV9MSUJS
QVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5hMjg3MDYzZTEyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zV1BFLmNtYWtlCkBAIC0wLDAgKzEsMTM4IEBACitpbmNsdWRlKEdOVUluc3RhbGxEaXJzKQor
CitzZXQoUFJPSkVDVF9WRVJTSU9OX01BSk9SIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX01JTk9S
IDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX1BBVENIIDIwMTcwMzMwKQorc2V0KFBST0pFQ1RfVkVS
U0lPTiAke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0uJHtQUk9KRUNUX1ZFUlNJT05fTUlOT1J9LiR7
UFJPSkVDVF9WRVJTSU9OX1BBVENIfSkKK3NldChXUEVfQVBJX1ZFUlNJT04gMC4xKQorCitpZiAo
V1RGX0NQVV9YODZfNjQpCisgICAgc2V0KEVOQUJMRV9GVExfREVGQVVMVCBPTikKK2Vsc2UgKCkK
KyAgICBzZXQoRU5BQkxFX0ZUTF9ERUZBVUxUIE9GRikKK2VuZGlmICgpCisKK1dFQktJVF9PUFRJ
T05fQkVHSU4oKQorCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfM0Rf
VFJBTlNGT1JNUyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1JFR0lPTlMgUFVCTElDIE9OKQorV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0IFBVQkxJ
QyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9EQVRBQkFTRV9Q
Uk9DRVNTIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSBQVUJMSUMgT0ZGKQorV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZUTF9KSVQgUFJJVkFURSAke0VO
QUJMRV9GVExfREVGQVVMVH0pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfR0FNRVBBRCBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX0dFT0xPQ0FUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSBQUklWQVRFIE9OKQorV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBQ
UklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJ
QV9DT05UUk9MU19TQ1JJUFQgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX01FRElBX1NPVVJDRSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQUklWQVRFIE9GRikK
K1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9UT1VDSF9FVkVOVFMgUFVC
TElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJREVPIFBV
QkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFT19U
UkFDSyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
VklFV19NT0RFX0NTU19NRURJQSBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfV0VCX0FOSU1BVElPTlMgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfQVVESU8gUFVCTElDIE9OKQorV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBPTikKK1dFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIFBVQkxJQyBPTikKKwor
V0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9HTCAiV2hldGhlciB0byBlbmFibGUg
c3VwcG9ydCBmb3IgR1N0cmVhbWVyIEdMIiBQUklWQVRFIE9GRikKKworV0VCS0lUX09QVElPTl9F
TkQoKQorCitzZXQoRU5BQkxFX1dFQkNPUkUgT04pCitzZXQoRU5BQkxFX1dFQktJVCBPRkYpCitz
ZXQoRU5BQkxFX1dFQktJVDIgT04pCitzZXQoRU5BQkxFX0FQSV9URVNUUyAke0RFVkVMT1BFUl9N
T0RFfSkKK3NldChFTkFCTEVfVE9PTFMgT04pCisKK3NldChXVEZfTElCUkFSWV9UWVBFIFNUQVRJ
QykKK3NldChKYXZhU2NyaXB0Q29yZV9MSUJSQVJZX1RZUEUgU1RBVElDKQorc2V0KFdlYkNvcmVf
TElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChXZWJLaXQyX09VVFBVVF9OQU1FIFdQRVdlYktpdCkK
K3NldChXZWJLaXQyX1dlYlByb2Nlc3NfT1VUUFVUX05BTUUgV1BFV2ViUHJvY2VzcykKK3NldChX
ZWJLaXQyX05ldHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FIFdQRU5ldHdvcmtQcm9jZXNzKQorc2V0
KFdlYktpdDJfRGF0YWJhc2VQcm9jZXNzX09VVFBVVF9OQU1FIFdQRURhdGFiYXNlUHJvY2VzcykK
KworZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShUaHJlYWRzIFJFUVVJ
UkVEKQorZmluZF9wYWNrYWdlKFpMSUIgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoR0xJQiAyLjQw
LjAgUkVRVUlSRUQgQ09NUE9ORU5UUyBnaW8gZ2lvLXVuaXggZ29iamVjdCBndGhyZWFkIGdtb2R1
bGUpCitmaW5kX3BhY2thZ2UoR251VExTIDMuMC4wIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2Uo
Q2Fpcm8gMS4xMC4yIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVR
VUlSRUQpCitmaW5kX3BhY2thZ2UoRnJlZXR5cGUyIDIuNC4yIFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKEhhcmZCdXp6IDAuOS4xOCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShKUEVHIFJFUVVJUkVE
KQorZmluZF9wYWNrYWdlKExpYkdjcnlwdCAxLjYuMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShM
aWJTb3VwIDIuNDIuMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYbWwyIDIuOC4wIFJFUVVJ
UkVEKQorZmluZF9wYWNrYWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2Uo
UE5HIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2Fn
ZShXZWJQIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2UoT3BlbkdMRVMyIFJFUVVJUkVEKQorZmlu
ZF9wYWNrYWdlKEVHTCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKFdQRUJhY2tlbmQgUkVRVUlS
RUQpCisKK3NldChVU0VfWERHTUlNRSBPTikKKworaWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVf
V0VCX0FVRElPKQorICAgIHNldChHU1RSRUFNRVJfQ09NUE9ORU5UUyBhcHAgYXVkaW8gcGJ1dGls
cykKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfR1NUUkVBTUVSIFRSVUUpCisgICAg
aWYgKEVOQUJMRV9WSURFTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVO
VFMgdmlkZW8gdGFnKQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoRU5BQkxFX1dFQl9BVURJTykK
KyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgZmZ0KQorICAgICAgICBT
RVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfV0VCQVVESU9fR1NUUkVBTUVSIFRSVUUpCisgICAg
ZW5kaWYgKCkKKworICAgIGZpbmRfcGFja2FnZShHU3RyZWFtZXIgMS4yLjMgUkVRVUlSRUQgQ09N
UE9ORU5UUyAke0dTVFJFQU1FUl9DT01QT05FTlRTfSkKKworICAgICMgRklYTUU6IFdoYXQgYWJv
dXQgTVBFR1RTIHN1cHBvcnQ/IFVTRV9HU1RSRUFNRVJfTVBFR1RTPworZW5kaWYgKCkKKworaWYg
KEVOQUJMRV9NRURJQV9TVFJFQU0gT1IgRU5BQkxFX1dFQl9SVEMpCisgICAgZmluZF9wYWNrYWdl
KE9wZW5XZWJSVEMpCisgICAgaWYgKE5PVCBPUEVOV0VCUlRDX0ZPVU5EKQorICAgICAgICBtZXNz
YWdlKEZBVEFMX0VSUk9SICJPcGVuV2ViUlRDIGlzIG5lZWRlZCBmb3IgRU5BQkxFX01FRElBX1NU
UkVBTSBhbmQgRU5BQkxFX1dFQl9SVEMuIikKKyAgICBlbmRpZiAoKQorICAgIFNFVF9BTkRfRVhQ
T1NFX1RPX0JVSUxEKFVTRV9PUEVOV0VCUlRDIFRSVUUpCitlbmRpZiAoKQorCitpZiAoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyAgICBmaW5kX3BhY2thZ2UoQ2Fpcm9HTCAxLjEwLjIg
UkVRVUlSRUQgQ09NUE9ORU5UUyBjYWlyby1lZ2wpCitlbmRpZiAoKQorCithZGRfZGVmaW5pdGlv
bnMoLURCVUlMRElOR19XUEVfXz0xKQorYWRkX2RlZmluaXRpb25zKC1EREFUQV9ESVI9IiR7Q01B
S0VfSU5TVEFMTF9EQVRBRElSfSIpCisKK3NldChVU0VfVURJUzg2IDEpCisKK1NFVF9BTkRfRVhQ
T1NFX1RPX0JVSUxEKFVTRV9PUEVOR0xfRVNfMiBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJ
TEQoVVNFX0VHTCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfR1JBUEhJ
Q1NfQ09OVEVYVF8zRCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVS
RV9NQVBQRVIgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9URVhUVVJFX01BUFBF
Ul9HTCBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RJTEVEX0JBQ0tJTkdfU1RP
UkUgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElD
UyBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0NPT1JESU5BVEVEX0dSQVBISUNT
X1RIUkVBREVEIFRSVUUpCisKK3NldChGT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMpCisKKyMgQnVpbGQgd2l0aCAtZnZpc2liaWxp
dHk9aGlkZGVuIHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCisjIE5v
dCB0byBiZSB1c2VkIHdoZW4gYnVpbGRpbmcgdGhlIFdlYktpdFRlc3RSdW5uZXIgbGlicmFyeS4K
K2lmIChOT1QgREVWRUxPUEVSX01PREUpCisgICAgc2V0KENNQUtFX0NfRkxBR1NfUkVMRUFTRSAi
JHtDTUFLRV9DX0ZMQUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4iKQorICAgIHNldChD
TUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiJHtDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRX0gLWZ2aXNp
YmlsaXR5PWhpZGRlbiAtZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW4iKQorZW5kaWYgKCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSBi
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQppbmRleCBkNTgw
MGExZTlkNC4uZWIyMGY3MGYzZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQorKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
dC1wcm9kdWN0LWFyY2hpdmUKQEAgLTE2Myw3ICsxNjMsNyBAQCBkZWYgZGlyQ29udGFpbnNkd28o
ZGlyZWN0b3J5KToKIAogCiBkZWYgYXJjaGl2ZUJ1aWx0UHJvZHVjdChjb25maWd1cmF0aW9uLCBw
bGF0Zm9ybSwgZnVsbFBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAn
d2luJywgJ2d0aycsICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMn
LCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICAjIEZJWE1FOiBJbWFn
ZURpZmYgc2hvdWxkIGJlIGJ1aWx0IHdpdGggdGhlIGhvc3QgU0RLLCA8cmRhcjovL3Byb2JsZW0v
MzAyNjYwMzg+LgogICAgICMgQW4gYXBwcm9hY2ggc2ltaWxhciB0byB0aGUgb25lIHVzZWQgZm9y
IExheW91dFRlc3RSZWxheSBpbiByMTkwNTE1IHNob3VsZCBiZSBpbWxlbWVudGVkLgpAQCAtMTgy
LDcgKzE4Miw3IEBAIGRlZiBhcmNoaXZlQnVpbHRQcm9kdWN0KGNvbmZpZ3VyYXRpb24sIHBsYXRm
b3JtLCBmdWxsUGxhdGZvcm0pOgogCiAgICAgICAgIHNodXRpbC5ybXRyZWUodGhpbkRpcmVjdG9y
eSkKIAotICAgIGVsaWYgcGxhdGZvcm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCc6Cisg
ICAgZWxpZiBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJyBvciBwbGF0Zm9y
bSA9PSAnd3BlJzoKICAgICAgICAgIyBPbiBHVEsrL0VGTCB3ZSBkb24ndCBuZWVkIHRoZSBpbnRl
cm1lZGlhdGUgc3RlcCBvZiBjcmVhdGluZyBhIHRoaW5EaXJlY3RvcnkKICAgICAgICAgIyB0byBi
ZSBjb21wcmVzc2VkIGluIGEgWklQIGZpbGUsIGJlY2F1c2Ugd2UgY2FuIGNyZWF0ZSB0aGUgWklQ
IGRpcmVjdGx5LgogICAgICAgICAjIFRoaXMgaXMgZmFzdGVyIGFuZCByZXF1aXJlcyBsZXNzIGRp
c2sgcmVzb3VyY2VzLgpAQCAtMjE2LDcgKzIxNiw3IEBAIGRlZiB1bnppcEFyY2hpdmUoZGlyZWN0
b3J5VG9FeHRyYWN0VG8sIGNvbmZpZ3VyYXRpb24pOgogCiAKIGRlZiBleHRyYWN0QnVpbHRQcm9k
dWN0KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdt
YWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4g
KCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICBhcmNoaXZl
RmlsZSA9IG9zLnBhdGguam9pbihfdG9wTGV2ZWxCdWlsZERpcmVjdG9yeSwgY29uZmlndXJhdGlv
biArICcuemlwJykKIApAQCAtMjI1LDcgKzIyNSw3IEBAIGRlZiBleHRyYWN0QnVpbHRQcm9kdWN0
KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtKToKIAogICAgIGlmIHBsYXRmb3JtIGluICgnbWFjJywg
J2lvcycpOgogICAgICAgICByZXR1cm4gdW56aXBBcmNoaXZlKF90b3BMZXZlbEJ1aWxkRGlyZWN0
b3J5LCBjb25maWd1cmF0aW9uKQotICAgIGVsaWYgcGxhdGZvcm0gPT0gJ3dpbicgb3IgcGxhdGZv
cm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCc6CisgICAgZWxpZiBwbGF0Zm9ybSA9PSAn
d2luJyBvciBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJyBvciBwbGF0Zm9y
bSA9PSAnd3BlJzoKICAgICAgICAgcHJpbnQgJ0V4dHJhY3RpbmcnLCBfY29uZmlndXJhdGlvbkJ1
aWxkRGlyZWN0b3J5CiAgICAgICAgIHJldHVybiB1bnppcEFyY2hpdmUoX2NvbmZpZ3VyYXRpb25C
dWlsZERpcmVjdG9yeSwgY29uZmlndXJhdGlvbikKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L3Rlc3QtcmVzdWx0LWFyY2hpdmUKaW5kZXggM2MyYjBiZDdhMzYuLjk4MGYwNzFjMTRmIDEwMDY0
NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlCisrKyBi
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUKQEAgLTQ2LDcgKzQ2
LDcgQEAgZGVmIG1haW4oKToKICAgICByZXR1cm4gYXJjaGl2ZVRlc3RSZXN1bHRzKG9wdGlvbnMu
Y29uZmlndXJhdGlvbiwgb3B0aW9ucy5wbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpCiAK
IGRlZiBhcmNoaXZlVGVzdFJlc3VsdHMoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGxheW91dFRl
c3RSZXN1bHRzRGlyKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0
aycsICdlZmwnLCAnd2luY2Fpcm8nLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdt
YWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnd2luY2Fpcm8nLCAnaW9zJywgJ3dwZScpCiAKICAg
ICB0cnk6CiAgICAgICAgIG9zLnVubGluayhhcmNoaXZlRmlsZSkKQEAgLTY2LDcgKzY2LDcgQEAg
ZGVmIGFyY2hpdmVUZXN0UmVzdWx0cyhjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgbGF5b3V0VGVz
dFJlc3VsdHNEaXIpOgogICAgIGlmIHBsYXRmb3JtIGluICgnbWFjJywgJ2lvcycpOgogICAgICAg
ICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJkaXR0byIsICItYyIsICItayIsICItLXNlcXVlc3RlclJz
cmMiLCAiLS16bGliQ29tcHJlc3Npb25MZXZlbCIsICIyIiwgbGF5b3V0VGVzdFJlc3VsdHNEaXIs
IGFyY2hpdmVGaWxlXSk6CiAgICAgICAgICAgICByZXR1cm4gMQotICAgIGVsaWYgcGxhdGZvcm0g
aW4gKCd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycpOgorICAgIGVsaWYgcGxhdGZvcm0g
aW4gKCd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICd3cGUnKToKICAgICAgICAgaWYg
c3VicHJvY2Vzcy5jYWxsKFsiemlwIiwgIi1yIiwgIi0yIiwgYXJjaGl2ZUZpbGUsICIuIl0sIGN3
ZD1sYXlvdXRUZXN0UmVzdWx0c0Rpcik6CiAgICAgICAgICAgICByZXR1cm4gMQogCmRpZmYgLS1n
aXQgYS9Ub29scy9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0NNYWtlTGlzdHMudHh0CmluZGV4IDRi
MmVkYjhkZTk3Li41YjljZDM5Yjk5MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ01ha2VMaXN0cy50eHQK
KysrIGIvVG9vbHMvQ01ha2VMaXN0cy50eHQKQEAgLTM1LDYgKzM1LDExIEBAIGVsc2VpZiAoIiR7
UE9SVH0iIFNUUkVRVUFMICJKU0NPbmx5IikKICAgICBpZiAoRU5BQkxFX0FQSV9URVNUUykKICAg
ICAgICAgYWRkX3N1YmRpcmVjdG9yeShUZXN0V2ViS2l0QVBJKQogICAgIGVuZGlmICgpCitlbHNl
aWYgKCIke1BPUlR9IiBTVFJFUVVBTCAiV1BFIikKKyAgICBpZiAoREVWRUxPUEVSX01PREUpCisg
ICAgICAgIGFkZF9zdWJkaXJlY3RvcnkoSW1hZ2VEaWZmKQorICAgICAgICBhZGRfc3ViZGlyZWN0
b3J5KFdlYktpdFRlc3RSdW5uZXIpCisgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChXSU4z
MikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0
NGUwNmVkMmM0Mi4uNzA5NWNkM2Y4MDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEx
MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJr
aXQtZGV2IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFp
bC93ZWJraXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBBZGQgV1BFIHN1
cHBvcnQgdG8gdmFyaW91cyB0b29saW5nIHNjcmlwdHMsIFRlc3RXZWJLaXRBUEkgYW5kIFdlYktp
dFRlc3RSdW5uZXIuCisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBD
aGFuZ2VMb2cgZW50cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9y
dC9idWlsdC1wcm9kdWN0LWFyY2hpdmU6CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvdGVz
dC1yZXN1bHQtYXJjaGl2ZToKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBJ
bWFnZURpZmYvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvYnVp
bGQtZHVtcHJlbmRlcnRyZWU6CisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6CisgICAg
ICAgICogU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyOgorICAgICAgICAqIFNjcmlwdHMv
dXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQ6CisgICAgICAgICogU2NyaXB0cy91cGRhdGUtd2Vi
a2l0d3BlLWxpYnM6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvd3BlLnB5OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRm
b3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dwZS9JbmplY3Rl
ZEJ1bmRsZUNvbnRyb2xsZXJXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVGVzdFdlYktpdEFQSS93cGUvUGxhdGZv
cm1VdGlsaXRpZXNXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dwZS9t
YWluLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5m
by5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcDogQWRk
ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZh
dGVGb250c1dQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRl
clByb3h5V1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVh
ZGxlc3NWaWV3QmFja2VuZC5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
d3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQ
RS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9s
bGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBqaGJ1aWxkL2poYnVpbGQtd3JhcHBlcjoKKyAgICAgICAgKiB3cGUvZ2VuZXJh
dGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weTogQWRkZWQuCisgICAgICAgICogd3Bl
L2poYnVpbGQubW9kdWxlczogQWRkZWQuCisgICAgICAgICogd3BlL2poYnVpbGRyYzogQWRkZWQu
CisgICAgICAgICogd3BlL3BhdGNoZXMvY2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1z
dXJmYWNlLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMt
MTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2g6
IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUt
Zm9udC1oZWlnaHQtZml4LnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nZGF0
ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaDogQWRkZWQuCisg
ICAgICAgICogd3BlL3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaDogQWRkZWQuCisgICAg
ICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5T
U0wtMS4xLjAucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5z
LWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVy
YXRlX2sucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5w
YXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2Ut
dGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVz
L2dzdHJlYW1lci10eXBlZmluZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYt
dGhlLS5wYXRjaDogQWRkZWQuCisKIDIwMTctMDQtMjAgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFu
bnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFtjbWFrZV0gRGVmaW5lIEZPUldBUkRJTkdfSEVB
REVSU19ESVIgaW4gV2ViS2l0RlMgYW5kIHVzZSBpdCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9U
b29scy9JbWFnZURpZmYvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9JbWFnZURpZmYvUGxhdGZv
cm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRiMGVl
NTMyOGJhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNt
YWtlCkBAIC0wLDAgKzEgQEAKK2luY2x1ZGUoQ2Fpcm8uY21ha2UpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1w
cmVuZGVydHJlZQppbmRleCBjMzA5YjgyZDk4Yy4uNjliNGQwZTQ2NWQgMTAwNzU1Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKKysrIGIvVG9vbHMvU2NyaXB0cy9idWls
ZC1kdW1wcmVuZGVydHJlZQpAQCAtNjYsNyArNjYsNyBAQCBjaGRpciBGaWxlOjpTcGVjLT5jYXRk
aXIoIlRvb2xzIiwgIkR1bXBSZW5kZXJUcmVlIikgb3IgZGllOwogbXkgJHJlc3VsdDsKIGlmIChp
c0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAgICRyZXN1bHQgPSBidWlsZFhDb2RlUHJvamVjdCgi
RHVtcFJlbmRlclRyZWUiLCAkY2xlYW4sIFhjb2RlT3B0aW9ucygpLCBAQVJHVik7Ci19IGVsc2lm
IChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNBbnlXaW5kb3dzKCkpIHsKK30gZWxzaWYgKGlzR3Rr
KCkgfHwgaXNFZmwoKSB8fCBpc0FueVdpbmRvd3MoKSB8fCBpc1dQRSgpKSB7CiAgICAgIyBHdGss
IEVGTCwgYW5kIFdpbmRvd3MgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0
byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKaW5kZXggYWIyNTJhYzY1MGYuLmZmNGNiMGM0ZjMxIDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAt
MTAxLDYgKzEwMSw3IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHRv
IHBhc3MgdG8gYnVpbGQgc3lzdGVtXQogCiAgIC0tZWZsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCdWlsZCB0aGUgRUZMIHBvcnQKICAgLS1ndGsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEJ1aWxkIHRoZSBHVEsrIHBvcnQKKyAgLS13cGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEJ1aWxkIHRoZSBXUEUgcG9ydAogICAtLXdpbmNhaXJvICAgICAgICAgICAgICAgICAgICAg
ICAgQnVpbGQgdXNpbmcgQ2Fpcm8gKHJhdGhlciB0aGFuIENvcmVHcmFwaGljcykgb24gV2luZG93
cwogCiAgIC0taW5zcGVjdG9yLWZyb250ZW5kICAgICAgICAgICAgICBDb3B5IFdlYiBJbnNwZWN0
b3IgdXNlciBpbnRlcmZhY2UgcmVzb3VyY2VzIHRvIHRoZSBidWlsZCBkaXJlY3RvcnkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lciBiL1Rvb2xzL1Njcmlw
dHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcgppbmRleCA0NGUyNWEzODUxOC4uMGZlNTFlMDgyMzQg
MTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcgorKysgYi9U
b29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKQEAgLTYxLDcgKzYxLDcgQEAgY2hk
aXIgIlRvb2xzL1dlYktpdFRlc3RSdW5uZXIiIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAoaXNB
cHBsZUNvY29hV2ViS2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIldl
YktpdFRlc3RSdW5uZXIiLCAkY2xlYW4sIFhjb2RlT3B0aW9ucygpLCBAQVJHVik7Ci19IGVsc2lm
IChpc0d0aygpIHx8IGlzRWZsKCkpIHsKK30gZWxzaWYgKGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBp
c1dQRSgpKSB7CiAgICAgIyBHVEsrIGFuZCBFRkwgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hv
dC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBl
bHNlIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVp
bGQgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCmluZGV4IDM4OTNk
YWZkOGVlLi5lZWQ1ZjZiZGVhMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Vi
a2l0LWxpYnMtamhidWlsZAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1q
aGJ1aWxkCkBAIC0yNSw5ICsyNSwxMCBAQCB1c2UgR2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFz
c190aHJvdWdoKTsKIG15ICRwbGF0Zm9ybSA9ICIiOwogJHBsYXRmb3JtID0gImVmbCIgaWYgaXNF
ZmwoKTsKICRwbGF0Zm9ybSA9ICJndGsiIGlmIGlzR3RrKCk7CiskcGxhdGZvcm0gPSAid3BlIiBp
ZiBpc1dQRSgpOwogCiBpZiAoISRwbGF0Zm9ybSkgewotICAgIGRpZSAiTm8gcGxhdGZvcm0gc3Bl
Y2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGsgb3IgLS1lZmwuXG4iOwor
ICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBV
c2UgLS1ndGssIC0tZWZsIG9yIC0td3BlLlxuIjsKIH0KIAogbXkgJHdpcGVPbkNoYW5nZSA9ICRF
TlZ7SkhCVUlMRF9XSVBFX09OX0NIQU5HRX0gLy8gMTsKQEAgLTEzMyw3ICsxMzQsNyBAQCBkZWxl
dGUgJEVOVntBUl9GTEFHU30gaWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBjaGRpcihyZWxh
dGl2ZVNjcmlwdHNEaXIoKSAuICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAotbXkgJXByZXR0
eVBsYXRmb3JtID0gKCAiZWZsIiA9PiAiRUZMIiwgImd0ayIgPT4gIkdUSysiICk7CitteSAlcHJl
dHR5UGxhdGZvcm0gPSAoICJlZmwiID0+ICJFRkwiLCAiZ3RrIiA9PiAiR1RLKyIsICJ3cGUiID0+
ICJXUEUiICk7CiAKIGlmICghJGZvcmNlICYmICFqaGJ1aWxkQ29uZmlndXJhdGlvbkNoYW5nZWQo
KSkgewogICAgIHByaW50ICRwcmV0dHlQbGF0Zm9ybXskcGxhdGZvcm19IC4gIiBwb3J0IGRlcGVu
ZGVuY2llcyBhcmUgYWxyZWFkeSB1cCB0byBkYXRlXG4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3
cGUtbGlicwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMC4uYjIzZmJkZTZi
ODMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGli
cwpAQCAtMCwwICsxLDI0IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29weXJpZ2h0IChDKSAy
MDExIElnYWxpYSBTLkwuCisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgor
IworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisj
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KwordXNlIEZpbmRCaW47Cit1c2UgbGliICRGaW5kQmluOjpCaW47Cit1c2Ugd2Via2l0ZGlyczsK
KworbXkgJHNjcmlwdHNEaXIgPSByZWxhdGl2ZVNjcmlwdHNEaXIoKTsKK3N5c3RlbSgicGVybCIs
ICIkc2NyaXB0c0Rpci91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZCIsICItLXdwZSIsIEBBUkdW
KSA9PSAwIG9yIGRpZSAkITsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5w
bSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCBjNDBhZmY2ZjgyOC4uYmNiMWQz
ZWMwMmUgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KQEAgLTEwOCw2ICsxMDgsNyBAQCB1c2UgY29uc3RhbnQg
ewogICAgIE1hYyAgICAgID0+ICJNYWMiLAogICAgIEpTQ09ubHkgID0+ICJKU0NPbmx5IiwKICAg
ICBXaW5DYWlybyA9PiAiV2luQ2Fpcm8iLAorICAgIFdQRSAgICAgID0+ICJXUEUiLAogICAgIFVu
a25vd24gID0+ICJVbmtub3duIgogfTsKIApAQCAtNDQ3LDYgKzQ0OCw3IEBAIHN1YiBhcmd1bWVu
dHNGb3JDb25maWd1cmF0aW9uKCkKICAgICBwdXNoKEBhcmdzLCAnLS02NC1iaXQnKSBpZiAoaXNX
aW42NCgpKTsKICAgICBwdXNoKEBhcmdzLCAnLS1ndGsnKSBpZiBpc0d0aygpOwogICAgIHB1c2go
QGFyZ3MsICctLWVmbCcpIGlmIGlzRWZsKCk7CisgICAgcHVzaChAYXJncywgJy0td3BlJykgaWYg
aXNXUEUoKTsKICAgICBwdXNoKEBhcmdzLCAnLS1qc2Mtb25seScpIGlmIGlzSlNDT25seSgpOwog
ICAgIHB1c2goQGFyZ3MsICctLXdpbmNhaXJvJykgaWYgaXNXaW5DYWlybygpOwogICAgIHB1c2go
QGFyZ3MsICctLWluc3BlY3Rvci1mcm9udGVuZCcpIGlmIGlzSW5zcGVjdG9yRnJvbnRlbmQoKTsK
QEAgLTY4Miw3ICs2ODQsNyBAQCBzdWIgZXhlY3V0YWJsZVByb2R1Y3REaXIKICAgICBteSAkcHJv
ZHVjdERpcmVjdG9yeSA9IHByb2R1Y3REaXIoKTsKIAogICAgIG15ICRiaW5hcnlEaXJlY3Rvcnk7
Ci0gICAgaWYgKGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSkgeworICAgIGlmIChp
c0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkgewogICAgICAgICAk
YmluYXJ5RGlyZWN0b3J5ID0gImJpbiI7CiAgICAgfSBlbHNpZiAoaXNBbnlXaW5kb3dzKCkpIHsK
ICAgICAgICAgJGJpbmFyeURpcmVjdG9yeSA9IGlzV2luNjQoKSA/ICJiaW42NCIgOiAiYmluMzIi
OwpAQCAtOTQzLDYgKzk0NSw5IEBAIHN1YiBidWlsdER5bGliUGF0aEZvck5hbWUKICAgICAgICAg
ICAgIHJldHVybiAiJGJhc2VQcm9kdWN0RGlyLyRsaWJyYXJ5TmFtZS5pbnRlcm1lZGlhdGUvJGNv
bmZpZ3VyYXRpb24vJGxpYnJhcnlOYW1lLmludGVybWVkaWF0ZS8kbGlicmFyeU5hbWUubGliIjsK
ICAgICAgICAgfQogICAgIH0KKyAgICBpZiAoaXNXUEUoKSkgeworICAgICAgICByZXR1cm4gIiRj
b25maWd1cmF0aW9uUHJvZHVjdERpci9saWIvbGliV1BFV2ViS2l0LnNvIjsKKyAgICB9CiAKICAg
ICBkaWUgIlVuc3VwcG9ydGVkIHBsYXRmb3JtLCBjYW4ndCBkZXRlcm1pbmUgYnVpbHQgbGlicmFy
eSBsb2NhdGlvbnMuXG5UcnkgYGJ1aWxkLXdlYmtpdCAtLWhlbHBgIGZvciBtb3JlIGluZm9ybWF0
aW9uLlxuIjsKIH0KQEAgLTEwNTgsNyArMTA2Myw4IEBAIHN1YiBkZXRlcm1pbmVQb3J0TmFtZSgp
CiAgICAgICAgIGVmbCA9PiBFZmwsCiAgICAgICAgIGd0ayA9PiBHVEssCiAgICAgICAgICdqc2Mt
b25seScgPT4gSlNDT25seSwKLSAgICAgICAgd2luY2Fpcm8gPT4gV2luQ2Fpcm8KKyAgICAgICAg
d2luY2Fpcm8gPT4gV2luQ2Fpcm8sCisgICAgICAgIHdwZSA9PiBXUEUKICAgICApOwogCiAgICAg
Zm9yIG15ICRhcmcgKHNvcnQga2V5cyAlYXJnVG9Qb3J0TmFtZSkgewpAQCAtMTA5Myw2ICsxMDk5
LDcgQEAgc3ViIGRldGVybWluZVBvcnROYW1lKCkKICAgICAgICAgICAgICAgICAtLWVmbAogICAg
ICAgICAgICAgICAgIC0tZ3RrCiAgICAgICAgICAgICAgICAgLS1qc2Mtb25seQorICAgICAgICAg
ICAgICAgIC0td3BlCiAgICAgICAgICAgICApOwogICAgICAgICAgICAgZGllICJQbGVhc2Ugc3Bl
Y2lmeSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCB1c2luZyBvbmUgb2YgdGhlIGZvbGxvd2lu
ZyBvcHRpb25zOiIKICAgICAgICAgICAgICAgICAuICJcblx0JHBvcnRzQ2hvaWNlXG4iOwpAQCAt
MTEyNSw2ICsxMTMyLDExIEBAIHN1YiBpc0pTQ09ubHkoKQogICAgIHJldHVybiBwb3J0TmFtZSgp
IGVxIEpTQ09ubHk7CiB9CiAKK3N1YiBpc1dQRSgpCit7CisgICAgcmV0dXJuIHBvcnROYW1lKCkg
ZXEgV1BFOworfQorCiAjIERldGVybWluZSBpZiB0aGlzIGlzIGRlYmlhbiwgdWJ1bnR1LCBsaW5z
cGlyZSwgb3Igc29tZXRoaW5nIHNpbWlsYXIuCiBzdWIgaXNEZWJpYW5CYXNlZCgpCiB7CkBAIC0x
NTI4LDYgKzE1NDAsOCBAQCBzdWIgbGF1bmNoZXJQYXRoKCkKICAgICAgICAgcmV0dXJuICIkcmVs
YXRpdmVTY3JpcHRzUGF0aC9ydW4tbWluaWJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVX
ZWJLaXQoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi1zYWZh
cmkiOworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVT
Y3JpcHRzUGF0aC9ydW4td3BlIjsKICAgICB9CiB9CiAKQEAgLTE1MzksNiArMTU1Myw4IEBAIHN1
YiBsYXVuY2hlck5hbWUoKQogICAgICAgICByZXR1cm4gIlNhZmFyaSI7CiAgICAgfSBlbHNpZiAo
aXNBcHBsZVdpbldlYktpdCgpKSB7CiAgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIiOworICAg
IH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICJXUEVMYXVuY2hlciI7CiAgICAg
fQogfQogCkBAIC0xODQwLDYgKzE4NTYsOCBAQCBzdWIgZ2V0SmhidWlsZFBhdGgoKQogICAgICAg
ICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRlcGVuZGVuY2llc0VGTCIpOwogICAgIH0gZWxzaWYgKGlz
R3RrKCkpIHsKICAgICAgICAgcHVzaChAamhidWlsZFBhdGgsICJEZXBlbmRlbmNpZXNHVEsiKTsK
KyAgICB9IGVsc2lmIChpc1dQRSgpKSB7CisgICAgICAgIHB1c2goQGpoYnVpbGRQYXRoLCAiRGVw
ZW5kZW5jaWVzV1BFIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZGllICJDYW5ub3QgZ2V0IEpI
QnVpbGQgcGF0aCBmb3IgcGxhdGZvcm0gdGhhdCBpc24ndCBHVEsrIG9yIEVGTC5cbiI7CiAgICAg
fQpAQCAtMTg4Miw2ICsxOTAwLDggQEAgc3ViIHdyYXBwZXJQcmVmaXhJZk5lZWRlZCgpCiAgICAg
ICAgICAgICBwdXNoKEBwcmVmaXgsICItLWVmbCIpOwogICAgICAgICB9IGVsc2lmIChpc0d0aygp
KSB7CiAgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLWd0ayIpOworICAgICAgICB9IGVsc2lm
IChpc1dQRSgpKSB7CisgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLXdwZSIpOwogICAgICAg
ICB9CiAgICAgICAgIHB1c2goQHByZWZpeCwgInJ1biIpOwogCkBAIC0yMDQwLDcgKzIwNjAsNyBA
QCBzdWIgZ2VuZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QKICAgICBwdXNoIEBhcmdz
LCAnLURTSE9XX0JJTkRJTkdTX0dFTkVSQVRJT05fUFJPR1JFU1M9MScgdW5sZXNzICgkd2lsbFVz
ZU5pbmphICYmIC10IFNURE9VVCk7CiAKICAgICAjIFNvbWUgcG9ydHMgaGF2ZSBwcm9kdWN0aW9u
IG1vZGUsIGJ1dCBidWlsZC13ZWJraXQgc2hvdWxkIGFsd2F5cyB1c2UgZGV2ZWxvcGVyIG1vZGUu
Ci0gICAgcHVzaCBAYXJncywgIi1EREVWRUxPUEVSX01PREU9T04iIGlmIGlzRWZsKCkgfHwgaXNH
dGsoKSB8fCBpc0pTQ09ubHkoKTsKKyAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1P
TiIgaWYgaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCk7CiAKICAg
ICAjIERvbid0IHdhcm4gdmFyaWFibGVzIHdoaWNoIGFyZW4ndCB1c2VkIGJ5IGNtYWtlIHBvcnRz
LgogICAgIHB1c2ggQGFyZ3MsICItLW5vLXdhcm4tdW51c2VkLWNsaSI7CkBAIC0yMTIxLDYgKzIx
NDEsMTAgQEAgc3ViIGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KCQkJEApCiAgICAgICAgIHN5c3Rl
bSgicGVybCIsICIkc291cmNlRGlyL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdGd0ay1saWJz
IikgPT0gMCBvciBkaWUgJCE7CiAgICAgfQogCisgICAgaWYgKGlzV1BFKCkgJiYgY2hlY2tGb3JB
cmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLXVwZGF0ZS13cGUiKSkgeworICAgICAgICBzeXN0
ZW0oInBlcmwiLCAiJHNvdXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGli
cyIpID09IDAgb3IgZGllICQhOworICAgIH0KKwogICAgICRyZXR1cm5Db2RlID0gZXhpdFN0YXR1
cyhnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdCgkcHJlZml4UGF0aCwgQGNtYWtl
QXJncykpOwogICAgIGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggYjc3ZTJhMGRmMmMuLjRjNzRkOWM0
MGUxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0K
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0xNDcsMTAg
KzE0NywxMCBAQCBwcm9oaWJpdFVua25vd25Qb3J0KCk7CiAKIG15IEBmZWF0dXJlcyA9ICgKICAg
ICB7IG9wdGlvbiA9PiAiM2QtcmVuZGVyaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIDNEIFJlbmRlcmlu
ZyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFXzNEX1RSQU5TRk9STVMiLCBkZWZh
dWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkg
fHwgaXNFZmwoKSksIHZhbHVlID0+IFwkdGhyZWVEVHJhbnNmb3Jtc1N1cHBvcnQgfSwKKyAgICAg
IGRlZmluZSA9PiAiRU5BQkxFXzNEX1RSQU5TRk9STVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29j
b2FXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQ
RSgpKSwgdmFsdWUgPT4gXCR0aHJlZURUcmFuc2Zvcm1zU3VwcG9ydCB9LAogCiAgICAgeyBvcHRp
b24gPT4gImFjY2VsZXJhdGVkLTJkLWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSBBY2NlbGVyYXRl
ZCAyRCBDYW52YXMgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkYWNjZWxlcmF0ZWQyRENhbnZh
c1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UyIsIGRlZmF1bHQgPT4gaXNXUEUoKSwgdmFsdWUgPT4gXCRhY2NlbGVyYXRlZDJEQ2FudmFzU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFsbGlub25lLWJ1aWxkIiwgZGVzYyA9PiAiVG9n
Z2xlIGFsbC1pbi1vbmUgYnVpbGQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUxMSU5PTkVf
QlVJTEQiLCBkZWZhdWx0ID0+IGlzV2luZG93cygpLCB2YWx1ZSA9PiBcJGFsbEluT25lQnVpbGQg
fSwKQEAgLTE4Myw3ICsxODMsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUg
PT4gXCRjc3NJbWFnZVJlc29sdXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiY3Nz
LWltYWdlLXNldCIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgaW1hZ2Utc2V0IHN1cHBvcnQiLAotICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1NFVCIsIGRlZmF1bHQgPT4gKGlzRWZsKCkg
fHwgaXNHdGsoKSksIHZhbHVlID0+IFwkY3NzSW1hZ2VTZXRTdXBwb3J0IH0sCisgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9DU1NfSU1BR0VfU0VUIiwgZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0
aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAogCiAgICAg
eyBvcHRpb24gPT4gImNzcy1yZWdpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBSZWdpb25zIHN1
cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX1JFR0lPTlMiLCBkZWZhdWx0ID0+
IDEsIHZhbHVlID0+IFwkY3NzUmVnaW9uc1N1cHBvcnQgfSwKQEAgLTIwNyw3ICsyMDcsNyBAQCBt
eSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
IiwgZGVmYXVsdCA9PiBpc0VmbCgpLCB2YWx1ZSA9PiBcJGRhdGFsaXN0RWxlbWVudFN1cHBvcnQg
fSwKIAogICAgIHsgb3B0aW9uID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNjID0+ICJUb2dn
bGUgRGV2aWNlIE9yaWVudGF0aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OIiwgZGVmYXVsdCA9PiBpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBc
JGRldmljZU9yaWVudGF0aW9uU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc1dQRSgpKSwg
dmFsdWUgPT4gXCRkZXZpY2VPcmllbnRhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+
ICJkb200LWV2ZW50cy1jb25zdHJ1Y3RvciIsIGRlc2MgPT4gIkV4cG9zZSBET000IEV2ZW50cyBj
b25zdHJ1Y3RvcnMiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RS
VUNUT1IiLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgp
KSwgdmFsdWUgPT4gXCRkb200RXZlbnRzQ29uc3RydWN0b3IgfSwKQEAgLTIyNSw3ICsyMjUsNyBA
QCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GT05UX0xPQURfRVZF
TlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGZvbnRMb2FkRXZlbnRzU3VwcG9ydCB9LAog
CiAgICAgeyBvcHRpb24gPT4gImZ0bC1qaXQiLCBkZXNjID0+ICJUb2dnbGUgRlRMSklUIHN1cHBv
cnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRMX0pJVCIsIGRlZmF1bHQgPT4gKGlzWDg2
XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3Vw
cG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRMX0pJVCIsIGRlZmF1bHQgPT4gKGlz
WDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkpICwgdmFsdWUg
PT4gXCRmdGxKSVRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZnRwZGlyIiwgZGVzYyA9
PiAiVG9nZ2xlIEZUUCBEaXJlY3Rvcnkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9GVFBESVIiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkZnRwRGlyU3VwcG9ydCB9LApAQCAt
MjM3LDcgKzIzNyw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X0dBTUVQQUQiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkZ2FtZXBhZFN1cHBvcnQgfSwKIAog
ICAgIHsgb3B0aW9uID0+ICJnZW9sb2NhdGlvbiIsIGRlc2MgPT4gIlRvZ2dsZSBHZW9sb2NhdGlv
biBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0dFT0xPQ0FUSU9OIiwgZGVmYXVs
dCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0Vm
bCgpKSwgdmFsdWUgPT4gXCRnZW9sb2NhdGlvblN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0dFT0xPQ0FUSU9OIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzSU9T
V2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGdl
b2xvY2F0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImhpZ2gtZHBpLWNhbnZhcyIs
IGRlc2MgPT4gIlRvZ2dsZSBIaWdoIERQSSBDYW52YXMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9ISUdIX0RQSV9DQU5WQVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkp
LCB2YWx1ZSA9PiBcJGhpZ2hEUElDYW52YXNTdXBwb3J0IH0sCkBAIC0yNDYsNyArMjQ2LDcgQEAg
bXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSUNPTkRBVEFCQVNFIiwg
ZGVmYXVsdCA9PiAhaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRpY29uZGF0YWJhc2VTdXBwb3J0
IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5kZXhlZC1kYXRhYmFzZSIsIGRlc2MgPT4gIlRvZ2ds
ZSBJbmRleGVkIERhdGFiYXNlIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzRWZs
KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3VwcG9ydCB9LAorICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBw
bGVDb2NvYVdlYktpdCgpIHx8IGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUg
PT4gXCRpbmRleGVkRGF0YWJhc2VTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5wdXQt
c3BlZWNoIiwgZGVzYyA9PiAiVG9nZ2xlIElucHV0IFNwZWVjaCBzdXBwb3J0IiwKICAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0lOUFVUX1NQRUVDSCIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRp
bnB1dFNwZWVjaFN1cHBvcnQgfSwKQEAgLTMxMiw3ICszMTIsNyBAQCBteSBAZmVhdHVyZXMgPSAo
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NRVRFUl9FTEVNRU5UIiwgZGVmYXVsdCA9PiAhaXNB
cHBsZVdpbldlYktpdCgpLCB2YWx1ZSA9PiBcJG1ldGVyRWxlbWVudFN1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJtaHRtbCIsIGRlc2MgPT4gIlRvZ2dsZSBNSFRNTCBzdXBwb3J0IiwKLSAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX01IVE1MIiwgZGVmYXVsdCA9PiAoaXNHdGsoKSB8fCBpc0Vm
bCgpKSwgdmFsdWUgPT4gXCRtaHRtbFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X01IVE1MIiwgZGVmYXVsdCA9PiAoaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1
ZSA9PiBcJG1odG1sU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm1vdXNlLWN1cnNvci1z
Y2FsZSIsIGRlc2MgPT4gIlRvZ2dsZSBTY2FsZWQgbW91c2UgY3Vyc29yIHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFIiwgZGVmYXVsdCA9PiBpc0Vm
bCgpLCB2YWx1ZSA9PiBcJG1vdXNlQ3Vyc29yU2NhbGVTdXBwb3J0IH0sCkBAIC0zMjQsNyArMzI0
LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkFWSUdBVE9S
X0hXQ09OQ1VSUkVOQ1kiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkaGFyZHdhcmVDb25jdXJy
ZW5jeVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJuZXRzY2FwZS1wbHVnaW4tYXBpIiwg
ZGVzYyA9PiAiVG9nZ2xlIE5ldHNjYXBlIFBsdWdpbiBBUEkgc3VwcG9ydCIsCi0gICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAhaXNJT1NXZWJL
aXQoKSwgdmFsdWUgPT4gXCRuZXRzY2FwZVBsdWdpbkFQSVN1cHBvcnQgfSwKKyAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0ID0+ICghaXNJT1NXZWJL
aXQoKSAmJiAhaXNXUEUoKSksIHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAibm9zbmlmZiIsIGRlc2MgPT4gIlRvZ2dsZSBzdXBwb3J0IGZv
ciAnWC1Db250ZW50LVR5cGUtT3B0aW9uczogbm9zbmlmZiciLAogICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfTk9TTklGRiIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRub3NuaWZmU3Vw
cG9ydCB9LApAQCAtMzM2LDcgKzMzNiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQo
KSwgdmFsdWUgPT4gXCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJwZXJmb3JtYW5jZS10aW1lbGluZSIsIGRlc2MgPT4gIlRvZ2dsZSBQZXJmb3JtYW5jZSBU
aW1lbGluZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BFUkZPUk1BTkNFX1RJ
TUVMSU5FIiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxp
bmVTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElO
RSIsIGRlZmF1bHQgPT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkcGVyZm9ybWFu
Y2VUaW1lbGluZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwcm94aW1pdHktZXZlbnRz
IiwgZGVzYyA9PiAiVG9nZ2xlIFByb3hpbWl0eSBFdmVudHMgc3VwcG9ydCIsCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBc
JHByb3hpbWl0eUV2ZW50c1N1cHBvcnQgfSwKQEAgLTM2Niw3ICszNjYsNyBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFMTE9DIiwgZGVmYXVsdCA9PiAw
LCB2YWx1ZSA9PiBcJHN5c3RlbU1hbGxvY1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ0
b3VjaC1ldmVudHMiLCBkZXNjID0+ICJUb2dnbGUgVG91Y2ggRXZlbnRzIHN1cHBvcnQiLAotICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJL
aXQoKSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJHRvdWNoRXZlbnRzU3VwcG9y
dCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAo
aXNJT1NXZWJLaXQoKSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+
IFwkdG91Y2hFdmVudHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidG91Y2gtaWNvbi1s
b2FkaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIFRvdWNoIEljb24gTG9hZGluZyBTdXBwb3J0IiwKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORyIsIGRlZmF1bHQgPT4gMCwg
dmFsdWUgPT4gXCR0b3VjaEljb25Mb2FkaW5nU3VwcG9ydCB9LApAQCAtMzc4LDE2ICszNzgsMTYg
QEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklCUkFUSU9OIiwg
ZGVmYXVsdCA9PiBpc0VmbCgpLCB2YWx1ZSA9PiBcJHZpYnJhdGlvblN1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJ2aWRlbyIsIGRlc2MgPT4gIlRvZ2dsZSBWaWRlbyBzdXBwb3J0IiwKLSAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJREVPIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgp
IHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0IH0sCisgICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8
fCBpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0
IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidmlkZW8tdHJhY2siLCBkZXNjID0+ICJUb2dnbGUgVmlk
ZW8gVHJhY2sgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFT19UUkFDSyIs
IGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkpLCB2YWx1
ZSA9PiBcJHZpZGVvVHJhY2tTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURF
T19UUkFDSyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZs
KCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKIAogICAgIHsg
b3B0aW9uID0+ICJ3ZWItYW5pbWF0aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQW5pbWF0aW9u
cyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BTklNQVRJT05TIiwgZGVm
YXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHdlYkFuaW1hdGlvbnNTdXBwb3J0IH0sCiAKICAgICB7IG9w
dGlvbiA9PiAid2ViLWF1ZGlvIiwgZGVzYyA9PiAiVG9nZ2xlIFdlYiBBdWRpbyBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gKGlzRWZsKCkg
fHwgaXNHdGsoKSksIHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCisgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9XRUJfQVVESU8iLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkgfHwg
aXNXUEUoKSksIHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9
PiAid2ViLXJlcGxheSIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgUmVwbGF5IHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1JFUExBWSIsIGRlZmF1bHQgPT4gaXNBcHBsZUNvY29h
V2ViS2l0KCksIHZhbHVlID0+IFwkd2ViUmVwbGF5U3VwcG9ydCB9LApAQCAtNDAyLDEwICs0MDIs
MTAgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1RJTUlO
RyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3ZWJUaW1pbmdTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAid2ViYXNzZW1ibHkiLCBkZXNjID0+ICJUb2dnbGUgV2ViQXNzZW1ibHkgc3Vw
cG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIsIGRlZmF1bHQgPT4g
KGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVlID0+IFwkd2Vi
QXNzZW1ibHlTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIs
IGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNX
UEUoKSkpICwgdmFsdWUgPT4gXCR3ZWJBc3NlbWJseVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJ3ZWJnbCIsIGRlc2MgPT4gIlRvZ2dsZSBXZWJHTCBzdXBwb3J0IiwKLSAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwg
aXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4gXCR3ZWJnbFN1cHBvcnQgfSwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkg
fHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHdlYmdsU3VwcG9y
dCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndyaXRhYmxlU3RyZWFtQVBJIiwgZGVzYyA9PiAiVG9n
Z2xlIFdyaXRhYmxlU3RyZWFtIEFQSSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X1dSSVRBQkxFX1NUUkVBTV9BUEkiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkd3JpdGFibGVT
dHJlYW1BUElTdXBwb3J0IH0sCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCA3YzZkZGM4MzlmMy4uNTcyZThh
NWU3N2QgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtNDI0LDcgKzQyNCw3IEBAIGRlZiBfc2V0X3VwX2Rl
cml2ZWRfb3B0aW9ucyhwb3J0LCBvcHRpb25zKToKICAgICAgICAgb3B0aW9ucy52ZXJib3NlID0g
VHJ1ZQogCiAgICAgIyBUaGUgR1RLKyBhbmQgRUZMIHBvcnRzIG9ubHkgc3VwcG9ydCBXZWJLaXQy
IHNvIHRoZXkgYWx3YXlzIHVzZSBXS1RSLgotICAgIGlmIG9wdGlvbnMucGxhdGZvcm0gPT0gImd0
ayIgb3Igb3B0aW9ucy5wbGF0Zm9ybSA9PSAiZWZsIjoKKyAgICBpZiBvcHRpb25zLnBsYXRmb3Jt
IGluIFsiZWZsIiwgImd0ayIsICJ3cGUiXToKICAgICAgICAgb3B0aW9ucy53ZWJraXRfdGVzdF9y
dW5uZXIgPSBUcnVlCiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQppbmRl
eCBjNjFkMTdmNjUzNC4uYTcxNjQ5OWIzMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9mYWN0b3J5LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9m
YWN0b3J5LnB5CkBAIC01Niw2ICs1Niw5IEBAIGRlZiBwbGF0Zm9ybV9vcHRpb25zKHVzZV9nbG9i
cz1GYWxzZSk6CiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWd0aycsIGFjdGlvbj0n
c3RvcmVfY29uc3QnLCBkZXN0PSdwbGF0Zm9ybScsCiAgICAgICAgICAgICBjb25zdD0oJ2d0ayon
IGlmIHVzZV9nbG9icyBlbHNlICdndGsnKSwKICAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3Ig
LS1wbGF0Zm9ybT1ndGsqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnQWxpYXMgZm9yIC0tcGxhdGZvcm09
Z3RrJykpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS13cGUnLCBhY3Rpb249J3N0
b3JlX2NvbnN0JywgZGVzdD0ncGxhdGZvcm0nLAorICAgICAgICAgICAgY29uc3Q9KCd3cGUqJyBp
ZiB1c2VfZ2xvYnMgZWxzZSAnd3BlJyksCisgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0t
cGxhdGZvcm09d3BlJykpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1uby1pbnN0
YWxsJywgYWN0aW9uPSdzdG9yZV9jb25zdCcsCiAgICAgICAgICAgICBjb25zdD1GYWxzZSwgZGVm
YXVsdD1UcnVlLCBkZXN0PSdpbnN0YWxsJywKICAgICAgICAgICAgIGhlbHA9J1NraXAgaW5zdGFs
bCBzdGVwIGZvciBkZXZpY2UgYW5kIHNpbXVsYXRvciB0ZXN0aW5nJyksCkBAIC05Nyw2ICsxMDAs
NyBAQCBjbGFzcyBQb3J0RmFjdG9yeShvYmplY3QpOgogICAgICAgICAndGVzdC5UZXN0UG9ydCcs
CiAgICAgICAgICd3aW4uV2luQ2Fpcm9Qb3J0JywKICAgICAgICAgJ3dpbi5XaW5Qb3J0JywKKyAg
ICAgICAgJ3dwZS5XUEVQb3J0JywKICAgICApCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9z
dCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd3BlLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uY2M4MzllN2ZjMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvd3BlLnB5CkBAIC0wLDAgKzEsNzggQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0
aGVyIHRoZSBHb29nbGUgbmFtZSBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zy
b20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAorZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfY29uZmlndXJhdGlvbiBpbXBvcnQgVGVzdENvbmZp
Z3VyYXRpb24KK2Zyb20gd2Via2l0cHkucG9ydC5iYXNlIGltcG9ydCBQb3J0Citmcm9tIHdlYmtp
dHB5LnBvcnQubGludXhfZ2V0X2NyYXNoX2xvZyBpbXBvcnQgR0RCQ3Jhc2hMb2dHZW5lcmF0b3IK
KworY2xhc3MgV1BFUG9ydChQb3J0KToKKyAgICBwb3J0X25hbWUgPSAid3BlIgorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFdQRVBvcnQs
IHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBpZiBzZWxmLl9zaG91
bGRfdXNlX2poYnVpbGQoKToKKyAgICAgICAgICAgIHNlbGYuX2poYnVpbGRfd3JhcHBlciA9IFtz
ZWxmLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdy
YXBwZXInKSwgJy0td3BlJywgJ3J1biddCisgICAgICAgICAgICBzZWxmLnNldF9vcHRpb25fZGVm
YXVsdCgnd3JhcHBlcicsICcgJy5qb2luKHNlbGYuX2poYnVpbGRfd3JhcHBlcikpCisKKyAgICBk
ZWYgZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICByZXR1cm4gNjAwMAorCisgICAg
ZGVmIF9idWlsdF9leGVjdXRhYmxlc19wYXRoKHNlbGYsICpwYXRoKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2J1aWxkX3BhdGgoKigoJ2JpbicsKSArIHBhdGgpKQorCisgICAgZGVmIF9idWlsdF9s
aWJyYXJpZXNfcGF0aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9w
YXRoKCooKCdsaWInLCkgKyBwYXRoKSkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3JpcHRz
KHNlbGYpOgorICAgICAgICByZXR1cm4gIi0td3BlIgorCisgICAgZGVmIHNldHVwX2Vudmlyb25f
Zm9yX3NlcnZlcihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52aXJvbm1lbnQg
PSBzdXBlcihXUEVQb3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25h
bWUpCisgICAgICAgIGVudmlyb25tZW50WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScK
KyAgICAgICAgZW52aXJvbm1lbnRbJ1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFN
RSddID0gc2VsZi5fYnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZS5zbycpCisgICAgICAgIGVudmlyb25tZW50WydURVNUX1JVTk5FUl9URVNUX1BMVUdJTl9QQVRI
J10gPSBzZWxmLl9idWlsZF9wYXRoKCdsaWInLCAncGx1Z2lucycpCisgICAgICAgIGVudmlyb25t
ZW50WydXRUJLSVRfRVhFQ19QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdiaW4nKQorICAgICAg
ICByZXR1cm4gZW52aXJvbm1lbnQKKworICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmln
dXJhdGlvbnMoc2VsZik6CisgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KKyAgICAgICAgZm9y
IGJ1aWxkX3R5cGUgaW4gc2VsZi5BTExfQlVJTERfVFlQRVM6CisgICAgICAgICAgICBjb25maWd1
cmF0aW9ucy5hcHBlbmQoVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBh
cmNoaXRlY3R1cmU9J3g4NicsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkpCisgICAgICAgIHJldHVy
biBjb25maWd1cmF0aW9ucworCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoc2VsZi5kcml2ZXJfbmFtZSgp
KQorCisgICAgZGVmIF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLl9idWlsdF9leGVjdXRhYmxlc19wYXRoKCdJbWFnZURpZmYnKQorCisgICAgZGVmIF9nZXRf
Y3Jhc2hfbG9nKHNlbGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgor
ICAgICAgICBuYW1lID0gIldQRVdlYlByb2Nlc3MiIGlmIG5hbWUgPT0gIldlYlByb2Nlc3MiIGVs
c2UgbmFtZQorICAgICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBu
ZXdlcl90aGFuLCBzZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJh
dGVfY3Jhc2hfbG9nKHN0ZG91dCwgc3RkZXJyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUu
Y21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI5Nzg0NzU1ZjM2
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFr
ZQpAQCAtMCwwICsxLDYwIEBACitzZXQoVEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJF
Q1RPUlkgIiR7Q01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9UZXN0V2ViS2l0QVBJIikK
K3NldChURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWV9XVEYgIiR7VEVTVFdF
QktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dURiIpCisKKyMgVGhpcyBpcyBuZWNl
c3NhcnkgYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0byBidWlsZCBUZXN0V2ViS2l0QVBJIHdpdGgg
V2ViS2l0MgorIyBkaXNhYmxlZCBhbmQgdGhpcyB0cmlnZ2VycyB0aGUgaW5jbHVzaW9uIG9mIHRo
ZSBXZWJLaXQyIGhlYWRlcnMuCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XRUJLSVQyX18p
CisKK2FkZF9jdXN0b21fdGFyZ2V0KFRlc3RXZWJLaXRBUEktZm9yd2FyZGluZy1oZWFkZXJzCisg
ICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5l
cmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtURVNUV0VCS0lUQVBJ
X0RJUn0gLS1vdXRwdXQgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSAtLXBsYXRmb3JtIHdwZSAt
LXBsYXRmb3JtIHNvdXAKKyAgICBERVBFTkRTIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJz
CispCisKK3NldChGb3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRSBUZXN0V2Vi
S2l0QVBJLWZvcndhcmRpbmctaGVhZGVycykKKworaW5jbHVkZV9kaXJlY3RvcmllcygKKyAgICAk
e0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS9K
YXZhU2NyaXB0Q29yZQorKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTQorICAgICR7R0xJ
Ql9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKykKKworc2V0KHRl
c3RfbWFpbl9TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL21haW4uY3BwCisp
CisKK3NldChidW5kbGVfaGFybmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0v
d3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElf
RElSfS93cGUvUGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwCispCisKKyMgVGVzdFdURgorCitsaXN0
KEFQUEVORCBUZXN0V1RGX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9X
VEYvZ2xpYi9HVW5pcXVlUHRyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dU
Ri9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCispCisKKyMgVGVzdFdlYkNvcmUKKworYWRkX2V4ZWN1
dGFibGUoVGVzdFdlYkNvcmUKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzQ29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElS
fS9UZXN0cy9XZWJDb3JlL0hUTUxQYXJzZXJJZGlvbXMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJ
X0RJUn0vVGVzdHMvV2ViQ29yZS9MYXlvdXRVbml0LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9E
SVJ9L1Rlc3RzL1dlYkNvcmUvVVJMLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyVGVzdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XZWJDb3JlL0ZpbGVTeXN0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCispCisKK3RhcmdldF9saW5rX2xpYnJhcmllcyhU
ZXN0V2ViQ29yZSAke3Rlc3Rfd2ViY29yZV9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhU
ZXN0V2ViQ29yZSAke0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKwor
YWRkX3Rlc3QoVGVzdFdlYkNvcmUgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVD
VE9SWX0vV2ViQ29yZS9UZXN0V2ViQ29yZSkKK3NldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RXZWJD
b3JlIFBST1BFUlRJRVMgVElNRU9VVCA2MCkKK3NldF90YXJnZXRfcHJvcGVydGllcyhUZXN0V2Vi
Q29yZSBQUk9QRVJUSUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRBUElf
UlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9XZWJDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZkMjEyMWJkN2EyCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BF
LmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1
bmRsZUNvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2b2lkIElu
amVjdGVkQnVuZGxlQ29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS93cGUvUGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUv
UGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5lMjFjMWVhYTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL2ds
aWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgeworbmFtZXNwYWNlIFV0aWwgeworCit2b2lkIHNsZWVwKGRvdWJs
ZSBzZWNvbmRzKQoreworICAgIGdfdXNsZWVwKHNlY29uZHMgKiAxMDAwMDAwKTsKK30KKworc3Rh
dGljIGNoYXIqIGdldEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoY29uc3Qg
Y2hhciogdmFyaWFibGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYo
dmFyaWFibGVOYW1lKTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIGdfcHJpbnRlcnIoIiVz
IGVudmlyb25tZW50IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAg
ICAgZXhpdCgxKTsKKyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBn
X2ZpbGVuYW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKwor
V0tTdHJpbmdSZWYgY3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRy
PGNoYXI+IGluamVjdGVkQnVuZGxlUGF0aChnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlh
YmxlQXNVVEY4KCJURVNUX1dFQktJVF9BUElfV0VCS0lUMl9JTkpFQ1RFRF9CVU5ETEVfUEFUSCIp
KTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGluamVjdGVkQnVuZGxlRmlsZW5hbWUoZ19idWlsZF9m
aWxlbmFtZShpbmplY3RlZEJ1bmRsZVBhdGguZ2V0KCksICJsaWJUZXN0V2ViS2l0QVBJSW5qZWN0
ZWRCdW5kbGUuc28iLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKGluamVjdGVkQnVuZGxlRmlsZW5hbWUuZ2V0KCkpOworfQorCitXS1VSTFJlZiBj
cmVhdGVVUkxGb3JSZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSwgY29uc3QgY2hhciogZXh0
ZW5zaW9uKQoreworICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGVzdFJlc291cmNlc1BhdGgoZ2V0Rmls
ZW5hbWVGcm9tRW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJ
VDJfUkVTT1VSQ0VTX1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUJhc2Vu
YW1lKGdfc3RyZHVwX3ByaW50ZigiJXMuJXMiLCByZXNvdXJjZSwgZXh0ZW5zaW9uKSk7CisgICAg
R1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUodGVzdFJl
c291cmNlc1BhdGguZ2V0KCksIHJlc291cmNlQmFzZW5hbWUuZ2V0KCksIG51bGxwdHIpKTsKKyAg
ICBHUmVmUHRyPEdGaWxlPiByZXNvdXJjZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3Jf
cGF0aChyZXNvdXJjZUZpbGVuYW1lLmdldCgpKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNv
dXJjZVVSSShnX2ZpbGVfZ2V0X3VyaShyZXNvdXJjZUZpbGUuZ2V0KCkpKTsKKyAgICByZXR1cm4g
V0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcocmVzb3VyY2VVUkkuZ2V0KCkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBVdGlsCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d3BlL21haW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjU2
OGI2YzMyZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4u
Y3BwCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RzQ29udHJv
bGxlci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJu
IFRlc3RXZWJLaXRBUEk6OlRlc3RzQ29udHJvbGxlcjo6c2luZ2xldG9uKCkucnVuKGFyZ2MsIGFy
Z3YpID8gRVhJVF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmNwcAppbmRleCAwYTEzMGQ0ZThkZC4uZGUyYmUzZTdiY2QgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQogICAgIHJldHVy
biBXS0FjY2Vzc2liaWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CiB9CiAKLSNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKQorI2lmICFQTEFURk9STShHVEspICYm
ICFQTEFURk9STShFRkwpICYmICFQTEFURk9STShXUEUpCiBSZWY8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKIHsKICAgICBXS0J1
bmRsZVBhZ2VSZWYgcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBh
Z2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCA1Y2YwZDczOWMxZS4uYzhk
NzhlNzdhMTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTczLDcgKzczLDcg
QEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOb3RpZmlj
YXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7Ci0jZWxzZQorI2VsaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7CiAjZW5kaWYK
IH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCAyMzNmZjdkMjAzNC4uYjhh
ZjZmMTZjYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApAQCAtNzgsNyArNzgs
NyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dEFyZWEoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgCiAvLyBVbnN1cHBvcnRlZCBtZXRob2RzIG9uIHZh
cmlvdXMgcGxhdGZvcm1zLiBBcyB0aGV5J3JlIGltcGxlbWVudGVkIG9uIG90aGVyIHBsYXRmb3Jt
cyB0aGlzIGxpc3Qgc2hvdWxkIGJlIG1vZGlmaWVkLgotI2lmICghUExBVEZPUk0oR1RLKSAmJiAh
UExBVEZPUk0oRUZMKSkgfHwgIUhBVkUoQUNDRVNTSUJJTElUWSkKKyNpZiAoIVBMQVRGT1JNKEdU
SykgJiYgIVBMQVRGT1JNKEVGTCkgJiYgIVBMQVRGT1JNKFdQRSkpIHx8ICFIQVZFKEFDQ0VTU0lC
SUxJVFkpCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y2hhcmFjdGVyQXRPZmZzZXQoaW50KSB7IHJldHVybiBudWxscHRyOyB9CiBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmgKaW5kZXggNTUwOWFmMjE3N2QuLjZkMDcwNjc4YjllIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMzE3LDcgKzMxNyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBnZXRVSUVsZW1lbnRzV2l0aEF0dHJpYnV0ZShKU1N0cmluZ1JlZiwgVmVjdG9yPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JikgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKFdQ
RSkKICAgICB2b2lkIGdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gPiYpOwogICAgIHZvaWQgZ2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JiwgdW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxl
bmd0aCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGFmZmM0MGYwZTQzLi4wMTkxMzYyMzc0ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCkBAIC05OCw3ICs5OCw3IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgICwg
bV9kYXRhYmFzZU1heFF1b3RhKC0xKQogICAgICwgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQoZmFs
c2UpCiAgICAgLCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24oYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiIikpKQotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAsIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoUnVu
TG9vcDo6bWFpbigpLCB0aGlzLCAmVGVzdFJ1bm5lcjo6d2FpdFRvRHVtcFdhdGNoZG9nVGltZXJG
aXJlZCkKICNlbmRpZgogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA4ZGM4OWNhMzE1ZS4uNGRiMjhhZDRhMmMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
CkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUg
PENvcmVGb3VuZGF0aW9uL0NGUnVuTG9vcC5oPgogdHlwZWRlZiBSZXRhaW5QdHI8Q0ZSdW5Mb29w
VGltZXJSZWY+IFBsYXRmb3JtVGltZXJSZWY7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
bmFtZXNwYWNlIFdUUiB7CiBjbGFzcyBUZXN0UnVubmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJX
UEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5lOTRjMmFhYjcwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcApA
QCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKwor
dm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJp
bmdSZWYgaWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpw
bGF0Zm9ybU5hbWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6cm9vdEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsKK30KKworUmVmPEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVu
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Y3JlYXRlKG51bGxwdHIpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCisjZW5k
aWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDY0
OTE1MGE1NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcApAQCAtMCwwICsxLDk1
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKworQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChQbGF0Zm9ybVVJRWxlbWVudCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Pj4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4mLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVu
Q291bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVt
ZW50QXRQb2ludChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleE9m
Q2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdElu
ZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5k
ZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4
KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpyb3dBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit1bnNp
Z25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJv
d0F0SW5kZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2Vk
VUlFbGVtZW50cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmF0dHJpYnV0ZXNPZkRvY3VtZW50TGlua3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbigpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0
cmluZ1JlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUo
SlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDAuMDsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1l
bnRBcnJheUF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVlUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTVmFsdWVSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVl
KEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJv
b2xBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmlidXRl
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYW1ldGVyaXpl
ZEF0dHJpYnV0ZU5hbWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cm9sZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN1YnJvbGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
b2xlRGVzY3JpcHRpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpjb21wdXRlZFJvbGVTdHJpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp0aXRsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmRlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp4KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9
CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp3aWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOwor
fQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjbGlja1BvaW50WCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2lu
dFkoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91
YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjptaW5WYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24o
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNJbmNyZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzRGVjcmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0Vu
YWJsZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNTZWxlY3RlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZE9wdGlv
bkFjdGl2ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0luZGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGll
cmFyY2hpY2FsTGV2ZWwoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzcGVhaygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEcm9wRWZm
ZWN0cygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRleChpbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9zaXRp
b24oaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmJvdW5kc0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVk
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVk
U3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkLCB1bnNpZ25lZCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWdu
ZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVkaWNh
dGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJl
ZiwgSlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYs
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwg
Ym9vbCwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU1ZhbHVl
UmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJz
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
c09mQ29sdW1ucygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmF0dHJpYnV0ZXNPZlJvd3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphdHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpyb3dDb3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aW5kZXhJblRhYmxlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cm93SW5kZXhSYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnbmVk
LCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFu
Z2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UodW5zaWdu
ZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZWNy
ZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c2hvd01lbnUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3MoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZChB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGls
ZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4
KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xlYXJTZWxlY3RlZENoaWxkcmVuKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50VVJJ
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTVmFsdWVSZWYg
ZnVuY3Rpb25DYWxsYmFjaykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRp
b25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4oKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0lnbm9yZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
U2luZ2xlTGluZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aUxpbmUoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp0YWtlRm9jdXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbigpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRTZWxlY3Rp
b24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bGluZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQq
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpwcmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFRl
eHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXIqLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JU
ZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9y
VGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZv
ckJvdW5kcyhpbnQsIGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBpbnQs
IGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6dGV4dE1hcmtlckZvclBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRleHRN
YXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3Ry
aW5nUmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmluZGV4Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc1RleHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtl
ckZvckluZGV4KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNldFNlbGVjdGVkVmlzaWJsZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
Kwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNjcm9sbFRvR2xvYmFsUG9pbnQoaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlV2l0
aFN1YkZvY3VzKGludCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Vw
cG9ydGVkQWN0aW9ucygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnBhdGhEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNjcmlw
dHNEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNsYXNzTGlzdCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChp
bnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgIFdURgorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZh
dGVGb250c1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dw
ZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYzNjZjcyMWIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApAQCAtMCwwICsxLDE0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCisjaW5jbHVk
ZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxp
dGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdU
UiB7CisKK0NTdHJpbmcgdG9wTGV2ZWxQYXRoKCkKK3sKKyAgICBpZiAoY29uc3QgY2hhciogdG9w
TGV2ZWxEaXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX1RPUF9MRVZFTCIpKQorICAgICAgICBy
ZXR1cm4gdG9wTGV2ZWxEaXJlY3Rvcnk7CisKKyAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFy
aWFibGUgd2Fzbid0IHByb3ZpZGVkIHRoZW4gYXNzdW1lIHdlIHdlcmUgYnVpbHQgaW50bworICAg
IC8vIFdlYktpdEJ1aWxkL0RlYnVnIG9yIFdlYktpdEJ1aWxkL1JlbGVhc2UuIE9idmlvdXNseSB0
aGlzIHdpbGwgZmFpbCBpZiB0aGUgYnVpbGQKKyAgICAvLyBkaXJlY3RvcnkgaXMgbm9uLXN0YW5k
YXJkLCBidXQgd2UgY2FuJ3QgZG8gbXVjaCBtb3JlIGFib3V0IHRoaXMuCisgICAgR1VuaXF1ZVB0
cjxjaGFyPiBwYXJlbnRQYXRoKGdfcGF0aF9nZXRfZGlybmFtZShnZXRDdXJyZW50RXhlY3V0YWJs
ZVBhdGgoKS5kYXRhKCkpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGxheW91dFRlc3RzUGF0aChn
X2J1aWxkX2ZpbGVuYW1lKHBhcmVudFBhdGguZ2V0KCksICIuLiIsICIuLiIsICIuLiIsIG51bGxw
dHIpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGFic29sdXRlVG9wTGV2ZWxQYXRoKHJlYWxwYXRo
KGxheW91dFRlc3RzUGF0aC5nZXQoKSwgMCkpOworICAgIHJldHVybiBhYnNvbHV0ZVRvcExldmVs
UGF0aC5nZXQoKTsKK30KKworQ1N0cmluZyBnZXRPdXRwdXREaXIoKQoreworICAgIGNvbnN0IGNo
YXIqIHdlYmtpdE91dHB1dERpciA9IGdfZ2V0ZW52KCJXRUJLSVRfT1VUUFVURElSIik7CisgICAg
aWYgKHdlYmtpdE91dHB1dERpcikKKyAgICAgICAgcmV0dXJuIHdlYmtpdE91dHB1dERpcjsKKwor
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gb3V0cHV0RGlyKGdfYnVpbGRfZmlsZW5hbWUodG9wTGV2ZWxQ
YXRoKCkuZGF0YSgpLCAiV2ViS2l0QnVpbGQiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIG91dHB1
dERpci5nZXQoKTsKK30KKworc3RhdGljIENTdHJpbmcgZ2V0Rm9udHNQYXRoKCkKK3sKKyAgICBD
U3RyaW5nIHdlYmtpdE91dHB1dERpciA9IGdldE91dHB1dERpcigpOworICAgIEdVbmlxdWVQdHI8
Y2hhcj4gZm9udHNQYXRoKGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwg
IkRlcGVuZGVuY2llc1dQRSIsICJSb290IiwgIndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgbnVsbHB0
cikpOworICAgIGlmIChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0PEdG
aWxlVGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfRElSKSkpCisgICAg
ICAgIHJldHVybiBmb250c1BhdGguZ2V0KCk7CisKKyAgICAvLyBUcnkgYWx0ZXJuYXRpdmUgZm9u
dHMgcGF0aC4KKyAgICBmb250c1BhdGgucmVzZXQoZ19idWlsZF9maWxlbmFtZSh3ZWJraXRPdXRw
dXREaXIuZGF0YSgpLCAid2Via2l0Z3RrLXRlc3QtZm9udHMiLCBOVUxMKSk7CisgICAgaWYgKGdf
ZmlsZV90ZXN0KGZvbnRzUGF0aC5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVf
VEVTVF9FWElTVFMgfCBHX0ZJTEVfVEVTVF9JU19ESVIpKSkKKyAgICAgICAgcmV0dXJuIGZvbnRz
UGF0aC5nZXQoKTsKKworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisKK3ZvaWQgYWN0aXZhdGVG
b250cygpCit7CisgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVRfU0tJUF9XRUJLSVRURVNUUlVOTkVS
X0ZPTlRDT05GSUdfSU5JVElBTElaQVRJT04iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmNJ
bml0KCk7CisKKyAgICAvLyBJZiBhIHRlc3QgcmVzdWx0ZWQgYSBmb250IGJlaW5nIGFkZGVkIG9y
IHJlbW92ZWQgdmlhIHRoZSBAZm9udC1mYWNlIHJ1bGUsIHRoZW4KKyAgICAvLyB3ZSB3YW50IHRv
IHJlc2V0IHRoZSBGb250Q29uZmlnIGNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBpdCBmcm9tIGFm
ZmVjdGluZyBvdGhlciB0ZXN0cy4KKyAgICBzdGF0aWMgaW50IG51bUZvbnRzID0gMDsKKyAgICBG
Y0ZvbnRTZXQqIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGljYXRp
b24pOworICAgIGlmIChhcHBGb250U2V0ICYmIG51bUZvbnRzICYmIGFwcEZvbnRTZXQtPm5mb250
ID09IG51bUZvbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBMb2FkIG91ciBjb25maWd1
cmF0aW9uIGZpbGUsIHdoaWNoIHNldHMgdXAgcHJvcGVyIGFsaWFzZXMgZm9yIGZhbWlseQorICAg
IC8vIG5hbWVzIGxpa2Ugc2Fucywgc2VyaWYgYW5kIG1vbm9zcGFjZS4KKyAgICBGY0NvbmZpZyog
Y29uZmlnID0gRmNDb25maWdDcmVhdGUoKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250Q29u
ZmlnRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgImZvbnRzLmNvbmYi
LCBudWxscHRyKSk7CisgICAgaWYgKCFnX2ZpbGVfdGVzdChmb250Q29uZmlnRmlsZW5hbWUuZ2V0
KCksIEdfRklMRV9URVNUX0lTX1JFR1VMQVIpKQorICAgICAgICBnX2Vycm9yKCJDYW5ub3QgZmlu
ZCBmb250cy5jb25mIGF0ICVzXG4iLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworICAgIGlm
ICghRmNDb25maWdQYXJzZUFuZExvYWQoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgq
Pihmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpLCB0cnVlKSkKKyAgICAgICAgZ19lcnJvcigiQ291
bGRuJ3QgbG9hZCBmb250IGNvbmZpZ3VyYXRpb24gZmlsZSBmcm9tOiAlcyIsIGZvbnRDb25maWdG
aWxlbmFtZS5nZXQoKSk7CisKKyAgICBDU3RyaW5nIGZvbnRzUGF0aCA9IGdldEZvbnRzUGF0aCgp
OworICAgIGlmIChmb250c1BhdGguaXNOdWxsKCkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5v
dCBsb2NhdGUgdGVzdCBmb250cyBhdCAlcy4gSXMgV0VCS0lUX1RPUF9MRVZFTCBzZXQ/IiwgZm9u
dHNQYXRoLmRhdGEoKSk7CisKKyAgICBHVW5pcXVlUHRyPEdEaXI+IGZvbnRzRGlyZWN0b3J5KGdf
ZGlyX29wZW4oZm9udHNQYXRoLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAgIHdoaWxlIChjb25z
dCBjaGFyKiBkaXJlY3RvcnlFbnRyeSA9IGdfZGlyX3JlYWRfbmFtZShmb250c0RpcmVjdG9yeS5n
ZXQoKSkpIHsKKyAgICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAi
LnR0ZiIpICYmICFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLm90ZiIpKQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRQYXRoKGdf
YnVpbGRfZmlsZW5hbWUoZm9udHNQYXRoLmRhdGEoKSwgZGlyZWN0b3J5RW50cnksIG51bGxwdHIp
KTsKKyAgICAgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBGY0NoYXI4Kj4oZm9udFBhdGguZ2V0KCkpKSkKKyAgICAgICAgICAgIGdf
ZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFBhdGguZ2V0KCkpOworICAg
IH0KKworICAgIC8vIEFoZW0gaXMgdXNlZCBieSBtYW55IGxheW91dCB0ZXN0cy4KKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiBhaGVtRm9udEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09O
Rl9ESVIsICJBSEVNX19fXy5UVEYiLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0FwcEZv
bnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oYWhlbUZvbnRGaWxl
bmFtZS5nZXQoKSkpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVz
ISIsIGFoZW1Gb250RmlsZW5hbWUuZ2V0KCkpOyAKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBm
b250RmlsZW5hbWVzW10gPSB7CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMTAwLnR0ZiIs
CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRX
ZWlnaHRXYXRjaGVyMzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNDAwLnR0
ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNTAwLnR0ZiIsCisgICAgICAgICJXZWJL
aXRXZWlnaHRXYXRjaGVyNjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNzAw
LnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiIsCisgICAgICAgICJX
ZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiIsCisgICAgICAgIDAKKyAgICB9OworCisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGZvbnRGaWxlbmFtZXNbaV07ICsraSkgeworICAgICAgICBHVW5pcXVl
UHRyPGdjaGFyPiBmb250RmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwg
Ii4uIiwgIi4uIiwgImZvbnRzIiwgZm9udEZpbGVuYW1lc1tpXSwgbnVsbHB0cikpOworICAgICAg
ICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZj
Q2hhcjgqPihmb250RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNvdWxk
IG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udEZpbGVuYW1lLmdldCgpKTsgCisgICAgfQorCisg
ICAgLy8gQSBmb250IHdpdGggbm8gdmFsaWQgRm9udGNvbmZpZyBlbmNvZGluZyB0byB0ZXN0IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ1MgorICAgIEdVbmlxdWVQ
dHI8Z2NoYXI+IGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUoZ19idWlsZF9maWxlbmFt
ZShGT05UU19DT05GX0RJUiwgIkZvbnRXaXRoTm9WYWxpZEVuY29kaW5nLmZvbiIsIG51bGxwdHIp
KTsKKyAgICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9j
YXN0PEZjQ2hhcjgqPihmb250V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lLmdldCgpKSkpCisg
ICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFdpdGhOb1Zh
bGlkRW5jb2RpbmdGaWxlbmFtZS5nZXQoKSk7IAorCisgICAgaWYgKCFGY0NvbmZpZ1NldEN1cnJl
bnQoY29uZmlnKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IHNldCB0aGUgY3VycmVudCBm
b250IGNvbmZpZ3VyYXRpb24hIik7CisKKyAgICBudW1Gb250cyA9IEZjQ29uZmlnR2V0Rm9udHMo
Y29uZmlnLCBGY1NldEFwcGxpY2F0aW9uKS0+bmZvbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUv
SW5qZWN0ZWRCdW5kbGVXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4yNDA4MWZmM2EyOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcApAQCAt
MCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgor
CituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1Jbml0aWFs
aXplKFdLVHlwZVJlZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJX
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZjE0ZmZkZDA1
NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlRlc3RSdW5uZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5nUmVm
KQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
VGVzdFJ1bm5lcjo6aW5zcGVjdG9yVGVzdFN0dWJVUkwoKQoreworICAgIHJldHVybiBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiIik7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW52YWxp
ZGF0ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkKK3sKKyAgICBtX3dhaXRUb0R1bXBXYXRjaGRv
Z1RpbWVyLnN0b3AoKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpwbGF0Zm9ybUluaXRpYWxpemUo
KQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dU
aW1lcklmTmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydE9uZVNob3Qo
bV90aW1lb3V0IC8gMTAwMC4wKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi40YTg2MmQ2OWFmYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NyBAQAorZmluZF9wYWNr
YWdlKExpYkdCTSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1lc2EgUkVRVUlS
RUQpCisKK2FkZF9jdXN0b21fdGFyZ2V0KFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFk
ZXJzCisgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0
cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtXRUJLSVRf
VEVTVFJVTk5FUl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0
Zm9ybSB3cGUKKykKKworc2V0KEZvcndhcmRpbmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5lcl9O
QU1FIFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzKQorCitsaXN0KEFQUEVORCBX
ZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vY2Fp
cm8vVGVzdEludm9jYXRpb25DYWlyby5jcHAKKworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElS
fS93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJ
Un0vd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9E
SVJ9L3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9E
SVJ9L3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJ
Un0vd3BlL21haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9JbmplY3RlZEJ1bmRs
ZS93cGUKKyAgICAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtDQUlST19JTkNMVURF
X0RJUlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0xJQkdCTV9JTkNMVURFX0RJ
UlN9CisgICAgJHtXUEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktp
dFRlc3RSdW5uZXJfTElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtHTElC
X0xJQlJBUklFU30KKyAgICAke0xJQkdCTV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTUVTQV9MSUJS
QVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9T
T1VSQ0VTCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0lO
SkVDVEVEQlVORExFX0RJUn0vd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwCisgICAg
JHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY3RpdmF0ZUZvbnRz
V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUv
SW5qZWN0ZWRCdW5kbGVXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJV
TkRMRV9ESVJ9L3dwZS9UZXN0UnVubmVyV1BFLmNwcAorKQorCithZGRfZGVmaW5pdGlvbnMoCisg
ICAgLURGT05UU19DT05GX0RJUj0iJHtUT09MU19ESVJ9L1dlYktpdFRlc3RSdW5uZXIvZ3RrL2Zv
bnRzIgorICAgIC1EVE9QX0xFVkVMX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IDcxYTRlNzY2MTc2Li41NDJm
MDM2NmQ1NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZp
ZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC01
Myw2ICs1MywxMSBAQCB0eXBlZGVmIGNhaXJvX3N1cmZhY2VfdCAqUGxhdGZvcm1JbWFnZTsKICNl
bGlmIFBMQVRGT1JNKEVGTCkKIHR5cGVkZWYgRXZhc19PYmplY3QqIFBsYXRmb3JtV0tWaWV3Owog
dHlwZWRlZiBFY29yZV9FdmFzKiBQbGF0Zm9ybVdpbmRvdzsKKyNlbGlmIFBMQVRGT1JNKFdQRSkK
K2NsYXNzIEhlYWRsZXNzVmlld0JhY2tlbmQ7Cit0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdL
VmlldzsKK3R5cGVkZWYgSGVhZGxlc3NWaWV3QmFja2VuZCogUGxhdGZvcm1XaW5kb3c7Cit0eXBl
ZGVmIGNhaXJvX3N1cmZhY2VfdCogUGxhdGZvcm1JbWFnZTsKICNlbmRpZgogCiBuYW1lc3BhY2Ug
V1RSIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOWI3
MDllMzZmNzUuLmFkMTlmMTBiNDI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcApAQCAtNzY3LDcgKzc2Nyw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAg
Ly8gc29tZSBvdGhlciBjb2RlIGRvaW5nIHRoaXMsIGl0IHNob3VsZCBwcm9iYWJseSBiZSByZXNw
b25zaWJsZSBmb3IgY2xlYW51cCB0b28uCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVu
dFZhbHVlcyhvcHRpb25zKTsKIAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0o
Q09DT0EpICYmICFQTEFURk9STShXUEUpCiAgICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCh0cnVlKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41MWVlMGZjMmU1NgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3Bw
CkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudFNlbmRlclBy
b3h5LmgiCisKK25hbWVzcGFjZSBXVFIgeworCitFdmVudFNlbmRlclByb3h5OjpFdmVudFNlbmRl
clByb3h5KFRlc3RDb250cm9sbGVyKiB0ZXN0Q29udHJvbGxlcikKKyAgICA6IG1fdGVzdENvbnRy
b2xsZXIodGVzdENvbnRyb2xsZXIpCisgICAgLCBtX3RpbWUoMCkKKyAgICAsIG1fbGVmdE1vdXNl
QnV0dG9uRG93bihmYWxzZSkKKyAgICAsIG1fY2xpY2tDb3VudCgwKQorICAgICwgbV9jbGlja1Rp
bWUoMCkKKyAgICAsIG1fY2xpY2tCdXR0b24oa1dLRXZlbnRNb3VzZUJ1dHRvbk5vQnV0dG9uKQor
eworfQorCitFdmVudFNlbmRlclByb3h5Ojp+RXZlbnRTZW5kZXJQcm94eSgpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VEb3duKHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJz
KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlVXAodW5zaWduZWQsIFdLRXZl
bnRNb2RpZmllcnMpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VNb3ZlVG8o
ZG91YmxlLCBkb3VibGUpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3Jv
bGxCeShpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50LCBpbnQsIGludCwgaW50KQoreworfQor
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCwgaW50
LCBib29sKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUmVmLCBXS0V2
ZW50TW9kaWZpZXJzLCB1bnNpZ25lZCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojph
ZGRUb3VjaFBvaW50KGludCwgaW50KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnVw
ZGF0ZVRvdWNoUG9pbnQoaW50LCBpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclBy
b3h5OjpzZXRUb3VjaE1vZGlmaWVyKFdLRXZlbnRNb2RpZmllcnMsIGJvb2wpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0VG91Y2hQb2ludFJhZGl1cyhpbnQsIGludCkKK3sKK30K
Kwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaFN0YXJ0KCkKK3sKK30KKwordm9pZCBFdmVu
dFNlbmRlclByb3h5Ojp0b3VjaE1vdmUoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6
OnRvdWNoRW5kKCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaENhbmNlbCgp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6Y2xlYXJUb3VjaFBvaW50cygpCit7Cit9
CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6cmVsZWFzZVRvdWNoUG9pbnQoaW50KQoreworfQor
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNhbmNlbFRvdWNoUG9pbnQoaW50KQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3Bl
L0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVh
ZGxlc3NWaWV3QmFja2VuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjU2MGI0MGEzZWZiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHAKQEAgLTAsMCArMSwyNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkhlYWRsZXNzVmlld0JhY2tlbmQuaCIKKworI2luY2x1ZGUgPGNhc3Nl
cnQ+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworLy8gRklYTUU6
IERlcGxveSBnb29kIHByYWN0aWNlcyBhbmQgY2xlYW4gdXAgR0JNIHJlc291cmNlcyBhdCBwcm9j
ZXNzIGV4aXQuCitzdGF0aWMgRUdMRGlzcGxheSBnZXRFR0xEaXNwbGF5KCkKK3sKKyAgICBzdGF0
aWMgRUdMRGlzcGxheSBzX2Rpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKKyAgICBpZiAoc19kaXNw
bGF5ID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIGludCBmZCA9IG9wZW4oIi9kZXYvZHJp
L3JlbmRlckQxMjgiLCBPX1JEV1IgfCBPX0NMT0VYRUMgfCBPX05PQ1RUWSB8IE9fTk9OQkxPQ0sp
OworICAgICAgICBpZiAoZmQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZ
OworCisgICAgICAgIHN0cnVjdCBnYm1fZGV2aWNlKiBkZXZpY2UgPSBnYm1fY3JlYXRlX2Rldmlj
ZShmZCk7CisgICAgICAgIGlmICghZGV2aWNlKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19E
SVNQTEFZOworCisgICAgICAgIEVHTERpc3BsYXkgZGlzcGxheSA9IGVnbEdldERpc3BsYXkoZGV2
aWNlKTsKKyAgICAgICAgaWYgKGRpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgICAgICAg
ICByZXR1cm4gRUdMX05PX0RJU1BMQVk7CisKKyAgICAgICAgaWYgKCFlZ2xJbml0aWFsaXplKGRp
c3BsYXksIG51bGxwdHIsIG51bGxwdHIpKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQ
TEFZOworCisgICAgICAgIGlmICghZWdsQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSkpCisgICAg
ICAgICAgICByZXR1cm4gRUdMX05PX0RJU1BMQVk7CisKKyAgICAgICAgc19kaXNwbGF5ID0gZGlz
cGxheTsKKyAgICB9CisKKyAgICByZXR1cm4gc19kaXNwbGF5OworfQorCitIZWFkbGVzc1ZpZXdC
YWNrZW5kOjpIZWFkbGVzc1ZpZXdCYWNrZW5kKCkKK3sKKyAgICBtX2VnbC5kaXNwbGF5ID0gZ2V0
RUdMRGlzcGxheSgpOworCisgICAgc3RhdGljIGNvbnN0IEVHTGludCBjb25maWdBdHRyaWJ1dGVz
WzEzXSA9IHsKKyAgICAgICAgRUdMX1NVUkZBQ0VfVFlQRSwgRUdMX1dJTkRPV19CSVQsCisgICAg
ICAgIEVHTF9SRURfU0laRSwgMSwKKyAgICAgICAgRUdMX0dSRUVOX1NJWkUsIDEsCisgICAgICAg
IEVHTF9CTFVFX1NJWkUsIDEsCisgICAgICAgIEVHTF9BTFBIQV9TSVpFLCAxLAorICAgICAgICBF
R0xfUkVOREVSQUJMRV9UWVBFLCBFR0xfT1BFTkdMX0VTMl9CSVQsCisgICAgICAgIEVHTF9OT05F
CisgICAgfTsKKworICAgIEVHTGludCBudW1Db25maWdzOworICAgIEVHTEJvb2xlYW4gcmV0ID0g
ZWdsQ2hvb3NlQ29uZmlnKG1fZWdsLmRpc3BsYXksIGNvbmZpZ0F0dHJpYnV0ZXMsICZtX2VnbC5j
b25maWcsIDEsICZudW1Db25maWdzKTsKKyAgICBpZiAoIXJldCB8fCAhbnVtQ29uZmlncykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc3RhdGljIGNvbnN0IEVHTGludCBjb250ZXh0QXR0cmlidXRl
c1szXSA9IHsKKyAgICAgICAgRUdMX0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04sIDIsCisgICAgICAg
IEVHTF9OT05FCisgICAgfTsKKworICAgIG1fZWdsLmNvbnRleHQgPSBlZ2xDcmVhdGVDb250ZXh0
KG1fZWdsLmRpc3BsYXksIG1fZWdsLmNvbmZpZywgRUdMX05PX0NPTlRFWFQsIGNvbnRleHRBdHRy
aWJ1dGVzKTsKKyAgICBpZiAobV9lZ2wuY29udGV4dCA9PSBFR0xfTk9fQ09OVEVYVCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKCFlZ2xNYWtlQ3VycmVudChtX2VnbC5kaXNwbGF5LCBFR0xf
Tk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1fZWdsLmNvbnRleHQpKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2VnbC5jcmVhdGVJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMQ1JF
QVRFSU1BR0VLSFJQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsQ3JlYXRlSW1hZ2VLSFIiKSk7
CisgICAgbV9lZ2wuZGVzdHJveUltYWdlID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xERVNUUk9Z
SU1BR0VLSFJQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsRGVzdHJveUltYWdlS0hSIikpOwor
ICAgIG1fZWdsLmltYWdlVGFyZ2V0VGV4dHVyZTJET0VTID0gcmVpbnRlcnByZXRfY2FzdDxQRk5H
TEVHTElNQUdFVEFSR0VUVEVYVFVSRTJET0VTUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsRUdM
SW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMiKSk7CisKKyAgICBtX2V4cG9ydGFibGUgPSB3cGVfbWVz
YV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2NyZWF0ZSgmc19leHBvcnRhYmxlQ2xp
ZW50LCB0aGlzKTsKKworICAgIG1fdXBkYXRlU291cmNlID0gZ190aW1lb3V0X3NvdXJjZV9uZXco
bV9mcmFtZVJhdGUgLyAxMDAwKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV91cGRhdGVT
b3VyY2UsCisgICAgICAgIFtdKGdwb2ludGVyIGRhdGEpIC0+IGdib29sZWFuIHsKKyAgICAgICAg
ICAgIGF1dG8mIGJhY2tlbmQgPSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KGRh
dGEpOworICAgICAgICAgICAgYmFja2VuZC5wZXJmb3JtVXBkYXRlKCk7CisgICAgICAgICAgICBy
ZXR1cm4gVFJVRTsKKyAgICAgICAgfSwgdGhpcywgbnVsbHB0cik7CisgICAgZ19zb3VyY2VfYXR0
YWNoKG1fdXBkYXRlU291cmNlLCBnX21haW5fY29udGV4dF9kZWZhdWx0KCkpOworfQorCitIZWFk
bGVzc1ZpZXdCYWNrZW5kOjp+SGVhZGxlc3NWaWV3QmFja2VuZCgpCit7CisgICAgaWYgKG1fdXBk
YXRlU291cmNlKQorICAgICAgICBnX3NvdXJjZV9kZXN0cm95KG1fdXBkYXRlU291cmNlKTsKKwor
ICAgIGlmIChhdXRvIGltYWdlID0gc3RkOjpnZXQ8MD4obV9wZW5kaW5nSW1hZ2Uuc2Vjb25kKSkK
KyAgICAgICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKKyAgICBp
ZiAoYXV0byBpbWFnZSA9IHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSkKKyAgICAg
ICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKKworICAgIGZvciAo
YXV0byBpdCA6IG1fZXhwb3J0TWFwKSB7CisgICAgICAgIGludCBmZCA9IGl0LnNlY29uZDsKKyAg
ICAgICAgaWYgKGZkID49IDApCisgICAgICAgICAgICBjbG9zZShmZCk7CisgICAgfQorCisgICAg
aWYgKG1fZWdsLmNvbnRleHQpCisgICAgICAgIGVnbERlc3Ryb3lDb250ZXh0KG1fZWdsLmRpc3Bs
YXksIG1fZWdsLmNvbnRleHQpOworfQorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogSGVhZGxl
c3NWaWV3QmFja2VuZDo6YmFja2VuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdwZV9tZXNhX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZ2V0X3ZpZXdfYmFja2VuZChtX2V4cG9ydGFi
bGUpOworfQorCitjYWlyb19zdXJmYWNlX3QqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmNyZWF0ZVNu
YXBzaG90KCkKK3sKKyAgICBwZXJmb3JtVXBkYXRlKCk7CisKKyAgICBFR0xJbWFnZUtIUiBpbWFn
ZSA9IHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKyAgICBpZiAoIWltYWdlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHVpbnQzMl90IHdpZHRoID0gc3RkOjpnZXQ8
MT4obV9sb2NrZWRJbWFnZS5zZWNvbmQpOworICAgIHVpbnQzMl90IGhlaWdodCA9IHN0ZDo6Z2V0
PDI+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKworICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IG5ldyB1
aW50OF90WzQgKiB3aWR0aCAqIGhlaWdodF07CisgICAgYm9vbCBzdWNjZXNzZnVsU25hcHNob3Qg
PSBmYWxzZTsKKworICAgIG1ha2VDdXJyZW50KCk7CisKKyAgICBHTHVpbnQgaW1hZ2VUZXh0dXJl
OworICAgIGdsR2VuVGV4dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisgICAgZ2xCaW5kVGV4dHVy
ZShHTF9URVhUVVJFXzJELCBpbWFnZVRleHR1cmUpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9U
RVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQ
YXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFS
KTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1Ms
IEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2xUZXhJbWFnZTJEKEdM
X1RFWFRVUkVfMkQsIDAsIEdMX0JHUkFfRVhULCB3aWR0aCwgaGVpZ2h0LCAwLCBHTF9CR1JBX0VY
VCwgR0xfVU5TSUdORURfQllURSwgbnVsbHB0cik7CisKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRl
eHR1cmUyRE9FUyhHTF9URVhUVVJFXzJELCBpbWFnZSk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9U
RVhUVVJFXzJELCAwKTsKKworICAgIEdMdWludCBpbWFnZUZyYW1lYnVmZmVyOworICAgIGdsR2Vu
RnJhbWVidWZmZXJzKDEsICZpbWFnZUZyYW1lYnVmZmVyKTsKKyAgICBnbEJpbmRGcmFtZWJ1ZmZl
cihHTF9GUkFNRUJVRkZFUiwgaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xGcmFtZWJ1ZmZlclRl
eHR1cmUyRChHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVf
MkQsIGltYWdlVGV4dHVyZSwgMCk7CisKKyAgICBnbEZsdXNoKCk7CisgICAgaWYgKGdsQ2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhHTF9GUkFNRUJVRkZFUikgPT0gR0xfRlJBTUVCVUZGRVJfQ09NUExF
VEUpIHsKKyAgICAgICAgZ2xSZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIEdMX0JHUkFf
RVhULCBHTF9VTlNJR05FRF9CWVRFLCBidWZmZXIpOworICAgICAgICBzdWNjZXNzZnVsU25hcHNo
b3QgPSB0cnVlOworICAgIH0KKworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVS
LCAwKTsKKyAgICBnbERlbGV0ZUZyYW1lYnVmZmVycygxLCAmaW1hZ2VGcmFtZWJ1ZmZlcik7Cisg
ICAgZ2xEZWxldGVUZXh0dXJlcygxLCAmaW1hZ2VUZXh0dXJlKTsKKworICAgIGlmICghc3VjY2Vz
c2Z1bFNuYXBzaG90KSB7CisgICAgICAgIGRlbGV0ZVtdIGJ1ZmZlcjsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQorCisgICAgY2Fpcm9fc3VyZmFjZV90KiBpbWFnZVN1cmZhY2UgPSBj
YWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXIsCisgICAgICAgIENBSVJP
X0ZPUk1BVF9BUkdCMzIsIHdpZHRoLCBoZWlnaHQsIGNhaXJvX2Zvcm1hdF9zdHJpZGVfZm9yX3dp
ZHRoKENBSVJPX0ZPUk1BVF9BUkdCMzIsIHdpZHRoKSk7CisgICAgY2Fpcm9fc3VyZmFjZV9tYXJr
X2RpcnR5KGltYWdlU3VyZmFjZSk7CisKKyAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90
IGJ1ZmZlcktleTsKKyAgICBjYWlyb19zdXJmYWNlX3NldF91c2VyX2RhdGEoaW1hZ2VTdXJmYWNl
LCAmYnVmZmVyS2V5LCBidWZmZXIsCisgICAgICAgIFtdKHZvaWQqIGRhdGEpIHsKKyAgICAgICAg
ICAgIGF1dG8qIGJ1ZmZlciA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhKTsKKyAgICAgICAg
ICAgIGRlbGV0ZVtdIGJ1ZmZlcjsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gaW1hZ2VTdXJm
YWNlOworfQorCitib29sIEhlYWRsZXNzVmlld0JhY2tlbmQ6Om1ha2VDdXJyZW50KCkKK3sKKyAg
ICByZXR1cm4gZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVH
TF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0KTsKK30KKwordm9pZCBIZWFkbGVzc1ZpZXdCYWNr
ZW5kOjpwZXJmb3JtVXBkYXRlKCkKK3sKKyAgICBpZiAoIW1fcGVuZGluZ0ltYWdlLmZpcnN0KQor
ICAgICAgICByZXR1cm47CisKKyAgICB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9k
bWFfYnVmX2Rpc3BhdGNoX2ZyYW1lX2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7CisgICAgaWYgKG1f
bG9ja2VkSW1hZ2UuZmlyc3QpIHsKKyAgICAgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9y
dGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9yZWxlYXNlX2J1ZmZlcihtX2V4cG9ydGFibGUsIG1fbG9j
a2VkSW1hZ2UuZmlyc3QpOworICAgICAgICBtX2VnbC5kZXN0cm95SW1hZ2UobV9lZ2wuZGlzcGxh
eSwgc3RkOjpnZXQ8MD4obV9sb2NrZWRJbWFnZS5zZWNvbmQpKTsKKyAgICB9CisKKyAgICBtX2xv
Y2tlZEltYWdlID0gbV9wZW5kaW5nSW1hZ2U7CisgICAgbV9wZW5kaW5nSW1hZ2UgPSBzdGQ6OnBh
aXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+
IHsgfTsKK30KKworc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9i
dWZfY2xpZW50IEhlYWRsZXNzVmlld0JhY2tlbmQ6OnNfZXhwb3J0YWJsZUNsaWVudCA9IHsKKyAg
ICAvLyBleHBvcnRfZG1hX2J1ZgorICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfbWVzYV92
aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2RhdGEqIGltYWdlRGF0YSkKKyAgICB7Cisg
ICAgICAgIGF1dG8mIGJhY2tlbmQgPSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+
KGRhdGEpOworCisgICAgICAgIGF1dG8gaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgpOwor
ICAgICAgICBpZiAoaW1hZ2VEYXRhLT5mZCA+PSAwKSB7CisgICAgICAgICAgICBhc3NlcnQoYmFj
a2VuZC5tX2V4cG9ydE1hcC5maW5kKGltYWdlRGF0YS0+aGFuZGxlKSA9PSBiYWNrZW5kLm1fZXhw
b3J0TWFwLmVuZCgpKTsKKworICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmlu
c2VydCh7IGltYWdlRGF0YS0+aGFuZGxlLCBpbWFnZURhdGEtPmZkIH0pLmZpcnN0OworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChp
bWFnZURhdGEtPmhhbmRsZSkgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisgICAgICAg
ICAgICBpdCA9IGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSk7Cisg
ICAgICAgIH0KKworICAgICAgICBhc3NlcnQoaXQgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQo
KSk7CisgICAgICAgIHVpbnQzMl90IGhhbmRsZSA9IGl0LT5maXJzdDsKKyAgICAgICAgaW50MzJf
dCBmZCA9IGl0LT5zZWNvbmQ7CisKKyAgICAgICAgYmFja2VuZC5tYWtlQ3VycmVudCgpOworCisg
ICAgICAgIEVHTGludCBhdHRyaWJ1dGVzW10gPSB7CisgICAgICAgICAgICBFR0xfV0lEVEgsIHN0
YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT53aWR0aCksCisgICAgICAgICAgICBFR0xfSEVJ
R0hULCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+aGVpZ2h0KSwKKyAgICAgICAgICAg
IEVHTF9MSU5VWF9EUk1fRk9VUkNDX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEt
PmZvcm1hdCksCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfRkRfRVhULCBmZCwKKyAg
ICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9PRkZTRVRfRVhULCAwLAorICAgICAgICAgICAg
RUdMX0RNQV9CVUZfUExBTkUwX1BJVENIX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURh
dGEtPnN0cmlkZSksCisgICAgICAgICAgICBFR0xfTk9ORSwKKyAgICAgICAgfTsKKyAgICAgICAg
RUdMSW1hZ2VLSFIgaW1hZ2UgPSBiYWNrZW5kLm1fZWdsLmNyZWF0ZUltYWdlKGJhY2tlbmQubV9l
Z2wuZGlzcGxheSwgRUdMX05PX0NPTlRFWFQsIEVHTF9MSU5VWF9ETUFfQlVGX0VYVCwgbnVsbHB0
ciwgYXR0cmlidXRlcyk7CisgICAgICAgIGJhY2tlbmQubV9wZW5kaW5nSW1hZ2UgPSB7IGltYWdl
RGF0YS0+aGFuZGxlLCBzdGQ6Om1ha2VfdHVwbGUoaW1hZ2UsIGltYWdlRGF0YS0+d2lkdGgsIGlt
YWdlRGF0YS0+aGVpZ2h0KSB9OworICAgIH0sCit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5iMDU0ZjgzNDIyMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaApAQCAtMCwwICsxLDcxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDxnYm0uaD4KKyNpbmNsdWRlIDxn
bGliLmg+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx3cGUtbWVzYS92aWV3
LWJhY2tlbmQtZXhwb3J0YWJsZS1kbWEtYnVmLmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+Cisj
aW5jbHVkZSA8R0xFUzIvZ2wyZXh0Lmg+CisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2luY2x1ZGUg
PEVHTC9lZ2xleHQuaD4KKworY2xhc3MgSGVhZGxlc3NWaWV3QmFja2VuZCB7CitwdWJsaWM6Cisg
ICAgSGVhZGxlc3NWaWV3QmFja2VuZCgpOworICAgIH5IZWFkbGVzc1ZpZXdCYWNrZW5kKCk7CisK
KyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIGNvbnN0OworCisgICAgY2Fp
cm9fc3VyZmFjZV90KiBjcmVhdGVTbmFwc2hvdCgpOworCitwcml2YXRlOgorICAgIGJvb2wgbWFr
ZUN1cnJlbnQoKTsKKyAgICB2b2lkIHBlcmZvcm1VcGRhdGUoKTsKKworICAgIHN0YXRpYyBzdHJ1
Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jbGllbnQgc19leHBv
cnRhYmxlQ2xpZW50OworCisgICAgc3RydWN0IHsKKyAgICAgICAgRUdMRGlzcGxheSBkaXNwbGF5
OworICAgICAgICBFR0xDb25maWcgY29uZmlnOworICAgICAgICBFR0xDb250ZXh0IGNvbnRleHQ7
CisKKyAgICAgICAgUEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DIGNyZWF0ZUltYWdlOworICAgICAg
ICBQRk5FR0xERVNUUk9ZSU1BR0VLSFJQUk9DIGRlc3Ryb3lJbWFnZTsKKyAgICAgICAgUEZOR0xF
R0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0MgaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVM7Cisg
ICAgfSBtX2VnbDsKKworICAgIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJs
ZV9kbWFfYnVmKiBtX2V4cG9ydGFibGU7CisKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8dWludDMy
X3QsIGludDMyX3Q+IG1fZXhwb3J0TWFwOworICAgIHN0ZDo6cGFpcjx1aW50MzJfdCwgc3RkOjp0
dXBsZTxFR0xJbWFnZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4gbV9wZW5kaW5nSW1hZ2UgeyB9
OworICAgIHN0ZDo6cGFpcjx1aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwgdWludDMy
X3QsIHVpbnQzMl90Pj4gbV9sb2NrZWRJbWFnZSB7IH07CisKKyAgICBHU291cmNlKiBtX3VwZGF0
ZVNvdXJjZTsKKyAgICBnaW50NjQgbV9mcmFtZVJhdGUgeyBHX1VTRUNfUEVSX1NFQyAvIDYwIH07
Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJW
aWV3V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQ
RS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk1MDQzOTRiZDQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1X
ZWJWaWV3V1BFLmNwcApAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1XZWJWaWV3LmgiCisKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisj
aW5jbHVkZSA8V2ViS2l0L1dLSW1hZ2VDYWlyby5oPgorI2luY2x1ZGUgPGNhaXJvLmg+CisjaW5j
bHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgorCituYW1lc3BhY2UgV1RSIHsKKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXco
V0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBUZXN0T3B0aW9ucyYg
b3B0aW9ucykKKyAgICA6IG1fd2luZG93SXNLZXkodHJ1ZSkKKyAgICAsIG1fb3B0aW9ucyhvcHRp
b25zKQoreworICAgIG1fd2luZG93ID0gbmV3IEhlYWRsZXNzVmlld0JhY2tlbmQ7CisgICAgbV92
aWV3ID0gV0tWaWV3Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKG1fd2luZG93LT5iYWNrZW5kKCksIGNv
bmZpZ3VyYXRpb24pOworfQorCitQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQor
eworICAgIGRlbGV0ZSBtX3dpbmRvdzsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6
ZVRvKHVuc2lnbmVkLCB1bnNpZ25lZCwgV2ViVmlld1NpemluZ01vZGUpCit7Cit9CisKK1dLUGFn
ZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UoKQoreworICAgIHJldHVybiBXS1ZpZXdHZXRQYWdl
KG1fdmlldyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCit7Cit9CisKK1dL
UmVjdCBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd0ZyYW1lKCkKK3sKKyAgICByZXR1cm4gV0tSZWN0
eyAwLCAwLCAxLCAxIH07Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dGcmFt
ZShXS1JlY3QsIFdlYlZpZXdTaXppbmdNb2RlKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmll
dzo6ZGlkSW5pdGlhbGl6ZUNsaWVudHMoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6
YWRkQ2hyb21lSW5wdXRGaWVsZCgpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZW1v
dmVDaHJvbWVJbnB1dEZpZWxkKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZFRv
V2luZG93KCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlbW92ZUZyb21XaW5kb3co
KQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5k
b3dJc0tleSkKK3sKKyAgICBtX3dpbmRvd0lzS2V5ID0gd2luZG93SXNLZXk7Cit9CisKK3ZvaWQg
UGxhdGZvcm1XZWJWaWV3OjptYWtlV2ViVmlld0ZpcnN0UmVzcG9uZGVyKCkKK3sKK30KKworY2Fp
cm9fc3VyZmFjZV90KiBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UoKQorewor
ICAgIHsKKyAgICAgICAgc3RydWN0IFRpbWVvdXRUaW1lciB7CisgICAgICAgICAgICBUaW1lb3V0
VGltZXIoKQorICAgICAgICAgICAgICAgIDogdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAm
VGltZW91dFRpbWVyOjpmaXJlZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aW1l
ci5zdGFydE9uZVNob3QoMS4wIC8gNjApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2
b2lkIGZpcmVkKCkgeyBSdW5Mb29wOjptYWluKCkuc3RvcCgpOyB9CisgICAgICAgICAgICBSdW5M
b29wOjpUaW1lcjxUaW1lb3V0VGltZXI+IHRpbWVyOworICAgICAgICB9IHRpbWVvdXRUaW1lcjsK
KworICAgICAgICBSdW5Mb29wOjptYWluKCkucnVuKCk7CisgICAgfQorCisgICAgY2Fpcm9fc3Vy
ZmFjZV90KiBpbWFnZVN1cmZhY2UgPSBtX3dpbmRvdy0+Y3JlYXRlU25hcHNob3QoKTsKKyAgICBy
ZXR1cm4gaW1hZ2VTdXJmYWNlOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Y2hhbmdlV2lu
ZG93U2NhbGVJZk5lZWRlZChmbG9hdCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNl
dE5hdmlnYXRpb25HZXN0dXJlc0VuYWJsZWQoYm9vbCkKK3sKK30KKworYm9vbCBQbGF0Zm9ybVdl
YlZpZXc6OnZpZXdTdXBwb3J0c09wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmKSBjb25zdAorewor
ICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9yY2VXaW5kb3dG
cmFtZXNDaGFuZ2VkKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBjYzNkZWRlOTg2Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCkBAIC0wLDAg
KzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgorCisj
aW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBUZXN0Q29udHJv
bGxlcjo6bm90aWZ5RG9uZSgpCit7CisgICAgUnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKK30KKwor
dm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGlkZGVuKGJvb2wpCit7Cit9CisKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK1dLUHJlZmVyZW5jZXNSZWYg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQoreworICAgIHJldHVybiBXS1Bh
Z2VHcm91cEdldFByZWZlcmVuY2VzKG1fcGFnZUdyb3VwLmdldCgpKTsKK30KKwordm9pZCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpCit7Cit9CisKK3N0YXRpYyBHTWFpbkNvbnRl
eHQqIHRocmVhZERlZmF1bHRDb250ZXh0KCkKK3sKKyAgICBpZiAoR01haW5Db250ZXh0KiBjb250
ZXh0ID0gZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkpCisgICAgICAgIHJldHVy
biBjb250ZXh0OworICAgIHJldHVybiBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7Cit9CisKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBkb3Vi
bGUgdGltZW91dCkKK3sKKyAgICBzdHJ1Y3QgVGltZW91dFRpbWVyIHsKKyAgICAgICAgVGltZW91
dFRpbWVyKCkKKyAgICAgICAgICAgIDogdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGlt
ZW91dFRpbWVyOjpmaXJlZCkKKyAgICAgICAgeyB9CisKKyAgICAgICAgdm9pZCBmaXJlZCgpIHsg
UnVuTG9vcDo6bWFpbigpLnN0b3AoKTsgfQorICAgICAgICBSdW5Mb29wOjpUaW1lcjxUaW1lb3V0
VGltZXI+IHRpbWVyOworICAgIH0gdGltZW91dFRpbWVyOworCisgICAgdGltZW91dFRpbWVyLnRp
bWVyLnNldFByaW9yaXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKKyAgICBpZiAodGltZW91
dCA+PSAwKQorICAgICAgICB0aW1lb3V0VGltZXIudGltZXIuc3RhcnRPbmVTaG90KHRpbWVvdXQp
OworCisgICAgUnVuTG9vcDo6bWFpbigpLnJ1bigpOworCisgICAgdGltZW91dFRpbWVyLnRpbWVy
LnN0b3AoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EaWRDb21taXRMb2Fk
Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmKQoreworfQorCitzdGF0aWMgY2hhciogZ2V0
RW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOFN0cmluZyhjb25zdCBjaGFyKiB2YXJpYWJsZU5hbWUp
Cit7CisgICAgY29uc3QgY2hhciogdmFsdWUgPSBnX2dldGVudih2YXJpYWJsZU5hbWUpOworICAg
IGlmICghdmFsdWUpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyBlbnZpcm9ubWVudCB2
YXJpYWJsZSBub3QgZm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMCk7Cisg
ICAgfQorICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191
dGY4KHZhbHVlLCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVBhdGgoKQoreworICAgIEdVbmlxdWVQdHI8
Y2hhcj4gcGF0aChnZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKCJURVNUX1JVTk5F
Ul9JTkpFQ1RFRF9CVU5ETEVfRklMRU5BTUUiKSk7CisgICAgbV9pbmplY3RlZEJ1bmRsZVBhdGgu
YWRvcHQoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocGF0aC5nZXQoKSkpOworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplVGVzdFBsdWdpbkRpcmVjdG9yeSgpCit7Cit9
CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopCit7Cit9
CisKK1dLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db250ZXh0KCkKK3sKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtTGlicmFyeVBhdGhGb3JUZXN0aW5nKCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
dm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdChjb25zdCBU
ZXN0SW52b2NhdGlvbiYpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnVwZGF0ZVBsYXRmb3JtU3BlY2lmaWNUZXN0T3B0aW9uc0ZvclRlc3QoVGVzdE9wdGlv
bnMmLCBjb25zdCBzdGQ6OnN0cmluZyYpIGNvbnN0Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL3dwZS9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNmNmMmI3ZmYzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9tYWluLmNwcApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKK3sKKyAgICBXVFI6OlRlc3RDb250cm9sbGVyIGNvbnRyb2xsZXIoYXJnYywgY29u
c3RfY2FzdDxjb25zdCBjaGFyKio+KGFyZ3YpKTsKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdp
dCBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxk
LXdyYXBwZXIKaW5kZXggZjZjNDAzZDMxYjAuLmUzZWVjZGZjZTg3IDEwMDc1NQotLS0gYS9Ub29s
cy9qaGJ1aWxkL2poYnVpbGQtd3JhcHBlcgorKysgYi9Ub29scy9qaGJ1aWxkL2poYnVpbGQtd3Jh
cHBlcgpAQCAtMzEsNiArMzEsOCBAQCBkZWYgZGV0ZXJtaW5lX3BsYXRmb3JtKCk6CiAgICAgICAg
IHJldHVybiAiZWZsIjsKICAgICBpZiAnLS1ndGsnIGluIHN5cy5hcmd2OgogICAgICAgICByZXR1
cm4gImd0ayI7CisgICAgaWYgJy0td3BlJyBpbiBzeXMuYXJndjoKKyAgICAgICAgcmV0dXJuICJ3
cGUiCiAgICAgcmFpc2UgVmFsdWVFcnJvcignTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciBqaGJ1
aWxkLXdyYXBwZXIuJykKIAogdHJ5OgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2dlbmVyYXRlLWlu
c3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkgYi9Ub29scy93cGUvZ2VuZXJhdGUtaW5zcGVj
dG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwMDAwMC4uYWIxOTQ3NDRjNTUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvZ2VuZXJh
dGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weQpAQCAtMCwwICsxLDc3IEBACisjIS91
c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisjCisj
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorCitp
bXBvcnQgYXJncGFyc2UKK2ltcG9ydCBnbG9iCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworQ09N
UFJFU1NJQkxFX0VYVEVOU0lPTlMgPSBbJy5odG1sJywgJy5qcycsICcuY3NzJywgJy5zdmcnXQor
QkFTRV9ESVIgPSAnV2ViSW5zcGVjdG9yVUkvJworCisKK2RlZiBnZXRfZmlsZW5hbWVzKGFyZ3Mp
OgorICAgIGZpbGVuYW1lcyA9IFtdCisKKyAgICBmb3IgcGF0dGVybiBpbiBhcmdzOgorICAgICAg
ICBwYXRocyA9IGdsb2IuZ2xvYihwYXR0ZXJuKQorICAgICAgICBmb3IgZmlsZW5hbWUgaW4gcGF0
aHM6CisgICAgICAgICAgICBiYXNlX2Rpcl9pbmRleCA9IGZpbGVuYW1lLnJmaW5kKEJBU0VfRElS
KQorICAgICAgICAgICAgaWYgYmFzZV9kaXJfaW5kZXggIT0gLTE6CisgICAgICAgICAgICAgICAg
bmFtZSA9IGZpbGVuYW1lW2Jhc2VfZGlyX2luZGV4ICsgbGVuKEJBU0VfRElSKTpdCisgICAgICAg
ICAgICAgICAgIyBUaGUgcmVzdWx0IHNob3VsZCB1c2UgZm9yd2FyZCBzbGFzaGVzLCB0aHVzIG1h
a2Ugc3VyZSBhbnkgb3Mtc3BlY2lmaWMKKyAgICAgICAgICAgICAgICAjIHNlcGFyYXRvciwgYWRk
ZWQgYnkgdGhlIGdsb2IuZ2xvYigpIGNhbGwsIGlzIHByb3Blcmx5IHJlcGxhY2VkCisgICAgICAg
ICAgICAgICAgaWYgb3Muc2VwICE9ICcvJzoKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5h
bWUucmVwbGFjZShvcy5zZXAsICcvJykKKyAgICAgICAgICAgICAgICBmaWxlbmFtZXMuYXBwZW5k
KG5hbWUpCisgICAgcmV0dXJuIGZpbGVuYW1lcworCisKK2RlZiBpc19jb21wcmVzc2libGUoZmls
ZW5hbWUpOgorICAgIHJldHVybiBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVsxXSBpbiBDT01Q
UkVTU0lCTEVfRVhURU5TSU9OUworCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAg
cGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J0dlbmVyYXRlIGEg
R1Jlc291cmNlcyBmaWxlIGZvciB0aGUgaW5zcGVjdG9yLicpCisgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgnLS1vdXRwdXQnLCBuYXJncz0nPycsIHR5cGU9YXJncGFyc2UuRmlsZVR5cGUoJ3cnKSwg
ZGVmYXVsdD1zeXMuc3Rkb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ndGhlIG91
dHB1dCBmaWxlJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdmaWxlbmFtZXMnLCBtZXRhdmFy
PSdGSUxFUycsIG5hcmdzPScrJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3RoZSBs
aXN0IG9mIGZpbGVzIHRvIGluY2x1ZGUnKQorCisgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdz
KHN5cy5hcmd2WzE6XSkKKworICAgIGFyZ3Mub3V0cHV0LndyaXRlKFwKKyAgICAiIiI8P3htbCB2
ZXJzaW9uPTEuMCBlbmNvZGluZz1VVEYtOD8+CisgICAgPGdyZXNvdXJjZXM+CisgICAgICAgIDxn
cmVzb3VyY2UgcHJlZml4PSIvb3JnL3dwZS9pbnNwZWN0b3IiPgorIiIiKQorCisgICAgZm9yIGZp
bGVuYW1lIGluIGdldF9maWxlbmFtZXMoYXJncy5maWxlbmFtZXMpOgorICAgICAgICBsaW5lID0g
JyAgICAgICAgICAgIDxmaWxlJworICAgICAgICBpZiBpc19jb21wcmVzc2libGUoZmlsZW5hbWUp
OgorICAgICAgICAgICAgbGluZSArPSAnIGNvbXByZXNzZWQ9InRydWUiJworICAgICAgICBpZiAn
SW1hZ2VzL2d0ay8nIGluIGZpbGVuYW1lOgorICAgICAgICAgICAgbGluZSArPSAnIGFsaWFzPSIl
cyInICUgZmlsZW5hbWUucmVwbGFjZSgnZ3RrLycsICcnKQorICAgICAgICBsaW5lICs9ICc+JXM8
L2ZpbGU+XG4nICUgZmlsZW5hbWUKKworICAgICAgICBhcmdzLm91dHB1dC53cml0ZShsaW5lKQor
CisgICAgYXJncy5vdXRwdXQud3JpdGUoXAorICAgICIiIiAgICA8L2dyZXNvdXJjZT4KKzwvZ3Jl
c291cmNlcz4KKyIiIikKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcyBi
L1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjJlZDc1NjI2NGEyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2poYnVp
bGQubW9kdWxlcwpAQCAtMCwwICsxLDI0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURP
Q1RZUEUgbW9kdWxlc2V0IFNZU1RFTSAibW9kdWxlc2V0LmR0ZCI+Cis8P3htbC1zdHlsZXNoZWV0
IHR5cGU9InRleHQveHNsIiBocmVmPSJtb2R1bGVzZXQueHNsIj8+Cis8bW9kdWxlc2V0PgorCisg
IDxtZXRhbW9kdWxlIGlkPSJ3ZWJraXR3cGUtdGVzdGluZy1kZXBlbmRlbmNpZXMiPgorICAgIDxk
ZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0ibGlic291cCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJjYWlybyIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJmb250cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJkaWN0cyIvPgorICAgICAg
PGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0eXBl
NiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgorICAgICAgPGRlcCBwYWNrYWdl
PSJ4a2Jjb21tb24iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id2F5bGFuZCIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMt
YmFzZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1nb29kIi8+CisgICAgICA8
ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3Qt
bGliYXYiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9
IndwZS1tZXNhIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvbWV0YW1vZHVsZT4KKworICA8
cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJlLm9yZy1taXJyb3IiCisg
ICAgICBocmVmPSJodHRwOi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJjZXMucmVkaGF0LmNvbS8i
Lz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRwLmdub21lLm9yZyIKKyAg
ICAgIGhyZWY9Imh0dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRh
cmJhbGwiIG5hbWU9ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgaHJlZj0iaHR0cDovL2NhaXJv
Z3JhcGhpY3Mub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZyZWVk
ZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnIi8+Cisg
IDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9IndheWxhbmQuZnJlZWRlc2t0b3Aub3Jn
IgorICAgICAgaHJlZj0iaHR0cDovL3dheWxhbmQuZnJlZWRlc2t0b3Aub3JnIi8+CisgIDxyZXBv
c2l0b3J5IHR5cGU9ImdpdCIgbmFtZT0iZ2l0aHViLmNvbSIKKyAgICAgIGhyZWY9ImdpdDovL2dp
dGh1Yi5jb20iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZ3N0cmVhbWVy
IgorICAgICAgaHJlZj0iaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvc3JjLyIvPgor
ICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJ4a2Jjb21tb24ub3JnIgorICAgICAg
aHJlZj0iaHR0cDovL3hrYmNvbW1vbi5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFs
bCIgbmFtZT0ic2F2YW5uYWguZ251Lm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5z
YXZhbm5haC5nbnUub3JnL3JlbGVhc2VzLyIvPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYmZmaSIg
YXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0ibGliZmZpL2xpYmZm
aS0zLjAuMTAudGFyLmd6IiB2ZXJzaW9uPSIzLjAuMTAiCisgICAgICAgICAgICAgcmVwbz0ic291
cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgICAgICAgIGhhc2g9InNoYTI1NjpmMDFlYjkwMjdl
OWViNTZhZWFlZWY2MzY2NDk4Nzc3NTZkNDc1ZDcxNGVmOGI0N2Y2MjdmNjViYzVmM2I0OTJmIi8+
CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIiCisgICAgICAgICAgICAg
YXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2Fi
bGUtZHRyYWNlIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJsaWJm
ZmkiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9HTk9N
RS9zb3VyY2VzL2dsaWIvMi40NC9nbGliLTIuNDQuMS50YXIueHoiIHZlcnNpb249IjIuNDQuMSIK
KyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6ODgxMWRlYWNhZjhhNTAzZDBhOWI3MDE3NzdlYTA3OWNhNmE0Mjc3YmUxMGUzZDczMGQyMTEy
NzM1ZDVlY2EwNyI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi13YXJuaW5nLWZpeC5wYXRjaCIg
c3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9y
bWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAg
PC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYi1uZXR3b3JraW5nIj4KKyAgICA8
ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgPC9kZXBlbmRl
bmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9nbGliLW5ldHdv
cmtpbmcvMi40Mi9nbGliLW5ldHdvcmtpbmctMi40Mi4wLnRhci54eiIgdmVyc2lvbj0iMi40Mi4w
IgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNo
YTI1NjozMDRkZDllNGMwY2VkNjkwOTQzMDBlMGI5ZTY2Y2QyZWFhZTcxNjFiOWZjMzE4NjUzNmQx
MTQ1ODY3N2Q4MjBkIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYnNv
dXAiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1nbm9tZSAtLWRpc2FibGUt
aW50cm9zcGVjdGlvbiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0i
Z2xpYi1uZXR3b3JraW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1
bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNDgvbGlic291cC0yLjQ4LjAudGFyLnh6
IiB2ZXJzaW9uPSIyLjQ4LjAiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgorICAg
ICAgICAgICAgaGFzaD0ic2hhMjU2OmVhMzRkZDY0ZmU0NDM0MzQ0NWRhZjZkZDY5MGQwNjkxZTlk
OTczNDY4ZGU0NDg3OGRhOTczNzFjMTZkODk3ODQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1
dG90b29scyBpZD0iZm9udHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIKKyAgICAg
ICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNv
bSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZm9udHMuZ2l0IiBjaGVja291dGRp
cj0id2Via2l0Z3RrLXRlc3QtZm9udHMiIHRhZz0iMC4wLjUiLz4KKyAgPC9hdXRvdG9vbHM+CisK
KyAgPGF1dG90b29scyBpZD0iZGljdHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIK
KyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0
aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZGljdHMuZ2l0IiBjaGVj
a291dGRpcj0id2Via2l0Z3RrLXRlc3QtZGljdHMiIHRhZz0iMC4wLjEiLz4KKyAgPC9hdXRvdG9v
bHM+CisKKyAgPGF1dG90b29scyBpZD0iZnJlZXR5cGU2IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUi
PgorICAgIDxicmFuY2ggbW9kdWxlPSJmcmVldHlwZS9mcmVldHlwZS0yLjQuMTEudGFyLmJ6MiIg
dmVyc2lvbj0iMi40LjExIgorICAgICAgICAgICAgcmVwbz0ic2F2YW5uYWguZ251Lm9yZyIKKyAg
ICAgICAgICAgIGhhc2g9InNoYTI1NjplZjlkMGJjYjY0NjQ3ZDllNTEyNWRjNzUzNGQ3Y2EzNzFj
OTgzMTBmZWM4NzY3N2M0MTBmMzk3ZjcxZmZiZTNmIgorICAgICAgICAgICAgbWQ1c3VtPSJiOTM0
MzU0ODg5NDI0ODZjOGQwY2EyMmU4Zjc2ODAzNCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZnJlZXR5
cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2giIHN0cmlwPSIxIi8+Cisg
ICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZvbnRjb25m
aWciIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5j
aCBtb2R1bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9mb250Y29uZmlnLTIuMTEuMS50
YXIuZ3oiIHZlcnNpb249IjIuMTEuMSIKKyAgICAgICAgICAgIHJlcG89ImZyZWVkZXNrdG9wLm9y
ZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjpiNmIwNjZjN2RjZTNmNDM2ZmRjMGRmYmFlOWQz
NjEyMmIzODA5NGY0ZjUzYmQ4ZGZmZDQ1ZTE5NWIwNTQwZDhkIgorICAgICAgICAgICAgbWQ1c3Vt
PSJlNzVlMzAzYjRmNzc1NmMyYjE2MjAzYTU3YWM4N2ViYSI+CisgICAgPC9icmFuY2g+CisgIDwv
YXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBhdXRvZ2VuLXNoPSJjb25m
aWd1cmUiCisgICAgICAgIGF1dG9nZW5hcmdzPSItLXdpdGgtY2Fpcm89bm8gLS13aXRoLWdsaWI9
bm8gLS13aXRoLWZyZWV0eXBlPXllcyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAg
cGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBt
b2R1bGU9InNvZnR3YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMS4zLjMudGFyLmJ6MiIK
KyAgICAgICAgICAgIHZlcnNpb249IjEuMy4zIgorICAgICAgICAgICAgY2hlY2tvdXRkaXI9Imhh
cmZidXp6LTEuMy4zIgorICAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0b3Aub3JnIgorICAgICAg
ICAgICAgaGFzaD0ic2hhMjU2OjI2MjA5ODcxMTVhNDEyMmI0NzMyMTYxMGRjY2JjYzE4ZjdmMTIx
MTE1ZmQ3Yjg4ZGM4YTY5NWM4YjY2Y2IzYzkiCisgICAgICAgICAgICBtZDVzdW09Ijk3YWUxNWE3
MmE5M2YxZjI3MzI0YTJiOGQ5YmQzYjFkIj4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0icGl4bWFuIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNv
bmZpZ3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1lbmFibGUtZ3RrPW5vIj4KKyAg
ICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvcGl4bWFuLTAuMzIuNi50YXIuZ3oiIHZlcnNpb249
IjAuMzIuNiIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgICAg
ICAgaGFzaD0ic2hhMjU2OjNkZmVkMTNiODA2MGVhZGFiZjBhNDk0NWM3MDQ1Yjc3OTNjYzdlM2U5
MTBlNzQ4YThiYjBmMGRjM2U3OTQ5MDQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29s
cyBpZD0iY2Fpcm8iIGF1dG9nZW5hcmdzPSItLWVuYWJsZS1lZ2w9eWVzIC0tZW5hYmxlLWdsZXN2
MiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9InBpeG1h
biIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJyZWxlYXNlcy9j
YWlyby0xLjE0LjgudGFyLnh6IiB2ZXJzaW9uPSIxLjE0LjgiCisgICAgICAgICAgICByZXBvPSJj
YWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTE6YzZmN2I5OTk4NmY5M2M5
ZGY3ODY1M2MzZTZhM2I1MDQzZjY1MTQ1ZSI+CisgICAgICA8cGF0Y2ggZmlsZT0iY2Fpcm8tZWds
LWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwv
YnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJ4a2Jjb21tb24iPgor
ICAgIDxicmFuY2ggbW9kdWxlPSJkb3dubG9hZC9saWJ4a2Jjb21tb24tMC41LjAudGFyLnh6IiB2
ZXJzaW9uPSIwLjUuMCIKKyAgICAgICAgICAgIHJlcG89InhrYmNvbW1vbi5vcmciCisgICAgICAg
ICAgICBoYXNoPSJzaGExOjcxMjc5OTNiZmI2OWUxM2NkZmYyNWZiOGIzYzhmMjZjZTZiZTViZmEi
Lz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0id2F5bGFuZCIgYXV0b2dlbmFy
Z3M9Ii0tZGlzYWJsZS1kb2N1bWVudGF0aW9uIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFz
ZXMvd2F5bGFuZC0xLjkuMC50YXIueHoiIHZlcnNpb249IjEuOS4wIgorICAgICAgICAgICAgcmVw
bz0id2F5bGFuZC5mcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6OWM4
NzcwNzIwYWEwMDM0NDc5NzM1ZjU4YTRkYzRjYTliMTcyZWNmZWRlMjhmNTEzNDMxMmUxMzViNzMw
MWVmYSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJvcmMiIGF1dG9nZW5h
cmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJh
bmNoIG1vZHVsZT0ib3JjL29yYy0wLjQuMTcudGFyLmd6IiB2ZXJzaW9uPSIwLjQuMTciCisgICAg
ICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NGZjN2Nj
YTQ4YzU5ZmZmMjNhZmVlNzhmYjY0MmNkYmRlMDAxZjU2NDAxYzhmNDdiOTVhMTY1NzhkMWQ1ZDdl
OCIKKyAgICAgICAgICAgIG1kNXN1bT0iYWYxYmYzZGFiOWU2OWYzYzM2ZjM4OTI4NWUyYTEyYTEi
Lz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0cmVhbWVyIiBhdXRvZ2Vu
LXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRl
cGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ib3JjIi8+CisgICAgPC9kZXBlbmRlbmNp
ZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50
YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAg
ICAgICAgICAgaGFzaD0ic2hhMjU2OjVhMzcyMmZiOTMwMmRkOTc3YzE3Y2VkNDI0MDI5M2RjNzc3
Y2I3MTZkYzk4YzhjY2E2M2Q3NWMyN2U1ZTMxMDciCisgICAgICAgICAgICBtZDVzdW09IjcxMWFk
YTc5YjYzZTQ3YWM5NmFkYjRlNTQ0NGRjOTA4Ij4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3RyZWFt
ZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0
Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRv
dG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWJhc2UiCisgICAgICAgICAgICAgYXV0b2dlbi1zaD0iY29u
ZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1k
aXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9
ImdzdHJlYW1lciIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJn
c3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNp
b249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFz
aD0ic2hhMjU2OjE1YTlkZTk4NWNkMjY1YzM0NGUzNTlmNWIxOTM0N2RmNDAyMWI3NjExZWQyYzJk
OTE5MTdjYjkwMGYyZmFkNmYiCisgICAgICAgICAgICBtZDVzdW09IjU0MjFlZGZlYjc0NzlkNWY1
Nzc2ZTkxN2JhMzBlMjRlIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9Imdz
dC1wbHVnaW5zLWdvb2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0tZGlz
YWJsZS1leGFtcGxlcyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRl
cGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAg
IDwvZGVwZW5kZW5jaWVzPgorCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWdvb2Qv
Z3N0LXBsdWdpbnMtZ29vZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAg
ICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MjEwM2Ux
NzkyMWQ2Nzg5NGU4MmVhZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYyNWJmYmM4M2ZmZWFkMDk3
MiIKKyAgICAgICAgICAgIG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4YTY0YzMxMmRlMDNkNDci
PgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29k
ZS10aW1lLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5z
LWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1m
ci5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAg
PGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtYmFkIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1
dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1kb2MgLS1kaXNhYmxl
LWludHJvc3BlY3Rpb24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9
ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1v
ZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3ZlcnNpb259LnRhci54eiIg
dmVyc2lvbj0iMS44LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAg
ICBoYXNoPSJzaGEyNTY6MGJiZDU4ZjM2MzczNGZjMGM0YTYyMGIyZDZmYjAxZDQyN2ZkYWZkYmRh
N2I5MGI0ZTE1ZDAzYjc1MWNhNDBmNSIKKyAgICAgICAgICAgIG1kNXN1bT0iZTUwOGRhMmE4YTVj
M2QxMjI2NGZlMzQxNWJlMmY0NTEiPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJh
ZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIiBzdHJpcD0iMSIvPgorICAg
ICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgt
ZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2giIHN0cmlwPSIxIi8+CisgICAg
PC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1saWJhdiIg
YXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRoLWxpYmF2LWV4dHJhLWNv
bmZpZ3VyZT0nLS1kaXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9jIj4KKyAgICA8ZGVwZW5k
ZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+CisgICAgPC9k
ZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJhdi9nc3QtbGliYXYtJHt2
ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVh
bWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjQ0YTQ5MTA4YzM1MzFiNWFjNGYzNDZhMjI0
N2NkN2ZiYWZiMGU4YWIzOTQzOTRjYjZkNzVhNzAzMDBiMzg5MzMiCisgICAgICAgICAgICBtZDVz
dW09Ijg1ZjFhMDQ3NjA2Y2E5ZTA4NDkzZDdiNmI0MmRmNDYyIi8+CisgIDwvYXV0b3Rvb2xzPgor
CisgIDxjbWFrZSBpZD0id3BlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVs
ZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLmdpdCIKKyAgICAgICAgICAgIHRh
Zz0iNWUyYTI5ZDJjY2M2MzdmNzEyMmJhNzJjMWQ2MmVmNjY5YjQyZjA1YyIgLz4KKyAgPC9jbWFr
ZT4KKworICA8Y21ha2UgaWQ9IndwZS1tZXNhIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAg
PGRlcCBwYWNrYWdlPSJ3cGUiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiIC8+CisgICAg
ICA8ZGVwIHBhY2thZ2U9IndheWxhbmQiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9InhrYmNvbW1v
biIgLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20i
IG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLW1lc2EuZ2l0IgorICAg
ICAgICAgICAgdGFnPSI5OTQ1NzUzZjkzMzdmZDY3YWYwOTgyMThiNzgxOTMzN2FiYTIxMTQxIiAv
PgorICA8L2NtYWtlPgorPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9Ub29scy93cGUvamhidWls
ZHJjIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uZTJmYTg4ZDcyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvamhidWls
ZHJjCkBAIC0wLDAgKzEsMjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisj
CisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCitzeXMucGF0
aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLi9q
aGJ1aWxkIikgKQoraW1wb3J0IGpoYnVpbGRyY19jb21tb24KK2poYnVpbGRyY19jb21tb24uaW5p
dChnbG9iYWxzKCksICJ3cGUiKQorIyBFbmFibGUgYnVpbGRkaXIgIT0gc3JjZGlyIGJ1aWxkcy4K
K2J1aWxkcm9vdCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoY2hlY2tvdXRyb290KSwg
IkJ1aWxkIikKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVnbC1kZXZpY2Ut
Y3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVn
bC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uZDQ2ZGY0NWI2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2UucGF0
Y2gKQEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gYTRlMGRhZjE4YmY4MjUyNDYzZjY2ZDc1ZWVmNDk5
Y2ZmZmEzMjU2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFphbiBEb2JlcnNlayA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CitEYXRlOiBNb24sIDE3IE5vdiAyMDE0IDAxOjIzOjE1IC0w
ODAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9mb3JfZWds
X3N1cmZhY2UoKS4KKworLS0tCisgc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgfCA2NiArKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgc3JjL2NhaXJvLWds
LmggICAgICAgICAgfCAgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyks
IDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZWdsLWNvbnRleHQuYyBi
L3NyYy9jYWlyby1lZ2wtY29udGV4dC5jCitpbmRleCBiZjcwNGM2Li5iZTJiY2Y5IDEwMDY0NAor
LS0tIGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMKKysrKyBiL3NyYy9jYWlyby1lZ2wtY29udGV4
dC5jCitAQCAtNDgsNyArNDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fZWdsX2NvbnRleHQg
eworICAgICBFR0xEaXNwbGF5IGRpc3BsYXk7CisgICAgIEVHTENvbnRleHQgY29udGV4dDsKKyAK
Ky0gICAgRUdMU3VyZmFjZSBkdW1teV9zdXJmYWNlOworKyAgICBFR0xTdXJmYWNlIHN1cmZhY2U7
CisrICAgIGNhaXJvX2Jvb2xfdCBpc19kdW1teV9zdXJmYWNlOworIAorICAgICBFR0xDb250ZXh0
IHByZXZpb3VzX2NvbnRleHQ7CisgICAgIEVHTFN1cmZhY2UgcHJldmlvdXNfc3VyZmFjZTsKK0BA
IC03NCw3ICs3NSw3IEBAIF9lZ2xfZ2V0X2N1cnJlbnRfc3VyZmFjZSAoY2Fpcm9fZWdsX2NvbnRl
eHRfdCAqY3R4KQorIHsKKyAgICAgaWYgKGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCA9PSBOVUxM
IHx8CisgICAgICAgICBfY2Fpcm9fZ2xfc3VyZmFjZV9pc190ZXh0dXJlIChjdHgtPmJhc2UuY3Vy
cmVudF90YXJnZXQpKSB7CistCXJldHVybiAgY3R4LT5kdW1teV9zdXJmYWNlOworKwlyZXR1cm4g
IGN0eC0+c3VyZmFjZTsKKyAgICAgfQorIAorICAgICByZXR1cm4gKChjYWlyb19lZ2xfc3VyZmFj
ZV90ICopIGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCktPmVnbDsKK0BAIC0xNTEsOCArMTUyLDgg
QEAgX2VnbF9kZXN0cm95ICh2b2lkICphYnN0cmFjdF9jdHgpCisgCisgICAgIGVnbE1ha2VDdXJy
ZW50IChjdHgtPmRpc3BsYXksCisgCQkgICAgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNF
LCBFR0xfTk9fQ09OVEVYVCk7CistICAgIGlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05P
X1NVUkZBQ0UpCistICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNwbGF5LCBjdHgt
PmR1bW15X3N1cmZhY2UpOworKyAgICBpZiAoY3R4LT5pc19kdW1teV9zdXJmYWNlICYmIGN0eC0+
c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkKKysgICAgICAgIGVnbERlc3Ryb3lTdXJmYWNlIChj
dHgtPmRpc3BsYXksIGN0eC0+c3VyZmFjZSk7CisgfQorIAorIHN0YXRpYyBjYWlyb19ib29sX3QK
K0BAIC0yMTgsMTMgKzIxOSwxNCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxh
eSBkcHksIEVHTENvbnRleHQgZWdsKQorIAllZ2xRdWVyeUNvbnRleHQgKGRweSwgZWdsLCBFR0xf
Q09ORklHX0lELCAmY29uZmlnX2F0dHJpYnNbMV0pOworIAllZ2xDaG9vc2VDb25maWcgKGRweSwg
Y29uZmlnX2F0dHJpYnMsICZjb25maWcsIDEsICZudW1Db25maWdzKTsKKyAKKy0JY3R4LT5kdW1t
eV9zdXJmYWNlID0gZWdsQ3JlYXRlUGJ1ZmZlclN1cmZhY2UgKGRweSwgY29uZmlnLCBhdHRyaWJz
KTsKKy0JaWYgKGN0eC0+ZHVtbXlfc3VyZmFjZSA9PSBOVUxMKSB7CisrCWN0eC0+aXNfZHVtbXlf
c3VyZmFjZSA9IFRSVUU7CisrCWN0eC0+c3VyZmFjZSA9IGVnbENyZWF0ZVBidWZmZXJTdXJmYWNl
IChkcHksIGNvbmZpZywgYXR0cmlicyk7CisrCWlmIChjdHgtPnN1cmZhY2UgPT0gTlVMTCkgewor
IAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVf
aW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CisgCistCWlmICghZWdsTWFr
ZUN1cnJlbnQgKGRweSwgY3R4LT5kdW1teV9zdXJmYWNlLCBjdHgtPmR1bW15X3N1cmZhY2UsIGVn
bCkpIHsKKysJaWYgKCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBjdHgtPnN1cmZhY2UsIGN0eC0+c3Vy
ZmFjZSwgZWdsKSkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xf
Y29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CitA
QCAtMjM4LDggKzI0MCw1NCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBk
cHksIEVHTENvbnRleHQgZWdsKQorIAorICAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9p
bml0ICgmY3R4LT5iYXNlKTsKKyAgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CistCWlmIChj
dHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistCSAgICBlZ2xEZXN0cm95U3Vy
ZmFjZSAoZHB5LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKwlpZiAoY3R4LT5zdXJmYWNlICE9IEVH
TF9OT19TVVJGQUNFKQorKwkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4LT5zdXJmYWNl
KTsKKysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9l
cnJvciAoc3RhdHVzKTsKKysgICAgfQorKworKyAgICBlZ2xNYWtlQ3VycmVudCAoZHB5LCBFR0xf
Tk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsKKysKKysgICAgcmV0
dXJuICZjdHgtPmJhc2UuYmFzZTsKKyt9CisrCisrY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2Vn
bF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRl
eHQgZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpCisreworKyAgICBjYWlyb19lZ2xfY29udGV4dF90
ICpjdHg7CisrICAgIGNhaXJvX3N0YXR1c190IHN0YXR1czsKKysKKysgICAgY3R4ID0gY2FsbG9j
ICgxLCBzaXplb2YgKGNhaXJvX2VnbF9jb250ZXh0X3QpKTsKKysgICAgaWYgKHVubGlrZWx5IChj
dHggPT0gTlVMTCkpCisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3Ig
KENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworKworKyAgICBjdHgtPmRpc3BsYXkgPSBkcHk7Cisr
ICAgIGN0eC0+Y29udGV4dCA9IGVnbDsKKysgICAgY3R4LT5zdXJmYWNlID0gc3VyZmFjZTsKKysK
KysgICAgY3R4LT5iYXNlLmFjcXVpcmUgPSBfZWdsX2FjcXVpcmU7CisrICAgIGN0eC0+YmFzZS5y
ZWxlYXNlID0gX2VnbF9yZWxlYXNlOworKyAgICBjdHgtPmJhc2UubWFrZV9jdXJyZW50ID0gX2Vn
bF9tYWtlX2N1cnJlbnQ7CisrICAgIGN0eC0+YmFzZS5zd2FwX2J1ZmZlcnMgPSBfZWdsX3N3YXBf
YnVmZmVyczsKKysgICAgY3R4LT5iYXNlLmRlc3Ryb3kgPSBfZWdsX2Rlc3Ryb3k7CisrCisrICAg
IC8qIFdlIGFyZSBhYm91dCB0aGUgY2hhbmdlIHRoZSBjdXJyZW50IHN0YXRlIG9mIEVHTCwgc28g
d2Ugc2hvdWxkCisrICAgICAqIHF1ZXJ5IHRoZSBwcmUtZXhpc3Rpbmcgc3VyZmFjZSBub3cgaW5z
dGVhZCBvZiBsYXRlci4gKi8KKysgICAgX2VnbF9xdWVyeV9jdXJyZW50X3N0YXRlIChjdHgpOwor
KworKwlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHksIHN1cmZhY2UsIHN1cmZhY2UsIGVnbCkpIHsK
KysJICAgIGZyZWUgKGN0eCk7CisrCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRl
X2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKysJfQorKworKyAgICBzdGF0dXMg
PSBfY2Fpcm9fZ2xfZGlzcGF0Y2hfaW5pdCAoJmN0eC0+YmFzZS5kaXNwYXRjaCwgZWdsR2V0UHJv
Y0FkZHJlc3MpOworKyAgICBpZiAodW5saWtlbHkgKHN0YXR1cykpIHsKKysJZnJlZSAoY3R4KTsK
KysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVzKTsKKysg
ICAgfQorKworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9pbml0ICgmY3R4LT5iYXNl
KTsKKysgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CisgCWZyZWUgKGN0eCk7CisgCXJldHVy
biBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisgICAgIH0KK2Rp
ZmYgLS1naXQgYS9zcmMvY2Fpcm8tZ2wuaCBiL3NyYy9jYWlyby1nbC5oCitpbmRleCA5ZmQ3NjA4
Li5hOTRmNTgxIDEwMDY0NAorLS0tIGEvc3JjL2NhaXJvLWdsLmgKKysrKyBiL3NyYy9jYWlyby1n
bC5oCitAQCAtMTMyLDYgKzEzMiw5IEBAIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYyAo
Y2Fpcm9fZGV2aWNlX3QJCSpkZXZpY2UsCisgY2Fpcm9fcHVibGljIGNhaXJvX2RldmljZV90ICoK
KyBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWds
KTsKKyAKKytjYWlyb19wdWJsaWMgY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2VnbF9kZXZpY2Vf
Y3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsLCBF
R0xTdXJmYWNlIHN1cmZhY2UpOworKworIGNhaXJvX3B1YmxpYyBjYWlyb19zdXJmYWNlX3QgKgor
IGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9lZ2wgKGNhaXJvX2RldmljZV90CSpkZXZpY2Us
CisgCQkJCSBFR0xTdXJmYWNlCSBlZ2wsCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9m
b250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50
aWZpZXIucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMt
YS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2gKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZTBhNTQxZGJjCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0
d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKK0Zyb20g
NzA2OWQ3MTdlOTgyYWRjZjhlMWQzMDBjYmQxMGVlYzYzMjJhNjVjOSBNb24gU2VwIDE3IDAwOjAw
OjAwIDIwMDEKK0Zyb206IEFraXJhIFRBR09IIDxha2lyYUB0YWdvaC5vcmc+CitEYXRlOiBTdW4s
IDIyIEFwciAyMDEyIDIxOjQwOjQ0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEMrKzExIHJlcXVp
cmVzIGEgc3BhY2UgYmV0d2VlbiBsaXRlcmFsIGFuZCBpZGVudGlmaWVyCisKK1JlcG9ydGVkIGJ5
IEJ1Z2FuaW5pCistLS0KKyBmb250Y29uZmlnL2ZvbnRjb25maWcuaCB8IDYgKysrLS0tCisgMSBm
aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp
dCBhL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK2lu
ZGV4IDBlMmNhNTAuLmIyN2NjYjUgMTAwNjQ0CistLS0gYS9mb250Y29uZmlnL2ZvbnRjb25maWcu
aAorKysrIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK0BAIC0xMTIsOSArMTEyLDkgQEAgdHlw
ZWRlZiBpbnQJCUZjQm9vbDsKKyAjZGVmaW5lIEZDX0RFQ09SQVRJVkUJICAgICJkZWNvcmF0aXZl
IgkvKiBCb29sIC0gdHJ1ZSBpZiBzdHlsZSBpcyBhIGRlY29yYXRpdmUgdmFyaWFudCAqLworICNk
ZWZpbmUgRkNfTENEX0ZJTFRFUgkgICAgImxjZGZpbHRlciIJCS8qIEludCAqLworIAorLSNkZWZp
bmUgRkNfQ0FDSEVfU1VGRklYCQkgICAgIi5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgorLSNkZWZp
bmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgor
LSNkZWZpbmUgRkNfVVNFUl9DQUNIRV9GSUxFCSAgICAiLmZvbnRzLmNhY2hlLSJGQ19DQUNIRV9W
RVJTSU9OCisrI2RlZmluZSBGQ19DQUNIRV9TVUZGSVgJCSAgICAiLmNhY2hlLSIgRkNfQ0FDSEVf
VkVSU0lPTgorKyNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iIEZD
X0NBQ0hFX1ZFUlNJT04KKysjZGVmaW5lIEZDX1VTRVJfQ0FDSEVfRklMRQkgICAgIi5mb250cy5j
YWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKyAKKyAvKiBBZGp1c3Qgb3V0bGluZSByYXN0ZXJpemVy
ICovCisgI2RlZmluZSBGQ19DSEFSX1dJRFRICSAgICAiY2hhcndpZHRoIgkvKiBJbnQgKi8KKy0t
IAorMS44LjMuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40
LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2Zy
ZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZmZlNzZiNGVmMAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWln
aHQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gZTA0NjkzNzJiZTM4NzBhNWFkNjBi
MmM0NTg2ZTljMjgxMzU3YmQyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdlcm5l
ciBMZW1iZXJnIDx3bEBnbnUub3JnPgorRGF0ZTogVHVlLCAyMiBKYW4gMjAxMyAxMDowNzowNyAr
MDAwMAorU3ViamVjdDogW3RydWV0eXBlXSBGaXggZm9udCBoZWlnaHQuCisKKyogc3JjL3RydWV0
eXBlL3R0b2Jqcy5jICh0dF9zaXplX3Jlc2V0KTogVGhlIFdpbmRvd3MgcmVuZGVyaW5nCitlbmdp
bmUgdXNlcyByb3VuZGVkIHZhbHVlcyBvZiB0aGUgYXNjZW5kZXIgYW5kIGRlc2NlbmRlciB0byBj
b21wdXRlCit0aGUgVHJ1ZVR5cGUgZm9udCBoZWlnaHQuCistLS0KK2RpZmYgLS1naXQgYS9zcmMv
dHJ1ZXR5cGUvdHRvYmpzLmMgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKK2luZGV4IGM2MWIyMTgu
LjU5MGI2NmMgMTAwNjQ0CistLS0gYS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKKysrKyBiL3NyYy90
cnVldHlwZS90dG9ianMuYworQEAgLTQsNyArNCw3IEBACisgLyogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
KyAvKiAgICBPYmplY3RzIG1hbmFnZXIgKGJvZHkpLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCistLyogIENvcHly
aWdodCAxOTk2LTIwMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKi8KKysvKiAgQ29weXJpZ2h0IDE5OTYtMjAxMyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICBEYXZpZCBUdXJuZXIsIFJv
YmVydCBXaWxoZWxtLCBhbmQgV2VybmVyIExlbWJlcmcuICAgICAgICAgICAgICAgICAgICAgICov
CisgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEZy
ZWVUeXBlIHByb2plY3QsIGFuZCBtYXkgb25seSBiZSB1c2VkLCAgICAgICAqLworQEAgLTExNzcs
MTEgKzExNzcsMTIgQEAKKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5y
b290LmFzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5kZXNj
ZW5kZXIgPQorICAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuZGVz
Y2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKy0gICAgICBtZXRyaWNzLT5oZWlnaHQgPQor
LSAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuaGVpZ2h0LCBtZXRy
aWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5tYXhfYWR2YW5jZSA9CisgICAgICAg
ICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5tYXhfYWR2YW5jZV93aWR0aCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLT54X3NjYWxlICkgKTsK
KysKKysgICAgICAvKiB0aGUgaGVpZ2h0IGlzIGRlcml2ZWQgZnJvbSByb3VuZGVkIHZhbHVlcyAq
LworKyAgICAgIG1ldHJpY3MtPmhlaWdodCA9IG1ldHJpY3MtPmFzY2VuZGVyIC0gbWV0cmljcy0+
ZGVzY2VuZGVyOworICAgICB9CisgCisgICAgIC8qIGNvbXB1dGUgbmV3IHRyYW5zZm9ybWF0aW9u
ICovCistLQorY2dpdCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ2Rh
dGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2ggYi9Ub29scy93
cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5w
YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTBjYjk1MWExOWMK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJp
bmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIDNh
N2VmZDU5OGQzOTM2NmMyYzlkZTBkZWYyZmRmYjM1ZTVlOWYyYTEgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCitGcm9tOiBjb3lwdSA8Y295cHVAc2RmLm9yZz4KK0RhdGU6IE1vbiwgOCBGZWIgMjAx
NiAwMDowNjowNiArMDIwMAorU3ViamVjdDogW1BBVENIIDEvMV0gZ2RhdGU6IFN1cHByZXNzIHN0
cmluZyBmb3JtYXQgbGl0ZXJhbCB3YXJuaW5nCisKK05ld2VyIHZlcnNpb25zIG9mIEdDQyBlbWl0
IGFuIGVycm9yIGhlcmUsIGJ1dCB3ZSBrbm93IGl0J3Mgc2FmZS4KK2h0dHBzOi8vYnVnemlsbGEu
Z25vbWUub3JnLzc2MTU1MAorLS0tCisgZ2xpYi9nZGF0ZS5jIHwgMyArKysKKyAxIGZpbGUgY2hh
bmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nbGliL2dkYXRlLmMgYi9nbGli
L2dkYXRlLmMKK2luZGV4IDRhZWNlMDIuLmNkYzczNWMgMTAwNjQ0CistLS0gYS9nbGliL2dkYXRl
LmMKKysrKyBiL2dsaWIvZ2RhdGUuYworQEAgLTI0OTQsNyArMjQ5NCwxMCBAQCBnX2RhdGVfc3Ry
ZnRpbWUgKGdjaGFyICAgICAgICpzLAorICAgICAgICAqIHJlY29nbml6ZSB3aGV0aGVyIHN0cmZ0
aW1lIGFjdHVhbGx5IGZhaWxlZCBvciBqdXN0IHJldHVybmVkICIiLgorICAgICAgICAqLworICAg
ICAgIHRtcGJ1ZlswXSA9ICdcMSc7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo
CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRl
cmFsIgorICAgICAgIHRtcGxlbiA9IHN0cmZ0aW1lICh0bXBidWYsIHRtcGJ1ZnNpemUsIGxvY2Fs
ZV9mb3JtYXQsICZ0bSk7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAKKyAg
ICAgICBpZiAodG1wbGVuID09IDAgJiYgdG1wYnVmWzBdICE9ICdcMCcpCisgICAgICAgICB7Cist
LSAKKzIuNy4wCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1m
aXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZmFmNGQxMWYyYwotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2gKQEAgLTAs
MCArMSwzNCBAQAorRnJvbSA5ZjkwZWU1ZWVjY2Q0N2YzOWM3YTAzZGNkNzg2YjEyNWExOWMxOTVk
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFlbCBDYXRhbnphcm8gPG1jYXRh
bnphcm9AZ25vbWUub3JnPgorRGF0ZTogU2F0LCAxMyBKdW4gMjAxNSAyMjo1MjozMyAtMDUwMAor
U3ViamVjdDogW1BBVENIXSBnZW5tYXJzaGFsOiBzaWxlbmNlIHJlZ2lzdGVyIHN0b3JhZ2UgY2xh
c3Mgd2FybmluZ3MKKworVXNpbmcgdGhlIHJlZ2lzdGVyIGtleXdvcmQgdHJpZ2dlcnMgd2Fybmlu
Z3Mgb24gbm90ZXdvcnRoeSBjb21waWxlcnMKKyhjbGFuZyksIHNpbmNlIGl0J3MgZGVwcmVjYXRl
ZCBpbiBDKysgYW5kIGF0IGRhbmdlciBvZiBiZWluZyByZW1vdmVkCitmcm9tIHRoZSBsYW5ndWFn
ZS4gVGhlcmUgaXMgbm8gcmVhc29uIHRvIHVzZSBpdCBzaW5jZSBpdCBpc24ndCAxOTgwCithbnlt
b3JlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwOTE4
CistLS0KKyBnb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jIHwgNiArKystLS0KKyAxIGZpbGUgY2hh
bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ29i
amVjdC9nbGliLWdlbm1hcnNoYWwuYyBiL2dvYmplY3QvZ2xpYi1nZW5tYXJzaGFsLmMKK2luZGV4
IGJlNDE1MWEuLmNhNzhhNmYgMTAwNjQ0CistLS0gYS9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5j
CisrKysgYi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitAQCAtNDEyLDkgKzQxMiw5IEBAIGdl
bmVyYXRlX21hcnNoYWwgKGNvbnN0IGdjaGFyICpzaWduYW1lLAorICAgICAgIGdfZnByaW50ZiAo
Zm91dCwgIiVzJXMgZGF0YTIpO1xuIiwgaW5kZW50IChpbmQpLCBwYWQgKCJncG9pbnRlciIpKTsK
KyAKKyAgICAgICAvKiBjZmlsZSBtYXJzaGFsIHZhcmlhYmxlcyAqLworLSAgICAgIGdfZnByaW50
ZiAoZm91dCwgIiAgcmVnaXN0ZXIgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFt
ZSk7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBHQ0Nsb3N1cmUgKmNjID0g
KEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4iKTsKKy0gICAgICBnX2ZwcmludGYgKGZvdXQsICIgIHJl
Z2lzdGVyIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIpOworKyAgICAgIGdfZnByaW50ZiAoZm91
dCwgIiAgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFtZSk7CisrICAgICAgZ19m
cHJpbnRmIChmb3V0LCAiICBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4i
KTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIp
OworICAgICAgIGlmIChzaWctPnJhcmctPnNldHRlcikKKyAJZ19mcHJpbnRmIChmb3V0LCAiICAl
cyB2X3JldHVybjtcbiIsIHNpZy0+cmFyZy0+Y3R5cGUpOworIAorLS0gCisyLjQuMgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1w
bHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIGIvVG9vbHMv
d3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4x
LjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVkMTA2NGVk
NWU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFk
LTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKQEAgLTAsMCArMSwyMzYgQEAK
K0Zyb20gZTkzODkzMzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0NDg2YiBNb24gU2VwIDE3
IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJlZGhhdC5jb20+CitEYXRl
OiBXZWQsIDI2IE9jdCAyMDE2IDE0OjUxOjAxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGR0bHM6
IHBvcnQgdG8gT3BlblNTTCAxLjEuMAorCitDaGFuZ2VzIGFyZToKKworLSBVc2UgdGhlIHdyYXBw
ZXIgZnVuY3Rpb25zIHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4gIFRvIHByZXNlcnZlCisg
IGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBkZWZpbml0aW9ucworCist
IFJlbW92ZSB0aGUgdXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wtPmQxLT5zZW50X21lc3Nh
Z2VzKSIsIHNpbmNlCisgIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50CisKKy0gVXNlIFJTQV9nZW5l
cmF0ZV9rZXlfZXggaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0FfZ2VuZXJhdGVfa2V5CisK
K2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM1NDAKKy0tLQor
IGV4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysrKysKKyBleHQvZHRscy9n
c3RkdGxzY29ubmVjdGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDkgZGVsZXRp
b25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4
dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCA5NWZiYjgzLi5jMWM5NjAyIDEwMDY0
NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dz
dGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMTk5LDcgKzE5OSwyMiBAQCBpbml0X2dlbmVyYXRlZCAo
R3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKKyAgICAgcHJpdi0+cHJpdmF0ZV9rZXkgPSBOVUxM
OworICAgICByZXR1cm47CisgICB9CisrCisrICAvKiBYWFg6IFJTQV9nZW5lcmF0ZV9rZXkgaXMg
YWN0dWFsbHkgZGVwcmVjYXRlZCBpbiAwLjkuOCAqLworKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVN
QkVSIDwgMHgxMDEwMDAwMUwKKyAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9rZXkgKDIwNDgsIFJTQV9G
NCwgTlVMTCwgTlVMTCk7CisrI2Vsc2UKKysgIHJzYSA9IFJTQV9uZXcgKCk7CisrICBpZiAocnNh
ICE9IE5VTEwpIHsKKysgICAgQklHTlVNICplID0gQk5fbmV3ICgpOworKyAgICBpZiAoZSAhPSBO
VUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCisrICAgICAgICAmJiBSU0FfZ2VuZXJhdGVf
a2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisrICAgICAgUlNBX2ZyZWUgKHJzYSk7Cisr
ICAgICAgcnNhID0gTlVMTDsKKysgICAgfQorKyAgICBCTl9mcmVlIChlKTsKKysgIH0KKysjZW5k
aWYKKyAKKyAgIGlmICghcnNhKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoc2VsZiwgImZh
aWxlZCB0byBnZW5lcmF0ZSBSU0EiKTsKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY29u
bmVjdGlvbi5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYworaW5kZXggMzZmNmQ2My4u
NzI4ZjVhNyAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKKysrKyBi
L2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKK0BAIC00Miw2ICs0Miw4IEBACisgI2luY2x1
ZGUgPG9wZW5zc2wvZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+CisgCisrI2luY2x1
ZGUgPHN0cmluZy5oPgorKworIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgKGdzdF9kdGxzX2Nv
bm5lY3Rpb25fZGVidWcpOworICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIGdzdF9kdGxzX2Nvbm5l
Y3Rpb25fZGVidWcKKyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0RHRsc0Nvbm5lY3Rpb24s
IGdzdF9kdGxzX2Nvbm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCitAQCAtMjE2LDYgKzIxOCwzOCBA
QCBnc3RfZHRsc19jb25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICogZ29iamVjdCkKKyAgIEdf
T0JKRUNUX0NMQVNTIChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9jbGFzcyktPmZpbmFsaXpl
IChnb2JqZWN0KTsKKyB9CisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAw
MDAxTAorK3N0YXRpYyB2b2lkCisrQklPX3NldF9kYXRhIChCSU8gKiBiaW8sIHZvaWQgKnB0cikK
Kyt7CisrICBiaW8tPnB0ciA9IHB0cjsKKyt9CisrCisrc3RhdGljIHZvaWQgKgorK0JJT19nZXRf
ZGF0YSAoQklPICogYmlvKQorK3sKKysgIHJldHVybiBiaW8tPnB0cjsKKyt9CisrCisrc3RhdGlj
IHZvaWQKKytCSU9fc2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBzaHV0ZG93bikKKyt7Cisr
ICBiaW8tPnNodXRkb3duID0gc2h1dGRvd247CisrfQorKworK3N0YXRpYyB2b2lkCisrQklPX3Nl
dF9pbml0IChCSU8gKiBiaW8sIGludCBpbml0KQorK3sKKysgIGJpby0+aW5pdCA9IGluaXQ7Cisr
fQorKworK3N0YXRpYyBYNTA5ICoKKytYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKFg1MDlfU1RP
UkVfQ1RYICogY3R4KQorK3sKKysgIHJldHVybiBjdHgtPmNlcnQ7CisrfQorKyNlbmRpZgorKwor
IHN0YXRpYyB2b2lkCisgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJvcGVydHkgKEdPYmplY3Qg
KiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFy
YW1TcGVjICogcHNwZWMpCitAQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9kdGxzX2Nvbm5lY3Rpb25f
c2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAgICAgIHBy
aXYtPmJpbyA9IEJJT19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKCkpOworICAgICAg
IGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmJpbyk7CisgCistICAgICAgcHJpdi0+YmlvLT5wdHIg
PSBzZWxmOworKyAgICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBzZWxmKTsKKyAgICAgICBT
U0xfc2V0X2JpbyAocHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJpbyk7CisgCisgICAgICAg
U1NMX3NldF92ZXJpZnkgKHByaXYtPnNzbCwKK0BAIC01NzMsNiArNjA3LDcgQEAgbG9nX3N0YXRl
IChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICogc3RyKQorICAgc3RhdGVz
IHw9ICghICFTU0xfd2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7CisgICBzdGF0ZXMgfD0g
KCEgIVNTTF93YW50X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOworIAorKyNpZiBPUEVOU1NMX1ZF
UlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiJXM6
IHJvbGU9JXMgYnVmPSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAorICAgICAgIHN0ciwKKyAgICAg
ICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorQEAgLTU4MSw2ICs2MTYs
MTUgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICog
c3RyKQorICAgICAgIHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAorICAgICAgIHByaXYtPmJpb19i
dWZmZXJfbGVuLAorICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAocHJpdi0+c3NsKSwgU1NM
X3N0YXRlX3N0cmluZ19sb25nIChwcml2LT5zc2wpKTsKKysjZWxzZQorKyAgR1NUX0xPR19PQkpF
Q1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwleCAlcyIsCisrICAgICAg
c3RyLAorKyAgICAgIHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDogInNlcnZlciIsCisrICAg
ICAgcHJpdi0+YmlvX2J1ZmZlciwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX29mZnNldCwKKysg
ICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKysgICAgICBzdGF0ZXMsIFNTTF9nZXRfc3RhdGUg
KHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+c3NsKSk7CisrI2VuZGlm
CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNzM3LDcgKzc4MSw3IEBAIG9wZW5zc2xfdmVyaWZ5
X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4KQor
ICAgc2VsZiA9IFNTTF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9uX2V4X2luZGV4KTsKKyAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNUSU9OIChzZWxmKSwgRkFM
U0UpOworIAorLSAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4NTA5X2N0eC0+Y2VydCk7
CisrICBwZW0gPSBfZ3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RPUkVfQ1RYX2dldDBfY2Vy
dCAoeDUwOV9jdHgpKTsKKyAKKyAgIGlmICghcGVtKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVD
VCAoc2VsZiwKK0BAIC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sgKGlu
dCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAgICAgZ2ludCBs
ZW47CisgCisgICAgICAgbGVuID0KKy0gICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4IChiaW8s
IFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAxLAorKyAgICAgICAgICBY
NTA5X05BTUVfcHJpbnRfZXggKGJpbywKKysgICAgICAgICAgWDUwOV9nZXRfc3ViamVjdF9uYW1l
IChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEsCisgICAgICAgICAgIFhO
X0ZMQUdfTVVMVElMSU5FKTsKKyAgICAgICBCSU9fcmVhZCAoYmlvLCBidWZmZXIsIGxlbik7Cisg
ICAgICAgYnVmZmVyW2xlbl0gPSAnXDAnOworQEAgLTc3Nyw2ICs4MjIsNyBAQCBvcGVuc3NsX3Zl
cmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFggKiB4NTA5X2N0
eCkKKyAgICAgIyMjIyMjIyMgICMjIyMgICMjIyMjIyMKKyAqLworIAorKyNpZiBPUEVOU1NMX1ZF
UlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyBzdGF0aWMgQklPX01FVEhPRCBjdXN0b21fYmlv
X21ldGhvZHMgPSB7CisgICBCSU9fVFlQRV9CSU8sCisgICAic3RyZWFtIiwKK0BAIC03OTUsMTEg
Kzg0MSwzNCBAQCBCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQorIHsKKyAgIHJldHVy
biAmY3VzdG9tX2Jpb19tZXRob2RzOworIH0KKysjZWxzZQorK3N0YXRpYyBCSU9fTUVUSE9EICpj
dXN0b21fYmlvX21ldGhvZHM7CisrCisrc3RhdGljIEJJT19NRVRIT0QgKgorK0JJT19zX2dzdF9k
dGxzX2Nvbm5lY3Rpb24gKHZvaWQpCisreworKyAgaWYgKGN1c3RvbV9iaW9fbWV0aG9kcyAhPSBO
VUxMKQorKyAgICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworKworKyAgY3VzdG9tX2Jpb19t
ZXRob2RzID0gQklPX21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJlYW0iKTsKKysgIGlmIChj
dXN0b21fYmlvX21ldGhvZHMgPT0gTlVMTAorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfd3JpdGUg
KGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKKysgICAgICB8fCAhQklPX21l
dGhfc2V0X3JlYWQgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9yZWFkKQorKyAgICAg
IHx8ICFCSU9fbWV0aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9kX2N0
cmwpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3RvbV9iaW9fbWV0aG9kcywg
YmlvX21ldGhvZF9uZXcpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9kZXN0cm95IChjdXN0b21f
YmlvX21ldGhvZHMsIGJpb19tZXRob2RfZnJlZSkpIHsKKysgICAgQklPX21ldGhfZnJlZSAoY3Vz
dG9tX2Jpb19tZXRob2RzKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICByZXR1cm4g
Y3VzdG9tX2Jpb19tZXRob2RzOworK30KKysjZW5kaWYKKyAKKyBzdGF0aWMgaW50CisgYmlvX21l
dGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgc2l6ZSkKKyB7Cist
ICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRy
KTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoQklP
X2dldF9kYXRhIChiaW8pKTsKKyAKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiQklPOiB3cml0
aW5nICVkIiwgc2l6ZSk7CisgCitAQCAtODI0LDcgKzg5Myw3IEBAIGJpb19tZXRob2Rfd3JpdGUg
KEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgc3RhdGljIGludAorIGJp
b19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyB7
CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+
cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAo
QklPX2dldF9kYXRhIChiaW8pKTsKKyAgIEdzdER0bHNDb25uZWN0aW9uUHJpdmF0ZSAqcHJpdiA9
IHNlbGYtPnByaXY7CisgICBndWludCBpbnRlcm5hbF9zaXplOworICAgZ2ludCBjb3B5X3NpemU7
CitAQCAtODY4LDcgKzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpv
dXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyBzdGF0aWMgbG9uZworIGJpb19tZXRob2RfY3RybCAoQklP
ICogYmlvLCBpbnQgY21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCisgeworLSAgR3N0RHRsc0Nv
bm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3RE
dGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAo
YmlvKSk7CisgICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5wcml2Owor
IAorICAgc3dpdGNoIChjbWQpIHsKK0BAIC05MTYsOCArOTg1LDggQEAgYmlvX21ldGhvZF9uZXcg
KEJJTyAqIGJpbykKKyB7CisgICBHU1RfTE9HX09CSkVDVCAoTlVMTCwgIkJJTzogbmV3Iik7Cisg
CistICBiaW8tPnNodXRkb3duID0gMDsKKy0gIGJpby0+aW5pdCA9IDE7CisrICBCSU9fc2V0X3No
dXRkb3duIChiaW8sIDApOworKyAgQklPX3NldF9pbml0IChiaW8sIDEpOworIAorICAgcmV0dXJu
IDE7CisgfQorQEAgLTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2ZyZWUgKEJJTyAqIGJpbykK
KyAgICAgcmV0dXJuIDA7CisgICB9CisgCistICBHU1RfTE9HX09CSkVDVCAoR1NUX0RUTFNfQ09O
TkVDVElPTiAoYmlvLT5wdHIpLCAiQklPIGZyZWUiKTsKKysgIEdTVF9MT0dfT0JKRUNUIChHU1Rf
RFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklPIGZyZWUiKTsKKyAgIHJl
dHVybiAwOworIH0KKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVz
L2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmct
aW4tUlNBX2dlbmVyYXRlX2sucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1i
YWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0
ZV9rLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNjY4Nzcz
NzBjNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJh
ZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRl
X2sucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSAzYTA2OTE5M2UyNTM2NGViZGFjYWM4NmY0
YjAzMDIyYzE1MWVhMjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9x
P1NlYmFzdGlhbj0yMERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KK0Rh
dGU6IE1vbiwgMTQgTm92IDIwMTYgMTE6MzI6MTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZHRs
c2NlcnRpZmljYXRlOiBGaXggZXJyb3IgY2hlY2tpbmcgaW4gUlNBX2dlbmVyYXRlX2tleV9leCgp
CisgdXNhZ2UKKworV2FzIGJyb2tlbiBkdXJpbmcgdGhlIHBvcnQgZm9yIE9wZW5TU0wgMS4xLgor
CitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MzI4CistLS0K
KyBleHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyB8IDcgKysrKy0tLQorIDEgZmlsZSBjaGFu
Z2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQv
ZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5j
CitpbmRleCBjMWM5NjAyLi5jMmQ5YmIyIDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2Nl
cnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMjA3
LDEyICsyMDcsMTMgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0ZSAqIHNlbGYp
CisgICByc2EgPSBSU0FfbmV3ICgpOworICAgaWYgKHJzYSAhPSBOVUxMKSB7CisgICAgIEJJR05V
TSAqZSA9IEJOX25ldyAoKTsKKy0gICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRfd29yZCAoZSwg
UlNBX0Y0KQorLSAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAyMDQ4LCBlLCBO
VUxMKSkgeworKyAgICBpZiAoZSA9PSBOVUxMIHx8ICFCTl9zZXRfd29yZCAoZSwgUlNBX0Y0KQor
KyAgICAgICAgfHwgIVJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVMTCkpIHsK
KyAgICAgICBSU0FfZnJlZSAocnNhKTsKKyAgICAgICByc2EgPSBOVUxMOworICAgICB9CistICAg
IEJOX2ZyZWUgKGUpOworKyAgICBpZiAoZSkKKysgICAgICBCTl9mcmVlIChlKTsKKyAgIH0KKyAj
ZW5kaWYKKyAKKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dz
dC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1t
b29mLWZvci1mci5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2
ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2E2MGRiNDc3MmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1x
dGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKQEAgLTAs
MCArMSwxMzMgQEAKK0Zyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJiZmE0NTZmMWVkNGU1ZGI0
OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFy
IDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorRGF0ZTogVGh1LCA3IEFwciAyMDE2IDEzOjU3OjE2ICsw
MjAwCitTdWJqZWN0OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhwb3NlIHN0cmVhbXMgd2l0
aCBmaXJzdCBtb29mIGZvcgorIGZyYWdtZW50ZWQgZm9ybWF0IgorCitUaGlzIHJldmVydHMgY29t
bWl0IGQ4YmI2Njg3ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2YWQuCistLS0KKyBnc3Qv
aXNvbXA0L3F0ZGVtdXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxIC0KKyAyIGZpbGVz
IGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0
IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworaW5kZXggMzli
ZTE2My4uOTYzNmI0YiAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCisrKysgYi9n
c3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTYwOSw3ICs2MDksNiBAQCBnc3RfcXRkZW11eF9pbml0
IChHc3RRVERlbXV4ICogcXRkZW11eCkKKyAgIHF0ZGVtdXgtPnN0YXRlID0gUVRERU1VWF9TVEFU
RV9JTklUSUFMOworICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7CisgICBxdGRlbXV4LT5w
b3N0ZWRfcmVkaXJlY3QgPSBGQUxTRTsKKy0gIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0g
RkFMU0U7CisgICBxdGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OworICAgcXRkZW11eC0+dG9kcm9w
ID0gMDsKKyAgIHF0ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9uZXcgKCk7CitAQCAtMjA0
OSw3ICsyMDQ4LDYgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBn
Ym9vbGVhbiBoYXJkKQorICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRkZW11eC0+bWVkaWFfY2Fw
cywgTlVMTCk7CisgICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7CisgICAgIHF0ZGVtdXgtPmdv
dF9tb292ID0gRkFMU0U7CistICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7
CisgICB9IGVsc2UgaWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7CisgICAgIGdzdF9mbG93X2NvbWJp
bmVyX3Jlc2V0IChxdGRlbXV4LT5mbG93Y29tYmluZXIpOworICAgICBmb3IgKG4gPSAwOyBuIDwg
cXRkZW11eC0+bl9zdHJlYW1zOyBuKyspCitAQCAtNjEwNCw3ICs2MTAyLDYgQEAgZ3N0X3F0ZGVt
dXhfcHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQor
ICAgICAgICAgICAgICZmb3VyY2MpOworICAgICAgICAgaWYgKGZvdXJjYyA9PSBGT1VSQ0NfbW9v
dikgeworICAgICAgICAgICBnaW50IG47CistICAgICAgICAgIGdib29sZWFuIGdvdF9zYW1wbGVz
ID0gRkFMU0U7CisgCisgICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdtZW50ZWQgc2V0dXAgd2Ug
Y291bGQgdHJ5IHRvIHNjYW4gZm9yIG1vcmUKKyAgICAgICAgICAgICogYW5kIGVuZCB1cCBhdCB0
aGUgdGhlIG1vb3YgKGFmdGVyIG1kYXQpIGFnYWluICovCitAQCAtNjEzNiwyNyArNjEzMywxOSBA
QCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xl
YW4gZm9yY2UpCisgICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAgKGRlbXV4LCBkZW11eC0+
bW9vdl9ub2RlKTsKKyAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3RyZWUgKGRlbXV4KTsKKyAg
ICAgICAgICAgICBxdGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAg
IGlmICghZGVtdXgtPmdvdF9tb292KQorKyAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3Ry
ZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAgIGVsc2UgeworIAorLSAgICAgICAgICAgIGZvciAo
biA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAgICAgICAgICAgIFF0RGVt
dXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAgICAgZ290
X3NhbXBsZXMgfD0gc3RyZWFtLT5zdGJsX2luZGV4ID49IDA7CistICAgICAgICAgICAgfQorLSAg
ICAgICAgICAgIGlmICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3NhbXBsZXMpIHsKKy0gICAg
ICAgICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KSB7CistICAgICAgICAgICAgICAgIHF0ZGVt
dXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKy0gICAgICAgICAgICAgIH0gZWxzZSB7CistICAg
ICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0g
ICAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tu
XTsKKy0gICAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFtIChkZW11
eCwgc3RyZWFtKTsKKy0gICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgZm9yIChuID0g
MDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworKyAgICAgICAgICAgICAgICBRdERlbXV4
U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKysKKysgICAgICAgICAgICAgICAg
Z3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7CisgICAgICAgICAg
ICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRpbmdfc2Vn
bWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0g
RkFMU0U7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgIGRlbXV4LT5wZW5k
aW5nX2NvbmZpZ3VyZSA9IFRSVUU7CisgICAgICAgICAgICAgfQorIAorICAgICAgICAgICAgIGRl
bXV4LT5nb3RfbW9vdiA9IFRSVUU7CisrICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tfc2Vu
ZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKKyAKKyAgICAgICAgICAgICAvKiBmcmFnbWVudGVk
IHN0cmVhbXMgaGVhZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0b21zICovCisgICAgICAg
ICAgICAgaWYgKCFkZW11eC0+ZnJhZ21lbnRlZCkgeworQEAgLTYxNzUsNyArNjE2NCw2IEBAIGdz
dF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBm
b3JjZSkKKyAgICAgICAgICAgICBndWludDY0IGRpc3QgPSAwOworICAgICAgICAgICAgIEdzdENs
b2NrVGltZSBwcmV2X3B0czsKKyAgICAgICAgICAgICBndWludDY0IHByZXZfb2Zmc2V0OworLSAg
ICAgICAgICAgIGdpbnQgbjsKKyAKKyAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11
eCwgIlBhcnNpbmcgW21vb2ZdIik7CisgCitAQCAtNjIwOSwyNSArNjE5NywxNSBAQCBnc3RfcXRk
ZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2Up
CisgICAgICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKyAgICAgICAgICAgICAgIGdv
dG8gZG9uZTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQg
dG8gZXhwb3NlIHRoZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBh
IG1vb3YgCistICAgICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBmb3JtYXQgbmVlZCB0byBi
ZSBleHBvc2VkIGlmIGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBkYXRhICovCistICAgICAg
ICAgICAgaWYgKGRlbXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGluZ19jb25maWd1cmUpIHsK
Ky0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKKy0gICAgICAgICAgICAgICAg
aWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CistICAgICAgICAgICAgICAgICAgR3N0
U2VnbWVudCBzZWdtZW50OworLSAgICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2luaXQgKCZz
ZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworLSAgICAgICAgICAgICAgICAgIEdTVF9ERUJVR19P
QkpFQ1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworLSAgICAgICAgICAgICAg
ICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZz
ZWdtZW50KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBxdGRlbXV4X2V4
cG9zZV9zdHJlYW1zIChkZW11eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAg
ICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAg
ICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07Cist
ICAgICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0
cmVhbSk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvKiBpbiBNU1Mgd2UgbmVl
ZCB0byBleHBvc2UgdGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29uJ3QgZ2V0
IGEgbW9vdiAqLworKyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21vZGUgJiYgIWRlbXV4LT5l
eHBvc2VkKSB7CisrICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQp
IHsKKysgICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OworKyAgICAgICAgICAgICAg
ICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKKysgICAgICAg
ICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVuZGluZ19uZXdzZWdtZW50
Iik7CisrICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZl
bnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKyAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg
ICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7CistICAg
ICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKKysgICAgICAgICAg
ICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKyAgICAgICAgICAgICB9CisgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJE
aXNjYXJkaW5nIFttb29mXSIpOworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIv
Z3N0L2lzb21wNC9xdGRlbXV4LmgKK2luZGV4IDYwNjEyMTUuLmVjZjBjNjMgMTAwNjQ0CistLS0g
YS9nc3QvaXNvbXA0L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK0BAIC04
OSw3ICs4OSw2IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBnYm9vbGVhbiBwb3N0ZWRfcmVk
aXJlY3Q7CisgCisgICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLworLSAgZ2Jvb2xlYW4gcGVu
ZGluZ19jb25maWd1cmU7CisgICBndWludCBuZWVkZWRieXRlczsKKyAgIGd1aW50IHRvZHJvcDsK
KyAgIEdzdEFkYXB0ZXIgKmFkYXB0ZXI7CistLSAKKzIuOC4wLnJjMworCmRpZmYgLS1naXQgYS9U
b29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGlt
ZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0
LWRlY29kZS10aW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xZTlkZDk3Zjc5MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCkBAIC0wLDAgKzEsMTQ2
IEBACitGcm9tIDQ2ZDNlMGZhYTkyMjY0MzA5NGE1ZTQ2YTMyZTRmODJmNzc0YWU3NzIgTW9uIFNl
cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/RW5yaXF1ZT0yME9jYT1DMz1CMWE9
MjBHb256PUMzPUExbGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KK0RhdGU6IFR1ZSwgMTAgTm92
IDIwMTUgMTM6MDk6MDAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIHRoZSB0ZmR0IGRlY29k
ZSB0aW1lIHdoZW4gaXQncyBzaWduaWZpY2FudGx5IGRpZmZlcmVudAorIHRoYW4gdGhlIHRpbWUg
aW4gdGhlIGxhc3Qgc2FtcGxlIGlmIGFsd2F5cy1ob25vci10ZmR0IGlzIGVuYWJsZWQKKworaHR0
cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDIzMAorLS0tCisgZ3N0
L2lzb21wNC9xdGRlbXV4LmMgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrCisgZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAgMSArCisgMiBmaWxl
cyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0
ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA4ODA1OTVlLi5kOGI1NGYwIDEw
MDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11
eC5jCitAQCAtNTM1LDYgKzUzNSwxMSBAQCBzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9hcHBlbmRf
cHJvdGVjdGlvbl9zeXN0ZW1faWQgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICBjb25zdCBn
Y2hhciAqIGlkKTsKKyBzdGF0aWMgdm9pZCBxdGRlbXV4X2dzdF9zdHJ1Y3R1cmVfZnJlZSAoR3N0
U3RydWN0dXJlICogZ3N0c3RydWN0dXJlKTsKKyAKKytzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9z
ZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisrICAgIGNvbnN0
IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Cisrc3RhdGljIHZvaWQgZ3N0X3F0
ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorKyAg
ICBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworKworIHN0YXRpYyB2b2lkCisg
Z3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3MpCisgeworQEAg
LTU0Niw4ICs1NTEsMjEgQEAgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNz
ICoga2xhc3MpCisgCisgICBwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQg
KGtsYXNzKTsKKyAKKysgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IGdzdF9xdGRlbXV4
X3NldF9wcm9wZXJ0eTsKKysgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IGdzdF9xdGRl
bXV4X2dldF9wcm9wZXJ0eTsKKysKKyAgIGdvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBnc3RfcXRk
ZW11eF9kaXNwb3NlOworIAorKyAvKioKKysgICAqIEdzdFF0RGVtdXg6OmFsd2F5cy1ob25vci10
ZmR0OgorKyAgICoKKysgICAqIFJlcXVlc3RzIHRoZSBkZW11eGVyIHRvIHJlc3BlY3Qgd2hhdCB0
aGUgVEZEVCBhdG9tIHNheXMgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24gdGltZXN0
YW1wcy4gRGVmYXVsdHMgdG8gRkFMU0UuCisrICAgKi8KKysgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkgKGdvYmplY3RfY2xhc3MsIFBST1BfQUxXQVlTX0hPTk9SX1RGRFQsCisrICAg
ICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4gKCJhbHdheXMtaG9ub3ItdGZkdCIsICJBbHdheXMgaG9u
b3IgVEZEVCIsCisrICAgICAgICAgICJXaGVuIGVuYWJsZWQsIFRGRFQgYXRvbSB3aWxsIGFsd2F5
cyBiZSByZXNwZWN0ZWQgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24gdGltZXN0YW1w
cyIsCisrICAgICAgICAgIEZBTFNFLCBHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElD
X1NUUklOR1MpKTsKKysKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmNoYW5nZV9zdGF0ZSA9IEdTVF9E
RUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpOworICNpZiAwCisgICBnc3Rl
bGVtZW50X2NsYXNzLT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVtdXhf
c2V0X2luZGV4KTsKK0BAIC02MTEsNiArNjI5LDcgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAoR3N0UVRE
ZW11eCAqIHF0ZGVtdXgpCisgICBxdGRlbXV4LT5jZW5jX2F1eF9pbmZvX3NpemVzID0gTlVMTDsK
KyAgIHF0ZGVtdXgtPmNlbmNfYXV4X3NhbXBsZV9jb3VudCA9IDA7CisgICBxdGRlbXV4LT5wcm90
ZWN0aW9uX3N5c3RlbV9pZHMgPSBOVUxMOworKyAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQg
PSBGQUxTRTsKKyAgIGdfcXVldWVfaW5pdCAoJnF0ZGVtdXgtPnByb3RlY3Rpb25fZXZlbnRfcXVl
dWUpOworICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNlZ21lbnQsIEdTVF9GT1JNQVRf
VElNRSk7CisgICBxdGRlbXV4LT5mbG93Y29tYmluZXIgPSBnc3RfZmxvd19jb21iaW5lcl9uZXcg
KCk7CitAQCAtNjM5LDYgKzY1OCw0MiBAQCBnc3RfcXRkZW11eF9kaXNwb3NlIChHT2JqZWN0ICog
b2JqZWN0KQorIH0KKyAKKyBzdGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4X3NldF9wcm9wZXJ0eSAo
R09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgY29uc3QgR1ZhbHVlICogdmFs
dWUsIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4ICpxdGRlbXV4ID0gR1NU
X1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQpIHsKKysgICAgY2FzZSBQ
Uk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1RfTE9DSyAocXRkZW11eCk7
CisrICAgICAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBnX3ZhbHVlX2dldF9ib29sZWFu
ICh2YWx1ZSk7CisrICAgICAgR1NUX09CSkVDVF9VTkxPQ0sgKHF0ZGVtdXgpOworKyAgICAgIGJy
ZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJU
WV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJlYWs7CisrICB9CisrfQor
KworK3N0YXRpYyB2b2lkCisrZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2Jq
ZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUgKiB2YWx1ZSwKKysgICAgR1BhcmFtU3BlYyAqIHBz
cGVjKQorK3sKKysgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1VWCAob2JqZWN0KTsK
KysKKysgIHN3aXRjaCAocHJvcF9pZCkgeworKyAgICBjYXNlIFBST1BfQUxXQVlTX0hPTk9SX1RG
RFQ6CisrICAgICAgR1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsKKysgICAgICBnX3ZhbHVlX3Nl
dF9ib29sZWFuICh2YWx1ZSwgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQpOworKyAgICAgIEdT
VF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoK
KysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9p
ZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMgdm9pZAorIGdz
dF9xdGRlbXV4X3Bvc3Rfbm9fcGxheWFibGVfc3RyZWFtX2Vycm9yIChHc3RRVERlbXV4ICogcXRk
ZW11eCkKKyB7CisgICBpZiAocXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0KSB7CitAQCAtMjk5NSw2
ICszMDUwLDE2IEBAIHF0ZGVtdXhfcGFyc2VfdHJ1biAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIEdz
dEJ5dGVSZWFkZXIgKiB0cnVuLAorICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3RyZWFtLT5u
X3NhbXBsZXMgLSAxXS50aW1lc3RhbXAgKworICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3Ry
ZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbjsKKyAKKysgICAgICAvKiBJZiB3ZSdyZSBhbHdh
eXMgaG9ub3JpbmcgVEZEVCBhbmQgdGhlcmUncyBhIHNpZ25pZmljYXRpdmUgZGlmZmVyZW5jZQor
KyAgICAgICAqIGJldHdlZW4gdGhlIGRlY29kZV90cyBhbmQgdGhlIHRpbWVzdGFtcCwgcHJlZmVy
IGRlY29kZV90cyAqLworKyAgICAgIGlmIChxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCA9PSBU
UlVFCisrICAgICAgICAgICYmIGFicyAoZGVjb2RlX3RzIC0gdGltZXN0YW1wKSA+CisrICAgICAg
ICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLmR1cmF0aW9uKSB7Cisr
ICAgICAgICBHU1RfSU5GT19PQkpFQ1QgKHF0ZGVtdXgsCisrICAgICAgICAgICAgImRlY29kZV90
cyBpcyBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIHRpbWVzdGFtcCwgdXNpbmcgZGVjb2Rl
X3RzIik7CisrICAgICAgICB0aW1lc3RhbXAgPSBkZWNvZGVfdHM7CisrICAgICAgfQorKworICAg
ICAgIGdzdF90cyA9IFFUU1RSRUFNVElNRV9UT19HU1RUSU1FIChzdHJlYW0sIHRpbWVzdGFtcCk7
CisgICAgICAgR1NUX0lORk9fT0JKRUNUIChxdGRlbXV4LCAiZmlyc3Qgc2FtcGxlIHRzICUiIEdT
VF9USU1FX0ZPUk1BVAorICAgICAgICAgICAiIChleHRlbmRzIHByZXZpb3VzIHNhbXBsZXMpIiwg
R1NUX1RJTUVfQVJHUyAoZ3N0X3RzKSk7CitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4
LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAoraW5kZXggNTNiZDA3MS4uZWNmMGM2MyAxMDA2NDQK
Ky0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5oCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAor
QEAgLTE1NCwxMiArMTU0LDIwIEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBndWludDggKmNl
bmNfYXV4X2luZm9fc2l6ZXM7CisgICBndWludDMyIGNlbmNfYXV4X3NhbXBsZV9jb3VudDsKKyAK
KysgIGdib29sZWFuIGFsd2F5c19ob25vcl90ZmR0OworIH07CisgCisgc3RydWN0IF9Hc3RRVERl
bXV4Q2xhc3MgeworICAgR3N0RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKKyB9OworIAorKy8q
IHByb3BzICovCisrZW51bQorK3sKKysgIFBST1BfMCwKKysgIFBST1BfQUxXQVlTX0hPTk9SX1RG
RFQKKyt9OworKworIEdUeXBlIGdzdF9xdGRlbXV4X2dldF90eXBlICh2b2lkKTsKKyAKKyBHX0VO
RF9ERUNMUworLS0gCisyLjYuMQorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3Ry
ZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0u
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEt
Q0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmI0NDZiZDU0NGMzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
d3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93
bnN0cmVhbS1pZi10aGUtLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gNWU0M2VlNTk4OWQ3
YjUxZGNiMzE0NWJkOTk3NTI1MjQ3YTNkNjJkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy
b206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNlYmFzdGlhbkBjZW50cmlj
dWxhci5jb20+CitEYXRlOiBXZWQsIDExIE1heSAyMDE2IDE1OjA2OjM5ICswMzAwCitTdWJqZWN0
OiBbUEFUQ0hdIHR5cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50IGRvd25zdHJlYW0gaWYg
dGhlIHNpbmtwYWQgaXMKKyBub3QgaW4gUFVMTCBtb2RlCisKK1RoZSBvdGhlciBzaWduYWwgaGFu
ZGxlcnMgb2YgdGhlIHR5cGUtZm91bmQgc2lnbmFsIG1pZ2h0IGhhdmUgcmVhY3RpdmF0ZWQKK3R5
cGVmaW5kIGluIFBVTEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQUyBldmVudCBhdCB0aGF0
IHBvaW50IHdvdWxkIGNhdXNlCitkZWFkbG9ja3MgYW5kIGlzIGluIGdlbmVyYWwgdW5leHBlY3Rl
ZCBieSBlbGVtZW50cyB0aGF0IGFyZSBpbiBQVUxMIG1vZGUuCisKK2h0dHBzOi8vYnVnemlsbGEu
Z25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDYKKy0tLQorIHBsdWdpbnMvZWxlbWVudHMv
Z3N0dHlwZWZpbmRlbGVtZW50LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp
b25zKCspCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVu
dC5jIGIvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYworaW5kZXggYzY4NjQx
Mi4uNDUzZmY3NSAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVt
ZW50LmMKKysrKyBiL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKK0BAIC0x
NzksNiArMTc5LDEwIEBAIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUgKEdzdFR5cGVG
aW5kRWxlbWVudCAqIHR5cGVmaW5kLAorICAgR1NUX0lORk9fT0JKRUNUICh0eXBlZmluZCwgImZv
dW5kIGNhcHMgJSIgR1NUX1BUUl9GT1JNQVQgIiwgcHJvYmFiaWxpdHk9JXUiLAorICAgICAgIGNh
cHMsIHByb2JhYmlsaXR5KTsKKyAKKysgIC8qIERvIG5vdGhpbmcgaWYgZG93bnN0cmVhbSBpcyBw
dWxsaW5nIGZyb20gdXMgKi8KKysgIGlmIChHU1RfUEFEX01PREUgKHR5cGVmaW5kLT5zcmMpID09
IEdTVF9QQURfTU9ERV9QVUxMKQorKyAgICByZXR1cm47CisrCisgICBHU1RfT0JKRUNUX0xPQ0sg
KHR5cGVmaW5kKTsKKyAKKyAgIC8qIE5vdyBhY3R1YWxseSBzZW5kIHRoZSBDQVBTIGV2ZW50IGRv
d25zdHJlYW0uCistLSAKKzIuOC4xCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307728</attachid>
            <date>2017-04-21 07:48:50 -0700</date>
            <delta_ts>2017-04-27 06:08:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>504515</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDc2MjkzY2NmMDlkLi5hYWFhZTRmZGRlZSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA0LTIxICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IEFkZCB0aGUgV1BFIHBvcnQgaWRlbnRpZmllci4KKyAgICAgICAgKiBTb3VyY2UvY21h
a2UvRmluZExpYkdCTS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRX
UEVCYWNrZW5kLW1lc2EuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5k
V1BFQmFja2VuZC5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNX
UEUuY21ha2U6IEFkZGVkLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51
bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5HX0hFQURF
UlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggNTUxN2Y0NmNiYjMuLmE2NTZiYTczNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtV1BFLmNt
YWtlOiBBZGRlZC4KKyAgICAgICAgKiBzaGVsbC9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisK
IDIwMTctMDQtMjAgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAg
ICAgICAgIFtjbWFrZV0gRGVmaW5lIEZPUldBUkRJTkdfSEVBREVSU19ESVIgaW4gV2ViS2l0RlMg
YW5kIHVzZSBpdCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1XUEUuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjZjZhZjkyY2Q0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
CkBAIC0wLDAgKzEsMjMgQEAKK2xpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9JTkNM
VURFX0RJUkVDVE9SSUVTCisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke1dURl9ESVJ9
CispCisKK3NldChXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hFQURFUlMKKyAgICBBUEkv
SmF2YVNjcmlwdC5oCisgICAgQVBJL0pTQmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisg
ICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAgICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5
cGVkQXJyYXkuaAorICAgIEFQSS9KU1ZhbHVlUmVmLmgKKyAgICBBUEkvV2ViS2l0QXZhaWxhYmls
aXR5LmgKKykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfSkFWQVNDUklQVENPUkVf
SEVBREVSU30KKyAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dw
ZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFL0phdmFTY3JpcHRDb3JlIgorICAgIENPTVBPTkVOVCAi
RGV2ZWxvcG1lbnQiCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvUGxhdGZvcm1X
UEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyMzE4M2Ey
YjA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRm
b3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMyBAQAorbGlzdChBUFBFTkQgSlNDX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5kZXgg
NmE0YzE4MGZhYWMuLjBkMTgxMGQ0OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oOgorICAgICAgICBBbGxvdyBidWlsZGluZyBXUEUgb24gcGxhdGZvcm1zIHRoYXQgZG9uJ3Qg
cHJvdmlkZSBYMTEgbGlicmFyaWVzLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5H
X0hFQURFUlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5
ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAgICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVm
IHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1hcF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5
cGVkZWYgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlw
ZTsKIAotI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkg
fHwgZGVmaW5lZChVU0VfV1BFKQogCiB0eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlU
eXBlOwogdHlwZWRlZiBpbnRwdHJfdCBFR0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjZGQyNzgx
NzA0Mi4uZTRiYzM5MzU3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMjEgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBX
UEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVk
LgorICAgICAgICAqIHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oOgorCiAyMDE3LTA0
LTIwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBub3RGb3Vu
ZCBpbnRvIGl0cyBvd24gZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggY2E2MmEzZjUwZGYuLmUxZmMzYmVi
MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ0OCw2ICs0NDgsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTQ5
Miw3ICs0OTQsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYwOCw3
ICs2MTAsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzQ0LDcgKzc0Niw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTM1LDcgKzkzNyw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAwMiw3ICsxMDA0LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDUyLDExICsxMDU0LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTE5LDcgKzExMjEsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMTRlZjQzMmJjMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dSZWZQdHIuY3BwCisgICAgZ2xpYi9HTGliVXRpbGl0
aWVzLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQ1ZjEyY2JkNTA3Li5kZmI4YmE1YWZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTYsMTEgKzM5OTYsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MjUwNGQwNmM3Ni4uMzUyNWRlYjQ1NzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtZGV2
IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJr
aXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBFeGlzdGluZyBmaWxlcyBt
b3N0bHkgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0oV1BFKSBidWlsZCBndWFyZHMu
CisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBDaGFuZ2VMb2cgZW50
cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQ
bGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNo
ZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxp
dHlPYmplY3RXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nbGliL0F1ZGlvQnVzR0xpYi5jcHAuCisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICog
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9L
ZXlSU0EuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL3dwZS9FZGl0b3JXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgICogcGFnZS93cGUvRXZl
bnRIYW5kbGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1h
Z2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NYWluVGhy
ZWFkU2hhcmVkVGltZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAg
ICAgICogcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnku
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9PcGVuR0xFU1NoaW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
cGUvSWNvbldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUu
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBw
bGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVi
b2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVl
bldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAg
ICAqIHBsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Nj
cm9sbGJhclRoZW1lV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQ
RS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9UaGVtZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9UaGVtZVdQRS5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKwogMjAxNy0wNC0yMSAgVGltb3RoeSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIG9ic2N1
cmVkIGluc2V0cyB0byB3ZWIgY29udGVudCAoYXMgInNhZmUgYXJlYSBpbnNldHMiKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKaW5kZXggM2Y1NmYyZWE0Y2MuLjZlOWJhYjAxYTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9QbGF0Zm9ybVdQRS5j
bWFrZTogQWRkZWQuCisKIDIwMTctMDQtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNYWNdIEFsbG93IGN1c3RvbWl6aW5nIEgyNjQgZW5jb2RlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjc3NWMxODk4NGFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3Qo
QVBQRU5EIFBBTF9TT1VSQ0VTCisgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9EaWdlc3RHQ3J5cHQu
Y3BwCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5lNjM3OTVmNGNiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjg2IEBACitpbmNsdWRlKHBsYXRmb3Jt
L0dTdHJlYW1lci5jbWFrZSkKK2luY2x1ZGUocGxhdGZvcm0vSW1hZ2VEZWNvZGVycy5jbWFrZSkK
K2luY2x1ZGUocGxhdGZvcm0vTGludXguY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL1RleHR1cmVN
YXBwZXIuY21ha2UpCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICIke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9IgorICAgICIke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3RvciIKKyAgICAke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0KKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJz
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCisg
ICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29tcGlsZXIiCisgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9kZmciCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQiCisgICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9oZWFwIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGVidWdnZXIiCisgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRlcnByZXRlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2ppdCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2xsaW50IgorICAgICIke0pB
VkFTQ1JJUFRDT1JFX0RJUn0vcGFyc2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcHJv
ZmlsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lIgorICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0veWFyciIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvIgorICAg
ICIke1RISVJEUEFSVFlfRElSfS9BTkdMRS9pbmNsdWRlL0tIUiIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dseCIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9o
YXJmYnV6ei9uZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlIgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvaWN1IgorICAgICR7V1RG
X0RJUn0KKykKKworbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgYWNjZXNzaWJpbGl0
eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAKKyAgICBhY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3Np
YmlsaXR5T2JqZWN0V1BFLmNwcAorCisgICAgbG9hZGVyL3NvdXAvQ2FjaGVkUmF3UmVzb3VyY2VT
b3VwLmNwcAorICAgIGxvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKKworICAg
IHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
b29yZGluYXRlZEdyYXBoaWNzLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3Jh
cGhpY3MvU2Nyb2xsaW5nU3RhdGVOb2RlQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKworICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKKyAgICBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCisKKyAgICBwbGF0Zm9ybS9DdXJzb3IuY3BwCisgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25l
LmNwcAorICAgIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKyAgICBwbGF0Zm9ybS9U
aGVtZS5jcHAKKworICAgIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAorCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCisKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9JbXBsLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0Zsb2F0UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJm
YnV6ek5HLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05h
dGl2ZUltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVBhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9UcmFuc2Zvcm1hdGlvbk1hdHJpeENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAorCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1enou
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcAorCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5nLmNwcAor
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuY3Bw
CisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcAorCisg
ICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5j
cHAKKworICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKKyAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0NyZWRlbnRpYWxTdG9yYWdlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
RE5TU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1JlZlB0clNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5U2VydmVyU291cC5jcHAKKyAgICBwbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXNwb25zZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVy
Q2xpZW50U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvV2ViS2l0U291cFJlcXVl
c3RHZW5lcmljLmNwcAorCisgICAgcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAKKworICAgIHBsYXRmb3JtL3RleHQvSHlwaGVu
YXRpb24uY3BwCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCisgICAgcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRl
Y3RvcklDVS5jcHAKKworICAgICMgRklYTUU6IFNwbGl0IGJ1aWxkIHRhcmdlcnMgYmVsb3cgaW50
byBhIFdlYkNvcmVQbGF0Zm9ybSBsaWJyYXJ5CisgICAgZWRpdGluZy93cGUvRWRpdG9yV1BFLmNw
cAorCisgICAgcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ2xp
Yi9FdmVudExvb3BHbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3Bw
CisgICAgcGxhdGZvcm0vZ2xpYi9LZXllZERlY29kZXJHbGliLmNwcAorICAgIHBsYXRmb3JtL2ds
aWIvS2V5ZWRFbmNvZGVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL01haW5UaHJlYWRTaGFy
ZWRUaW1lckdMaWIuY3BwCisgICAgcGxhdGZvcm0vZ2xpYi9TaGFyZWRCdWZmZXJHbGliLmNwcAor
ICAgIHBsYXRmb3JtL2dsaWIvU1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wv
R0xDb250ZXh0RUdMV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0lj
b25XUEUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcAorCisgICAg
cGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKworICAgIHBsYXRmb3JtL3dwZS9DdXJzb3JX
UEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCisgICAgcGxh
dGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BF
LmNwcAorICAgIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKKyAgICBwbGF0Zm9y
bS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1l
V1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUv
VGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKKworICAgIHBsYXRm
b3JtL3hkZy9NSU1FVHlwZVJlZ2lzdHJ5WGRnLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X1VTRVJfQUdFTlRfU1RZTEVfU0hFRVRTCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmNzcworKQorCitzZXQoV2ViQ29yZV9VU0VSX0FH
RU5UX1NDUklQVFMKKyAgICAke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9qL21lZGlhQ29udHJv
bHNMb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYWNv
bnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCispCisKK3NldChXZWJDb3JlX1VTRVJfQUdFTlRf
U0NSSVBUU19ERVBFTkRFTkNJRVMgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0NBSVJP
X0xJQlJBUklFU30KKyAgICAke0VHTF9MSUJSQVJJRVN9CisgICAgJHtGT05UQ09ORklHX0xJQlJB
UklFU30KKyAgICAke0ZSRUVUWVBFMl9MSUJSQVJJRVN9CisgICAgJHtHTElCX0dJT19MSUJSQVJJ
RVN9CisgICAgJHtHTElCX0dNT0RVTEVfTElCUkFSSUVTfQorICAgICR7R0xJQl9HT0JKRUNUX0xJ
QlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R05VVExTX0xJQlJBUklFU30K
KyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0lDVV9MSUJSQVJJRVN9CisgICAgJHtM
SUJHQ1JZUFRfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9CisgICAgJHtMSUJY
TUwyX0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFSSUVTfQorICAgICR7U1FMSVRFX0xJ
QlJBUklFU30KKyAgICAke1dQRV9MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7RUdM
X0lOQ0xVREVfRElSU30KKyAgICAke0ZPTlRDT05GSUdfSU5DTFVERV9ESVJTfQorICAgICR7RlJF
RVRZUEUyX0lOQ0xVREVfRElSU30KKyAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7R05V
VExTX0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpaX0lOQ0xVREVfRElSU30KKyAgICAke0lD
VV9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJHQ1JZUFRfSU5DTFVERV9ESVJTfQorICAgICR7TElC
U09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7TElC
WFNMVF9JTkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURFX0RJUn0KKyAgICAke1dQRV9J
TkNMVURFX0RJUlN9CispCisKK2lmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKKyAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAK
KyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAorICAgICAgICBjcnlw
dG8vQ3J5cHRvS2V5LmNwcAorICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAgICAg
ICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAorCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DVFIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19HQ00uY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNE
U0EuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuY3Bw
CisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCisgICAg
ICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5jcHAKKyAgICAgICAg
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKKyAg
ICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUu
Y3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNw
cAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCisgICAgICAg
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKKyAgICAgICAgY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAorICAgICAgICBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCisKKyAgICAgICAgY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DRkJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1BRVNfR0NNR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0
L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1FQ0RIR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0
b0FsZ29yaXRobUVDRFNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0Fs
Z29yaXRobUhLREZHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3Jp
dGhtSE1BQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1Q
QktERjJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SU0FfT0FFUEdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SZWdpc3RyeUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9LZXlFQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlSU0FH
Q3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvU2VyaWFsaXplZENyeXB0b0tleVdyYXBH
Q3J5cHQuY3BwCisKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAorICAgICAg
ICBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHAKKyAgICAgICAgY3J5
cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleUVDLmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNw
cAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleVJhdy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFs
aXphdGlvblJhdy5jcHAKKyAgICApCitlbmRpZiAoKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDE1OWQ1Y2NjNDIyLi4z
MWEyMWZhYjgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKQEAgLTY2LDYgKzY2LDggQEAgdHlwZWRlZiBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbGlmIFBMQVRG
T1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogdHlwZWRlZiBz
dHJ1Y3QgX0F0a09iamVjdCBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKKyNlbGlmIFBMQVRG
T1JNKFdQRSkKK2NsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+IHsgfTsKICNlbHNlCiBjbGFzcyBBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbmRpZgpAQCAtMTExMSw2ICsxMTEzLDggQEAgcHJv
dGVjdGVkOgogICAgIENPTVB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93cmFwcGVy
OwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEF0a09iamVjdCogbV93cmFwcGVyOworI2VsaWYg
UExBVEZPUk0oV1BFKQorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93
cmFwcGVyOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4xNTQxNTk0YWRlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlEZXRhY2ht
ZW50VHlwZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZChOb2RlKiwgTm9kZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBlOTRjNTk5NGNhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVj
dFdQRS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2Fs
aWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1l
bnQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKaW5kZXgg
ZDVkNDNmZTRkZjQuLjE4MDk5MGViZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb25m
aWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaApAQCAtMTA0LDcgKzEwNCw3IEBACiAj
ZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oV1BFKQogI2RlZmluZSBVU0VfTkVXX1RIRU1FIDEKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAppbmRleCA0NDNhNjgyMTVhYi4uNGM3ZDAy
OThlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaApAQCAtMzYs
NyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0NFQ0NyeXB0b3IgKkNDRUNDcnlwdG9yUmVmOwog
dHlwZWRlZiBDQ0VDQ3J5cHRvclJlZiBQbGF0Zm9ybUVDS2V5OwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5X3Nl
eHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBnY3J5
X3NleHAqIFBsYXRmb3JtRUNLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlSU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVJTQS5oCmluZGV4IDMwNWJkNGM0M2EwLi40MWJjZTg1OWVhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwogdHlwZWRlZiBDQ1JTQUNyeXB0b3JS
ZWYgUGxhdGZvcm1SU0FLZXk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIC8vIGdjcnlfc2V4cCogZXF1YXRlcyBnY3J5X3Nl
eHBfdC4KIHN0cnVjdCBnY3J5X3NleHA7CiB0eXBlZGVmIGdjcnlfc2V4cCogUGxhdGZvcm1SU0FL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggM2MxNTdlZjZkODguLjA1ZTkxYmZm
MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xMjQ2LDEzICsxMjQ2LDEzIEBA
IHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rp
b24pCiAgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1
bWVudChkb2N1bWVudCgpKTsKIAogICAgICAgICBpZiAoaW1hZ2VFbGVtZW50KSB7Ci0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgICAgICB3cml0ZUltYWdlVG9QYXN0
ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgKmltYWdlRWxlbWVu
dCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1lbnQoKS50aXRsZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgqaW1h
Z2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgpLnRpdGxlKCkpOwogI2VuZGlm
CiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAg
ICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0
IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KQEAgLTEz
NzcsNyArMTM3Nyw3IEBAIHZvaWQgRWRpdG9yOjpjb3B5SW1hZ2UoY29uc3QgSGl0VGVzdFJlc3Vs
dCYgcmVzdWx0KQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICB1cmwgPSByZXN1bHQu
YWJzb2x1dGVJbWFnZVVSTCgpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICplbGVtZW50LCB1cmwsIHJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOwogI2Vs
c2UKICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgq
ZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0RGlzcGxheVN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDE2NTJiNmRiMzkzLi4zNmI5NmIyYmNlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCkBAIC00NjcsNyArNDY3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmlu
ZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVz
cGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJk
KFBhc3RlYm9hcmQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlSW1hZ2VUb1Bhc3Rl
Ym9hcmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmIGltYWdlRWxlbWVudCwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihQYXN0ZWJvYXJkV3Jp
dGVyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9y
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFmZmQyZGUxZTk4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9yV1BFLmNwcApAQCAtMCww
ICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIm1hcmt1cC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBhc3RlYm9hcmREYXRhKFBhc3RlYm9hcmQmIHBhc3Rl
Ym9hcmQsIEZyYW1lJiBmcmFtZSwgUmFuZ2UmIHJhbmdlLCBib29sIGFsbG93UGxhaW5UZXh0LCBi
b29sJiBjaG9zZVBsYWluVGV4dCkKK3sKKyAgICBjaG9zZVBsYWluVGV4dCA9IGZhbHNlOworCisg
ICAgVmVjdG9yPFN0cmluZz4gdHlwZXMgPSBwYXN0ZWJvYXJkLnR5cGVzKCk7CisgICAgaWYgKHR5
cGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAodHlwZXMu
Y29udGFpbnMoInRleHQvaHRtbDtjaGFyc2V0PXV0Zi04IikgJiYgZnJhbWUuZG9jdW1lbnQoKSkg
eworICAgICAgICBTdHJpbmcgbWFya3VwID0gcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L2h0
bWw7Y2hhcnNldD11dGYtOCIpOworICAgICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKCpmcmFtZS5kb2N1bWVudCgpLCBt
YXJrdXAsIGVtcHR5U3RyaW5nKCksIERpc2FsbG93U2NyaXB0aW5nQW5kUGx1Z2luQ29udGVudCkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIGlm
ICghYWxsb3dQbGFpblRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKHR5
cGVzLmNvbnRhaW5zKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkgeworICAgICAgICBjaG9z
ZVBsYWluVGV4dCA9IHRydWU7CisgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KHJhbmdlLCBwYXN0ZWJvYXJkLnJlYWRT
dHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIpKSkKKyAgICAgICAgICAgIHJldHVybiBm
cmFnbWVudC5yZWxlYXNlKCk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Zv
aWQgRWRpdG9yOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJv
YXJkKQoreworICAgIFBhc3RlYm9hcmRXZWJDb250ZW50IHBhc3RlYm9hcmRDb250ZW50OworICAg
IHBhc3RlYm9hcmRDb250ZW50LnRleHQgPSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsK
KyAgICBwYXN0ZWJvYXJkQ29udGVudC5tYXJrdXAgPSBjcmVhdGVNYXJrdXAoKnNlbGVjdGVkUmFu
Z2UoKSwgbnVsbHB0ciwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25M
b2NhbFVSTHMpOworICAgIHBhc3RlYm9hcmQud3JpdGUocGFzdGVib2FyZENvbnRlbnQpOworfQor
Cit2b2lkIEVkaXRvcjo6d3JpdGVJbWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgRWxlbWVu
dCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVi
b2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxv
Y2txdW90ZUhhbmRsaW5nKQoreworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJh
bmdlKCk7CisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBjaG9z
ZVBsYWluVGV4dDsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVh
dGVGcmFnbWVudEZyb21QYXN0ZWJvYXJkRGF0YSgqcGFzdGVib2FyZCwgbV9mcmFtZSwgKnJhbmdl
LCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHQpOworICAgIGlmIChmcmFnbWVudCAmJiBz
aG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6
UGFzdGVkKSkKKyAgICAgICAgcGFzdGVBc0ZyYWdtZW50KCpmcmFnbWVudCwgY2FuU21hcnRSZXBs
YWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgbWFpbEJsb2Nr
cXVvdGVIYW5kbGluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2OTU3Yzg3ODRmYy4uZWRlOTQwMTczOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYgd2luZG93UG9p
bnQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogCiBib29sIEV2ZW50SGFuZGxlcjo6
c2hvdWxkVHVyblZlcnRpY2FsVGlja3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4zZWRjZDg1ZDgzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorCisjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEV2ZW50SGFu
ZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEV2ZW50SGFu
ZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRGcmFt
ZSgmbV9mcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3du
RXZlbnRUb1dpZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhh
bmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChXaWRnZXQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIFdpZGdldCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFt
ZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFz
c01vdXNlTW92ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwg
RnJhbWUqLCBIaXRUZXN0UmVzdWx0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVu
dFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworT3B0aW9uU2V0PFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9k
aWZpZXI6OkFsdEtleTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNh
bFRpY2tzSW50b0hvcml6b250YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKaW5kZXggY2RjZjI2NWYyNjAu
LjVlOTExZDcwOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNzQsNiArNzQsOCBA
QCB1c2luZyBQbGF0Zm9ybUN1cnNvciA9IFJlZlB0cjxTaGFyZWRDdXJzb3I+OwogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBOU0N1cnNvciAqOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdka0N1cnNvcj47CisjZWxpZiBQTEFURk9STShXUEUpCit1
c2luZyBQbGF0Zm9ybUN1cnNvciA9IHZvaWQqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAppbmRleCAxOTU3MjFiMWZkYS4uZjM2M2ZhZjU1NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBTZWxlY3Rpb25EYXRhOwogfQogdHlwZWRlZiBXZWJDb3JlOjpT
ZWxlY3Rpb25EYXRhKiBEcmFnRGF0YVJlZjsKLSNlbGlmIFBMQVRGT1JNKElPUykKKyNlbGlmIFBM
QVRGT1JNKElPUykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGUzMjU1ZDE5YWQy
Li5jYmVmNzM4ZjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0lt
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTQxLDcg
KzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsKIE9CSkNfQ0xBU1Mg
TlNJbWFnZTsKICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyog
SEJJVE1BUDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjZW5kaWYKIApAQCAtNjQsNyAr
NjQsNyBAQCB0eXBlZGVmIFJldGFpblB0cjxDR0ltYWdlUmVmPiBEcmFnSW1hZ2VSZWY7CiB0eXBl
ZGVmIFJldGFpblB0cjxOU0ltYWdlPiBEcmFnSW1hZ2VSZWY7CiAjZWxpZiBQTEFURk9STShXSU4p
CiB0eXBlZGVmIEhCSVRNQVAgRHJhZ0ltYWdlUmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2Vs
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+IERyYWdJbWFnZVJlZjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3lzdGVtLmgKaW5kZXggZjEyNjhhNjhkMmQuLjFkMTIzNmFhN2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xOTgsNyArMTk4LDcgQEAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBmaWxlc0hhdmVTYW1lVm9sdW1lKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogUmV0
YWluUHRyPENGVVJMUmVmPiBwYXRoQXNVUkwoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIFN0cmlu
ZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJik7CiBDU3RyaW5nIGFwcGxpY2F0aW9u
RGlyZWN0b3J5UGF0aCgpOwogQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcAppbmRleCA3
NzhjYWMyZDk4Yi4uZGRhNjgyZWI4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcApAQCAtMzQsNyArMzQsNyBAQCBNYWluVGhyZWFk
U2hhcmVkVGltZXImIE1haW5UaHJlYWRTaGFyZWRUaW1lcjo6c2luZ2xldG9uKCkKICAgICByZXR1
cm4gaW5zdGFuY2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShXUEUpCiBNYWluVGhyZWFkU2hhcmVkVGltZXI6Ok1haW5UaHJlYWRTaGFy
ZWRUaW1lcigpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWlu
VGhyZWFkU2hhcmVkVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCmluZGV4IDU5MGY2ODk0YWQzLi40OTA3MzBmMTQzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjZW5kaWYKIApAQCAtNTQsNyArNTQs
NyBAQCBwcml2YXRlOgogICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lcigpOwogCiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fZmlyZWRGdW5jdGlvbjsKLSNpZiBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgUnVuTG9vcDo6VGltZXI8TWFpblRo
cmVhZFNoYXJlZFRpbWVyPiBtX3RpbWVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCmluZGV4IGI5NGQ3MGExZjZhLi45YzE0YmEyN2M5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtNjIsNyArNjIsNyBAQCBlbnVtIFNob3VsZFNlcmlh
bGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciB7IERlZmF1bHRTZWxlY3RlZFRleHRUeXBl
LCBJbmNsdQogLy8gRm9yIHdyaXRpbmcgdG8gdGhlIHBhc3RlYm9hcmQuIEdlbmVyYWxseSBzb3J0
ZWQgd2l0aCB0aGUgcmljaGVzdCBmb3JtYXRzIG9uIHRvcC4KIAogc3RydWN0IFBhc3RlYm9hcmRX
ZWJDb250ZW50IHsKLSNpZiAhKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSkKKyNpZiAh
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUpKQogICAgIFdF
QkNPUkVfRVhQT1JUIFBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
flBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZTsK
QEAgLTgwLDYgKzgwLDEwIEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7CiAgICAgU3Ry
aW5nIHRleHQ7CiAgICAgU3RyaW5nIG1hcmt1cDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICBTdHJpbmcgdGV4dDsKKyAgICBTdHJpbmcgbWFya3VwOworI2VuZGlmCiB9OwogCiBzdHJ1
Y3QgUGFzdGVib2FyZFVSTCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRT
dHJhdGVneS5oCmluZGV4IGU4OGE0ODkxMTgzLi45OWQ3NWY0ZWJiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKQEAgLTY5LDEwICs2OSwxOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSA9IDA7CiAgICAgdmlydHVhbCBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdmly
dHVhbCB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
Y29uc3QgU2VsZWN0aW9uRGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxTZWxlY3Rpb25EYXRh
PiByZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAj
ZW5kaWYgLy8gUExBVEZPUk0oR1RLKQorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwg
dm9pZCBnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpID0gMDsKKyAgICB2aXJ0dWFsIFN0
cmluZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNv
bnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRv
UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSA9
IDA7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflBhc3RlYm9hcmRTdHJhdGVn
eSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Q
YXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aAppbmRleCAzN2E3OTE4M2Y2Yy4uZjNlNDMwNDNlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCkBAIC00MCw2ICs0MCwxMCBAQCBPQkpDX0NMQVNT
IE5TUGFzdGVib2FyZDsKIE9CSkNfQ0xBU1MgVUlQYXN0ZWJvYXJkOwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQ7CisjZW5kaWYKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDb2xvcjsKQEAgLTUyLDcgKzU2LDcgQEAgc3RydWN0IFBhc3Rl
Ym9hcmRXZWJDb250ZW50OwogY2xhc3MgUGxhdGZvcm1QYXN0ZWJvYXJkIHsKIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKElPUykg
fHwgUExBVEZPUk0oV1BFKQogICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtUGFzdGVib2FyZCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lc0ZvckRhdGFJbnRl
cmFjdGlvbigpOwogI2VuZGlmCkBAIC0xMDUsNiArMTA5LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFU
Rk9STShHVEspCiAgICAgR3RrQ2xpcGJvYXJkKiBtX2NsaXBib2FyZDsKICNlbmRpZgorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQqIG1fcGFzdGVib2FyZDsKKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1l
UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3Bw
CmluZGV4IDViYWQzY2QwZDU2Li42NGUzNTYzOTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcApAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgVVJMU2NoZW1l
c01hcCYgc2VjdXJlU2NoZW1lcygpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJh
Ym91dCIpOwogICAgICAgICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgiZGF0YSIpOwogICAgICAg
ICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgid3NzIik7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBzZWN1cmVTY2hlbWVzLmdl
dCgpLmFkZCgicmVzb3VyY2UiKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKaW5kZXggNTViNDlhNGRkYzcuLjVkN2FhNDhhNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRn
ZXQuaApAQCAtNjEsNiArNjEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX0d0a0NvbnRhaW5lciBHdGtD
b250YWluZXI7CiB0eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1XaWRnZXQ7CisjZW5kaWYK
KwogdHlwZWRlZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBhZ2VDbGllbnQ7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2ds
aWIvQXVkaW9CdXNHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIv
QXVkaW9CdXNHTGliLmNwcAppbmRleCA3OTFiZmEzOTYzNi4uODE5NzViNjRhNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAK
QEAgLTI3LDExICsyNywxNyBAQAogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisjZGVmaW5l
IEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8iCisj
ZWxpZiBQTEFURk9STShXUEUpCisjZGVmaW5lIEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dl
YmtpdHdwZS9yZXNvdXJjZXMvYXVkaW8iCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29u
c3QgY2hhciogbmFtZSwgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICBHVW5pcXVlUHRyPGNoYXI+
IHBhdGgoZ19zdHJkdXBfcHJpbnRmKCIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8vJXMi
LCBuYW1lKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdfc3RyZHVwX3ByaW50ZihBVURJ
T19HUkVTT1VSQ0VfUEFUSCAiLyVzIiwgbmFtZSkpOwogICAgIEdSZWZQdHI8R0J5dGVzPiBkYXRh
ID0gYWRvcHRHUmVmKGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHBhdGguZ2V0KCksIEdfUkVTT1VS
Q0VfTE9PS1VQX0ZMQUdTX05PTkUsIG51bGxwdHIpKTsKICAgICBBU1NFUlQoZGF0YSk7CiAgICAg
cmV0dXJuIGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShnX2J5dGVzX2dldF9kYXRhKGRh
dGEuZ2V0KCksIG51bGxwdHIpLCBnX2J5dGVzX2dldF9zaXplKGRhdGEuZ2V0KCkpLCBmYWxzZSwg
c2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0Zp
bGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwCmluZGV4IDZmYTNlYTc3MWYzLi44M2QzMmUxMzhmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAgLTIxMyw2ICsyMTMs
OSBAQCBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQogICAgIGlmICghY2FjaGVkUGF0aC5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBhdGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJ
UiwgIndwZSIsIG51bGxwdHIpKTsKKyNlbGlmIFBMQVRGT1JNKEdUSykKICNpZiBPUyhXSU5ET1dT
KQogICAgIEhNT0RVTEUgaG1vZHVsZSA9IDA7CiAgICAgR2V0TW9kdWxlSGFuZGxlRXhBKEdFVF9N
T0RVTEVfSEFORExFX0VYX0ZMQUdfRlJPTV9BRERSRVNTLCByZWludGVycHJldF9jYXN0PGNoYXIq
PihzaGFyZWRSZXNvdXJjZXNQYXRoKSwgJmhtb2R1bGUpOwpAQCAtMjIyLDYgKzIyNSw3IEBAIENT
dHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAjZWxzZQogICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGRhdGFQYXRoKGdfYnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3ZWJraXRndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HLCBOVUxMKSk7CiAjZW5kaWYKKyNlbmRpZgogCiAgICAgY2Fj
aGVkUGF0aCA9IGRhdGFQYXRoLmdldCgpOwogICAgIHJldHVybiBjYWNoZWRQYXRoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
aW5kZXggOTExNGU3NmM3NTkuLjJhY2NmYWQxNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKQEAgLTM2LDcgKzM2LDcg
QEAKICNpbmNsdWRlIDxPcGVuR0wvZ2wuaD4KICNlbGlmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRl
ICJPcGVuR0xFU1NoaW1zLmgiCi0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICNpZiBVU0UoT1BFTkdMX0VTXzIpCiAjaW5jbHVkZSA8R0xF
UzIvZ2wyLmg+CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHAKaW5kZXggNzBmNTg3MzkyZjYuLmMxNWJlYzVlOWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTEyMCw3ICsxMjAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZVNoYXJpbmdD
b250ZXh0KFBsYXRmb3JtRGlzcGxheSYgZGlzcAogICAgIH0KICNlbmRpZgogCi0jaWYgVVNFKEVH
TCkgfHwgUExBVEZPUk0oV0FZTEFORCkKKyNpZiBVU0UoRUdMKSB8fCBQTEFURk9STShXQVlMQU5E
KSB8fCBQTEFURk9STShXUEUpCiAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVH
TDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoZGlzcGxheSkpCiAgICAgICAgIHJldHVybiBXVEZNb3Zl
KGVnbENvbnRleHQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dMQ29udGV4dC5oCmluZGV4IDJjMGVhMjdlMTkzLi4wNDY5ZWI1MzNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKQEAgLTI1LDcgKzI1LDEzIEBA
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIEZJWE1FOiBGaW5kIHNvbWUgd2F5IHRvIGRl
ZHVjZSB0aGlzLgorI2RlZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0u
aD4KKyNlbHNlCiAjaW5jbHVkZSAiZWdscGxhdGZvcm0uaCIKKyNlbmRpZgogdHlwZWRlZiBFR0xO
YXRpdmVXaW5kb3dUeXBlIEdMTmF0aXZlV2luZG93VHlwZTsKICNlbHNlCiB0eXBlZGVmIHVpbnQ2
NF90IEdMTmF0aXZlV2luZG93VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDdkODBkNWI0NWI0Li5iMmI3OTUy
NTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oCkBAIC02MCw3ICs2MCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogT0JKQ19DTEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwotI2VsaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pCisjZWxpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdJTl9DQUlSTykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgR0x1aW50OwogI2VuZGlmCiAKQEAgLTEzNzMsNyArMTM3Myw3IEBAIHByaXZhdGU6CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFwRm9yU2hhZGVy
czsKIAotI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pKSAmJiBVU0UoT1BFTkdM
X0VTXzIpKQorI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JN
KFdQRSkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMz
RE9wZW5HTEVTOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0xFUz4gbV9l
eHRlbnNpb25zOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL09wZW5HTEVTU2hpbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L09wZW5HTEVTU2hpbXMuaAppbmRleCBiNGU5NTE1NzIxNy4uYWI3YzZiOGYzOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKQEAgLTI2
LDcgKzI2LDcgQEAKICNpZm5kZWYgT3BlbkdMRVNTaGltc19oCiAjZGVmaW5lIE9wZW5HTEVTU2hp
bXNfaAogCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgZ2xCaW5kRnJh
bWVidWZmZXJFWFQgZ2xCaW5kRnJhbWVidWZmZXIKICNkZWZpbmUgZ2xGcmFtZWJ1ZmZlclRleHR1
cmUyREVYVCBnbEZyYW1lYnVmZmVyVGV4dHVyZTJECiAjZGVmaW5lIGdsQmluZFJlbmRlcmJ1ZmZl
ckVYVCBnbEJpbmRSZW5kZXJidWZmZXIKQEAgLTQ1LDYgKzQ1LDcgQEAKICNkZWZpbmUgZ2xJc0Zy
YW1lYnVmZmVyRVhUIGdsSXNGcmFtZWJ1ZmZlcgogI2RlZmluZSBnbEdlbmVyYXRlTWlwbWFwRVhU
IGdsR2VuZXJhdGVNaXBtYXAKICNkZWZpbmUgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQgR0xfREVQ
VEhfQVRUQUNITUVOVAorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMF9FWFQgR0xfQ09MT1Jf
QVRUQUNITUVOVDAKICNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfQ09NUExFVEVfRVhUIEdMX0ZSQU1F
QlVGRkVSX0NPTVBMRVRFCiAjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0VYVCBHTF9GUkFNRUJVRkZF
UgogI2RlZmluZSBHTF9ERVBUSDI0X1NURU5DSUw4X0VYVCBHTF9ERVBUSDI0X1NURU5DSUw4X09F
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAKaW5kZXggNjdlZmJjZWI4YjMuLjFiNzE5NTRmNTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTQy
LDYgKzQyLDEwIEBACiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V2luLmgiCiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNlbmRpZgpAQCAt
MTAwLDYgKzEwNCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9y
bURpc3BsYXk6OmNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UGxhdGZvcm1EaXNwbGF5WDExPihudWxscHRyKTsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVdQRT4o
KTsKKyNlbmRpZgorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
RGlzcGxheS5oCmluZGV4IGY3NjRjMmQ0NTFmLi5jYjVmYTFlZjMwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKQEAgLTU0LDYg
KzU0LDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgV2luZG93cywKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgV1BFLAorI2VuZGlmCiAgICAgfTsKIAog
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCAxYzFjZWMy
NmFjZi4uOWZlNzU1ZmM1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0yMDQsNiArMjA0LDEzIEBAIHN0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRl
eHQoUGxhdGZvcm1EaXNwbGF5CiAgICAgaWYgKGVnbEJpbmRBUEkoZ0VHTEFQSVZlcnNpb24pID09
IEVHTF9GQUxTRSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgaWYgKHBsYXRmb3JtRGlzcGxheS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBl
OjpXUEUpIHsKKyAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGNyZWF0ZVdQRUNvbnRleHQocGxh
dGZvcm1EaXNwbGF5KSkKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKyNlbmRp
ZgorCiAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlU3VyZmFjZWxlc3NDb250ZXh0KHBsYXRmb3Jt
RGlzcGxheSk7CiAgICAgaWYgKCFjb250ZXh0KSB7CiAjaWYgUExBVEZPUk0oWDExKQpAQCAtMjUx
LDYgKzI1OCw5IEBAIEdMQ29udGV4dEVHTDo6fkdMQ29udGV4dEVHTCgpCiAjaWYgUExBVEZPUk0o
V0FZTEFORCkKICAgICBkZXN0cm95V2F5bGFuZFdpbmRvdygpOwogI2VuZGlmCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIGRlc3Ryb3lXUEVUYXJnZXQoKTsKKyNlbmRpZgogfQogCiBib29sIEdMQ29u
dGV4dEVHTDo6Y2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCmluZGV4IGU1YTMz
NTk3ZDdiLi45YTAzM2ZlYjJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApAQCAtMzIsNiArMzIsMTAgQEAKIHN0cnVjdCB3
bF9lZ2xfd2luZG93OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5V1BFLmgiCisjZW5kaWYKKwogdHlwZWRlZiB2b2lkICpFR0xDb25maWc7CiB0
eXBlZGVmIHZvaWQgKkVHTENvbnRleHQ7CiB0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7CkBAIC03
Myw2ICs3Nyw5IEBAIHByaXZhdGU6CiAgICAgR0xDb250ZXh0RUdMKFBsYXRmb3JtRGlzcGxheSYs
IEVHTENvbnRleHQsIEVHTFN1cmZhY2UsIFdsVW5pcXVlUHRyPHN0cnVjdCB3bF9zdXJmYWNlPiYm
LCBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdyopOwogICAgIHZvaWQgZGVzdHJveVdheWxhbmRXaW5kb3co
KTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGRlc3Ryb3lXUEVUYXJnZXQo
KTsKKyNlbmRpZgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNy
ZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlLCBQbGF0Zm9ybURpc3BsYXkmLCBF
R0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVBidWZmZXJDb250ZXh0KFBsYXRmb3JtRGlzcGxh
eSYsIEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKQEAgLTg1LDYgKzkyLDkg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3Jl
YXRlV2F5bGFuZENvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29u
dGV4dCA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBFR0xTdXJmYWNlIGNyZWF0ZVdpbmRvd1N1cmZh
Y2VXYXlsYW5kKEVHTERpc3BsYXksIEVHTENvbmZpZywgR0xOYXRpdmVXaW5kb3dUeXBlKTsKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29u
dGV4dEVHTD4gY3JlYXRlV1BFQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNo
YXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CisjZW5kaWYKIAogICAgIHN0YXRpYyBib29sIGdldEVH
TENvbmZpZyhFR0xEaXNwbGF5LCBFR0xDb25maWcqLCBFR0xTdXJmYWNlVHlwZSk7CiAKQEAgLTk4
LDYgKzEwOCw5IEBAIHByaXZhdGU6CiAgICAgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+
IG1fd2xTdXJmYWNlOwogICAgIHN0cnVjdCB3bF9lZ2xfd2luZG93KiBtX3dsV2luZG93IHsgbnVs
bHB0ciB9OwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gbV93cGVUYXJnZXQ7CisjZW5k
aWYKICNpZiBVU0UoQ0FJUk8pCiAgICAgY2Fpcm9fZGV2aWNlX3QqIG1fY2Fpcm9EZXZpY2UgeyBu
dWxscHRyIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjlmM2Y0MmQ3NjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJH
TENvbnRleHRFR0wuaCIKKworI2lmIFVTRShFR0wpICYmIFBMQVRGT1JNKFdQRSkKKworI2luY2x1
ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlV1BFQ29udGV4dChQ
bGF0Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4
dCkKK3sKKyAgICBhdXRvIG9mZnNjcmVlblRhcmdldCA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxh
eVdQRT4ocGxhdGZvcm1EaXNwbGF5KS5jcmVhdGVFR0xPZmZzY3JlZW5UYXJnZXQoKTsKKyAgICBh
dXRvIGNvbnRleHQgPSBjcmVhdGVXaW5kb3dDb250ZXh0KG9mZnNjcmVlblRhcmdldC0+bmF0aXZl
V2luZG93KCksIHBsYXRmb3JtRGlzcGxheSwgc2hhcmluZ0NvbnRleHQpOworICAgIGlmIChjb250
ZXh0KQorICAgICAgICBjb250ZXh0LT5tX3dwZVRhcmdldCA9IFdURk1vdmUob2Zmc2NyZWVuVGFy
Z2V0KTsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKwordm9pZCBHTENvbnRleHRFR0w6OmRlc3Ry
b3lXUEVUYXJnZXQoKQoreworICAgIG1fd3BlVGFyZ2V0ID0gbnVsbHB0cjsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEVHTCkgJiYgUExBVEZPUk0oV1BFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CmluZGV4IDJiZjExZWExYmQ3Li4yOTE3MzQzNmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNTksNyArNTksOSBAQAog
I2VuZGlmCiAKICNpZiBVU0UoRUdMKQorI2lmICFQTEFURk9STShXUEUpCiAjaW5jbHVkZSAiR0xD
b250ZXh0RUdMLmgiCisjZW5kaWYKICNpbmNsdWRlIDxnc3QvZ2wvZWdsL2dzdGdsZGlzcGxheV9l
Z2wuaD4KICNlbmRpZgogCkBAIC02OSw2ICs3MSw4IEBACiAKICNpZiBQTEFURk9STShXQVlMQU5E
KQogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdheWxhbmQuaCIKKyNlbGlmIFBMQVRGT1JNKFdQ
RSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKICNlbmRpZgogCiAvLyBnc3RnbGFw
aS5oIG1heSBpbmNsdWRlIGVnbHBsYXRmb3JtLmggYW5kIGl0IGluY2x1ZGVzIFguaCwgd2hpY2gK
QEAgLTQzOSw2ICs0NDMsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjplbnN1cmVHc3RHTENvbnRleHQoKQogICAgICAgICAgICAgbV9nbERpc3BsYXkgPSBHU1RfR0xf
RElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXkoZG93bmNhc3Q8
UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgQVNTRVJUKGlzPFBsYXRmb3JtRGlz
cGxheVdQRT4oc2hhcmVkRGlzcGxheSkpOworICAgICAgICBtX2dsRGlzcGxheSA9IEdTVF9HTF9E
SVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQ
bGF0Zm9ybURpc3BsYXlXUEU+KHNoYXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOworI2VuZGlm
CisKICAgICAgICAgQVNTRVJUKG1fZ2xEaXNwbGF5KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IGM3YTBlYzdmMjUyLi4xMjY1
ZTAwMWQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24u
Y3BwCkBAIC0yMzYsNiArMjM2LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRl
eHR1cmUoKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaWYgVVNFKE9QRU5HTF9FU18y
KQorICAgIDo6Z2xGbHVzaCgpOworI2VuZGlmCiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9j
b21wb3NpdG9yVGV4dHVyZSk7CiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9pbnRlcm1lZGlh
dGVUZXh0dXJlKTsKICAgICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zi
byk7CkBAIC0zOTgsNyArNDAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tWYXJ5
aW5nc1BhY2tpbmcoUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXQKICAgICAgICAg
dmFyaWFibGVzLnB1c2hfYmFjayh2YXJ5aW5nU3ltYm9sKTsKIAogICAgIEdDM0RpbnQgbWF4VmFy
eWluZ1ZlY3RvcnMgPSAwOwotI2lmICFQTEFURk9STShJT1MpICYmICEoKFBMQVRGT1JNKFdJTikg
fHwgUExBVEZPUk0oR1RLKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAhUExBVEZPUk0oSU9T
KSAmJiAhKChQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkg
JiYgVVNFKE9QRU5HTF9FU18yKSkKICAgICBHQzNEaW50IG1heFZhcnlpbmdGbG9hdHMgPSAwOwog
ICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9NQVhfVkFSWUlOR19GTE9BVFMsICZtYXhWYXJ5aW5nRmxv
YXRzKTsKICAgICBtYXhWYXJ5aW5nVmVjdG9ycyA9IG1heFZhcnlpbmdGbG9hdHMgLyA0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kM2MzN2JkZjhhYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNw
cApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJY29uLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSWNvbjo6fkljb24oKQoreworfQorCit2b2lkIEljb246OnBh
aW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit7Cit9CisKK1JlZlB0cjxJ
Y29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWFhMzBhODU2NmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgi
CisKKyNpbmNsdWRlIDxjc3RkaW8+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRt
YXBJbWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SW1h
Z2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSkKK3sK
KyAgICBzdGQ6OmZwcmludGYoc3RkZXJyLCAiV0FSTklORzogdHJ5aW5nIHRvIGxvYWQgcGxhdGZv
cm0gcmVzb3VyY2UgJyVzJ1xuIiwgcmVzb3VyY2UpOworICAgIHJldHVybiBCaXRtYXBJbWFnZTo6
Y3JlYXRlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkNWJiMWQxZjQxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1Bs
YXRmb3JtRGlzcGxheVdQRS5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgiCisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRl
ICJHTENvbnRleHRFR0wuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8RUdML2Vn
bC5oPgorI2luY2x1ZGUgPHdwZS9yZW5kZXJlci1iYWNrZW5kLWVnbC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6UGxhdGZvcm1EaXNwbGF5V1BFKCkgPSBk
ZWZhdWx0OworCitQbGF0Zm9ybURpc3BsYXlXUEU6On5QbGF0Zm9ybURpc3BsYXlXUEUoKQorewor
ICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1EaXNwbGF5V1BFOjppbml0aWFsaXplKGludCBob3N0RmQpCit7CisgICAgbV9i
YWNrZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX2NyZWF0ZShob3N0RmQpOworCisgICAg
bV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheSh3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZ2V0
X25hdGl2ZV9kaXNwbGF5KG1fYmFja2VuZCkpOworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdM
X05PX0RJU1BMQVkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJQbGF0Zm9ybURpc3BsYXlX
UEU6IGNvdWxkIG5vdCBjcmVhdGUgdGhlIEVHTCBkaXNwbGF5LlxuIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCk7
Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gUGxh
dGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVu
dCwgaW50IGhvc3RGZCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxFR0xUYXJnZXQ+
KCp0aGlzLCBjbGllbnQsIGhvc3RGZCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURp
c3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gUGxhdGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVF
R0xPZmZzY3JlZW5UYXJnZXQoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTE9m
ZnNjcmVlblRhcmdldD4oKnRoaXMpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdl
dDo6RUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSwgUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQgaG9zdEZkKQorICAgIDog
bV9kaXNwbGF5KGRpc3BsYXkpCisgICAgLCBtX2NsaWVudChjbGllbnQpCit7CisgICAgbV9iYWNr
ZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jcmVhdGUoaG9zdEZkKTsKKwor
ICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jbGllbnQg
c19jbGllbnQgPSB7CisgICAgICAgIC8vIGZyYW1lX2NvbXBsZXRlCisgICAgICAgIFtdKHZvaWQq
IGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHN1cmZhY2UgPSAqcmVpbnRlcnBy
ZXRfY2FzdDxFR0xUYXJnZXQqPihkYXRhKTsKKyAgICAgICAgICAgIHN1cmZhY2UubV9jbGllbnQu
ZnJhbWVDb21wbGV0ZSgpOworICAgICAgICB9LAorICAgIH07CisgICAgd3BlX3JlbmRlcmVyX2Jh
Y2tlbmRfZWdsX3RhcmdldF9zZXRfY2xpZW50KG1fYmFja2VuZCwgJnNfY2xpZW50LCB0aGlzKTsK
K30KKworUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6On5FR0xUYXJnZXQoKQoreworICAg
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZGVzdHJveShtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0Ojppbml0aWFsaXplKGNvbnN0IElu
dFNpemUmIHNpemUpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9pbml0
aWFsaXplKG1fYmFja2VuZCwgbV9kaXNwbGF5Lm1fYmFja2VuZCwKKyAgICAgICAgc3RkOjptYXgo
MCwgc2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCitFR0xO
YXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpuYXRpdmVXaW5k
b3coKSBjb25zdAoreworICAgIHJldHVybiB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0
X2dldF9uYXRpdmVfd2luZG93KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5
V1BFOjpFR0xUYXJnZXQ6OnJlc2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9y
ZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfcmVzaXplKG1fYmFja2VuZCwgc3RkOjptYXgoMCwg
c2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCit2b2lkIFBs
YXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpmcmFtZVdpbGxSZW5kZXIoKQoreworICAgIHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZnJhbWVfd2lsbF9yZW5kZXIobV9iYWNrZW5k
KTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVSZW5kZXJl
ZCgpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV9yZW5kZXJl
ZChtX2JhY2tlbmQpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdl
dDo6RUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSkK
K3sKKyAgICBtX3RhcmdldCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2NyZWF0ZSgpOworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2luaXRpYWxpemUobV90YXJnZXQsIGRpc3BsYXkubV9iYWNrZW5kKTsKK30KKworUGxhdGZv
cm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ6On5FR0xPZmZzY3JlZW5UYXJnZXQoKQor
eworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2Rlc3Ryb3ko
bV90YXJnZXQpOworfQorCitFR0xOYXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6
RUdMT2Zmc2NyZWVuVGFyZ2V0OjpuYXRpdmVXaW5kb3coKSBjb25zdAoreworICAgIHJldHVybiB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRv
dyhtX3RhcmdldCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBM
QVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uM2Y4Y2ZkOTk4ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKQEAgLTAsMCArMSwx
MDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFBsYXRmb3JtRGlzcGxheVdQRV9oCisjZGVmaW5lIFBsYXRmb3JtRGlzcGxheVdQRV9oCisK
KyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKworI2Rl
ZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKworc3RydWN0IHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xf
dGFyZ2V0Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dDsKK2NsYXNzIEludFNp
emU7CisKK2NsYXNzIFBsYXRmb3JtRGlzcGxheVdQRSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybURp
c3BsYXkgeworcHVibGljOgorICAgIFBsYXRmb3JtRGlzcGxheVdQRSgpOworICAgIHZpcnR1YWwg
flBsYXRmb3JtRGlzcGxheVdQRSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKGludCk7CisKKyAg
ICBjbGFzcyBFR0xUYXJnZXQgeworICAgIHB1YmxpYzoKKyAgICAgICAgY2xhc3MgQ2xpZW50IHsK
KyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lQ29tcGxldGUo
KSA9IDA7CisgICAgICAgIH07CisKKyAgICAgICAgRUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlz
cGxheVdQRSYsIENsaWVudCYsIGludCk7CisgICAgICAgIH5FR0xUYXJnZXQoKTsKKworICAgICAg
ICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBFR0xOYXRpdmVXaW5k
b3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OworCisgICAgICAgIHZvaWQgcmVzaXplKGNvbnN0
IEludFNpemUmKTsKKworICAgICAgICB2b2lkIGZyYW1lV2lsbFJlbmRlcigpOworICAgICAgICB2
b2lkIGZyYW1lUmVuZGVyZWQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFBsYXRm
b3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OworICAgICAgICBDbGllbnQmIG1fY2xpZW50OworICAg
ICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldCogbV9iYWNrZW5kOwor
ICAgIH07CisKKyAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYpOworICAg
ICAgICB+RUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKKyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlw
ZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVjdCB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldCogbV90YXJnZXQ7CisgICAg
fTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUYXJnZXQ+IGNyZWF0ZUVHTFRhcmdldChFR0xU
YXJnZXQ6OkNsaWVudCYsIGludCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVHTE9mZnNjcmVlblRh
cmdldD4gY3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKK3ByaXZhdGU6CisgICAgVHlwZSB0
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXUEU7
IH0KKworICAgIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2wqIG1fYmFja2VuZDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19QTEFU
Rk9STV9ESVNQTEFZKFBsYXRmb3JtRGlzcGxheVdQRSwgV1BFKQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oV1BFKQorCisjZW5kaWYgLy8gUGxhdGZvcm1EaXNwbGF5V1BFX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmQ0ZGM5NTVmOTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ3Vyc29yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBDdXJz
b3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXpl
ZFN0cmluZ3NXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0
cmluZ3NXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NzVk
N2ZjNTJiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9M
b2NhbGl6ZWRTdHJpbmdzV1BFLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiX1NlYXJj
aCB0aGUgV2ViIik7Cit9CisKK1N0cmluZyB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlVuYWNjZXB0YWJsZSBUTFMgY2VydGlmaWNh
dGUiKTsKK30KKworU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7Cit9CisKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzc4MDA4M2ZkMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcApAQCAt
MCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgi
CisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmRTdHJh
dGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9h
cmQ+KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigp
OworfQorCitQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKK3sKK30KKworYm9vbCBQYXN0ZWJvYXJk
OjpoYXNEYXRhKCkKK3sKKyAgICAvLyBGSVhNRTogR2V0dGluZyB0aGUgbGlzdCBvZiB0eXBlcyBm
b3IgdGhpcyBpcyB3YXN0ZWZ1bC4gRG8gdGhpcyBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICBWZWN0
b3I8U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4gIXR5cGVzLmlzRW1wdHkoKTsK
K30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQoreworICAgIFZlY3RvcjxT
dHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+Z2V0VHlwZXModHlwZXMpOworICAgIHJldHVybiB0eXBlczsKK30KKworU3RyaW5nIFBh
c3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9t
UGFzdGVib2FyZCgwLCB0eXBlKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKHR5cGUs
IHRleHQpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKK3sKK30KKwordm9pZCBQYXN0
ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OnJl
YWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKK3sKKyAgICB0ZXh0LnRleHQgPSBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9tUGFzdGVi
b2FyZCgwLCAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Iik7Cit9CisKK3ZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkVVJMJiB1
cmwpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT53
cml0ZVRvUGFzdGVib2FyZCgidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IiwgdXJsLnVybC5zdHJp
bmcoKSk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVUcnVzdHdvcnRoeVdlYlVSTHNQYm9h
cmRUeXBlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJikKK3sKK30K
Kwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29u
dGVudCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PndyaXRlVG9QYXN0ZWJvYXJkKGNvbnRlbnQpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJv
YXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30K
KworYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZU1hcmt1cChjb25zdCBTdHJpbmcmKQorewor
fQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
U21hcnRSZXBsYWNlT3B0aW9uKQoreworICAgIHdyaXRlU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJz
ZXQ9dXRmLTgiLCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBhc3RlYm9hcmQo
Y29uc3QgUGFzdGVib2FyZCYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRX
UEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhNGYzOGUx
MWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJkc0Nv
bXBhdGliaWxpdHkpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKKyAgICBtX3R5
cGUgPSB0eXBlOworICAgIGlmIChiYWNrd2FyZHNDb21wYXRpYmlsaXR5KQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAg
ICAgIG1fdGV4dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5n
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKCk7Cisg
ICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAgICB9Cit9CisKK2Jvb2wgUGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlm
aWVyU3RhdGUoYm9vbCYsIGJvb2wmLCBib29sJiwgYm9vbCYpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0
Zm9ybVBhc3RlYm9hcmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtUGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjlmNDM0NmEwMjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtUGFz
dGVib2FyZC5oIgorI2luY2x1ZGUgPHdwZS9wYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworI2luY2x1ZGUg
PG1hcD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRm
b3JtUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0
ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30K
KworUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoKQorICAgIDogbV9wYXN0
ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9w
YXN0ZWJvYXJkKTsKK30KKwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmdldFR5cGVzKFZlY3Rv
cjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3Zl
Y3RvciBwYXN0ZWJvYXJkVHlwZXMgPSB7IG51bGxwdHIsIDAgfTsKKyAgICB3cGVfcGFzdGVib2Fy
ZF9nZXRfdHlwZXMobV9wYXN0ZWJvYXJkLCAmcGFzdGVib2FyZFR5cGVzKTsKKworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwYXN0ZWJvYXJkVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgYXV0byYgdHlwZVN0cmluZyA9IHBhc3RlYm9hcmRUeXBlcy5zdHJpbmdzW2ldOworICAgICAg
ICB0eXBlcy5hcHBlbmQoU3RyaW5nKHR5cGVTdHJpbmcuZGF0YSwgdHlwZVN0cmluZy5sZW5ndGgp
KTsKKyAgICB9CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfdmVjdG9yX2ZyZWUoJnBhc3Rl
Ym9hcmRUeXBlcyk7Cit9CisKK1N0cmluZyBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRTdHJpbmco
aW50LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0
cmluZyBzdHJpbmc7CisgICAgd3BlX3Bhc3RlYm9hcmRfZ2V0X3N0cmluZyhtX3Bhc3RlYm9hcmQs
IHR5cGUudXRmOCgpLmRhdGEoKSwgJnN0cmluZyk7CisKKyAgICBTdHJpbmcgcmV0dXJuVmFsdWUo
c3RyaW5nLmRhdGEsIHN0cmluZy5sZW5ndGgpOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X2ZyZWUoJnN0cmluZyk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQorCit2b2lkIFBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQp
Cit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgcGxhaW5UZXh0W10gPSAidGV4dC9wbGFpbjtjaGFy
c2V0PXV0Zi04IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBodG1sVGV4dFtdID0gInRleHQvaHRt
bDtjaGFyc2V0PXV0Zi04IjsKKworICAgIENTdHJpbmcgdGV4dFN0cmluZyA9IGNvbnRlbnQudGV4
dC51dGY4KCk7CisgICAgQ1N0cmluZyBtYXJrdXBTdHJpbmcgPSBjb250ZW50Lm1hcmt1cC51dGY4
KCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsK
KyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICAgICAgeyB7
IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJv
YXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCBwbGFpblRleHQsIHN0cmxlbihw
bGFpblRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNb
MF0uc3RyaW5nLCB0ZXh0U3RyaW5nLmRhdGEoKSwgdGV4dFN0cmluZy5sZW5ndGgoKSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzFdLnR5cGUsIGh0bWxUZXh0
LCBzdHJsZW4oaHRtbFRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6
ZSgmcGFpcnNbMV0uc3RyaW5nLCBtYXJrdXBTdHJpbmcuZGF0YSgpLCBtYXJrdXBTdHJpbmcubGVu
Z3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFp
cnMsIDIgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dyaXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7
CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0udHlwZSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBdLnN0cmluZyk7CisgICAgd3BlX3Bh
c3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzFdLnR5cGUpOworICAgIHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ19mcmVlKCZwYWlyc1sxXS5zdHJpbmcpOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVi
b2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sK
KyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAg
ICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9w
YXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCB0eXBlLnV0ZjgoKS5k
YXRhKCksIHR5cGUudXRmOCgpLmxlbmd0aCgpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdf
aW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCBzdHJpbmcudXRmOCgpLmRhdGEoKSwgc3RyaW5n
LnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAg
bWFwID0geyBwYWlycywgMSB9OworCisgICAgd3BlX3Bhc3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJv
YXJkLCAmbWFwKTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS50
eXBlKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmUwOGViN2RlOGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcApAQCAtMCwwICsxLDc0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorCisjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAyNDsKK30KKworaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdl
dCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gODsKK30KKworYm9vbCBz
Y3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2
NDApOworfQorCitGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDAp
OworfQorCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE5MDc1NzM0ZTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZVdQRS5oIgorCisjaW5jbHVk
ZSAiVXNlckFnZW50U2NyaXB0cy5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFJlbmRlclRoZW1lPiBSZW5k
ZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQoreworICAgIHN0YXRpYyBSZW5kZXJUaGVtZSYg
dGhlbWUgPSBSZW5kZXJUaGVtZVdQRTo6Y3JlYXRlKCkubGVha1JlZigpOworICAgIHJldHVybiB0
aGVtZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZVdQRTo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERl
c2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6ZXh0cmFE
ZWZhdWx0U3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCisjaWYgRU5B
QkxFKFZJREVPKQorU3RyaW5nIFJlbmRlclRoZW1lV1BFOjptZWRpYUNvbnRyb2xzU3R5bGVTaGVl
dCgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbChtZWRpYUNvbnRyb2xzQmFzZVVzZXJBZ2Vu
dFN0eWxlU2hlZXQpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNT
Y3JpcHQoKQoreworICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKKyAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNp
emVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQpKTsKKyAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRp
YUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKKyAgICByZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0
cmluZygpOworfQorI2VuZGlmCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xMjJhMDg5NzgwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBS
ZW5kZXJUaGVtZVdQRV9oCisjZGVmaW5lIFJlbmRlclRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBSZW5kZXJUaGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVt
ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW5kZXJUaGVtZT4gY3JlYXRlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbmRlclRoZW1lV1BFKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIFN0cmluZyBleHRyYURlZmF1bHRTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7Cisj
aWYgRU5BQkxFKFZJREVPKQorICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNo
ZWV0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1NjcmlwdCgp
IG92ZXJyaWRlOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVuZGVyVGhlbWVXUEUoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQs
IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlbmRlclRoZW1lV1BFX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjlmZTVkNGQ4NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVXUEUu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzQnV0dG9ucyhTY3JvbGxiYXImKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU2Nyb2xsYmFy
VGhlbWVXUEU6Omhhc1RodW1iKFNjcm9sbGJhciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6YmFja0J1
dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFy
VGhlbWVXUEU6OmZvcndhcmRCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVjdCgpOworfQor
CitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjp0cmFja1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK1Nj
cm9sbGJhclRoZW1lJiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKQoreworICAgIHN0YXRp
YyBTY3JvbGxiYXJUaGVtZVdQRSB0aGVtZTsKKyAgICByZXR1cm4gdGhlbWU7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dw
ZS9TY3JvbGxiYXJUaGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9s
bGJhclRoZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRk
OGIwMzE2ODYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1Njcm9sbGJhclRoZW1lV1BFLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcm9sbGJhclRoZW1lV1BF
X2gKKyNkZWZpbmUgU2Nyb2xsYmFyVGhlbWVXUEVfaAorCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWVDb21wb3NpdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJU
aGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZSB7CitwdWJsaWM6
CisgICAgU2Nyb2xsYmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U2Nyb2xs
YmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQnV0dG9ucyhT
Y3JvbGxiYXImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVGh1bWIoU2Nyb2xsYmFy
Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIEludFJlY3QgYmFja0J1dHRvblJlY3QoU2Nyb2xs
YmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEludFJlY3QgZm9yd2FyZEJ1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFy
UGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFJl
Y3QgdHJhY2tSZWN0KFNjcm9sbGJhciYsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTY3JvbGxiYXJUaGVt
ZVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTkxNDc3YTQ1OTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdW5kLmgiCisKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgc3lzdGVtQmVlcCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1YWQ5NzczZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcApAQCAtMCwwICsxLDE0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGhlbWVXUEUuaCIKKworI2luY2x1ZGUgIkNvbG9yLmgi
CisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1RoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VGhlbWVXUEU+IHRoZW1lOworICAgIHJldHVybiAmdGhlbWUuZ2V0KCk7Cit9CisKK0xlbmd0
aFNpemUgVGhlbWVXUEU6OmNvbnRyb2xTaXplKENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250Q2FzY2FkZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvcikgY29uc3QKK3sKKyAgICBpZiAoIXpvb21lZFNpemUud2lkdGguaXNJbnRyaW5z
aWNPckF1dG8oKSAmJiAhem9vbWVkU2l6ZS5oZWlnaHQuaXNJbnRyaW5zaWNPckF1dG8oKSkKKyAg
ICAgICAgcmV0dXJuIFRoZW1lOjpjb250cm9sU2l6ZShwYXJ0LCBmb250Q2FzY2FkZSwgem9vbWVk
U2l6ZSwgem9vbUZhY3Rvcik7CisKKyAgICBzd2l0Y2ggKHBhcnQpIHsKKyAgICBjYXNlIENoZWNr
Ym94UGFydDoKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcmV0dXJuIExlbmd0aFNpemUg
eyBMZW5ndGgoMTIsIEZpeGVkKSwgTGVuZ3RoKDEyLCBGaXhlZCkgfTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gVGhlbWU6OmNvbnRyb2xTaXplKHBh
cnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFjdG9yKTsKK30KKwordm9pZCBUaGVt
ZVdQRTo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQg
em9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCkKK3sKKyAgICBzd2l0Y2ggKHBh
cnQpIHsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICAgICAgcGFpbnRDaGVja2JveChzdGF0
ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcGFpbnRSYWRpbyhzdGF0ZXMsIGNvbnRleHQsIHpv
b21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB1c2hCdXR0
b25QYXJ0OgorICAgICAgICBwYWludEJ1dHRvbihzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3Qs
IHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50Q2hlY2tib3goQ29udHJvbFN0YXRl
cyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9v
bWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXplIGNvcm5lcigyLCAyKTsKKyAgICBGbG9hdFJv
dW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJlY3QsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIs
IGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAgIHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRl
ZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQigyMjQsIDIyNCwgMjI0
KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tl
VGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQs
IDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworCisgICAgaWYgKHN0YXRlcy5z
dGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0ZSkgeworICAgICAgICBhdXRvJiBy
ZWN0ID0gcm91bmRlZFJlY3QucmVjdCgpOworCisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7Cisg
ICAgICAgIGNoZWNrZXJQYXRoLm1vdmVUbyhGbG9hdFBvaW50KHJlY3QueCgpICsgMywgcmVjdC5t
YXhZKCkgLSAzKSk7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZExpbmVUbyhGbG9hdFBvaW50KHJl
Y3QubWF4WCgpIC0gMywgcmVjdC55KCkgKyAzKSk7CisKKyAgICAgICAgY29udGV4dC5zZXRTdHJv
a2VUaGlja25lc3MoMik7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig4
NCwgODQsIDg0KSk7CisgICAgICAgIGNvbnRleHQuc3Ryb2tlUGF0aChjaGVja2VyUGF0aCk7Cisg
ICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludFJhZGlvKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZEVsbGlwc2Uoem9vbWVkUmVjdCk7
CisKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihtYWtlUkdCKDIyNCwgMjI0LCAyMjQpKTsKKyAg
ICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25l
c3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsK
KyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisKKyAgICBpZiAoc3RhdGVzLnN0YXRlcygp
ICYgQ29udHJvbFN0YXRlczo6Q2hlY2tlZFN0YXRlKSB7CisgICAgICAgIEZsb2F0UmVjdCBjaGVj
a2VyUmVjdCA9IHpvb21lZFJlY3Q7CisgICAgICAgIGNoZWNrZXJSZWN0LmluZmxhdGUoLTMpOwor
CisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZEVsbGlw
c2UoY2hlY2tlclJlY3QpOworCisgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKG1ha2VSR0Io
ODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKGNoZWNrZXJQYXRoKTsKKyAg
ICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50QnV0dG9uKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3JuZXIoMiwgMik7CisgICAgRmxvYXRSb3VuZGVkUmVj
dCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBjb3JuZXIsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIp
OworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0KTsK
KworICAgIENvbG9yIGZpbGxDb2xvciA9IHN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6
OlByZXNzZWRTdGF0ZSA/IG1ha2VSR0IoMjQ0LCAyNDQsIDI0NCkgOiBtYWtlUkdCKDIyNCwgMjI0
LCAyMjQpOworICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGZpbGxDb2xvcik7CisgICAgY29udGV4
dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDEpOwor
ICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQsIDk0KSk7CisgICAgY29u
dGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kZjA4MWIzYTdhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUaGVtZVdQRV9o
CisjZGVmaW5lIFRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlRoZW1lLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVGhlbWVXUEUgOiBwdWJsaWMgVGhlbWUgeworcHVibGljOgorICAg
IFRoZW1lV1BFKCkgeyB9CisgICAgdmlydHVhbCB+VGhlbWVXUEUoKSB7IH0KKworICAgIHZpcnR1
YWwgTGVuZ3RoU2l6ZSBjb250cm9sU2l6ZShDb250cm9sUGFydCwgY29uc3QgRm9udENhc2NhZGUm
LCBjb25zdCBMZW5ndGhTaXplJiwgZmxvYXQpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVh
bCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxvYXQpIG92
ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZvaWQgcGFpbnRDaGVja2JveChDb250cm9sU3RhdGVz
JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworICAgIHZvaWQg
cGFpbnRSYWRpbyhDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgZmxvYXQpOworICAgIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYsIEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFRoZW1lV1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjYyZGYwY2M2YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2lkZ2V0LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKK3sK
KyAgICBpbml0KHdpZGdldCk7Cit9CisKK1dpZGdldDo6fldpZGdldCgpCit7CisgICAgQVNTRVJU
KCFwYXJlbnQoKSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNl
dEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fZnJhbWUgPSByZWN0Owor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ludFJlY3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZyYW1lOworfQorCit2b2lkIFdpZGdldDo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzaG93KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6aGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZmJlNGFhY2U5OGQuLjhkNDI4YTA2ZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAwIEBACisy
MDE3LTA0LTIxICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAg
ICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHdlYmtpdC1kZXYgdGhyZWFkOgorICAgICAgICBodHRwczovL2xpc3Rz
LndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtpdC1kZXYvMjAxNy1BcHJpbC8wMjg5MjMuaHRtbAor
CisgICAgICAgIEV4aXN0aW5nIGZpbGVzIGNoYW5nZWQgdG8gcHJvcGVybHkgdXNlIFBMQVRGT1JN
KFdQRSkgYnVpbGQgZ3VhcmRzIG9yIG90aGVyCisgICAgICAgIFdQRS1zcGVjaWZpYyBhZGRpdGlv
bnMgKGUuZy4gcGFzdGVib2FyZCBzdXBwb3J0KS4KKyAgICAgICAgSW4tZmlsZSBjaGFuZ2VzIHJl
bW92ZWQgZnJvbSB0aGlzIENoYW5nZUxvZyBlbnRyeSBmb3IgYnJldml0eS4KKworICAgICAgICAq
IFBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9y
bVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5n
LWhlYWRlcnMucGw6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAq
IFNoYXJlZC9BUEkvYy93cGUvV1BFV2ViS2l0Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9B
UEkvYy93cGUvV0tCYXNlV1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
cmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcDoKKyAgICAgICAgKiBTaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5M
b29wLmg6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHA6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oOgorICAg
ICAgICAqIFNoYXJlZC9EcmF3aW5nQXJlYUluZm8uaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50
Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaDoKKyAgICAgICAgKiBT
aGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAg
ICAqIFNoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFy
ZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dwZS9OYXRp
dmVXZWJUb3VjaEV2ZW50V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxF
dmVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJl
YUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5j
cHA6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcDogQWRk
ZWQuCisgICAgICAgICogU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dL
QVBJQ2FzdFdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dw
ZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvQ29t
cG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9D
b21wb3NpdGluZ1J1bkxvb3AuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xp
ZW50SW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGll
bnRJbXBsLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1
cmVDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvU2Ny
b2xsR2VzdHVyZUNvbnRyb2xsZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Lmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWw6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFzdGVib2FyZFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9h
cmRQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQ
cm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL3dw
ZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxv
b3AuaC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcDogQWRk
ZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYktpdDJQcmVmaXguaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5j
cHA6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBv
cHVwTWVudVdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHA6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
Q29tcG9zaXRpbmdSdW5Mb29wLmguCisgICAgICAgICogV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vz
c01haW5XUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4Lmgu
CisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICogd3BlL3dwZS13ZWJraXQucGMuaW46IEFk
ZGVkLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5y
dT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5HX0hFQURFUlNfRElSIGluIFdl
YktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCmluZGV4IDE0MzI5YjkzODkxLi44ZDEw
MWNmNGYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1Nv
Y2tldE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dT
b2NrZXRNb25pdG9yLmNwcApAQCAtNTEsNiArNTEsOSBAQCB2b2lkIEdTb2NrZXRNb25pdG9yOjpz
dGFydChHU29ja2V0KiBzb2NrZXQsIEdJT0NvbmRpdGlvbiBjb25kaXRpb24sIFJ1bkxvb3AmIHJ1
bgogICAgIGdfc291cmNlX3NldF9uYW1lKG1fc291cmNlLmdldCgpLCAiW1dlYktpdF0gU29ja2V0
IG1vbml0b3IiKTsKICAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiAgICAgZ19z
b3VyY2Vfc2V0X2NhbGxiYWNrKG1fc291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3Vy
Y2VGdW5jPihzb2NrZXRTb3VyY2VDYWxsYmFjayksIHRoaXMsIG51bGxwdHIpOworI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkobV9zb3VyY2UuZ2V0KCksIEdfUFJJ
T1JJVFlfSElHSCArIDMwKTsKKyNlbmRpZgogICAgIGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5n
ZXQoKSwgcnVuTG9vcC5tYWluQ29udGV4dCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFr
ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODg0ZjBlNGVlODUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCww
ICsxLDQ3MCBAQAorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XRUJLSVQy
X0RJUn0pCisKK2NvbmZpZ3VyZV9maWxlKHdwZS93cGUtd2Via2l0LnBjLmluICR7Q01BS0VfQklO
QVJZX0RJUn0vd3BlLXdlYmtpdC5wYyBAT05MWSkKKworYWRkX2RlZmluaXRpb25zKC1EV0VCS0lU
Ml9DT01QSUxBVElPTikKKworYWRkX2RlZmluaXRpb25zKC1ETElCRVhFQ0RJUj0iJHtMSUJFWEVD
X0lOU1RBTExfRElSfSIpCisKK3NldChXZWJLaXQyX1VTRV9QUkVGSVhfSEVBREVSIE9OKQorCith
ZGRfY3VzdG9tX3RhcmdldCh3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1B
TkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9y
d2FyZGluZy1oZWFkZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7V0VCS0lUMl9ESVJ9IC0tb3V0cHV0
ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3Vw
CispCisKK3NldChXRUJLSVQyX0VYVFJBX0RFUEVOREVOQ0lFUworICAgIHdlYmtpdDJ3cGUtZm9y
d2FyZGluZy1oZWFkZXJzCispCisKK2xpc3QoQVBQRU5EIFdlYlByb2Nlc3NfU09VUkNFUworICAg
IFdlYlByb2Nlc3MvRW50cnlQb2ludC91bml4L1dlYlByb2Nlc3NNYWluLmNwcAorKQorCitsaXN0
KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTCisgICAgTmV0d29ya1Byb2Nlc3MvRW50cnlQ
b2ludC91bml4L05ldHdvcmtQcm9jZXNzTWFpbi5jcHAKKykKKworbGlzdChBUFBFTkQgRGF0YWJh
c2VQcm9jZXNzX1NPVVJDRVMKKyAgICBEYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0Rh
dGFiYXNlUHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwor
ICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3VwL0xlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlclNvdXAuY3BwCisKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVDb2RlcnNTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURh
dGFTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5l
bFNvdXAuY3BwCisKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAu
Y3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcAor
ICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAorICAgIE5ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNz
L3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcAorCisgICAgUGxhdGZvcm0vY2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5jcHAKKworICAgIFBsYXRm
b3JtL2dsaWIvTW9kdWxlR2xpYi5jcHAKKworICAgIFBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRN
b25pdG9yLmNwcAorCisgICAgUGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCisg
ICAgUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCisKKyAgICBQbGF0Zm9ybS91
bml4L0xvZ2dpbmdVbml4LmNwcAorICAgIFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5j
cHAKKworICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Db250cm9sbGVyUHJveHlVbml4LmNw
cAorICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3BwCisgICAg
UGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NVbml4LmNwcAorCisgICAgU2hhcmVkL0FQ
SS9jL2NhaXJvL1dLSW1hZ2VDYWlyby5jcHAKKworICAgIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9z
b3VwL0F1dGhlbnRpY2F0aW9uTWFuYWdlclNvdXAuY3BwCisKKyAgICBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKyAgICBTaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCisgICAgU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvU2ltcGxlVmlld3BvcnRDb250cm9sbGVyLmNwcAorCisgICAgU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKKyAg
ICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkU2Fm
ZUNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKKworICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gx
MS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5jcHAKKworICAgIFNoYXJlZC9jYWlyby9TaGFyZWFi
bGVCaXRtYXBDYWlyby5jcHAKKworICAgIFNoYXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCisK
KyAgICBTaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcAorCisgICAgU2hhcmVk
L3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKKyAgICBTaGFyZWQvc291cC9XZWJF
cnJvcnNTb3VwLmNwcAorCisgICAgU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKKwor
ICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQv
d3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJU
b3VjaEV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5j
cHAKKyAgICBTaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5jcHAKKyAgICBTaGFy
ZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL2NhaXJv
L1dLSWNvbkRhdGFiYXNlQ2Fpcm8uY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nv
b2tpZU1hbmFnZXJTb3VwLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3Bw
CisKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAKKyAg
ICBVSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1Njcm9s
bEdlc3R1cmVDb250cm9sbGVyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3Bw
CisgICAgVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHAKKworICAgIFVJUHJvY2Vz
cy9CYWNraW5nU3RvcmUuY3BwCisgICAgVUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5j
cHAKKyAgICBVSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nTm9uZS5jcHAKKyAgICBV
SVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3BwCisgICAgVUlQcm9j
ZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKworICAgIFVJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKKworICAgIFVJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRTZXJ2ZXJTb3VwLmNwcAorCisgICAg
VUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCisKKyAgICBVSVBy
b2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCisgICAgVUlQcm9jZXNz
L1BsdWdpbnMvdW5peC9QbHVnaW5Qcm9jZXNzUHJveHlVbml4LmNwcAorCisgICAgVUlQcm9jZXNz
L1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisKKyAgICBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
dW5peC9XZWJzaXRlRGF0YVN0b3JlVW5peC5jcHAKKworICAgIFVJUHJvY2Vzcy9jYWlyby9CYWNr
aW5nU3RvcmVDYWlyby5jcHAKKworICAgIFVJUHJvY2Vzcy9nc3RyZWFtZXIvSW5zdGFsbE1pc3Np
bmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKyAgICBVSVByb2Nlc3MvZ3N0cmVh
bWVyL1dlYlBhZ2VQcm94eUdTdHJlYW1lci5jcHAKKworICAgIFVJUHJvY2Vzcy9saW51eC9NZW1v
cnlQcmVzc3VyZU1vbml0b3IuY3BwCisKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5h
Z2VyUHJveHlTb3VwLmNwcAorICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5j
cHAKKworICAgIFVJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwCisgICAgVUlQcm9jZXNz
L3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQ
cm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAK
KyAgICBVSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2VzV1BFLmNwcAorICAgIFVJUHJvY2Vzcy93
cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCisKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9X
ZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJL
aXRTb3VwQ29va2llSmFyU3FsaXRlLmNwcAorCisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9nbGliL0luamVjdGVkQnVuZGxlR2xpYi5jcHAKKworICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNo
ZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCisKKyAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAKKyAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcAorCisgICAg
V2ViUHJvY2Vzcy9XZWJQYWdlL0FjY2VsZXJhdGVkU3VyZmFjZS5jcHAKKworICAgIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0FyZWFBbGxvY2F0b3IuY3BwCisgICAgV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRv
ci5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCisKKyAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0cmVhbWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3BwCisKKyAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKKyAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJQYWdlV1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5w
dXRTdHJlYW0uY3BwCisgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAorCisg
ICAgV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwCisKKyAgICAjIEZJWE1FLUdX
U0hBUkU6CisgICAgRGF0YWJhc2VQcm9jZXNzL2d0ay9EYXRhYmFzZVByb2Nlc3NNYWluR3RrLmNw
cAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCisgICAgVUlQcm9j
ZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKykKKworbGlz
dChBUFBFTkQgV2ViS2l0Ml9ERVJJVkVEX1NPVVJDRVMKKyAgICAke0RFUklWRURfU09VUkNFU19X
RUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1bmRsZS5jCispCisKK3NldChX
ZWJLaXQyUmVzb3VyY2VzCispCisKK2lmIChFTkFCTEVfV0VCX0FVRElPKQorICAgIGxpc3QoQVBQ
RU5EIFdlYktpdDJSZXNvdXJjZXMKKyAgICAgICAgIiAgICAgICAgPGZpbGUgYWxpYXM9XCJhdWRp
by9Db21wb3NpdGVcIj5Db21wb3NpdGUud2F2PC9maWxlPlxuIgorICAgICkKK2VuZGlmICgpCisK
K2ZpbGUoV1JJVEUgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJj
ZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgIjw/eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVU
Ri04Pz5cbiIKKyAgICAiPGdyZXNvdXJjZXM+XG4iCisgICAgIiAgICA8Z3Jlc291cmNlIHByZWZp
eD1cIi9vcmcvd2Via2l0d3BlL3Jlc291cmNlc1wiPlxuIgorICAgICR7V2ViS2l0MlJlc291cmNl
c30KKyAgICAiICAgIDwvZ3Jlc291cmNlPlxuIgorICAgICI8L2dyZXNvdXJjZXM+XG4iCispCisK
K2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lU
Ml9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYworICAgIERFUEVORFMgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5k
bGUueG1sCisgICAgQ09NTUFORCBnbGliLWNvbXBpbGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1z
b3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMgLS1z
b3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9yZXNvdXJjZXMgLS10YXJnZXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktp
dDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYyAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJ
Un0vV2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBWRVJCQVRJTQorKQor
CitsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtGT1JXQVJE
SU5HX0hFQURFUlNfRElSfSIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfSIKKyAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4IgorICAg
ICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cCIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05l
dHdvcmtQcm9jZXNzL3VuaXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL0lQQy9nbGli
IgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybS9JUEMvdW5peCIKKyAgICAiJHtXRUJLSVQy
X0RJUn0vUGxhdGZvcm0vY2xhc3NpZmllciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQ
SS9jL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mi
CisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3NvdXAiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L1NoYXJlZC91bml4IgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvd3BlIgor
ICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvY2Fpcm8iCisgICAgIiR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0Mvd3BlIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZSIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAi
CisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9saW51eCIKKyAgICAiJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mvc291cCIK
KyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzIgorICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlIgorICAgICIke1dURl9ESVJ9L3d0Zi9ndGsvIgorICAg
ICIke1dURl9ESVJ9L3d0Zi9nb2JqZWN0IgorICAgICIke1dURl9ESVJ9IgorICAgICR7Q0FJUk9f
SU5DTFVERV9ESVJTfQorICAgICR7RUdMX0lOQ0xVREVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9J
TkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0dTVFJFQU1FUl9J
TkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJTT1VQ
X0lOQ0xVREVfRElSU30KKyAgICAke1dQRV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5E
IFdlYktpdDJfTElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQ
RTJfTElCUkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgJHtHU1RSRUFNRVJfTElC
UkFSSUVTfQorICAgICR7SEFSRkJVWlpfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJ
RVN9CisgICAgJHtXUEVfTElCUkFSSUVTfQorKQorCitzZXQoSW5zcGVjdG9yRmlsZXMKKyAgICAk
e0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2Vu
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlLyouaHRtbAorICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS8qLmpzCisgICAg
JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250cm9sbGVycy8qLmNzcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvKi5qcworICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRGVidWcvKi5jc3MKKyAg
ICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0RlYnVnLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvKi5jc3MKKyAgICAke0NNQUtFX1NP
VVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0Nv
ZGVNaXJyb3IvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvRVNMaW50LyouanMKKyAgICAke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VzcHJp
bWEvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL2d0ay8qLnBuZworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL2d0ay8qLnN2ZworICAgICR7
Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3hpZXMvKi5qcworICAgICR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC8qLmpz
CisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy8qLmNzcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0v
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvKi5q
cworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvKi5qcworKQorCitmaWxlKEdMT0IgSW5zcGVjdG9y
RmlsZXNEZXBlbmRlbmNpZXMKKyAgICAke0luc3BlY3RvckZpbGVzfQorKQorCisjIERlcml2ZWRT
b3VyY2VzL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMu
anMgaXMKKyMgZXhwZWN0ZWQgaW4gRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC8uCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9J
bnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VT
X0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5q
cworICAgIENPTU1BTkQgY3AgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9p
bnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzICR7REVSSVZFRF9TT1VSQ0VTX1dF
QklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5k
Q29tbWFuZHMuanMKKykKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklW
RURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54
bWwKKyAgICBERVBFTkRTICR7SW5zcGVjdG9yRmlsZXNEZXBlbmRlbmNpZXN9CisgICAgICAgICAg
ICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCisgICAgICAgICAgICAke1RPT0xTX0RJ
Un0vd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkKKyAgICBDT01N
QU5EICR7VE9PTFNfRElSfS93cGUvZ2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVz
dC5weSAtLW91dHB1dD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3Bl
Y3RvckdSZXNvdXJjZUJ1bmRsZS54bWwgJHtJbnNwZWN0b3JGaWxlc30gJHtERVJJVkVEX1NPVVJD
RVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJh
Y2tlbmRDb21tYW5kcy5qcworICAgIFZFUkJBVElNCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgK
KyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0
b3JHUmVzb3VyY2VCdW5kbGUuYworICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5T
UEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBn
bGliLWNvbXBpbGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VS
Q0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkgLS1zb3VyY2VkaXI9JHtERVJJVkVEX1NPVVJD
RVNfV0VCSU5TUEVDVE9SVUlfRElSfSAtLXRhcmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQ
RUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jICR7REVSSVZFRF9TT1VSQ0VT
X1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZF
UkJBVElNCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NP
VVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxl
LmMKKyAgICBERVBFTkRTICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJ
bnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgICAgICAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2Zyb250LWVuZC9pbnNwZWN0b3JQYWdlSW5kZXguaHRt
bAorICAgIENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNl
ZGlyPSR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvZnJvbnQtZW5kIC0t
dGFyZ2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3Bl
Y3RvckdSZXNvdXJjZUJ1bmRsZS5jICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVSQkFUSU0KKykKKworbGlz
dChBUFBFTkQgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0RFUklWRURfU09VUkNFUworICAgICR7
REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVu
ZGxlLmMKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJ
bnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYworKQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0
b3JSZXNvdXJjZXNfTElCUkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CispCisKK2xp
c3QoQVBQRU5EIFdQRVdlYkluc3BlY3RvclJlc291cmNlc19JTkNMVURFX0RJUkVDVE9SSUVTCisg
ICAgJHtHTElCX0lOQ0xVREVfRElSU30KKykKKworYWRkX2xpYnJhcnkoV1BFV2ViSW5zcGVjdG9y
UmVzb3VyY2VzIFNIQVJFRCAke1dQRVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJD
RVN9KQorYWRkX2RlcGVuZGVuY2llcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgV2ViS2l0MikK
K3RhcmdldF9saW5rX2xpYnJhcmllcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgJHtXUEVXZWJJ
bnNwZWN0b3JSZXNvdXJjZXNfTElCUkFSSUVTfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVz
KFdQRVdlYkluc3BlY3RvclJlc291cmNlcyBQVUJMSUMgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJj
ZXNfSU5DTFVERV9ESVJFQ1RPUklFU30pCitpbnN0YWxsKFRBUkdFVFMgV1BFV2ViSW5zcGVjdG9y
UmVzb3VyY2VzIERFU1RJTkFUSU9OICIke0xJQl9JTlNUQUxMX0RJUn0iKQorCitzZXQoV1BFX0lO
U1RBTExFRF9XRUJLSVRfSEVBREVSUworICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9X
S0FycmF5LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKyAgICAk
e1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tEYXRhLmgKKyAgICAke1dFQktJVDJfRElSfS9T
aGFyZWQvQVBJL2MvV0tEZWNsYXJhdGlvblNwZWNpZmllcnMuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9BUEkvYy9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGljdGlvbmFyeS5oCisgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkv
Yy9XS0V2ZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tGaW5kT3B0aW9u
cy5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLR2VvbWV0cnkuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0ltYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9T
aGFyZWQvQVBJL2MvV0tNdXRhYmxlQXJyYXkuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9B
UEkvYy9XS011dGFibGVEaWN0aW9uYXJ5LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJ
L2MvV0tOdW1iZXIuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VMb2Fk
VHlwZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VWaXNpYmlsaXR5
VHlwZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1NlY3VyaXR5T3JpZ2lu
UmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oCisgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVHlwZS5oCisgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL1dLVVJMLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tV
UkxSZXF1ZXN0LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVUkxSZXNwb25z
ZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcy5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZS5oCisKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dL
QmFzZVdQRS5oCisKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmgKKyAgICAke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFt
ZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUhpdFRlc3RSZXN1bHQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbml0aWFsaXplLmgKKyAgICAke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgKKyAg
ICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
TmF2aWdhdGlvbkFjdGlvbi5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKKyAgICAke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUJhbm5l
ci5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaAorICAg
ICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlRm9ybUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKKyAgICAke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUdyb3VwLmgK
KyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUxvYWRlckNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VPdmVybGF5LmgKKyAgICAke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVBvbGljeUNsaWVu
dC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5n
ZUhhbmRsZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmgKKworICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdFJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50LmgKKyAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0RG93bmxvYWRDbGllbnQuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRIaXN0b3J5Q2xpZW50
LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuaAorICAg
ICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWxUeXBlcy5oCisgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuaAorICAgICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSW5mb1JlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJlc3VsdC5oCisgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvQy9XS05hdmlnYXRpb25BY3Rpb25SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVBy
b2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlQ29udGV4dE1lbnVDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUZpbmRDbGllbnQuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oCisgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUZvcm1DbGllbnQuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgKKyAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTG9hZGVyQ2xpZW50LmgKKyAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVBvbGljeUNsaWVudC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZl
bnRzLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpbkxvYWRQb2xpY3ku
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgK
KyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50Q29udHJvbGxl
clJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLVXNlclNjcmlwdFJl
Zi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1
dGVzLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tXaW5kb3dGZWF0dXJl
c1JlZi5oCisKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5o
CisKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nvb2tpZU1hbmFn
ZXJTb3VwLmgKKykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfV0VCS0lUX0hFQURF
UlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUtJHtX
UEVfQVBJX1ZFUlNJT059L1dQRS9XZWJLaXQiCisgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIK
KykKKworc2V0KFdQRV9JTlNUQUxMRURfSEVBREVSUworICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9BUEkvYy93cGUvV2ViS2l0LmgKKykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURf
SEVBREVSU30KKyAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dw
ZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFIgorICAgIENPTVBPTkVOVCAiRGV2ZWxvcG1lbnQiCisp
CisKK2luc3RhbGwoRklMRVMgJHtDTUFLRV9CSU5BUllfRElSfS93cGUtd2Via2l0LnBjCisgICAg
REVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9L3BrZ2NvbmZpZyIKKyAgICBDT01Q
T05FTlQgIkRldmVsb3BtZW50IgorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0
cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRz
L2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbAppbmRleCBiNjFkYjc4Nzc0YS4uYTdkM2Ew
YjZiOTIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2Fy
ZGluZy1oZWFkZXJzLnBsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9y
d2FyZGluZy1oZWFkZXJzLnBsCkBAIC0zNSw3ICszNSw3IEBAIHVzZSBGaWxlOjpTcGVjOjpGdW5j
dGlvbnM7CiB1c2UgR2V0b3B0OjpMb25nOwogCiBteSAkc3JjUm9vdCA9IHJlYWxwYXRoKEZpbGU6
OlNwZWMtPmNhdGZpbGUoZGlybmFtZShhYnNfcGF0aCgkMCkpLCAiLi4vLi4iKSk7Ci1teSBAcGxh
dGZvcm1QcmVmaXhlcyA9ICgiY2EiLCAiY2YiLCAiY29jb2EiLCAiQ29jb2EiLCAiQ29vcmRpbmF0
ZWRHcmFwaGljcyIsICJjdXJsIiwgImVmbCIsICJndGsiLCAiaW9zIiwgIm1hYyIsICJzb3VwIiwg
IndpbiIpOworbXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29hIiwgIkNv
Y29hIiwgIkNvb3JkaW5hdGVkR3JhcGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwgImlvcyIs
ICJtYWMiLCAic291cCIsICJ3aW4iLCAid3BlIik7CiBteSBAZnJhbWV3b3JrcyA9ICgiSmF2YVNj
cmlwdENvcmUiLCAiV2ViQ29yZSIsICJXZWJLaXQiKTsKIG15IEBza2lwcGVkUHJlZml4ZXM7CiBt
eSBAZnJhbWV3b3JrSGVhZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRl
eCAyZThmYmZiYmU1Yy4uMzNhMDY5ODhlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKQEAgLTM4LDYgKzM4LDEwIEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZU1hYy5oPgog
I2VuZGlmCiAKKyNpZiBkZWZpbmVkKEJVSUxESU5HX1dQRV9fKQorI2luY2x1ZGUgPFdlYktpdC9X
S0Jhc2VXUEUuaD4KKyNlbmRpZgorCiAvKiBXZWJLaXQyIHNoYXJlZCB0eXBlcyAqLwogCiB0eXBl
ZGVmIHVpbnQzMl90IFdLVHlwZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL3dwZS9XS0Jhc2VXUEUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUv
V0tCYXNlV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI1ZWYw
NjIyMDJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dw
ZS9XS0Jhc2VXUEUuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tCYXNlV1BFX2gKKyNkZWZpbmUgV0tC
YXNlV1BFX2gKKworI2lmbmRlZiBXS0Jhc2VfaAorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgXCJX
S0Jhc2UuaFwiIGluc3RlYWQgb2YgdGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCit0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpZXcqIFdLVmlld1JlZjsKKworI2VuZGlmIC8qIFdL
QmFzZVdQRV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3Bl
L1dQRVdlYktpdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XUEVXZWJLaXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWE4NDExN2Y0NWMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dQRVdlYktp
dC5oCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV1BFX1dlYktpdF9oCisjZGVmaW5lIFdQRV9XZWJLaXRf
aAorCisjZGVmaW5lIEJVSUxESU5HX1dQRV9fCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLVHlwZS5oPgorCisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy8KKyNpbmNsdWRlIDxXZWJLaXQvV0tBcnJheS5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGljdGlvbmFy
eS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9yUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
R2VvbWV0cnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tNdXRhYmxlRGljdGlvbmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS051bWJl
ci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luUmVmLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVHlwZS5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS1VSTC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlcXVlc3QuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tVUkxSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZS5oPgorCisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxl
QmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUZpbGVIYW5k
bGVSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVGcmFtZS5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVJ
bml0aWFsaXplLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSW5zcGVjdG9yLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZU5vZGVIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUJhbm5lci5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlRm9y
bUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2VPdmVybGF5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVBvbGljeUNsaWVu
dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlVUlDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVSYW5nZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVNjcmlw
dFdvcmxkLmg+CisKKy8vIEZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DCisjaW5j
bHVkZSA8V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0SXRlbVJlZi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0JhY2tGb3J3YXJkTGlzdFJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dC5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS0NyZWRlbnRpYWwuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tDcmVkZW50aWFsVHlw
ZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFtZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Zy
YW1lSW5mb1JlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tIaXRUZXN0UmVzdWx0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
TmF2aWdhdGlvbkFjdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05hdmlnYXRpb25EYXRh
UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS05hdmlnYXRpb25SZXNwb25zZVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VD
b25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVm
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLU2Vzc2lvblN0YXRlUmVmLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNl
clNjcmlwdFJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXcuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tXaW5kb3dGZWF0
dXJlc1JlZi5oPgorCisjZW5kaWYgLy8gV1BFX1dlYktpdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29t
cG9zaXRpbmdSdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCmluZGV4IDhh
Y2Y1MDY5MjEwLi4yMjQzODhlZWM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9v
cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhy
ZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBXb3JrUXVldWVQb29sKCkKICAgICB7Ci0jaWYgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBtX3Ro
cmVhZENvdW50TGltaXQgPSAxOwogI2Vsc2UKICAgICAgICAgbV90aHJlYWRDb3VudExpbWl0ID0g
c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0Nv
bXBvc2l0aW5nUnVuTG9vcC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCmluZGV4IDgxNmQ0
NjdiNTEwLi42NDVkN2I5MGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQogCisjaW5jbHVkZSA8ZnVuY3Rpb25h
bD4KICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4K
ICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAppbmRleCA1NGQ5NjBiM2Qw
ZS4uOTZkMjk2NmJkZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCkBAIC00MywxMiArNDMsMTIgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZWY8VGhyZWFkZWRD
b21wb3NpdG9yPiBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgY29u
c3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0
aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVN
YXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKK1JlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRo
cmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdl
LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRf
dCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4
dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZsYWdzKQogewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFRocmVhZGVkQ29tcG9zaXRvcihjbGllbnQsIHZpZXdwb3J0U2l6ZSwgc2NhbGVGYWN0
b3IsIG5hdGl2ZVN1cmZhY2VIYW5kbGUsIGRvRnJhbWVTeW5jLCBwYWludEZsYWdzKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkZWRDb21wb3NpdG9yKGNsaWVudCwgd2ViUGFnZSwg
dmlld3BvcnRTaXplLCBzY2FsZUZhY3RvciwgbmF0aXZlU3VyZmFjZUhhbmRsZSwgZG9GcmFtZVN5
bmMsIHBhaW50RmxhZ3MpKTsKIH0KIAotVGhyZWFkZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBv
c2l0b3IoQ2xpZW50JiBjbGllbnQsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQg
c2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVT
eW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCitU
aHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmIGNsaWVudCwgV2Vi
UGFnZSYgd2ViUGFnZSwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZh
Y3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9G
cmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKICAgICA6IG1f
Y2xpZW50KGNsaWVudCkKICAgICAsIG1fdmlld3BvcnRTaXplKHZpZXdwb3J0U2l6ZSkKICAgICAs
IG1fc2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpCkBAIC02NCwxMyArNjQsMjEgQEAgVGhyZWFkZWRD
b21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBjbGllbnQsIGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2kKICAgICBtX2NsaWVudFJlbmRlcnNOZXh0RnJhbWUuc3RvcmUoZmFsc2Up
OwogICAgIG1fY29vcmRpbmF0ZVVwZGF0ZUNvbXBsZXRpb25XaXRoQ2xpZW50LnN0b3JlKGZhbHNl
KTsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBtX2NvbXBvc2l0aW5nTWFuYWdlci5lc3RhYmxp
c2hDb25uZWN0aW9uKHdlYlBhZ2UpOworI2VuZGlmCisKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9v
cC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
IHsKICAgICAgICAgbV9zY2VuZSA9IGFkb3B0UmVmKG5ldyBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUodGhpcykpOworI2lmIFBMQVRGT1JNKEdUSykKICAgICAgICAgaWYgKG1fbmF0aXZlU3VyZmFj
ZUhhbmRsZSkgewogICAgICAgICAgICAgY3JlYXRlR0xDb250ZXh0KCk7CiAgICAgICAgICAgICBt
X3NjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9z
Y2VuZS0+c2V0QWN0aXZlKGZhbHNlKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgbV9z
Y2VuZS0+c2V0QWN0aXZlKHRydWUpOworI2VuZGlmCiAgICAgfSk7CiB9CiAKQEAgLTgxLDYgKzg5
LDggQEAgVGhyZWFkZWRDb21wb3NpdG9yOjp+VGhyZWFkZWRDb21wb3NpdG9yKCkKIHZvaWQgVGhy
ZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVHTENvbnRleHQoKQogewogICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOworCisjaWYgUExBVEZPUk0oR1RLKQogICAgIEFTU0VSVChtX25hdGl2ZVN1cmZh
Y2VIYW5kbGUpOwogCiAgICAgbV9jb250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9y
V2luZG93KHJlaW50ZXJwcmV0X2Nhc3Q8R0xOYXRpdmVXaW5kb3dUeXBlPihtX25hdGl2ZVN1cmZh
Y2VIYW5kbGUpLCAmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmco
KSk7CkBAIC05MSw2ICsxMDEsMjIgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdM
Q29udGV4dCgpCiAgICAgICAgIGlmIChtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQog
ICAgICAgICAgICAgbV9jb250ZXh0LT5zd2FwSW50ZXJ2YWwoMCk7CiAgICAgfQorI2VuZGlmCisK
KyNpZiBQTEFURk9STShXUEUpCisgICAgYXV0byYgcGxhdGZvcm1EaXNwbGF5ID0gUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7CisgICAgUkVMRUFTRV9BU1NFUlQoaXM8UGxhdGZvcm1E
aXNwbGF5V1BFPihwbGF0Zm9ybURpc3BsYXkpKTsKKyAgICBtX3RhcmdldCA9IGRvd25jYXN0PFBs
YXRmb3JtRGlzcGxheVdQRT4ocGxhdGZvcm1EaXNwbGF5KS5jcmVhdGVFR0xUYXJnZXQoKnRoaXMs
IG1fY29tcG9zaXRpbmdNYW5hZ2VyLnJlbGVhc2VDb25uZWN0aW9uRmQoKSk7CisgICAgQVNTRVJU
KG1fdGFyZ2V0KTsKKyAgICBtX3RhcmdldC0+aW5pdGlhbGl6ZShtX3ZpZXdwb3J0U2l6ZSk7CisK
KyAgICBtX2NvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3cobV90YXJn
ZXQtPm5hdGl2ZVdpbmRvdygpLCAmcGxhdGZvcm1EaXNwbGF5KTsKKyAgICBpZiAoIW1fY29udGV4
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3Vy
cmVudCgpKQorICAgICAgICByZXR1cm47CisjZW5kaWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBv
c2l0b3I6OmludmFsaWRhdGUoKQpAQCAtMTAwLDE2ICsxMjYsMjMgQEAgdm9pZCBUaHJlYWRlZENv
bXBvc2l0b3I6OmludmFsaWRhdGUoKQogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3Jt
VGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAg
ICBtX3NjZW5lLT5wdXJnZUdMUmVzb3VyY2VzKCk7CiAgICAgICAgIG1fY29udGV4dCA9IG51bGxw
dHI7CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICBtX3RhcmdldCA9IG51bGxwdHI7CisjZW5k
aWYKICAgICAgICAgbV9zY2VuZSA9IG51bGxwdHI7CiAgICAgfSk7CiAjaWYgVVNFKFJFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKICAgICBtX2Rpc3BsYXlSZWZyZXNoTW9u
aXRvci0+aW52YWxpZGF0ZSgpOwogI2VuZGlmCiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AgPSBu
dWxscHRyOworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1Ip
CisgICAgbV9kaXNwbGF5UmVmcmVzaE1vbml0b3ItPmludmFsaWRhdGUoKTsKKyNlbmRpZgogfQog
CiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBv
c2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKIHsKKyNpZiBQTEFURk9STShHVEspCiAgICAgbV9jb21w
b3NpdGluZ1J1bkxvb3AtPnN0b3BVcGRhdGVzKCk7CiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3At
PnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBo
YW5kbGVdIHsKICAgICAgICAgLy8gQSBuZXcgbmF0aXZlIGhhbmRsZSBjYW4ndCBiZSBzZXQgd2l0
aG91dCBkZXN0cm95aW5nIHRoZSBwcmV2aW91cyBvbmUgZmlyc3QgaWYgYW55LgpAQCAtMTIzLDYg
KzE1Niw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogICAgICAgICAgICAgbV9jb250ZXh0ID0g
bnVsbHB0cjsKICAgICAgICAgfQogICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRD
b21wb3NpdG9yOjpzZXRTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSkKQEAgLTE0Niw2ICsxODAsMTAg
QEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldFZpZXdwb3J0U2l6ZShjb25zdCBJbnRTaXpl
JiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWwKIHsKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+
cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHZp
ZXdwb3J0U2l6ZSwgc2NhbGVdIHsKICAgICAgICAgbV92aWV3cG9ydFNpemUgPSB2aWV3cG9ydFNp
emU7CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICBpZiAobV90YXJnZXQpCisgICAgICAgICAg
ICBtX3RhcmdldC0+cmVzaXplKHZpZXdwb3J0U2l6ZSk7CisjZW5kaWYKICAgICAgICAgbV9zY2Fs
ZUZhY3RvciA9IHNjYWxlOwogICAgICAgICBtX25lZWRzUmVzaXplID0gdHJ1ZTsKICAgICAgICAg
bV9jb21wb3NpdGluZ1J1bkxvb3AtPnNjaGVkdWxlVXBkYXRlKCk7CkBAIC0xODksOSArMjI3LDE4
IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJMYXllclRyZWUoKQogICAgIGlmICgh
bV9zY2VuZSB8fCAhbV9zY2VuZS0+aXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYg
UExBVEZPUk0oV1BFKQorICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICBjcmVhdGVHTENvbnRl
eHQoKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX2NvbnRleHQgfHwgIW1fY29udGV4dC0+bWFrZUNv
bnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAg
ICBtX3RhcmdldC0+ZnJhbWVXaWxsUmVuZGVyKCk7CisjZW5kaWYKKwogICAgIGlmIChtX25lZWRz
UmVzaXplKSB7CiAgICAgICAgIGdsVmlld3BvcnQoMCwgMCwgbV92aWV3cG9ydFNpemUud2lkdGgo
KSwgbV92aWV3cG9ydFNpemUuaGVpZ2h0KCkpOwogICAgICAgICBtX25lZWRzUmVzaXplID0gZmFs
c2U7CkBAIC0yMTEsNyArMjU4LDEzIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJM
YXllclRyZWUoKQogCiAgICAgbV9jb250ZXh0LT5zd2FwQnVmZmVycygpOwogCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIG1fdGFyZ2V0LT5mcmFtZVJlbmRlcmVkKCk7CisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKEdUSykKICAgICBzY2VuZVVwZGF0ZUZpbmlzaGVkKCk7CisjZW5kaWYKIH0KIAogdm9p
ZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNjZW5lVXBkYXRlRmluaXNoZWQoKQpAQCAtMjcwLDUgKzMy
MywzMiBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6Y29vcmRpbmF0ZVVwZGF0ZUNvbXBsZXRp
b25XaXRoQ2xpZW50KCkKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RhdGljIHZv
aWQgZGVidWdUaHJlYWRlZENvbXBvc2l0b3JGUFMoKQoreworICAgIHN0YXRpYyBkb3VibGUgbGFz
dFRpbWUgPSBjdXJyZW50VGltZSgpOworICAgIHN0YXRpYyB1bnNpZ25lZCBmcmFtZUNvdW50ID0g
MDsKKworICAgIGRvdWJsZSBjdCA9IGN1cnJlbnRUaW1lKCk7CisgICAgZnJhbWVDb3VudCsrOwor
CisgICAgaWYgKGN0IC0gbGFzdFRpbWUgPj0gNS4wKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiVGhyZWFkZWRDb21wb3NpdG9yOiBmcmFtZSBjYWxsYmFja3MgJS4yZiBGUFNcbiIsIGZyYW1l
Q291bnQgLyAoY3QgLSBsYXN0VGltZSkpOworICAgICAgICBsYXN0VGltZSA9IGN0OworICAgICAg
ICBmcmFtZUNvdW50ID0gMDsKKyAgICB9Cit9CisKK3ZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpm
cmFtZUNvbXBsZXRlKCkKK3sKKyAgICBBU1NFUlQobV9jb21wb3NpdGluZ1J1bkxvb3AtPmlzQ3Vy
cmVudCgpKTsKKyAgICBzdGF0aWMgYm9vbCByZXBvcnRGUFMgPSAhIXN0ZDo6Z2V0ZW52KCJXUEVf
VEhSRUFERURfQ09NUE9TSVRPUl9GUFMiKTsKKyAgICBpZiAocmVwb3J0RlBTKQorICAgICAgICBk
ZWJ1Z1RocmVhZGVkQ29tcG9zaXRvckZQUygpOworCisgICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgp
OworfQorI2VuZGlmCisKIH0KICNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhS
RUFERUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmgKaW5kZXggNjc5NTRhMDdhNDYuLmViMTI0NTk3NTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5o
CkBAIC00Miw2ICs0MiwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25p
dG9yLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJDb21wb3NpdGlu
Z01hbmFnZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzU3Rh
dGU7CiB9CkBAIC01MSw4ICs1NiwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZTsKIGNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVu
dDsKIGNsYXNzIFRocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yOworY2xhc3MgV2ViUGFnZTsK
IAotY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9yIDogcHVibGljIENvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZGVkQ29tcG9zaXRv
cj4geworY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9yIDogcHVibGljIENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZGVkQ29tcG9z
aXRvcj4KKyNpZiBQTEFURk9STShXUEUpCisgICAgLCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudAorI2VuZGlmCisgICAgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFRocmVhZGVkQ29tcG9zaXRvcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CkBAIC02NCw3ICs3NCw3IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xh
c3MgU2hvdWxkRG9GcmFtZVN5bmMgeyBObywgWWVzIH07CiAKLSAgICBzdGF0aWMgUmVmPFRocmVh
ZGVkQ29tcG9zaXRvcj4gY3JlYXRlKENsaWVudCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBm
bG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSA9IDAsIFNob3Vs
ZERvRnJhbWVTeW5jID0gU2hvdWxkRG9GcmFtZVN5bmM6OlllcywgV2ViQ29yZTo6VGV4dHVyZU1h
cHBlcjo6UGFpbnRGbGFncyA9IDApOworICAgIHN0YXRpYyBSZWY8VGhyZWFkZWRDb21wb3NpdG9y
PiBjcmVhdGUoQ2xpZW50JiwgV2ViUGFnZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9h
dCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSA9IDAsIFNob3VsZERv
RnJhbWVTeW5jID0gU2hvdWxkRG9GcmFtZVN5bmM6OlllcywgV2ViQ29yZTo6VGV4dHVyZU1hcHBl
cjo6UGFpbnRGbGFncyA9IDApOwogICAgIHZpcnR1YWwgflRocmVhZGVkQ29tcG9zaXRvcigpOwog
CiAgICAgdm9pZCBzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3Qp
OwpAQCAtODcsMTMgKzk3LDE4IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIFRo
cmVhZGVkQ29tcG9zaXRvcihDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQg
c2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVT
eW5jLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzKTsKKyAgICBUaHJlYWRlZENv
bXBvc2l0b3IoQ2xpZW50JiwgV2ViUGFnZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9h
dCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFt
ZVN5bmMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MpOwogCiAgICAgLy8gQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50CiAgICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKSBv
dmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZVZpZXdwb3J0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
b21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgb2Zmc2V0KSBvdmVycmlkZTsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAvLyBXZWJDb3Jl
OjpQbGF0Zm9ybURpc3BsYXlXUEU6OlN1cmZhY2U6OkNsaWVudAorICAgIHZvaWQgZnJhbWVDb21w
bGV0ZSgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICB2b2lkIHJlbmRlckxheWVyVHJlZSgpOwog
ICAgIHZvaWQgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOwogCkBAIC0xMDEsNiArMTE2LDEyIEBAIHBy
aXZhdGU6CiAKICAgICBDbGllbnQmIG1fY2xpZW50OwogICAgIFJlZlB0cjxDb29yZGluYXRlZEdy
YXBoaWNzU2NlbmU+IG1fc2NlbmU7CisKKyNpZiBQTEFURk9STShXUEUpCisgICAgQ29tcG9zaXRp
bmdNYW5hZ2VyIG1fY29tcG9zaXRpbmdNYW5hZ2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gbV90YXJnZXQ7CisjZW5kaWYKKwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHTENvbnRleHQ+IG1fY29udGV4dDsKIAogICAg
IFdlYkNvcmU6OkludFNpemUgbV92aWV3cG9ydFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmgKaW5kZXggN2ZjNGQ3YzRiM2YuLmE0MzVlMTliYjdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCkBAIC0zNCw2ICszNCw4IEBAIGVudW0gRHJh
d2luZ0FyZWFUeXBlIHsKICAgICBEcmF3aW5nQXJlYVR5cGVUaWxlZENvcmVBbmltYXRpb24sCiAj
ZW5kaWYKICAgICBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWUsCisjZWxpZiBQTEFURk9S
TShXUEUpCisgICAgRHJhd2luZ0FyZWFUeXBlV1BFCiAjZWxzZQogICAgIERyYXdpbmdBcmVhVHlw
ZUltcGwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50LmgKaW5kZXggY2IxZjExOGM4OTIuLjE0ZmRkZTIyNGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKQEAgLTUxLDYgKzUxLDEwIEBA
IHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogT0JKQ19DTEFTUyBXZWJFdmVudDsK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9l
dmVudDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudCA6IHB1YmxpYyBXZWJLZXlib2FyZEV2ZW50IHsKQEAgLTYyLDYgKzY2LDggQEAg
cHVibGljOgogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoR2RrRXZlbnQqLCBjb25zdCBXZWJD
b3JlOjpDb21wb3NpdGlvblJlc3VsdHMmLCBJbnB1dE1ldGhvZEZpbHRlcjo6RXZlbnRGYWtlZEZv
ckNvbXBvc2l0aW9uLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzKTsKICNlbGlmIFBMQVRGT1JN
KElPUykKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKik7CisjZWxpZiBQ
TEFURk9STShXUEUpCisgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2tleWJvYXJkX2V2ZW50Kik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCkBAIC03Miw2ICs3
OCw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzRmFrZUV2ZW50Rm9yQ29tcG9zaXRpb24oKSBjb25z
dCB7IHJldHVybiBtX2Zha2VFdmVudEZvckNvbXBvc2l0aW9uOyB9CiAjZWxpZiBQTEFURk9STShJ
T1MpCiAgICAgOjpXZWJFdmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2
ZUV2ZW50LmdldCgpOyB9CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0
aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCmluZGV4IDg4Y2Qx
NDEwOTM4Li4yODNmYzMzNDk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05h
dGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2Vi
TW91c2VFdmVudC5oCkBAIC0zOCw2ICszOCwxMCBAQCBPQkpDX0NMQVNTIE5TVmlldzsKIHR5cGVk
ZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUp
CitzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQgOiBwdWJsaWMgV2ViTW91c2VFdmVu
dCB7CkBAIC00Nyw2ICs1MSw4IEBAIHB1YmxpYzoKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBO
YXRpdmVXZWJNb3VzZUV2ZW50KGNvbnN0IE5hdGl2ZVdlYk1vdXNlRXZlbnQmKTsKICAgICBOYXRp
dmVXZWJNb3VzZUV2ZW50KEdka0V2ZW50KiwgaW50KTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAg
ICBOYXRpdmVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCosIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTU1
LDYgKzYxLDggQEAgcHVibGljOgogICAgIGNvbnN0IEdka0V2ZW50KiBuYXRpdmVFdmVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KICNlbGlmIFBMQVRGT1JNKElPUykK
ICAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyNlbGlm
IFBMQVRGT1JNKFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0
dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKaW5kZXggMTE4MTI0Y2RlYmMuLjgyZjNiMjRkNDIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKQEAgLTM0LDYg
KzM0LDggQEAKIHN0cnVjdCBfVUlXZWJUb3VjaEV2ZW50OwogI2VsaWYgUExBVEZPUk0oR1RLKQog
I2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgorI2VsaWYgUExBVEZPUk0oV1BFKQor
I2luY2x1ZGUgPHdwZS9pbnB1dC5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NDYsNiArNDgsOSBAQCBwdWJsaWM6CiAgICAgTmF0aXZlV2ViVG91Y2hFdmVudChHZGtFdmVudCos
IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYpOwogICAgIE5hdGl2ZVdlYlRvdWNoRXZl
bnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYpOwogICAgIGNvbnN0IEdka0V2ZW50KiBuYXRp
dmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KKyNlbGlmIFBM
QVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91
Y2hfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgY29uc3Qgc3RydWN0IHdw
ZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIG5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpIGNvbnN0
IHsgcmV0dXJuICZtX2ZhbGxiYWNrVG91Y2hQb2ludDsgfQogI2VuZGlmCiAKIHByaXZhdGU6CkBA
IC01NSw2ICs2MCw4IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShHVEspCiAgICAgR1VuaXF1
ZVB0cjxHZGtFdmVudD4gbV9uYXRpdmVFdmVudDsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBz
dHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyBtX2ZhbGxiYWNrVG91Y2hQb2ludDsKICNl
bmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldo
ZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgK
aW5kZXggNWRiMGJjZThmZWIuLjE1Zjk1ODY3MTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKQEAgLTM4LDYgKzM4LDEwIEBAIE9CSkNfQ0xBU1MgTlNW
aWV3OwogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudDsKKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudCA6IHB1YmxpYyBXZWJX
aGVlbEV2ZW50IHsKQEAgLTQ3LDYgKzUxLDggQEAgcHVibGljOgogI2VsaWYgUExBVEZPUk0oR1RL
KQogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpOwog
ICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZlbnQqKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkK
KyAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCosIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTU1
LDYgKzYxLDggQEAgcHVibGljOgogICAgIEdka0V2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KICNlbGlmIFBMQVRGT1JNKElPUykKICAgICBj
b25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyNlbGlmIFBMQVRG
T1JNKFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG51
bGxwdHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA1OGFhZWMzMWZlMy4uOWVmY2VmMjhlZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CkBAIC04MywxMSArODMsMTQgQEAKICNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSA8V2ViQ29y
ZS9GbG9hdFF1YWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3Rvck92ZXJsYXkuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlbGVjdGlv
blJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKIAorI2lmIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oV1BFKQorI2luY2x1
ZGUgPFdlYkNvcmUvUGFzdGVib2FyZC5oPgorI2VuZGlmCisKICNpZiBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKQogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQuaD4KICNlbmRpZgpAQCAtMTQ3NCw2ICsxNDc3LDIzIEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxQYXN0ZWJvYXJkSW1hZ2U+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGFzdGVib2FyZElt
YWdlJiBwCiAKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQordm9pZCBBcmd1bWVudENvZGVy
PFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBh
c3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIGVuY29kZXIgPDwgY29udGVudC50
ZXh0OworICAgIGVuY29kZXIgPDwgY29udGVudC5tYXJrdXA7Cit9CisKK2Jvb2wgQXJndW1lbnRD
b2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0
ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNv
bnRlbnQudGV4dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGNvbnRlbnQubWFya3VwKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0
cnVlOworfQorI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKKwogdm9pZCBBcmd1bWVudENvZGVyPERp
Y3RhdGlvbkFsdGVybmF0aXZlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERpY3Rh
dGlvbkFsdGVybmF0aXZlJiBkaWN0YXRpb25BbHRlcm5hdGl2ZSkKIHsKICAgICBlbmNvZGVyIDw8
IGRpY3RhdGlvbkFsdGVybmF0aXZlLnJhbmdlU3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggNGE2MzY5YmEyOWYuLjQ5OTdhNjRhZGQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBA
IC0xMzEsNiArMTMxLDEyIEBAIHN0cnVjdCBTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3M7CiB9CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBQ
YXN0ZWJvYXJkV2ViQ29udGVudHM7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDT05URU5UX0ZJ
TFRFUklORykKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlcjsKQEAgLTQwOCw2ICs0MTQsMTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3M+IHsKIH07CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQ+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOworfTsK
KyNlbmRpZgorCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbXBv
c2l0aW9uVW5kZXJsaW5lPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmUmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IDc1MDZm
YWQ5ZDNhLi4wYjI4YzE1N2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC0zNzYsNyArMzc2LDcgQEAKICAgICBtYWNybyhQ
aWN0b2dyYXBoRm9udEZhbWlseSwgcGljdG9ncmFwaEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5n
LCAiQXBwbGUgQ29sb3IgRW1vamkiLCAiIiwgIiIpIFwKICAgICBcCiAKLSNlbGlmIFBMQVRGT1JN
KEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogCiAjZGVmaW5lIEZP
Ul9FQUNIX1dFQktJVF9GT05UX0ZBTUlMWV9QUkVGRVJFTkNFKG1hY3JvKSBcCiAgICAgbWFjcm8o
U3RhbmRhcmRGb250RmFtaWx5LCBzdGFuZGFyZEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAi
VGltZXMiLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUv
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3Bl
L05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi44NjgzYjgxMmYzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSwz
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgor
CisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitO
YXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVf
aW5wdXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQorICAgIDogV2ViS2V5Ym9hcmRFdmVudChXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQpKQoreworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUv
TmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5iNGQ5ZDQzZGU1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorCisjaW5jbHVkZSAi
V2ViRXZlbnRGYWN0b3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJNb3Vz
ZUV2ZW50OjpOYXRpdmVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQorICAgIDogV2ViTW91c2VFdmVudChX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIGRldmljZVNjYWxlRmFj
dG9yKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzE0MTUxNTVjZGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3BwCkBA
IC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYlRvdWNoRXZl
bnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworTmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCisgICAg
OiBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChldmVu
dCwgZGV2aWNlU2NhbGVGYWN0b3IpKQorICAgICwgbV9mYWxsYmFja1RvdWNoUG9pbnR7IHdwZV9p
bnB1dF90b3VjaF9ldmVudF90eXBlX251bGwsIDAsIDAsIDAsIDAgfQoreworICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBldmVudC0+dG91Y2hwb2ludHNfbGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgYXV0byYgcG9pbnQgPSBldmVudC0+dG91Y2hwb2ludHNbaV07CisgICAgICAgIGlmIChwb2lu
dC50eXBlICE9IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpIHsKKyAgICAgICAgICAg
IG1fZmFsbGJhY2tUb3VjaFBvaW50ID0gcG9pbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmE5NjJlZDRkY2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3Bw
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVs
RXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgorCisjaW5jbHVkZSA8Y3N0
ZGlvPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZl
V2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYldoZWVsRXZlbnQoV2ViRXZlbnRGYWN0b3J5Ojpj
cmVhdGVXZWJXaGVlbEV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3RvcikpCit7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dw
ZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dw
ZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kODdhOTI3YWJiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcApAQCAtMCwwICsxLDg3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIgorCisjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dMaWJVdGlsaXRpZXMuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdGF0aWMgU3RyaW5nIGdldEV4ZWN1dGFibGVQYXRoKCkKK3sKKyAg
ICBDU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7Cisg
ICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGRpcmVjdG9y
eU5hbWUoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aC5k
YXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK3N0YXRpYyBTdHJpbmcgZmluZFdl
YktpdFByb2Nlc3MoY29uc3QgY2hhciogcHJvY2Vzc05hbWUpCit7CisgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGV4ZWNEaXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX0VYRUNfUEFUSCIpOworICAg
IGlmIChleGVjRGlyZWN0b3J5KSB7CisgICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4
ZWNEaXJlY3RvcnkpLCBwcm9jZXNzTmFtZSk7CisgICAgICAgIGlmIChmaWxlRXhpc3RzKHByb2Nl
c3NQYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNzUGF0aDsKKyAgICB9CisKKyAgICBz
dGF0aWMgU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0RXhlY3V0YWJsZVBhdGgoKTsKKyAgICBp
ZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVsbCgpKSB7CisgICAgICAgIFN0cmluZyBwcm9jZXNzUGF0
aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChleGVjdXRhYmxlUGF0aCwgcHJvY2Vzc05hbWUp
OworICAgICAgICBpZiAoZmlsZUV4aXN0cyhwcm9jZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1
cm4gcHJvY2Vzc1BhdGg7CisgICAgfQorCisgICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKExJQkVYRUNESVIpLCBwcm9j
ZXNzTmFtZSk7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpCit7Cisg
ICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVXZWJQcm9jZXNzIik7Cit9CisKK1N0cmlu
ZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJL
aXRQcm9jZXNzKCJXUEVQbHVnaW5Qcm9jZXNzIik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0
aE9mTmV0d29ya1Byb2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BF
TmV0d29ya1Byb2Nlc3MiKTsKK30KKworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorU3Ry
aW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3MoKQoreworICAgIHJldHVybiBmaW5k
V2ViS2l0UHJvY2VzcygiV1BFRGF0YWJhc2VQcm9jZXNzIik7Cit9CisjZW5kaWYKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dl
YkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFj
dG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc4ODdhOWY4
YWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVu
dEZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsMjE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJFdmVudEZhY3RvcnkuaCIKKworI2luY2x1ZGUgPHdwZS9pbnB1dC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU2Nyb2xsYmFyLmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgV2ViRXZlbnQ6
Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2
ZW50KiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgIHVuc2lnbmVk
IGV2ZW50TW9kaWZpZXJzID0gZXZlbnQtPm1vZGlmaWVyczsKKworICAgIGlmIChldmVudE1vZGlm
aWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9jb250cm9sKQorICAgICAgICBtb2Rp
ZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRyb2xLZXk7CisgICAgaWYgKGV2ZW50TW9kaWZpZXJzICYg
d3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX3NoaWZ0KQorICAgICAgICBtb2RpZmllcnMgfD0g
V2ViRXZlbnQ6OlNoaWZ0S2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9r
ZXlib2FyZF9tb2RpZmllcl9hbHQpCisgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6QWx0
S2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmll
cl9tZXRhKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6Ok1ldGFLZXk7CisKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKTsKK30KKwor
c3RhdGljIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBzaW5nbGVD
aGFyYWN0ZXIgPSB3cGVfaW5wdXRfc2luZ2xlX2NoYXJhY3Rlcl9mb3Jfa2V5X2V2ZW50KHdwZV9p
bnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwgZXZlbnQpOworICAgIGlmIChzaW5nbGVD
aGFyYWN0ZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoc2luZ2xlQ2hhcmFjdGVyKTsKKworICAg
IGdsb25nIGxlbmd0aDsKKyAgICBHVW5pcXVlUHRyPGd1bmljaGFyMj4gdWNoYXIxNihnX3VjczRf
dG9fdXRmMTYoJmV2ZW50LT51bmljb2RlLCAxLCAwLCAmbGVuZ3RoLCBudWxscHRyKSk7CisgICAg
aWYgKHVjaGFyMTYpCisgICAgICAgIHJldHVybiBTdHJpbmcodWNoYXIxNi5nZXQoKSk7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMgU3RyaW5nIGlkZW50aWZpZXJTdHJpbmdGb3JL
ZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBj
b25zdCBjaGFyKiBpZGVudGlmaWVyID0gd3BlX2lucHV0X2lkZW50aWZpZXJfZm9yX2tleV9ldmVu
dCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KTsKKyAgICBpZiAo
aWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFN0cmluZyhpZGVudGlmaWVyKTsKKworICAgIHJl
dHVybiBTdHJpbmc6OmZvcm1hdCgiVSslMDRYIiwgZXZlbnQtPnVuaWNvZGUpOworfQorCitXZWJL
ZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1
Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBTdHJpbmcgc2luZ2xl
Q2hhcmFjdGVyU3RyaW5nID0gc2luZ2xlQ2hhcmFjdGVyU3RyaW5nRm9yS2V5RXZlbnQoZXZlbnQp
OworICAgIFN0cmluZyBpZGVudGlmaWVyU3RyaW5nID0gaWRlbnRpZmllclN0cmluZ0ZvcktleUV2
ZW50KGV2ZW50KTsKKworICAgIHJldHVybiBXZWJLZXlib2FyZEV2ZW50KGV2ZW50LT5wcmVzc2Vk
ID8gV2ViRXZlbnQ6OktleURvd24gOiBXZWJFdmVudDo6S2V5VXAsCisgICAgICAgIHNpbmdsZUNo
YXJhY3RlclN0cmluZywgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAor
ICAgICAgICB3cGVfaW5wdXRfd2luZG93c19rZXlfY29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1
dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwgZXZlbnQpLAorICAgICAgICBldmVudC0+a2V5
Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQo
ZXZlbnQpLCBldmVudC0+dGltZSk7Cit9CisKK1dlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZl
bnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUg
PSBXZWJFdmVudDo6Tm9UeXBlOworICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNl
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOgorICAgICAgICB0eXBlID0gV2Vi
RXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9p
bnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAgICAgdHlwZSA9IGV2ZW50LT5zdGF0ZSA/IFdl
YkV2ZW50OjpNb3VzZURvd24gOiBXZWJFdmVudDo6TW91c2VVcDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0
b24gPSBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7
CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlvbjoKKyAgICBjYXNl
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uOgorICAgICAgICBpZiAoZXZlbnQt
PmJ1dHRvbiA9PSAxKQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6TGVmdEJ1
dHRvbjsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmJ1dHRvbiA9PSAyKQorICAgICAgICAgICAg
YnV0dG9uID0gV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2
ZW50LT5idXR0b24gPT0gMykKKyAgICAgICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6Ok1p
ZGRsZUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9l
dmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKwor
ICAgIHVuc2lnbmVkIGNsaWNrQ291bnQgPSAodHlwZSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSA/
IDEgOiAwOworCisgICAgLy8gRklYTUU6IFByb3BlciBidXR0b24gc3VwcG9ydC4gTW9kaWZpZXJz
LiBkZWx0YVgvWS9aLiBDbGljayBjb3VudC4KKyAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlv
bihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2Fs
ZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQodHlwZSwgYnV0dG9uLCBwb3NpdGlv
biwgcG9zaXRpb24sCisgICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdl
YkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGltZSk7Cit9CisKK1dlYldoZWVsRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhp
c19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIC8vIEZJWE1F
OiBXZSBzaG91bGRuJ3QgaGFyZC1jb2RlIHRoaXMuCisgICAgZW51bSBBeGlzIHsKKyAgICAgICAg
VmVydGljYWwsCisgICAgICAgIEhvcml6b250YWwsCisgICAgICAgIFNtb290aAorICAgIH07CisK
KyAgICBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrczsKKyAgICBXZWJDb3JlOjpGbG9hdFNp
emUgZGVsdGE7CisgICAgc3dpdGNoIChldmVudC0+YXhpcykgeworICAgIGNhc2UgVmVydGljYWw6
CisgICAgICAgIHdoZWVsVGlja3MgPSBXZWJDb3JlOjpGbG9hdFNpemUoMCwgZXZlbnQtPnZhbHVl
IC8gc3RkOjphYnMoZXZlbnQtPnZhbHVlKSk7CisgICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsK
KyAgICAgICAgZGVsdGEuc2NhbGUoV2ViQ29yZTo6U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3Rl
cCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBIb3Jpem9udGFsOgorICAgICAgICB3aGVl
bFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKGV2ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50
LT52YWx1ZSksIDApOworICAgICAgICBkZWx0YSA9IHdoZWVsVGlja3M7CisgICAgICAgIGRlbHRh
LnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU21vb3RoOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6
RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1ZSAvIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAg
ZGVsdGEgPSB3aGVlbFRpY2tzOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH07CisKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+
eCwgZXZlbnQtPnkpOworICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7
CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9z
aXRpb24sCisgICAgICAgIGRlbHRhLCB3aGVlbFRpY2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxC
eVBpeGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2
ZW50LT50aW1lKTsKK30KKworc3RhdGljIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHBvaW50KQoreworICAgIGlmIChwb2lu
dC0+aWQgIT0gbWFpbkV2ZW50SWQpCisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworCisgICAgc3dpdGNoIChwb2ludC0+dHlwZSkg
eworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcmV0
dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFByZXNzZWQ7CisgICAgY2Fz
ZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIHJldHVybiBXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hNb3ZlZDsKKyAgICBjYXNlIHdwZV9pbnB1
dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9y
bVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZl
bnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfTsKKworICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
VG91Y2hTdGF0aW9uYXJ5OworfQorCitXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgV2ViRXZlbnQ6OlR5cGUgdHlwZSA9IFdlYkV2
ZW50OjpOb1R5cGU7CisgICAgc3dpdGNoIChldmVudC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3Vj
aFN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90
eXBlX21vdGlvbjoKKyAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaE1vdmU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfdXA6CisgICAgICAg
IHR5cGUgPSBXZWJFdmVudDo6VG91Y2hFbmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3Bl
X2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgfQorCisgICAgVmVjdG9yPFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiB0
b3VjaFBvaW50czsKKyAgICB0b3VjaFBvaW50cy5yZXNlcnZlQ2FwYWNpdHkoZXZlbnQtPnRvdWNo
cG9pbnRzX2xlbmd0aCk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRv
dWNocG9pbnRzX2xlbmd0aDsgKytpKSB7CisgICAgICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRv
dWNocG9pbnRzW2ldOworICAgICAgICBpZiAocG9pbnQudHlwZSA9PSB3cGVfaW5wdXRfdG91Y2hf
ZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgV2ViQ29y
ZTo6SW50UG9pbnQgcG9pbnRDb29yZGluYXRlczsKKyAgICAgICAgcG9pbnRDb29yZGluYXRlcy5z
Y2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICB0b3VjaFBvaW50cy51bmNoZWNr
ZWRBcHBlbmQoCisgICAgICAgICAgICBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludChwb2lu
dC5pZCwgc3RhdGVGb3JUb3VjaFBvaW50KGV2ZW50LT5pZCwgJnBvaW50KSwKKyAgICAgICAgICAg
ICAgICBwb2ludENvb3JkaW5hdGVzLCBwb2ludENvb3JkaW5hdGVzKSk7CisgICAgfQorCisgICAg
cmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50
OjpNb2RpZmllcnMoMCksIGV2ZW50LT50aW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmM2ZGM4NDlhMDIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJFdmVudEZhY3RvcnlfaAorI2RlZmluZSBXZWJFdmVudEZhY3RvcnlfaAor
CisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKworc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50Owor
c3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQ7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJFdmVudEZhY3RvcnkgeworcHVibGljOgorICAgIHN0YXRpYyBXZWJL
ZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXli
b2FyZF9ldmVudCopOworICAgIHN0YXRpYyBXZWJNb3VzZUV2ZW50IGNyZWF0ZVdlYk1vdXNlRXZl
bnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IpOworICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHN0
YXRpYyBXZWJUb3VjaEV2ZW50IGNyZWF0ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90
b3VjaF9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRXZlbnRGYWN0b3J5X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA3OGEzODA0MTU5ZS4uN2JmYTAzN2Rh
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTU1
Nyw0ICs1NTcsOCBAQCBpbmxpbmUgUHJveHlpbmdSZWZQdHI8V2ViR3JhbW1hckRldGFpbD4gdG9B
UEkoY29uc3QgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYgZ3JhbQogI2luY2x1ZGUgIldLQVBJQ2Fz
dEd0ay5oIgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKEJVSUxESU5HX1dQRV9fKQorI2luY2x1ZGUg
IldLQVBJQ2FzdFdQRS5oIgorI2VuZGlmCisKICNlbmRpZiAvLyBXS0FQSUNhc3RfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBmOGExZTcxNzAwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUu
aApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV0tBUElDYXN0V1BFX2gKKyNkZWZpbmUgV0tBUElDYXN0V1BF
X2gKKworI2lmbmRlZiBXS0FQSUNhc3RfaAorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgXCJXS0FQ
SUNhc3QuaFwiIGluc3RlYWQgb2YgdGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaW5j
bHVkZSAiV0tWaWV3LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CisKK25h
bWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
V0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld1JlZiwgV0tXUEU6OlZpZXcpCisKK2lubGluZSBXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyB0b1ZpZXdTdGF0ZUZsYWdzKFdLVmlld1N0YXRlIHdr
Vmlld1N0YXRlKQoreworICAgIHVuc2lnbmVkIHZpZXdTdGF0ZUZsYWdzID0gMDsKKworICAgIGlm
ICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlzSW5XaW5kb3cpCisgICAgICAgIHZpZXdTdGF0
ZUZsYWdzIHw9IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3c7CisgICAgaWYgKHdr
Vmlld1N0YXRlICYga1dLVmlld1N0YXRlSXNWaXNpYmxlKQorICAgICAgICB2aWV3U3RhdGVGbGFn
cyB8PSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGU7CisKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3M+KHZpZXdTdGF0ZUZsYWdzKTsK
K30KKworfQorCisjZW5kaWYgLy8gV0tBUElDYXN0V1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uY2NiYjIzNzE1ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV0tWaWV3LmgiCisKKyNpbmNsdWRlICJBUElQYWdlQ29uZmlndXJh
dGlvbi5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0
LmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitX
S1ZpZXdSZWYgV0tWaWV3Q3JlYXRlKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlv
bikKK3sKKyAgICByZXR1cm4gdG9BUEkoV0tXUEU6OlZpZXc6OmNyZWF0ZShudWxscHRyLCAqdG9J
bXBsKGNvbmZpZ3VyYXRpb24pKSk7Cit9CisKK1dLVmlld1JlZiBXS1ZpZXdDcmVhdGVXaXRoVmll
d0JhY2tlbmQoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIFdLUGFnZUNvbmZpZ3Vy
YXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gdG9BUEkoV0tXUEU6OlZpZXc6
OmNyZWF0ZShiYWNrZW5kLCAqdG9JbXBsKGNvbmZpZ3VyYXRpb24pKSk7Cit9CisKK1dLUGFnZVJl
ZiBXS1ZpZXdHZXRQYWdlKFdLVmlld1JlZiB2aWV3KQoreworICAgIHJldHVybiB0b0FQSSgmdG9J
bXBsKHZpZXcpLT5wYWdlKCkpOworfQorCit2b2lkIFdLVmlld1NldFZpZXdTdGF0ZShXS1ZpZXdS
ZWYgdmlldywgV0tWaWV3U3RhdGUgdmlld1N0YXRlKQoreworICAgIHRvSW1wbCh2aWV3KS0+c2V0
Vmlld1N0YXRlKHRvVmlld1N0YXRlRmxhZ3Modmlld1N0YXRlKSk7Cit9CisKK3ZvaWQgV0tWaWV3
U2V0Vmlld0NsaWVudChXS1ZpZXdSZWYgdmlldywgY29uc3QgV0tWaWV3Q2xpZW50QmFzZSogY2xp
ZW50KQoreworICAgIHRvSW1wbCh2aWV3KS0+aW5pdGlhbGl6ZUNsaWVudChjbGllbnQpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU1OWVjMmI0NWI1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaApAQCAtMCwwICsx
LDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV0tWaWV3X2gKKyNkZWZpbmUgV0tWaWV3X2gKKworI2luY2x1ZGUgPFdlYktpdC9X
S0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tHZW9tZXRyeS5oPgorCisjaWZkZWYgX19jcGx1
c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kOwor
CitXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVm
KTsKK1dLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVj
dCB3cGVfdmlld19iYWNrZW5kKiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZik7CisKK1dLX0VYUE9S
VCBXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYpOworCitlbnVtIHsKKyAgICBrV0tW
aWV3U3RhdGVJc0luV2luZG93ID0gMSA8PCAwLAorICAgIGtXS1ZpZXdTdGF0ZUlzVmlzaWJsZSA9
IDEgPDwgMSwKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLVmlld1N0YXRlOworCitXS19FWFBPUlQg
dm9pZCBXS1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3UmVmLCBXS1ZpZXdTdGF0ZSk7CisKK3R5cGVk
ZWYgdm9pZCAoKldLVmlld0ZyYW1lRGlzcGxheWVkKShXS1ZpZXdSZWYgdmlldywgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CisKK3R5cGVkZWYgc3RydWN0IFdLVmlld0NsaWVudEJhc2UgeworICAg
IGludCB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQqIGNsaWVudEluZm87Cit9IFdLVmlld0NsaWVu
dEJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdLVmlld0NsaWVudFYwIHsKKyAgICBXS1ZpZXdDbGll
bnRCYXNlIGJhc2U7CisKKyAgICAvLyB2ZXJzaW9uIDAKKyAgICBXS1ZpZXdGcmFtZURpc3BsYXll
ZCBmcmFtZURpc3BsYXllZDsKK30gV0tWaWV3Q2xpZW50VjA7CisKK1dLX0VYUE9SVCB2b2lkIFdL
Vmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmLCBjb25zdCBXS1ZpZXdDbGllbnRCYXNlKik7CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS1ZpZXdfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRp
bmdNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5hNDA0ZWM1ZDliNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgorCisjaW5j
bHVkZSAiQXR0YWNobWVudC5oIgorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXUEVWaWV3LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wu
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDx3cGUvdmlldy1iYWNr
ZW5kLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6
Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXco
dmlldykKK3sKK30KKworQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6On5Db21wb3NpdGluZ01hbmFn
ZXJQcm94eSgpID0gZGVmYXVsdDsKKwordm9pZCBDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6aW5p
dGlhbGl6ZSgpCit7CisgICAgbV92aWV3LnBhZ2UoKS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fdmlldy5wYWdlKCkucGFnZUlEKCksICp0aGlzKTsKK30KKwor
dm9pZCBDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6ZXN0YWJsaXNoQ29ubmVjdGlvbihJUEM6OkF0
dGFjaG1lbnQmIGNvbm5lY3Rpb25IYW5kbGUpCit7CisgICAgY29ubmVjdGlvbkhhbmRsZSA9IElQ
Qzo6QXR0YWNobWVudCh3cGVfdmlld19iYWNrZW5kX2dldF9yZW5kZXJlcl9ob3N0X2ZkKG1fdmll
dy5iYWNrZW5kKCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjg5NjA5ZDNmYTUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21w
b3NpdGluZ01hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb21wb3NpdGluZ01hbmFn
ZXJQcm94eV9oCisjZGVmaW5lIENvbXBvc2l0aW5nTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIEF0dGFjaG1lbnQ7Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7Citj
bGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ29tcG9zaXRpbmdN
YW5hZ2VyUHJveHkgZmluYWwgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKENvbXBvc2l0aW5nTWFuYWdlclByb3h5KTsKK3B1YmxpYzoKKyAg
ICBDb21wb3NpdGluZ01hbmFnZXJQcm94eShXS1dQRTo6VmlldyYpOworICAgIHZpcnR1YWwgfkNv
bXBvc2l0aW5nTWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKKworcHJp
dmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVu
Y29kZXIpIG92ZXJyaWRlOworCisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKElQQzo6QXR0
YWNobWVudCYpOworCisgICAgV0tXUEU6OlZpZXcmIG1fdmlldzsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHlfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21w
b3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMTlhMDA1NTc3NzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBDb21w
b3NpdGluZ01hbmFnZXJQcm94eSB7CisgICAgRXN0YWJsaXNoQ29ubmVjdGlvbigpIC0+IChJUEM6
OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjNjBjNDZjNzkzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQ
RS5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhd2luZ0Fy
ZWFQcm94eVdQRS5oIgorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0Ry
YXdpbmdBcmVhUHJveHlXUEU6OkRyYXdpbmdBcmVhUHJveHlXUEUoV2ViUGFnZVByb3h5JiBwYWdl
KQorICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYVR5cGVXUEUsIHBhZ2UpCit7Cit9
CisKK0RyYXdpbmdBcmVhUHJveHlXUEU6On5EcmF3aW5nQXJlYVByb3h5V1BFKCkKK3sKK30KKwor
dm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpz
aXplRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAobV93ZWJQYWdlUHJveHkuaXNWYWxpZCgpKQorICAg
ICAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6
OlVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKDAsIGZhbHNlLCBtX3dlYlBhZ2VQcm94eS5kZXZpY2VT
Y2FsZUZhY3RvcigpLCBtX3NpemUsIG1fc2Nyb2xsT2Zmc2V0KSwgbV93ZWJQYWdlUHJveHkucGFn
ZUlEKCkpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmRpc3BhdGNoQWZ0ZXJFbnN1
cmluZ0RyYXdpbmcoc3RkOjpmdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2Fs
bGJhY2tGdW5jdGlvbikKK3sKKyAgICBpZiAoIW1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkgewor
ICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52
YWxpZGF0ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFtjYWxsYmFja0Z1bmN0aW9uXSB7IGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tC
YXNlOjpFcnJvcjo6Tm9uZSk7IH0pOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OnVw
ZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmRp
ZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNv
bnN0IFVwZGF0ZUluZm8mLCBjb25zdCBMYXllclRyZWVDb250ZXh0JikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5
ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKK3sKKyAgICBBU1NFUlQoIWJhY2tpbmdT
dG9yZVN0YXRlSUQpOworCisgICAgbV9sYXllclRyZWVDb250ZXh0ID0gbGF5ZXJUcmVlQ29udGV4
dDsKKyAgICBtX3dlYlBhZ2VQcm94eS5lbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxh
eWVyVHJlZUNvbnRleHQpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmV4aXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25z
dCBVcGRhdGVJbmZvJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdp
bmdBcmVhUHJveHlXUEU6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iMDMwMjA4NTgzYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVh
UHJveHlXUEUuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRHJhd2luZ0FyZWFQcm94eVdQRV9oCisjZGVm
aW5lIERyYXdpbmdBcmVhUHJveHlXUEVfaAorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5o
IgorCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgRHJhd2luZ0FyZWFQcm94eVdQRSBmaW5hbCA6IHB1YmxpYyBEcmF3aW5nQXJlYVBy
b3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEcmF3aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQ
cm94eSYpOworICAgIHZpcnR1YWwgfkRyYXdpbmdBcmVhUHJveHlXUEUoKTsKKworcHJpdmF0ZToK
KyAgICAvLyBEcmF3aW5nQXJlYVByb3h5CisgICAgdm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENo
YW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2l6ZURpZENoYW5nZSgpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKENh
bGxiYWNrQmFzZTo6RXJyb3IpPikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEMgbWVzc2FnZSBoYW5k
bGVycworICAgIHZvaWQgdXBkYXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0
IFVwZGF0ZUluZm8mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0
YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mLCBjb25z
dCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVy
VHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKyAgICB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikg
b3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50
NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJp
ZGU7CisKKyAgICAvLyBUaGUgY3VycmVudCBsYXllciB0cmVlIGNvbnRleHQuCisgICAgTGF5ZXJU
cmVlQ29udGV4dCBtX2xheWVyVHJlZUNvbnRleHQ7Cit9OworCit9CisKKworI2VuZGlmIC8vIERy
YXdpbmdBcmVhUHJveHlXUEVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi44NGUxMDJlY2YxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRyYXdp
bmdBcmVhUHJveHlXUEUuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCisjaW5j
bHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51
UHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYWdlQ2xp
ZW50SW1wbDo6UGFnZUNsaWVudEltcGwoV0tXUEU6OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXco
dmlldykKKyAgICAsIG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxT
Y3JvbGxHZXN0dXJlQ29udHJvbGxlcj4oKSkKK3sKK30KKworUGFnZUNsaWVudEltcGw6On5QYWdl
Q2xpZW50SW1wbCgpID0gZGVmYXVsdDsKKworc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJv
eHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKK3sKKyAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJlYVByb3h5V1BFPihtX3ZpZXcucGFnZSgpKTsK
K30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJD
b3JlOjpSZWdpb24mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xs
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJv
b2wpCit7Cit9CisKK1dlYkNvcmU6OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3Jv
bGxQb3NpdGlvbigpCit7CisgICAgcmV0dXJuIHsgfTsKK30KKworV2ViQ29yZTo6SW50U2l6ZSBQ
YWdlQ2xpZW50SW1wbDo6dmlld1NpemUoKQoreworICAgIHJldHVybiBtX3ZpZXcuc2l6ZSgpOwor
fQorCitib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdXaW5kb3dBY3RpdmUoKQoreworICAgIHJl
dHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJ
c0FjdGl2ZTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3Rm9jdXNlZCgpCit7Cisg
ICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6Oklz
Rm9jdXNlZDsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3VmlzaWJsZSgpCit7Cisg
ICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6Oklz
VmlzaWJsZTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3SW5XaW5kb3coKQorewor
ICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJ
c0luV2luZG93OworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcm9jZXNzRGlkRXhpdCgpCit7
Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlbGF1bmNoUHJvY2VzcygpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OnBhZ2VDbG9zZWQoKQoreworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3Ry
aW5nJiwgYm9vbCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlRG93bmxvYWRS
ZXF1ZXN0KERvd25sb2FkUHJveHkqKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRD
aGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikKK3sKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5k
UHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKCkKK3sKK30KKworYm9vbCBQYWdlQ2xpZW50SW1w
bDo6Y2FuVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKQoreworICAgIHJldHVybiBm
YWxzZTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQ
cm94eTo6VW5kb09yUmVkbykKK3sKK30KKworV2ViQ29yZTo6RmxvYXRSZWN0IFBhZ2VDbGllbnRJ
bXBsOjpjb252ZXJ0VG9EZXZpY2VTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3Qp
Cit7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK1dlYkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50
SW1wbDo6Y29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkK
K3sKKyAgICByZXR1cm4gcmVjdDsKK30KKworV2ViQ29yZTo6SW50UG9pbnQgUGFnZUNsaWVudElt
cGw6OnNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50KQorewor
ICAgIHJldHVybiBwb2ludDsKK30KKworV2ViQ29yZTo6SW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6
cm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQoreworICAgIHJl
dHVybiByZWN0OworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNv
bnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKQoreworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgdG91
Y2hFdmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCit7CisgICAgaWYgKHdhc0V2ZW50SGFuZGxl
ZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9l
dmVudF9yYXcqIHRvdWNoUG9pbnQgPSB0b3VjaEV2ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2lu
dCgpOworICAgIGlmICh0b3VjaFBvaW50LT50eXBlID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90
eXBlX251bGwpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFn
ZSgpOworCisgICAgaWYgKG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXItPmhhbmRsZUV2ZW50KHRv
dWNoUG9pbnQpKSB7CisgICAgICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogYXhpc0V2
ZW50ID0gbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxlci0+YXhpc0V2ZW50KCk7CisgICAgICAgIGlm
IChheGlzRXZlbnQtPnR5cGUgIT0gd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsKQorICAg
ICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVu
dChheGlzRXZlbnQsIG1fdmlldy5wYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IHBv
aW50ZXJFdmVudHsKKyAgICAgICAgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsLCB0
b3VjaFBvaW50LT50aW1lLAorICAgICAgICB0b3VjaFBvaW50LT54LCB0b3VjaFBvaW50LT55LAor
ICAgICAgICAxLCAwCisgICAgfTsKKworICAgIHN3aXRjaCAodG91Y2hQb2ludC0+dHlwZSkgewor
ICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcG9pbnRl
ckV2ZW50LnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjsKKyAgICAg
ICAgcG9pbnRlckV2ZW50LnN0YXRlID0gMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBl
ID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9tb3Rpb247CisgICAgICAgIHBvaW50ZXJF
dmVudC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNo
X2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3Bv
aW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDA7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9u
dWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHBhZ2UuaGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KCZwb2lu
dGVyRXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJX
aGVlbEV2ZW50JikKK3sKK30KKworUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50
SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5JikKK3sKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorc3RkOjp1bmlxdWVfcHRy
PFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb250ZXh0TWVudVBy
b3h5KFdlYlBhZ2VQcm94eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBV
c2VyRGF0YSYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRy
ZWVDb250ZXh0JikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVu
dFByb3ZpZGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4oKQorewor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwg
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5h
dmlnYXRpb25HZXN0dXJlRGlkRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQorewor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEVuZCgpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OndpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJl
bW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZy
YW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpyZWZWaWV3KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGVyZWZWaWV3KCkK
K3sKK30KKworI2lmIEVOQUJMRShWSURFTykKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmRlY2lkZVBv
bGljeUZvckluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QoSW5zdGFs
bE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdCYpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlc3RvcmVTY3JvbGxQ
b3NpdGlvbigpCit7Cit9CisKK1dlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24g
UGFnZUNsaWVudEltcGw6OnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKQoreworICAgIHJl
dHVybiBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFI7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjI4ZWQ4MzNkMmViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaApAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBhZ2VDbGll
bnRJbXBsX2gKKyNkZWZpbmUgUGFnZUNsaWVudEltcGxfaAorCisjaW5jbHVkZSAiUGFnZUNsaWVu
dC5oIgorCituYW1lc3BhY2UgV0tXUEUgeworY2xhc3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyOworCitjbGFzcyBQYWdlQ2xp
ZW50SW1wbCBmaW5hbCA6IHB1YmxpYyBQYWdlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBQYWdlQ2xp
ZW50SW1wbChXS1dQRTo6VmlldyYpOworICAgIHZpcnR1YWwgflBhZ2VDbGllbnRJbXBsKCk7CisK
K3ByaXZhdGU6CisgICAgLy8gUGFnZUNsaWVudAorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRy
PERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24m
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sKSBvdmVycmlkZTsK
KyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNWaWV3Rm9jdXNlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdWaXNp
YmxlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzVmlld0luV2luZG93KCkgb3ZlcnJp
ZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHBhZ2VDbG9zZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlZmVyZW5jZXNE
aWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcmLCBib29sKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSBv
dmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29y
KGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRD
dXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0
dHJpYnV0ZXMmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckVkaXRDb21t
YW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09y
UmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5k
b09yUmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGV4ZWN1dGVVbmRvUmVkbyhXZWJQ
YWdlUHJveHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpG
bG9hdFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNw
YWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVu
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBk
b25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdl
YlRvdWNoRXZlbnQmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVw
TWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShDT05URVhUX01F
TlVTKQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvbnRleHRNZW51UHJveHk+IGNy
ZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgY29uc3QgQ29udGV4dE1lbnVDb250
ZXh0RGF0YSYsIGNvbnN0IFVzZXJEYXRhJikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZpcnR1
YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNv
bnRleHQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKworICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRl
cihjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKSBvdmVycmlkZTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0dXJlV2lsbEVuZChib29sLCBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0
dXJlRGlkRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbFJlY29yZE5hdmlnYXRpb25TbmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25HZXN0
dXJlU25hcHNob3QoKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRp
b25UeXBlKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5k
Q29sb3IoKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZWaWV3KCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRlcmVmVmlldygpIG92ZXJyaWRlOworCisjaWYgRU5BQkxFKFZJ
REVPKQorICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlh
UGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlz
c2lvblJlcXVlc3QmKSBvdmVycmlkZTsKKyNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIGRpZFJl
c3RvcmVTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24o
KSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkQ2hhbmdlQ2xpcFRvU2FmZUFyZWEoYm9vbCkgb3Zl
cnJpZGUgeyB9CisKKyAgICBXS1dQRTo6VmlldyYgbV92aWV3OworCisgICAgc3RkOjp1bmlxdWVf
cHRyPFNjcm9sbEdlc3R1cmVDb250cm9sbGVyPiBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQYWdlQ2xpZW50SW1wbF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0
dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3Jv
bGxHZXN0dXJlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmRhMTJjOGViMzUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsODAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisK
KyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Ym9vbCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdw
ZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCit7CisgICAgc3dpdGNoICh0b3Vj
aFBvaW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9kb3du
OgorICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3VjaFBvaW50LT50aW1lOworICAgICAgICBtX3N0
YXJ0LnggPSB0b3VjaFBvaW50LT54OworICAgICAgICBtX3N0YXJ0LnkgPSB0b3VjaFBvaW50LT55
OworICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKKyAgICAgICAgbV9vZmZzZXQu
eSA9IHRvdWNoUG9pbnQtPnk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9p
bnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgaWYgKCFtX2hhbmRsaW5nKSB7
CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWCA9IHRvdWNoUG9pbnQtPnggLSBtX3N0YXJ0Lng7
CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWSA9IHRvdWNoUG9pbnQtPnkgLSBtX3N0YXJ0Lnk7
CisgICAgICAgICAgICB1aW50MzJfdCBkZWx0YVRpbWUgPSB0b3VjaFBvaW50LT50aW1lIC0gbV9z
dGFydC50aW1lOworCisgICAgICAgICAgICBpbnQgcGl4ZWxzUGVyTGluZVN0ZXAgPSBXZWJDb3Jl
OjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCk7CisgICAgICAgICAgICBtX2hhbmRsaW5n
ID0gc3RkOjphYnMoZGVsdGFYKSA+PSBwaXhlbHNQZXJMaW5lU3RlcAorICAgICAgICAgICAgICAg
IHx8IHN0ZDo6YWJzKGRlbHRhWSkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAgICAgICAgICAg
ICB8fCBkZWx0YVRpbWUgPj0gMjAwOworICAgICAgICB9CisgICAgICAgIGlmIChtX2hhbmRsaW5n
KSB7CisgICAgICAgICAgICBtX2F4aXNFdmVudCA9IHsKKyAgICAgICAgICAgICAgICB3cGVfaW5w
dXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAgICAgICAgICAgICAgICB0b3VjaFBvaW50LT50
aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAgICAgICAgICAgICAgICAyLCAodG91Y2hQb2lu
dC0+eSAtIG1fb2Zmc2V0LnkpCisgICAgICAgICAgICB9OworICAgICAgICAgICAgbV9vZmZzZXQu
eCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgICAgICBtX29mZnNldC55ID0gdG91Y2hQb2ludC0+
eTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICBp
ZiAobV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9oYW5kbGluZyA9IGZhbHNlOworICAgICAg
ICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3BlX2lucHV0X2F4aXNfZXZl
bnRfdHlwZV9udWxsLAorICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAKKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdkMTcyNGFhZGMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5o
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlciB7CitwdWJs
aWM6CisgICAgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBzdHJ1
Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVudCgpIHsgcmV0dXJuICZtX2F4aXNFdmVu
dDsgfQorCisgICAgYm9vbCBoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNo
X2V2ZW50X3JhdyopOworCitwcml2YXRlOgorICAgIHN0cnVjdCB7CisgICAgICAgIHVpbnQzMl90
IHRpbWUgeyAwIH07CisgICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5
IHsgMCB9OworICAgIH0gbV9zdGFydDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIGludDMyX3Qg
eCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9vZmZzZXQ7CisKKyAg
ICBib29sIG1faGFuZGxpbmcgeyBmYWxzZSB9OworICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19l
dmVudCBtX2F4aXNFdmVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uN2Y5ZjEyY2QyZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApAQCAtMCwwICsxLDE1MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCisj
aW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYlRvdWNo
RXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
UGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlIDx3cGUv
dmlldy1iYWNrZW5kLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBX
S1dQRSB7CisKK1ZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNv
bnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDb25maWd1cmF0aW9uKQorICAgIDogbV9w
YWdlQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KCp0aGlzKSkKKyAgICAs
IG1fc2l6ZXsgODAwLCA2MDAgfQorICAgICwgbV92aWV3U3RhdGVGbGFncyhXZWJDb3JlOjpBY3Rp
dml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9j
dXNlZCB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZSB8IFdlYkNvcmU6OkFjdGl2
aXR5U3RhdGU6OklzSW5XaW5kb3cpCisgICAgLCBtX2NvbXBvc2l0aW5nTWFuYWdlclByb3h5KCp0
aGlzKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGJhc2VDb25maWd1cmF0aW9uLmNvcHko
KTsKKyAgICBhdXRvKiBwcmVmZXJlbmNlcyA9IGNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCk7
CisgICAgaWYgKCFwcmVmZXJlbmNlcyAmJiBjb25maWd1cmF0aW9uLT5wYWdlR3JvdXAoKSkgewor
ICAgICAgICBwcmVmZXJlbmNlcyA9ICZjb25maWd1cmF0aW9uLT5wYWdlR3JvdXAoKS0+cHJlZmVy
ZW5jZXMoKTsKKyAgICAgICAgY29uZmlndXJhdGlvbi0+c2V0UHJlZmVyZW5jZXMocHJlZmVyZW5j
ZXMpOworICAgIH0KKyAgICBpZiAocHJlZmVyZW5jZXMpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMt
PnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpOworICAgICAgICBwcmVmZXJl
bmNlcy0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2Vz
LT5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcHJlZmVyZW5j
ZXMtPnNldFdlYkdMRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldFdlYlNl
Y3VyaXR5RW5hYmxlZChmYWxzZSk7CisgICAgICAgIHByZWZlcmVuY2VzLT5zZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKHRydWUpOworICAgIH0KKworICAgIGF1dG8qIHBvb2wgPSBjb25maWd1cmF0
aW9uLT5wcm9jZXNzUG9vbCgpOworICAgIG1fcGFnZVByb3h5ID0gcG9vbC0+Y3JlYXRlV2ViUGFn
ZSgqbV9wYWdlQ2xpZW50LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKworICAgIG1fYmFja2Vu
ZCA9IGJhY2tlbmQ7CisgICAgaWYgKCFtX2JhY2tlbmQpCisgICAgICAgIG1fYmFja2VuZCA9IHdw
ZV92aWV3X2JhY2tlbmRfY3JlYXRlKCk7CisgICAgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94eS5p
bml0aWFsaXplKCk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV92aWV3X2JhY2tlbmRfY2xpZW50
IHNfYmFja2VuZENsaWVudCA9IHsKKyAgICAgICAgLy8gc2V0X3NpemUKKyAgICAgICAgW10odm9p
ZCogZGF0YSwgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCkKKyAgICAgICAgeworICAg
ICAgICAgICAgYXV0byYgdmlldyA9ICpyZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRhKTsKKyAg
ICAgICAgICAgIHZpZXcuc2V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsK
KyAgICAgICAgfSwKKyAgICAgICAgLy8gZnJhbWVfZGlzcGxheWVkCisgICAgICAgIFtdKHZvaWQq
IGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRf
Y2FzdDxWaWV3Kj4oZGF0YSk7CisgICAgICAgICAgICB2aWV3LmZyYW1lRGlzcGxheWVkKCk7Cisg
ICAgICAgIH0KKyAgICB9OworICAgIHdwZV92aWV3X2JhY2tlbmRfc2V0X2JhY2tlbmRfY2xpZW50
KG1fYmFja2VuZCwgJnNfYmFja2VuZENsaWVudCwgdGhpcyk7CisKKyAgICBzdGF0aWMgc3RydWN0
IHdwZV92aWV3X2JhY2tlbmRfaW5wdXRfY2xpZW50IHNfaW5wdXRDbGllbnQgPSB7CisgICAgICAg
IC8vIGhhbmRsZV9rZXlib2FyZF9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qg
d3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKKyAgICAgICAgeworICAgICAgICAgICAg
YXV0byYgdmlldyA9ICpyZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRhKTsKKyAgICAgICAgICAg
IHZpZXcucGFnZSgpLmhhbmRsZUtleWJvYXJkRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KGV2ZW50KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGhhbmRsZV9wb2ludGVyX2V2
ZW50CisgICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJl
dF9jYXN0PFZpZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVNb3Vz
ZUV2ZW50KFdlYktpdDo6TmF0aXZlV2ViTW91c2VFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2Fs
ZUZhY3RvcigpKSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGhhbmRsZV9heGlzX2V2ZW50Cisg
ICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0PFZp
ZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdl
YktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3Rvcigp
KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGhhbmRsZV90b3VjaF9ldmVudAorICAgICAgICBb
XSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCkKKyAgICAg
ICAgeworICAgICAgICAgICAgYXV0byYgcGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRh
dGEpLT5wYWdlKCk7CisgICAgICAgICAgICBwYWdlLmhhbmRsZVRvdWNoRXZlbnQoV2ViS2l0OjpO
YXRpdmVXZWJUb3VjaEV2ZW50KGV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKyAg
ICAgICAgfSwKKyAgICB9OworICAgIHdwZV92aWV3X2JhY2tlbmRfc2V0X2lucHV0X2NsaWVudCht
X2JhY2tlbmQsICZzX2lucHV0Q2xpZW50LCB0aGlzKTsKKworICAgIHdwZV92aWV3X2JhY2tlbmRf
aW5pdGlhbGl6ZShtX2JhY2tlbmQpOworCisgICAgbV9wYWdlUHJveHktPmluaXRpYWxpemVXZWJQ
YWdlKCk7Cit9CisKK1ZpZXc6On5WaWV3KCkKK3sKKyAgICB3cGVfdmlld19iYWNrZW5kX2Rlc3Ry
b3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBWaWV3Ojppbml0aWFsaXplQ2xpZW50KGNvbnN0IFdL
Vmlld0NsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudC5pbml0aWFsaXplKGNsaWVu
dCk7Cit9CisKK3ZvaWQgVmlldzo6ZnJhbWVEaXNwbGF5ZWQoKQoreworICAgIG1fY2xpZW50LmZy
YW1lRGlzcGxheWVkKCp0aGlzKTsKK30KKwordm9pZCBWaWV3OjpzZXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNpemUpCit7CisgICAgbV9zaXplID0gc2l6ZTsKKyAgICBpZiAobV9wYWdl
UHJveHktPmRyYXdpbmdBcmVhKCkpCisgICAgICAgIG1fcGFnZVByb3h5LT5kcmF3aW5nQXJlYSgp
LT5zZXRTaXplKHNpemUsIFdlYkNvcmU6OkludFNpemUoKSwgV2ViQ29yZTo6SW50U2l6ZSgpKTsK
K30KKwordm9pZCBWaWV3OjpzZXRWaWV3U3RhdGUoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6Rmxh
Z3MgZmxhZ3MpCit7CisgICAgc3RhdGljIGNvbnN0IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZs
YWdzIGRlZmF1bHRGbGFncyA9IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZl
IHwgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNGb2N1c2VkOworCisgICAgV2ViQ29yZTo6QWN0
aXZpdHlTdGF0ZTo6RmxhZ3MgY2hhbmdlZEZsYWdzID0gbV92aWV3U3RhdGVGbGFncyBeIChkZWZh
dWx0RmxhZ3MgfCBmbGFncyk7CisgICAgbV92aWV3U3RhdGVGbGFncyA9IGRlZmF1bHRGbGFncyB8
IGZsYWdzOworCisgICAgaWYgKGNoYW5nZWRGbGFncykKKyAgICAgICAgbV9wYWdlUHJveHktPmFj
dGl2aXR5U3RhdGVEaWRDaGFuZ2UoY2hhbmdlZEZsYWdzKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V0tXUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzczNmU5M2NjNTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmgKQEAgLTAs
MCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdQRVZpZXdfaAorI2RlZmluZSBXUEVWaWV3X2gKKworI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5LmgiCisjaW5jbHVk
ZSAiUGFnZUNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRl
ICJXUEVWaWV3Q2xpZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+Cisj
aW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworc3RydWN0IHdwZV92
aWV3X2JhY2tlbmQ7CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZUdyb3VwOwor
Y2xhc3MgV2ViUHJvY2Vzc1Bvb2w7Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK2NsYXNzIFZp
ZXcgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpWaWV3PiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFZpZXcqIGNyZWF0ZShzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCog
YmFja2VuZCwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAg
ICB7CisgICAgICAgIHJldHVybiBuZXcgVmlldyhiYWNrZW5kLCBjb25maWd1cmF0aW9uKTsKKyAg
ICB9CisKKyAgICAvLyBDbGllbnQgbWV0aG9kcworICAgIHZvaWQgaW5pdGlhbGl6ZUNsaWVudChj
b25zdCBXS1ZpZXdDbGllbnRCYXNlKik7CisgICAgdm9pZCBmcmFtZURpc3BsYXllZCgpOworCisg
ICAgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVybiAqbV9wYWdlUHJveHk7IH0K
KworICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kKCkgeyByZXR1cm4gbV9iYWNr
ZW5kOyB9CisKKyAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1
cm4gbV9zaXplOyB9CisKKyAgICBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyB2aWV3U3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTdGF0ZUZsYWdzOyB9CisgICAgdm9pZCBzZXRWaWV3
U3RhdGUoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MpOworCitwcml2YXRlOgorICAgIFZp
ZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqLCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9u
Jik7CisgICAgdmlydHVhbCB+VmlldygpOworCisgICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNpemUpOworCisgICAgVmlld0NsaWVudCBtX2NsaWVudDsKKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsPiBtX3BhZ2VDbGllbnQ7CisgICAg
UmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBtX3BhZ2VQcm94eTsKKyAgICBXZWJDb3JlOjpJ
bnRTaXplIG1fc2l6ZTsKKyAgICBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyBtX3ZpZXdT
dGF0ZUZsYWdzOworCisgICAgV2ViS2l0OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eSBtX2NvbXBv
c2l0aW5nTWFuYWdlclByb3h5OworICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBtX2JhY2tl
bmQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXS1dQRQorCisjZW5kaWYgLy8gV1BFVmlld19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjFmMzdkOWU3YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdD
bGllbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldQRVZp
ZXdDbGllbnQuaCIKKworI2luY2x1ZGUgIldQRVZpZXcuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3Qu
aCIKKyNpbmNsdWRlICJXS0Jhc2UuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFt
ZXNwYWNlIFdLV1BFIHsKKwordm9pZCBWaWV3Q2xpZW50OjpmcmFtZURpc3BsYXllZChWaWV3JiB2
aWV3KQoreworICAgIGlmIChtX2NsaWVudC5mcmFtZURpc3BsYXllZCkKKyAgICAgICAgbV9jbGll
bnQuZnJhbWVEaXNwbGF5ZWQodG9BUEkoJnZpZXcpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi44NGRmZDViMTU1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV1BF
Vmlld0NsaWVudF9oCisjZGVmaW5lIFdQRVZpZXdDbGllbnRfaAorCisjaW5jbHVkZSAiQVBJQ2xp
ZW50LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLVmlldy5oPgorCituYW1lc3BhY2UgQVBJIHsKK3Rl
bXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1ZpZXdDbGllbnRCYXNlPiB7CisgICAgdHlw
ZWRlZiBzdGQ6OnR1cGxlPFdLVmlld0NsaWVudFYwPiBWZXJzaW9uczsKK307Cit9CisKK25hbWVz
cGFjZSBXS1dQRSB7CisKK2NsYXNzIFZpZXc7CisKK2NsYXNzIFZpZXdDbGllbnQgOiBwdWJsaWMg
QVBJOjpDbGllbnQ8V0tWaWV3Q2xpZW50QmFzZT4geworcHVibGljOgorICAgIHZvaWQgZnJhbWVE
aXNwbGF5ZWQoVmlldyYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKworI2VuZGlm
IC8vIFdQRVZpZXdDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnht
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTgyMDkyYmJmZWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQy
SW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Z3Jlc291cmNlcz4KKyAgPGdyZXNvdXJjZSBw
cmVmaXg9Ii9vcmcvd3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlIj4KKyAgICA8ZmlsZT5pbnNw
ZWN0b3JQYWdlSW5kZXguaHRtbDwvZmlsZT4KKyAgPC9ncmVzb3VyY2U+Cis8L2dyZXNvdXJjZXM+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCAyN2JlYzM2MjMxNS4uZmQ4NDhjY2VkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIENoaWxkUHJv
Y2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9u
cyYgbGF1bmNoTwogICAgIGlmIChtX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSkKICAg
ICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRl
cmFsKCJhbHdheXMtcnVucy1hdC1iYWNrZ3JvdW5kLXByaW9yaXR5IiksICJ0cnVlIik7CiAKLSNp
ZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIFBMQVRGT1JNKEdUSykKKyNpZiBFTkFCTEUoREVW
RUxPUEVSX01PREUpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiAgICAgY29u
c3QgY2hhciogdmFybmFtZTsKICAgICBzd2l0Y2ggKGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUp
IHsKICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYjoKQEAgLTc5LDcg
Kzc5LDcgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNz
TGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE8KICAgICBjb25zdCBjaGFyKiBwcm9jZXNz
Q21kUHJlZml4ID0gZ2V0ZW52KHZhcm5hbWUpOwogICAgIGlmIChwcm9jZXNzQ21kUHJlZml4ICYm
ICpwcm9jZXNzQ21kUHJlZml4KQogICAgICAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVm
aXggPSBTdHJpbmc6OmZyb21VVEY4KHByb2Nlc3NDbWRQcmVmaXgpOwotI2VuZGlmIC8vIEVOQUJM
RShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2VuZGlmIC8vIEVOQUJMRShERVZF
TE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKIH0KIAogdm9p
ZCBDaGlsZFByb2Nlc3NQcm94eTo6Y29ubmVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaApp
bmRleCA5MzlhN2UyMWI3OC4uMDc0ODdiYTNlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIu
aApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2xvc2VXZWJTb2NrZXRD
b25uZWN0aW9uKFdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24qKSBmaW5hbDsKIAogICAgIGJvb2wg
cGxhdGZvcm1SZXNvdXJjZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBWZWN0b3I8Y2hhcj4m
IGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpOwotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lkIGJ1aWxkUGFnZUxpc3QoVmVjdG9y
PGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0
b3JTZXJ2ZXJXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZl
ci93cGUvV2ViSW5zcGVjdG9yU2VydmVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMjY4M2UzZDcxNjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUu
Y3BwCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yU2VydmVyLmgiCisKKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKKworI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5
LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1
ZGUgPGdtb2R1bGUuaD4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBXZWJJbnNw
ZWN0b3JTZXJ2ZXI6OnBsYXRmb3JtUmVzb3VyY2VGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwg
VmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKQoreworICAgIC8vIFRoZSBw
YWdlIGxpc3QgY29udGFpbnMgYW4gdW5mb3JtYXRlZCBsaXN0IG9mIHBhZ2VzIHRoYXQgY2FuIGJl
IGluc3BlY3RlZCB3aXRoIGEgbGluayB0byBvcGVuIGEgc2Vzc2lvbi4KKyAgICBpZiAocGF0aCA9
PSAiL3BhZ2VsaXN0Lmpzb24iKSB7CisgICAgICAgIGJ1aWxkUGFnZUxpc3QoZGF0YSwgY29udGVu
dFR5cGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgZmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShmbGFnLCBbXSB7CisgICAgICAgIEdN
b2R1bGUqIHJlc291cmNlc01vZHVsZSA9IGdfbW9kdWxlX29wZW4oImxpYldQRVdlYkluc3BlY3Rv
clJlc291cmNlcy5zbyIsIEdfTU9EVUxFX0JJTkRfTEFaWSk7CisgICAgICAgIGlmICghcmVzb3Vy
Y2VzTW9kdWxlKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkVycm9yIGxvYWRpbmcgbGli
V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzLnNvOiAlcyIsIGdfbW9kdWxlX2Vycm9yKCkpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZ19tb2R1bGVfbWFrZV9yZXNp
ZGVudChyZXNvdXJjZXNNb2R1bGUpOworICAgIH0pOworCisgICAgLy8gUG9pbnQgdGhlIGRlZmF1
bHQgcGF0aCB0byBhIGZvcm1hdHRlZCBwYWdlIHRoYXQgcXVlcmllcyB0aGUgcGFnZSBsaXN0IGFu
ZCBkaXNwbGF5IHRoZW0uCisgICAgQ1N0cmluZyByZXNvdXJjZVBhdGggPSBtYWtlU3RyaW5nKCIv
b3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZSIsIChwYXRoID09ICIvIiA/ICIvaW5zcGVj
dG9yUGFnZUluZGV4Lmh0bWwiIDogcGF0aCkpLnV0ZjgoKTsKKyAgICBpZiAocmVzb3VyY2VQYXRo
LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHVW5pcXVlT3V0UHRyPEdF
cnJvcj4gZXJyb3I7CisgICAgR1JlZlB0cjxHQnl0ZXM+IHJlc291cmNlQnl0ZXMgPSBhZG9wdEdS
ZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEocmVzb3VyY2VQYXRoLmRhdGEoKSwgR19SRVNPVVJD
RV9MT09LVVBfRkxBR1NfTk9ORSwgJmVycm9yLm91dFB0cigpKSk7CisgICAgaWYgKCFyZXNvdXJj
ZUJ5dGVzKSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+
RXJyb3I6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihlcnJvci0+Y29kZSk7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBvY2N1
cnJlZCBkdXJpbmcgZmV0Y2hpbmcgaW5zcGVjdG9yIHJlc291cmNlIGZpbGVzLjwvYm9keT48L2h0
bWw+Iik7CisKKyAgICAgICAgQ1N0cmluZyBlcnJvckhUTUwgPSBidWlsZGVyLnRvU3RyaW5nKCku
dXRmOCgpOworICAgICAgICBkYXRhLmFwcGVuZChlcnJvckhUTUwuZGF0YSgpLCBlcnJvckhUTUwu
bGVuZ3RoKCkpOworICAgICAgICBjb250ZW50VHlwZSA9ICJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRm
LTgiOworCisgICAgICAgIFdURkxvZ0Fsd2F5cygiRXJyb3IgZmV0Y2hpbmcgd2ViaW5zcGVjdG9y
IHJlc291cmNlIGZpbGVzOiAlZCwgJXMiLCBlcnJvci0+Y29kZSwgZXJyb3ItPm1lc3NhZ2UpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZ3NpemUgcmVzb3VyY2VEYXRhU2l6
ZTsKKyAgICBnY29uc3Rwb2ludGVyIHJlc291cmNlRGF0YSA9IGdfYnl0ZXNfZ2V0X2RhdGEocmVz
b3VyY2VCeXRlcy5nZXQoKSwgJnJlc291cmNlRGF0YVNpemUpOworICAgIGRhdGEuYXBwZW5kKHN0
YXRpY19jYXN0PGNvbnN0IGNoYXIqPihyZXNvdXJjZURhdGEpLCByZXNvdXJjZURhdGFTaXplKTsK
KworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG1pbWVUeXBlKGdfY29udGVudF90eXBlX2d1ZXNzKHJl
c291cmNlUGF0aC5kYXRhKCksIHN0YXRpY19jYXN0PGNvbnN0IGd1Y2hhcio+KHJlc291cmNlRGF0
YSksIHJlc291cmNlRGF0YVNpemUsIG51bGxwdHIpKTsKKyAgICBjb250ZW50VHlwZSA9IG1pbWVU
eXBlLmdldCgpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYkluc3BlY3RvclNlcnZl
cjo6YnVpbGRQYWdlTGlzdChWZWN0b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUp
Cit7CisgICAgLy8gY2hyb21lZGV2dG9vbHMgKGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJv
bWVkZXZ0b29scykgMC4zLjggZXhwZWN0ZWQgSlNPTiBmb3JtYXQ6CisgICAgLy8geworICAgIC8v
ICAidGl0bGUiOiAiRm9vIiwKKyAgICAvLyAgInVybCI6ICJodHRwOi8vZm9vIiwKKyAgICAvLyAg
ImRldnRvb2xzRnJvbnRlbmRVcmwiOiAiL01haW4uaHRtbD93cz1sb2NhbGhvc3Q6OTIyMi9kZXZ0
b29scy9wYWdlLzEiLAorICAgIC8vICAid2ViU29ja2V0RGVidWdnZXJVcmwiOiAid3M6Ly9sb2Nh
bGhvc3Q6OTIyMi9kZXZ0b29scy9wYWdlLzEiCisgICAgLy8gfSwKKworICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlsgIik7CisgICAgQ2xpZW50
TWFwOjppdGVyYXRvciBlbmQgPSBtX2NsaWVudE1hcC5lbmQoKTsKKyAgICBmb3IgKENsaWVudE1h
cDo6aXRlcmF0b3IgaXQgPSBtX2NsaWVudE1hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
KyAgICAgICAgV2ViUGFnZVByb3h5KiB3ZWJQYWdlID0gaXQtPnZhbHVlLT5pbnNwZWN0ZWRQYWdl
KCk7CisgICAgICAgIGlmIChpdCAhPSBtX2NsaWVudE1hcC5iZWdpbigpKQorICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoInsgXCJpZFwiOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBcInRpdGxlXCI6IFwiIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHdlYlBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS50aXRsZSgpKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJ1cmxcIjogXCIiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQod2ViUGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVSTCgpKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJpbnNwZWN0b3JVcmxcIjogXCIiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvTWFpbi5odG1sP3BhZ2U9Iik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlwiLCBcImRldnRvb2xzRnJvbnRlbmRVcmxcIjogXCIiKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIvTWFpbi5odG1sP3dzPSIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChiaW5kQWRkcmVzcygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Iik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvcnQoKSk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2UvIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcIndl
YlNvY2tldERlYnVnZ2VyVXJsXCI6IFwiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgid3M6Ly8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYmluZEFkZHJlc3MoKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcihwb3J0KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIi9kZXZ0b29scy9w
YWdlLyIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiB9Iik7CisgICAgfQorICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiIF0iKTsKKyAgICBDU3RyaW5nIGNzdHIgPSBidWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpOworICAgIGRhdGEuYXBwZW5kKGNzdHIuZGF0YSgpLCBjc3RyLmxlbmd0aCgpKTsKKyAgICBj
b250ZW50VHlwZSA9ICJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04IjsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IDM5OTUwNjk0OGVmLi5iYTc3
YzJhYzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1By
b2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Q
cm9jZXNzTGF1bmNoZXIuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIFByb2Nl
c3NUeXBlIHByb2Nlc3NUeXBlOwogICAgICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRy
YUluaXRpYWxpemF0aW9uRGF0YTsKIAotI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExB
VEZPUk0oR1RLKQorI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV1BFKSkKICAgICAgICAgU3RyaW5nIHByb2Nlc3NDbWRQcmVmaXg7CiAjZW5k
aWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi43MDIzYzU0MjIxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApAQCAt
MCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEg
TW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIKKworI2luY2x1
ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBhdGguaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1
ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdwZS9yZW5kZXJlci1o
b3N0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL2ds
aWIvR0xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKwor
Ly8gRklYTUU6IE1lcmdlIHdpdGggUHJvY2Vzc0xhdW5jaGVyR3RrPworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB2b2lkIGNoaWxkU2V0
dXBGdW5jdGlvbihncG9pbnRlciB1c2VyRGF0YSkKK3sKKyAgICBpbnQgc29ja2V0ID0gR1BPSU5U
RVJfVE9fSU5UKHVzZXJEYXRhKTsKKyAgICBjbG9zZShzb2NrZXQpOworfQorCit2b2lkIFByb2Nl
c3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCit7CisgICAgR1BpZCBwaWQgPSAwOworCisgICAg
SVBDOjpDb25uZWN0aW9uOjpTb2NrZXRQYWlyIHNvY2tldFBhaXIgPSBJUEM6OkNvbm5lY3Rpb246
OmNyZWF0ZVBsYXRmb3JtQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OkNvbm5lY3Rpb25PcHRp
b25zOjpTZXRDbG9leGVjT25TZXJ2ZXIpOworCisgICAgU3RyaW5nIGV4ZWN1dGFibGVQYXRoOwor
ICAgIENTdHJpbmcgcmVhbEV4ZWN1dGFibGVQYXRoOworICAgIHN3aXRjaCAobV9sYXVuY2hPcHRp
b25zLnByb2Nlc3NUeXBlKSB7CisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBl
OjpXZWI6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nl
c3MoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NU
eXBlOjpOZXR3b3JrOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZO
ZXR3b3JrUHJvY2VzcygpOworICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJP
Q0VTUykKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNlOgor
ICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3Mo
KTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlYWxFeGVjdXRh
YmxlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aCk7CisgICAg
R1VuaXF1ZVB0cjxnY2hhcj4gd2tTb2NrZXQoZ19zdHJkdXBfcHJpbnRmKCIlZCIsIHNvY2tldFBh
aXIuY2xpZW50KSk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gd3BlU29ja2V0OworCisgICAgdW5z
aWduZWQgbmFyZ3MgPSA0OyAvLyBzaXplIG9mIHRoZSBhcmd2IGFycmF5IGZvciBnX3NwYXduX2Fz
eW5jKCkKKyAgICBpZiAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVu
Y2hlcjo6UHJvY2Vzc1R5cGU6OldlYikgeworICAgICAgICB3cGVTb2NrZXQgPSBHVW5pcXVlUHRy
PGdjaGFyPihnX3N0cmR1cF9wcmludGYoIiVkIiwgd3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2Ns
aWVudCgpKSk7CisgICAgICAgIG5hcmdzID0gNTsKKyAgICB9CisKKyNpZiBFTkFCTEUoREVWRUxP
UEVSX01PREUpCisgICAgVmVjdG9yPENTdHJpbmc+IHByZWZpeEFyZ3M7CisgICAgaWYgKCFtX2xh
dW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZpeC5pc051bGwoKSkgeworICAgICAgICBWZWN0b3I8
U3RyaW5nPiBzcGxpdEFyZ3M7CisgICAgICAgIG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzQ21kUHJl
Zml4LnNwbGl0KCcgJywgc3BsaXRBcmdzKTsKKyAgICAgICAgZm9yIChhdXRvIGl0ID0gc3BsaXRB
cmdzLmJlZ2luKCk7IGl0ICE9IHNwbGl0QXJncy5lbmQoKTsgaXQrKykKKyAgICAgICAgICAgIHBy
ZWZpeEFyZ3MuYXBwZW5kKGl0LT51dGY4KCkpOworICAgICAgICBuYXJncyArPSBwcmVmaXhBcmdz
LnNpemUoKTsKKyAgICB9CisjZW5kaWYKKworICAgIGNoYXIqKiBhcmd2ID0gZ19uZXdhKGNoYXIq
LCBuYXJncyk7CisgICAgdW5zaWduZWQgaSA9IDA7CisjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RF
KQorICAgIC8vIElmIHRoZXJlJ3MgYSBwcmVmaXggY29tbWFuZCwgcHV0IGl0IGJlZm9yZSB0aGUg
cmVzdCBvZiB0aGUgYXJncy4KKyAgICBmb3IgKGF1dG8gaXQgPSBwcmVmaXhBcmdzLmJlZ2luKCk7
IGl0ICE9IHByZWZpeEFyZ3MuZW5kKCk7IGl0KyspCisgICAgICAgIGFyZ3ZbaSsrXSA9IGNvbnN0
X2Nhc3Q8Y2hhcio+KGl0LT5kYXRhKCkpOworI2VuZGlmCisgICAgYXJndltpKytdID0gY29uc3Rf
Y2FzdDxjaGFyKj4ocmVhbEV4ZWN1dGFibGVQYXRoLmRhdGEoKSk7CisgICAgYXJndltpKytdID0g
d2tTb2NrZXQuZ2V0KCk7CisgICAgaWYgKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQ
cm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWIpCisgICAgICAgIGFyZ3ZbaSsrXSA9IHdw
ZVNvY2tldC5nZXQoKTsKKyAgICBhcmd2W2krK10gPSBudWxscHRyOworCisgICAgR1VuaXF1ZU91
dFB0cjxHRXJyb3I+IGVycm9yOworICAgIGlmICghZ19zcGF3bl9hc3luYygwLCBhcmd2LCAwLCBH
X1NQQVdOX0xFQVZFX0RFU0NSSVBUT1JTX09QRU4sIGNoaWxkU2V0dXBGdW5jdGlvbiwgR0lOVF9U
T19QT0lOVEVSKHNvY2tldFBhaXIuc2VydmVyKSwgJnBpZCwgJmVycm9yLm91dFB0cigpKSkgewor
ICAgICAgICBnX3ByaW50ZXJyKCJVbmFibGUgdG8gZm9yayBhIG5ldyBXZWJQcm9jZXNzOiAlcy5c
biIsIGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
fQorCisgICAgLy8gRG9uJ3QgZXhwb3NlIHRoZSBwYXJlbnQgc29ja2V0IHRvIHBvdGVudGlhbCBm
dXR1cmUgY2hpbGRyZW4uCisgICAgd2hpbGUgKGZjbnRsKHNvY2tldFBhaXIuY2xpZW50LCBGX1NF
VEZELCBGRF9DTE9FWEVDKSA9PSAtMSkKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoZXJybm8gIT0g
RUlOVFIpOworCisgICAgY2xvc2Uoc29ja2V0UGFpci5jbGllbnQpOworICAgIG1fcHJvY2Vzc0lk
ZW50aWZpZXIgPSBwaWQ7CisKKyAgICAvLyBXZSd2ZSBmaW5pc2hlZCBsYXVuY2hpbmcgdGhlIHBy
b2Nlc3MsIG1lc3NhZ2UgYmFjayB0byB0aGUgbWFpbiBydW4gbG9vcC4KKyAgICBSZWZQdHI8UHJv
Y2Vzc0xhdW5jaGVyPiBwcm90ZWN0b3IodGhpcyk7CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIHNlcnZlclNvY2tldCA9IHNvY2tldFBhaXIuc2VydmVyOworICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbcHJvdGVjdG9yLCBwaWQsIHNlcnZlclNvY2tldF0geworICAgICAgICBw
cm90ZWN0b3ItPmRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3MocGlkLCBzZXJ2ZXJTb2NrZXQpOwor
ICAgIH0pOworfQorCit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6dGVybWluYXRlUHJvY2VzcygpCit7
CisgICAgaWYgKG1faXNMYXVuY2hpbmcpIHsKKyAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3Byb2Nlc3NJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBraWxsKG1fcHJvY2Vzc0lkZW50aWZpZXIsIFNJR0tJTEwpOworICAg
IG1fcHJvY2Vzc0lkZW50aWZpZXIgPSAwOworfQorCit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6cGxh
dGZvcm1JbnZhbGlkYXRlKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDFjOGVmNDYzY2My
Li44NDdmYjVjMzIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3Rv
clByb3h5LmgKQEAgLTIyNCw3ICsyMjQsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUHJlZmVyZW5j
ZXMmIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpIGNvbnN0OwogCi0jaWYgUExBVEZPUk0oR1RL
KQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHZvaWQgY3JlYXRlSW5z
cGVjdG9yV2luZG93KCk7CiAgICAgdm9pZCB1cGRhdGVJbnNwZWN0b3JXaW5kb3dUaXRsZSgpIGNv
bnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFz
dGVib2FyZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFBy
b3h5LmgKaW5kZXggMjY1NTczNjFmNTUuLjc3MmUxMDkxNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCkBAIC05NCw2ICs5NCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRQYXN0ZWJvYXJkU3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcm
LCB1aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpOwogICAgIHZvaWQgc2V0UGFzdGVib2FyZEJ1ZmZl
ckZvclR5cGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkVHlwZSwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCB1aW50NjRfdCBzaXplLCB1
aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAg
ICAgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNv
bnN0IFdlYlNlbGVjdGlvbkRhdGEmKTsKICAgICB2b2lkIHJlYWRGcm9tQ2xpcGJvYXJkKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYlNlbGVjdGlvbkRhdGEmKTsKQEAgLTEwMSw3ICsx
MDIsMTQgQEAgcHJpdmF0ZToKICAgICBXZWJGcmFtZVByb3h5KiBtX3ByaW1hcnlTZWxlY3Rpb25P
d25lciB7IG51bGxwdHIgfTsKICAgICBXZWJGcmFtZVByb3h5KiBtX2ZyYW1lV3JpdGluZ1RvQ2xp
cGJvYXJkIHsgbnVsbHB0ciB9OwogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKLSAgICAKKworI2lm
IFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGdldFBhc3RlYm9hcmRUeXBlcyhWZWN0b3I8U3RyaW5n
PiYgcGFzdGVib2FyZFR5cGVzKTsKKyAgICB2b2lkIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1
aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgV1RGOjpTdHJpbmcm
KTsKKyAgICB2b2lkIHdyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQ
YXN0ZWJvYXJkV2ViQ29udGVudCYpOworICAgIHZvaWQgd3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwog
ICAgIFdlYlByb2Nlc3NQcm94eUxpc3QgbV93ZWJQcm9jZXNzUHJveHlMaXN0OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggNzM2YTBhZDQ1MWMuLjcwMTU0NDNlYThmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4K
QEAgLTU1LDQgKzU1LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhc3RlYm9hcmRQcm94eSB7CiAgICAg
V3JpdGVUb0NsaXBib2FyZChTdHJpbmcgcGFzdGVib2FyZE5hbWUsIHN0cnVjdCBXZWJLaXQ6Oldl
YlNlbGVjdGlvbkRhdGEgcGFzdGVib2FyZENvbnRlbnQpCiAgICAgUmVhZEZyb21DbGlwYm9hcmQo
U3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoc3RydWN0IFdlYktpdDo6V2ViU2VsZWN0aW9uRGF0
YSBwYXN0ZWJvYXJkQ29udGVudCkKICNlbmRpZgorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIEdl
dFBhc3RlYm9hcmRUeXBlcygpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykKKyAgICBSZWFkU3Ry
aW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkg
LT4gKFN0cmluZyBzdHJpbmcpCisgICAgV3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKHN0cnVj
dCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCBjb250ZW50KQorICAgIFdyaXRlU3RyaW5n
VG9QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHRleHQpCisjZW5kaWYK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDBk
MzAyZGRhYjEzLi40ZDMyOWI0MGYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlBy
b2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQog
ICAgIG5vdGlmeVRoaXNXZWJQcm9jZXNzUG9vbFdhc0NyZWF0ZWQoKTsKIH0KIAotI2lmICFQTEFU
Rk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXUEUpCiB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDM3MGZmMmJhMWMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcApAQCAtMCwwICsx
LDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKKworI2luY2x1
ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
c3RhdGljIFRleHRDaGVja2VyU3RhdGUgdGV4dENoZWNrZXJTdGF0ZTsKKworY29uc3QgVGV4dENo
ZWNrZXJTdGF0ZSYgVGV4dENoZWNrZXI6OnN0YXRlKCkKK3sKKyAgICByZXR1cm4gdGV4dENoZWNr
ZXJTdGF0ZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0VGVzdGluZ01vZGUoYm9vbCkKK3sK
K30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNUZXN0aW5nTW9kZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OmlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2VkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0Q29udGludW91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChib29sKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmdyYW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0ZUNo
YW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitpbnQ2NF90IFRleHRD
aGVja2VyOjp1bmlxdWVTcGVsbERvY3VtZW50VGFnKFdlYlBhZ2VQcm94eSopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6
OmNsb3NlU3BlbGxEb2N1bWVudFdpdGhUYWcoaW50NjRfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcoaW50NjRf
dCwgU3RyaW5nVmlldywgaW50MzJfdCYsIGludDMyX3QmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNoZWNrR3JhbW1hck9mU3RyaW5nKGludDY0X3Qs
IFN0cmluZ1ZpZXcsIFZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludDMyX3QmLCBp
bnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFRleHRDaGVja2Vy
OjpzcGVsbGluZ1VJSXNTaG93aW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hv
d2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6
dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChpbnQ2NF90LCBjb25zdCBTdHJpbmcm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnVwZGF0
ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCBjb25z
dCBHcmFtbWFyRGV0YWlsJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRl
eHRDaGVja2VyOjpnZXRHdWVzc2VzRm9yV29yZChpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBpbnQzMl90LCBWZWN0b3I8U3RyaW5nPiYsIGJvb2wpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6bGVhcm5Xb3JkKGludDY0X3QsIGNv
bnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hl
Y2tlcjo6aWdub3JlV29yZChpbnQ2NF90LCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9uPiwgaW50MzJfdCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjViYWVlZTNjMTdmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQ
RS5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3Bl
Y3RvclByb3h5LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJQ
YWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2Uo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Zv
aWQgV2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUluc3BlY3RvcldpbmRvdygpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVu
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybURpZENsb3NlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURpZENsb3NlRm9yQ3Jhc2goKQoreworfQorCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUludmFsaWRhdGUoKQoreworfQorCit2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUhpZGUoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUJyaW5nSW5zcGVjdGVkUGFnZVRvRnJvbnQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK2Jvb2wgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSXNGcm9udCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6
aW5zcGVjdG9yUGFnZVVSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3Jn
L3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZS9NYWluLmh0bWwiKTsKK30KKworU3RyaW5nIFdl
Ykluc3BlY3RvclByb3h5OjppbnNwZWN0b3JUZXN0UGFnZVVSTCgpCit7CisgICAgcmV0dXJuIFN0
cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZS9UZXN0Lmh0
bWwiKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JCYXNlVVJMKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd3BlL2luc3BlY3Rvci9Vc2Vy
SW50ZXJmYWNlLyIpOworfQorCit1bnNpZ25lZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1J
bnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDA7Cit9CisKK3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3Rl
ZFdpbmRvd1dpZHRoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOwor
fQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1EZXRh
Y2goKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRB
dHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoQXZhaWxh
YmlsaXR5Q2hhbmdlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dw
ZS9XZWJQYWdlUHJveHlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQ
YWdlUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40
YTIwMmFiZWI0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93
cGUvV2ViUGFnZVByb3h5V1BFLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKworI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCit2b2lkIFdlYlBhZ2VQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2Vu
dChjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiAiTW96aWxsYS81LjAgKExpbnV4OyB4ODZf
NjQgR05VL0xpbnV4KSBBcHBsZVdlYktpdC82MDEuMSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNp
b24vOC4wIFNhZmFyaS82MDEuMSI7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzYXZlUmVjZW50
U2VhcmNoZXMoY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJj
aD4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojps
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNl
YXJjaD4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6cGxhdGZvcm1SZW1vdmVSZWNlbnRTZWFyY2hlcyhzdGQ6OmNocm9ubzo6c3lzdGVtX2Ns
b2NrOjp0aW1lX3BvaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vi
UGFnZVByb3h5OjplZGl0b3JTdGF0ZUNoYW5nZWQoY29uc3QgRWRpdG9yU3RhdGUmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZDNkMGViNDZkNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2Fy
ZFByb3h5V1BFLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJQYXN0ZWJvYXJkUHJveHkuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJv
YXJkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5
OjpnZXRQYXN0ZWJvYXJkVHlwZXMoVmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcykKK3sK
KyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS5nZXRUeXBlcyhwYXN0ZWJvYXJkVHlwZXMpOworfQor
Cit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2
NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBXVEY6OlN0cmluZyYgdmFs
dWUpCit7CisgICAgdmFsdWUgPSBQbGF0Zm9ybVBhc3RlYm9hcmQoKS5yZWFkU3RyaW5nKGluZGV4
LCBwYXN0ZWJvYXJkVHlwZSk7Cit9CisKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVdl
YkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQm
IGNvbnRlbnQpCit7CisgICAgUGxhdGZvcm1QYXN0ZWJvYXJkKCkud3JpdGUoY29udGVudCk7Cit9
CisKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVN0cmluZ1RvUGFzdGVib2FyZChjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgUGxh
dGZvcm1QYXN0ZWJvYXJkKCkud3JpdGUocGFzdGVib2FyZFR5cGUsIHRleHQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93
cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9X
ZWJQcmVmZXJlbmNlc1dQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmZmODFmY2RhMWNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90
SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUHJlZmVyZW5j
ZXM6OnBsYXRmb3JtSW5pdGlhbGl6ZVN0b3JlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVCb29sVmFsdWVGb3JLZXko
Y29uc3QgU3RyaW5nJiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZVVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0
cmluZyYsIHVpbnQzMl90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vi
UHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlRG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgZG91YmxlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVy
ZW5jZXM6OnBsYXRmb3JtVXBkYXRlRmxvYXRWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBmbG9h
dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjpw
bGF0Zm9ybUdldFN0cmluZ1VzZXJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBTdHJpbmcmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFdl
YlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldEJvb2xVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgYm9vbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0VUludDMyVXNlclZhbHVlRm9yS2V5
KGNvbnN0IFN0cmluZyYsIHVpbnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1HZXREb3Vi
bGVVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgZG91YmxlJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29s
V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mZGU0ZjMxNzI0NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vz
c1Bvb2xXUEUuY3BwCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAo
YykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzIEx0ZC4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgorCisjaW5jbHVkZSAiQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgiCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0
b3JTZXJ2ZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lz
dGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxjc3RkbGliPgorI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworLy8gRklYTUU6IE1lcmdlIHdpdGggV2ViUHJvY2Vzc1Bv
b2xHdGs/IEFic3RyYWN0IHRoZSBjb21tb24gcGFydHM/CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCitzdGF0aWMgdm9pZCBpbml0SW5zcGVjdG9y
U2VydmVyKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworICAgIGlm
IChpbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdGlhbGl6ZWQgPSB0cnVl
OworICAgIFN0cmluZyBzZXJ2ZXJBZGRyZXNzKGdfZ2V0ZW52KCJXRUJLSVRfSU5TUEVDVE9SX1NF
UlZFUiIpKTsKKworICAgIGlmICghc2VydmVyQWRkcmVzcy5pc051bGwoKSkgeworICAgICAgICBT
dHJpbmcgYmluZEFkZHJlc3MgPSAiMTI3LjAuMC4xIjsKKyAgICAgICAgdW5zaWduZWQgc2hvcnQg
cG9ydCA9IDI5OTk7CisKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0OworICAgICAgICBz
ZXJ2ZXJBZGRyZXNzLnNwbGl0KCc6JywgcmVzdWx0KTsKKworICAgICAgICBpZiAocmVzdWx0LnNp
emUoKSA9PSAyKSB7CisgICAgICAgICAgICBiaW5kQWRkcmVzcyA9IHJlc3VsdFswXTsKKyAgICAg
ICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAgICAgICAgICAgIHBvcnQgPSByZXN1bHRbMV0udG9J
bnQoJm9rKTsKKyAgICAgICAgICAgIGlmICghb2spIHsKKyAgICAgICAgICAgICAgICBwb3J0ID0g
Mjk5OTsKKyAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHBhcnNlIHRoZSBwb3J0
LiBVc2UgMjk5OSBpbnN0ZWFkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgcGFyc2UgJXMsIHdyb25nIGZvcm1hdD8gVXNl
IDEyNy4wLjAuMToyOTk5IGluc3RlYWQuIiwgc2VydmVyQWRkcmVzcy51dGY4KCkuZGF0YSgpKTsK
KworICAgICAgICBpZiAoIVdlYkluc3BlY3RvclNlcnZlcjo6c2luZ2xldG9uKCkubGlzdGVuKGJp
bmRBZGRyZXNzLCBwb3J0KSkKKyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3Qgc3RhcnQg
bGlzdGVuaW5nIG9uOiBJUCBhZGRyZXNzPSVzLCBwb3J0PSVkLiIsIGJpbmRBZGRyZXNzLnV0Zjgo
KS5kYXRhKCksIHBvcnQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTE9HKEluc3Bl
Y3RvclNlcnZlciwgIlRvIHN0YXJ0IGluc3BlY3RvciBzZXJ2ZXIgc2V0IFdFQktJVF9JTlNQRUNU
T1JfU0VSVkVSIHRvIDEyNy4wLjAuMToyOTk5IGZvciBleGFtcGxlLiIpOworfQorI2VuZGlmCisK
K1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRBcHBsaWNh
dGlvbkNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBjYWNoZURpcmVj
dG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAiYXBw
Y2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCitXVEY6OlN0cmlu
ZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9y
eSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gY2FjaGVEaXJlY3RvcnkoZ19idWlsZF9maWxl
bmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgIm1lZGlhY2FjaGUiLCBudWxscHRy
KSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRp
b24oY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemUoKQoreworICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAg
IG1fd2Vic2l0ZURhdGFTdG9yZS0+cmVnaXN0ZXJTaGFyZWRSZXNvdXJjZUxvYWRPYnNlcnZlcigp
OworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxF
KElOU1BFQ1RPUl9TRVJWRVIpCisgICAgaW5pdEluc3BlY3RvclNlcnZlcigpOworI2VuZGlmCisK
KyAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJs
ZWQgfHwgY2FjaGVNb2RlbCgpID09IENhY2hlTW9kZWxEb2N1bWVudFZpZXdlcjsKK30KKwordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9y
bURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hh
cj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGly
KCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpz
dHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGRhdGFiYXNlRGlyZWN0b3J5LmdldCgp
KTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRJbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gaW5kZXhl
ZERCRGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGly
KCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgImluZGV4ZWRkYiIsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihpbmRleGVkREJE
YXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0aCgpIGNvbnN0Cit7CisgICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hl
X2RpcigpLCAid3BlIiwgImljb25kYXRhYmFzZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkYXRhYmFzZURpcmVjdG9y
eS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZh
dWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBzdG9y
YWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3Bl
IiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5n
RnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30K
KworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNT
dG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBtZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3Bl
IiwgIm1lZGlha2V5cyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJv
bUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5LmdldCgp
KTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3
b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Y2hhcj4gZGlza0NhY2hlRGly
ZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJj
YWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihkaXNrQ2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcg
V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0
aW9uRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBqYXZhU2NyaXB0Q29yZUNv
bmZpZ0RpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndw
ZSIsICJKYXZhU2NyaXB0Q29yZURlYnVnIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3Jl
OjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGphdmFTY3JpcHRDb3JlQ29uZmln
RGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNv
bHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDQ4OTZjMzEzNjk4Li44YjVkZjY3MDliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTU0NSw3ICs5NTQ1LDcg
QEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
CXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJXS0JBU0VfSD0ke1RBUkdF
VF9CVUlMRF9ESVJ9LyR7UFJJVkFURV9IRUFERVJTX0ZPTERFUl9QQVRIfS9XS0Jhc2UuaFxuXG51
bmlmZGVmIC1CIC1EX19BUFBMRV9fIC1VQlVJTERJTkdfR1RLX18gLVVVU0VfU09VUCAtbyBcIiR7
V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9XCJcblxuY2FzZSAkPyBpblxuMClcbiAg
ICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZlxuICAgIDs7XG4xKVxuICAgIG12IFwiJHtXS0JB
U0VfSH1cInsudW5pZmRlZix9XG4gICAgOztcbiopXG4gICAgZXhpdCAxXG5lc2FjXG4iOworCQkJ
c2hlbGxTY3JpcHQgPSAiV0tCQVNFX0g9JHtUQVJHRVRfQlVJTERfRElSfS8ke1BSSVZBVEVfSEVB
REVSU19GT0xERVJfUEFUSH0vV0tCYXNlLmhcblxudW5pZmRlZiAtQiAtRF9fQVBQTEVfXyAtVUJV
SUxESU5HX0dUS19fIC1VQlVJTERJTkdfV1BFX18gLVVVU0VfU09VUCAtbyBcIiR7V0tCQVNFX0h9
XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9XCJcblxuY2FzZSAkPyBpblxuMClcbiAgICBybSBcIiR7
V0tCQVNFX0h9XCIudW5pZmRlZlxuICAgIDs7XG4xKVxuICAgIG12IFwiJHtXS0JBU0VfSH1cInsu
dW5pZmRlZix9XG4gICAgOztcbiopXG4gICAgZXhpdCAxXG5lc2FjXG4iOwogCQl9OwogCQkzN0U1
MzEwMTFCMjM5MTA5MDA3NEYwREYgLyogQ29weSBpT1MgU2FuZGJveCBQcm9maWxlcyBmb3IgTWFu
dWFsIFNhbmRib3hpbmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyUHJlZml4LmgKaW5kZXggNTc1MDliOTdhNGMuLmUyYmU4MDlkOGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0MlByZWZpeC5oCkBAIC01Nyw3ICs1Nyw3IEBACiAKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogI2RlZmluZSBF
TkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHAKaW5kZXggYzkxYjQ1YTljNTEuLjA4YTY4ZDA3OTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZG8oKQogICAg
IG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRv
KHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJQYWdlUHJveHk6OlJlZG8pKSwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvOjpSZXBseShyZXN1bHQpKTsKIH0KIAotI2lmICFQ
TEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAh
UExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXUEUpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6
aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAobV9w
YWdlLT5oYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChldmVudCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IDU1MzdmMTlmMDZkLi4yYWM1ZmRhNDEwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE3OTgsNCArMTc5OCwxMyBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRpbmdJY29uKHVpbnQ2NF90IGxvYWRJZGVu
dGlmaWVyLCBTaGFyZWRCdQogICAgIH0KIH0KIAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
c2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBXZWJDb3JlOjpVUkwmKSBjb25zdAoreworI2lm
IFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIHJldHVybiB0cnVl
OworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCmluZGV4IDIxMmYxMGZkZGUxLi4zZjAzZTY5MzlmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtMjYyLDYgKzI2Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBn
ZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29uJiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkgZmluYWw7CiAgICAgdm9pZCBmaW5pc2hlZExvYWRpbmdJY29uKHVpbnQ2NF90
IGxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIqKSBmaW5hbDsKIAorICAgIGJv
b2wgc2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBXZWJDb3JlOjpVUkwmKSBjb25zdCBvdmVy
cmlkZTsKKwogICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBt
X3BsdWdpblZpZXc7CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luVmlldzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAyZWRmNGI3NmQ1NC4uYjI1NzE2
ODBkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTM2MCw0ICsz
NjAsMzEgQEAgUmVmPFNlbGVjdGlvbkRhdGE+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZEZy
b21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWIKIAogI2VuZGlmIC8vIFBMQVRGT1JNKEdU
SykKIAorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIFBhc3RlYm9hcmRTdHJhdGVneQorCit2b2lkIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKQorewor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldFBhc3RlYm9hcmRUeXBlcygp
LCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpHZXRQYXN0ZWJvYXJkVHlwZXM6OlJlcGx5
KHR5cGVzKSwgMCk7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRTdHJp
bmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUp
Cit7CisgICAgU3RyaW5nIHZhbHVlOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJv
eHk6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbmRleCwgcGFzdGVib2FyZFR5cGUpLCBNZXNz
YWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQ6OlJlcGx5
KHZhbHVlKSwgMCk7CisgICAgcmV0dXJuIHZhbHVlOworfQorCit2b2lkIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNv
bnRlbnQmIGNvbnRlbnQpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpXcml0
ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29udGVudCksIDApOworfQorCit2b2lkIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQ
cm94eTo6V3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQocGFzdGVib2FyZFR5cGUsIHRleHQpLCAwKTsK
K30KKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCBlNDM4N2M5MzAyMS4uYWVjNzliY2Zj
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtODYsMTAgKzg2LDE4IEBA
IHByaXZhdGU6CiAgICAgbG9uZyBzZXRQYXRobmFtZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgbG9uZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCB3
cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFdlYkNv
cmU6OlNlbGVjdGlvbkRhdGEmKSBvdmVycmlkZTsKICAgICBSZWY8V2ViQ29yZTo6U2VsZWN0aW9u
RGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3Zl
cnJpZGU7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmRUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQo
Y29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwg
Y29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZDAzNGIwMjY3MwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dl
YkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJDb250ZXh0TWVudUNsaWVudC5oIgorCisjaWYgRU5BQkxFKENPTlRFWFRf
TUVOVVMpCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpsb29rVXBJbkRpY3Rpb25h
cnkoV2ViQ29yZTo6RnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wg
V2ViQ29udGV4dE1lbnVDbGllbnQ6OmlzU3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpz
cGVhayhjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
V2ViQ29udGV4dE1lbnVDbGllbnQ6OnN0b3BTcGVha2luZygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZGNhMzAyNGNlZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVk
aXRvckNsaWVudFdQRS5jcHAKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkVkaXRvckNsaWVudC5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRWRp
dG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTm9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93c0tleWJvYXJkQ29kZXMu
aD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBUaGUgaWRlYSBmb3IgdGhlIGFycmF5
L21hcCBiZWxvdyBjb21lcyBmcm9tIEJsaW5rJ3MgRWRpdGluZ0JlaGF2aW9yLmNwcC4KKworc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIEN0cmxLZXkgID0gMSA8PCAwOworc3RhdGljIGNvbnN0IHVuc2ln
bmVkIEFsdEtleSAgID0gMSA8PCAxOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIFNoaWZ0S2V5ID0g
MSA8PCAyOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIE1ldGFLZXkgID0gMSA8PCAzOworCisvLyBL
ZXlzIHdpdGggc3BlY2lhbCBtZWFuaW5nLiBUaGVzZSB3aWxsIGJlIGRlbGVnYXRlZCB0byB0aGUg
ZWRpdG9yIHVzaW5nCisvLyB0aGUgZXhlY0NvbW1hbmQoKSBtZXRob2QKK3N0cnVjdCBLZXlEb3du
RW50cnkgeworICAgIHVuc2lnbmVkIHZpcnR1YWxLZXk7CisgICAgdW5zaWduZWQgbW9kaWZpZXJz
OworICAgIGNvbnN0IGNoYXIqIG5hbWU7Cit9OworCitzdHJ1Y3QgS2V5UHJlc3NFbnRyeSB7Cisg
ICAgdW5zaWduZWQgY2hhckNvZGU7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzOworICAgIGNvbnN0
IGNoYXIqIG5hbWU7Cit9OworCitzdGF0aWMgY29uc3QgS2V5RG93bkVudHJ5IGtleURvd25FbnRy
aWVzW10gPSB7CisgICAgeyBWS19MRUZULCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVMZWZ0
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAgU2hp
ZnRLZXksICAgICAgICAgICAiTW92ZUxlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZExlZnQi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXkg
fCBTaGlmdEtleSwKKyAgICAgICAgIk1vdmVXb3JkTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICAw
LCAgICAgICAgICAgICAgICAgICJNb3ZlUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19SSUdIVCwgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVSaWdodEFu
ZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgQ3RybEtl
eSwgICAgICAgICAgICAiTW92ZVdvcmRSaWdodCIgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfUklHSFQsICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlV29yZFJpZ2h0QW5k
TW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgIH0sCisgICAgeyBWS19VUCwgICAgIDAsICAgICAgICAg
ICAgICAgICAgIk1vdmVVcCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX1VQLCAgICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVVwQW5kTW9kaWZ5U2VsZWN0
aW9uIiAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUFJJT1IsICBTaGlmdEtleSwgICAgICAg
ICAgICJNb3ZlUGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgIH0sCisgICAgeyBW
S19ET1dOLCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVEb3duIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RPV04sICAgU2hpZnRLZXksICAgICAgICAgICAi
TW92ZURvd25BbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICB9LAorICAgIHsgVktfTkVY
VCwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUGFnZURvd25BbmRNb2RpZnlTZWxlY3Rpb24i
ICAgICAgICAgIH0sCisgICAgeyBWS19VUCwgICAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVQ
YXJhZ3JhcGhCYWNrd2FyZEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7IFZLX0RPV04sICAg
Q3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVBhcmFncmFwaEZvcndhcmRBbmRNb2RpZnlTZWxlY3Rp
b24iICB9LAorICAgIHsgVktfUFJJT1IsICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUGFnZVVw
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ORVhULCAgIDAsICAg
ICAgICAgICAgICAgICAgIk1vdmVQYWdlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX0hPTUUsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5n
T2ZMaW5lIiAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICBTaGlmdEtleSwK
KyAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5LCAgICAg
ICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50IiAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19IT01FLCAgIEN0cmxLZXkgfCBTaGlmdEtleSwKKyAgICAgICAgIk1vdmVUb0JlZ2lubmlu
Z09mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfRU5ELCAgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVG9FbmRPZkxpbmUi
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIFNoaWZ0S2V5LCAg
ICAgICAgICAgIk1vdmVUb0VuZE9mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgfSwKKyAg
ICB7IFZLX0VORCwgICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVRvRW5kT2ZEb2N1bWVudCIg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBDdHJsS2V5IHwgU2hpZnRL
ZXksCisgICAgICAgICJNb3ZlVG9FbmRPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgMCwgICAgICAg
ICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfQkFDSywgICBTaGlmdEtleSwgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIDAsICAgICAgICAgICAg
ICAgICAgIkRlbGV0ZUZvcndhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0JBQ0ssICAgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29yZEJhY2t3YXJkIiAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfREVMRVRFLCBDdHJsS2V5LCAgICAgICAgICAg
ICJEZWxldGVXb3JkRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQics
ICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZUJvbGQiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7ICdJJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVG9n
Z2xlSXRhbGljIiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1UnLCAgICAg
ICAgIEN0cmxLZXksICAgICAgICAgICJUb2dnbGVVbmRlcmxpbmUiICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19FU0NBUEUsIDAsICAgICAgICAgICAgICAgICAgIkNhbmNlbCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX09FTV9QRVJJT0Qs
IEN0cmxLZXksICAgICAgICAiQ2FuY2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfVEFCLCAgICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnRUYWIiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19UQUIsICAgIFNoaWZ0S2V5
LCAgICAgICAgICAgIkluc2VydEJhY2t0YWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX1JFVFVSTiwgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBDdHJsS2V5LCAgICAg
ICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19SRVRVUk4sIEFsdEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5IHwgU2hpZnRLZXks
ICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktf
UkVUVVJOLCBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRMaW5lQnJlYWsiICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgLy8gVGhlc2UgcHJvYmFibHkgbmVlZCBoYW5kbGluZyBzb21l
d2hlcmUgZWxzZSBzbyBkbyBub3QgZXhlY3V0ZSB0aGVtLiBUaGUKKyAgICAvLyAnQ3V0JyBjb21t
YW5kIGlzIHJlbW92aW5nIHRleHQgc28gbGV0J3MgYXZvaWQgbG9zaW5nIHRoZSB1c2VyIGxvc2lu
ZyBkYXRhCisgICAgLy8gdW50aWwgd2UgaW1wbGVtZW50IGNsaXBib2FyZCBzdXBwb3J0IHdoZXJl
dmVyIGl0IHNob3VsZCBiZS4KKyAgICB7IFZLX0lOU0VSVCwgQ3RybEtleSwgICAgICAgICAgICAi
Q29weSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSU5T
RVJULCBTaGlmdEtleSwgICAgICAgICAgICJQYXN0ZSIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIFNoaWZ0S2V5LCAgICAgICAgICAgIkN1dCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdDJywgICAgICAg
ICBDdHJsS2V5LCAgICAgICAgICAiQ29weSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgJ1YnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJQYXN0ZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnVicsICAgICAgICAgQ3Ry
bEtleSB8IFNoaWZ0S2V5LCAiUGFzdGVBbmRNYXRjaFN0eWxlIiAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdYJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiQ3V0IiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0EnLCAgICAgICAgIEN0cmxLZXks
ICAgICAgICAgICJTZWxlY3RBbGwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyAnWicsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlVuZG8iICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdaJywgICAgICAgICBDdHJsS2V5IHwgU2hp
ZnRLZXksICJSZWRvIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
J1knLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJSZWRvIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19JTlNFUlQsIDAsICAgICAgICAgICAgICAgICAg
Ik92ZXJXcml0ZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKK307CisKK3N0YXRp
YyBjb25zdCBLZXlQcmVzc0VudHJ5IGtleVByZXNzRW50cmllc1tdID0geworICAgIHsgJ1x0Jywg
ICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnRUYWIiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnXHQnLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydEJh
Y2t0YWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgMCwg
ICAgICAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgJ1xyJywgICBDdHJsS2V5LCAgICAgICAgICAgICJJbnNlcnROZXdsaW5l
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIFNoaWZ0S2V5
LCAgICAgICAgICAgIkluc2VydExpbmVCcmVhayIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdccicsICAgQWx0S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXkgfCBTaGlm
dEtleSwgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9
OworCitzdGF0aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgS2V5Ym9hcmRF
dmVudCYgZXZlbnQpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8aW50LCBj
b25zdCBjaGFyKj4+IGtleURvd25Db21tYW5kc01hcDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8SGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPj4ga2V5UHJlc3NDb21tYW5kc01hcDsKKworICAg
IGlmIChrZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleURvd25FbnRyaWVzKTsgaSsr
KQorICAgICAgICAgICAga2V5RG93bkNvbW1hbmRzTWFwLmdldCgpLnNldChrZXlEb3duRW50cmll
c1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlEb3duRW50cmllc1tpXS52aXJ0dWFsS2V5LCBrZXlE
b3duRW50cmllc1tpXS5uYW1lKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdU
Rl9BUlJBWV9MRU5HVEgoa2V5UHJlc3NFbnRyaWVzKTsgaSsrKQorICAgICAgICAgICAga2V5UHJl
c3NDb21tYW5kc01hcC5nZXQoKS5zZXQoa2V5UHJlc3NFbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAx
NiB8IGtleVByZXNzRW50cmllc1tpXS5jaGFyQ29kZSwga2V5UHJlc3NFbnRyaWVzW2ldLm5hbWUp
OworICAgIH0KKworICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50LnNo
aWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBTaGlmdEtleTsKKyAgICBpZiAoZXZlbnQu
YWx0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBBbHRLZXk7CisgICAgaWYgKGV2ZW50LmN0
cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisgICAgaWYgKGV2ZW50Lm1l
dGFLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IE1ldGFLZXk7CisKKyAgICBpZiAoZXZlbnQu
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpIHsKKyAgICAgICAgaW50IG1hcEtl
eSA9IG1vZGlmaWVycyA8PCAxNiB8IGV2ZW50LmtleUNvZGUoKTsKKyAgICAgICAgcmV0dXJuIG1h
cEtleSA/IGtleURvd25Db21tYW5kc01hcC5nZXQoKS5nZXQobWFwS2V5KSA6IG51bGxwdHI7Cisg
ICAgfQorCisgICAgaW50IG1hcEtleSA9IG1vZGlmaWVycyA8PCAxNiB8IGV2ZW50LmNoYXJDb2Rl
KCk7CisgICAgcmV0dXJuIG1hcEtleSA/IGtleVByZXNzQ29tbWFuZHNNYXAuZ2V0KCkuZ2V0KG1h
cEtleSkgOiBudWxscHRyOworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVLZXlQcmVzcyhGcmFtZSYg
ZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQm
IHBsYXRmb3JtRXZlbnQpCit7CisgICAgU3RyaW5nIGNvbW1hbmROYW1lID0gaW50ZXJwcmV0S2V5
RXZlbnQoZXZlbnQpOworCisgICAgaWYgKCFjb21tYW5kTmFtZS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21tYW5kTmFtZSkuZXhlY3V0ZSgpOworICAgICAg
ICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgLy8gRG9uJ3QgaW5zZXJ0IG51bGwgb3IgY29udHJvbCBjaGFyYWN0ZXJzIGFzIHRoZXkgY2Fu
IHJlc3VsdCBpbiB1bmV4cGVjdGVkIGJlaGF2aW91cgorICAgIGlmIChldmVudC5jaGFyQ29kZSgp
IDwgJyAnKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBEb24ndCBpbnNlcnQgYW55dGhpbmcg
aWYgYSBtb2RpZmllciBpcyBwcmVzc2VkIGFuZCBpdCBoYXMgbm90IGJlZW4gaGFuZGxlZCB5ZXQK
KyAgICBpZiAocGxhdGZvcm1FdmVudC5jdHJsS2V5KCkgfHwgcGxhdGZvcm1FdmVudC5hbHRLZXko
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGZyYW1lLmVkaXRvcigpLmluc2VydFRleHQo
cGxhdGZvcm1FdmVudC50ZXh0KCksICZldmVudCkpCisgICAgICAgIGV2ZW50LnNldERlZmF1bHRI
YW5kbGVkKCk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbmRsZUtleURvd24oRnJhbWUmIGZyYW1lLCBL
ZXlib2FyZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JikKK3sKKyAg
ICBTdHJpbmcgY29tbWFuZE5hbWUgPSBpbnRlcnByZXRLZXlFdmVudChldmVudCk7CisgICAgaWYg
KGNvbW1hbmROYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2Ugc2hv
dWxkbid0IGluc2VydCB0ZXh0IHRocm91Z2ggdGhlIGVkaXRvci4gTGV0IFdlYkNvcmUgZGVjaWRl
CisgICAgLy8gaG93IHRvIGhhbmRsZSB0aGF0IChzYXksIFRhYiwgd2hpY2ggY291bGQgYWxzbyBi
ZSB1c2VkIHRvCisgICAgLy8gY2hhbmdlIGZvY3VzKS4KKyAgICBFZGl0b3I6OkNvbW1hbmQgY29t
bWFuZCA9IGZyYW1lLmVkaXRvcigpLmNvbW1hbmQoY29tbWFuZE5hbWUpOworICAgIGlmIChjb21t
YW5kLmlzVGV4dEluc2VydGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb21tYW5kLmV4
ZWN1dGUoKTsKKyAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOworfQorCit2b2lkIFdlYkVk
aXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50KiBl
dmVudCkKK3sKKyAgICBOb2RlKiBub2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKKyAg
ICBBU1NFUlQobm9kZSk7CisgICAgRnJhbWUqIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFt
ZSgpOworICAgIEFTU0VSVChmcmFtZSk7CisKKyAgICAvLyBGSVhNRTogUmVvcmRlciB0aGUgY2hl
Y2tzIGluIGEgbW9yZSBzZW5zaWJsZSB3YXkuCisKKyAgICBjb25zdCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQqIHBsYXRmb3JtRXZlbnQgPSBldmVudC0+a2V5RXZlbnQoKTsKKyAgICBpZiAoIXBsYXRm
b3JtRXZlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIElmIHRoaXMgd2FzIGFuIElNRSBl
dmVudCBkb24ndCBkbyBhbnl0aGluZy4KKyAgICBpZiAocGxhdGZvcm1FdmVudC0+d2luZG93c1Zp
cnR1YWxLZXlDb2RlKCkgPT0gVktfUFJPQ0VTU0tFWSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gRG9uJ3QgYWxsb3cgdGV4dCBpbnNlcnRpb24gZm9yIG5vZGVzIHRoYXQgY2Fubm90IGVkaXQu
CisgICAgaWYgKCFmcmFtZS0+ZWRpdG9yKCkuY2FuRWRpdCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBUaGlzIGlzIGp1c3QgYSBub3JtYWwgdGV4dCBpbnNlcnRpb24sIHNvIHdhaXQgdG8g
ZXhlY3V0ZSB0aGUgaW5zZXJ0aW9uCisgICAgLy8gdW50aWwgYSBrZXlwcmVzcyBldmVudCBoYXBw
ZW5zLiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgdGhlIGluc2VydGlvbiB3aWxsIG5vdAorICAgIC8v
IGJlIHJlZmxlY3RlZCBpbiB0aGUgY29udGVudHMgb2YgdGhlIGZpZWxkIHVudGlsIHRoZSBrZXl1
cCBET00gZXZlbnQuCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXBy
ZXNzRXZlbnQpCisgICAgICAgIHJldHVybiBoYW5kbGVLZXlQcmVzcygqZnJhbWUsICpldmVudCwg
KnBsYXRmb3JtRXZlbnQpOworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5r
ZXlkb3duRXZlbnQpCisgICAgICAgIHJldHVybiBoYW5kbGVLZXlEb3duKCpmcmFtZSwgKmV2ZW50
LCAqcGxhdGZvcm1FdmVudCk7Cit9CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1
dE1ldGhvZEtleWRvd24oV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgY29u
c3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50KiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQtPmtleUV2ZW50
KCk7CisgICAgaWYgKHBsYXRmb3JtRXZlbnQgJiYgcGxhdGZvcm1FdmVudC0+d2luZG93c1ZpcnR1
YWxLZXlDb2RlKCkgPT0gVktfUFJPQ0VTU0tFWSkKKyAgICAgICAgZXZlbnQtPnByZXZlbnREZWZh
dWx0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVu
dVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhYjgzN2Iw
YTRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90
SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUG9wdXBNZW51
OjpzZXRVcFBsYXRmb3JtRGF0YShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1Ro
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCA2MGU5MTY3OTliMy4uZDNk
ZjQ2YTE4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTc0LDEwICs3NCwxMCBA
QCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6VGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3QoV2ViUGFnZSYgd2ViUAogICAgICAgICAvLyBEbyBub3QgZG8gZnJhbWUgc3lu
YyB3aGVuIHJlbmRlcmluZyBvZmZzY3JlZW4gaW4gdGhlIHdlYiBwcm9jZXNzIHRvIGVuc3VyZSB0
aGF0IFN3YXBCdWZmZXJzIG5ldmVyIGJsb2Nrcy4KICAgICAgICAgLy8gUmVuZGVyaW5nIHRvIHRo
ZSBhY3R1YWwgc2NyZWVuIHdpbGwgaGFwcGVuIGxhdGVyIGFueXdheSBzaW5jZSB0aGUgVUkgcHJv
Y2VzcyBzY2hlZHVsZXMgYSByZWRyYXcgZm9yIGV2ZXJ5IHVwZGF0ZSwKICAgICAgICAgLy8gdGhl
IGNvbXBvc2l0b3Igd2lsbCB0YWtlIGNhcmUgb2Ygc3luY2luZyB0byB2YmxhbmsuCi0gICAgICAg
IG1fY29tcG9zaXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNs
aWVudCwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IsIG1fc3VyZmFjZS0+d2luZG93KCksIFRocmVh
ZGVkQ29tcG9zaXRvcjo6U2hvdWxkRG9GcmFtZVN5bmM6OlllcywgcGFpbnRGbGFncyk7CisgICAg
ICAgIG1fY29tcG9zaXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRv
ckNsaWVudCwgd2ViUGFnZSwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IsIG1fc3VyZmFjZS0+d2lu
ZG93KCksIFRocmVhZGVkQ29tcG9zaXRvcjo6U2hvdWxkRG9GcmFtZVN5bmM6OlllcywgcGFpbnRG
bGFncyk7CiAgICAgICAgIG1fbGF5ZXJUcmVlQ29udGV4dC5jb250ZXh0SUQgPSBtX3N1cmZhY2Ut
PnN1cmZhY2VJRCgpOwogICAgIH0gZWxzZQotICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRl
ZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHNjYWxlZFNpemUsIHNjYWxl
RmFjdG9yKTsKKyAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVh
dGUobV9jb21wb3NpdG9yQ2xpZW50LCB3ZWJQYWdlLCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvcik7
CiAKICAgICBkaWRDaGFuZ2VWaWV3cG9ydCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKaW5kZXggMmU3ODBkOTFiZTUuLjVmMDkz
YWM3YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNs
dWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLmgiCisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiRHJh
d2luZ0FyZWFXUEUuaCIKICNlbHNlCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJbXBsLmgiCiAjZW5k
aWYKQEAgLTU1LDYgKzU3LDkgQEAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhPiBEcmF3aW5n
QXJlYTo6Y3JlYXRlKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2UKICNlbmRpZgogICAg
IGNhc2UgRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlOgogICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4od2ViUGFnZSwgcGFyYW1l
dGVycyk7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVXUEU6
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPERyYXdpbmdBcmVhV1BFPih3ZWJQYWdl
LCBwYXJhbWV0ZXJzKTsKICNlbHNlCiAgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVJbXBsOgogICAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJlYUltcGw+KHdlYlBhZ2UsIHBh
cmFtZXRlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDIxYjEyY2RiZTIzLi5lNTEyYmJiNjc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzQ5NSw3ICszNDk1LDcgQEAgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBXZWJQYWdlOjpub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmEKICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuZ2V0KCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZP
Uk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExB
VEZPUk0oV1BFKQogYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXli
b2FyZEV2ZW50KiBldnQpCiB7CiAgICAgTm9kZSogbm9kZSA9IGV2dC0+dGFyZ2V0KCktPnRvTm9k
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
MGIwNTYxYmIxNjcuLjIzNDFjMTM4MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwMTgsNyArMTAxOCw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
ICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFURk9STShDT0NPQSkgJiYg
IVBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQo
Y29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5h
Z2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGUyM2QzNDBk
OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJDb21wb3NpdGlu
Z01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworQ29tcG9zaXRpbmdNYW5hZ2VyOjp+Q29tcG9zaXRpbmdNYW5hZ2VyKCkK
K3sKKyAgICBBU1NFUlQobV9jb25uZWN0aW9uRmQgPT0gLTEpOworfQorCit2b2lkIENvbXBvc2l0
aW5nTWFuYWdlcjo6ZXN0YWJsaXNoQ29ubmVjdGlvbihXZWJQYWdlJiB3ZWJQYWdlKQoreworICAg
IElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlOworICAgIHdlYlBhZ2Uuc2VuZFN5bmMo
TWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjpFc3RhYmxpc2hDb25uZWN0aW9uKCks
CisgICAgICAgIE1lc3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6RXN0YWJsaXNoQ29u
bmVjdGlvbjo6UmVwbHkoY29ubmVjdGlvbkhhbmRsZSkpOworCisgICAgbV9jb25uZWN0aW9uRmQg
PSBjb25uZWN0aW9uSGFuZGxlLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4yNjMxYTMxYzk5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmgKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIENvbXBvc2l0aW5nTWFuYWdlcl9oCisjZGVmaW5lIENvbXBvc2l0aW5nTWFu
YWdlcl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFuYWdlciBmaW5hbCB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdNYW5hZ2VyKTsKK3B1YmxpYzoK
KyAgICBDb21wb3NpdGluZ01hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgfkNvbXBvc2l0aW5nTWFu
YWdlcigpOworCisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmKTsKKyAgICBp
bnQgcmVsZWFzZUNvbm5lY3Rpb25GZCgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9jb25uZWN0
aW9uRmQsIC0xKTsgfTsKKworcHJpdmF0ZToKKyAgICBpbnQgbV9jb25uZWN0aW9uRmQgeyAtMSB9
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBDb21wb3NpdGluZ01h
bmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUv
RHJhd2luZ0FyZWFXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9EcmF3aW5nQXJlYVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjM0NDdhYzhjYjBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHAKQEAgLTAsMCArMSwxOTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYXdpbmdBcmVhV1BFLmgiCisKKyNpbmNsdWRlICJEcmF3
aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAi
V2ViUHJlZmVyZW5jZXNLZXlzLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9NYWluRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK0RyYXdpbmdBcmVhV1BFOjpEcmF3aW5nQXJlYVdQRShX
ZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJikKKyAgICA6
IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVdQRSwgd2ViUGFnZSkKK3sKKyAgICB3ZWJQYWdl
LmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7Cisg
ICAgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgwKTsKK30KKworRHJhd2luZ0FyZWFX
UEU6On5EcmF3aW5nQXJlYVdQRSgpCit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmxheWVy
SG9zdERpZEZsdXNoTGF5ZXJzKCkKK3sKKyAgICBtX3dlYlBhZ2Uuc2VuZChNZXNzYWdlczo6RHJh
d2luZ0FyZWFQcm94eTo6RW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgwLCBtX2xheWVy
VHJlZUhvc3QtPmxheWVyVHJlZUNvbnRleHQoKSkpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BF
OjpzZXROZWVkc0Rpc3BsYXkoKQoreworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAg
IG1fbGF5ZXJUcmVlSG9zdC0+c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoKTsK
K30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IElu
dFJlY3QmIHJlY3QpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXll
clRyZWVIb3N0LT5zZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheUluUmVjdChyZWN0
KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9s
bFJlY3QsIGNvbnN0IEludFNpemUmKQoreworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOwor
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKHNjcm9sbFJl
Y3QpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpwYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5j
eUNoYW5nZWQoKQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJU
cmVlSG9zdC0+cGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCk7Cit9CisKK3ZvaWQg
RHJhd2luZ0FyZWFXUEU6OmZvcmNlUmVwYWludCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworYm9vbCBEcmF3aW5nQXJlYVdQRTo6Zm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgY2Fs
bGJhY2tJRCkKK3sKKyAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0ICYmIG1fbGF5ZXJUcmVlSG9z
dC0+Zm9yY2VSZXBhaW50QXN5bmMoY2FsbGJhY2tJRCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4oYm9vbCBmcm96ZW4pCit7CisgICAgbV9sYXll
clRyZWVTdGF0ZUlzRnJvemVuID0gZnJvemVuOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpz
ZXRQYWludGluZ0VuYWJsZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIERyYXdpbmdBcmVhV1BFOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJiBzdG9yZSkKK3sKKyAgICBtX3dlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5z
ZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OmZvcmNlQ29tcG9zaXRpbmdNb2RlS2V5KCkpKTsKK30KKwordm9pZCBEcmF3aW5n
QXJlYVdQRTo6bWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHNpemUpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5jb250ZW50c1NpemVDaGFuZ2VkKHNpemUpOworfQorCitHcmFwaGljc0xheWVyRmFj
dG9yeSogRHJhd2luZ0FyZWFXUEU6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkKK3sKKyAgICBpZiAo
bV9sYXllclRyZWVIb3N0KQorICAgICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0LT5ncmFwaGlj
c0xheWVyRmFjdG9yeSgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lkIERyYXdpbmdB
cmVhV1BFOjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihHcmFwaGljc0xheWVyKiBncmFwaGljc0xh
eWVyKQoreworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9z
dC0+c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoZ3JhcGhpY3NMYXllcik7Cit9CisKK3ZvaWQgRHJh
d2luZ0FyZWFXUEU6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3sKKyAgICBpZiAo
bV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNjaGVkdWxlTGF5ZXJG
bHVzaCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5
ZXJGbHVzaEltbWVkaWF0ZWx5KCkKK3sKKyAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCgpOworfQorCisjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRP
UikKK1JlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IERyYXdpbmdBcmVhV1BF
OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlE
KQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIHJldHVybiBtX2xheWVyVHJl
ZUhvc3QtPmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpOworCisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6YXR0YWNoVmll
d092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciogdmlld092ZXJsYXlSb290TGF5ZXIpCit7CisgICAgaWYgKCFmcmFtZS0+aXNN
YWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9z
dCk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3T3ZlcmxheVJvb3RMYXllcih2aWV3T3Zl
cmxheVJvb3RMYXllcik7Cit9CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFE
RUQpCit2b2lkIERyYXdpbmdBcmVhV1BFOjpkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2Vi
Q29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiYpCit7Cit9CisjZW5kaWYKKworI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykgfHwgVVNFKFRFWFRVUkVfTUFQUEVSKQordm9pZCBEcmF3aW5nQXJl
YVdQRTo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkKK3sKK30KKyNlbmRpZgorCit2
b2lkIERyYXdpbmdBcmVhV1BFOjp1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCwgYm9v
bCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCkKK3sKKyAgICBtX3dlYlBhZ2Uu
c2V0RGV2aWNlU2NhbGVGYWN0b3IoZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIG1fd2ViUGFnZS5z
ZXRTaXplKHNpemUpOworICAgIG1fd2ViUGFnZS5sYXlvdXRJZk5lZWRlZCgpOworICAgIG1fd2Vi
UGFnZS5zY3JvbGxNYWluRnJhbWVJZk5vdEF0TWF4U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0
KTsKKworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2l6ZURpZENoYW5nZShtX3dlYlBhZ2Uuc2l6ZSgpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQ
RTo6ZGlkVXBkYXRlKCkKK3sKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6ZW50ZXJBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQoreworICAg
IEFTU0VSVCghbV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QgPSBMYXllclRy
ZWVIb3N0OjpjcmVhdGUobV93ZWJQYWdlKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RD
b21wb3NpdGluZ0xheWVyKGdyYXBoaWNzTGF5ZXIpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0
U2hvdWxkTm90aWZ5QWZ0ZXJOZXh0U2NoZWR1bGVkTGF5ZXJGbHVzaCh0cnVlKTsKKyAgICBtX2xh
eWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobV93ZWJQYWdlLnNpemUoKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi40NmM1MzU0ZTRmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaApAQCAtMCwwICsxLDkzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgRHJhd2luZ0FyZWFXUEVfaAorI2RlZmluZSBEcmF3aW5nQXJlYVdQRV9oCisKKyNpbmNsdWRl
ICJEcmF3aW5nQXJlYS5oIgorCisjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgRHJhd2luZ0FyZWFXUEUgOiBwdWJsaWMgRHJhd2luZ0FyZWEg
eworcHVibGljOgorICAgIERyYXdpbmdBcmVhV1BFKFdlYlBhZ2UmLCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJik7CisgICAgdmlydHVhbCB+RHJhd2luZ0FyZWFXUEUoKTsKKworICAg
IHZvaWQgbGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAg
ICAvLyBEcmF3aW5nQXJlYQorICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9s
bERlbHRhKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBwYWdlQmFja2dyb3VuZFRyYW5z
cGFyZW5jeUNoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90
IGNhbGxiYWNrSUQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVTdGF0
ZUlzRnJvemVuKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBsYXllclRyZWVTdGF0
ZUlzRnJvemVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYXllclRyZWVTdGF0ZUlzRnJv
emVuOyB9CisgICAgdmlydHVhbCBMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9sYXllclRyZWVIb3N0LmdldCgpOyB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIG1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNo
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoSW1tZWRpYXRlbHkoKSBvdmVycmlkZTsKKworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9G
UkFNRV9ESVNQTEFZX01PTklUT1IpCisgICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29yZTo6UGxh
dGZvcm1EaXNwbGF5SUQpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIG92ZXJyaWRlOworCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RI
UkVBREVEKQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2Vi
Q29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiYpIG92ZXJyaWRlOworI2VuZGlmCisKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhUVVJFX01BUFBFUikKKyAgICB2aXJ0dWFs
IHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkgb3ZlcnJpZGU7CisjZW5kaWYK
KworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCwgYm9v
bCwgZmxvYXQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZSgpIG92ZXJyaWRlOworCisg
ICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKTsKKworICAgIC8vIFdoZW4gdHJ1ZSwgd2UgbWFpbnRhaW4gdGhlIGxheWVyIHRyZWUg
aW4gaXRzIGN1cnJlbnQgc3RhdGUgYnkgbm90IGxlYXZpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcgbW9kZQorICAgIC8vIGFuZCBub3Qgc2NoZWR1bGluZyBsYXllciBmbHVzaGVzLgorICAgIGJv
b2wgbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuIHsgZmFsc2UgfTsKKworICAgIC8vIFRoZSBsYXll
ciB0cmVlIGhvc3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgorICAgIFJl
ZlB0cjxMYXllclRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIERyYXdpbmdBcmVhV1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc0Yzg0NGJjYmE5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJJbnNwZWN0b3JVSVdQRS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yVUkuaCIKKworI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3RvclVJ
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3RvclVJOjpjYW5TYXZl
KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JVSTo6bG9j
YWxpemVkU3RyaW5nc1VSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQoreworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0ZTBjNjVlMGVmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJ
bnNwZWN0b3JXUEUuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkluc3BlY3Rvci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2Jvb2wgV2ViSW5zcGVjdG9yOjpjYW5TYXZlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3I6OmxvY2FsaXplZFN0cmluZ3NVUkwo
KSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZlZjI0ZTVkZWY5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcApAQCAt
MCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNp
bmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0
b3JlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
Kwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQorCit2b2lkIFdlYlBh
Z2U6OnBsYXRmb3JtRGV0YWNoKCkKK3sKK30KKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUVkaXRv
clN0YXRlKEZyYW1lJiwgRWRpdG9yU3RhdGUmLCBJbmNsdWRlUG9zdExheW91dERhdGFIaW50KSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZv
cm1QcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZh
dWx0QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQYWdlOjpw
bGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6Y2FjaGVkUmVz
cG9uc2VNSU1FVHlwZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFdlYlBhZ2U6OnBsYXRmb3JtQ2FuSGFu
ZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6Y2FjaGVkU3VnZ2Vz
dGVkRmlsZW5hbWVGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gV2ViUGFnZTo6
Y2FjaGVkUmVzcG9uc2VEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3Jt
VXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNDYxMDczYmUzZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BF
LmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBN
b3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NNYWluVW5peC5oIgorCisj
aW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2luY2x1ZGUgPGdsaWIuaD4K
KyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKworI2luY2x1ZGUgPGlvc3RyZWFtPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBy
b2Nlc3NNYWluIGZpbmFsOiBwdWJsaWMgQ2hpbGRQcm9jZXNzTWFpbkJhc2UgeworcHVibGljOgor
ICAgIGJvb2wgcGxhdGZvcm1Jbml0aWFsaXplKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIC8v
IFRPRE86IFdyYXAgd2l0aCAjaWZuZGVmIE5ERUJVRworICAgICAgICBpZiAoZ19nZXRlbnYoIldF
QktJVDJfUEFVU0VfV0VCX1BST0NFU1NfT05fTEFVTkNIIikpIHsKKyAgICAgICAgICAgIGdfcHJp
bnRlcnIoIldlYlByb2Nlc3MgUElEOiAlZFxuIiwgZ2V0cGlkKCkpOworICAgICAgICAgICAgV1RG
OjpzbGVlcCgzMCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICBib29sIHBhcnNlQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSBvdmVycmlk
ZQorICAgIHsKKyAgICAgICAgQVNTRVJUKGFyZ2MgPT0gMyk7CisgICAgICAgIGlmIChhcmdjIDwg
MykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoIUNoaWxkUHJvY2Vz
c01haW5CYXNlOjpwYXJzZUNvbW1hbmRMaW5lKGFyZ2MsIGFyZ3YpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIGludCB3cGVGZCA9IGF0b2koYXJndlsyXSk7CisgICAgICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaCgKKyAgICAgICAgICAgIFt3cGVGZF0geworICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzPFBsYXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpKTsKKyAgICAgICAgICAgICAgICBkb3duY2FzdDxQbGF0
Zm9ybURpc3BsYXlXUEU+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKS5pbml0aWFs
aXplKHdwZUZkKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
Cit9OworCitpbnQgV2ViUHJvY2Vzc01haW5Vbml4KGludCBhcmdjLCBjaGFyKiogYXJndikKK3sK
KyAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9jZXNzLCBXZWJQcm9jZXNzTWFpbj4o
YXJnYywgYXJndik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvY29uZmlnLmggYi9Tb3VyY2UvV2ViS2l0Mi9jb25maWcuaAppbmRleCBjNjNk
MWEyNmY3OS4uMzQ3OWIxZWQzMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL2NvbmZpZy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL2NvbmZpZy5oCkBAIC01OCw3ICs1OCw3IEBACiAjZGVmaW5l
IFBMVUdJTl9BUkNISVRFQ1RVUkUoQVJDSCkgKGRlZmluZWQgUExVR0lOX0FSQ0hJVEVDVFVSRV8j
I0FSQ0ggJiYgUExVR0lOX0FSQ0hJVEVDVFVSRV8jI0FSQ0gpCiAKICNpZm5kZWYgRU5BQkxFX0lO
U1BFQ1RPUl9TRVJWRVIKLSNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpICYmIFBMQVRGT1JNKEdUSykK
KyNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkpCiAjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfU0VSVkVSIDEKICNlbmRpZgogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL3dwZS93cGUtd2Via2l0LnBjLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5lOTljMDI1MTgxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L3dwZS93cGUtd2Via2l0LnBjLmluCkBAIC0wLDAgKzEsMTEgQEAKK3ByZWZpeD1AQ01BS0VfSU5T
VEFMTF9QUkVGSVhACitleGVjX3ByZWZpeD0ke3ByZWZpeH0KK2xpYmRpcj1ATElCX0lOU1RBTExf
RElSQAoraW5jbHVkZWRpcj0ke3ByZWZpeH0vaW5jbHVkZQorCitOYW1lOiBXZWJLaXQyCitEZXNj
cmlwdGlvbjogV1BFLWZsYXZvcmVkIFdlYiBlbmdpbmUKK1ZlcnNpb246IEBQUk9KRUNUX1ZFUlNJ
T05ACitSZXF1aXJlcy5wcml2YXRlOiBnbGliLTIuMCBsaWJzb3VwLTIuNAorTGliczogLUwke2xp
YmRpcn0gLWxXUEVXZWJLaXQgLWxXUEUKK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9L3dwZS1AV1BF
X0FQSV9WRVJTSU9OQCAtSSR7aW5jbHVkZWRpcn0vd3BlLUBXUEVfQVBJX1ZFUlNJT05AL1dQRQpk
aWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UgYi9Tb3VyY2UvY21ha2Uv
RmluZExpYkdCTS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZDIwOTFjYmZiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZExpYkdCTS5j
bWFrZQpAQCAtMCwwICsxLDQ2IEBACisjIC0gVHJ5IHRvIGZpbmQgZ2JtLgorIyBPbmNlIGRvbmUs
IHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIExJQkdCTV9JTkNMVURFX0RJUlMgLSB0aGUgZ2JtIGlu
Y2x1ZGUgZGlyZWN0b3JpZXMKKyMgIExJQkdCTV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVz
ZSBnYm0uCisjCisjIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg
SE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCisjIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zp
bmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19MSUJHQk0gZ2JtKQor
CitmaW5kX3BhdGgoTElCR0JNX0lOQ0xVREVfRElSUworICAgIE5BTUVTIGdibS5oCisgICAgSElO
VFMgJHtQQ19MSUJHQk1fSU5DTFVERV9ESVJTfSAke1BDX0xJQkdCTV9JTkNVREVESVJ9CispCisK
K2ZpbmRfbGlicmFyeShMSUJHQk1fTElCUkFSSUVTCisgICAgTkFNRVMgZ2JtCisgICAgSElOVFMg
JHtQQ19MSUJHQk1fTElCUkFSWV9ESVJTfSAke1BDX0xJQkdCTV9MSUJESVJ9CispCisKK2luY2x1
ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitGSU5EX1BBQ0tBR0VfSEFORExFX1NU
QU5EQVJEX0FSR1MoTElCR0JNIERFRkFVTFRfTVNHIExJQkdCTV9MSUJSQVJJRVMpCisKK21hcmtf
YXNfYWR2YW5jZWQoTElCR0JNX0lOQ0xVREVfRElSUyBMSUJHQk1fTElCUkFSSUVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UgYi9Tb3VyY2UvY21h
a2UvRmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNjE2MTU0ZTYxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2Uv
RmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZQpAQCAtMCwwICsxLDQ3IEBACisjIC0gVHJ5IHRvIGZp
bmQgV1BFLW1lc2EuCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFX01F
U0FfRk9VTkQgLSBzeXN0ZW0gaGFzIFdQRS1tZXNhLgorIyAgV1BFX01FU0FfSU5DTFVERV9ESVJT
IC0gdGhlIFdQRS1tZXNhIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRV9NRVNBX0xJQlJBUklF
UyAtIGxpbmsgdGhlc2UgdG8gdXNlIFdQRS1tZXNhLgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYg
SWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisj
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNr
X21vZHVsZXMoUENfV1BFX01FU0EgUVVJRVQgd3BlLW1lc2EpCisKK2ZpbmRfcGF0aChXUEVfTUVT
QV9JTkNMVURFX0RJUlMKKyAgICBOQU1FUyB3cGUtbWVzYS92aWV3LWJhY2tlbmQtZXhwb3J0YWJs
ZS1kbWEtYnVmLmgKKyAgICBISU5UUyAke1BDX1dQRV9NRVNBX0lOQ0xVREVESVJ9ICR7UENfV1BF
X01FU0FfSU5DTFVERV9ESVJTfQorKQorCitmaW5kX2xpYnJhcnkoV1BFX01FU0FfTElCUkFSSUVT
CisgICAgTkFNRVMgV1BFQmFja2VuZC1tZXNhCisgICAgSElOVFMgJHtQQ19XUEVfTUVTQV9MSUJE
SVJ9ICR7UENfV1BFX01FU0FfTElCUkFSWV9ESVJTfQorKQorCittYXJrX2FzX2FkdmFuY2VkKFdQ
RV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVTQV9MSUJSQVJJRVMpCisKK2luY2x1ZGUoRmluZFBh
Y2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitGSU5EX1BBQ0tBR0VfSEFORExFX1NUQU5EQVJEX0FS
R1MoV1BFX01FU0EgUkVRVUlSRURfVkFSUyBXUEVfTUVTQV9JTkNMVURFX0RJUlMgV1BFX01FU0Ff
TElCUkFSSUVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLmNtYWtl
IGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5jN2E5M2QwMDUxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9jbWFrZS9GaW5kV1BFQmFja2VuZC5jbWFrZQpAQCAtMCwwICsxLDQ3IEBACisjIC0gVHJ5IHRv
IGZpbmQgV1BFLgorIyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIFdQRV9GT1VO
RCAtIHN5c3RlbSBoYXMgV1BFLgorIyAgV1BFX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUgaW5jbHVk
ZSBkaXJlY3RvcmllcworIyAgV1BFX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8gdXNlIFdQRS4K
KyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
T1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgor
IyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmluZF9wYWNr
YWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX1dQRSBRVUlFVCB3cGUpCisKK2Zp
bmRfcGF0aChXUEVfSU5DTFVERV9ESVJTCisgICAgTkFNRVMgd3BlL2xvYWRlci5oCisgICAgSElO
VFMgJHtQQ19XUEVfSU5DTFVERURJUn0gJHtQQ19XUEVfSU5DTFVERV9ESVJTfQorKQorCitmaW5k
X2xpYnJhcnkoV1BFX0xJQlJBUklFUworICAgIE5BTUVTIFdQRUJhY2tlbmQKKyAgICBISU5UUyAk
e1BDX1dQRV9MSUJESVJ9ICR7UENfV1BFX0xJQlJBUllfRElSU30KKykKKworbWFya19hc19hZHZh
bmNlZChXUEVfSU5DTFVERV9ESVJTIFdQRV9MSUJSQVJJRVMpCisKK2luY2x1ZGUoRmluZFBhY2th
Z2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitGSU5EX1BBQ0tBR0VfSEFORExFX1NUQU5EQVJEX0FSR1Mo
V1BFIFJFUVVJUkVEX1ZBUlMgV1BFX0lOQ0xVREVfRElSUyBXUEVfTElCUkFSSUVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTI4NzA2
M2UxMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpA
QCAtMCwwICsxLDEzOCBAQAoraW5jbHVkZShHTlVJbnN0YWxsRGlycykKKworc2V0KFBST0pFQ1Rf
VkVSU0lPTl9NQUpPUiAwKQorc2V0KFBST0pFQ1RfVkVSU0lPTl9NSU5PUiAwKQorc2V0KFBST0pF
Q1RfVkVSU0lPTl9QQVRDSCAyMDE3MDMzMCkKK3NldChQUk9KRUNUX1ZFUlNJT04gJHtQUk9KRUNU
X1ZFUlNJT05fTUFKT1J9LiR7UFJPSkVDVF9WRVJTSU9OX01JTk9SfS4ke1BST0pFQ1RfVkVSU0lP
Tl9QQVRDSH0pCitzZXQoV1BFX0FQSV9WRVJTSU9OIDAuMSkKKworaWYgKFdURl9DUFVfWDg2XzY0
KQorICAgIHNldChFTkFCTEVfRlRMX0RFRkFVTFQgT04pCitlbHNlICgpCisgICAgc2V0KEVOQUJM
RV9GVExfREVGQVVMVCBPRkYpCitlbmRpZiAoKQorCitXRUJLSVRfT1BUSU9OX0JFR0lOKCkKKwor
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFXzNEX1RSQU5TRk9STVMgUFVC
TElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUyBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX0NTU19SRUdJT05TIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCBQVUJMSUMgT04pCitXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREFUQUJBU0VfUFJPQ0VTUyBQUklWQVRF
IE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0RFVklDRV9PUklF
TlRBVElPTiBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgUFVCTElDIE9GRikKK1dFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GVExfSklUIFBSSVZBVEUgJHtFTkFCTEVfRlRMX0RFRkFV
TFR9KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dBTUVQQUQgUFVC
TElDIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HRU9MT0NB
VElPTiBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgUFJJVkFURSBPRkYpCitX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NS
SVBUIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9N
RURJQV9TT1VSQ0UgUFVCTElDIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9NSFRNTCBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgUFJJVkFURSBPRkYpCitXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVE9VQ0hfRVZFTlRTIFBVQkxJQyBPTikKK1dFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFTyBQVUJMSUMgT04pCitXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklERU9fVFJBQ0sgUFVCTElDIE9O
KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJRVdfTU9ERV9DU1Nf
TUVESUEgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1dFQl9BTklNQVRJT05TIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfV0VCX0FVRElPIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9XRUJHTCBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfV0VCX1RJTUlORyBQVUJMSUMgT04pCisKK1dFQktJVF9PUFRJT05f
REVGSU5FKFVTRV9HU1RSRUFNRVJfR0wgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIEdT
dHJlYW1lciBHTCIgUFJJVkFURSBPRkYpCisKK1dFQktJVF9PUFRJT05fRU5EKCkKKworc2V0KEVO
QUJMRV9XRUJDT1JFIE9OKQorc2V0KEVOQUJMRV9XRUJLSVQgT0ZGKQorc2V0KEVOQUJMRV9XRUJL
SVQyIE9OKQorc2V0KEVOQUJMRV9BUElfVEVTVFMgJHtERVZFTE9QRVJfTU9ERX0pCitzZXQoRU5B
QkxFX1RPT0xTIE9OKQorCitzZXQoV1RGX0xJQlJBUllfVFlQRSBTVEFUSUMpCitzZXQoSmF2YVNj
cmlwdENvcmVfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChXZWJDb3JlX0xJQlJBUllfVFlQRSBT
VEFUSUMpCitzZXQoV2ViS2l0Ml9PVVRQVVRfTkFNRSBXUEVXZWJLaXQpCitzZXQoV2ViS2l0Ml9X
ZWJQcm9jZXNzX09VVFBVVF9OQU1FIFdQRVdlYlByb2Nlc3MpCitzZXQoV2ViS2l0Ml9OZXR3b3Jr
UHJvY2Vzc19PVVRQVVRfTkFNRSBXUEVOZXR3b3JrUHJvY2VzcykKK3NldChXZWJLaXQyX0RhdGFi
YXNlUHJvY2Vzc19PVVRQVVRfTkFNRSBXUEVEYXRhYmFzZVByb2Nlc3MpCisKK2ZpbmRfcGFja2Fn
ZShJQ1UgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoVGhyZWFkcyBSRVFVSVJFRCkKK2ZpbmRfcGFj
a2FnZShaTElCIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEdMSUIgMi40MC4wIFJFUVVJUkVEIENP
TVBPTkVOVFMgZ2lvIGdpby11bml4IGdvYmplY3QgZ3RocmVhZCBnbW9kdWxlKQorZmluZF9wYWNr
YWdlKEdudVRMUyAzLjAuMCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKENhaXJvIDEuMTAuMiBS
RVFVSVJFRCkKK2ZpbmRfcGFja2FnZShGb250Y29uZmlnIDIuOC4wIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKEZyZWV0eXBlMiAyLjQuMiBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShIYXJmQnV6eiAw
LjkuMTggUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoSlBFRyBSRVFVSVJFRCkKK2ZpbmRfcGFja2Fn
ZShMaWJHY3J5cHQgMS42LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoTGliU291cCAyLjQyLjAg
UkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoTGliWG1sMiAyLjguMCBSRVFVSVJFRCkKK2ZpbmRfcGFj
a2FnZShMaWJYc2x0IDEuMS43IFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFBORyBSRVFVSVJFRCkK
K2ZpbmRfcGFja2FnZShTcWxpdGUgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoV2ViUCBSRVFVSVJF
RCkKKworZmluZF9wYWNrYWdlKE9wZW5HTEVTMiBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShFR0wg
UkVRVUlSRUQpCisKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kIFJFUVVJUkVEKQorCitzZXQoVVNF
X1hER01JTUUgT04pCisKK2lmIChFTkFCTEVfVklERU8gT1IgRU5BQkxFX1dFQl9BVURJTykKKyAg
ICBzZXQoR1NUUkVBTUVSX0NPTVBPTkVOVFMgYXBwIGF1ZGlvIHBidXRpbHMpCisgICAgU0VUX0FO
RF9FWFBPU0VfVE9fQlVJTEQoVVNFX0dTVFJFQU1FUiBUUlVFKQorICAgIGlmIChFTkFCTEVfVklE
RU8pCisgICAgICAgIGxpc3QoQVBQRU5EIEdTVFJFQU1FUl9DT01QT05FTlRTIHZpZGVvIHRhZykK
KyAgICBlbmRpZiAoKQorCisgICAgaWYgKEVOQUJMRV9XRUJfQVVESU8pCisgICAgICAgIGxpc3Qo
QVBQRU5EIEdTVFJFQU1FUl9DT01QT05FTlRTIGZmdCkKKyAgICAgICAgU0VUX0FORF9FWFBPU0Vf
VE9fQlVJTEQoVVNFX1dFQkFVRElPX0dTVFJFQU1FUiBUUlVFKQorICAgIGVuZGlmICgpCisKKyAg
ICBmaW5kX3BhY2thZ2UoR1N0cmVhbWVyIDEuMi4zIFJFUVVJUkVEIENPTVBPTkVOVFMgJHtHU1RS
RUFNRVJfQ09NUE9ORU5UU30pCisKKyAgICAjIEZJWE1FOiBXaGF0IGFib3V0IE1QRUdUUyBzdXBw
b3J0PyBVU0VfR1NUUkVBTUVSX01QRUdUUz8KK2VuZGlmICgpCisKK2lmIChFTkFCTEVfTUVESUFf
U1RSRUFNIE9SIEVOQUJMRV9XRUJfUlRDKQorICAgIGZpbmRfcGFja2FnZShPcGVuV2ViUlRDKQor
ICAgIGlmIChOT1QgT1BFTldFQlJUQ19GT1VORCkKKyAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJP
UiAiT3BlbldlYlJUQyBpcyBuZWVkZWQgZm9yIEVOQUJMRV9NRURJQV9TVFJFQU0gYW5kIEVOQUJM
RV9XRUJfUlRDLiIpCisgICAgZW5kaWYgKCkKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChV
U0VfT1BFTldFQlJUQyBUUlVFKQorZW5kaWYgKCkKKworaWYgKEVOQUJMRV9BQ0NFTEVSQVRFRF8y
RF9DQU5WQVMpCisgICAgZmluZF9wYWNrYWdlKENhaXJvR0wgMS4xMC4yIFJFUVVJUkVEIENPTVBP
TkVOVFMgY2Fpcm8tZWdsKQorZW5kaWYgKCkKKworYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdf
V1BFX189MSkKK2FkZF9kZWZpbml0aW9ucygtRERBVEFfRElSPSIke0NNQUtFX0lOU1RBTExfREFU
QURJUn0iKQorCitzZXQoVVNFX1VESVM4NiAxKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChV
U0VfT1BFTkdMX0VTXzIgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9FR0wgVFJV
RSkKKworU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoRU5BQkxFX0dSQVBISUNTX0NPTlRFWFRfM0Qg
VFJVRSkKKworU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RFWFRVUkVfTUFQUEVSIFRSVUUp
CitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVJfR0wgVFJVRSkKK1NF
VF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9USUxFRF9CQUNLSU5HX1NUT1JFIFRSVUUpCitTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQ09PUkRJTkFURURfR1JBUEhJQ1MgVFJVRSkKK1NFVF9B
TkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCBUUlVF
KQorCitzZXQoRk9SV0FSRElOR19IRUFERVJTX0RJUiAke0RFUklWRURfU09VUkNFU19ESVJ9L0Zv
cndhcmRpbmdIZWFkZXJzKQorCisjIEJ1aWxkIHdpdGggLWZ2aXNpYmlsaXR5PWhpZGRlbiB0byBy
ZWR1Y2UgdGhlIHNpemUgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5LgorIyBOb3QgdG8gYmUgdXNlZCB3
aGVuIGJ1aWxkaW5nIHRoZSBXZWJLaXRUZXN0UnVubmVyIGxpYnJhcnkuCitpZiAoTk9UIERFVkVM
T1BFUl9NT0RFKQorICAgIHNldChDTUFLRV9DX0ZMQUdTX1JFTEVBU0UgIiR7Q01BS0VfQ19GTEFH
U19SRUxFQVNFfSAtZnZpc2liaWxpdHk9aGlkZGVuIikKKyAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdT
X1JFTEVBU0UgIiR7Q01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4g
LWZ2aXNpYmlsaXR5LWlubGluZXMtaGlkZGVuIikKK2VuZGlmICgpCmRpZmYgLS1naXQgYS9Ub29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUgYi9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUKaW5kZXggZDU4MDBhMWU5ZDQuLmViMjBm
NzBmM2YxIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0
LWFyY2hpdmUKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1hcmNo
aXZlCkBAIC0xNjMsNyArMTYzLDcgQEAgZGVmIGRpckNvbnRhaW5zZHdvKGRpcmVjdG9yeSk6CiAK
IAogZGVmIGFyY2hpdmVCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGZ1bGxQ
bGF0Zm9ybSk6Ci0gICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdndGsnLCAn
ZWZsJywgJ2lvcycpCisgICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdndGsn
LCAnZWZsJywgJ2lvcycsICd3cGUnKQogCiAgICAgIyBGSVhNRTogSW1hZ2VEaWZmIHNob3VsZCBi
ZSBidWlsdCB3aXRoIHRoZSBob3N0IFNESywgPHJkYXI6Ly9wcm9ibGVtLzMwMjY2MDM4Pi4KICAg
ICAjIEFuIGFwcHJvYWNoIHNpbWlsYXIgdG8gdGhlIG9uZSB1c2VkIGZvciBMYXlvdXRUZXN0UmVs
YXkgaW4gcjE5MDUxNSBzaG91bGQgYmUgaW1sZW1lbnRlZC4KQEAgLTE4Miw3ICsxODIsNyBAQCBk
ZWYgYXJjaGl2ZUJ1aWx0UHJvZHVjdChjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgZnVsbFBsYXRm
b3JtKToKIAogICAgICAgICBzaHV0aWwucm10cmVlKHRoaW5EaXJlY3RvcnkpCiAKLSAgICBlbGlm
IHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3JtID09ICdlZmwnOgorICAgIGVsaWYgcGxhdGZv
cm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCcgb3IgcGxhdGZvcm0gPT0gJ3dwZSc6CiAg
ICAgICAgICMgT24gR1RLKy9FRkwgd2UgZG9uJ3QgbmVlZCB0aGUgaW50ZXJtZWRpYXRlIHN0ZXAg
b2YgY3JlYXRpbmcgYSB0aGluRGlyZWN0b3J5CiAgICAgICAgICMgdG8gYmUgY29tcHJlc3NlZCBp
biBhIFpJUCBmaWxlLCBiZWNhdXNlIHdlIGNhbiBjcmVhdGUgdGhlIFpJUCBkaXJlY3RseS4KICAg
ICAgICAgIyBUaGlzIGlzIGZhc3RlciBhbmQgcmVxdWlyZXMgbGVzcyBkaXNrIHJlc291cmNlcy4K
QEAgLTIxNiw3ICsyMTYsNyBAQCBkZWYgdW56aXBBcmNoaXZlKGRpcmVjdG9yeVRvRXh0cmFjdFRv
LCBjb25maWd1cmF0aW9uKToKIAogCiBkZWYgZXh0cmFjdEJ1aWx0UHJvZHVjdChjb25maWd1cmF0
aW9uLCBwbGF0Zm9ybSk6Ci0gICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdn
dGsnLCAnZWZsJywgJ2lvcycpCisgICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbics
ICdndGsnLCAnZWZsJywgJ2lvcycsICd3cGUnKQogCiAgICAgYXJjaGl2ZUZpbGUgPSBvcy5wYXRo
LmpvaW4oX3RvcExldmVsQnVpbGREaXJlY3RvcnksIGNvbmZpZ3VyYXRpb24gKyAnLnppcCcpCiAK
QEAgLTIyNSw3ICsyMjUsNyBAQCBkZWYgZXh0cmFjdEJ1aWx0UHJvZHVjdChjb25maWd1cmF0aW9u
LCBwbGF0Zm9ybSk6CiAKICAgICBpZiBwbGF0Zm9ybSBpbiAoJ21hYycsICdpb3MnKToKICAgICAg
ICAgcmV0dXJuIHVuemlwQXJjaGl2ZShfdG9wTGV2ZWxCdWlsZERpcmVjdG9yeSwgY29uZmlndXJh
dGlvbikKLSAgICBlbGlmIHBsYXRmb3JtID09ICd3aW4nIG9yIHBsYXRmb3JtID09ICdndGsnIG9y
IHBsYXRmb3JtID09ICdlZmwnOgorICAgIGVsaWYgcGxhdGZvcm0gPT0gJ3dpbicgb3IgcGxhdGZv
cm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCcgb3IgcGxhdGZvcm0gPT0gJ3dwZSc6CiAg
ICAgICAgIHByaW50ICdFeHRyYWN0aW5nJywgX2NvbmZpZ3VyYXRpb25CdWlsZERpcmVjdG9yeQog
ICAgICAgICByZXR1cm4gdW56aXBBcmNoaXZlKF9jb25maWd1cmF0aW9uQnVpbGREaXJlY3Rvcnks
IGNvbmZpZ3VyYXRpb24pCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rl
c3QtcmVzdWx0LWFyY2hpdmUgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1h
cmNoaXZlCmluZGV4IDNjMmIwYmQ3YTM2Li45ODBmMDcxYzE0ZiAxMDA2NDQKLS0tIGEvVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQorKysgYi9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlCkBAIC00Niw3ICs0Niw3IEBAIGRlZiBtYWlu
KCk6CiAgICAgcmV0dXJuIGFyY2hpdmVUZXN0UmVzdWx0cyhvcHRpb25zLmNvbmZpZ3VyYXRpb24s
IG9wdGlvbnMucGxhdGZvcm0sIGxheW91dFRlc3RSZXN1bHRzRGlyKQogCiBkZWYgYXJjaGl2ZVRl
c3RSZXN1bHRzKGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0Rpcik6
Ci0gICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdndGsnLCAnZWZsJywgJ3dp
bmNhaXJvJywgJ2lvcycpCisgICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdn
dGsnLCAnZWZsJywgJ3dpbmNhaXJvJywgJ2lvcycsICd3cGUnKQogCiAgICAgdHJ5OgogICAgICAg
ICBvcy51bmxpbmsoYXJjaGl2ZUZpbGUpCkBAIC02Niw3ICs2Niw3IEBAIGRlZiBhcmNoaXZlVGVz
dFJlc3VsdHMoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGxheW91dFRlc3RSZXN1bHRzRGlyKToK
ICAgICBpZiBwbGF0Zm9ybSBpbiAoJ21hYycsICdpb3MnKToKICAgICAgICAgaWYgc3VicHJvY2Vz
cy5jYWxsKFsiZGl0dG8iLCAiLWMiLCAiLWsiLCAiLS1zZXF1ZXN0ZXJSc3JjIiwgIi0temxpYkNv
bXByZXNzaW9uTGV2ZWwiLCAiMiIsIGxheW91dFRlc3RSZXN1bHRzRGlyLCBhcmNoaXZlRmlsZV0p
OgogICAgICAgICAgICAgcmV0dXJuIDEKLSAgICBlbGlmIHBsYXRmb3JtIGluICgnd2luJywgJ2d0
aycsICdlZmwnLCAnd2luY2Fpcm8nKToKKyAgICBlbGlmIHBsYXRmb3JtIGluICgnd2luJywgJ2d0
aycsICdlZmwnLCAnd2luY2Fpcm8nLCAnd3BlJyk6CiAgICAgICAgIGlmIHN1YnByb2Nlc3MuY2Fs
bChbInppcCIsICItciIsICItMiIsIGFyY2hpdmVGaWxlLCAiLiJdLCBjd2Q9bGF5b3V0VGVzdFJl
c3VsdHNEaXIpOgogICAgICAgICAgICAgcmV0dXJuIDEKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ01h
a2VMaXN0cy50eHQgYi9Ub29scy9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjJlZGI4ZGU5Ny4uNWI5
Y2QzOWI5OTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0NN
YWtlTGlzdHMudHh0CkBAIC0zNSw2ICszNSwxMSBAQCBlbHNlaWYgKCIke1BPUlR9IiBTVFJFUVVB
TCAiSlNDT25seSIpCiAgICAgaWYgKEVOQUJMRV9BUElfVEVTVFMpCiAgICAgICAgIGFkZF9zdWJk
aXJlY3RvcnkoVGVzdFdlYktpdEFQSSkKICAgICBlbmRpZiAoKQorZWxzZWlmICgiJHtQT1JUfSIg
U1RSRVFVQUwgIldQRSIpCisgICAgaWYgKERFVkVMT1BFUl9NT0RFKQorICAgICAgICBhZGRfc3Vi
ZGlyZWN0b3J5KEltYWdlRGlmZikKKyAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShXZWJLaXRUZXN0
UnVubmVyKQorICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCiBpZiAoV0lOMzIpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDRlMDZlZDJjNDIuLjcw
OTVjZDNmODAyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNl
a0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2Via2l0LWRldiB0aHJlYWQ6
CisgICAgICAgIGh0dHBzOi8vbGlzdHMud2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8y
MDE3LUFwcmlsLzAyODkyMy5odG1sCisKKyAgICAgICAgQWRkIFdQRSBzdXBwb3J0IHRvIHZhcmlv
dXMgdG9vbGluZyBzY3JpcHRzLCBUZXN0V2ViS2l0QVBJIGFuZCBXZWJLaXRUZXN0UnVubmVyLgor
ICAgICAgICBJbi1maWxlIGNoYW5nZXMgcmVtb3ZlZCBmcm9tIHRoaXMgQ2hhbmdlTG9nIGVudHJ5
IGZvciBicmV2aXR5LgorCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVj
dC1hcmNoaXZlOgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hp
dmU6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSW1hZ2VEaWZmL1BsYXRm
b3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0
cmVlOgorICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OgorICAgICAgICAqIFNjcmlwdHMv
YnVpbGQtd2Via2l0dGVzdHJ1bm5lcjoKKyAgICAgICAgKiBTY3JpcHRzL3VwZGF0ZS13ZWJraXQt
bGlicy1qaGJ1aWxkOgorICAgICAgICAqIFNjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJzOiBB
ZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2ZhY3RvcnkucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3dw
ZS5weTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZTog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9s
bGVyV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVh
SW5mby5oLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BF
LmNwcDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS93cGUvbWFpbi5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRlRm9udHNXUEUuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9J
bmplY3RlZEJ1bmRsZVdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
cmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hh
cmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1X
ZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHA6
IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tl
bmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1Zp
ZXdCYWNrZW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaC4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogamhi
dWlsZC9qaGJ1aWxkLXdyYXBwZXI6CisgICAgICAgICogd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1n
cmVzb3VyY2UtbWFuaWZlc3QucHk6IEFkZGVkLgorICAgICAgICAqIHdwZS9qaGJ1aWxkLm1vZHVs
ZXM6IEFkZGVkLgorICAgICAgICAqIHdwZS9qaGJ1aWxkcmM6IEFkZGVkLgorICAgICAgICAqIHdw
ZS9wYXRjaGVzL2NhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaDog
QWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEt
c3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoOiBBZGRlZC4KKyAgICAg
ICAgKiB3cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZp
eC5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3Ry
aW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9w
YXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNo
OiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxz
Y2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoOiBB
ZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRl
bXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2g6IEFkZGVkLgor
ICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29k
ZS10aW1lLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlw
ZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2g6IEFk
ZGVkLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5y
dT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5HX0hFQURFUlNfRElSIGluIFdl
YktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0IGEvVG9vbHMvSW1hZ2VEaWZm
L1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjBlZTUzMjhiYQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0ltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsx
IEBACitpbmNsdWRlKENhaXJvLmNtYWtlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWls
ZC1kdW1wcmVuZGVydHJlZSBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKaW5k
ZXggYzMwOWI4MmQ5OGMuLjY5YjRkMGU0NjVkIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1
aWxkLWR1bXByZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRy
ZWUKQEAgLTY2LDcgKzY2LDcgQEAgY2hkaXIgRmlsZTo6U3BlYy0+Y2F0ZGlyKCJUb29scyIsICJE
dW1wUmVuZGVyVHJlZSIpIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIkR1bXBSZW5kZXJUcmVl
IiwgJGNsZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAoaXNHdGsoKSB8fCBp
c0VmbCgpIHx8IGlzQW55V2luZG93cygpKSB7Cit9IGVsc2lmIChpc0d0aygpIHx8IGlzRWZsKCkg
fHwgaXNBbnlXaW5kb3dzKCkgfHwgaXNXUEUoKSkgewogICAgICMgR3RrLCBFRkwsIGFuZCBXaW5k
b3dzIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhp
bmcgaGVyZS4KICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IGFi
MjUyYWM2NTBmLi5mZjRjYjBjNGYzMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTEwMSw2ICsxMDEsNyBA
QCBVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBbb3B0aW9ucyB0byBwYXNzIHRvIGJ1aWxk
IHN5c3RlbV0KIAogICAtLWVmbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhl
IEVGTCBwb3J0CiAgIC0tZ3RrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUg
R1RLKyBwb3J0CisgIC0td3BlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUg
V1BFIHBvcnQKICAgLS13aW5jYWlybyAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHVzaW5n
IENhaXJvIChyYXRoZXIgdGhhbiBDb3JlR3JhcGhpY3MpIG9uIFdpbmRvd3MKIAogICAtLWluc3Bl
Y3Rvci1mcm9udGVuZCAgICAgICAgICAgICAgQ29weSBXZWIgSW5zcGVjdG9yIHVzZXIgaW50ZXJm
YWNlIHJlc291cmNlcyB0byB0aGUgYnVpbGQgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtp
dHRlc3RydW5uZXIKaW5kZXggNDRlMjVhMzg1MTguLjBmZTUxZTA4MjM0IDEwMDc1NQotLS0gYS9U
b29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKKysrIGIvVG9vbHMvU2NyaXB0cy9i
dWlsZC13ZWJraXR0ZXN0cnVubmVyCkBAIC02MSw3ICs2MSw3IEBAIGNoZGlyICJUb29scy9XZWJL
aXRUZXN0UnVubmVyIiBvciBkaWU7CiBteSAkcmVzdWx0OwogaWYgKGlzQXBwbGVDb2NvYVdlYktp
dCgpKSB7CiAgICAgJHJlc3VsdCA9IGJ1aWxkWENvZGVQcm9qZWN0KCJXZWJLaXRUZXN0UnVubmVy
IiwgJGNsZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAoaXNHdGsoKSB8fCBp
c0VmbCgpKSB7Cit9IGVsc2lmIChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUoKSkgewogICAg
ICMgR1RLKyBhbmQgRUZMIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8g
YnVpbGQgYW55dGhpbmcgaGVyZS4KICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkIGIvVG9vbHMvU2Ny
aXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZAppbmRleCAzODkzZGFmZDhlZS4uZWVkNWY2
YmRlYTEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVp
bGQKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZApAQCAtMjUs
OSArMjUsMTAgQEAgdXNlIEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCk7CiBt
eSAkcGxhdGZvcm0gPSAiIjsKICRwbGF0Zm9ybSA9ICJlZmwiIGlmIGlzRWZsKCk7CiAkcGxhdGZv
cm0gPSAiZ3RrIiBpZiBpc0d0aygpOworJHBsYXRmb3JtID0gIndwZSIgaWYgaXNXUEUoKTsKIAog
aWYgKCEkcGxhdGZvcm0pIHsKLSAgICBkaWUgIk5vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgIiAu
IGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrIG9yIC0tZWZsLlxuIjsKKyAgICBkaWUgIk5vIHBs
YXRmb3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrLCAtLWVm
bCBvciAtLXdwZS5cbiI7CiB9CiAKIG15ICR3aXBlT25DaGFuZ2UgPSAkRU5We0pIQlVJTERfV0lQ
RV9PTl9DSEFOR0V9IC8vIDE7CkBAIC0xMzMsNyArMTM0LDcgQEAgZGVsZXRlICRFTlZ7QVJfRkxB
R1N9IGlmIGV4aXN0cyAkRU5We0FSX0ZMQUdTfTsKIAogY2hkaXIocmVsYXRpdmVTY3JpcHRzRGly
KCkgLiAiLy4uL2poYnVpbGQiKSBvciBkaWUgJCE7CiAKLW15ICVwcmV0dHlQbGF0Zm9ybSA9ICgg
ImVmbCIgPT4gIkVGTCIsICJndGsiID0+ICJHVEsrIiApOworbXkgJXByZXR0eVBsYXRmb3JtID0g
KCAiZWZsIiA9PiAiRUZMIiwgImd0ayIgPT4gIkdUSysiLCAid3BlIiA9PiAiV1BFIiApOwogCiBp
ZiAoISRmb3JjZSAmJiAhamhidWlsZENvbmZpZ3VyYXRpb25DaGFuZ2VkKCkpIHsKICAgICBwcmlu
dCAkcHJldHR5UGxhdGZvcm17JHBsYXRmb3JtfSAuICIgcG9ydCBkZXBlbmRlbmNpZXMgYXJlIGFs
cmVhZHkgdXAgdG8gZGF0ZVxuIjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmtpdHdwZS1saWJzIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMKbmV3IGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmIyM2ZiZGU2YjgzCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMKQEAgLTAsMCArMSwy
NCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKyMKKyMgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK3VzZSBGaW5kQmlu
OwordXNlIGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKK215ICRzY3JpcHRz
RGlyID0gcmVsYXRpdmVTY3JpcHRzRGlyKCk7CitzeXN0ZW0oInBlcmwiLCAiJHNjcmlwdHNEaXIv
dXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQiLCAiLS13cGUiLCBAQVJHVikgPT0gMCBvciBkaWUg
JCE7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdGRpcnMucG0KaW5kZXggYzQwYWZmNmY4MjguLmJjYjFkM2VjMDJlIDEwMDc1NQot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRkaXJzLnBtCkBAIC0xMDgsNiArMTA4LDcgQEAgdXNlIGNvbnN0YW50IHsKICAgICBNYWMgICAg
ICA9PiAiTWFjIiwKICAgICBKU0NPbmx5ICA9PiAiSlNDT25seSIsCiAgICAgV2luQ2Fpcm8gPT4g
IldpbkNhaXJvIiwKKyAgICBXUEUgICAgICA9PiAiV1BFIiwKICAgICBVbmtub3duICA9PiAiVW5r
bm93biIKIH07CiAKQEAgLTQ0Nyw2ICs0NDgsNyBAQCBzdWIgYXJndW1lbnRzRm9yQ29uZmlndXJh
dGlvbigpCiAgICAgcHVzaChAYXJncywgJy0tNjQtYml0JykgaWYgKGlzV2luNjQoKSk7CiAgICAg
cHVzaChAYXJncywgJy0tZ3RrJykgaWYgaXNHdGsoKTsKICAgICBwdXNoKEBhcmdzLCAnLS1lZmwn
KSBpZiBpc0VmbCgpOworICAgIHB1c2goQGFyZ3MsICctLXdwZScpIGlmIGlzV1BFKCk7CiAgICAg
cHVzaChAYXJncywgJy0tanNjLW9ubHknKSBpZiBpc0pTQ09ubHkoKTsKICAgICBwdXNoKEBhcmdz
LCAnLS13aW5jYWlybycpIGlmIGlzV2luQ2Fpcm8oKTsKICAgICBwdXNoKEBhcmdzLCAnLS1pbnNw
ZWN0b3ItZnJvbnRlbmQnKSBpZiBpc0luc3BlY3RvckZyb250ZW5kKCk7CkBAIC02ODIsNyArNjg0
LDcgQEAgc3ViIGV4ZWN1dGFibGVQcm9kdWN0RGlyCiAgICAgbXkgJHByb2R1Y3REaXJlY3Rvcnkg
PSBwcm9kdWN0RGlyKCk7CiAKICAgICBteSAkYmluYXJ5RGlyZWN0b3J5OwotICAgIGlmIChpc0Vm
bCgpIHx8IGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpIHsKKyAgICBpZiAoaXNFZmwoKSB8fCBpc0d0
aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpIHsKICAgICAgICAgJGJpbmFyeURpcmVjdG9y
eSA9ICJiaW4iOwogICAgIH0gZWxzaWYgKGlzQW55V2luZG93cygpKSB7CiAgICAgICAgICRiaW5h
cnlEaXJlY3RvcnkgPSBpc1dpbjY0KCkgPyAiYmluNjQiIDogImJpbjMyIjsKQEAgLTk0Myw2ICs5
NDUsOSBAQCBzdWIgYnVpbHREeWxpYlBhdGhGb3JOYW1lCiAgICAgICAgICAgICByZXR1cm4gIiRi
YXNlUHJvZHVjdERpci8kbGlicmFyeU5hbWUuaW50ZXJtZWRpYXRlLyRjb25maWd1cmF0aW9uLyRs
aWJyYXJ5TmFtZS5pbnRlcm1lZGlhdGUvJGxpYnJhcnlOYW1lLmxpYiI7CiAgICAgICAgIH0KICAg
ICB9CisgICAgaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkY29uZmlndXJhdGlvblBy
b2R1Y3REaXIvbGliL2xpYldQRVdlYktpdC5zbyI7CisgICAgfQogCiAgICAgZGllICJVbnN1cHBv
cnRlZCBwbGF0Zm9ybSwgY2FuJ3QgZGV0ZXJtaW5lIGJ1aWx0IGxpYnJhcnkgbG9jYXRpb25zLlxu
VHJ5IGBidWlsZC13ZWJraXQgLS1oZWxwYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiI7CiB9CkBA
IC0xMDU4LDcgKzEwNjMsOCBAQCBzdWIgZGV0ZXJtaW5lUG9ydE5hbWUoKQogICAgICAgICBlZmwg
PT4gRWZsLAogICAgICAgICBndGsgPT4gR1RLLAogICAgICAgICAnanNjLW9ubHknID0+IEpTQ09u
bHksCi0gICAgICAgIHdpbmNhaXJvID0+IFdpbkNhaXJvCisgICAgICAgIHdpbmNhaXJvID0+IFdp
bkNhaXJvLAorICAgICAgICB3cGUgPT4gV1BFCiAgICAgKTsKIAogICAgIGZvciBteSAkYXJnIChz
b3J0IGtleXMgJWFyZ1RvUG9ydE5hbWUpIHsKQEAgLTEwOTMsNiArMTA5OSw3IEBAIHN1YiBkZXRl
cm1pbmVQb3J0TmFtZSgpCiAgICAgICAgICAgICAgICAgLS1lZmwKICAgICAgICAgICAgICAgICAt
LWd0awogICAgICAgICAgICAgICAgIC0tanNjLW9ubHkKKyAgICAgICAgICAgICAgICAtLXdwZQog
ICAgICAgICAgICAgKTsKICAgICAgICAgICAgIGRpZSAiUGxlYXNlIHNwZWNpZnkgd2hpY2ggV2Vi
S2l0IHBvcnQgdG8gYnVpbGQgdXNpbmcgb25lIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoiCiAg
ICAgICAgICAgICAgICAgLiAiXG5cdCRwb3J0c0Nob2ljZVxuIjsKQEAgLTExMjUsNiArMTEzMiwx
MSBAQCBzdWIgaXNKU0NPbmx5KCkKICAgICByZXR1cm4gcG9ydE5hbWUoKSBlcSBKU0NPbmx5Owog
fQogCitzdWIgaXNXUEUoKQoreworICAgIHJldHVybiBwb3J0TmFtZSgpIGVxIFdQRTsKK30KKwog
IyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBkZWJpYW4sIHVidW50dSwgbGluc3BpcmUsIG9yIHNvbWV0
aGluZyBzaW1pbGFyLgogc3ViIGlzRGViaWFuQmFzZWQoKQogewpAQCAtMTUyOCw2ICsxNTQwLDgg
QEAgc3ViIGxhdW5jaGVyUGF0aCgpCiAgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1Bh
dGgvcnVuLW1pbmlicm93c2VyIjsKICAgICB9IGVsc2lmIChpc0FwcGxlV2ViS2l0KCkpIHsKICAg
ICAgICAgcmV0dXJuICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9ydW4tc2FmYXJpIjsKKyAgICB9IGVs
c2lmIChpc1dQRSgpKSB7CisgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1BhdGgvcnVu
LXdwZSI7CiAgICAgfQogfQogCkBAIC0xNTM5LDYgKzE1NTMsOCBAQCBzdWIgbGF1bmNoZXJOYW1l
KCkKICAgICAgICAgcmV0dXJuICJTYWZhcmkiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVXaW5XZWJL
aXQoKSkgewogICAgICAgICByZXR1cm4gIk1pbmlCcm93c2VyIjsKKyAgICB9IGVsc2lmIChpc1dQ
RSgpKSB7CisgICAgICAgIHJldHVybiAiV1BFTGF1bmNoZXIiOwogICAgIH0KIH0KIApAQCAtMTg0
MCw2ICsxODU2LDggQEAgc3ViIGdldEpoYnVpbGRQYXRoKCkKICAgICAgICAgcHVzaChAamhidWls
ZFBhdGgsICJEZXBlbmRlbmNpZXNFRkwiKTsKICAgICB9IGVsc2lmIChpc0d0aygpKSB7CiAgICAg
ICAgIHB1c2goQGpoYnVpbGRQYXRoLCAiRGVwZW5kZW5jaWVzR1RLIik7CisgICAgfSBlbHNpZiAo
aXNXUEUoKSkgeworICAgICAgICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRlcGVuZGVuY2llc1dQRSIp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIGRpZSAiQ2Fubm90IGdldCBKSEJ1aWxkIHBhdGggZm9y
IHBsYXRmb3JtIHRoYXQgaXNuJ3QgR1RLKyBvciBFRkwuXG4iOwogICAgIH0KQEAgLTE4ODIsNiAr
MTkwMCw4IEBAIHN1YiB3cmFwcGVyUHJlZml4SWZOZWVkZWQoKQogICAgICAgICAgICAgcHVzaChA
cHJlZml4LCAiLS1lZmwiKTsKICAgICAgICAgfSBlbHNpZiAoaXNHdGsoKSkgewogICAgICAgICAg
ICAgcHVzaChAcHJlZml4LCAiLS1ndGsiKTsKKyAgICAgICAgfSBlbHNpZiAoaXNXUEUoKSkgewor
ICAgICAgICAgICAgcHVzaChAcHJlZml4LCAiLS13cGUiKTsKICAgICAgICAgfQogICAgICAgICBw
dXNoKEBwcmVmaXgsICJydW4iKTsKIApAQCAtMjA0MCw3ICsyMDYwLDcgQEAgc3ViIGdlbmVyYXRl
QnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9qZWN0CiAgICAgcHVzaCBAYXJncywgJy1EU0hPV19CSU5E
SU5HU19HRU5FUkFUSU9OX1BST0dSRVNTPTEnIHVubGVzcyAoJHdpbGxVc2VOaW5qYSAmJiAtdCBT
VERPVVQpOwogCiAgICAgIyBTb21lIHBvcnRzIGhhdmUgcHJvZHVjdGlvbiBtb2RlLCBidXQgYnVp
bGQtd2Via2l0IHNob3VsZCBhbHdheXMgdXNlIGRldmVsb3BlciBtb2RlLgotICAgIHB1c2ggQGFy
Z3MsICItRERFVkVMT1BFUl9NT0RFPU9OIiBpZiBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNKU0NP
bmx5KCk7CisgICAgcHVzaCBAYXJncywgIi1EREVWRUxPUEVSX01PREU9T04iIGlmIGlzRWZsKCkg
fHwgaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSB8fCBpc1dQRSgpOwogCiAgICAgIyBEb24ndCB3YXJu
IHZhcmlhYmxlcyB3aGljaCBhcmVuJ3QgdXNlZCBieSBjbWFrZSBwb3J0cy4KICAgICBwdXNoIEBh
cmdzLCAiLS1uby13YXJuLXVudXNlZC1jbGkiOwpAQCAtMjEyMSw2ICsyMTQxLDEwIEBAIHN1YiBi
dWlsZENNYWtlUHJvamVjdE9yRXhpdCgkJCRAKQogICAgICAgICBzeXN0ZW0oInBlcmwiLCAiJHNv
dXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRndGstbGlicyIpID09IDAgb3IgZGll
ICQhOwogICAgIH0KIAorICAgIGlmIChpc1dQRSgpICYmIGNoZWNrRm9yQXJndW1lbnRBbmRSZW1v
dmVGcm9tQVJHVigiLS11cGRhdGUtd3BlIikpIHsKKyAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRz
b3VyY2VEaXIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMiKSA9PSAwIG9yIGRp
ZSAkITsKKyAgICB9CisKICAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJhdGVCdWls
ZFN5c3RlbUZyb21DTWFrZVByb2plY3QoJHByZWZpeFBhdGgsIEBjbWFrZUFyZ3MpKTsKICAgICBl
eGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L0ZlYXR1cmVMaXN0LnBtCmluZGV4IGI3N2UyYTBkZjJjLi40Yzc0ZDljNDBlMSAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgcHJv
aGliaXRVbmtub3duUG9ydCgpOwogCiBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4g
IjNkLXJlbmRlcmluZyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBSZW5kZXJpbmcgc3VwcG9ydCIsCi0g
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBs
ZUNvY29hV2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkpLCB2
YWx1ZSA9PiBcJHRocmVlRFRyYW5zZm9ybXNTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwg
aXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+
IFwkdGhyZWVEVHJhbnNmb3Jtc1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJhY2NlbGVy
YXRlZC0yZC1jYW52YXMiLCBkZXNjID0+ICJUb2dnbGUgQWNjZWxlcmF0ZWQgMkQgQ2FudmFzIHN1
cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIiwg
ZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGFjY2VsZXJhdGVkMkRDYW52YXNTdXBwb3J0IH0sCisg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+
IGlzV1BFKCksIHZhbHVlID0+IFwkYWNjZWxlcmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJhbGxpbm9uZS1idWlsZCIsIGRlc2MgPT4gIlRvZ2dsZSBhbGwtaW4tb25l
IGJ1aWxkIiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FMTElOT05FX0JVSUxEIiwgZGVmYXVs
dCA9PiBpc1dpbmRvd3MoKSwgdmFsdWUgPT4gXCRhbGxJbk9uZUJ1aWxkIH0sCkBAIC0xODMsNyAr
MTgzLDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lN
QUdFX1JFU09MVVRJT04iLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkY3NzSW1hZ2VS
ZXNvbHV0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImNzcy1pbWFnZS1zZXQiLCBk
ZXNjID0+ICJUb2dnbGUgQ1NTIGltYWdlLXNldCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0NTU19JTUFHRV9TRVQiLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkpLCB2
YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
Q1NTX0lNQUdFX1NFVCIsIGRlZmF1bHQgPT4gKGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgp
KSwgdmFsdWUgPT4gXCRjc3NJbWFnZVNldFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJj
c3MtcmVnaW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgUmVnaW9ucyBzdXBwb3J0IiwKICAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX0NTU19SRUdJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBc
JGNzc1JlZ2lvbnNTdXBwb3J0IH0sCkBAIC0yMDcsNyArMjA3LDcgQEAgbXkgQGZlYXR1cmVzID0g
KAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCIsIGRlZmF1bHQgPT4g
aXNFZmwoKSwgdmFsdWUgPT4gXCRkYXRhbGlzdEVsZW1lbnRTdXBwb3J0IH0sCiAKICAgICB7IG9w
dGlvbiA9PiAiZGV2aWNlLW9yaWVudGF0aW9uIiwgZGVzYyA9PiAiVG9nZ2xlIERldmljZSBPcmll
bnRhdGlvbiBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTiIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRkZXZpY2VPcmllbnRh
dGlvblN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TiIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkZGV2
aWNlT3JpZW50YXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZG9tNC1ldmVudHMt
Y29uc3RydWN0b3IiLCBkZXNjID0+ICJFeHBvc2UgRE9NNCBFdmVudHMgY29uc3RydWN0b3JzIiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SIiwgZGVmYXVs
dCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwk
ZG9tNEV2ZW50c0NvbnN0cnVjdG9yIH0sCkBAIC0yMjUsNyArMjI1LDcgQEAgbXkgQGZlYXR1cmVz
ID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUyIsIGRlZmF1bHQg
PT4gMCwgdmFsdWUgPT4gXCRmb250TG9hZEV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJmdGwtaml0IiwgZGVzYyA9PiAiVG9nZ2xlIEZUTEpJVCBzdXBwb3J0IiwKLSAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0
aygpIHx8IGlzSlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJGZ0bEpJVFN1cHBvcnQgfSwKKyAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChp
c0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImZ0cGRpciIsIGRlc2MgPT4gIlRvZ2dsZSBGVFAg
RGlyZWN0b3J5IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRQRElSIiwgZGVm
YXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGZ0cERpclN1cHBvcnQgfSwKQEAgLTIzNyw3ICsyMzcsNyBA
QCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVm
YXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9
PiAiZ2VvbG9jYXRpb24iLCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0g
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVX
ZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+
IFwkZ2VvbG9jYXRpb25TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HRU9MT0NB
VElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlz
R3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRnZW9sb2NhdGlvblN1cHBv
cnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJoaWdoLWRwaS1jYW52YXMiLCBkZXNjID0+ICJUb2dn
bGUgSGlnaCBEUEkgQ2FudmFzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSElH
SF9EUElfQ0FOVkFTIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpKSwgdmFsdWUgPT4gXCRo
aWdoRFBJQ2FudmFzU3VwcG9ydCB9LApAQCAtMjQ2LDcgKzI0Niw3IEBAIG15IEBmZWF0dXJlcyA9
ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lDT05EQVRBQkFTRSIsIGRlZmF1bHQgPT4gIWlz
SU9TV2ViS2l0KCksIHZhbHVlID0+IFwkaWNvbmRhdGFiYXNlU3VwcG9ydCB9LAogCiAgICAgeyBv
cHRpb24gPT4gImluZGV4ZWQtZGF0YWJhc2UiLCBkZXNjID0+ICJUb2dnbGUgSW5kZXhlZCBEYXRh
YmFzZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0Ui
LCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkp
LCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQo
KSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkaW5kZXhlZERh
dGFiYXNlU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImlucHV0LXNwZWVjaCIsIGRlc2Mg
PT4gIlRvZ2dsZSBJbnB1dCBTcGVlY2ggc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9JTlBVVF9TUEVFQ0giLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkaW5wdXRTcGVlY2hTdXBw
b3J0IH0sCkBAIC0zMTIsNyArMzEyLDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfTUVURVJfRUxFTUVOVCIsIGRlZmF1bHQgPT4gIWlzQXBwbGVXaW5XZWJLaXQo
KSwgdmFsdWUgPT4gXCRtZXRlckVsZW1lbnRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAi
bWh0bWwiLCBkZXNjID0+ICJUb2dnbGUgTUhUTUwgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4gKGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+
IFwkbWh0bWxTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1
bHQgPT4gKGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRtaHRtbFN1
cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJtb3VzZS1jdXJzb3Itc2NhbGUiLCBkZXNjID0+
ICJUb2dnbGUgU2NhbGVkIG1vdXNlIGN1cnNvciBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4g
XCRtb3VzZUN1cnNvclNjYWxlU3VwcG9ydCB9LApAQCAtMzI0LDcgKzMyNCw3IEBAIG15IEBmZWF0
dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZ
IiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGhhcmR3YXJlQ29uY3VycmVuY3lTdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAibmV0c2NhcGUtcGx1Z2luLWFwaSIsIGRlc2MgPT4gIlRvZ2ds
ZSBOZXRzY2FwZSBQbHVnaW4gQVBJIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
TkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1bHQgPT4gIWlzSU9TV2ViS2l0KCksIHZhbHVlID0+
IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAoIWlzSU9TV2ViS2l0KCkgJiYgIWlzV1BF
KCkpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3VwcG9ydCB9LAogCiAgICAgeyBvcHRp
b24gPT4gIm5vc25pZmYiLCBkZXNjID0+ICJUb2dnbGUgc3VwcG9ydCBmb3IgJ1gtQ29udGVudC1U
eXBlLU9wdGlvbnM6IG5vc25pZmYnIiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05PU05JRkYi
LCBkZWZhdWx0ID0+IGlzRWZsKCksIHZhbHVlID0+IFwkbm9zbmlmZlN1cHBvcnQgfSwKQEAgLTMz
Niw3ICszMzYsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9P
UklFTlRBVElPTl9FVkVOVFMiLCBkZWZhdWx0ID0+IGlzSU9TV2ViS2l0KCksIHZhbHVlID0+IFwk
b3JpZW50YXRpb25FdmVudHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAicGVyZm9ybWFu
Y2UtdGltZWxpbmUiLCBkZXNjID0+ICJUb2dnbGUgUGVyZm9ybWFuY2UgVGltZWxpbmUgc3VwcG9y
dCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSIsIGRlZmF1
bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRwZXJmb3JtYW5jZVRpbWVsaW5lU3VwcG9ydCB9LAor
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfUEVSRk9STUFOQ0VfVElNRUxJTkUiLCBkZWZhdWx0ID0+
IChpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxpbmVTdXBw
b3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAicHJveGltaXR5LWV2ZW50cyIsIGRlc2MgPT4gIlRv
Z2dsZSBQcm94aW1pdHkgRXZlbnRzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
UFJPWElNSVRZX0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRwcm94aW1pdHlFdmVu
dHNTdXBwb3J0IH0sCkBAIC0zNjYsNyArMzY2LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAg
ZGVmaW5lID0+ICJVU0VfU1lTVEVNX01BTExPQyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRz
eXN0ZW1NYWxsb2NTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidG91Y2gtZXZlbnRzIiwg
ZGVzYyA9PiAiVG9nZ2xlIFRvdWNoIEV2ZW50cyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNFZmwo
KSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkg
fHwgaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHRvdWNoRXZlbnRz
U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInRvdWNoLWljb24tbG9hZGluZyIsIGRlc2Mg
PT4gIlRvZ2dsZSBUb3VjaCBJY29uIExvYWRpbmcgU3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkciLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkdG91
Y2hJY29uTG9hZGluZ1N1cHBvcnQgfSwKQEAgLTM3OCwxNiArMzc4LDE2IEBAIG15IEBmZWF0dXJl
cyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJQlJBVElPTiIsIGRlZmF1bHQgPT4gaXNF
ZmwoKSwgdmFsdWUgPT4gXCR2aWJyYXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAi
dmlkZW8iLCBkZXNjID0+ICJUb2dnbGUgVmlkZW8gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8
IGlzRWZsKCkpLCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfVklERU8iLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBp
c0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9LAogCiAgICAgeyBv
cHRpb24gPT4gInZpZGVvLXRyYWNrIiwgZGVzYyA9PiAiVG9nZ2xlIFZpZGVvIFRyYWNrIHN1cHBv
cnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBkZWZhdWx0ID0+IChp
c0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4gXCR2aWRlb1Ry
YWNrU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBkZWZh
dWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkp
LCB2YWx1ZSA9PiBcJHZpZGVvVHJhY2tTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2Vi
LWFuaW1hdGlvbnMiLCBkZXNjID0+ICJUb2dnbGUgV2ViIEFuaW1hdGlvbnMgc3VwcG9ydCIsCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJfQU5JTUFUSU9OUyIsIGRlZmF1bHQgPT4gMSwgdmFs
dWUgPT4gXCR3ZWJBbmltYXRpb25zU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYi1h
dWRpbyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQXVkaW8gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9XRUJfQVVESU8iLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkpLCB2
YWx1ZSA9PiBcJHdlYkF1ZGlvU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VC
X0FVRElPIiwgZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1
ZSA9PiBcJHdlYkF1ZGlvU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYi1yZXBsYXki
LCBkZXNjID0+ICJUb2dnbGUgV2ViIFJlcGxheSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX1dFQl9SRVBMQVkiLCBkZWZhdWx0ID0+IGlzQXBwbGVDb2NvYVdlYktpdCgpLCB2YWx1
ZSA9PiBcJHdlYlJlcGxheVN1cHBvcnQgfSwKQEAgLTQwMiwxMCArNDAyLDEwIEBAIG15IEBmZWF0
dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9USU1JTkciLCBkZWZhdWx0ID0+
IDEsIHZhbHVlID0+IFwkd2ViVGltaW5nU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndl
YmFzc2VtYmx5IiwgZGVzYyA9PiAiVG9nZ2xlIFdlYkFzc2VtYmx5IHN1cHBvcnQiLAotICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfV0VCQVNTRU1CTFkiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYm
IChpc0d0aygpIHx8IGlzSlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJHdlYkFzc2VtYmx5U3VwcG9y
dCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCQVNTRU1CTFkiLCBkZWZhdWx0ID0+IChp
c1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVl
ID0+IFwkd2ViQXNzZW1ibHlTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViZ2wiLCBk
ZXNjID0+ICJUb2dnbGUgV2ViR0wgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9X
RUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNF
ZmwoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9XRUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzR3RrKCkgfHwg
aXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR3ZWJnbFN1cHBvcnQgfSwKIAogICAgIHsg
b3B0aW9uID0+ICJ3cml0YWJsZVN0cmVhbUFQSSIsIGRlc2MgPT4gIlRvZ2dsZSBXcml0YWJsZVN0
cmVhbSBBUEkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XUklUQUJMRV9TVFJF
QU1fQVBJIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHdyaXRhYmxlU3RyZWFtQVBJU3VwcG9y
dCB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHMucHkKaW5kZXggN2M2ZGRjODM5ZjMuLjU3MmU4YTVlNzdkIDEwMDc1NQot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHMucHkKQEAgLTQyNCw3ICs0MjQsNyBAQCBkZWYgX3NldF91cF9kZXJpdmVkX29wdGlvbnMo
cG9ydCwgb3B0aW9ucyk6CiAgICAgICAgIG9wdGlvbnMudmVyYm9zZSA9IFRydWUKIAogICAgICMg
VGhlIEdUSysgYW5kIEVGTCBwb3J0cyBvbmx5IHN1cHBvcnQgV2ViS2l0MiBzbyB0aGV5IGFsd2F5
cyB1c2UgV0tUUi4KLSAgICBpZiBvcHRpb25zLnBsYXRmb3JtID09ICJndGsiIG9yIG9wdGlvbnMu
cGxhdGZvcm0gPT0gImVmbCI6CisgICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSBpbiBbImVmbCIsICJn
dGsiLCAid3BlIl06CiAgICAgICAgIG9wdGlvbnMud2Via2l0X3Rlc3RfcnVubmVyID0gVHJ1ZQog
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkKaW5kZXggYzYxZDE3ZjY1MzQu
LmE3MTY0OTliMzI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFj
dG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQpAQCAt
NTYsNiArNTYsOSBAQCBkZWYgcGxhdGZvcm1fb3B0aW9ucyh1c2VfZ2xvYnM9RmFsc2UpOgogICAg
ICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1ndGsnLCBhY3Rpb249J3N0b3JlX2NvbnN0Jywg
ZGVzdD0ncGxhdGZvcm0nLAogICAgICAgICAgICAgY29uc3Q9KCdndGsqJyBpZiB1c2VfZ2xvYnMg
ZWxzZSAnZ3RrJyksCiAgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3Rr
KicgaWYgdXNlX2dsb2JzIGVsc2UgJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWd0aycpKSwKKyAgICAg
ICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0td3BlJywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGRl
c3Q9J3BsYXRmb3JtJywKKyAgICAgICAgICAgIGNvbnN0PSgnd3BlKicgaWYgdXNlX2dsb2JzIGVs
c2UgJ3dwZScpLAorICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPXdwZScp
KSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tbm8taW5zdGFsbCcsIGFjdGlvbj0n
c3RvcmVfY29uc3QnLAogICAgICAgICAgICAgY29uc3Q9RmFsc2UsIGRlZmF1bHQ9VHJ1ZSwgZGVz
dD0naW5zdGFsbCcsCiAgICAgICAgICAgICBoZWxwPSdTa2lwIGluc3RhbGwgc3RlcCBmb3IgZGV2
aWNlIGFuZCBzaW11bGF0b3IgdGVzdGluZycpLApAQCAtOTcsNiArMTAwLDcgQEAgY2xhc3MgUG9y
dEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAgJ3Rlc3QuVGVzdFBvcnQnLAogICAgICAgICAnd2lu
LldpbkNhaXJvUG9ydCcsCiAgICAgICAgICd3aW4uV2luUG9ydCcsCisgICAgICAgICd3cGUuV1BF
UG9ydCcsCiAgICAgKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC93cGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmNjODM5ZTdmYzAyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L3dwZS5weQpAQCAtMCwwICsxLDc4IEBACisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgR29vZ2xl
IG5hbWUgbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
Lm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCitmcm9t
IHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0LmxpbnV4
X2dldF9jcmFzaF9sb2cgaW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCisKK2NsYXNzIFdQRVBv
cnQoUG9ydCk6CisgICAgcG9ydF9uYW1lID0gIndwZSIKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihXUEVQb3J0LCBzZWxmKS5fX2luaXRf
XygqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgaWYgc2VsZi5fc2hvdWxkX3VzZV9qaGJ1aWxk
KCk6CisgICAgICAgICAgICBzZWxmLl9qaGJ1aWxkX3dyYXBwZXIgPSBbc2VsZi5wYXRoX2Zyb21f
d2Via2l0X2Jhc2UoJ1Rvb2xzJywgJ2poYnVpbGQnLCAnamhidWlsZC13cmFwcGVyJyksICctLXdw
ZScsICdydW4nXQorICAgICAgICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dyYXBwZXIn
LCAnICcuam9pbihzZWxmLl9qaGJ1aWxkX3dyYXBwZXIpKQorCisgICAgZGVmIGRlZmF1bHRfdGlt
ZW91dF9tcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIDYwMDAKKworICAgIGRlZiBfYnVpbHRfZXhl
Y3V0YWJsZXNfcGF0aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9w
YXRoKCooKCdiaW4nLCkgKyBwYXRoKSkKKworICAgIGRlZiBfYnVpbHRfbGlicmFyaWVzX3BhdGgo
c2VsZiwgKnBhdGgpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgqKCgnbGliJywp
ICsgcGF0aCkpCisKKyAgICBkZWYgX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuICItLXdwZSIKKworICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2Vs
Ziwgc2VydmVyX25hbWU9Tm9uZSk6CisgICAgICAgIGVudmlyb25tZW50ID0gc3VwZXIoV1BFUG9y
dCwgc2VsZikuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQorICAgICAgICBl
bnZpcm9ubWVudFsnR1NFVFRJTkdTX0JBQ0tFTkQnXSA9ICdtZW1vcnknCisgICAgICAgIGVudmly
b25tZW50WydURVNUX1JVTk5FUl9JTkpFQ1RFRF9CVU5ETEVfRklMRU5BTUUnXSA9IHNlbGYuX2J1
aWxkX3BhdGgoJ2xpYicsICdsaWJUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuc28nKQorICAgICAg
ICBlbnZpcm9ubWVudFsnVEVTVF9SVU5ORVJfVEVTVF9QTFVHSU5fUEFUSCddID0gc2VsZi5fYnVp
bGRfcGF0aCgnbGliJywgJ3BsdWdpbnMnKQorICAgICAgICBlbnZpcm9ubWVudFsnV0VCS0lUX0VY
RUNfUEFUSCddID0gc2VsZi5fYnVpbGRfcGF0aCgnYmluJykKKyAgICAgICAgcmV0dXJuIGVudmly
b25tZW50CisKKyAgICBkZWYgX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYp
OgorICAgICAgICBjb25maWd1cmF0aW9ucyA9IFtdCisgICAgICAgIGZvciBidWlsZF90eXBlIGlu
IHNlbGYuQUxMX0JVSUxEX1RZUEVTOgorICAgICAgICAgICAgY29uZmlndXJhdGlvbnMuYXBwZW5k
KFRlc3RDb25maWd1cmF0aW9uKHZlcnNpb249c2VsZi5fdmVyc2lvbiwgYXJjaGl0ZWN0dXJlPSd4
ODYnLCBidWlsZF90eXBlPWJ1aWxkX3R5cGUpKQorICAgICAgICByZXR1cm4gY29uZmlndXJhdGlv
bnMKKworICAgIGRlZiBfcGF0aF90b19kcml2ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Ll9idWlsdF9leGVjdXRhYmxlc19wYXRoKHNlbGYuZHJpdmVyX25hbWUoKSkKKworICAgIGRlZiBf
cGF0aF90b19pbWFnZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbHRfZXhl
Y3V0YWJsZXNfcGF0aCgnSW1hZ2VEaWZmJykKKworICAgIGRlZiBfZ2V0X2NyYXNoX2xvZyhzZWxm
LCBuYW1lLCBwaWQsIHN0ZG91dCwgc3RkZXJyLCBuZXdlcl90aGFuKToKKyAgICAgICAgbmFtZSA9
ICJXUEVXZWJQcm9jZXNzIiBpZiBuYW1lID09ICJXZWJQcm9jZXNzIiBlbHNlIG5hbWUKKyAgICAg
ICAgcmV0dXJuIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2Vs
Zi5fZmlsZXN5c3RlbSwgc2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xvZyhz
dGRvdXQsIHN0ZGVycikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1X
UEUuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOTc4NDc1NWYzNgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw2
MCBAQAorc2V0KFRFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtF
X1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vVGVzdFdlYktpdEFQSSIpCitzZXQoVEVTVFdFQktJ
VEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUllfV1RGICIke1RFU1RXRUJLSVRBUElfUlVOVElN
RV9PVVRQVVRfRElSRUNUT1JZfS9XVEYiKQorCisjIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ug
aXQgaXMgcG9zc2libGUgdG8gYnVpbGQgVGVzdFdlYktpdEFQSSB3aXRoIFdlYktpdDIKKyMgZGlz
YWJsZWQgYW5kIHRoaXMgdHJpZ2dlcnMgdGhlIGluY2x1c2lvbiBvZiB0aGUgV2ViS2l0MiBoZWFk
ZXJzLgorYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfV0VCS0lUMl9fKQorCithZGRfY3VzdG9t
X3RhcmdldChUZXN0V2ViS2l0QVBJLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQ
RVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGlu
Zy1oZWFkZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7VEVTVFdFQktJVEFQSV9ESVJ9IC0tb3V0cHV0
ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3Vw
CisgICAgREVQRU5EUyB3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworKQorCitzZXQoRm9y
d2FyZGluZ0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUUgVGVzdFdlYktpdEFQSS1mb3J3YXJk
aW5nLWhlYWRlcnMpCisKK2luY2x1ZGVfZGlyZWN0b3JpZXMoCisgICAgJHtGT1JXQVJESU5HX0hF
QURFUlNfRElSfQorICAgICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlwdENvcmUK
KykKKworaW5jbHVkZV9kaXJlY3RvcmllcyhTWVNURU0KKyAgICAke0dMSUJfSU5DTFVERV9ESVJT
fQorICAgICR7TElCU09VUF9JTkNMVURFX0RJUlN9CispCisKK3NldCh0ZXN0X21haW5fU09VUkNF
UworICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9tYWluLmNwcAorKQorCitzZXQoYnVuZGxl
X2hhcm5lc3NfU09VUkNFUworICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9JbmplY3RlZEJ1
bmRsZUNvbnRyb2xsZXJXUEUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL1BsYXRm
b3JtVXRpbGl0aWVzV1BFLmNwcAorKQorCisjIFRlc3RXVEYKKworbGlzdChBUFBFTkQgVGVzdFdU
Rl9TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dsaWIvR1VuaXF1
ZVB0ci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVl
dWVHTGliLmNwcAorKQorCisjIFRlc3RXZWJDb3JlCisKK2FkZF9leGVjdXRhYmxlKFRlc3RXZWJD
b3JlCisgICAgJHt0ZXN0X21haW5fU09VUkNFU30KKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0c0NvbnRyb2xsZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29y
ZS9IVE1MUGFyc2VySWRpb21zLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvTGF5b3V0VW5pdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJD
b3JlL1VSTC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlclRlc3QuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9G
aWxlU3lzdGVtLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvUHVi
bGljU3VmZml4LmNwcAorKQorCit0YXJnZXRfbGlua19saWJyYXJpZXMoVGVzdFdlYkNvcmUgJHt0
ZXN0X3dlYmNvcmVfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoVGVzdFdlYkNvcmUgJHtG
b3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRX0pCisKK2FkZF90ZXN0KFRlc3RX
ZWJDb3JlICR7VEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dlYkNvcmUv
VGVzdFdlYkNvcmUpCitzZXRfdGVzdHNfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9QRVJUSUVT
IFRJTUVPVVQgNjApCitzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoVGVzdFdlYkNvcmUgUFJPUEVSVElF
UyBSVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVU
X0RJUkVDVE9SWX0vV2ViQ29yZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3Bl
L0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dw
ZS9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5mZDIxMjFiZDdhMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKQEAgLTAsMCAr
MSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVy
LmgiCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZUNv
bnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3Jt
VXRpbGl0aWVzV1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0
aWVzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTIxYzFl
YWEyZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9y
bVV0aWxpdGllc1dQRS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKK25hbWVzcGFjZSBVdGlsIHsKKwordm9pZCBzbGVlcChkb3VibGUgc2Vjb25kcykKK3sK
KyAgICBnX3VzbGVlcChzZWNvbmRzICogMTAwMDAwMCk7Cit9CisKK3N0YXRpYyBjaGFyKiBnZXRG
aWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KGNvbnN0IGNoYXIqIHZhcmlhYmxl
TmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZhcmlhYmxlTmFtZSk7
CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBnX3ByaW50ZXJyKCIlcyBlbnZpcm9ubWVudCB2
YXJpYWJsZSBub3QgZm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMSk7Cisg
ICAgfQorICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191
dGY4KHZhbHVlLCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK1dLU3RyaW5nUmVmIGNy
ZWF0ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBpbmplY3Rl
ZEJ1bmRsZVBhdGgoZ2V0RmlsZW5hbWVGcm9tRW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVT
VF9XRUJLSVRfQVBJX1dFQktJVDJfSU5KRUNURURfQlVORExFX1BBVEgiKSk7CisgICAgR1VuaXF1
ZVB0cjxjaGFyPiBpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoaW5qZWN0
ZWRCdW5kbGVQYXRoLmdldCgpLCAibGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlLnNvIiwg
bnVsbHB0cikpOworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhpbmpl
Y3RlZEJ1bmRsZUZpbGVuYW1lLmdldCgpKTsKK30KKworV0tVUkxSZWYgY3JlYXRlVVJMRm9yUmVz
b3VyY2UoY29uc3QgY2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGV4dGVuc2lvbikKK3sKKyAg
ICBHVW5pcXVlUHRyPGNoYXI+IHRlc3RSZXNvdXJjZXNQYXRoKGdldEZpbGVuYW1lRnJvbUVudmly
b25tZW50VmFyaWFibGVBc1VURjgoIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX1JFU09VUkNFU19Q
QVRIIikpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VCYXNlbmFtZShnX3N0cmR1cF9w
cmludGYoIiVzLiVzIiwgcmVzb3VyY2UsIGV4dGVuc2lvbikpOworICAgIEdVbmlxdWVQdHI8Y2hh
cj4gcmVzb3VyY2VGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKHRlc3RSZXNvdXJjZXNQYXRoLmdl
dCgpLCByZXNvdXJjZUJhc2VuYW1lLmdldCgpLCBudWxscHRyKSk7CisgICAgR1JlZlB0cjxHRmls
ZT4gcmVzb3VyY2VGaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgocmVzb3VyY2VG
aWxlbmFtZS5nZXQoKSkpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VVUkkoZ19maWxl
X2dldF91cmkocmVzb3VyY2VGaWxlLmdldCgpKSk7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKHJlc291cmNlVVJJLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVXRp
bAorfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS93cGUvbWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjY1NjhiNmMzMmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcApAQCAtMCwwICsx
LDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0c0NvbnRyb2xsZXIuaCIKKworaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIHJldHVybiBUZXN0V2ViS2l0QVBJ
OjpUZXN0c0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnJ1bihhcmdjLCBhcmd2KSA/IEVYSVRfU1VD
Q0VTUyA6IEVYSVRfRkFJTFVSRTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAK
aW5kZXggMGExMzBkNGU4ZGQuLmRlMmJlM2U3YmNkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmNwcApAQCAtNzEsNyArNzEsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkKICAgICByZXR1cm4gV0tBY2Nlc3NpYmls
aXR5RW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKEdU
SykgJiYgIVBMQVRGT1JNKEVGTCkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZM
KSAmJiAhUExBVEZPUk0oV1BFKQogUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiB7CiAgICAgV0tCdW5kbGVQYWdlUmVmIHBh
Z2UgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmgKaW5kZXggNWNmMGQ3MzljMWUuLmM4ZDc4ZTc3YTEyIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Tm90aWZpY2F0aW9uSGFuZGxlcj4g
bV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyOwotI2Vsc2UKKyNlbGlmIFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oRUZMKQogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlcj4gbV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5jcHAKaW5kZXggMjMzZmY3ZDIwMzQuLmI4YWY2ZjE2Y2E4IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc1RleHRBcmVhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICNlbmRpZgogICAgIAogLy8gVW5zdXBwb3J0ZWQgbWV0aG9kcyBvbiB2YXJpb3VzIHBsYXRmb3Jt
cy4gQXMgdGhleSdyZSBpbXBsZW1lbnRlZCBvbiBvdGhlciBwbGF0Zm9ybXMgdGhpcyBsaXN0IHNo
b3VsZCBiZSBtb2RpZmllZC4KLSNpZiAoIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkp
IHx8ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaWYgKCFQTEFURk9STShHVEspICYmICFQTEFURk9S
TShFRkwpICYmICFQTEFURk9STShXUEUpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQogSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zm
c2V0KGludCkgeyByZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7
IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5l
QXRPZmZzZXQoaW50KSB7IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oCmluZGV4IDU1MDlhZjIxNzdkLi42ZDA3MDY3OGI5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgKQEAgLTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VUlFbGVt
ZW50c1dpdGhBdHRyaWJ1dGUoSlNTdHJpbmdSZWYsIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4gPiYpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBn
ZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mKTsKICAg
ICB2b2lkIGdldENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gPiYsIHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAppbmRleCBhZmZjNDBmMGU0My4uMDE5MTM2MjM3NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtOTgs
NyArOTgsNyBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICAsIG1fZGF0YWJhc2VNYXhR
dW90YSgtMSkKICAgICAsIG1fdXNlclN0eWxlU2hlZXRFbmFibGVkKGZhbHNlKQogICAgICwgbV91
c2VyU3R5bGVTaGVldExvY2F0aW9uKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIiIpKSkKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpCiAgICAgLCBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJlRlc3RSdW5uZXI6OndhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyRmlyZWQpCiAjZW5kaWYK
IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKaW5kZXggOGRjODljYTMxNWUuLjRkYjI4YWQ0YTJjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzgsNyArMzgs
NyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlv
bi9DRlJ1bkxvb3AuaD4KIHR5cGVkZWYgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBQbGF0
Zm9ybVRpbWVyUmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIG5hbWVzcGFjZSBXVFIg
ewogY2xhc3MgVGVzdFJ1bm5lcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk0YzJh
YWI3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKQEAgLTAsMCArMSw3MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWY8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVt
ZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUobnVsbHB0cik7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0
ZShudWxscHRyKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZp
Y2F0aW9uTGlzdGVuZXIoSlNWYWx1ZVJlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKKworI2VuZGlmIC8vIEhBVkUoQUND
RVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ2NDkxNTBhNTQwCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAKQEAgLTAsMCArMSw5NTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQoUGxhdGZvcm1VSUVsZW1lbnQpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudChjb25zdCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50JikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp+QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0VxdWFsKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmdldENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4+JiwgdW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbkNvdW50KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZWxlbWVudEF0UG9pbnQoaW50
LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KwordW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNoaWxkKEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7
Cit9CisKKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmNoaWxkQXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYU93
bnNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29u
dHJvbHNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25lZCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93QXRJbmRl
eCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordW5zaWduZWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KHVuc2ln
bmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0
aXRsZVVJRWxlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnBhcmVudEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRCeVJvdygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkxpbmtlZFVJRWxlbWVudHMoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZE
b2N1bWVudExpbmtzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlc09mQ2hpbGRyZW4oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjphbGxBdHRyaWJ1dGVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om51bWJlckF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0
dHJpYnV0ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisK
K0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXJyYXlBdHRyaWJ1
dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpyb3dIZWFkZXJzKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBh
dHRyaWJ1dGUpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFs
dWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmli
dXRlU2V0dGFibGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzQXR0cmlidXRlU3VwcG9ydGVkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVOYW1l
cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdWJyb2xlKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9u
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29tcHV0ZWRS
b2xlU3RyaW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
dGl0bGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNj
cmlwdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9y
aWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c3RyaW5nVmFsdWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpsYW5ndWFnZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmhlbHBUZXh0KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6eSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGgoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlaWdodCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xp
Y2tQb2ludFgoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30K
KworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRZKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjppbnRWYWx1ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWlu
VmFsdWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKwor
ZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1heFZhbHVlKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2YWx1ZURlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzUHJlc3NBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSW5jcmVt
ZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0RlY3JlbWVudEFj
dGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVkKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0ZvY3VzZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRPcHRpb25BY3RpdmUoKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzQ2hlY2tlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmRl
dGVybWluYXRlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVs
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3BlYWsoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUlzR3JhYmJlZCgpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRHJvcEVmZmVjdHMoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lRm9ySW5kZXgoaW50KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvckxpbmUoaW50KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvclBvc2l0aW9uKGludCwgaW50KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib3VuZHNGb3JSYW5n
ZSh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnN0cmluZ0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclJhbmdl
KHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRT
dHJpbmdSYW5nZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Vuc2lnbmVkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnVpRWxlbWVudENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJl
ZiwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCosIGJvb2wsIEpTVmFsdWVSZWYsIEpTU3RyaW5nUmVm
LCBib29sLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRo
Q3JpdGVyaWEoSlNDb250ZXh0UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdS
ZWYsIEpTU3RyaW5nUmVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFkZXJzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93SGVhZGVycygpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbnMoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZS
b3dzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mVmlzaWJsZUNlbGxzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6YXR0cmlidXRlc09mSGVhZGVyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93
Q291bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5Db3VudCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmluZGV4SW5UYWJsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJv
d0luZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpjb2x1bW5JbmRleFJhbmdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZ25lZCwgdW5zaWduZWQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhvcml6b250
YWxTY3JvbGxiYXIoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkVGV4dFJhbmdlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmNyZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVjcmVtZW50KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNo
b3dNZW51KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnByZXNzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCogZWxlbWVudCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2ln
bmVkIGluZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNsZWFyU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50RW5jb2RpbmcoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpkb2N1bWVudFVSSSgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVybCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmIGZ1bmN0aW9uQ2FsbGJh
Y2spCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc1NlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVs
dGlTZWxlY3RhYmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1Zpc2libGUoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNJZ25vcmVkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NpbmdsZUxpbmUoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVsdGlMaW5lKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpoYXNQb3B1cCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFr
ZUZvY3VzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnRha2VTZWxlY3Rpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0aW9uKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92
ZVNlbGVjdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVUZXh0
TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1h
cmtlclJhbmdlRm9yRWxlbWVudChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlTGVuZ3RoKEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJl
dmlvdXNUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JNYXJrZXJzKEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
KiwgQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdl
KEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
cj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5n
ZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBp
bnQsIGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yQm91bmRzKGludCwgaW50LCBpbnQsIGludCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJr
ZXJGb3JQb2ludChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJp
bmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiwgQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEZvclRl
eHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNU
ZXh0TWFya2VyVmFsaWQoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJGb3JJbmRleChpbnQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVm
UHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFy
dFRleHRNYXJrZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6ZW5kVGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxl
Y3RlZFZpc2libGVUZXh0UmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb0dsb2Jh
bFBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1cyhpbnQs
IGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1cHBvcnRlZEFjdGlvbnMo
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXRo
RGVzY3JpcHRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjptYXRoUG9zdHNjcmlwdHNEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQcmVzY3JpcHRzRGVzY3JpcHRpb24o
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGFz
c0xpc3QoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpjaGFyYWN0ZXJBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlQXRPZmZzZXQoaW50KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNl
ICBXVEYKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRlRm9udHNXUEUuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250
c1dQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMzY2Y3MjFi
MzE5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFjdGl2YXRlRm9udHMuaCIKKworI2luY2x1ZGUgPGZvbnRjb25maWcv
Zm9udGNvbmZpZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgeworCitDU3RyaW5n
IHRvcExldmVsUGF0aCgpCit7CisgICAgaWYgKGNvbnN0IGNoYXIqIHRvcExldmVsRGlyZWN0b3J5
ID0gZ19nZXRlbnYoIldFQktJVF9UT1BfTEVWRUwiKSkKKyAgICAgICAgcmV0dXJuIHRvcExldmVs
RGlyZWN0b3J5OworCisgICAgLy8gSWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHdhc24ndCBw
cm92aWRlZCB0aGVuIGFzc3VtZSB3ZSB3ZXJlIGJ1aWx0IGludG8KKyAgICAvLyBXZWJLaXRCdWls
ZC9EZWJ1ZyBvciBXZWJLaXRCdWlsZC9SZWxlYXNlLiBPYnZpb3VzbHkgdGhpcyB3aWxsIGZhaWwg
aWYgdGhlIGJ1aWxkCisgICAgLy8gZGlyZWN0b3J5IGlzIG5vbi1zdGFuZGFyZCwgYnV0IHdlIGNh
bid0IGRvIG11Y2ggbW9yZSBhYm91dCB0aGlzLgorICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGFyZW50
UGF0aChnX3BhdGhfZ2V0X2Rpcm5hbWUoZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCkuZGF0YSgp
KSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBsYXlvdXRUZXN0c1BhdGgoZ19idWlsZF9maWxlbmFt
ZShwYXJlbnRQYXRoLmdldCgpLCAiLi4iLCAiLi4iLCAiLi4iLCBudWxscHRyKSk7CisgICAgR1Vu
aXF1ZVB0cjxjaGFyPiBhYnNvbHV0ZVRvcExldmVsUGF0aChyZWFscGF0aChsYXlvdXRUZXN0c1Bh
dGguZ2V0KCksIDApKTsKKyAgICByZXR1cm4gYWJzb2x1dGVUb3BMZXZlbFBhdGguZ2V0KCk7Cit9
CisKK0NTdHJpbmcgZ2V0T3V0cHV0RGlyKCkKK3sKKyAgICBjb25zdCBjaGFyKiB3ZWJraXRPdXRw
dXREaXIgPSBnX2dldGVudigiV0VCS0lUX09VVFBVVERJUiIpOworICAgIGlmICh3ZWJraXRPdXRw
dXREaXIpCisgICAgICAgIHJldHVybiB3ZWJraXRPdXRwdXREaXI7CisKKyAgICBHVW5pcXVlUHRy
PGNoYXI+IG91dHB1dERpcihnX2J1aWxkX2ZpbGVuYW1lKHRvcExldmVsUGF0aCgpLmRhdGEoKSwg
IldlYktpdEJ1aWxkIiwgbnVsbHB0cikpOworICAgIHJldHVybiBvdXRwdXREaXIuZ2V0KCk7Cit9
CisKK3N0YXRpYyBDU3RyaW5nIGdldEZvbnRzUGF0aCgpCit7CisgICAgQ1N0cmluZyB3ZWJraXRP
dXRwdXREaXIgPSBnZXRPdXRwdXREaXIoKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGZvbnRzUGF0
aChnX2J1aWxkX2ZpbGVuYW1lKHdlYmtpdE91dHB1dERpci5kYXRhKCksICJEZXBlbmRlbmNpZXNX
UEUiLCAiUm9vdCIsICJ3ZWJraXRndGstdGVzdC1mb250cyIsIG51bGxwdHIpKTsKKyAgICBpZiAo
Z19maWxlX3Rlc3QoZm9udHNQYXRoLmdldCgpLCBzdGF0aWNfY2FzdDxHRmlsZVRlc3Q+KEdfRklM
RV9URVNUX0VYSVNUUyB8IEdfRklMRV9URVNUX0lTX0RJUikpKQorICAgICAgICByZXR1cm4gZm9u
dHNQYXRoLmdldCgpOworCisgICAgLy8gVHJ5IGFsdGVybmF0aXZlIGZvbnRzIHBhdGguCisgICAg
Zm9udHNQYXRoLnJlc2V0KGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwg
IndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgTlVMTCkpOworICAgIGlmIChnX2ZpbGVfdGVzdChmb250
c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0PEdGaWxlVGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwg
R19GSUxFX1RFU1RfSVNfRElSKSkpCisgICAgICAgIHJldHVybiBmb250c1BhdGguZ2V0KCk7CisK
KyAgICByZXR1cm4gQ1N0cmluZygpOworfQorCit2b2lkIGFjdGl2YXRlRm9udHMoKQoreworICAg
IGlmIChnX2dldGVudigiV0VCS0lUX1NLSVBfV0VCS0lUVEVTVFJVTk5FUl9GT05UQ09ORklHX0lO
SVRJQUxJWkFUSU9OIikpCisgICAgICAgIHJldHVybjsKKworICAgIEZjSW5pdCgpOworCisgICAg
Ly8gSWYgYSB0ZXN0IHJlc3VsdGVkIGEgZm9udCBiZWluZyBhZGRlZCBvciByZW1vdmVkIHZpYSB0
aGUgQGZvbnQtZmFjZSBydWxlLCB0aGVuCisgICAgLy8gd2Ugd2FudCB0byByZXNldCB0aGUgRm9u
dENvbmZpZyBjb25maWd1cmF0aW9uIHRvIHByZXZlbnQgaXQgZnJvbSBhZmZlY3Rpbmcgb3RoZXIg
dGVzdHMuCisgICAgc3RhdGljIGludCBudW1Gb250cyA9IDA7CisgICAgRmNGb250U2V0KiBhcHBG
b250U2V0ID0gRmNDb25maWdHZXRGb250cygwLCBGY1NldEFwcGxpY2F0aW9uKTsKKyAgICBpZiAo
YXBwRm9udFNldCAmJiBudW1Gb250cyAmJiBhcHBGb250U2V0LT5uZm9udCA9PSBudW1Gb250cykK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gTG9hZCBvdXIgY29uZmlndXJhdGlvbiBmaWxlLCB3
aGljaCBzZXRzIHVwIHByb3BlciBhbGlhc2VzIGZvciBmYW1pbHkKKyAgICAvLyBuYW1lcyBsaWtl
IHNhbnMsIHNlcmlmIGFuZCBtb25vc3BhY2UuCisgICAgRmNDb25maWcqIGNvbmZpZyA9IEZjQ29u
ZmlnQ3JlYXRlKCk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9udENvbmZpZ0ZpbGVuYW1lKGdf
YnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICJmb250cy5jb25mIiwgbnVsbHB0cikpOwor
ICAgIGlmICghZ19maWxlX3Rlc3QoZm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpLCBHX0ZJTEVfVEVT
VF9JU19SRUdVTEFSKSkKKyAgICAgICAgZ19lcnJvcigiQ2Fubm90IGZpbmQgZm9udHMuY29uZiBh
dCAlc1xuIiwgZm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpKTsKKyAgICBpZiAoIUZjQ29uZmlnUGFy
c2VBbmRMb2FkKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udENvbmZpZ0Zp
bGVuYW1lLmdldCgpKSwgdHJ1ZSkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkbid0IGxvYWQgZm9u
dCBjb25maWd1cmF0aW9uIGZpbGUgZnJvbTogJXMiLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkp
OworCisgICAgQ1N0cmluZyBmb250c1BhdGggPSBnZXRGb250c1BhdGgoKTsKKyAgICBpZiAoZm9u
dHNQYXRoLmlzTnVsbCgpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9jYXRlIHRlc3Qg
Zm9udHMgYXQgJXMuIElzIFdFQktJVF9UT1BfTEVWRUwgc2V0PyIsIGZvbnRzUGF0aC5kYXRhKCkp
OworCisgICAgR1VuaXF1ZVB0cjxHRGlyPiBmb250c0RpcmVjdG9yeShnX2Rpcl9vcGVuKGZvbnRz
UGF0aC5kYXRhKCksIDAsIG51bGxwdHIpKTsKKyAgICB3aGlsZSAoY29uc3QgY2hhciogZGlyZWN0
b3J5RW50cnkgPSBnX2Rpcl9yZWFkX25hbWUoZm9udHNEaXJlY3RvcnkuZ2V0KCkpKSB7CisgICAg
ICAgIGlmICghZ19zdHJfaGFzX3N1ZmZpeChkaXJlY3RvcnlFbnRyeSwgIi50dGYiKSAmJiAhZ19z
dHJfaGFzX3N1ZmZpeChkaXJlY3RvcnlFbnRyeSwgIi5vdGYiKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250UGF0aChnX2J1aWxkX2ZpbGVuYW1l
KGZvbnRzUGF0aC5kYXRhKCksIGRpcmVjdG9yeUVudHJ5LCBudWxscHRyKSk7CisgICAgICAgIGlm
ICghRmNDb25maWdBcHBGb250QWRkRmlsZShjb25maWcsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
RmNDaGFyOCo+KGZvbnRQYXRoLmdldCgpKSkpCisgICAgICAgICAgICBnX2Vycm9yKCJDb3VsZCBu
b3QgbG9hZCBmb250IGF0ICVzISIsIGZvbnRQYXRoLmdldCgpKTsKKyAgICB9CisKKyAgICAvLyBB
aGVtIGlzIHVzZWQgYnkgbWFueSBsYXlvdXQgdGVzdHMuCisgICAgR1VuaXF1ZVB0cjxnY2hhcj4g
YWhlbUZvbnRGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKEZPTlRTX0NPTkZfRElSLCAiQUhFTV9f
X18uVFRGIiwgbnVsbHB0cikpOworICAgIGlmICghRmNDb25maWdBcHBGb250QWRkRmlsZShjb25m
aWcsIHJlaW50ZXJwcmV0X2Nhc3Q8RmNDaGFyOCo+KGFoZW1Gb250RmlsZW5hbWUuZ2V0KCkpKSkK
KyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IGxvYWQgZm9udCBhdCAlcyEiLCBhaGVtRm9udEZp
bGVuYW1lLmdldCgpKTsgCisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZm9udEZpbGVuYW1lc1td
ID0geworICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjEwMC50dGYiLAorICAgICAgICAiV2Vi
S2l0V2VpZ2h0V2F0Y2hlcjIwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjMw
MC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjQwMC50dGYiLAorICAgICAgICAi
V2ViS2l0V2VpZ2h0V2F0Y2hlcjUwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hl
cjYwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50dGYiLAorICAgICAg
ICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjgwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0
Y2hlcjkwMC50dGYiLAorICAgICAgICAwCisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBmb250RmlsZW5hbWVzW2ldOyArK2kpIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9u
dEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICIuLiIsICIuLiIsICJm
b250cyIsIGZvbnRGaWxlbmFtZXNbaV0sIG51bGxwdHIpKTsKKyAgICAgICAgaWYgKCFGY0NvbmZp
Z0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udEZp
bGVuYW1lLmdldCgpKSkpCisgICAgICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250
IGF0ICVzISIsIGZvbnRGaWxlbmFtZS5nZXQoKSk7IAorICAgIH0KKworICAgIC8vIEEgZm9udCB3
aXRoIG5vIHZhbGlkIEZvbnRjb25maWcgZW5jb2RpbmcgdG8gdGVzdCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NTIKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250
V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9E
SVIsICJGb250V2l0aE5vVmFsaWRFbmNvZGluZy5mb24iLCBudWxscHRyKSk7CisgICAgaWYgKCFG
Y0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4o
Zm9udFdpdGhOb1ZhbGlkRW5jb2RpbmdGaWxlbmFtZS5nZXQoKSkpKQorICAgICAgICBnX2Vycm9y
KCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVzISIsIGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmls
ZW5hbWUuZ2V0KCkpOyAKKworICAgIGlmICghRmNDb25maWdTZXRDdXJyZW50KGNvbmZpZykpCisg
ICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBzZXQgdGhlIGN1cnJlbnQgZm9udCBjb25maWd1cmF0
aW9uISIpOworCisgICAgbnVtRm9udHMgPSBGY0NvbmZpZ0dldEZvbnRzKGNvbmZpZywgRmNTZXRB
cHBsaWNhdGlvbiktPm5mb250OworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxl
V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVj
dGVkQnVuZGxlV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MjQwODFmZjNhMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3dwZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKKworbmFtZXNwYWNlIFdU
UiB7CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBsYXRmb3JtSW5pdGlhbGl6ZShXS1R5cGVSZWYp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmYxNGZmZGQwNTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVu
bmVyV1BFLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0
UnVubmVyLmgiCisKK25hbWVzcGFjZSBXVFIgeworCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
VGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZikKK3sKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6Omlu
c3BlY3RvclRlc3RTdHViVVJMKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIiIpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OmludmFsaWRhdGVXYWl0VG9EdW1w
V2F0Y2hkb2dUaW1lcigpCit7CisgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdG9wKCk7
Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKwordm9p
ZCBUZXN0UnVubmVyOjppbml0aWFsaXplV2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJZk5lZWRlZCgp
Cit7CisgICAgaWYgKCFtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyLmlzQWN0aXZlKCkpCisgICAg
ICAgIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KG1fdGltZW91dCAvIDEw
MDAuMCk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
NGE4NjJkNjlhZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Bs
YXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKK2ZpbmRfcGFja2FnZShMaWJHQk0gUkVR
VUlSRUQpCitmaW5kX3BhY2thZ2UoV1BFQmFja2VuZC1tZXNhIFJFUVVJUkVEKQorCithZGRfY3Vz
dG9tX3RhcmdldChXZWJLaXRUZXN0UnVubmVyLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1B
TkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9y
d2FyZGluZy1oZWFkZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7V0VCS0lUX1RFU1RSVU5ORVJfRElS
fSAtLW91dHB1dCAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlCispCisK
K3NldChGb3J3YXJkaW5nSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJfTkFNRSBXZWJLaXRUZXN0
UnVubmVyLWZvcndhcmRpbmctaGVhZGVycykKKworbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5l
cl9TT1VSQ0VTCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2NhaXJvL1Rlc3RJbnZvY2F0
aW9uQ2Fpcm8uY3BwCisKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL0V2ZW50U2Vu
ZGVyUHJveHlXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9IZWFkbGVz
c1ZpZXdCYWNrZW5kLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvUGxhdGZv
cm1XZWJWaWV3V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvVGVzdENv
bnRyb2xsZXJXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9tYWluLmNw
cAorKQorCitsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0lOQ0xVREVfRElSRUNUT1JJRVMK
KyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vSW5qZWN0ZWRCdW5kbGUvd3BlCisgICAgJHtG
T1JXQVJESU5HX0hFQURFUlNfRElSfQorICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7
R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJHQk1fSU5DTFVERV9ESVJTfQorICAgICR7V1BF
X01FU0FfSU5DTFVERV9ESVJTfQorKQorCitsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0xJ
QlJBUklFUworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9Cisg
ICAgJHtMSUJHQk1fTElCUkFSSUVTfQorICAgICR7V1BFX01FU0FfTElCUkFSSUVTfQorKQorCits
aXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUworICAgICR7
V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9E
SVJ9L3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RS
VU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAKKyAgICAk
e1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vd3BlL0luamVjdGVkQnVuZGxl
V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUv
VGVzdFJ1bm5lcldQRS5jcHAKKykKKworYWRkX2RlZmluaXRpb25zKAorICAgIC1ERk9OVFNfQ09O
Rl9ESVI9IiR7VE9PTFNfRElSfS9XZWJLaXRUZXN0UnVubmVyL2d0ay9mb250cyIKKyAgICAtRFRP
UF9MRVZFTF9ESVI9IiR7Q01BS0VfU09VUkNFX0RJUn0iCispCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCA3MWE0ZTc2NjE3Ni4uNTQyZjAzNjZkNTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtNTMsNiArNTMsMTEgQEAg
dHlwZWRlZiBjYWlyb19zdXJmYWNlX3QgKlBsYXRmb3JtSW1hZ2U7CiAjZWxpZiBQTEFURk9STShF
RkwpCiB0eXBlZGVmIEV2YXNfT2JqZWN0KiBQbGF0Zm9ybVdLVmlldzsKIHR5cGVkZWYgRWNvcmVf
RXZhcyogUGxhdGZvcm1XaW5kb3c7CisjZWxpZiBQTEFURk9STShXUEUpCitjbGFzcyBIZWFkbGVz
c1ZpZXdCYWNrZW5kOwordHlwZWRlZiBXS1ZpZXdSZWYgUGxhdGZvcm1XS1ZpZXc7Cit0eXBlZGVm
IEhlYWRsZXNzVmlld0JhY2tlbmQqIFBsYXRmb3JtV2luZG93OwordHlwZWRlZiBjYWlyb19zdXJm
YWNlX3QqIFBsYXRmb3JtSW1hZ2U7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdUUiB7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDliNzA5ZTM2Zjc1Li5hZDE5
ZjEwYjQyOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTc2Nyw3ICs3NjcsNyBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0
ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIC8vIHNvbWUgb3RoZXIg
Y29kZSBkb2luZyB0aGlzLCBpdCBzaG91bGQgcHJvYmFibHkgYmUgcmVzcG9uc2libGUgZm9yIGNs
ZWFudXAgdG9vLgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9u
cyk7CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExB
VEZPUk0oV1BFKQogICAgIFdLVGV4dENoZWNrZXJDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uNTFlZTBmYzJlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApAQCAtMCwwICsxLDEy
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXZlbnRTZW5kZXJQcm94eS5oIgorCituYW1l
c3BhY2UgV1RSIHsKKworRXZlbnRTZW5kZXJQcm94eTo6RXZlbnRTZW5kZXJQcm94eShUZXN0Q29u
dHJvbGxlciogdGVzdENvbnRyb2xsZXIpCisgICAgOiBtX3Rlc3RDb250cm9sbGVyKHRlc3RDb250
cm9sbGVyKQorICAgICwgbV90aW1lKDApCisgICAgLCBtX2xlZnRNb3VzZUJ1dHRvbkRvd24oZmFs
c2UpCisgICAgLCBtX2NsaWNrQ291bnQoMCkKKyAgICAsIG1fY2xpY2tUaW1lKDApCisgICAgLCBt
X2NsaWNrQnV0dG9uKGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1dHRvbikKK3sKK30KKworRXZlbnRT
ZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6Om1vdXNlRG93bih1bnNpZ25lZCwgV0tFdmVudE1vZGlmaWVycykKK3sKK30KKwordm9p
ZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVVwKHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJzKQor
eworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsZSwgZG91Ymxl
KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnkoaW50LCBpbnQp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNl
bmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQsIGludCwgYm9vbCkKK3sKK30K
Kwordm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQpCit7Cit9CisKK3ZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiwgV0tFdmVudE1vZGlmaWVycywg
dW5zaWduZWQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6YWRkVG91Y2hQb2ludChp
bnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp1cGRhdGVUb3VjaFBvaW50
KGludCwgaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0VG91Y2hN
b2RpZmllcihXS0V2ZW50TW9kaWZpZXJzLCBib29sKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OnNldFRvdWNoUG9pbnRSYWRpdXMoaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRT
ZW5kZXJQcm94eTo6dG91Y2hTdGFydCgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
dG91Y2hNb3ZlKCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaEVuZCgpCit7
Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hDYW5jZWwoKQoreworfQorCit2b2lk
IEV2ZW50U2VuZGVyUHJveHk6OmNsZWFyVG91Y2hQb2ludHMoKQoreworfQorCit2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBvaW50KGludCkKK3sKK30KKwordm9pZCBFdmVudFNl
bmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50KGludCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdC
YWNrZW5kLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tl
bmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NjBiNDBhM2Vm
YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNz
Vmlld0JhY2tlbmQuY3BwCkBAIC0wLDAgKzEsMjUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisKKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUg
PGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKy8vIEZJWE1FOiBEZXBsb3kgZ29vZCBw
cmFjdGljZXMgYW5kIGNsZWFuIHVwIEdCTSByZXNvdXJjZXMgYXQgcHJvY2VzcyBleGl0Lgorc3Rh
dGljIEVHTERpc3BsYXkgZ2V0RUdMRGlzcGxheSgpCit7CisgICAgc3RhdGljIEVHTERpc3BsYXkg
c19kaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7CisgICAgaWYgKHNfZGlzcGxheSA9PSBFR0xfTk9f
RElTUExBWSkgeworICAgICAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L2RyaS9yZW5kZXJEMTI4Iiwg
T19SRFdSIHwgT19DTE9FWEVDIHwgT19OT0NUVFkgfCBPX05PTkJMT0NLKTsKKyAgICAgICAgaWYg
KGZkIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBz
dHJ1Y3QgZ2JtX2RldmljZSogZGV2aWNlID0gZ2JtX2NyZWF0ZV9kZXZpY2UoZmQpOworICAgICAg
ICBpZiAoIWRldmljZSkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAg
ICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KGRldmljZSk7CisgICAgICAg
IGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9O
T19ESVNQTEFZOworCisgICAgICAgIGlmICghZWdsSW5pdGlhbGl6ZShkaXNwbGF5LCBudWxscHRy
LCBudWxscHRyKSkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAg
ICBpZiAoIWVnbEJpbmRBUEkoRUdMX09QRU5HTF9FU19BUEkpKQorICAgICAgICAgICAgcmV0dXJu
IEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIHNfZGlzcGxheSA9IGRpc3BsYXk7CisgICAgfQor
CisgICAgcmV0dXJuIHNfZGlzcGxheTsKK30KKworSGVhZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxl
c3NWaWV3QmFja2VuZCgpCit7CisgICAgbV9lZ2wuZGlzcGxheSA9IGdldEVHTERpc3BsYXkoKTsK
KworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29uZmlnQXR0cmlidXRlc1sxM10gPSB7CisgICAg
ICAgIEVHTF9TVVJGQUNFX1RZUEUsIEVHTF9XSU5ET1dfQklULAorICAgICAgICBFR0xfUkVEX1NJ
WkUsIDEsCisgICAgICAgIEVHTF9HUkVFTl9TSVpFLCAxLAorICAgICAgICBFR0xfQkxVRV9TSVpF
LCAxLAorICAgICAgICBFR0xfQUxQSEFfU0laRSwgMSwKKyAgICAgICAgRUdMX1JFTkRFUkFCTEVf
VFlQRSwgRUdMX09QRU5HTF9FUzJfQklULAorICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAg
ICBFR0xpbnQgbnVtQ29uZmlnczsKKyAgICBFR0xCb29sZWFuIHJldCA9IGVnbENob29zZUNvbmZp
ZyhtX2VnbC5kaXNwbGF5LCBjb25maWdBdHRyaWJ1dGVzLCAmbV9lZ2wuY29uZmlnLCAxLCAmbnVt
Q29uZmlncyk7CisgICAgaWYgKCFyZXQgfHwgIW51bUNvbmZpZ3MpCisgICAgICAgIHJldHVybjsK
KworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29udGV4dEF0dHJpYnV0ZXNbM10gPSB7CisgICAg
ICAgIEVHTF9DT05URVhUX0NMSUVOVF9WRVJTSU9OLCAyLAorICAgICAgICBFR0xfTk9ORQorICAg
IH07CisKKyAgICBtX2VnbC5jb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChtX2VnbC5kaXNwbGF5
LCBtX2VnbC5jb25maWcsIEVHTF9OT19DT05URVhULCBjb250ZXh0QXR0cmlidXRlcyk7CisgICAg
aWYgKG1fZWdsLmNvbnRleHQgPT0gRUdMX05PX0NPTlRFWFQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICghZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVH
TF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9l
Z2wuY3JlYXRlSW1hZ2UgPSByZWludGVycHJldF9jYXN0PFBGTkVHTENSRUFURUlNQUdFS0hSUFJP
Qz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbENyZWF0ZUltYWdlS0hSIikpOworICAgIG1fZWdsLmRl
c3Ryb3lJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQz4o
ZWdsR2V0UHJvY0FkZHJlc3MoImVnbERlc3Ryb3lJbWFnZUtIUiIpKTsKKyAgICBtX2VnbC5pbWFn
ZVRhcmdldFRleHR1cmUyRE9FUyA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xFR0xJTUFHRVRBUkdF
VFRFWFRVUkUyRE9FU1BST0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbEVHTEltYWdlVGFyZ2V0VGV4
dHVyZTJET0VTIikpOworCisgICAgbV9leHBvcnRhYmxlID0gd3BlX21lc2Ffdmlld19iYWNrZW5k
X2V4cG9ydGFibGVfZG1hX2J1Zl9jcmVhdGUoJnNfZXhwb3J0YWJsZUNsaWVudCwgdGhpcyk7CisK
KyAgICBtX3VwZGF0ZVNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3KG1fZnJhbWVSYXRlIC8g
MTAwMCk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdXBkYXRlU291cmNlLAorICAgICAg
ICBbXShncG9pbnRlciBkYXRhKSAtPiBnYm9vbGVhbiB7CisgICAgICAgICAgICBhdXRvJiBiYWNr
ZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAg
ICAgIGJhY2tlbmQucGVyZm9ybVVwZGF0ZSgpOworICAgICAgICAgICAgcmV0dXJuIFRSVUU7Cisg
ICAgICAgIH0sIHRoaXMsIG51bGxwdHIpOworICAgIGdfc291cmNlX2F0dGFjaChtX3VwZGF0ZVNv
dXJjZSwgZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpKTsKK30KKworSGVhZGxlc3NWaWV3QmFja2Vu
ZDo6fkhlYWRsZXNzVmlld0JhY2tlbmQoKQoreworICAgIGlmIChtX3VwZGF0ZVNvdXJjZSkKKyAg
ICAgICAgZ19zb3VyY2VfZGVzdHJveShtX3VwZGF0ZVNvdXJjZSk7CisKKyAgICBpZiAoYXV0byBp
bWFnZSA9IHN0ZDo6Z2V0PDA+KG1fcGVuZGluZ0ltYWdlLnNlY29uZCkpCisgICAgICAgIG1fZWds
LmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7CisgICAgaWYgKGF1dG8gaW1hZ2Ug
PSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ry
b3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7CisKKyAgICBmb3IgKGF1dG8gaXQgOiBtX2V4
cG9ydE1hcCkgeworICAgICAgICBpbnQgZmQgPSBpdC5zZWNvbmQ7CisgICAgICAgIGlmIChmZCA+
PSAwKQorICAgICAgICAgICAgY2xvc2UoZmQpOworICAgIH0KKworICAgIGlmIChtX2VnbC5jb250
ZXh0KQorICAgICAgICBlZ2xEZXN0cm95Q29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb250
ZXh0KTsKK30KKworc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIEhlYWRsZXNzVmlld0JhY2tlbmQ6
OmJhY2tlbmQoKSBjb25zdAoreworICAgIHJldHVybiB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhw
b3J0YWJsZV9kbWFfYnVmX2dldF92aWV3X2JhY2tlbmQobV9leHBvcnRhYmxlKTsKK30KKworY2Fp
cm9fc3VyZmFjZV90KiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpjcmVhdGVTbmFwc2hvdCgpCit7Cisg
ICAgcGVyZm9ybVVwZGF0ZSgpOworCisgICAgRUdMSW1hZ2VLSFIgaW1hZ2UgPSBzdGQ6OmdldDww
PihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICB1aW50MzJfdCB3aWR0aCA9IHN0ZDo6Z2V0PDE+KG1fbG9ja2VkSW1h
Z2Uuc2Vjb25kKTsKKyAgICB1aW50MzJfdCBoZWlnaHQgPSBzdGQ6OmdldDwyPihtX2xvY2tlZElt
YWdlLnNlY29uZCk7CisKKyAgICB1aW50OF90KiBidWZmZXIgPSBuZXcgdWludDhfdFs0ICogd2lk
dGggKiBoZWlnaHRdOworICAgIGJvb2wgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gZmFsc2U7CisKKyAg
ICBtYWtlQ3VycmVudCgpOworCisgICAgR0x1aW50IGltYWdlVGV4dHVyZTsKKyAgICBnbEdlblRl
eHR1cmVzKDEsICZpbWFnZVRleHR1cmUpOworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8y
RCwgaW1hZ2VUZXh0dXJlKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xf
VEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9U
RVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQ
YXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19F
REdFKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQ
X1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsVGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAw
LCBHTF9CR1JBX0VYVCwgd2lkdGgsIGhlaWdodCwgMCwgR0xfQkdSQV9FWFQsIEdMX1VOU0lHTkVE
X0JZVEUsIG51bGxwdHIpOworCisgICAgbV9lZ2wuaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMoR0xf
VEVYVFVSRV8yRCwgaW1hZ2UpOworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7
CisKKyAgICBHTHVpbnQgaW1hZ2VGcmFtZWJ1ZmZlcjsKKyAgICBnbEdlbkZyYW1lYnVmZmVycygx
LCAmaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZG
RVIsIGltYWdlRnJhbWVidWZmZXIpOworICAgIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJB
TUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCBpbWFnZVRleHR1
cmUsIDApOworCisgICAgZ2xGbHVzaCgpOworICAgIGlmIChnbENoZWNrRnJhbWVidWZmZXJTdGF0
dXMoR0xfRlJBTUVCVUZGRVIpID09IEdMX0ZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7CisgICAgICAg
IGdsUmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBHTF9CR1JBX0VYVCwgR0xfVU5TSUdO
RURfQllURSwgYnVmZmVyKTsKKyAgICAgICAgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gdHJ1ZTsKKyAg
ICB9CisKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgMCk7CisgICAgZ2xE
ZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJmltYWdlRnJhbWVidWZmZXIpOworICAgIGdsRGVsZXRlVGV4
dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisKKyAgICBpZiAoIXN1Y2Nlc3NmdWxTbmFwc2hvdCkg
eworICAgICAgICBkZWxldGVbXSBidWZmZXI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VTdXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyLAorICAgICAgICBDQUlST19GT1JNQVRfQVJHQjMy
LCB3aWR0aCwgaGVpZ2h0LCBjYWlyb19mb3JtYXRfc3RyaWRlX2Zvcl93aWR0aChDQUlST19GT1JN
QVRfQVJHQjMyLCB3aWR0aCkpOworICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eShpbWFnZVN1
cmZhY2UpOworCisgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBidWZmZXJLZXk7Cisg
ICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKGltYWdlU3VyZmFjZSwgJmJ1ZmZlcktleSwg
YnVmZmVyLAorICAgICAgICBbXSh2b2lkKiBkYXRhKSB7CisgICAgICAgICAgICBhdXRvKiBidWZm
ZXIgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGF0YSk7CisgICAgICAgICAgICBkZWxldGVbXSBi
dWZmZXI7CisgICAgICAgIH0pOworCisgICAgcmV0dXJuIGltYWdlU3VyZmFjZTsKK30KKworYm9v
bCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjptYWtlQ3VycmVudCgpCit7CisgICAgcmV0dXJuIGVnbE1h
a2VDdXJyZW50KG1fZWdsLmRpc3BsYXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwg
bV9lZ2wuY29udGV4dCk7Cit9CisKK3ZvaWQgSGVhZGxlc3NWaWV3QmFja2VuZDo6cGVyZm9ybVVw
ZGF0ZSgpCit7CisgICAgaWYgKCFtX3BlbmRpbmdJbWFnZS5maXJzdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kaXNwYXRj
aF9mcmFtZV9jb21wbGV0ZShtX2V4cG9ydGFibGUpOworICAgIGlmIChtX2xvY2tlZEltYWdlLmZp
cnN0KSB7CisgICAgICAgIHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZf
ZGlzcGF0Y2hfcmVsZWFzZV9idWZmZXIobV9leHBvcnRhYmxlLCBtX2xvY2tlZEltYWdlLmZpcnN0
KTsKKyAgICAgICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIHN0ZDo6Z2V0PDA+
KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSk7CisgICAgfQorCisgICAgbV9sb2NrZWRJbWFnZSA9IG1f
cGVuZGluZ0ltYWdlOworICAgIG1fcGVuZGluZ0ltYWdlID0gc3RkOjpwYWlyPHVpbnQzMl90LCBz
dGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiB7IH07Cit9CisKK3N0
cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2NsaWVudCBIZWFk
bGVzc1ZpZXdCYWNrZW5kOjpzX2V4cG9ydGFibGVDbGllbnQgPSB7CisgICAgLy8gZXhwb3J0X2Rt
YV9idWYKKyAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4
cG9ydGFibGVfZG1hX2J1Zl9kYXRhKiBpbWFnZURhdGEpCisgICAgeworICAgICAgICBhdXRvJiBi
YWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKworICAg
ICAgICBhdXRvIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKTsKKyAgICAgICAgaWYgKGlt
YWdlRGF0YS0+ZmQgPj0gMCkgeworICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRN
YXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSkgPT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7
CisKKyAgICAgICAgICAgIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5pbnNlcnQoeyBpbWFnZURh
dGEtPmhhbmRsZSwgaW1hZ2VEYXRhLT5mZCB9KS5maXJzdDsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGFzc2VydChiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5k
bGUpICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOworICAgICAgICAgICAgaXQgPSBiYWNr
ZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpOworICAgICAgICB9CisKKyAg
ICAgICAgYXNzZXJ0KGl0ICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOworICAgICAgICB1
aW50MzJfdCBoYW5kbGUgPSBpdC0+Zmlyc3Q7CisgICAgICAgIGludDMyX3QgZmQgPSBpdC0+c2Vj
b25kOworCisgICAgICAgIGJhY2tlbmQubWFrZUN1cnJlbnQoKTsKKworICAgICAgICBFR0xpbnQg
YXR0cmlidXRlc1tdID0geworICAgICAgICAgICAgRUdMX1dJRFRILCBzdGF0aWNfY2FzdDxFR0xp
bnQ+KGltYWdlRGF0YS0+d2lkdGgpLAorICAgICAgICAgICAgRUdMX0hFSUdIVCwgc3RhdGljX2Nh
c3Q8RUdMaW50PihpbWFnZURhdGEtPmhlaWdodCksCisgICAgICAgICAgICBFR0xfTElOVVhfRFJN
X0ZPVVJDQ19FWFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5mb3JtYXQpLAorICAg
ICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VYVCwgZmQsCisgICAgICAgICAgICBFR0xf
RE1BX0JVRl9QTEFORTBfT0ZGU0VUX0VYVCwgMCwKKyAgICAgICAgICAgIEVHTF9ETUFfQlVGX1BM
QU5FMF9QSVRDSF9FWFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5zdHJpZGUpLAor
ICAgICAgICAgICAgRUdMX05PTkUsCisgICAgICAgIH07CisgICAgICAgIEVHTEltYWdlS0hSIGlt
YWdlID0gYmFja2VuZC5tX2VnbC5jcmVhdGVJbWFnZShiYWNrZW5kLm1fZWdsLmRpc3BsYXksIEVH
TF9OT19DT05URVhULCBFR0xfTElOVVhfRE1BX0JVRl9FWFQsIG51bGxwdHIsIGF0dHJpYnV0ZXMp
OworICAgICAgICBiYWNrZW5kLm1fcGVuZGluZ0ltYWdlID0geyBpbWFnZURhdGEtPmhhbmRsZSwg
c3RkOjptYWtlX3R1cGxlKGltYWdlLCBpbWFnZURhdGEtPndpZHRoLCBpbWFnZURhdGEtPmhlaWdo
dCkgfTsKKyAgICB9LAorfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3Bl
L0hlYWRsZXNzVmlld0JhY2tlbmQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRs
ZXNzVmlld0JhY2tlbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YjA1NGY4MzQyMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dw
ZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPGNhaXJvLmg+CisjaW5jbHVkZSA8Z2JtLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1
ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSA8d3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9y
dGFibGUtZG1hLWJ1Zi5oPgorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorI2luY2x1ZGUgPEdMRVMy
L2dsMmV4dC5oPgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+
CisKK2NsYXNzIEhlYWRsZXNzVmlld0JhY2tlbmQgeworcHVibGljOgorICAgIEhlYWRsZXNzVmll
d0JhY2tlbmQoKTsKKyAgICB+SGVhZGxlc3NWaWV3QmFja2VuZCgpOworCisgICAgc3RydWN0IHdw
ZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQoKSBjb25zdDsKKworICAgIGNhaXJvX3N1cmZhY2VfdCog
Y3JlYXRlU25hcHNob3QoKTsKKworcHJpdmF0ZToKKyAgICBib29sIG1ha2VDdXJyZW50KCk7Cisg
ICAgdm9pZCBwZXJmb3JtVXBkYXRlKCk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV9tZXNhX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50IHNfZXhwb3J0YWJsZUNsaWVudDsK
KworICAgIHN0cnVjdCB7CisgICAgICAgIEVHTERpc3BsYXkgZGlzcGxheTsKKyAgICAgICAgRUdM
Q29uZmlnIGNvbmZpZzsKKyAgICAgICAgRUdMQ29udGV4dCBjb250ZXh0OworCisgICAgICAgIFBG
TkVHTENSRUFURUlNQUdFS0hSUFJPQyBjcmVhdGVJbWFnZTsKKyAgICAgICAgUEZORUdMREVTVFJP
WUlNQUdFS0hSUFJPQyBkZXN0cm95SW1hZ2U7CisgICAgICAgIFBGTkdMRUdMSU1BR0VUQVJHRVRU
RVhUVVJFMkRPRVNQUk9DIGltYWdlVGFyZ2V0VGV4dHVyZTJET0VTOworICAgIH0gbV9lZ2w7CisK
KyAgICBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1ZiogbV9l
eHBvcnRhYmxlOworCisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQzMl90LCBpbnQzMl90PiBt
X2V4cG9ydE1hcDsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VL
SFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fcGVuZGluZ0ltYWdlIHsgfTsKKyAgICBzdGQ6OnBh
aXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+
IG1fbG9ja2VkSW1hZ2UgeyB9OworCisgICAgR1NvdXJjZSogbV91cGRhdGVTb3VyY2U7CisgICAg
Z2ludDY0IG1fZnJhbWVSYXRlIHsgR19VU0VDX1BFUl9TRUMgLyA2MCB9OworfTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45NTA0Mzk0YmQ0NgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAK
QEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmll
dy5oIgorCisjaW5jbHVkZSAiSGVhZGxlc3NWaWV3QmFja2VuZC5oIgorI2luY2x1ZGUgPFdlYktp
dC9XS0ltYWdlQ2Fpcm8uaD4KKyNpbmNsdWRlIDxjYWlyby5oPgorI2luY2x1ZGUgPGNzdGRpbz4K
KyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNl
IFdUUiB7CisKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3Vy
YXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCisgICAg
OiBtX3dpbmRvd0lzS2V5KHRydWUpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKK3sKKyAgICBt
X3dpbmRvdyA9IG5ldyBIZWFkbGVzc1ZpZXdCYWNrZW5kOworICAgIG1fdmlldyA9IFdLVmlld0Ny
ZWF0ZVdpdGhWaWV3QmFja2VuZChtX3dpbmRvdy0+YmFja2VuZCgpLCBjb25maWd1cmF0aW9uKTsK
K30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkKK3sKKyAgICBkZWxldGUg
bV93aW5kb3c7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCwg
dW5zaWduZWQsIFdlYlZpZXdTaXppbmdNb2RlKQoreworfQorCitXS1BhZ2VSZWYgUGxhdGZvcm1X
ZWJWaWV3OjpwYWdlKCkKK3sKKyAgICByZXR1cm4gV0tWaWV3R2V0UGFnZShtX3ZpZXcpOworfQor
Cit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQoreworfQorCitXS1JlY3QgUGxhdGZvcm1X
ZWJWaWV3Ojp3aW5kb3dGcmFtZSgpCit7CisgICAgcmV0dXJuIFdLUmVjdHsgMCwgMCwgMSwgMSB9
OworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93RnJhbWUoV0tSZWN0LCBXZWJW
aWV3U2l6aW5nTW9kZSkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmRpZEluaXRpYWxp
emVDbGllbnRzKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZENocm9tZUlucHV0
RmllbGQoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVtb3ZlQ2hyb21lSW5wdXRG
aWVsZCgpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjphZGRUb1dpbmRvdygpCit7Cit9
CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZW1vdmVGcm9tV2luZG93KCkKK3sKK30KKwordm9p
ZCBQbGF0Zm9ybVdlYlZpZXc6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCit7Cisg
ICAgbV93aW5kb3dJc0tleSA9IHdpbmRvd0lzS2V5OworfQorCit2b2lkIFBsYXRmb3JtV2ViVmll
dzo6bWFrZVdlYlZpZXdGaXJzdFJlc3BvbmRlcigpCit7Cit9CisKK2NhaXJvX3N1cmZhY2VfdCog
UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKK3sKKyAgICB7CisgICAgICAg
IHN0cnVjdCBUaW1lb3V0VGltZXIgeworICAgICAgICAgICAgVGltZW91dFRpbWVyKCkKKyAgICAg
ICAgICAgICAgICA6IHRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbWVvdXRUaW1lcjo6
ZmlyZWQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGltZXIuc3RhcnRPbmVTaG90
KDEuMCAvIDYwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBmaXJlZCgpIHsg
UnVuTG9vcDo6bWFpbigpLnN0b3AoKTsgfQorICAgICAgICAgICAgUnVuTG9vcDo6VGltZXI8VGlt
ZW91dFRpbWVyPiB0aW1lcjsKKyAgICAgICAgfSB0aW1lb3V0VGltZXI7CisKKyAgICAgICAgUnVu
TG9vcDo6bWFpbigpLnJ1bigpOworICAgIH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VT
dXJmYWNlID0gbV93aW5kb3ctPmNyZWF0ZVNuYXBzaG90KCk7CisgICAgcmV0dXJuIGltYWdlU3Vy
ZmFjZTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVk
ZWQoZmxvYXQpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXROYXZpZ2F0aW9uR2Vz
dHVyZXNFbmFibGVkKGJvb2wpCit7Cit9CisKK2Jvb2wgUGxhdGZvcm1XZWJWaWV3Ojp2aWV3U3Vw
cG9ydHNPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJikgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvcmNlV2luZG93RnJhbWVzQ2hhbmdlZCgp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4wY2MzZGVkZTk4NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcApAQCAtMCwwICsxLDEzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgPGdsaWIu
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQ
dHIuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURv
bmUoKQoreworICAgIFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldEhpZGRlbihib29sKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybUluaXRpYWxpemUoKQoreworfQorCitXS1ByZWZlcmVuY2VzUmVmIFRlc3RDb250cm9sbGVy
OjpwbGF0Zm9ybVByZWZlcmVuY2VzKCkKK3sKKyAgICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVm
ZXJlbmNlcyhtX3BhZ2VHcm91cC5nZXQoKSk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtRGVzdHJveSgpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5p
dGlhbGl6ZUNvbnRleHQoKQoreworfQorCitzdGF0aWMgR01haW5Db250ZXh0KiB0aHJlYWREZWZh
dWx0Q29udGV4dCgpCit7CisgICAgaWYgKEdNYWluQ29udGV4dCogY29udGV4dCA9IGdfbWFpbl9j
b250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKQorICAgICAgICByZXR1cm4gY29udGV4dDsKKyAg
ICByZXR1cm4gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpOworfQorCit2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGNvbmRpdGlvbiwgZG91YmxlIHRpbWVvdXQpCit7
CisgICAgc3RydWN0IFRpbWVvdXRUaW1lciB7CisgICAgICAgIFRpbWVvdXRUaW1lcigpCisgICAg
ICAgICAgICA6IHRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbWVvdXRUaW1lcjo6Zmly
ZWQpCisgICAgICAgIHsgfQorCisgICAgICAgIHZvaWQgZmlyZWQoKSB7IFJ1bkxvb3A6Om1haW4o
KS5zdG9wKCk7IH0KKyAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZW91dFRpbWVyPiB0aW1lcjsK
KyAgICB9IHRpbWVvdXRUaW1lcjsKKworICAgIHRpbWVvdXRUaW1lci50aW1lci5zZXRQcmlvcml0
eShHX1BSSU9SSVRZX0RFRkFVTFRfSURMRSk7CisgICAgaWYgKHRpbWVvdXQgPj0gMCkKKyAgICAg
ICAgdGltZW91dFRpbWVyLnRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lb3V0KTsKKworICAgIFJ1bkxv
b3A6Om1haW4oKS5ydW4oKTsKKworICAgIHRpbWVvdXRUaW1lci50aW1lci5zdG9wKCk7Cit9CisK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFn
ZVJlZiwgV0tGcmFtZVJlZikKK3sKK30KKworc3RhdGljIGNoYXIqIGdldEVudmlyb25tZW50VmFy
aWFibGVBc1VURjhTdHJpbmcoY29uc3QgY2hhciogdmFyaWFibGVOYW1lKQoreworICAgIGNvbnN0
IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYodmFyaWFibGVOYW1lKTsKKyAgICBpZiAoIXZhbHVlKSB7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgZW52aXJvbm1lbnQgdmFyaWFibGUgbm90IGZv
dW5kXG4iLCB2YXJpYWJsZU5hbWUpOworICAgICAgICBleGl0KDApOworICAgIH0KKyAgICBnc2l6
ZSBieXRlc1dyaXR0ZW47CisgICAgcmV0dXJuIGdfZmlsZW5hbWVfdG9fdXRmOCh2YWx1ZSwgLTEs
IDAsICZieXRlc1dyaXR0ZW4sIDApOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFs
aXplSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ2V0
RW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOFN0cmluZygiVEVTVF9SVU5ORVJfSU5KRUNURURfQlVO
RExFX0ZJTEVOQU1FIikpOworICAgIG1faW5qZWN0ZWRCdW5kbGVQYXRoLmFkb3B0KFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKHBhdGguZ2V0KCkpKTsKK30KKwordm9pZCBUZXN0Q29udHJv
bGxlcjo6aW5pdGlhbGl6ZVRlc3RQbHVnaW5EaXJlY3RvcnkoKQoreworfQorCit2b2lkIFRlc3RD
b250cm9sbGVyOjpydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqKQoreworfQorCitXS0NvbnRleHRS
ZWYgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ29udGV4dCgpCit7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxpYnJhcnlQYXRo
Rm9yVGVzdGluZygpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtQ29uZmlndXJlVmlld0ZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24m
KQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNU
b0NvbnNpc3RlbnRWYWx1ZXMoKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjp1cGRhdGVQ
bGF0Zm9ybVNwZWNpZmljVGVzdE9wdGlvbnNGb3JUZXN0KFRlc3RPcHRpb25zJiwgY29uc3Qgc3Rk
OjpzdHJpbmcmKSBjb25zdAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci93cGUvbWFpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjZjZjJiN2ZmMzIxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvbWFpbi5jcHAKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJU
ZXN0Q29udHJvbGxlci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7Cisg
ICAgV1RSOjpUZXN0Q29udHJvbGxlciBjb250cm9sbGVyKGFyZ2MsIGNvbnN0X2Nhc3Q8Y29uc3Qg
Y2hhcioqPihhcmd2KSk7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9qaGJ1
aWxkL2poYnVpbGQtd3JhcHBlciBiL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCmluZGV4
IGY2YzQwM2QzMWIwLi5lM2VlY2RmY2U4NyAxMDA3NTUKLS0tIGEvVG9vbHMvamhidWlsZC9qaGJ1
aWxkLXdyYXBwZXIKKysrIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKQEAgLTMxLDYg
KzMxLDggQEAgZGVmIGRldGVybWluZV9wbGF0Zm9ybSgpOgogICAgICAgICByZXR1cm4gImVmbCI7
CiAgICAgaWYgJy0tZ3RrJyBpbiBzeXMuYXJndjoKICAgICAgICAgcmV0dXJuICJndGsiOworICAg
IGlmICctLXdwZScgaW4gc3lzLmFyZ3Y6CisgICAgICAgIHJldHVybiAid3BlIgogICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ05vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgamhidWlsZC13cmFwcGVyLicp
CiAKIHRyeToKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291
cmNlLW1hbmlmZXN0LnB5IGIvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2Ut
bWFuaWZlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmFiMTk0
NzQ0YzU1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1n
cmVzb3VyY2UtbWFuaWZlc3QucHkKQEAgLTAsMCArMSw3NyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorIworIyBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworaW1wb3J0IGFyZ3BhcnNl
CitpbXBvcnQgZ2xvYgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK0NPTVBSRVNTSUJMRV9FWFRF
TlNJT05TID0gWycuaHRtbCcsICcuanMnLCAnLmNzcycsICcuc3ZnJ10KK0JBU0VfRElSID0gJ1dl
Ykluc3BlY3RvclVJLycKKworCitkZWYgZ2V0X2ZpbGVuYW1lcyhhcmdzKToKKyAgICBmaWxlbmFt
ZXMgPSBbXQorCisgICAgZm9yIHBhdHRlcm4gaW4gYXJnczoKKyAgICAgICAgcGF0aHMgPSBnbG9i
Lmdsb2IocGF0dGVybikKKyAgICAgICAgZm9yIGZpbGVuYW1lIGluIHBhdGhzOgorICAgICAgICAg
ICAgYmFzZV9kaXJfaW5kZXggPSBmaWxlbmFtZS5yZmluZChCQVNFX0RJUikKKyAgICAgICAgICAg
IGlmIGJhc2VfZGlyX2luZGV4ICE9IC0xOgorICAgICAgICAgICAgICAgIG5hbWUgPSBmaWxlbmFt
ZVtiYXNlX2Rpcl9pbmRleCArIGxlbihCQVNFX0RJUik6XQorICAgICAgICAgICAgICAgICMgVGhl
IHJlc3VsdCBzaG91bGQgdXNlIGZvcndhcmQgc2xhc2hlcywgdGh1cyBtYWtlIHN1cmUgYW55IG9z
LXNwZWNpZmljCisgICAgICAgICAgICAgICAgIyBzZXBhcmF0b3IsIGFkZGVkIGJ5IHRoZSBnbG9i
Lmdsb2IoKSBjYWxsLCBpcyBwcm9wZXJseSByZXBsYWNlZAorICAgICAgICAgICAgICAgIGlmIG9z
LnNlcCAhPSAnLyc6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2Uob3Mu
c2VwLCAnLycpCisgICAgICAgICAgICAgICAgZmlsZW5hbWVzLmFwcGVuZChuYW1lKQorICAgIHJl
dHVybiBmaWxlbmFtZXMKKworCitkZWYgaXNfY29tcHJlc3NpYmxlKGZpbGVuYW1lKToKKyAgICBy
ZXR1cm4gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMV0gaW4gQ09NUFJFU1NJQkxFX0VYVEVO
U0lPTlMKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHBhcnNlciA9IGFyZ3Bh
cnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdHZW5lcmF0ZSBhIEdSZXNvdXJjZXMgZmls
ZSBmb3IgdGhlIGluc3BlY3Rvci4nKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0
JywgbmFyZ3M9Jz8nLCB0eXBlPWFyZ3BhcnNlLkZpbGVUeXBlKCd3JyksIGRlZmF1bHQ9c3lzLnN0
ZG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3RoZSBvdXRwdXQgZmlsZScpCisg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnZmlsZW5hbWVzJywgbWV0YXZhcj0nRklMRVMnLCBuYXJn
cz0nKycsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSd0aGUgbGlzdCBvZiBmaWxlcyB0
byBpbmNsdWRlJykKKworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhzeXMuYXJndlsxOl0p
CisKKyAgICBhcmdzLm91dHB1dC53cml0ZShcCisgICAgIiIiPD94bWwgdmVyc2lvbj0xLjAgZW5j
b2Rpbmc9VVRGLTg/PgorICAgIDxncmVzb3VyY2VzPgorICAgICAgICA8Z3Jlc291cmNlIHByZWZp
eD0iL29yZy93cGUvaW5zcGVjdG9yIj4KKyIiIikKKworICAgIGZvciBmaWxlbmFtZSBpbiBnZXRf
ZmlsZW5hbWVzKGFyZ3MuZmlsZW5hbWVzKToKKyAgICAgICAgbGluZSA9ICcgICAgICAgICAgICA8
ZmlsZScKKyAgICAgICAgaWYgaXNfY29tcHJlc3NpYmxlKGZpbGVuYW1lKToKKyAgICAgICAgICAg
IGxpbmUgKz0gJyBjb21wcmVzc2VkPSJ0cnVlIicKKyAgICAgICAgaWYgJ0ltYWdlcy9ndGsvJyBp
biBmaWxlbmFtZToKKyAgICAgICAgICAgIGxpbmUgKz0gJyBhbGlhcz0iJXMiJyAlIGZpbGVuYW1l
LnJlcGxhY2UoJ2d0ay8nLCAnJykKKyAgICAgICAgbGluZSArPSAnPiVzPC9maWxlPlxuJyAlIGZp
bGVuYW1lCisKKyAgICAgICAgYXJncy5vdXRwdXQud3JpdGUobGluZSkKKworICAgIGFyZ3Mub3V0
cHV0LndyaXRlKFwKKyAgICAiIiIgICAgPC9ncmVzb3VyY2U+Cis8L2dyZXNvdXJjZXM+CisiIiIp
CisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy93cGUvamhi
dWlsZC5tb2R1bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yZWQ3
NTYyNjRhMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAg
LTAsMCArMSwyNDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIG1vZHVsZXNl
dCBTWVNURU0gIm1vZHVsZXNldC5kdGQiPgorPD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L3hz
bCIgaHJlZj0ibW9kdWxlc2V0LnhzbCI/PgorPG1vZHVsZXNldD4KKworICA8bWV0YW1vZHVsZSBp
ZD0id2Via2l0d3BlLXRlc3RpbmctZGVwZW5kZW5jaWVzIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImxpYnNvdXAi
Lz4KKyAgICAgIDxkZXAgcGFja2FnZT0iY2Fpcm8iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9u
dHMiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZGljdHMiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0i
Zm9udGNvbmZpZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmcmVldHlwZTYiLz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0iaGFyZmJ1enoiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0ieGtiY29tbW9uIi8+
CisgICAgICA8ZGVwIHBhY2thZ2U9IndheWxhbmQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0
cmVhbWVyIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtZ29vZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJn
c3QtcGx1Z2lucy1iYWQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LWxpYmF2Ii8+CisgICAg
ICA8ZGVwIHBhY2thZ2U9IndwZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUtbWVzYSIvPgor
ICAgIDwvZGVwZW5kZW5jaWVzPgorICA8L21ldGFtb2R1bGU+CisKKyAgPHJlcG9zaXRvcnkgdHlw
ZT0idGFyYmFsbCIgbmFtZT0ic291cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgaHJlZj0iaHR0
cDovL21pcnJvcnMua2VybmVsLm9yZy9zb3VyY2VzLnJlZGhhdC5jb20vIi8+CisgIDxyZXBvc2l0
b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZ0cC5nbm9tZS5vcmciCisgICAgICBocmVmPSJodHRw
Oi8vZnRwLmdub21lLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJj
YWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyIv
PgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmcmVlZGVza3RvcC5vcmciCisg
ICAgICBocmVmPSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0
eXBlPSJ0YXJiYWxsIiBuYW1lPSJ3YXlsYW5kLmZyZWVkZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9
Imh0dHA6Ly93YXlsYW5kLmZyZWVkZXNrdG9wLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJn
aXQiIG5hbWU9ImdpdGh1Yi5jb20iCisgICAgICBocmVmPSJnaXQ6Ly9naXRodWIuY29tIi8+Cisg
IDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImdzdHJlYW1lciIKKyAgICAgIGhyZWY9
Imh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy8iLz4KKyAgPHJlcG9zaXRvcnkg
dHlwZT0idGFyYmFsbCIgbmFtZT0ieGtiY29tbW9uLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly94
a2Jjb21tb24ub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9InNhdmFu
bmFoLmdudS5vcmciCisgICAgICBocmVmPSJodHRwOi8vZG93bmxvYWQuc2F2YW5uYWguZ251Lm9y
Zy9yZWxlYXNlcy8iLz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJmZmkiIGF1dG9nZW4tc2g9ImNv
bmZpZ3VyZSI+CisgICAgPGJyYW5jaCBtb2R1bGU9ImxpYmZmaS9saWJmZmktMy4wLjEwLnRhci5n
eiIgdmVyc2lvbj0iMy4wLjEwIgorICAgICAgICAgICAgIHJlcG89InNvdXJjZXdhcmUub3JnLW1p
cnJvciIKKyAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZjAxZWI5MDI3ZTllYjU2YWVhZWVmNjM2
NjQ5ODc3NzU2ZDQ3NWQ3MTRlZjhiNDdmNjI3ZjY1YmM1ZjNiNDkyZiIvPgorICA8L2F1dG90b29s
cz4KKworICA8YXV0b3Rvb2xzIGlkPSJnbGliIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNv
bmZpZ3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWR0cmFjZSI+Cisg
ICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ibGliZmZpIi8+CisgICAgPC9k
ZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9nbGli
LzIuNDQvZ2xpYi0yLjQ0LjEudGFyLnh6IiB2ZXJzaW9uPSIyLjQ0LjEiCisgICAgICAgICAgICBy
ZXBvPSJmdHAuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2Ojg4MTFkZWFjYWY4
YTUwM2QwYTliNzAxNzc3ZWEwNzljYTZhNDI3N2JlMTBlM2Q3MzBkMjExMjczNWQ1ZWNhMDciPgor
ICAgICAgPHBhdGNoIGZpbGU9ImdsaWItd2FybmluZy1maXgucGF0Y2giIHN0cmlwPSIxIi8+Cisg
ICAgICA8cGF0Y2ggZmlsZT0iZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdh
cm5pbmcucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgor
CisgIDxhdXRvdG9vbHMgaWQ9ImdsaWItbmV0d29ya2luZyI+CisgICAgPGRlcGVuZGVuY2llcz4K
KyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxi
cmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvZ2xpYi1uZXR3b3JraW5nLzIuNDIvZ2xp
Yi1uZXR3b3JraW5nLTIuNDIuMC50YXIueHoiIHZlcnNpb249IjIuNDIuMCIKKyAgICAgICAgICAg
IHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MzA0ZGQ5ZTRj
MGNlZDY5MDk0MzAwZTBiOWU2NmNkMmVhYWU3MTYxYjlmYzMxODY1MzZkMTE0NTg2NzdkODIwZCIv
PgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJzb3VwIgorICAgICAgICAg
ICAgIGF1dG9nZW5hcmdzPSItLXdpdGhvdXQtZ25vbWUgLS1kaXNhYmxlLWludHJvc3BlY3Rpb24i
PgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWItbmV0d29ya2lu
ZyIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01F
L3NvdXJjZXMvbGlic291cC8yLjQ4L2xpYnNvdXAtMi40OC4wLnRhci54eiIgdmVyc2lvbj0iMi40
OC4wIgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9
InNoYTI1NjplYTM0ZGQ2NGZlNDQzNDM0NDVkYWY2ZGQ2OTBkMDY5MWU5ZDk3MzQ2OGRlNDQ4Nzhk
YTk3MzcxYzE2ZDg5Nzg0Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZv
bnRzIiBzdXBwb3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iCisgICAgICAgICAgICAgc2tpcC1h
dXRvZ2VuPSJ0cnVlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0ibXJv
Ymluc29uL3dlYmtpdGd0ay10ZXN0LWZvbnRzLmdpdCIgY2hlY2tvdXRkaXI9IndlYmtpdGd0ay10
ZXN0LWZvbnRzIiB0YWc9IjAuMC41Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMg
aWQ9ImRpY3RzIiBzdXBwb3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iCisgICAgICAgICAgICAg
c2tpcC1hdXRvZ2VuPSJ0cnVlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVs
ZT0ibXJvYmluc29uL3dlYmtpdGd0ay10ZXN0LWRpY3RzLmdpdCIgY2hlY2tvdXRkaXI9IndlYmtp
dGd0ay10ZXN0LWRpY3RzIiB0YWc9IjAuMC4xIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRv
dG9vbHMgaWQ9ImZyZWV0eXBlNiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNo
IG1vZHVsZT0iZnJlZXR5cGUvZnJlZXR5cGUtMi40LjExLnRhci5iejIiIHZlcnNpb249IjIuNC4x
MSIKKyAgICAgICAgICAgIHJlcG89InNhdmFubmFoLmdudS5vcmciCisgICAgICAgICAgICBoYXNo
PSJzaGEyNTY6ZWY5ZDBiY2I2NDY0N2Q5ZTUxMjVkYzc1MzRkN2NhMzcxYzk4MzEwZmVjODc2Nzdj
NDEwZjM5N2Y3MWZmYmUzZiIKKyAgICAgICAgICAgIG1kNXN1bT0iYjkzNDM1NDg4OTQyNDg2Yzhk
MGNhMjJlOGY3NjgwMzQiPgorICAgICAgPHBhdGNoIGZpbGU9ImZyZWV0eXBlNi0yLjQuMTEtdHJ1
ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgor
ICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250Y29uZmlnIiBhdXRvZ2VuLXNo
PSJjb25maWd1cmUiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZy
ZWV0eXBlNiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJzb2Z0
d2FyZS9mb250Y29uZmlnL3JlbGVhc2UvZm9udGNvbmZpZy0yLjExLjEudGFyLmd6IiB2ZXJzaW9u
PSIyLjExLjEiCisgICAgICAgICAgICByZXBvPSJmcmVlZGVza3RvcC5vcmciCisgICAgICAgICAg
ICBoYXNoPSJzaGEyNTY6YjZiMDY2YzdkY2UzZjQzNmZkYzBkZmJhZTlkMzYxMjJiMzgwOTRmNGY1
M2JkOGRmZmQ0NWUxOTViMDU0MGQ4ZCIKKyAgICAgICAgICAgIG1kNXN1bT0iZTc1ZTMwM2I0Zjc3
NTZjMmIxNjIwM2E1N2FjODdlYmEiPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKwor
ICA8YXV0b3Rvb2xzIGlkPSJoYXJmYnV6eiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAg
ICBhdXRvZ2VuYXJncz0iLS13aXRoLWNhaXJvPW5vIC0td2l0aC1nbGliPW5vIC0td2l0aC1mcmVl
dHlwZT15ZXMiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0
eXBlNiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJzb2Z0d2Fy
ZS9oYXJmYnV6ei9yZWxlYXNlL2hhcmZidXp6LTEuMy4zLnRhci5iejIiCisgICAgICAgICAgICB2
ZXJzaW9uPSIxLjMuMyIKKyAgICAgICAgICAgIGNoZWNrb3V0ZGlyPSJoYXJmYnV6ei0xLjMuMyIK
KyAgICAgICAgICAgIHJlcG89ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNo
YTI1NjoyNjIwOTg3MTE1YTQxMjJiNDczMjE2MTBkY2NiY2MxOGY3ZjEyMTExNWZkN2I4OGRjOGE2
OTVjOGI2NmNiM2M5IgorICAgICAgICAgICAgbWQ1c3VtPSI5N2FlMTVhNzJhOTNmMWYyNzMyNGEy
YjhkOWJkM2IxZCI+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9v
bHMgaWQ9InBpeG1hbiIKKyAgICAgICAgICAgICBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAg
ICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0tZW5hYmxlLWd0az1ubyI+CisgICAgPGJyYW5jaCBtb2R1
bGU9InJlbGVhc2VzL3BpeG1hbi0wLjMyLjYudGFyLmd6IiB2ZXJzaW9uPSIwLjMyLjYiCisgICAg
ICAgICAgICByZXBvPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1
NjozZGZlZDEzYjgwNjBlYWRhYmYwYTQ5NDVjNzA0NWI3NzkzY2M3ZTNlOTEwZTc0OGE4YmIwZjBk
YzNlNzk0OTA0Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImNhaXJvIiBh
dXRvZ2VuYXJncz0iLS1lbmFibGUtZWdsPXllcyAtLWVuYWJsZS1nbGVzdjIiPgorICAgIDxkZXBl
bmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iZm9udGNvbmZpZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJwaXhtYW4iLz4KKyAgICA8L2Rl
cGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvY2Fpcm8tMS4xNC44LnRh
ci54eiIgdmVyc2lvbj0iMS4xNC44IgorICAgICAgICAgICAgcmVwbz0iY2Fpcm9ncmFwaGljcy5v
cmciCisgICAgICAgICAgICBoYXNoPSJzaGExOmM2ZjdiOTk5ODZmOTNjOWRmNzg2NTNjM2U2YTNi
NTA0M2Y2NTE0NWUiPgorICAgICAgPHBhdGNoIGZpbGU9ImNhaXJvLWVnbC1kZXZpY2UtY3JlYXRl
LWZvci1lZ2wtc3VyZmFjZS5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9h
dXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0ieGtiY29tbW9uIj4KKyAgICA8YnJhbmNoIG1v
ZHVsZT0iZG93bmxvYWQvbGlieGtiY29tbW9uLTAuNS4wLnRhci54eiIgdmVyc2lvbj0iMC41LjAi
CisgICAgICAgICAgICByZXBvPSJ4a2Jjb21tb24ub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hh
MTo3MTI3OTkzYmZiNjllMTNjZGZmMjVmYjhiM2M4ZjI2Y2U2YmU1YmZhIi8+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9IndheWxhbmQiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUt
ZG9jdW1lbnRhdGlvbiI+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL3dheWxhbmQtMS45
LjAudGFyLnh6IiB2ZXJzaW9uPSIxLjkuMCIKKyAgICAgICAgICAgIHJlcG89IndheWxhbmQuZnJl
ZWRlc2t0b3Aub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjljODc3MDcyMGFhMDAzNDQ3
OTczNWY1OGE0ZGM0Y2E5YjE3MmVjZmVkZTI4ZjUxMzQzMTJlMTM1YjczMDFlZmEiLz4KKyAgPC9h
dXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0ib3JjIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxl
LWd0ay1kb2MiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGJyYW5jaCBtb2R1bGU9Im9y
Yy9vcmMtMC40LjE3LnRhci5neiIgdmVyc2lvbj0iMC40LjE3IgorICAgICAgICAgICAgcmVwbz0i
Z3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjRmYzdjY2E0OGM1OWZmZjIzYWZl
ZTc4ZmI2NDJjZGJkZTAwMWY1NjQwMWM4ZjQ3Yjk1YTE2NTc4ZDFkNWQ3ZTgiCisgICAgICAgICAg
ICBtZDVzdW09ImFmMWJmM2RhYjllNjlmM2MzNmYzODkyODVlMmExMmExIi8+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdHJlYW1lciIgYXV0b2dlbi1zaD0iY29uZmlndXJl
IiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+Cisg
ICAgICA8ZGVwIHBhY2thZ2U9Im9yYyIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFu
Y2ggbW9kdWxlPSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9u
PSIxLjguMSIKKyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9
InNoYTI1Njo1YTM3MjJmYjkzMDJkZDk3N2MxN2NlZDQyNDAyOTNkYzc3N2NiNzE2ZGM5OGM4Y2Nh
NjNkNzVjMjdlNWUzMTA3IgorICAgICAgICAgICAgbWQ1c3VtPSI3MTFhZGE3OWI2M2U0N2FjOTZh
ZGI0ZTU0NDRkYzkwOCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0cmVhbWVyLXR5cGVmaW5kLU9u
bHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoIiBzdHJpcD0iMSIv
PgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3Qt
cGx1Z2lucy1iYXNlIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAg
ICAgICAgICBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS1ndGstZG9j
Ij4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4K
KyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFz
ZS9nc3QtcGx1Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAg
ICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjoxNWE5
ZGU5ODVjZDI2NWMzNDRlMzU5ZjViMTkzNDdkZjQwMjFiNzYxMWVkMmMyZDkxOTE3Y2I5MDBmMmZh
ZDZmIgorICAgICAgICAgICAgbWQ1c3VtPSI1NDIxZWRmZWI3NDc5ZDVmNTc3NmU5MTdiYTMwZTI0
ZSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtcGx1Z2lucy1nb29k
IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMg
LS1kaXNhYmxlLXNvdXAgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+Cisg
ICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2ll
cz4KKworICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1nb29kL2dzdC1wbHVnaW5zLWdv
b2QtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0i
Z3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjIxMDNlMTc5MjFkNjc4OTRlODJl
YWZkZDY0ZmI5YjA2NTE4NTk5OTUyZmQ5M2U2MjViZmJjODNmZmVhZDA5NzIiCisgICAgICAgICAg
ICBtZDVzdW09IjNlYWJlNzI3NzY4MWI5YmVmOGE2NGMzMTJkZTAzZDQ3Ij4KKyAgICAgIDxwYXRj
aCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaCIg
c3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLVJldmVydC1x
dGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2giIHN0cmlw
PSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImdzdC1wbHVnaW5zLWJhZCIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1k
aXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS1ndGstZG9jIC0tZGlzYWJsZS1pbnRyb3NwZWN0aW9u
Ij4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1i
YXNlIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVn
aW5zLWJhZC9nc3QtcGx1Z2lucy1iYWQtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4x
IgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2
OjBiYmQ1OGYzNjM3MzRmYzBjNGE2MjBiMmQ2ZmIwMWQ0MjdmZGFmZGJkYTdiOTBiNGUxNWQwM2I3
NTFjYTQwZjUiCisgICAgICAgICAgICBtZDVzdW09ImU1MDhkYTJhOGE1YzNkMTIyNjRmZTM0MTVi
ZTJmNDUxIj4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBv
cnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxl
PSJnc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5n
LWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8
L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtbGliYXYiIGF1dG9nZW4tc2g9ImNv
bmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0td2l0aC1saWJhdi1leHRyYS1jb25maWd1cmU9Jy0tZGlz
YWJsZS15YXNtJyAtLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgor
ICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtbGliYXYvZ3N0LWxpYmF2LSR7dmVyc2lvbn0udGFyLnh6
IiB2ZXJzaW9uPSIxLjguMSIKKyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAg
ICAgIGhhc2g9InNoYTI1Njo0NGE0OTEwOGMzNTMxYjVhYzRmMzQ2YTIyNDdjZDdmYmFmYjBlOGFi
Mzk0Mzk0Y2I2ZDc1YTcwMzAwYjM4OTMzIgorICAgICAgICAgICAgbWQ1c3VtPSI4NWYxYTA0NzYw
NmNhOWUwODQ5M2Q3YjZiNDJkZjQ2MiIvPgorICA8L2F1dG90b29scz4KKworICA8Y21ha2UgaWQ9
IndwZSI+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9IldlYlBsYXRmb3Jt
Rm9yRW1iZWRkZWQvV1BFQmFja2VuZC5naXQiCisgICAgICAgICAgICB0YWc9IjVlMmEyOWQyY2Nj
NjM3ZjcxMjJiYTcyYzFkNjJlZjY2OWI0MmYwNWMiIC8+CisgIDwvY21ha2U+CisKKyAgPGNtYWtl
IGlkPSJ3cGUtbWVzYSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0i
d3BlIiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIiAvPgorICAgICAgPGRlcCBwYWNrYWdl
PSJ3YXlsYW5kIiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24iIC8+CisgICAgPC9k
ZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9IldlYlBs
YXRmb3JtRm9yRW1iZWRkZWQvV1BFQmFja2VuZC1tZXNhLmdpdCIKKyAgICAgICAgICAgIHRhZz0i
OTk0NTc1M2Y5MzM3ZmQ2N2FmMDk4MjE4Yjc4MTkzMzdhYmEyMTE0MSIgLz4KKyAgPC9jbWFrZT4K
KzwvbW9kdWxlc2V0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGRyYyBiL1Rvb2xzL3dw
ZS9qaGJ1aWxkcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUyZmE4
OGQ3MmE5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpAQCAtMCwwICsx
LDI1IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuCisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKworc3lzLnBhdGguaW5zZXJ0KDAsIG9z
LnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4vamhidWlsZCIpICkKK2lt
cG9ydCBqaGJ1aWxkcmNfY29tbW9uCitqaGJ1aWxkcmNfY29tbW9uLmluaXQoZ2xvYmFscygpLCAi
d3BlIikKKyMgRW5hYmxlIGJ1aWxkZGlyICE9IHNyY2RpciBidWlsZHMuCitidWlsZHJvb3QgPSBv
cy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKGNoZWNrb3V0cm9vdCksICJCdWlsZCIpCmRpZmYg
LS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWds
LXN1cmZhY2UucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0
ZS1mb3ItZWdsLXN1cmZhY2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmQ0NmRmNDViNmYzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMv
Y2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoCkBAIC0wLDAgKzEs
MTMzIEBACitGcm9tIGE0ZTBkYWYxOGJmODI1MjQ2M2Y2NmQ3NWVlZjQ5OWNmZmZhMzI1NjUgTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBaYW4gRG9iZXJzZWsgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgorRGF0ZTogTW9uLCAxNyBOb3YgMjAxNCAwMToyMzoxNSAtMDgwMAorU3ViamVjdDog
W1BBVENIXSBBZGQgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGVfZm9yX2VnbF9zdXJmYWNlKCkuCisK
Ky0tLQorIHNyYy9jYWlyby1lZ2wtY29udGV4dC5jIHwgNjYgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQorIHNyYy9jYWlyby1nbC5oICAgICAgICAgIHwg
IDMgKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt
KQorCitkaWZmIC0tZ2l0IGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgYi9zcmMvY2Fpcm8tZWds
LWNvbnRleHQuYworaW5kZXggYmY3MDRjNi4uYmUyYmNmOSAxMDA2NDQKKy0tLSBhL3NyYy9jYWly
by1lZ2wtY29udGV4dC5jCisrKysgYi9zcmMvY2Fpcm8tZWdsLWNvbnRleHQuYworQEAgLTQ4LDcg
KzQ4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX2VnbF9jb250ZXh0IHsKKyAgICAgRUdMRGlz
cGxheSBkaXNwbGF5OworICAgICBFR0xDb250ZXh0IGNvbnRleHQ7CisgCistICAgIEVHTFN1cmZh
Y2UgZHVtbXlfc3VyZmFjZTsKKysgICAgRUdMU3VyZmFjZSBzdXJmYWNlOworKyAgICBjYWlyb19i
b29sX3QgaXNfZHVtbXlfc3VyZmFjZTsKKyAKKyAgICAgRUdMQ29udGV4dCBwcmV2aW91c19jb250
ZXh0OworICAgICBFR0xTdXJmYWNlIHByZXZpb3VzX3N1cmZhY2U7CitAQCAtNzQsNyArNzUsNyBA
QCBfZWdsX2dldF9jdXJyZW50X3N1cmZhY2UgKGNhaXJvX2VnbF9jb250ZXh0X3QgKmN0eCkKKyB7
CisgICAgIGlmIChjdHgtPmJhc2UuY3VycmVudF90YXJnZXQgPT0gTlVMTCB8fAorICAgICAgICAg
X2NhaXJvX2dsX3N1cmZhY2VfaXNfdGV4dHVyZSAoY3R4LT5iYXNlLmN1cnJlbnRfdGFyZ2V0KSkg
eworLQlyZXR1cm4gIGN0eC0+ZHVtbXlfc3VyZmFjZTsKKysJcmV0dXJuICBjdHgtPnN1cmZhY2U7
CisgICAgIH0KKyAKKyAgICAgcmV0dXJuICgoY2Fpcm9fZWdsX3N1cmZhY2VfdCAqKSBjdHgtPmJh
c2UuY3VycmVudF90YXJnZXQpLT5lZ2w7CitAQCAtMTUxLDggKzE1Miw4IEBAIF9lZ2xfZGVzdHJv
eSAodm9pZCAqYWJzdHJhY3RfY3R4KQorIAorICAgICBlZ2xNYWtlQ3VycmVudCAoY3R4LT5kaXNw
bGF5LAorIAkJICAgIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRF
WFQpOworLSAgICBpZiAoY3R4LT5kdW1teV9zdXJmYWNlICE9IEVHTF9OT19TVVJGQUNFKQorLSAg
ICAgICAgZWdsRGVzdHJveVN1cmZhY2UgKGN0eC0+ZGlzcGxheSwgY3R4LT5kdW1teV9zdXJmYWNl
KTsKKysgICAgaWYgKGN0eC0+aXNfZHVtbXlfc3VyZmFjZSAmJiBjdHgtPnN1cmZhY2UgIT0gRUdM
X05PX1NVUkZBQ0UpCisrICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNwbGF5LCBj
dHgtPnN1cmZhY2UpOworIH0KKyAKKyBzdGF0aWMgY2Fpcm9fYm9vbF90CitAQCAtMjE4LDEzICsy
MTksMTQgQEAgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250
ZXh0IGVnbCkKKyAJZWdsUXVlcnlDb250ZXh0IChkcHksIGVnbCwgRUdMX0NPTkZJR19JRCwgJmNv
bmZpZ19hdHRyaWJzWzFdKTsKKyAJZWdsQ2hvb3NlQ29uZmlnIChkcHksIGNvbmZpZ19hdHRyaWJz
LCAmY29uZmlnLCAxLCAmbnVtQ29uZmlncyk7CisgCistCWN0eC0+ZHVtbXlfc3VyZmFjZSA9IGVn
bENyZWF0ZVBidWZmZXJTdXJmYWNlIChkcHksIGNvbmZpZywgYXR0cmlicyk7CistCWlmIChjdHgt
PmR1bW15X3N1cmZhY2UgPT0gTlVMTCkgeworKwljdHgtPmlzX2R1bW15X3N1cmZhY2UgPSBUUlVF
OworKwljdHgtPnN1cmZhY2UgPSBlZ2xDcmVhdGVQYnVmZmVyU3VyZmFjZSAoZHB5LCBjb25maWcs
IGF0dHJpYnMpOworKwlpZiAoY3R4LT5zdXJmYWNlID09IE5VTEwpIHsKKyAJICAgIGZyZWUgKGN0
eCk7CisgCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlS
T19TVEFUVVNfTk9fTUVNT1JZKTsKKyAJfQorIAorLQlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHks
IGN0eC0+ZHVtbXlfc3VyZmFjZSwgY3R4LT5kdW1teV9zdXJmYWNlLCBlZ2wpKSB7CisrCWlmICgh
ZWdsTWFrZUN1cnJlbnQgKGRweSwgY3R4LT5zdXJmYWNlLCBjdHgtPnN1cmZhY2UsIGVnbCkpIHsK
KyAJICAgIGZyZWUgKGN0eCk7CisgCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRl
X2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKyAJfQorQEAgLTIzOCw4ICsyNDAs
NTQgQEAgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0
IGVnbCkKKyAKKyAgICAgc3RhdHVzID0gX2NhaXJvX2dsX2NvbnRleHRfaW5pdCAoJmN0eC0+YmFz
ZSk7CisgICAgIGlmICh1bmxpa2VseSAoc3RhdHVzKSkgeworLQlpZiAoY3R4LT5kdW1teV9zdXJm
YWNlICE9IEVHTF9OT19TVVJGQUNFKQorLQkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4
LT5kdW1teV9zdXJmYWNlKTsKKysJaWYgKGN0eC0+c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkK
KysJICAgIGVnbERlc3Ryb3lTdXJmYWNlIChkcHksIGN0eC0+c3VyZmFjZSk7CisrCWZyZWUgKGN0
eCk7CisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7
CisrICAgIH0KKysKKysgICAgZWdsTWFrZUN1cnJlbnQgKGRweSwgRUdMX05PX1NVUkZBQ0UsIEVH
TF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CisrCisrICAgIHJldHVybiAmY3R4LT5iYXNl
LmJhc2U7CisrfQorKworK2NhaXJvX2RldmljZV90ICoKKytjYWlyb19lZ2xfZGV2aWNlX2NyZWF0
ZV9mb3JfZWdsX3N1cmZhY2UgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCwgRUdMU3Vy
ZmFjZSBzdXJmYWNlKQorK3sKKysgICAgY2Fpcm9fZWdsX2NvbnRleHRfdCAqY3R4OworKyAgICBj
YWlyb19zdGF0dXNfdCBzdGF0dXM7CisrCisrICAgIGN0eCA9IGNhbGxvYyAoMSwgc2l6ZW9mIChj
YWlyb19lZ2xfY29udGV4dF90KSk7CisrICAgIGlmICh1bmxpa2VseSAoY3R4ID09IE5VTEwpKQor
KwlyZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNf
Tk9fTUVNT1JZKTsKKysKKysgICAgY3R4LT5kaXNwbGF5ID0gZHB5OworKyAgICBjdHgtPmNvbnRl
eHQgPSBlZ2w7CisrICAgIGN0eC0+c3VyZmFjZSA9IHN1cmZhY2U7CisrCisrICAgIGN0eC0+YmFz
ZS5hY3F1aXJlID0gX2VnbF9hY3F1aXJlOworKyAgICBjdHgtPmJhc2UucmVsZWFzZSA9IF9lZ2xf
cmVsZWFzZTsKKysgICAgY3R4LT5iYXNlLm1ha2VfY3VycmVudCA9IF9lZ2xfbWFrZV9jdXJyZW50
OworKyAgICBjdHgtPmJhc2Uuc3dhcF9idWZmZXJzID0gX2VnbF9zd2FwX2J1ZmZlcnM7CisrICAg
IGN0eC0+YmFzZS5kZXN0cm95ID0gX2VnbF9kZXN0cm95OworKworKyAgICAvKiBXZSBhcmUgYWJv
dXQgdGhlIGNoYW5nZSB0aGUgY3VycmVudCBzdGF0ZSBvZiBFR0wsIHNvIHdlIHNob3VsZAorKyAg
ICAgKiBxdWVyeSB0aGUgcHJlLWV4aXN0aW5nIHN1cmZhY2Ugbm93IGluc3RlYWQgb2YgbGF0ZXIu
ICovCisrICAgIF9lZ2xfcXVlcnlfY3VycmVudF9zdGF0ZSAoY3R4KTsKKysKKysJaWYgKCFlZ2xN
YWtlQ3VycmVudCAoZHB5LCBzdXJmYWNlLCBzdXJmYWNlLCBlZ2wpKSB7CisrCSAgICBmcmVlIChj
dHgpOworKwkgICAgcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoQ0FJ
Uk9fU1RBVFVTX05PX01FTU9SWSk7CisrCX0KKysKKysgICAgc3RhdHVzID0gX2NhaXJvX2dsX2Rp
c3BhdGNoX2luaXQgKCZjdHgtPmJhc2UuZGlzcGF0Y2gsIGVnbEdldFByb2NBZGRyZXNzKTsKKysg
ICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CisrCWZyZWUgKGN0eCk7CisrCXJldHVybiBfY2Fp
cm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisrICAgIH0KKysKKysgICAg
c3RhdHVzID0gX2NhaXJvX2dsX2NvbnRleHRfaW5pdCAoJmN0eC0+YmFzZSk7CisrICAgIGlmICh1
bmxpa2VseSAoc3RhdHVzKSkgeworIAlmcmVlIChjdHgpOworIAlyZXR1cm4gX2NhaXJvX2dsX2Nv
bnRleHRfY3JlYXRlX2luX2Vycm9yIChzdGF0dXMpOworICAgICB9CitkaWZmIC0tZ2l0IGEvc3Jj
L2NhaXJvLWdsLmggYi9zcmMvY2Fpcm8tZ2wuaAoraW5kZXggOWZkNzYwOC4uYTk0ZjU4MSAxMDA2
NDQKKy0tLSBhL3NyYy9jYWlyby1nbC5oCisrKysgYi9zcmMvY2Fpcm8tZ2wuaAorQEAgLTEzMiw2
ICsxMzIsOSBAQCBjYWlyb19nbF9zdXJmYWNlX2NyZWF0ZV9mb3JfZGMgKGNhaXJvX2RldmljZV90
CQkqZGV2aWNlLAorIGNhaXJvX3B1YmxpYyBjYWlyb19kZXZpY2VfdCAqCisgY2Fpcm9fZWdsX2Rl
dmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCk7CisgCisrY2Fpcm9f
cHVibGljIGNhaXJvX2RldmljZV90ICoKKytjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9mb3JfZWds
X3N1cmZhY2UgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCwgRUdMU3VyZmFjZSBzdXJm
YWNlKTsKKysKKyBjYWlyb19wdWJsaWMgY2Fpcm9fc3VyZmFjZV90ICoKKyBjYWlyb19nbF9zdXJm
YWNlX2NyZWF0ZV9mb3JfZWdsIChjYWlyb19kZXZpY2VfdAkqZGV2aWNlLAorIAkJCQkgRUdMU3Vy
ZmFjZQkgZWdsLApkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTEx
LXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vl
bi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5iNGUwYTU0MWRiYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9w
YXRjaGVzL2ZvbnRjb25maWctQy0xMS1yZXF1aXJlcy1hLXNwYWNlLWJldHdlZW4tbGl0ZXJhbC1h
bmQtaWRlbnRpZmllci5wYXRjaApAQCAtMCwwICsxLDMwIEBACitGcm9tIDcwNjlkNzE3ZTk4MmFk
Y2Y4ZTFkMzAwY2JkMTBlZWM2MzIyYTY1YzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t
OiBBa2lyYSBUQUdPSCA8YWtpcmFAdGFnb2gub3JnPgorRGF0ZTogU3VuLCAyMiBBcHIgMjAxMiAy
MTo0MDo0NCArMDkwMAorU3ViamVjdDogW1BBVENIXSBDKysxMSByZXF1aXJlcyBhIHNwYWNlIGJl
dHdlZW4gbGl0ZXJhbCBhbmQgaWRlbnRpZmllcgorCitSZXBvcnRlZCBieSBCdWdhbmluaQorLS0t
CisgZm9udGNvbmZpZy9mb250Y29uZmlnLmggfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAz
IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9mb250Y29uZmln
L2ZvbnRjb25maWcuaCBiL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oCitpbmRleCAwZTJjYTUwLi5i
MjdjY2I1IDEwMDY0NAorLS0tIGEvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKKysrKyBiL2ZvbnRj
b25maWcvZm9udGNvbmZpZy5oCitAQCAtMTEyLDkgKzExMiw5IEBAIHR5cGVkZWYgaW50CQlGY0Jv
b2w7CisgI2RlZmluZSBGQ19ERUNPUkFUSVZFCSAgICAiZGVjb3JhdGl2ZSIJLyogQm9vbCAtIHRy
dWUgaWYgc3R5bGUgaXMgYSBkZWNvcmF0aXZlIHZhcmlhbnQgKi8KKyAjZGVmaW5lIEZDX0xDRF9G
SUxURVIJICAgICJsY2RmaWx0ZXIiCQkvKiBJbnQgKi8KKyAKKy0jZGVmaW5lIEZDX0NBQ0hFX1NV
RkZJWAkJICAgICIuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKy0jZGVmaW5lIEZDX0RJUl9DQUNI
RV9GSUxFCSAgICAiZm9udHMuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKy0jZGVmaW5lIEZDX1VT
RVJfQ0FDSEVfRklMRQkgICAgIi5mb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgorKyNkZWZp
bmUgRkNfQ0FDSEVfU1VGRklYCQkgICAgIi5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKysjZGVm
aW5lIEZDX0RJUl9DQUNIRV9GSUxFCSAgICAiZm9udHMuY2FjaGUtIiBGQ19DQUNIRV9WRVJTSU9O
CisrI2RlZmluZSBGQ19VU0VSX0NBQ0hFX0ZJTEUJICAgICIuZm9udHMuY2FjaGUtIiBGQ19DQUNI
RV9WRVJTSU9OCisgCisgLyogQWRqdXN0IG91dGxpbmUgcmFzdGVyaXplciAqLworICNkZWZpbmUg
RkNfQ0hBUl9XSURUSAkgICAgImNoYXJ3aWR0aCIJLyogSW50ICovCistLSAKKzEuOC4zLjIKKwpk
aWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1m
b250LWhlaWdodC1maXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40LjEx
LXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMGZmZTc2YjRlZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUv
cGF0Y2hlcy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaApA
QCAtMCwwICsxLDM5IEBACitGcm9tIGUwNDY5MzcyYmUzODcwYTVhZDYwYjJjNDU4NmU5YzI4MTM1
N2JkMjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBXZXJuZXIgTGVtYmVyZyA8d2xA
Z251Lm9yZz4KK0RhdGU6IFR1ZSwgMjIgSmFuIDIwMTMgMTA6MDc6MDcgKzAwMDAKK1N1YmplY3Q6
IFt0cnVldHlwZV0gRml4IGZvbnQgaGVpZ2h0LgorCisqIHNyYy90cnVldHlwZS90dG9ianMuYyAo
dHRfc2l6ZV9yZXNldCk6IFRoZSBXaW5kb3dzIHJlbmRlcmluZworZW5naW5lIHVzZXMgcm91bmRl
ZCB2YWx1ZXMgb2YgdGhlIGFzY2VuZGVyIGFuZCBkZXNjZW5kZXIgdG8gY29tcHV0ZQordGhlIFRy
dWVUeXBlIGZvbnQgaGVpZ2h0LgorLS0tCitkaWZmIC0tZ2l0IGEvc3JjL3RydWV0eXBlL3R0b2Jq
cy5jIGIvc3JjL3RydWV0eXBlL3R0b2Jqcy5jCitpbmRleCBjNjFiMjE4Li41OTBiNjZjIDEwMDY0
NAorLS0tIGEvc3JjL3RydWV0eXBlL3R0b2Jqcy5jCisrKysgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpz
LmMKK0BAIC00LDcgKzQsNyBAQAorIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogICAgT2JqZWN0
cyBtYW5hZ2VyIChib2R5KS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKi8KKyAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLS8qICBDb3B5cmlnaHQgMTk5Ni0yMDEy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisr
LyogIENvcHlyaWdodCAxOTk2LTIwMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgRGF2aWQgVHVybmVyLCBSb2JlcnQgV2lsaGVsbSwg
YW5kIFdlcm5lciBMZW1iZXJnLiAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCisgLyogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBGcmVlVHlwZSBwcm9qZWN0
LCBhbmQgbWF5IG9ubHkgYmUgdXNlZCwgICAgICAgKi8KK0BAIC0xMTc3LDExICsxMTc3LDEyIEBA
CisgICAgICAgICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5hc2NlbmRlciwg
bWV0cmljcy0+eV9zY2FsZSApICk7CisgICAgICAgbWV0cmljcy0+ZGVzY2VuZGVyID0KKyAgICAg
ICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5yb290LmRlc2NlbmRlciwgbWV0cmlj
cy0+eV9zY2FsZSApICk7CistICAgICAgbWV0cmljcy0+aGVpZ2h0ID0KKy0gICAgICAgIEZUX1BJ
WF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5yb290LmhlaWdodCwgbWV0cmljcy0+eV9zY2FsZSAp
ICk7CisgICAgICAgbWV0cmljcy0+bWF4X2FkdmFuY2UgPQorICAgICAgICAgRlRfUElYX1JPVU5E
KCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QubWF4X2FkdmFuY2Vfd2lkdGgsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWV0cmljcy0+eF9zY2FsZSApICk7CisrCisrICAgICAgLyog
dGhlIGhlaWdodCBpcyBkZXJpdmVkIGZyb20gcm91bmRlZCB2YWx1ZXMgKi8KKysgICAgICBtZXRy
aWNzLT5oZWlnaHQgPSBtZXRyaWNzLT5hc2NlbmRlciAtIG1ldHJpY3MtPmRlc2NlbmRlcjsKKyAg
ICAgfQorIAorICAgICAvKiBjb21wdXRlIG5ldyB0cmFuc2Zvcm1hdGlvbiAqLworLS0KK2NnaXQg
djAuOS4wLjIKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dkYXRlLXN1cHByZXNzLXN0
cmluZy1mb3JtYXQtbGl0ZXJhbC13YXJuaW5nLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ2Rh
dGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2gKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkwY2I5NTFhMTljCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRl
cmFsLXdhcm5pbmcucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSAzYTdlZmQ1OThkMzkzNjZj
MmM5ZGUwZGVmMmZkZmIzNWU1ZTlmMmExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog
Y295cHUgPGNveXB1QHNkZi5vcmc+CitEYXRlOiBNb24sIDggRmViIDIwMTYgMDA6MDY6MDYgKzAy
MDAKK1N1YmplY3Q6IFtQQVRDSCAxLzFdIGdkYXRlOiBTdXBwcmVzcyBzdHJpbmcgZm9ybWF0IGxp
dGVyYWwgd2FybmluZworCitOZXdlciB2ZXJzaW9ucyBvZiBHQ0MgZW1pdCBhbiBlcnJvciBoZXJl
LCBidXQgd2Uga25vdyBpdCdzIHNhZmUuCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy83NjE1
NTAKKy0tLQorIGdsaWIvZ2RhdGUuYyB8IDMgKysrCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0
aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ2xpYi9nZGF0ZS5jIGIvZ2xpYi9nZGF0ZS5jCitpbmRl
eCA0YWVjZTAyLi5jZGM3MzVjIDEwMDY0NAorLS0tIGEvZ2xpYi9nZGF0ZS5jCisrKysgYi9nbGli
L2dkYXRlLmMKK0BAIC0yNDk0LDcgKzI0OTQsMTAgQEAgZ19kYXRlX3N0cmZ0aW1lIChnY2hhciAg
ICAgICAqcywKKyAgICAgICAgKiByZWNvZ25pemUgd2hldGhlciBzdHJmdGltZSBhY3R1YWxseSBm
YWlsZWQgb3IganVzdCByZXR1cm5lZCAiIi4KKyAgICAgICAgKi8KKyAgICAgICB0bXBidWZbMF0g
PSAnXDEnOworKyAgICAgICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorKyAgICAgICNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKKyAgICAgICB0
bXBsZW4gPSBzdHJmdGltZSAodG1wYnVmLCB0bXBidWZzaXplLCBsb2NhbGVfZm9ybWF0LCAmdG0p
OworKyAgICAgICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgCisgICAgICAgaWYgKHRtcGxl
biA9PSAwICYmIHRtcGJ1ZlswXSAhPSAnXDAnKQorICAgICAgICAgeworLS0gCisyLjcuMAorCmRp
ZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoIGIvVG9v
bHMvd3BlL3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uOGZhZjRkMTFmMmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK0Zy
b20gOWY5MGVlNWVlY2NkNDdmMzljN2EwM2RjZDc4NmIxMjVhMTljMTk1ZCBNb24gU2VwIDE3IDAw
OjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQGdub21lLm9y
Zz4KK0RhdGU6IFNhdCwgMTMgSnVuIDIwMTUgMjI6NTI6MzMgLTA1MDAKK1N1YmplY3Q6IFtQQVRD
SF0gZ2VubWFyc2hhbDogc2lsZW5jZSByZWdpc3RlciBzdG9yYWdlIGNsYXNzIHdhcm5pbmdzCisK
K1VzaW5nIHRoZSByZWdpc3RlciBrZXl3b3JkIHRyaWdnZXJzIHdhcm5pbmdzIG9uIG5vdGV3b3J0
aHkgY29tcGlsZXJzCisoY2xhbmcpLCBzaW5jZSBpdCdzIGRlcHJlY2F0ZWQgaW4gQysrIGFuZCBh
dCBkYW5nZXIgb2YgYmVpbmcgcmVtb3ZlZAorZnJvbSB0aGUgbGFuZ3VhZ2UuIFRoZXJlIGlzIG5v
IHJlYXNvbiB0byB1c2UgaXQgc2luY2UgaXQgaXNuJ3QgMTk4MAorYW55bW9yZS4KKworaHR0cHM6
Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDkxOAorLS0tCisgZ29iamVj
dC9nbGliLWdlbm1hcnNoYWwuYyB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0
aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dvYmplY3QvZ2xpYi1nZW5t
YXJzaGFsLmMgYi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitpbmRleCBiZTQxNTFhLi5jYTc4
YTZmIDEwMDY0NAorLS0tIGEvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYworKysrIGIvZ29iamVj
dC9nbGliLWdlbm1hcnNoYWwuYworQEAgLTQxMiw5ICs0MTIsOSBAQCBnZW5lcmF0ZV9tYXJzaGFs
IChjb25zdCBnY2hhciAqc2lnbmFtZSwKKyAgICAgICBnX2ZwcmludGYgKGZvdXQsICIlcyVzIGRh
dGEyKTtcbiIsIGluZGVudCAoaW5kKSwgcGFkICgiZ3BvaW50ZXIiKSk7CisgCisgICAgICAgLyog
Y2ZpbGUgbWFyc2hhbCB2YXJpYWJsZXMgKi8KKy0gICAgICBnX2ZwcmludGYgKGZvdXQsICIgIHJl
Z2lzdGVyIEdNYXJzaGFsRnVuY18lcyBjYWxsYmFjaztcbiIsIHNpZ25hbWUpOworLSAgICAgIGdf
ZnByaW50ZiAoZm91dCwgIiAgcmVnaXN0ZXIgR0NDbG9zdXJlICpjYyA9IChHQ0Nsb3N1cmUqKSBj
bG9zdXJlO1xuIik7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBncG9pbnRl
ciBkYXRhMSwgZGF0YTI7XG4iKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIEdNYXJzaGFs
RnVuY18lcyBjYWxsYmFjaztcbiIsIHNpZ25hbWUpOworKyAgICAgIGdfZnByaW50ZiAoZm91dCwg
IiAgR0NDbG9zdXJlICpjYyA9IChHQ0Nsb3N1cmUqKSBjbG9zdXJlO1xuIik7CisrICAgICAgZ19m
cHJpbnRmIChmb3V0LCAiICBncG9pbnRlciBkYXRhMSwgZGF0YTI7XG4iKTsKKyAgICAgICBpZiAo
c2lnLT5yYXJnLT5zZXR0ZXIpCisgCWdfZnByaW50ZiAoZm91dCwgIiAgJXMgdl9yZXR1cm47XG4i
LCBzaWctPnJhcmctPmN0eXBlKTsKKyAKKy0tIAorMi40LjIKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAw
MS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dz
dC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZDEwNjRlZDVlOQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9y
dC10by1PcGVuU1NMLTEuMS4wLnBhdGNoCkBAIC0wLDAgKzEsMjM2IEBACitGcm9tIGU5Mzg5MzMx
NjdjNDk0Y2RjYTQ0MzMzNGY2NThiMDJhMDNjNDQ4NmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx
CitGcm9tOiBEYWlraSBVZW5vIDxkdWVub0ByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAyNiBPY3Qg
MjAxNiAxNDo1MTowMSArMDIwMAorU3ViamVjdDogW1BBVENIXSBkdGxzOiBwb3J0IHRvIE9wZW5T
U0wgMS4xLjAKKworQ2hhbmdlcyBhcmU6CisKKy0gVXNlIHRoZSB3cmFwcGVyIGZ1bmN0aW9ucyB0
byBhY2Nlc3Mgb3BhcXVlIGRhdGEgdHlwZXMuICBUbyBwcmVzZXJ2ZQorICBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5LCBkZWZpbmUgZmFsbGJhY2sgZGVmaW5pdGlvbnMKKworLSBSZW1vdmUgdGhlIHVz
ZSBvZiBpZGlvbSAicHF1ZXVlX3NpemUoc3NsLT5kMS0+c2VudF9tZXNzYWdlcykiLCBzaW5jZQor
ICB0aGVyZSBpcyBubyByZXBsYWNlbWVudAorCistIFVzZSBSU0FfZ2VuZXJhdGVfa2V5X2V4IGlu
c3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQgUlNBX2dlbmVyYXRlX2tleQorCitodHRwczovL2J1Z3pp
bGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNTQwCistLS0KKyBleHQvZHRscy9nc3Rk
dGxzY2VydGlmaWNhdGUuYyB8IDE1ICsrKysrKysrCisgZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rp
b24uYyAgfCA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisg
MiBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZm
IC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMgYi9leHQvZHRscy9nc3RkdGxz
Y2VydGlmaWNhdGUuYworaW5kZXggOTVmYmI4My4uYzFjOTYwMiAxMDA2NDQKKy0tLSBhL2V4dC9k
dGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCisrKysgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNh
dGUuYworQEAgLTE5OSw3ICsxOTksMjIgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZp
Y2F0ZSAqIHNlbGYpCisgICAgIHByaXYtPnByaXZhdGVfa2V5ID0gTlVMTDsKKyAgICAgcmV0dXJu
OworICAgfQorKworKyAgLyogWFhYOiBSU0FfZ2VuZXJhdGVfa2V5IGlzIGFjdHVhbGx5IGRlcHJl
Y2F0ZWQgaW4gMC45LjggKi8KKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAw
MDFMCisgICByc2EgPSBSU0FfZ2VuZXJhdGVfa2V5ICgyMDQ4LCBSU0FfRjQsIE5VTEwsIE5VTEwp
OworKyNlbHNlCisrICByc2EgPSBSU0FfbmV3ICgpOworKyAgaWYgKHJzYSAhPSBOVUxMKSB7Cisr
ICAgIEJJR05VTSAqZSA9IEJOX25ldyAoKTsKKysgICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRf
d29yZCAoZSwgUlNBX0Y0KQorKyAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAy
MDQ4LCBlLCBOVUxMKSkgeworKyAgICAgIFJTQV9mcmVlIChyc2EpOworKyAgICAgIHJzYSA9IE5V
TEw7CisrICAgIH0KKysgICAgQk5fZnJlZSAoZSk7CisrICB9CisrI2VuZGlmCisgCisgICBpZiAo
IXJzYSkgeworICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsICJmYWlsZWQgdG8gZ2VuZXJh
dGUgUlNBIik7CitkaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYyBiL2V4
dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKK2luZGV4IDM2ZjZkNjMuLjcyOGY1YTcgMTAwNjQ0
CistLS0gYS9leHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jCisrKysgYi9leHQvZHRscy9nc3Rk
dGxzY29ubmVjdGlvbi5jCitAQCAtNDIsNiArNDIsOCBAQAorICNpbmNsdWRlIDxvcGVuc3NsL2Vy
ci5oPgorICNpbmNsdWRlIDxvcGVuc3NsL3NzbC5oPgorIAorKyNpbmNsdWRlIDxzdHJpbmcuaD4K
KysKKyBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIChnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVn
KTsKKyAjZGVmaW5lIEdTVF9DQVRfREVGQVVMVCBnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVnCisg
R19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKEdzdER0bHNDb25uZWN0aW9uLCBnc3RfZHRsc19jb25u
ZWN0aW9uLCBHX1RZUEVfT0JKRUNULAorQEAgLTIxNiw2ICsyMTgsMzggQEAgZ3N0X2R0bHNfY29u
bmVjdGlvbl9maW5hbGl6ZSAoR09iamVjdCAqIGdvYmplY3QpCisgICBHX09CSkVDVF9DTEFTUyAo
Z3N0X2R0bHNfY29ubmVjdGlvbl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAoZ29iamVjdCk7Cisg
fQorIAorKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKytzdGF0aWMg
dm9pZAorK0JJT19zZXRfZGF0YSAoQklPICogYmlvLCB2b2lkICpwdHIpCisreworKyAgYmlvLT5w
dHIgPSBwdHI7CisrfQorKworK3N0YXRpYyB2b2lkICoKKytCSU9fZ2V0X2RhdGEgKEJJTyAqIGJp
bykKKyt7CisrICByZXR1cm4gYmlvLT5wdHI7CisrfQorKworK3N0YXRpYyB2b2lkCisrQklPX3Nl
dF9zaHV0ZG93biAoQklPICogYmlvLCBpbnQgc2h1dGRvd24pCisreworKyAgYmlvLT5zaHV0ZG93
biA9IHNodXRkb3duOworK30KKysKKytzdGF0aWMgdm9pZAorK0JJT19zZXRfaW5pdCAoQklPICog
YmlvLCBpbnQgaW5pdCkKKyt7CisrICBiaW8tPmluaXQgPSBpbml0OworK30KKysKKytzdGF0aWMg
WDUwOSAqCisrWDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0IChYNTA5X1NUT1JFX0NUWCAqIGN0eCkK
Kyt7CisrICByZXR1cm4gY3R4LT5jZXJ0OworK30KKysjZW5kaWYKKysKKyBzdGF0aWMgdm9pZAor
IGdzdF9kdGxzX2Nvbm5lY3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWlu
dCBwcm9wX2lkLAorICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHBzcGVj
KQorQEAgLTIzOSw3ICsyNzMsNyBAQCBnc3RfZHRsc19jb25uZWN0aW9uX3NldF9wcm9wZXJ0eSAo
R09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICBwcml2LT5iaW8gPSBCSU9f
bmV3IChCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICgpKTsKKyAgICAgICBnX3JldHVybl9pZl9m
YWlsIChwcml2LT5iaW8pOworIAorLSAgICAgIHByaXYtPmJpby0+cHRyID0gc2VsZjsKKysgICAg
ICBCSU9fc2V0X2RhdGEgKHByaXYtPmJpbywgc2VsZik7CisgICAgICAgU1NMX3NldF9iaW8gKHBy
aXYtPnNzbCwgcHJpdi0+YmlvLCBwcml2LT5iaW8pOworIAorICAgICAgIFNTTF9zZXRfdmVyaWZ5
IChwcml2LT5zc2wsCitAQCAtNTczLDYgKzYwNyw3IEBAIGxvZ19zdGF0ZSAoR3N0RHRsc0Nvbm5l
Y3Rpb24gKiBzZWxmLCBjb25zdCBnY2hhciAqIHN0cikKKyAgIHN0YXRlcyB8PSAoISAhU1NMX3dh
bnRfd3JpdGUgKHByaXYtPnNzbCkgPDwgMjApOworICAgc3RhdGVzIHw9ICghICFTU0xfd2FudF9y
ZWFkIChwcml2LT5zc2wpIDw8IDI0KTsKKyAKKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8
IDB4MTAxMDAwMDFMCisgICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIiVzOiByb2xlPSVzIGJ1Zj0o
JWQsJXA6JWQvJWQpICV4fCV4ICVzIiwKKyAgICAgICBzdHIsCisgICAgICAgcHJpdi0+aXNfY2xp
ZW50ID8gImNsaWVudCIgOiAic2VydmVyIiwKK0BAIC01ODEsNiArNjE2LDE1IEBAIGxvZ19zdGF0
ZSAoR3N0RHRsc0Nvbm5lY3Rpb24gKiBzZWxmLCBjb25zdCBnY2hhciAqIHN0cikKKyAgICAgICBw
cml2LT5iaW9fYnVmZmVyX29mZnNldCwKKyAgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKyAg
ICAgICBzdGF0ZXMsIFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdf
bG9uZyAocHJpdi0+c3NsKSk7CisrI2Vsc2UKKysgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiJXM6
IHJvbGU9JXMgYnVmPSglcDolZC8lZCkgJXh8JXggJXMiLAorKyAgICAgIHN0ciwKKysgICAgICBw
cml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorKyAgICAgIHByaXYtPmJpb19i
dWZmZXIsCisrICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9vZmZzZXQsCisrICAgICAgcHJpdi0+Ymlv
X2J1ZmZlcl9sZW4sCisrICAgICAgc3RhdGVzLCBTU0xfZ2V0X3N0YXRlIChwcml2LT5zc2wpLCBT
U0xfc3RhdGVfc3RyaW5nX2xvbmcgKHByaXYtPnNzbCkpOworKyNlbmRpZgorIH0KKyAKKyBzdGF0
aWMgdm9pZAorQEAgLTczNyw3ICs3ODEsNyBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50
IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFggKiB4NTA5X2N0eCkKKyAgIHNlbGYgPSBTU0xf
Z2V0X2V4X2RhdGEgKHNzbCwgY29ubmVjdGlvbl9leF9pbmRleCk7CisgICBnX3JldHVybl92YWxf
aWZfZmFpbCAoR1NUX0lTX0RUTFNfQ09OTkVDVElPTiAoc2VsZiksIEZBTFNFKTsKKyAKKy0gIHBl
bSA9IF9nc3RfZHRsc194NTA5X3RvX3BlbSAoeDUwOV9jdHgtPmNlcnQpOworKyAgcGVtID0gX2dz
dF9kdGxzX3g1MDlfdG9fcGVtIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSk7
CisgCisgICBpZiAoIXBlbSkgeworICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsCitAQCAt
NzQ5LDcgKzc5Myw4IEBAIG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29r
LCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4KQorICAgICAgIGdpbnQgbGVuOworIAorICAgICAg
IGxlbiA9CistICAgICAgICAgIFg1MDlfTkFNRV9wcmludF9leCAoYmlvLCBYNTA5X2dldF9zdWJq
ZWN0X25hbWUgKHg1MDlfY3R4LT5jZXJ0KSwgMSwKKysgICAgICAgICAgWDUwOV9OQU1FX3ByaW50
X2V4IChiaW8sCisrICAgICAgICAgIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoWDUwOV9TVE9SRV9D
VFhfZ2V0MF9jZXJ0ICh4NTA5X2N0eCkpLCAxLAorICAgICAgICAgICBYTl9GTEFHX01VTFRJTElO
RSk7CisgICAgICAgQklPX3JlYWQgKGJpbywgYnVmZmVyLCBsZW4pOworICAgICAgIGJ1ZmZlclts
ZW5dID0gJ1wwJzsKK0BAIC03NzcsNiArODIyLDcgQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sg
KGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAgICMjIyMj
IyMjICAjIyMjICAjIyMjIyMjCisgKi8KKyAKKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8
IDB4MTAxMDAwMDFMCisgc3RhdGljIEJJT19NRVRIT0QgY3VzdG9tX2Jpb19tZXRob2RzID0gewor
ICAgQklPX1RZUEVfQklPLAorICAgInN0cmVhbSIsCitAQCAtNzk1LDExICs4NDEsMzQgQEAgQklP
X3NfZ3N0X2R0bHNfY29ubmVjdGlvbiAodm9pZCkKKyB7CisgICByZXR1cm4gJmN1c3RvbV9iaW9f
bWV0aG9kczsKKyB9CisrI2Vsc2UKKytzdGF0aWMgQklPX01FVEhPRCAqY3VzdG9tX2Jpb19tZXRo
b2RzOworKworK3N0YXRpYyBCSU9fTUVUSE9EICoKKytCSU9fc19nc3RfZHRsc19jb25uZWN0aW9u
ICh2b2lkKQorK3sKKysgIGlmIChjdXN0b21fYmlvX21ldGhvZHMgIT0gTlVMTCkKKysgICAgcmV0
dXJuIGN1c3RvbV9iaW9fbWV0aG9kczsKKysKKysgIGN1c3RvbV9iaW9fbWV0aG9kcyA9IEJJT19t
ZXRoX25ldyAoQklPX1RZUEVfQklPLCAic3RyZWFtIik7CisrICBpZiAoY3VzdG9tX2Jpb19tZXRo
b2RzID09IE5VTEwKKysgICAgICB8fCAhQklPX21ldGhfc2V0X3dyaXRlIChjdXN0b21fYmlvX21l
dGhvZHMsIGJpb19tZXRob2Rfd3JpdGUpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9yZWFkIChj
dXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfcmVhZCkKKysgICAgICB8fCAhQklPX21ldGhf
c2V0X2N0cmwgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9jdHJsKQorKyAgICAgIHx8
ICFCSU9fbWV0aF9zZXRfY3JlYXRlIChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfbmV3
KQorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfZGVzdHJveSAoY3VzdG9tX2Jpb19tZXRob2RzLCBi
aW9fbWV0aG9kX2ZyZWUpKSB7CisrICAgIEJJT19tZXRoX2ZyZWUgKGN1c3RvbV9iaW9fbWV0aG9k
cyk7CisrICAgIHJldHVybiBOVUxMOworKyAgfQorKworKyAgcmV0dXJuIGN1c3RvbV9iaW9fbWV0
aG9kczsKKyt9CisrI2VuZGlmCisgCisgc3RhdGljIGludAorIGJpb19tZXRob2Rfd3JpdGUgKEJJ
TyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgeworLSAgR3N0RHRsc0Nvbm5l
Y3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3REdGxz
Q29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlv
KSk7CisgCisgICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIkJJTzogd3JpdGluZyAlZCIsIHNpemUp
OworIAorQEAgLTgyNCw3ICs4OTMsNyBAQCBiaW9fbWV0aG9kX3dyaXRlIChCSU8gKiBiaW8sIGNv
bnN0IGNoYXIgKmRhdGEsIGludCBzaXplKQorIHN0YXRpYyBpbnQKKyBiaW9fbWV0aG9kX3JlYWQg
KEJJTyAqIGJpbywgY2hhciAqb3V0X2J1ZmZlciwgaW50IHNpemUpCisgeworLSAgR3N0RHRsc0Nv
bm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3RE
dGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAo
YmlvKSk7CisgICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5wcml2Owor
ICAgZ3VpbnQgaW50ZXJuYWxfc2l6ZTsKKyAgIGdpbnQgY29weV9zaXplOworQEAgLTg2OCw3ICs5
MzcsNyBAQCBiaW9fbWV0aG9kX3JlYWQgKEJJTyAqIGJpbywgY2hhciAqb3V0X2J1ZmZlciwgaW50
IHNpemUpCisgc3RhdGljIGxvbmcKKyBiaW9fbWV0aG9kX2N0cmwgKEJJTyAqIGJpbywgaW50IGNt
ZCwgbG9uZyBhcmcxLCB2b2lkICphcmcyKQorIHsKKy0gIEdzdER0bHNDb25uZWN0aW9uICpzZWxm
ID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpOworKyAgR3N0RHRsc0Nvbm5lY3Rpb24g
KnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpOworICAgR3N0
RHRsc0Nvbm5lY3Rpb25Qcml2YXRlICpwcml2ID0gc2VsZi0+cHJpdjsKKyAKKyAgIHN3aXRjaCAo
Y21kKSB7CitAQCAtOTE2LDggKzk4NSw4IEBAIGJpb19tZXRob2RfbmV3IChCSU8gKiBiaW8pCisg
eworICAgR1NUX0xPR19PQkpFQ1QgKE5VTEwsICJCSU86IG5ldyIpOworIAorLSAgYmlvLT5zaHV0
ZG93biA9IDA7CistICBiaW8tPmluaXQgPSAxOworKyAgQklPX3NldF9zaHV0ZG93biAoYmlvLCAw
KTsKKysgIEJJT19zZXRfaW5pdCAoYmlvLCAxKTsKKyAKKyAgIHJldHVybiAxOworIH0KK0BAIC05
MzAsNiArOTk5LDYgQEAgYmlvX21ldGhvZF9mcmVlIChCSU8gKiBiaW8pCisgICAgIHJldHVybiAw
OworICAgfQorIAorLSAgR1NUX0xPR19PQkpFQ1QgKEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+
cHRyKSwgIkJJTyBmcmVlIik7CisrICBHU1RfTE9HX09CSkVDVCAoR1NUX0RUTFNfQ09OTkVDVElP
TiAoQklPX2dldF9kYXRhIChiaW8pKSwgIkJJTyBmcmVlIik7CisgICByZXR1cm4gMDsKKyB9Cist
LSAKKzIuMTAuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1i
YWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0
ZV9rLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2Nl
cnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzY2ODc3MzcwYzYKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2Vy
dGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoCkBAIC0w
LDAgKzEsMzcgQEAKK0Zyb20gM2EwNjkxOTNlMjUzNjRlYmRhY2FjODZmNGIwMzAyMmMxNTFlYTI5
YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBE
cj1DMz1CNmdlPz0gPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CitEYXRlOiBNb24sIDE0IE5v
diAyMDE2IDExOjMyOjE3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGR0bHNjZXJ0aWZpY2F0ZTog
Rml4IGVycm9yIGNoZWNraW5nIGluIFJTQV9nZW5lcmF0ZV9rZXlfZXgoKQorIHVzYWdlCisKK1dh
cyBicm9rZW4gZHVyaW5nIHRoZSBwb3J0IGZvciBPcGVuU1NMIDEuMS4KKworaHR0cHM6Ly9idWd6
aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDMyOAorLS0tCisgZXh0L2R0bHMvZ3N0
ZHRsc2NlcnRpZmljYXRlLmMgfCA3ICsrKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp
b25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2Nl
cnRpZmljYXRlLmMgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworaW5kZXggYzFjOTYw
Mi4uYzJkOWJiMiAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCisr
KysgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworQEAgLTIwNywxMiArMjA3LDEzIEBA
IGluaXRfZ2VuZXJhdGVkIChHc3REdGxzQ2VydGlmaWNhdGUgKiBzZWxmKQorICAgcnNhID0gUlNB
X25ldyAoKTsKKyAgIGlmIChyc2EgIT0gTlVMTCkgeworICAgICBCSUdOVU0gKmUgPSBCTl9uZXcg
KCk7CistICAgIGlmIChlICE9IE5VTEwgJiYgQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKKy0gICAg
ICAgICYmIFJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVMTCkpIHsKKysgICAg
aWYgKGUgPT0gTlVMTCB8fCAhQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKKysgICAgICAgIHx8ICFS
U0FfZ2VuZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisgICAgICAgUlNBX2Zy
ZWUgKHJzYSk7CisgICAgICAgcnNhID0gTlVMTDsKKyAgICAgfQorLSAgICBCTl9mcmVlIChlKTsK
KysgICAgaWYgKGUpCisrICAgICAgQk5fZnJlZSAoZSk7CisgICB9CisgI2VuZGlmCisgCistLSAK
KzIuMTAuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29k
LVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0
Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4
cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNhNjBkYjQ3NzJiCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Ut
c3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoCkBAIC0wLDAgKzEsMTMzIEBACitG
cm9tIDFhODFiZDkwZDRhM2U1OWQ2NjY5YTBiYmZhNDU2ZjFlZDRlNWRiNDggTW9uIFNlcCAxNyAw
MDowMDowMCAyMDAxCitGcm9tOiBYYWJpZXIgUm9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdh
bGlhLmNvbT4KK0RhdGU6IFRodSwgNyBBcHIgMjAxNiAxMzo1NzoxNiArMDIwMAorU3ViamVjdDog
W1BBVENIXSBSZXZlcnQgInF0ZGVtdXg6IGV4cG9zZSBzdHJlYW1zIHdpdGggZmlyc3QgbW9vZiBm
b3IKKyBmcmFnbWVudGVkIGZvcm1hdCIKKworVGhpcyByZXZlcnRzIGNvbW1pdCBkOGJiNjY4N2Vh
MjUxNTcwYzMzMTAzODI3OWE0M2Q0NDgxNjdkNmFkLgorLS0tCisgZ3N0L2lzb21wNC9xdGRlbXV4
LmMgfCA1NCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAgMSAtCisgMiBmaWxlcyBjaGFuZ2VkLCAxNiBp
bnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQv
cXRkZW11eC5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKK2luZGV4IDM5YmUxNjMuLjk2MzZiNGIg
MTAwNjQ0CistLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYworKysrIGIvZ3N0L2lzb21wNC9xdGRl
bXV4LmMKK0BAIC02MDksNyArNjA5LDYgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAoR3N0UVREZW11eCAq
IHF0ZGVtdXgpCisgICBxdGRlbXV4LT5zdGF0ZSA9IFFUREVNVVhfU1RBVEVfSU5JVElBTDsKKyAg
IHF0ZGVtdXgtPnB1bGxiYXNlZCA9IEZBTFNFOworICAgcXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0
ID0gRkFMU0U7CistICBxdGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworICAgcXRk
ZW11eC0+bmVlZGVkYnl0ZXMgPSAxNjsKKyAgIHF0ZGVtdXgtPnRvZHJvcCA9IDA7CisgICBxdGRl
bXV4LT5hZGFwdGVyID0gZ3N0X2FkYXB0ZXJfbmV3ICgpOworQEAgLTIwNDksNyArMjA0OCw2IEBA
IGdzdF9xdGRlbXV4X3Jlc2V0IChHc3RRVERlbXV4ICogcXRkZW11eCwgZ2Jvb2xlYW4gaGFyZCkK
KyAgICAgZ3N0X2NhcHNfcmVwbGFjZSAoJnF0ZGVtdXgtPm1lZGlhX2NhcHMsIE5VTEwpOworICAg
ICBxdGRlbXV4LT50aW1lc2NhbGUgPSAwOworICAgICBxdGRlbXV4LT5nb3RfbW9vdiA9IEZBTFNF
OworLSAgICBxdGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworICAgfSBlbHNlIGlm
IChxdGRlbXV4LT5tc3NfbW9kZSkgeworICAgICBnc3RfZmxvd19jb21iaW5lcl9yZXNldCAocXRk
ZW11eC0+Zmxvd2NvbWJpbmVyKTsKKyAgICAgZm9yIChuID0gMDsgbiA8IHF0ZGVtdXgtPm5fc3Ry
ZWFtczsgbisrKQorQEAgLTYxMDQsNyArNjEwMiw2IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRh
cHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAgICAgICAgICAgICAm
Zm91cmNjKTsKKyAgICAgICAgIGlmIChmb3VyY2MgPT0gRk9VUkNDX21vb3YpIHsKKyAgICAgICAg
ICAgZ2ludCBuOworLSAgICAgICAgICBnYm9vbGVhbiBnb3Rfc2FtcGxlcyA9IEZBTFNFOworIAor
ICAgICAgICAgICAvKiBpbiB1c3VhbCBmcmFnbWVudGVkIHNldHVwIHdlIGNvdWxkIHRyeSB0byBz
Y2FuIGZvciBtb3JlCisgICAgICAgICAgICAqIGFuZCBlbmQgdXAgYXQgdGhlIHRoZSBtb292IChh
ZnRlciBtZGF0KSBhZ2FpbiAqLworQEAgLTYxMzYsMjcgKzYxMzMsMTkgQEAgZ3N0X3F0ZGVtdXhf
cHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAg
ICAgICAgICAgIHF0ZGVtdXhfbm9kZV9kdW1wIChkZW11eCwgZGVtdXgtPm1vb3Zfbm9kZSk7Cisg
ICAgICAgICAgICAgcXRkZW11eF9wYXJzZV90cmVlIChkZW11eCk7CisgICAgICAgICAgICAgcXRk
ZW11eF9wcmVwYXJlX3N0cmVhbXMgKGRlbXV4KTsKKysgICAgICAgICAgICBpZiAoIWRlbXV4LT5n
b3RfbW9vdikKKysgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsK
KysgICAgICAgICAgICBlbHNlIHsKKyAKKy0gICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVt
dXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJl
YW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKy0gICAgICAgICAgICAgIGdvdF9zYW1wbGVzIHw9IHN0
cmVhbS0+c3RibF9pbmRleCA+PSAwOworLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBpZiAo
IWRlbXV4LT5mcmFnbWVudGVkIHx8IGdvdF9zYW1wbGVzKSB7CistICAgICAgICAgICAgICBpZiAo
IWRlbXV4LT5nb3RfbW9vdikgeworLSAgICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJl
YW1zIChkZW11eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBm
b3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAgICAgICAgICAg
ICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07CistICAgICAgICAg
ICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7Cist
ICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+
bl9zdHJlYW1zOyBuKyspIHsKKysgICAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFt
ID0gZGVtdXgtPnN0cmVhbXNbbl07CisrCisrICAgICAgICAgICAgICAgIGdzdF9xdGRlbXV4X2Nv
bmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJlYW0pOworICAgICAgICAgICAgICAgfQorLSAgICAg
ICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsK
Ky0gICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworLSAgICAg
ICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUg
PSBUUlVFOworICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICBkZW11eC0+Z290X21vb3Yg
PSBUUlVFOworKyAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdt
ZW50IChkZW11eCk7CisgCisgICAgICAgICAgICAgLyogZnJhZ21lbnRlZCBzdHJlYW1zIGhlYWRl
cnMgc2hvdWxkbid0IGNvbnRhaW4gZWR0cyBhdG9tcyAqLworICAgICAgICAgICAgIGlmICghZGVt
dXgtPmZyYWdtZW50ZWQpIHsKK0BAIC02MTc1LDcgKzYxNjQsNiBAQCBnc3RfcXRkZW11eF9wcm9j
ZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisgICAgICAg
ICAgICAgZ3VpbnQ2NCBkaXN0ID0gMDsKKyAgICAgICAgICAgICBHc3RDbG9ja1RpbWUgcHJldl9w
dHM7CisgICAgICAgICAgICAgZ3VpbnQ2NCBwcmV2X29mZnNldDsKKy0gICAgICAgICAgICBnaW50
IG47CisgCisgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJQYXJzaW5nIFtt
b29mXSIpOworIAorQEAgLTYyMDksMjUgKzYxOTcsMTUgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19h
ZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAgICAgICAgICAg
ICAgcmV0ID0gR1NUX0ZMT1dfRVJST1I7CisgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAg
ICAgICAgICAgfQorLSAgICAgICAgICAgIC8qIGluIE1TUyB3ZSBuZWVkIHRvIGV4cG9zZSB0aGUg
cGFkcyBhZnRlciB0aGUgZmlyc3QgbW9vZiBhcyB3ZSB3b24ndCBnZXQgYSBtb292IAorLSAgICAg
ICAgICAgICAqIEFsc28sIGZyYWdtZW50ZWQgZm9ybWF0IG5lZWQgdG8gYmUgZXhwb3NlZCBpZiBh
IG1vb3YgaGF2ZSBubyB2YWxpZCBzYW1wbGUgZGF0YSAqLworLSAgICAgICAgICAgIGlmIChkZW11
eC0+bXNzX21vZGUgfHwgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlKSB7CistICAgICAgICAgICAg
ICBpZiAoIWRlbXV4LT5leHBvc2VkKSB7CistICAgICAgICAgICAgICAgIGlmICghZGVtdXgtPnBl
bmRpbmdfbmV3c2VnbWVudCkgeworLSAgICAgICAgICAgICAgICAgIEdzdFNlZ21lbnQgc2VnbWVu
dDsKKy0gICAgICAgICAgICAgICAgICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZP
Uk1BVF9USU1FKTsKKy0gICAgICAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwg
Im5ldyBwZW5kaW5nX25ld3NlZ21lbnQiKTsKKy0gICAgICAgICAgICAgICAgICBkZW11eC0+cGVu
ZGluZ19uZXdzZWdtZW50ID0gZ3N0X2V2ZW50X25ld19zZWdtZW50ICgmc2VnbWVudCk7CistICAg
ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAo
ZGVtdXgpOworLSAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgZm9yIChu
ID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworLSAgICAgICAgICAgICAgICAgIFF0
RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAgICAg
ICAgIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJlYW0pOworLSAgICAg
ICAgICAgICAgICB9CisrICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQgdG8gZXhwb3NlIHRo
ZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBhIG1vb3YgKi8KKysg
ICAgICAgICAgICBpZiAoZGVtdXgtPm1zc19tb2RlICYmICFkZW11eC0+ZXhwb3NlZCkgeworKyAg
ICAgICAgICAgICAgaWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CisrICAgICAgICAg
ICAgICAgIEdzdFNlZ21lbnQgc2VnbWVudDsKKysgICAgICAgICAgICAgICAgZ3N0X3NlZ21lbnRf
aW5pdCAoJnNlZ21lbnQsIEdTVF9GT1JNQVRfVElNRSk7CisrICAgICAgICAgICAgICAgIEdTVF9E
RUJVR19PQkpFQ1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworKyAgICAgICAg
ICAgICAgICBkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50ID0gZ3N0X2V2ZW50X25ld19zZWdtZW50
ICgmc2VnbWVudCk7CisgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11
eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVt
dXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7CisrICAgICAgICAgICAgICBxdGRlbXV4X2V4
cG9zZV9zdHJlYW1zIChkZW11eCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAiRGlzY2FyZGluZyBbbW9v
Zl0iKTsKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguaCBiL2dzdC9pc29tcDQvcXRk
ZW11eC5oCitpbmRleCA2MDYxMjE1Li5lY2YwYzYzIDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9x
dGRlbXV4LmgKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCitAQCAtODksNyArODksNiBAQCBz
dHJ1Y3QgX0dzdFFURGVtdXggeworICAgZ2Jvb2xlYW4gcG9zdGVkX3JlZGlyZWN0OworIAorICAg
LyogcHVzaCBiYXNlZCB2YXJpYWJsZXMgKi8KKy0gIGdib29sZWFuIHBlbmRpbmdfY29uZmlndXJl
OworICAgZ3VpbnQgbmVlZGVkYnl0ZXM7CisgICBndWludCB0b2Ryb3A7CisgICBHc3RBZGFwdGVy
ICphZGFwdGVyOworLS0gCisyLjguMC5yYzMKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2ggYi9Ub29s
cy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5w
YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWU5ZGQ5N2Y3OTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVz
ZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaApAQCAtMCwwICsxLDE0NiBAQAorRnJvbSA0NmQz
ZTBmYWE5MjI2NDMwOTRhNWU0NmEzMmU0ZjgyZjc3NGFlNzcyIE1vbiBTZXAgMTcgMDA6MDA6MDAg
MjAwMQorRnJvbTogPT9VVEYtOD9xP0VucmlxdWU9MjBPY2E9QzM9QjFhPTIwR29uej1DMz1BMWxl
ej89IDxlb2NhbmhhQGlnYWxpYS5jb20+CitEYXRlOiBUdWUsIDEwIE5vdiAyMDE1IDEzOjA5OjAw
ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSB0aGUgdGZkdCBkZWNvZGUgdGltZSB3aGVuIGl0
J3Mgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQKKyB0aGFuIHRoZSB0aW1lIGluIHRoZSBsYXN0IHNh
bXBsZSBpZiBhbHdheXMtaG9ub3ItdGZkdCBpcyBlbmFibGVkCisKK2h0dHBzOi8vYnVnemlsbGEu
Z25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQyMzAKKy0tLQorIGdzdC9pc29tcDQvcXRkZW11
eC5jIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKworIGdzdC9pc29tcDQvcXRkZW11eC5oIHwgIDEgKworIDIgZmlsZXMgY2hhbmdlZCwgNzMg
aW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3Qv
aXNvbXA0L3F0ZGVtdXguYworaW5kZXggODgwNTk1ZS4uZDhiNTRmMCAxMDA2NDQKKy0tLSBhL2dz
dC9pc29tcDQvcXRkZW11eC5jCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTUzNSw2
ICs1MzUsMTEgQEAgc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfYXBwZW5kX3Byb3RlY3Rpb25fc3lz
dGVtX2lkIChHc3RRVERlbXV4ICogcXRkZW11eCwKKyAgICAgY29uc3QgZ2NoYXIgKiBpZCk7Cisg
c3RhdGljIHZvaWQgcXRkZW11eF9nc3Rfc3RydWN0dXJlX2ZyZWUgKEdzdFN0cnVjdHVyZSAqIGdz
dHN0cnVjdHVyZSk7CisgCisrc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfc2V0X3Byb3BlcnR5IChH
T2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorKyAgICBjb25zdCBHVmFsdWUgKiB2YWx1
ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworK3N0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X2dldF9wcm9w
ZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgR1ZhbHVlICogdmFs
dWUsIEdQYXJhbVNwZWMgKiBzcGVjKTsKKysKKyBzdGF0aWMgdm9pZAorIGdzdF9xdGRlbXV4X2Ns
YXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQorIHsKK0BAIC01NDYsOCArNTUxLDIx
IEBAIGdzdF9xdGRlbXV4X2NsYXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQorIAor
ICAgcGFyZW50X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50IChrbGFzcyk7CisgCisr
ICBnb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9zZXRfcHJvcGVydHk7
CisrICBnb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9nZXRfcHJvcGVy
dHk7CisrCisgICBnb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gZ3N0X3F0ZGVtdXhfZGlzcG9zZTsK
KyAKKysgLyoqCisrICAgKiBHc3RRdERlbXV4OjphbHdheXMtaG9ub3ItdGZkdDoKKysgICAqCisr
ICAgKiBSZXF1ZXN0cyB0aGUgZGVtdXhlciB0byByZXNwZWN0IHdoYXQgdGhlIFRGRFQgYXRvbSBz
YXlzIGluIG9yZGVyIHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMuIERlZmF1bHRz
IHRvIEZBTFNFLgorKyAgICovCisrICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChn
b2JqZWN0X2NsYXNzLCBQUk9QX0FMV0FZU19IT05PUl9URkRULAorKyAgICAgIGdfcGFyYW1fc3Bl
Y19ib29sZWFuICgiYWx3YXlzLWhvbm9yLXRmZHQiLCAiQWx3YXlzIGhvbm9yIFRGRFQiLAorKyAg
ICAgICAgICAiV2hlbiBlbmFibGVkLCBURkRUIGF0b20gd2lsbCBhbHdheXMgYmUgcmVzcGVjdGVk
IGluIG9yZGVyIHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMiLAorKyAgICAgICAg
ICBGQUxTRSwgR19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTKSk7Cisr
CisgICBnc3RlbGVtZW50X2NsYXNzLT5jaGFuZ2Vfc3RhdGUgPSBHU1RfREVCVUdfRlVOQ1BUUiAo
Z3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlKTsKKyAjaWYgMAorICAgZ3N0ZWxlbWVudF9jbGFzcy0+
c2V0X2luZGV4ID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X3NldF9pbmRleCk7CitA
QCAtNjExLDYgKzYyOSw3IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBxdGRlbXV4
KQorICAgcXRkZW11eC0+Y2VuY19hdXhfaW5mb19zaXplcyA9IE5VTEw7CisgICBxdGRlbXV4LT5j
ZW5jX2F1eF9zYW1wbGVfY291bnQgPSAwOworICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1f
aWRzID0gTlVMTDsKKysgIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0ID0gRkFMU0U7CisgICBn
X3F1ZXVlX2luaXQgKCZxdGRlbXV4LT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlKTsKKyAgIGdzdF9z
ZWdtZW50X2luaXQgKCZxdGRlbXV4LT5zZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworICAgcXRk
ZW11eC0+Zmxvd2NvbWJpbmVyID0gZ3N0X2Zsb3dfY29tYmluZXJfbmV3ICgpOworQEAgLTYzOSw2
ICs2NTgsNDIgQEAgZ3N0X3F0ZGVtdXhfZGlzcG9zZSAoR09iamVjdCAqIG9iamVjdCkKKyB9Cisg
Cisgc3RhdGljIHZvaWQKKytnc3RfcXRkZW11eF9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmpl
Y3QsIGd1aW50IHByb3BfaWQsCisrICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVj
ICogcHNwZWMpCisreworKyAgR3N0UVREZW11eCAqcXRkZW11eCA9IEdTVF9RVERFTVVYIChvYmpl
Y3QpOworKworKyAgc3dpdGNoIChwcm9wX2lkKSB7CisrICAgIGNhc2UgUFJPUF9BTFdBWVNfSE9O
T1JfVEZEVDoKKysgICAgICBHU1RfT0JKRUNUX0xPQ0sgKHF0ZGVtdXgpOworKyAgICAgIHF0ZGVt
dXgtPmFsd2F5c19ob25vcl90ZmR0ID0gZ192YWx1ZV9nZXRfYm9vbGVhbiAodmFsdWUpOworKyAg
ICAgIEdTVF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAgZGVm
YXVsdDoKKysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwg
cHJvcF9pZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMgdm9p
ZAorK2dzdF9xdGRlbXV4X2dldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJv
cF9pZCwgR1ZhbHVlICogdmFsdWUsCisrICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBH
c3RRVERlbXV4ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2gg
KHByb3BfaWQpIHsKKysgICAgY2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdT
VF9PQkpFQ1RfTE9DSyAocXRkZW11eCk7CisrICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbiAodmFs
dWUsIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0KTsKKysgICAgICBHU1RfT0JKRUNUX1VOTE9D
SyAocXRkZW11eCk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgR19PQkpF
Q1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKysg
ICAgICBicmVhazsKKysgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKyBnc3RfcXRkZW11eF9wb3N0
X25vX3BsYXlhYmxlX3N0cmVhbV9lcnJvciAoR3N0UVREZW11eCAqIHF0ZGVtdXgpCisgeworICAg
aWYgKHF0ZGVtdXgtPnBvc3RlZF9yZWRpcmVjdCkgeworQEAgLTI5OTUsNiArMzA1MCwxNiBAQCBx
dGRlbXV4X3BhcnNlX3RydW4gKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHc3RCeXRlUmVhZGVyICog
dHJ1biwKKyAgICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVzIC0gMV0u
dGltZXN0YW1wICsKKyAgICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVz
IC0gMV0uZHVyYXRpb247CisgCisrICAgICAgLyogSWYgd2UncmUgYWx3YXlzIGhvbm9yaW5nIFRG
RFQgYW5kIHRoZXJlJ3MgYSBzaWduaWZpY2F0aXZlIGRpZmZlcmVuY2UKKysgICAgICAgKiBiZXR3
ZWVuIHRoZSBkZWNvZGVfdHMgYW5kIHRoZSB0aW1lc3RhbXAsIHByZWZlciBkZWNvZGVfdHMgKi8K
KysgICAgICBpZiAocXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPT0gVFJVRQorKyAgICAgICAg
ICAmJiBhYnMgKGRlY29kZV90cyAtIHRpbWVzdGFtcCkgPgorKyAgICAgICAgICBzdHJlYW0tPnNh
bXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbikgeworKyAgICAgICAgR1NUX0lO
Rk9fT0JKRUNUIChxdGRlbXV4LAorKyAgICAgICAgICAgICJkZWNvZGVfdHMgaXMgc2lnbmlmaWNh
bnRseSBkaWZmZXJlbnQgZnJvbSB0aW1lc3RhbXAsIHVzaW5nIGRlY29kZV90cyIpOworKyAgICAg
ICAgdGltZXN0YW1wID0gZGVjb2RlX3RzOworKyAgICAgIH0KKysKKyAgICAgICBnc3RfdHMgPSBR
VFNUUkVBTVRJTUVfVE9fR1NUVElNRSAoc3RyZWFtLCB0aW1lc3RhbXApOworICAgICAgIEdTVF9J
TkZPX09CSkVDVCAocXRkZW11eCwgImZpcnN0IHNhbXBsZSB0cyAlIiBHU1RfVElNRV9GT1JNQVQK
KyAgICAgICAgICAgIiAoZXh0ZW5kcyBwcmV2aW91cyBzYW1wbGVzKSIsIEdTVF9USU1FX0FSR1Mg
KGdzdF90cykpOworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lzb21w
NC9xdGRlbXV4LmgKK2luZGV4IDUzYmQwNzEuLmVjZjBjNjMgMTAwNjQ0CistLS0gYS9nc3QvaXNv
bXA0L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK0BAIC0xNTQsMTIgKzE1
NCwyMCBAQCBzdHJ1Y3QgX0dzdFFURGVtdXggeworICAgZ3VpbnQ4ICpjZW5jX2F1eF9pbmZvX3Np
emVzOworICAgZ3VpbnQzMiBjZW5jX2F1eF9zYW1wbGVfY291bnQ7CisgCisrICBnYm9vbGVhbiBh
bHdheXNfaG9ub3JfdGZkdDsKKyB9OworIAorIHN0cnVjdCBfR3N0UVREZW11eENsYXNzIHsKKyAg
IEdzdEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CisgfTsKKyAKKysvKiBwcm9wcyAqLworK2Vu
dW0KKyt7CisrICBQUk9QXzAsCisrICBQUk9QX0FMV0FZU19IT05PUl9URkRUCisrfTsKKysKKyBH
VHlwZSBnc3RfcXRkZW11eF9nZXRfdHlwZSAodm9pZCk7CisgCisgR19FTkRfREVDTFMKKy0tIAor
Mi42LjEKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5k
LU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoIGIvVG9vbHMv
d3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93
bnN0cmVhbS1pZi10aGUtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5iNDQ2YmQ1NDRjMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dz
dHJlYW1lci10eXBlZmluZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYtdGhl
LS5wYXRjaApAQCAtMCwwICsxLDMyIEBACitGcm9tIDVlNDNlZTU5ODlkN2I1MWRjYjMxNDViZDk5
NzUyNTI0N2EzZDYyZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/
U2ViYXN0aWFuPTIwRHI9QzM9QjZnZT89IDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgorRGF0
ZTogV2VkLCAxMSBNYXkgMjAxNiAxNTowNjozOSArMDMwMAorU3ViamVjdDogW1BBVENIXSB0eXBl
ZmluZDogT25seSBwdXNoIGEgQ0FQUyBldmVudCBkb3duc3RyZWFtIGlmIHRoZSBzaW5rcGFkIGlz
Cisgbm90IGluIFBVTEwgbW9kZQorCitUaGUgb3RoZXIgc2lnbmFsIGhhbmRsZXJzIG9mIHRoZSB0
eXBlLWZvdW5kIHNpZ25hbCBtaWdodCBoYXZlIHJlYWN0aXZhdGVkCit0eXBlZmluZCBpbiBQVUxM
IG1vZGUgYWxyZWFkeSwgcHVzaGluZyBhIENBUFMgZXZlbnQgYXQgdGhhdCBwb2ludCB3b3VsZCBj
YXVzZQorZGVhZGxvY2tzIGFuZCBpcyBpbiBnZW5lcmFsIHVuZXhwZWN0ZWQgYnkgZWxlbWVudHMg
dGhhdCBhcmUgaW4gUFVMTCBtb2RlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzY1OTA2CistLS0KKyBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxl
bWVudC5jIHwgNCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZm
IC0tZ2l0IGEvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyBiL3BsdWdpbnMv
ZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKK2luZGV4IGM2ODY0MTIuLjQ1M2ZmNzUgMTAw
NjQ0CistLS0gYS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCisrKysgYi9w
bHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCitAQCAtMTc5LDYgKzE3OSwxMCBA
QCBnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlIChHc3RUeXBlRmluZEVsZW1lbnQgKiB0
eXBlZmluZCwKKyAgIEdTVF9JTkZPX09CSkVDVCAodHlwZWZpbmQsICJmb3VuZCBjYXBzICUiIEdT
VF9QVFJfRk9STUFUICIsIHByb2JhYmlsaXR5PSV1IiwKKyAgICAgICBjYXBzLCBwcm9iYWJpbGl0
eSk7CisgCisrICAvKiBEbyBub3RoaW5nIGlmIGRvd25zdHJlYW0gaXMgcHVsbGluZyBmcm9tIHVz
ICovCisrICBpZiAoR1NUX1BBRF9NT0RFICh0eXBlZmluZC0+c3JjKSA9PSBHU1RfUEFEX01PREVf
UFVMTCkKKysgICAgcmV0dXJuOworKworICAgR1NUX09CSkVDVF9MT0NLICh0eXBlZmluZCk7Cisg
CisgICAvKiBOb3cgYWN0dWFsbHkgc2VuZCB0aGUgQ0FQUyBldmVudCBkb3duc3RyZWFtLgorLS0g
CisyLjguMQo=
</data>
<flag name="commit-queue"
          id="328969"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>307738</attachid>
            <date>2017-04-21 09:24:48 -0700</date>
            <delta_ts>2017-04-27 13:41:37 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews105 for mac-elcapitan-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>928098</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
T5KmH6Yrf3NdmpPLfnzYs5s2NU55ax703U1Zs0fnoClfvN1y39v5b+Ne48oPZSeLh812Iz4vnUGr
GwbW6zWzlOvKtKTz6PbkZJ3VsVO66fS5Jk7bYbbKh5tJ/JZH8+e8MM6bGQ8d7vRGu+7pfW2fD0/e
ILuuR+fnYfasOq7VHh2n8XIqPy+MWrY6dI/t5uKkXp90fr40ms10y8KRl52mU//9FEe7NCpePSn0
bpYYhMPl9eQrK7WznR/2ryytGePnVD/Mrk/vVludNdaHl6g9Tfbtw3Bul8rqli43ZqBYu2mrPWxH
pRSNeq496Ntuc7kvJLNX60yOejyTJ9nhdrHc60xYdsOfbA+sqzC/PTOuptIzpqPtU2o4VulZVtSz
N++OvXGxLbBytXY/8Oyh5Vphu4ElbVlslLp5OLbtfrJqmw15vrwmTk+xztt1cFmo80455Uu7TYvb
g8Crha71lP/J+ODN97ZRtodeHNgr2sCzynKQ8rfFy8Q+1aaT/iaWO8XLpL9O5P57ngeeevZKp5y6
b33p1bZwi9z3AjuoouuEYRBYu5bjnFpWOGrW7BI/Peh7S8G5CO3Dsuf3Cs+/Pa2n62nYeWFv83HW
ub5FDd+4vr5KtW3gOWEQ5nOltSsPhXxcjfy1GRljY72LraSzDJS5LyUbbrjubdV6n/fH+UjTRF8N
HClrrWoj11/m3np/SG77YZJLqiEW/WJWLsLGRdsLcekIPwzLyTmXFtv27tVjt74cKG156A46Z/W1
liy6zZQ3L+POwWjurHhfeMk490IxNeavb1PlfSw2iWDued9w58ee7u+DlSpv3H40u3luqtVk1g9X
L0+NFxZKbNKbjCzV0JX82h7t+zv9thlw2ZmGx9h5LqKnfX5JN0zrR53ZyBiMW+VqVrNvp+s2fht0
grVjqcnxbTGSG2+y5TzP01txbl3YKrk0DryjiI5bzC/SOH36YCiv6/7OT/8FUEsDBBQAAgAIAIVC
lUoKXsxj5wkAADsSAAAVABwAX3dwdF9jZXJ0cy8wNEU2RTIucGVtVVQJAAMpI/pYKSP6WHV4CwAB
BPUBAAAEFAAAAJ1X2XKrSBJ911focTrct13sUBH9AAhJaEELkmX5rYACgdAGSEj6+snk9rjltu5M
xBAOh6GqcjmZdU7a5kWVxmnIKk5bbXg6rGI//8LnjRdletjTttT+F7mKv30u+LxIWd72zruAF7As
CqJCcI/MVf64L032rDoXvG3myaFIq82OtssNExV1BS9z33T2YXE7VuDl85Bblme0ant/1jz4ccxZ
FR+K3Y+Kl1X5d2wsT6O0un1+wMc7VG2Lw25O2+axaItCW1CoSCgx2iIRtHZvvPh2wIwrXrRpe8xu
//2Afw4yHlZNZPkhZPnmUFb/XG1Pz0Gehu0hv7XdfXygX/w9LD4gUpTsCQ74AEIPZ2j7XyKR9XaQ
Vr992YbP+BCd83P5sIV+24MPIdSQKeNU4VTmVAqpKlEtpEFARZWqIiUijVUaRlTlzy0wg3Id9wgB
npI4DRiVZapENDbwNRYoF2gs0yh+bkEMqBZRRaJBYyeSKYEYRKopVCZU06ke0QC8hFSInluAPRGj
BqGxREORMo3yGHNhjEYqRmUYVJCpIKCppxYkSJbRmGAY8KOpVAEQwsasgimEkItMOWQn/AIH8AXJ
cgQtkigLsHFYSDmYIjSIKcE+ooqCH59aQNx0GpIm5pjqAmU6GuEiFQWqCjQCTBgWS/2FBcgujqiu
YbK6TjWJyjE1JCrqCCNECKYApUDD0jy1wAOqA/4cfUG+kDvAKEVUkxFYkWOloDQQABh/3lEiQkd0
3KbElMUIvmZQBoGBKQFLGUSURxjhUwsAlwZwBVSBnVBQjmFwmUoEUxDgFRpVoxqnjDy3AIUAL1BE
SF9v2lsXqaygWQhDlLGRoEkgBekXPclgSccigiNofjACpyB3yEuXqMDwb3AhBTQMftHVOoYNv6H5
ZZHqUHeDyiHeDrwUUAWoBcPAoPeeWpABNMhaoULjVARrGmYBNsGgLGCZBAkvLPlFTyrNzYLmgbJq
cNMBjRhj0BklMo1FGmrUCLFA8S9wUGTkB7iYGCf0Bkc7UEQABK4n9BtAHUGTM/TyPIsIMPy24lyP
hz3fA32qiiJpqBYCIUT4m8neFWJcpDa/VnyPulN+Nf/XssVKYEMblquCpfuqpO1vvmyTds2R7zw7
/x+ebgg6goBAAFFuvhnpECSjbpeahFoCXmO7Q00Diwf2TZva8B0azqAWIOVQBaizi6ua9syvea42
SPi3/+15y28p0KONN1fr4k/HwZboClgLUaKWjiztGNSB2yrSrk4tAwtk2LitY7aeBYBulyVL+LNc
0yStQNE/Bft3kMZ9e86P5yhlKEu/N+dBptLjhhc7iP6ZDwdrF/HovzpbjPz2igc4RVxAeREYBCNk
3+TvHyUzc1BqiC+98LbHdk8T8Xz6qc2/N691Xf/xj0/X/Y8fez1To1KR8rreFqfNRdTZs235hf9Q
cxb98d2q+OSb8MfXyeD/moBACqDOQKVGgKxMIqQ94G9NQA4AQQD5FZpG0AleR0PES/95HGg4VJAy
kdKihjkC3KkCv+r4PeBI7UgDEiqkrCJJfB7HucBACQXORvsi5RoVRdwDFKJGSEgS+2tqiEFYFFS8
z+PADSBcAcENwGGQCAgCDFVAPBA2KBWILTBxqKNi6z/p6oHUcRJpSDdScAnYOgA2UjGFEPRQQ5UA
ghFCjJwrCMKjLsEqLEGoCpCugbqHXNhgBWiASofAW5BIiPICUQFfAsV+Hgf2BcUGyzCS6A3vAnkb
jc6DtkDuwAI/FRtABl0SxS/KLDZaamgIII5CzTQB4o+S3oAGMZAmBhxPIHHA6gF5kAixiR9IBKoA
pAuXW2kSh4MgZQF4ByMi4gYHmYD7P4+DfEE5oBmgoIAeJAIwAoVD7qqOeh4JOCyEP6EAJBlOWH8H
r6IAqgSbDXVSxd+8wRAygmkCNNBQURVDGQcliPNxpoAegHFP0bBkTMEGAPEHvWIq+gWzME/BRAld
jVUgzYz5MGCKTatArbWmx0BCdRUhIho6hSWYHaCFYCIA12ANmlB5+FcFZAqaGZyGKqYGAwXEQBTs
ATgFNQJYQNOgLgAshAHXR3mADkWS4QBLWOsHPpbTc7227cwXbte1zYXTfG2NXbezv9u2eeCJWbuW
mbgdaxKkY5P0bP/U891A6swcy66X5tgi197d/LAS780yx2NnH+WtdSrUQa9LPnbGLfAF8vHukfBu
8m5Nrt7dJOPMuXoLtx53cvbXN+HxW2tsza5OZs7+Y9VeXS9rsVuynnGPOhCZ79ad2XowPHy4m0vo
mRCNNTM7SeJMTVhvmbODDS+WOfDP71tZX0s3bbBzbaMUzieeiT2tfDlv59HLQrvK8SIeSsLiPA2W
pjQQZv3Ua515HXHvNNP14V67305Ccf7oWj3P2xX1UvDE99Gd5XF/4E3U66nSXtbVpHCH991ypJv2
26psnbeZKRQv1snupO6q7/OTUmax2O+6m/tCGR/4sEi3o1hR5dmEZP7btCOQOlWMcHe9m3nttsL8
5bJ731VZp6dcuOgu+/poFUwnOZ/Vp43KPUlNpCIXF7J/TrZvr4U/i47S+PVwTwtPF53WoE/c5Ho0
zovLaDhYHuTlsHta3tTpxb7tDq7os5nQc8f5gCwPs60zccSxtZLIRpXsOCO3Ycuajvr7wf71beDL
SXaehJ2eE60lLk0Om8UitM3aMU02sfSObWkLc4DV6s/HjpmZ2Be9likso04yW1nWYjabviTl27t3
WgTDYmyLfuC+LBNdjO5m3Bz0x06vY64Sax5u+8artMmurdCeyOZ5n48vqbIZ1GsxM0fN5pkOtR3b
FocY6nXnbU5yy6xrO1m7w3oNvbDs40orTprFudUP62jtDoKeka1X10MgeSRJBCmSwvOXb2lXDlJS
Bdnm5O3m95a38MpIiopw3z1EmSuvfaUMRG8T9KDvJN/u7jfnkS+U0W5Zebvr5sP+ut7q7OH43f3q
JVHQ83W0e2xr07OS7WmzTXtGTSxzVnZNc4Kt7JgXyYp3husdpvl19l4cHHtiSseBEZYrfrgLti9b
xWqgvtTH28JZsun7dqdd1h1fuQ2nLasndCc7Tzde33dSr1evZa8uru991Y0WRz27pBJJ4hFxhXfy
Wo0+RnUUjhbzeq743t2+3qatVbaTXG5mB2M6HNX3bfet3B/N7Vxwl4fzseDRTnjzx9atnw7Koey/
+/FWF091oixOmamfPlp9/3rR7TL0cvk6zi/WQXoR/NNwFKhOMZlyf14tB3anzFh/MX8NJ5lQF+Ug
2ySH/lgMX3ZSK5cSlqcL52LdFaUy3qfqqs5MdUdWnUGQvy7qaTBxJZtEPWmz2ZB+vrfd693W184b
y46TunWtotlxtlSu4s0/OzkPNlaQkWNkJ3/++ZMLHa/znQn/DVBLAwQUAAIACACFQpVKHs6fDQQJ
AAA6EQAAFQAcAF93cHRfY2VydHMvY2FjZXJ0LnBlbVVUCQADKSP6WCkj+lh1eAsAAQT1AQAABBQA
AACtVtmO6soOfecreDxHrSNSldnSfcgEhO5Ah6EZ3jJUwjwGAv3110737s3WpveRrm4UoZC4XPay
vVY54lgsskUSFQJqdbzcqIg+nuh6E8fTYreFulz/S7ryv78+DMRxEa3r3fMmFkf8zBlXTLJRhCbY
nd0i30bF+Sjq1jrfHRfFfAP10zziqjbGP/2B5W2T421f4C5fi/zT6Uxene5/ShH/s19HRbY7bv4p
xKk4/YwtWi/SRXH7ekFXd1fUbYHWAurW/ljnrM5U4BJIZp1LTK+3guFvC6ysEMc61IPo9ucFg3O8
FEnxb5F9mtVfz/F6kdSfxa3ub7Md/LLx3cc7aI6n6AEgdCFUd2ug/heXFKMeL4q/fzGjK9il5/X5
dGcCv9nQJUmQKKAwiBjEBgi8BfAIVB2yGBQBcQyRCYYJkvHYgxkDMyBLQRWQ4UINogjMFHQOAhdm
wBMwJNAMUJLHHhQFZBNixFsFJQYjAaaDHlNgEQc5ojAiCQyVnD/0IMeQJaDj1jFIHNQMtBRkBopO
gVEKMhYTOAMj/SYGxAEDyCBRIZNANiDRQMkA36eYiAoyh8wArkNifoMDh5iDjk5SSDWQItAjMk5l
0AUoBjAZTJOCTNXHHgysAqIUgcEhRdwE2SOSJvqMQUMEBKgcDBm0b5BM0AChFoSDYMAwngyYCapC
xY2Uym1MDtHJd/2gq2SjVf2Q4p1QVHFSZRERgBE+M9D4Yw8xplkZC6wCIp9RaVQGKiaSUSQMb0bd
xb7pKMo0AZFQEbGXWApaRDBiP6QMJEa1wF+hUCKPqylATgglLlPrYndxDXSD/CAI1KspZFUK5jf9
gFMQaZQmxikj/jr1AMaPv4SGBoZOECUR9dhDDzg12EU4WclHDJxKT32OnSnTRHCDaopO0m9qwSqo
ZQU0ExSZSoYDwqtplRBSg+Yr1qsuFY89cJWaEFNAJDHTVKe6oE8sChYaIVJNgoWKnn3jgYFugkD8
EXxEteJFTERPINHpjSQISZxN/g0OGY5A9tsX77rfbcUWeVRTVVkn2WCSJN3JxkSVzItcF9dCbEmA
Tr+6//xsRydkQwc/F8dosS1OUP9tL8eCYX/kPVr+g6Yrfk4xHhRCkp3ffKgONZvepNv1qHWbjIYd
G8w2iHM8E7yKJZoG2Mh72JwOmbnWo32tczEnvr/9+84rcVtgw/6f9q/0fXHsRhsBjT9L2I/rVOk8
SAp4Gnis9igfymJ0inLxCP6f54vqLPBovUdVTkX6R0fDl0F9LGI6eFxQrAlDwg0d/xDK/+mogaRA
dMOplWOcLl5xfaVkOD84n4guyhKyNo6cWrW+ece/qko0l3EaJ2SoTIZMIYPkY2GlrzgzyBcf/J5w
Yuev5boOERKrSvpq6qQcSLVqTMqBkokUhtSD0oURIrnjNGLB7xkHeS2NSbqQZYiMkLVlmkY8wKBk
qjI5NwUtMWWKBwkUx/VrObIhCgbmyytKUkziGmSuJKFfJYXEIAISOk07irGiUYQ/g5eqk0FGXI8c
gfHjXhg/PhjGJ0+hlscRiSLnlTDcHS1xIYqiivaMZAYTxGTTlAgXRRdTQxZGdtOr8BAiveLcn4XL
qCJmRDsyjeJnMbE25sgQw4hEgknEX3QKQdlIfzlAkMajtOifRC9SIlkMFVmeKFsjJPHoQGHLRLsI
gn6n/UYVEq3ltIusU2pppXAIKQ5rnNHNqzeIIfaPfkf0CBGaYcthOyF6CBeeV5DxUWJRLPG8gkmh
c6XibuwZ6sM76LDo2DDYSJgm9qpp0EbIy2iMYVBgnMhdrVTT1AgZ6S54PBMg1CjzuCkKQ6zSwQJz
xK7D/pdkqiB+/RgBWf+UzK/ldFQyqJnxJXYdBkNwZbQjIo8PGBJqJEoCtb1JaabGL4XDGmmkRrV/
6LK9lt+tO15/6Dd9xxp61dta4Pvu6N1xrOU5t0rftnLftXvxPLCkljM4tAZ+LLuhZzvlyAps6dp6
t2Z23n2zrSDwtum6Nl2wMm41pdnGvMUDJs0mXSl5t0SzlK7dd0sKlt61O/TLwF1Hn+/Y/bvaI6+P
nWKUA790w2nneTfz55eka2FkNTu03Dz3Xi0XDcKdg8/op2/v4uVOX+wnT5KmH6Yrf3NdmpPLfnzY
s5s2NU55ax703U1Zs0fnoClfvN1y39v5b+Ne48oPZSeLh812Iz4vnUGrGwbW6zWzlOvKtKTz6Pbk
ZJ3VsVO66fS5Jk7bYbbKh5tJ/JZH8+e8MM6bGQ8d7vRGu+7pfW2fD0/eILuuR+fnYfasOq7VHh2n
8XIqPy+MWrY6dI/t5uKkXp90fr40ms10y8KRl52mU//9FEe7NCpePSn0bpYYhMPl9eQrK7WznR/2
ryytGePnVD/Mrk/vVludNdaHl6g9Tfbtw3Bul8rqli43ZqBYu2mrPWxHpRSNeq496Ntuc7kvJLNX
60yOejyTJ9nhdrHc60xYdsOfbA+sqzC/PTOuptIzpqPtU2o4VulZVtSzN++OvXGxLbBytXY/8Oyh
5Vphu4ElbVlslLp5OLbtfrJqmw15vrwmTk+xztt1cFmo80455Uu7TYvbg8Crha71lP/J+ODN97ZR
todeHNgr2sCzynKQ8rfFy8Q+1aaT/iaWO8XLpL9O5P57ngeeevZKp5y6b33p1bZwi9z3AjuoouuE
YRBYu5bjnFpWOGrW7BI/Peh7S8G5CO3Dsuf3Cs+/Pa2n62nYeWFv83HWub5FDd+4vr5KtW3gOWEQ
5nOltSsPhXxcjfy1GRljY72LraSzDJS5LyUbbrjubdV6n/fH+UjTRF8NHClrrWoj11/m3np/SG77
YZJLqiEW/WJWLsLGRdsLcekIPwzLyTmXFtv27tVjt74cKG156A46Z/W1liy6zZQ3L+POwWjurHhf
eMk490IxNeavb1PlfSw2iWDued9w58ee7u+DlSpv3H40u3luqtVk1g9XL0+NFxZKbNKbjCzV0JX8
2h7t+zv9thlw2ZmGx9h5LqKnfX5JN0zrR53ZyBiMW+VqVrNvp+s2fht0grVjqcnxbTGSG2+y5TzP
01txbl3YKrk0DryjiI5bzC/SOH36YCiv6/7OT/8FUEsDBBQAAgAIAIVClUoo8YTSQgUAAM8GAAAU
ABwAX3dwdF9jZXJ0cy9jYWtleS5wZW1VVAkAAykj+lgpI/pYdXgLAAEE9QEAAAQUAAAAbZW30rPo
AoN7ruLv2W9IJu3MFmQw0S/J0JGMyTle/X576qNCjQqp0Tw/P7/iJUWz/gCX++MALeA86Y8uRf8F
P5AzD9mPd43F338ef0mWACLHk0RIlPQfrf8Mf/8RJfdHEiXiR+CFv3CZZEiBY3kZp36dgyCC79KT
ADOo6phzxJws9m0DTjhvdLtI/dlIbs4ZpyP2tkNJ851+1EfdlU4tJ2IHXBdytZ2+eFbwSAQZUoHZ
ig+Y8tpuHVVSMALGz9ztP4j32tFbsgczSl58hNpdMMesJhc5FEuGsdCcetl3dHqgjEnXkFh/H0yV
H7mDnvfAQmpvz0mkXyw2IE61ebEg8NpKiHEigk4MfR8xNdlFcGLl/UTkUw+mvrlpHFSxhqDY29Tn
K1lRFmdVexQB+Xr1qLsqscJ0Lwtq1jQMo4sVCILuJn1sM09+s/O1c6vtNYpJWedjhzNiyPrXFa9W
5rxaBBlBTXB3zTsFtMSfY5ac8DDn8Sw4jn6KEWXzrWzwSybQ5VS0aR82B0LqGfDTkELON/2eNrZ0
ArqdH1Avm1lAsja6vvOyvvaZeIoJdjdYj3LNp2EkGpsWButSkMQcoacCbsQSZbNgjwNOx1SojlUQ
0oHb2rZy0qEM3tGRnnVSkG2DrGuSAsHhZ8LLBtkvJcPtDvGyEu/Nao2M1oEA+UoIz70rW/xa+T1+
tQU/lEggqnn1Nkkq8aqPuaycCb4ha3YsNrYOyQU93OGNSlSUDA1U9Dk4ZeZSalrk6jFTlRdk+My8
4ctB7G1f9zyLp2tbKApW6wQREiLOAS+sXEnL4wExwrny0Y56z7jAwKnGb6D0vIhvhmRThQtynJmX
Z4xO9kUjJaVo+MgIWdsEh89wPRNA9Mw0sB+v+lJNu9R76+vG3cVRQk7cVtwHWoYlj7olQv9svxUq
9C0Z6epz9P35IzLjCmmvIJfb65B1NXjyRkitdLxHHabm5cEf1L2/epz6Fj2Cq2m9BYAc3X2VOP5d
LZXbMT1UUsKW91QxW7PEANJnj0X0+6l/yix1hC27FPKqfNOplyLzaMidbDGYxjgOxQvXj1AOKr+j
KZ/gtjw10n/HF7xnaft2eEsVz8seVMuYa707Wal1xMj701FU0vidw/AWzaBYCXmv9hS4ft2Zx5OZ
0IBqvTAOQmswNHbmPTpyXUMwJ8cbZHmUtbq5Jeoi/K2bklM08hIiaf/JRw8jfNwqluZ46SnuLTxy
EXMPu+V8xtPikEBdunoNnS3SDxYZVkCh0zGRpwIOaBETJKO3LV5bXH9RcX55d4iVX6u1G3hSCnsp
eYIreQCa/LaqoZDdATifoPDiE+AbA/Wek4DPvNfB8cT2BSHGOWSwKKjim8pMd1lG+0SsRSRYqs58
oY6vfmlEnHbZjzIKmASR8OdC9ouC8WoKRqyUihHofQyj5IpjM2/gLcFlSfjVh0682rr//TpKh2wR
FbUuM2wChaM1OKmBZ46sfOtOfcC8Ug0b2oAxGclPbfMHa+XohuHSKiAhKYRw7mqeHh6XEg1PHqJe
fPZYKsYQybfuTdbbO/QLGOW9RZGovbQzsr6+iwrlh7NPrOMVX1iOI1sZehWJZ3ZDj8LEGsOTnIdt
s6pfmfyeTHDAnhrzZj8VG5SrmU4+eyuqZhUyDNPOE/a5LpGy0UvxGmLLRUtPe8ZsvVTwhCNn2hHK
kXa0hwsqN+5e3kQJBPvALfAmo+Fq2r4U1r3A7+9DfSJQ/sqSW9GfO1rDJP/bsmTJzqu4YjpyieH2
990fSj2ah2OsaKe3jGCSzvHPP9D/sCRZ4v/H1b9QSwMECgAAAAAAHUSVSgAAAAAAAAAAAAAAABQA
HABfd3B0X2NlcnRzL2luZGV4LnR4dFVUCQADKSb6WCkj+lh1eAsAAQT1AQAABBQAAABQSwMECgAC
AAAAhUKVSphceX8VAAAAFQAAABkAHABfd3B0X2NlcnRzL2luZGV4LnR4dC5hdHRyVVQJAAMpI/pY
KSP6WHV4CwABBPUBAAAEFAAAAHVuaXF1ZV9zdWJqZWN0ID0geWVzClBLAwQKAAIAAACFQpVKmFx5
fxUAAAAVAAAAHQAcAF93cHRfY2VydHMvaW5kZXgudHh0LmF0dHIub2xkVVQJAAMpI/pYKSP6WHV4
CwABBPUBAAAEFAAAAHVuaXF1ZV9zdWJqZWN0ID0geWVzClBLAwQKAAIAAACFQpVK589I2zcAAAA3
AAAAGAAcAF93cHRfY2VydHMvaW5kZXgudHh0Lm9sZFVUCQADKSP6WCkj+lh1eAsAAQT1AQAABBQA
AABWCTE3MDUyMTE1MjAwOVoJCTA0RTZFMQl1bmtub3duCS9DTj13ZWItcGxhdGZvcm0tdGVzdHMK
UEsDBBQAAgAIAIVClUqT/fbmBwUAAI8GAAAYABwAX3dwdF9jZXJ0cy9sb2NhbGhvc3Qua2V5VVQJ
AAMpI/pYKib6WHV4CwABBPUBAAAEFAAAAG2VtdKkCBSFc55icmqqcQk2wN2drHHXBhqefv+dSfem
N/nq1JHfv3+OFSTF/OV6zC/bVULGF35pQvLf4zdgKIqwMArLMBrHOAIzaHjpd9+u0vcxqXXkiYiF
sJPseAjCFVHcPuWGNqmtCi2M/jg8kE8hUyoITrIwhiz8c63VaWtbdOB9ICQQ8j5ZP0DT/DTXkMp7
iNykFT3xFiL2erNSBzgvRg3fN+EZfHRi0qxYSpMUKrGNt/lK8qCVTbu/G2w9NOfzmraGIT1TDSg7
9jl9gm8gkw0uZpo7JsC0fCOGkY00mTROdX3SnSJCnOdWecHQauXLI07tRiM4NwY/KotM+QN2gKXt
6JM4feW0vDQhuEXt8+B1jTNHi6/PIKVr77pL1YUPkvoOJtdrOMfB/OQSs8qTNyBXQdtXZoHay3ys
6GDQW87C8MtIXLgryJxoRdO8FJ5xGJaZ/xN7y0bHxOdEdRLFeACET6C3zuSjHaeLeX88nr2HFARD
+cbaid45/rsMRIQoYEmFkGARJi54oeqhGFgt/KgDhFzcd2IIMPWsWPqtl4c8zQWWghmWVkbBUrzf
zMS0DNC9HJ2QG1Q6g9IXSN7rP6acAHTiL8XnQvxxzMOmx1P3GK6YSafyHZE5p6wktBgYLFpKKvTh
9ijaJFCLY+O14z6YJAKQqAoMMrz8Ges30T/I0osMnl0Wqt+jyHZ57/b2FrFOaueGq7n0uzL20jAl
/qWK5yMD2Vl1r+RLoz+M7yMjQUl7ZKwkK8VrJRNrkum27OZ8MSBWqhFuIVYfsI5ao0UZfFr5Aerx
k7GIwNWJwFwvQzo4OZPgnutndWj19dkXK3x/jnzozoN+HJSaS1+WDIjjPYkfkB64tsRIknM62nQf
9tmcCE2z6oquAhFDszKHX2+ut/ZGX25RX/cMG40Th7vcKlgHlzgauA8kNfbiKS3MELfO0I8iPJwC
e1+QMkYjNxl8aXwNOvAK3NJgqimahbb6v8QdiQG7H2ihuep6T9SI5FdfdU5oOPaXpwVdLrvqTrpp
1BFrOmBlN8xIAv+sm8LOLcIykrMBS5e5EZggdiw5I5QiX0RGbFEcjfnLxgTGZi+LlLBLaDg/3zU9
Ws75G2ZZqnOVrgaID5jwlE1O/GoWb6SR6PUW222NoDyenE56gb2s11DsUn+Qp+/mCGCGz1zgyIRa
tA9KA/RzEb0Ofny8OEaCpODVeGPjeW85OStnopVCGY51Xqzw5n8Dt6SxeDCOKGIUz3ol7QuoQScu
RDZ+f0HH11bZIUOOG4bjFjb9y3hseG/sxZW2Hl47ouHKpgeWCYYSRYZbx8YWwHZx/mmZTiHqaaDO
KBxADPT/+mIRGSp/1oTQV5PM6nQkLZWfakGYI3U9fZRvrDeQE+VNDBe11NjD2UFZNMei+9JNMp+D
m7wvSWk/bq52v5aSF8GFW1J6fVm6Ze5PBvt+gEXB3vXxzJ1bpR0+2XBrtw6FWCjXw4GtBx5W4xPr
GYgOESPHkg+5tR40vjSCQiJQL4Fk9FF6DX6QGdhSMQjp0vthovFAl++iIpha3edPLJKrxC/1YR6W
OdwEclrIzaOfHi+BRRS1O6CJ5Czjn5YYtHszFYg2pk9o/XTmEUYRZP5EKtd1fIliDS7SGtSeVgh0
J9caBnDz1Xx6SUIhDY75Gs+ITzDOhbZtE+clsw5NbykInfkjgvjH7F5mffbH9c8/wJ9ZEUz+/+fm
X1BLAwQUAAIACACFQpVKCl7MY+cJAAA7EgAAGAAcAF93cHRfY2VydHMvbG9jYWxob3N0LnBlbVVU
CQADKSP6WCom+lh1eAsAAQT1AQAABBQAAACdV9lyq0gSfddX6HE63Ldd7FAR/QAISWhBC5Jl+a2A
AoHQBkhI+vrJ5Pa45bbuTMQQDoehqnI5mXVO2uZFlcZpyCpOW214OqxiP//C540XZXrY07bU/he5
ir99Lvi8SFne9s67gBewLAqiQnCPzFX+uC9N9qw6F7xt5smhSKvNjrbLDRMVdQUvc9909mFxO1bg
5fOQW5ZntGp7f9Y8+HHMWRUfit2PipdV+XdsLE+jtLp9fsDHO1Rti8NuTtvmsWiLQltQqEgoMdoi
EbR2b7z4dsCMK160aXvMbv/9gH8OMh5WTWT5IWT55lBW/1xtT89BnobtIb+13X18oF/8PSw+IFKU
7AkO+ABCD2do+18ikfV2kFa/fdmGz/gQnfNz+bCFftuDDyHUkCnjVOFU5lQKqSpRLaRBQEWVqiIl
Io1VGkZU5c8tMINyHfcIAZ6SOA0YlWWqRDQ28DUWKBdoLNMofm5BDKgWUUWiQWMnkimBGESqKVQm
VNOpHtEAvIRUiJ5bgD0RowahsURDkTKN8hhzYYxGKkZlGFSQqSCgqacWJEiW0ZhgGPCjqVQBEMLG
rIIphJCLTDlkJ/wCB/AFyXIELZIoC7BxWEg5mCI0iCnBPqKKgh+fWkDcdBqSJuaY6gJlOhrhIhUF
qgo0AkwYFkv9hQXILo6ormGyuk41icoxNSQq6ggjRAimAKVAw9I8tcADqgP+HH1BvpA7wChFVJMR
WJFjpaA0EAAYf95RIkJHdNymxJTFCL5mUAaBgSkBSxlElEcY4VMLAJcGcAVUgZ1QUI5hcJlKBFMQ
4BUaVaMap4w8twCFAC9QREhfb9pbF6msoFkIQ5SxkaBJIAXpFz3JYEnHIoIjaH4wAqcgd8hLl6jA
8G9wIQU0DH7R1TqGDb+h+WWR6lB3g8oh3g68FFAFqAXDwKD3nlqQATTIWqFC41QEaxpmATbBoCxg
mQQJLyz5RU8qzc2C5oGyanDTAY0YY9AZJTKNRRpq1AixQPEvcFBk5Ae4mBgn9AZHO1BEAASuJ/Qb
QB1BkzP08jyLCDD8tuJcj4c93wN9qooiaagWAiFE+JvJ3hViXKQ2v1Z8j7pTfjX/17LFSmBDG5ar
gqX7qqTtb75sk3bNke88O/8fnm4IOoKAQABRbr4Z6RAko26XmoRaAl5ju0NNA4sH9k2b2vAdGs6g
FiDlUAWos4urmvbMr3muNkj4t//tectvKdCjjTdX6+JPx8GW6ApYC1Gilo4s7RjUgdsq0q5OLQML
ZNi4rWO2ngWAbpclS/izXNMkrUDRPwX7d5DGfXvOj+coZShLvzfnQabS44YXO4j+mQ8Haxfx6L86
W4z89ooHOEVcQHkRGAQjZN/k7x8lM3NQaogvvfC2x3ZPE/F8+qnNvzevdV3/8Y9P1/2PH3s9U6NS
kfK63hanzUXU2bNt+YX/UHMW/fHdqvjkm/DH18ng/5qAQAqgzkClRoCsTCKkPeBvTUAOAEEA+RWa
RtAJXkdDxEv/eRxoOFSQMpHSooY5AtypAr/q+D3gSO1IAxIqpKwiSXwex7nAQAkFzkb7IuUaFUXc
AxSiRkhIEvtraohBWBRUvM/jwA0gXAHBDcBhkAgIAgxVQDwQNigViC0wcaijYus/6eqB1HESaUg3
UnAJ2DoANlIxhRD0UEOVAIIRQoycKwjCoy7BKixBqAqQroG6h1zYYAVogEqHwFuQSIjyAlEBXwLF
fh4H9gXFBsswkugN7wJ5G43Og7ZA7sACPxUbQAZdEsUvyiw2WmpoCCCOQs00AeKPkt6ABjGQJgYc
TyBxwOoBeZAIsYkfSASqAKQLl1tpEoeDIGUBeAcjIuIGB5mA+z+Pg3xBOaAZoKCAHiQCMAKFQ+6q
jnoeCTgshD+hACQZTlh/B6+iAKoEmw11UsXfvMEQMoJpAjTQUFEVQxkHJYjzcaaAHoBxT9GwZEzB
BgDxB71iKvoFszBPwUQJXY1VIM2M+TBgik2rQK21psdAQnUVISIaOoUlmB2ghWAiANdgDZpQefhX
BWQKmhmchiqmBgMFxEAU7AE4BTUCWEDToC4ALIQB10d5gA5FkuEAS1jrBz6W03O9tu3MF27Xtc2F
03xtjV23s7/btnngiVm7lpm4HWsSpGOT9Gz/1PPdQOrMHMuul+bYItfe3fywEu/NMsdjZx/lrXUq
1EGvSz52xi3wBfLx7pHwbvJuTa7e3STjzLl6C7ced3L21zfh8VtrbM2uTmbO/mPVXl0va7Fbsp5x
jzoQme/Wndl6MDx8uJtL6JkQjTUzO0niTE1Yb5mzgw0vljnwz+9bWV9LN22wc22jFM4nnok9rXw5
b+fRy0K7yvEiHkrC4jwNlqY0EGb91GudeR1x7zTT9eFeu99OQnH+6Fo9z9sV9VLwxPfRneVxf+BN
1Oup0l7W1aRwh/fdcqSb9tuqbJ23mSkUL9bJ7qTuqu/zk1Jmsdjvupv7Qhkf+LBIt6NYUeXZhGT+
27QjkDpVjHB3vZt57bbC/OWye99VWaenXLjoLvv6aBVMJzmf1aeNyj1JTaQiFxeyf062b6+FP4uO
0vj1cE8LTxed1qBP3OR6NM6Ly2g4WB7k5bB7Wt7U6cW+7Q6u6LOZ0HPH+YAsD7OtM3HEsbWSyEaV
7Dgjt2HLmo76+8H+9W3gy0l2noSdnhOtJS5NDpvFIrTN2jFNNrH0jm1pC3OA1erPx46ZmdgXvZYp
LKNOMltZ1mI2m74k5du7d1oEw2Jsi37gviwTXYzuZtwc9MdOr2OuEmsebvvGq7TJrq3QnsjmeZ+P
L6myGdRrMTNHzeaZDrUd2xaHGOp1521OcsusaztZu8N6Db2w7ONKK06axbnVD+to7Q6CnpGtV9dD
IHkkSQQpksLzl29pVw5SUgXZ5uTt5veWt/DKSIqKcN89RJkrr32lDERvE/Sg7yTf7u4355EvlNFu
WXm76+bD/rre6uzh+N396iVR0PN1tHtsa9Ozku1ps017Rk0sc1Z2TXOCreyYF8mKd4brHab5dfZe
HBx7YkrHgRGWK364C7YvW8VqoL7Ux9vCWbLp+3anXdYdX7kNpy2rJ3QnO083Xt93Uq9Xr2WvLq7v
fdWNFkc9u6QSSeIRcYV38lqNPkZ1FI4W83qu+N7dvt6mrVW2k1xuZgdjOhzV9233rdwfze1ccJeH
87Hg0U5488fWrZ8OyqHsv/vxVhdPdaIsTpmpnz5aff960e0y9HL5Os4v1kF6EfzTcBSoTjGZcn9e
LQd2p8xYfzF/DSeZUBflINskh/5YDF92UiuXEpanC+di3RWlMt6n6qrOTHVHVp1BkL8u6mkwcSWb
RD1ps9mQfr633evd1tfOG8uOk7p1raLZcbZUruLNPzs5DzZWkJFjZCd//vmTCx2v850J/w1QSwME
CgACAAAAHUSVSvraCWIGAAAABgAAABEAHABfd3B0X2NlcnRzL3NlcmlhbFVUCQADKSb6WCkj+lh1
eAsAAQT1AQAABBQAAAAwMmI3ZWZQSwMECgACAAAAhUKVSpe9Q5QHAAAABwAAABUAHABfd3B0X2Nl
cnRzL3NlcmlhbC5vbGRVVAkAAykj+lgpI/pYdXgLAAEE9QEAAAQUAAAAMDRFNkUyClBLAwQUAAIA
CAAiRJVKYFbeNtmuAQCVsBAADgAcAGFjY2Vzc19sb2cudHh0VVQJAAMvJvpYJiP6WHV4CwABBPUB
AAAEFAAAAORd63PayLL/fv8K1alyPh3Z837klivlOHGSynvtTTZ769aWDLKtjUCsBHH8358eAQaj
EYjRA+JTqWCMgZnp6en+9XMwkYcI/mHPh3//R/DRySg9IgjLp0g9JfgpI56PJEL/7/3r1csL7ygN
s2SS9sLsKIuTWz/rpdFofDiKn/XDOLg7xgh5ry8uPh3hQ/wvj8BvvkcI51T8D14/FHmK5MOhgtGo
F/RuwiOGmD8IhtFVmI0Pb8aDeGUI+A7kYYJ5jTH6SZj5w2Tshz8jGGU+3NJIMAuPEu1pQWqMs0S/
aDCKw8Pxz/HKcjD1sBC4wiDq4SDTEfJHv5cMx2kS+9FgMBkHl3Ho34zHIxv1uGKGeMp1vH6UffdX
n/oUET8bB+NJBlPph9aBBSyUK+k68IKUJUs+/DtbGVIS5CnOtx/x78wfAzv4izHnr4xSyziEMi49
xlH9tUVXaTAI/dtofDM/bb3r6Nn0qf9g5cf3K//3IPjpB9ehOY+rB1ITjyPFdFNkBz6exME4SfN5
TYbRP5PwTf8YPzndfm5wvAQnWOwn2ZjGiO0p2bjGTWxpPbKtzkvBvChjtMK8dKs0sxFMMom2n5hF
kBv1NP/NpjjMgJR5Uoj6dGh+f0Q1fbaZDCsa9KFey5UnEAELSdU+sgPliDvz6TqVm9lUn8TSI5U0
n66shxIgelERGTCBpXZd2ZJyz0Zhz5A7+hH6P4I46sPTZDh9X77aNOxHadizQjSMBYcH971fmsgq
G5jlF1cukBSeEEg1SuRyZU9Ui0ReWfIDcvu5SDgc3YxWaS5hVgSRLqZ1P5lx4veybGU2AAZhYElp
JxTKMjOLNJz91UYaI4mqQaCuN4xruS/7xSuBna72i7to6xriGWvKmlJUFS0TztGuEUIJ8OVKsZ1r
7RLgq1QlW3kXZCOS4H3EfBQkzeZ5YdQ9JteS159Y8wTjVPG9JJgSiLpObDqduSYAoWyVhRQrYh62
H6UIo8yvN0E6DEHjFCSg5hxkIBFo+5FWTI/R8HrV9MCAPil32sPhjyCb/fDHQTQch30/uBqHqd9P
g1uQ6bA3VsJJRjyMsPugo5sojkY51bKjDNRoGo3vDs2ob/JBp2+zwm2pAeGgKtJn865ttjC01g2z
RxqOktQyGuXaGBPUYbyqaJ5wqQBwCOdtWwwEauEn/PfjaGAOGphG2Y/rgrdXeozJRpjEAiuE1p6Q
LkKi0qGimjYlF+cgaS6Qnhm/8TFA0SeTND5egtHBsJ8MYAd/jg1SfDL9/a/IiND8XX/NRehochlH
vX8fEFSip6c4lyHOGljEJE3DIQBq2Gsj2Ve32UhSIZpSuzZKPAMS/P4Rf/5E3r/+8vZMnmn5cdXl
Lj1BkXKdxGZYbyC1H0zGN3apxDCcYLy/HDNM/Aw0c/gEGOavUobBSOCW9/EN1n9cvOMvvpw8Ryfq
xVfLPrpJqG2tsyUoZbYVODzqBUYF3ns8i9YayE8sKFf7iJgEnELaBeHmzxa0W6EUQ9gTAHsU+dXP
gwHtT586Kq4cP2VHd2EcJ7crWmYKCz0mdcvH7cVn9BV/Qe+/4udf0dnrP4vHTVK519uUv7BhmxpR
cy2cSElEy/uL5Jfz8/f05SlDVKuLbxZxuuJ3M3jq9yxMhyD+diQgcpXJAWBz+suznkIt7/AfLz+c
fT57e6FP3mvN/qCWHZakAbm/mM51OAxTUIVGE47AeM5R37PLpH93/OT+RDClFcYYHtCTUyCZQYgX
d6Pw2Mz9aBSDPfnkPE+TyHfhXdLL2eT4aOUkzc7PAX1RJK4AY8VBQK6eRE4BnDXo52ie1waT3Fyc
+4k3sBxpG2tf0HdKfflNfaXq67cvn95bWI6j7llOUwLWPyUMNrMhnsMW+sIY7LHwCkaaN3OAsFBt
Y5W3p/LNt0+v3r55yQV695rZdBn7pYzy4tmlpGUivj79k5+LM3Ty/Cv+QL9aiMgFa8tnohqS1lhx
9ThVGpesStwa4wpEorKpb2KIb/9NvwK5GZKYNUMkXQnLV/oi9DiJTSXFTXGkrAT88DZpu3JT2q4U
wogx13G38ZhiRKjDQA8Sx+/9VDaHJFImqxPVGGLrNEBOSCPDVUq343QHh0hSKbBAxMSfNp8iWfHo
SKMWKHGhXt0FccDxVGpJmWYVFmSZNpe0+2ljJKggmFFOaJ19WEX/+ZJAZagafBxcJuk8FJ8M4bH3
PRpe358fHxjYemCJEh6huvGR7YMx5RHR3GD95HYYJ0HfrHQuIEpXSpGGwWUjsqLiNMqKXgT1BGqF
DHayw3hEqXZXXiahGYcJEM0aW+0oTa5Tk/Bg3WSOPSJ1C0u9H7ZknZgKUH+csxbH9vGhkTSrOpCa
k6VxmwOTkoG5aJPWPitbL1C6znqDXs98/Y8oWCRZr2ZsGqmMK6XYVlmfZUB7VrdZHGWytVHL2Jd7
lZyea2sKH3rg83rGAejEdaFN0KYEDHgwBalaG/PCDaWGUFaHY3tpkN34tzfh0B8GP6JrsFZA6Ae3
wZ1vYrn+ZdD7bsX4knmENCMbXOfAYA5MYtLdJEp4zXjUENo5LYiWOyUFBSjge1LxWvwY9k0KQRD7
kzS2W5cElH8zmx4ORuO7NRKECweQsVXlTaUanxJZ8SCxq5etfj+IXgwDIOo8wG14eR0fJWl0DTKv
F4fB0ID/qyQFitntZUnMmNgFHTUVH32WAJOmxTQKorALJaZWEUwLNjEyEwjGY5jeAF7MgmH/Mvl5
FIz9aGCyEf1sfBeH2U0YjjMfPmJ8y33raWUGWzFUd+tnqRHmQF6nyWTYtzmUqfFgPPS5XQb9taHr
LrdGEU8ovIf8Ihlvh1+W8IyVc8qqf7SA8+Vi9swmdRXF4zAFWX4UmFSaWY7yOvjGiAB8wbbBMXHS
C+IHQDi05OyABcWIB8aFrCNfl6HuMxNuKq508eZRUDSxpv5WQmQtlXWXRnEc9UBhRdbmE8bPVql9
ggsz9dIEEPFMRuecs0n0ENMOowEmWk/afOUg5bhWO4iJcILg24lAXKAqnq2XP0fASdnxWRodkNMD
+DSGB5jkQf5FEn5gfkBPCIEHbP726v1F0eelJd+FG09SMNY5xlKqKot9FwAmeZ/0o6so7G9cMjIP
tHzJVMsdLBlrhIUynkvd6P5SeODli+UNeSUeyIzSUIA0BZ+AWrYQvw9rJQ4Ho4eBa+ERD2uMRdua
zSaWyvQaKFusBKeNU9Y3UNUmmNS0uQxuBHrbCm9Ka36wMi5jRTpDfo3Ed9pKAtdc7g74WSAf03yf
5iMYafTsY00UAyzCsGrmsJlaN3gyGk+J0Cf+wQt0oM8OXuADhczz5y/zR5I/8qXXT/LHQimlmSSi
opXZ1Z4c97QWe8WwEut2JDloUWMfxluYtMYhiBreuCuwVIyMq711EsSNbFHBPIuO607RAGZJG1ZJ
I9ha2Mh5JSig9/jc7Ki9S56mBafujlwFRScBqdQXqB5qsXJ9qTnOPLfj15o4ADDc8PkbhuPbJN3+
+PmfTs7PV+mFDXPprpAPlWq/iaEa2q2HeT51JGVOOrA6OBadWDnTgAGltIFUsR0mIytJW9YsZ7Bj
5OAUdlUenPL8+fODU2zTIAI1RMyyxOiz07ff1OeP+jfAafTDN12MhVVLX26KfQDN7hH7WJhD7YY5
fGJhD1oDL653H4P0ATU2toNDY+HrlpCqoYWfTS4HUZbBG9aCVEylibu1GJ1aPAXK/DMp6UeMtWQV
O0jUOari7Sv25xf66svv+qP49vHcUrTKZYdHtVKvvXoIbpUb1sVSMGoXbGcgTL6Ha+A2A7hNu3MF
CdIFWC2egNJNAFQvZR0G7Ie9qB/eZynAkKMEuPBu3n7HdBy3Z0toj3DSDXaf0gBOaT9Ms/t+6AVi
cMw84ZRS0/YecSn3i1KCmrhDM+C5AgfNaGMNcDHgI01lO2It75UCVIl+bHC9SLcs5G2E2TgalKXj
6jwjx0WYJsn3KLdgJkaD/TNJjMsYmGMyz7gLBxGgsjgZWr348H0E40ZdpILk7Za4bFtRLe1t6dHD
oKP+a4KngmPJH1MtigA5Rf67osGCSyR+vfIbITRjncEwUkNSLiHu6SvTBMPcXWlNAVRGW9JOkiWd
zP51yTyNqut5TwLcOPGtTQLhDGITysIt037mQpOokTzV8naHxKUOZBPhrGmxmFJYFVJ8n706QtOW
bXdJ9dePlKiP5MO7z5icWNxssoqoJZ35TacfcWixaCYvKxmnZHvENYon19FwfewSm+uhWKVeqGSD
a+wyTnrfK2RWCtNCVJOGNrCMib6+/e3kxRt9/vwDOX/x5dzCRBJJlzlUsRvS0LRqt5GbIQ2Lb0Sg
ZOH4dPqipUDcNzn2lfKKSKmDwThx7sAqKbUBMTUZlUq0w75LSZYzRi61FpAnK/UvJo2k014FUWzX
sQLJR1VSDsBS1z0jlYOWlWoCSBO3kTglJO8aqBOm6X+NQQwo6FfQ8PMWoAWdjpmkLSs4iT6fqE8X
J/jdOROaf7A19dO/Mg11paQXN/2clNScaxDj1aKqZJN6vl6vnikRTLXMIhf0t3OAQCfvNH+l0O/C
1g2tM/nOMK6FRsbTRMaoFI0wYso71D6yfIG3lZAt773W715r+votefEZs5M/nlv23g24FezaOAzS
dZyOOa5kQRP3WlIqayHd6OoqzLst5ZcezVP371PPTN279Y5W04CWOW/kLrEEIWoH094NliCVLiZt
erEtOtepUG1ZrtPijbWpsliZmJvk7rIjj/+AevSnL/hgyPpw3v62qmRhboPEojMrBLXlCtmUJUQo
7sYNtHYihImK6QGkeuM8009kQ+M8EAqOwKs6W29ISsFKYVg77wD8YapUZyzNeRNYY3M/QsYwcqcd
KHkjEoBnc3mQy4hkGN/NhIS9ww7La9UbZhpYdGhPXeOEV7uZdjODZJsYBEvcGYM4ybzFNWn9lc5A
tuYYnFZMPqyMeaMybyBQT3DZFbTFLnZ+BruSpH3QDvke+Ws6vmnD4xx1D2AI5USAOqBYbQQwwEmV
AAzLQ3ZcIkm6X5CWUms4VoQqUmdBD1s+zpakGN8ByBQYUWASSgTXVZbkkvBACrh6vmTtJO+zzJL4
FifX1+YAFEOieVcdc191DQNvKYi+3tSzplpJ4klGSFtBDjOfdJb5BygpjUYjkKh5DtggHJtub9N3
BPFtcGe/hTKPwlB3GT7shbHfnxjo6pvgxiQFvjedsOwJpMRcu1LHoJ9XEy1uyjFOC6OGj82FxzbR
+KSXDAZAs2PAkenC3+8vMVAxAlatAKFWaKpk/4qMrKiqmFvXCtmAPgWiPQF4fHM8/Rg5/HtUpCBD
LiHEuSKFWY6jURzOIJz9NmmCjc2xo21aRBSf5e+AtxxPz1nBySTMhSVqV9tnoHEFnofBseJ6V7PM
8VK1s4lZjbDxwtA2MzA1D9k4Gk9AWfYDkJhXaTLw58LfKtK7Ybqwd5NMDZkZ+5VU0iIneFcen163
dCLMjaq6GV1xf4WMyUbLJr1eGPbtbgUlZcWemfUtJ+nkm8rmjVuuQELAygxnWZ2+BFbCGgjuLeqs
KWJ2M4ZQVhdgre9B1kWgCzMt+K7BUz+8CkAb2dETdfR4bcMyWDmcuX4ygP+9iVmzD8tPo0sQcpk/
nMSxfwNEiEuMRqW4R5xCexuYZ1Z36qJiWlPYs70taGzpCUzaEazlmcCYYd6FlGOati7l3JwoLWhI
gXlrrKzQTnShYJ2IXqVFu5pqSkVnT0B1ZiSoPWnWzYlFTuGNrZRMh0mQZSBzdmkWEW1tF1ayM6E+
b7MguzisWLr74ffRzWuyDEg3bngklNw1xByGP0B/WQEmdgSY21NCC4r2CJrlNCkAM+5Va5zaCbRQ
qqb+v/dymfQk/+dNavfRcrC7Ne7mOBCGHLG/cfFsDElhSQUgGNWAGB6YWMTdIkdi7jIquQCBIVWx
zY+rf6tAABfHM+ZsH6oRuFaNaso1va6Je6rxXkYoKQjSTgJOJZakBBmJFWE74fQ1sYL7VAJ7vIBo
xdGezXnG0NPPlU7bPSA9//4xMJ4fXQ8TOL02o9BefWcEGhc7xy6JP9fZ08tvzGVw12lgz9WipulF
nQyLURr9MId7nv8H+1zWMxpL0xaX7ROmKaVVodhIeILKjoqaqIuBbEmBngmouVyyFzFK00pddOLB
ELtIFWlRsxAl1J5gX+7u+ypxDvmXQd9fFoiWgRkDAKkFaRc9bsy2da/Psue4DmASgTXCjcD8E/sk
4u1GqjRNgPZTzhbaMmBPEN5VtWidFIgtMoJxIyXxm9N0sXRKFWpFALFOdAjVeufZW1O1Wpq9RfcJ
4UznasmA4ZJ0ovOx2JfcDNHexlTlnMkwC67CMo8INfUaojO/sRGWBwSZ5wu0pKgUAHS1aRdQDoUe
4qgfUT9Mjlab0AHNTaE7Uztdj7kkSFCiCayr6noWuLC4IIoY2umCJOdUIsqYYGvTmqsviWjJdstz
guaFfYIzUn1J67jOsaiusRVRLBRhklMwOqpyXTDpR2Xr0Xi361GSCaVBPgHrVd+hNSuiku8TPl3I
5QI8RR7nzRQkZ/CrvdpdYuaWhj3Xx9miADPvhVvesIkz5WHJ90QlU4ob9szOiFye1KNlY0k9NpIb
tsrG4cjWQh+55GqGPwyB80GXn+fW+cDcqZ6b5tbL4YiHXUzzVj24sbnbY537lgnZLUyzIjHi6Klc
3q0FHR/uVZBFhTaLcP6VYrsP9xaig6Jii+py8bemXx0WHAAvae5QPPDf926CtKT6k1BTHiz43tjO
tClWmyt0OynM8Z39YQEL8y8yvBAGgwP6HJT/7O2g03+/OPNV4XB4irI9nfBtNOwnt5mPCcfFeXOX
eS94eZ6+e5tGgJ0MX/lhHOYvEWuIm2sQaGpPSTUZX9n21infoJMJHxCS8yP8tEyb7AtL+ldJchmk
MHvLLNtqDDG9ZWDD3Ya46p2ttYTefCplSgUOBeeqGdxXfiLX5XVLKXSTSifNAI5lUc+uargAquu1
7f1ro01SvA1euJTZrvGqlzZsAruvJcT2c7B8haE/ShOYUWaC8dEQztqkZz62geeVuaGGu9Rr3A4N
rD0KhqDEU3/+uwm+mPsVh1lJHoAU2K2C14n2BOl9ztGg9lJUp+hUFT1sjRAqk3LeepykIrOWQm1g
VMHxNmLCrr3CbFkiTbXVZDg+XoVDRJuUaNregKQ4IFe0XTlIV8E1aDztksDXVD4Qle0RmFoIrHeT
Zlaxplnmd9ex7kgCIlK4NERvgCTbFFATxTrO3phWQyhOW428z2ouXBoUbqMN58PQxxRq4lpL9Yhi
gVwrjh9RVIZrgejjipsh6t6pez/jTAi7uAUe1Gov2fp5MN9+dR11q2VY1m5GzYRp9sC2BK0zsnc4
FKb0BjU05JISyQf0p3+w3aKDPdGsxzY1t377WZiWlFxhiolbv7nSbfx5Yx+Jc+WYIjY/AiNzcdMU
D0yGBqzmdwxn/qy33gIp2P3h2lgqpG65T37zYN/PboLRmqs+JGt8F4e5r9va+c70Yq/TUnLGl/OL
l8K8nbC9JJvDweC4zWYbGGnSSBPsNRdV1UOtmz0HBJNHlZjDuOSPKXOKcUofUw4Loy4+11IrwJbh
y00ueDN9cDY1AOCcNHAfRy6usV0VYI+7ZE4anbe8jOFy5NlYroPpKbKWghhPqYNWGERZ78HleIO8
urDo+aNKYAHqpy5SKqiePNOyBwoBXo+C2F7ZSE2vDqTbo+lPG0mFiz6vMGIwGsVRb3r5tHVgjlVz
fpZl2q51KWJCO2mwwJVLB45tTsf/zgJ+x7Y4qaEvwW3TlzTk4NuCgTetmqo6GVv5/Z9r69GYEgae
tE1Zm+tU4i4O6iYCM9L6sWW2xTcTkN14uS6hXa8OsG5DzfEqtBBHWPyHvGvrbRxX0n/FT/2mHhbv
fAgGSToBFjjALs7B/gDHVhLNOJaP7Zzp3l+/VZKcOBblyBQlxZ7B9CCXHpNFFuteX8XzU/2DDWha
vO4sBOavLy+/PKOWzURJF+fDaxaankgXMe+e5o9+79a4sNlRPiJ8xYECpRQfBGYqKGIaUdpL24O5
5DE7waqBzTKuR/Z/I7tXTFyW+8tBs8tqHAI1SMOdCspKNCpaErKeEi5Dfd/O9r+QxX8jifK6HFDo
r1iuulvU/36drlPOvj+81KSb4JzKqK2JFC7gTeEC4CyW5t7+rJlu+PlOGBbtpJ6yx8PLILlsLY+2
RD3+oMhBFUbEI8MTISY6uGLRqlGryPd+hamvhYDMXCP7f5BuYlgXdJLH6WJB0EP+qZ+CLskOY6yb
oMqQY7gR6+myAfpGMBcG4uzxsd5OsMnN4pL+uIhBtvLragjebJFvGgB+FAvDk/ZQWWU+PaJIUL3H
MFPQVOzK0SI15x+qhW4dj1Z5/0Fa1F8xjfByvU3A2N1msuPU95qofLlMZ1tP11dIwexjup09/0Zm
2/9uqN2+zFl78XRtEVQaityiDtbH1Mu8mI5ZYtTWWVsLAt+L1BKZE7h8TqMqsw8iopwUh4vJeOnY
yiL297YSJEans6dTRj91mVJS4VDvOaU4+uRM95nwDapX9hKwTlf52pO9EsqRzLE6qor4UCFbGz5r
OnVDncBqMnyg1XNGiHK/kuX0P9lTCchegAm9VVUeL8IVQLNIQ7rng09V84FOVRk2zHQC3ub4xDHZ
7JkFx6AodWhlpYjOqEGqVcGGOG4xIONV+GAfRmTW1atGd0lDq3JUUXczqGzoLRy8yMvUQfJMiMTb
PJnOZulqi+quMCX8mU4niPPHLR9Q2ilLpYmS4lsNsHvNcZV/kil99fALPxu/58nHEJGmiAoEjlWN
F8Kz3CGFjBtzOokfJ09WQSItWgUjPuHTncxscrM00MDHUY9OanBWCKWUlKdzh+fgtLaj84J1ljl8
953ZXSVmX95Dwe6at5rDII4HyX2ipZq+65MkjJDORw4sM+UkU9IqaUJeWRtRYoGzkUu5cXUQDJzT
EYj0MpBVEMBAJwYgylYM4WQMtd4i4dpuWo2I6sXijTc5sqCEG9TQoKmbarATCHFsySoWoig6Ppr6
jy64hNBncTDtmoXH36dUPMaj/rS0EqC3J5QsUZp63pF1E6vOhFvMeexT8PPg6nYoQF/g9WnX2Qtv
mACuWtnOX4ClAIYIFihm5Hmch4ZQQblzEfPl4teuOWnz+vAmJylf4Z99pNF7FNKcx9sO0VjHQzDL
KVUYtQzD0LAwOA9xbWyADGhKF66oqOxjxtpbkF+0MJ6H7DEhaiI4N6cEOw8JxMSZ+B52IH9UG3cO
J8KdOg+zx4XruA/OAKm79N2VbkhUKg5nothsiGLb1SWg5HmrSvBD1yjWssjCa3DS1gkip2jL2htH
tCogkPz+OtU/hMRywuaASB5P263TKhq0QwaqcpVpMltPN8+NXS5Mh8skwpVapMm/X/M3G8TbC11o
WBH1VJuxyAA6aYOyqA6Yt6oOjSkqMLI8Bi0tCgp4SATz6EpHM/88xOUgS7XEO8WnlS6T6UP+uk0e
FtPln8l0OS9s1M3mzZBtgBxQLcd/inbQmdVb8A2L0pOgVPKhfFwjbfmLR/9aRZO5jekQ5H5ELZE9
LZNjVYroikt0gTpZaK0QAEwHGf++1P31f/2D6ghoutY8X6YNU+Am2gWn+evTTquO3EKFvQ0+/ewh
fqNv67jpAqQaJCkqDHzNE9AhqiJI7MmvwQR1OFMdkhj35a4OH3hDES2KRWW4HUzbmCFC69IK/jWv
14Ad0MznIVVH8Y9B1Lk8ROaHPfQQW22IIxDtmnVPf+lHdbpwaApx1o+MOSjlO1y/qOfTNAZxkFo4
KYXq2QjjIGHckwzWYrMFmkhvVRsJpU78UGFOt4TqOlVolTlKb+u3RSvFDBPI4sK5nrkEnAk+v7Mp
uuFOsVGJ7L8Ok3CXRiWx/9o7IRWMSmLseklUAsGeeFl1k8xTwkJvyilz6zpEt34tZwTSmOzBfWfL
qtI/rdAU/V1UumW1f3dbWsBANW5467pDJKCAyE6mm1mWeSOvSuIfddkyShkXXpd3HjJKWcftJcko
5URYULQWAdt/AfWwJDpD7SbYfxYzrOQiFZz5TUbyPENq/XZCY/ucreeUXN/+2knFdbqY/syWT96X
zYv6gyhSCr96l4d1YB8DE6lEFHFY0vW6zRbZ9lfhTSJ3rX89vi6LARpX83SRbtNqK4dHXIy0YFFd
j6rGtCFMZAjTSPexoI+DuJwoAadU0dYP+AgTHVsaRTOtL3sgdb/wyJMe0ZQt60bz59zLQ2pO30QN
sipKykVSoCj550lSF6KNcnhHG+NDQggeifmRIL/M/ASkb4CXjsSesIPgJwdC26gLfcrwZFqOerZa
X7jTamxYtO2MDEJjJVyUQWjBMd7zu0A9cZ/n5buohd8mltlx36UNCd2+yaNdCnTbgL0KDg3UkNLe
xwyd2FX228Mif6Ah6lS+hDKuUapqmncs2CB3eb2c3+wc7EMtZiZGxnAL9yGAdimRbZ7Mp/5pIQIM
utwmijXw2Z1qpibtkOQ71SqAjLLCkWkFbNyXZ2yHd7HninpeSNL4TqSZtJtq0F6G1/jzEMKCF9BY
wONzZ4MLJZFBe7clj8t1bfhgj1FATxLHW//HUNIgB437dII6l6qnM1unZHG8vZvHdf5SMC59569d
FQTzP7JzAkzbcVlasO7puxYQaYpQaMbX49rYrxB9IkytUfkOGT+khq1QQ9vndb7dLrLl02/r6ePu
27SoRV/nm02Sr7OnTyw7wS1MuItSN/WaJc/pYuUbQwZa0mxVGYPUPdVYTOi8XmYvRb/X/YFy/n2O
TkrxRF4OOdDQiGFxkszpbyMoAWHcfI406EoYo4U2rtHx+9d2un3dXAkmvv2j6rC7Kj+hXJ9Gen+w
TAQlLpUEMypt4IRWWlhpnfmcNt6SNl4gvLiQnumYtAnDrZLFrKZOtLXy6ndUS2NG5lbFJLMgjbSf
Uw0tbxSINmPduCUuRhgJjHOnNOtEW8sbLalmbFz5g6LHSXykKAj151SbljdqCtp0F2u2rGlYzpPH
fF2ZsfSroqk43czwrzSl8jSqVRtwqtS8vKD48wutdjgv4X0bhG2TLz3RaLByolQMTUtW5DrUrNBo
21iIqu8/7IfSX600rC0GFMlx+RtlNCjGQAndSb+2fNWiSMdLNm44mXNFQxGFMdL0I8s+YvKV0kyh
QhxXhmutUKBpK4wQnaRZy9s2xW2DGZfHFW7BMsVxHz1RfXjbBd3KuXHp1gL3YIRy2tl+3vYh3cXr
1kG5/Zh0W4OEW+ZA835sz0O6efG69Wnxi170ieMnRnn/57//hXv5+bKgecuVu7i3k5fXxTajEo8i
op6ks+fc149ZgMSeGPqMszKfGIARSKY2D+5O1GPRVrZCDaZB4VqhY6V+HHsNzO/5HTIoDaKVgxn0
N0bqu2vTduP7oYb6xq0e7sTvtbuFe2vanvheHKG+cafZYE4xqB/iRjDXcuP7zpWHVcIQvYM2zq2R
N8bdtWaVdz+/vnFlhwtDXP+AeyWv225834mvb9wEdeq84+nvbzlvbI8GoSZSmBOxJKKITqUIHiGk
AePxdbHYzNZputz7Ml2kBazXHi5J4YB6/W6QouVEm1bYDK+rVbqeTamx7ESUBirS74Q4sMqzJU3v
WeSzPz98U4bdG9tFuXNiIjv182Xz9GWVFwbd64o6OLw0aifCaiSPBFdoHiSNg0yW+KPpIvu/xkER
nFEIn58Uwm843GyJD/+zmkIytyMsVZqjTcEby81EQpya3folNk/5bTe5Po4opRGN6v62rSjdi5zU
RKnmzAxm5/Abd33PbmXLje+7w/WNg7aD2Tl3ABydp5uWG9+PXtQ3LhUf7MRxWzda3+u2G99zSOsb
Z2K4jkB1zTlal6rtxvciCPWNC8EH27hjd3B729pA2w/w1Tdug0DPQiVZhWN/ovCM4yoqfBdWj+CW
o49qTlX1sVYWEJQrO2ribUg5HrPuqGKiE1dlxQD6x4wCPw1FXxYCSxU6mBdB7SzhNgaoESIqRcmF
tF17QA5uEKXYdOF7lMiiKE8D8vNPi/xhuqhKA99KBKmOp8AILJsTUaEeLeSTIhAjbrdugYBS4RPm
5TjKLT6MJ/SA5slDMywWMBpKKDrBYu6PSyuwYY6gkVVwQFzGvdYmY5UTsrrriNn6Cbaa4gSUe5pr
4aHo2HxCa0Nyczve2O+UrXEJKe1ptvQP1gRFJWcQMrd0r9mMliFPeLOdLoq39zslxK8+4EF+K355
vb1i5Vf3+foK/CCRjFHAMjL/+Cb9Wc0vtBRJCROCtd9K1G2z7cI/s0WrwgP/u1VAKTN2znGUegLL
Rob/6a9KUTnh2N+u7ktZ6s+7zLovAqNgPWnYl2w+90tETaEd0b8lVDm7IU2/n4j81evmGfW1P+Sr
kD5uusA1ZMgT6CbQZyc7p6/AItwRmXA/TJALs6ZpYjT+SbIXwnLevHf7zX7N/FcIDvBgefSl8FeH
/pCcyG6gxDU7/fv307axg2o1w5DLRy4FH6MwS3PXRRAV4mebl52WdS8XzR9DMaDBYrJoBdj7u7vr
OElzA4NZj3fX14Y77qLUVzg7XPHVDZg7xe9MlNyzk3wwjX93q2/v8RijFIY4PVy23/BbBVy5KCkq
xm1IwVbT+/8dfBIgrHnwQIKX3ZrTp6akNueUcLWRF6orCqAZxiFseppiPLKLUi0qI2JeHPddnAyC
Fzv9PMHFNxXXKSpMPO1Ga9FQL7PunflVCBZ79oJPmRrA56ss2axnJXDlyosdLKTRVNIR+Maq5ucM
bdyNH8uaBtzAYEm+21tzK+D2Pkb5mA4bcxm28R8/bu5uUMrGSGQrFwSCexLIhhSdhFj28lRxZsmt
kGjOfkrJv/+xeqpXwwg+scrGXFAmaEjInxp8KwppgVpXJfQLJALAZEyihIcWvCwLhKZjwg31D61R
lWhM3qZ2PvxRuEbP2cI7v8uRau2WAjykkycgGftJT8JHMTongkq4joMeyM+iIz6qN16yjyRAtWkL
myJDwwrePC/nE9FqkpIMvnJvMAN5TVg+wME3H7niQAHd02nPlrN1cb7UpFi2ueez103ykBJkXtI0
oI4QzgSXl9rkLqWyl9rkrqy0l9ocLLWVf78GfjQh2N8ufYVUa/v3a+3XwDpouJ0+eW8+2BQQ/+v0
MV2v/SUGBdIL1+GL7im55xQdwKOLMYv6VAWQePb9vu3GDUahWgFz95z/iBL0tcAG27hj7gZu5V2U
oK+Vrcpmomxcqzt7e6NFnBYvbdVQG7d3StqbO4gRO0UDtVVUJMrGpTJ391bdxmljbDeyq0EArvJV
EVRLHjPcZ+nIrNLlnFLQVfHlxt/yxeSE65AjOwxTJenPFXoQqdeY54R4LXisEbR/TbNtsn1Olx+G
ntZzXVpRqRjnwnXyFLeoTF5XNIX5SG+TMdS/xbsosSodih9HGgzJfU4YKk9krPnm+6p2ppJCjIzx
DrTtBQPqVDbVU1JoU0snhnpn12DND7hlMdJZmilwUQ6sqtX8vX5wifUWcAo5mEiVN5zf39yoKP07
AA5imGbvsLTT9VPqjXM4fLBKsr7vR/vvh6thpES7tEDsJytCjL8YfN8O06mHC+WG972wa3jpASLG
3038V/rwZ0bty0+tG4lLXcsiKyL+iSLinKm+Txv81+x03wuLhoV7f1GyQVL1ztiqgeLeZTNvoFj0
vbDxL8xEd4zlzQIfdRVZrxupThdG6oAG1dCFtUbZccMt44DpGevGpXqM6CHRMirVPeY1QDo1Km09
5qNA2HHlzyh5DWY6JZEL5NVipSZjTICacC3D4iuP+MHJI6WIN+tZkShtwo5lHGjqVRQd+ZGoJgQQ
YSZKKd7/4QkzDFVVg4RUf7/EAEqTweLrzNwoZeFHlDC1kEFPK6wG7poJfXfHoxRVg4PB+OxGupvr
u0gZDd5uCkecHNLNnVQ3QkWJr2umB+PxH0y4WzzDKMkvyZU4pfCHFMdepDx9KLRIlQQoSmJf8nl6
9UQTV5bbbzts8qvqb/6z/Iu3+SuKyfoA0gS9fQEBYv9gUmuyTV9WBTB6saWTdwEMrB7qPjn7cfvj
WkSBQ5LMmeFSa/Lmjv3gOkZqTQobou6Pj7UqbjlBjTVP194EFdpnEyGC/ahT5hw5HWIBv6+wm7Gb
/LHJl2UKbp4upuWEn2LYbqGo+bfip1cfoYorUCBcqF2j+MEuHtPt7Pm32SLfUMbvr2d8TknxswaD
EYAqCkOqW+Ik5MD1I9L25capog0moCSM67FrbfBWODdKR5imqtCuG9eps8ZKNCRQiUkWgyBtQY9K
EDdoHyFJ4AyPQZDqINwihUuU0ih0HNqkJxNUl2EF3LrlI0dJhLUo4EBLHYskPm4AU4KQzmpkFsci
kRRmD6MkLoo9ioaBYyEJ69iEh5ho+wpm72s8KaRs2VAgzxkX6M0GXFLV1fXHKn1KCI8smy4aS9I1
w0VC6ov2gKTS7V/5+s9kk728LqbbfF2oL7rzK+rPq5/tNwJlmy7nV5stoaXtPunNdlrkT3XjWIXX
X5+YtYCQyL7fhni/YA94oJ50tM7CDx5PuHbs31bT7fMV/U++Rie8Aan1OLt9SlsxCc31FNKOs8fZ
Ip2uW7KyYOMqE2HJVkalrwREUPgaAEbO84HiTIGVoGwUVaLRox07vYf63qHQM0xHuSMuxo0CO7wj
5/CaDBNx1L1jdlzDGbmEo/WOz0ibGHfEhDDj3pEWeNJOOxnnijRn4RSRhE3n5eTsMrYyfSR013Va
RCQoGJEtjwLKUjwAAuuAq97Bx2xbRjxwJ0Vv6X+eGsZM6MCYzoc4QLXUbbaeLQ4tFMkkzSmeyJDa
szKYUvw3mW7KueSk6fz9JOjBTdArjLKMZzYjB9MSVqJHp1eANYpzoR2Pw+sAIzfgoM8LRqPvK3Uc
t1cLZkYu97CcjAvn0PuNIWE5N+NKWGR79HuFNZJSKVHYrl05V49+vATJNVmTWkS5I8PGVeugqQpA
obzlMgZBKiit4xOlvpZygpcJad9/qyd4mRa985Xj8jhdLArAmcd8nezcoXS9xu9m6+nmuUH7ob6w
bOQIGT4tx5xlJoaoUFw7M7KGshxNZjBouscxmJXl4zqeWhqLkoIzGeWKDB+5Lk9KtHA1igoZK9CM
/4yrcdGpcujOWCZ1HFdaac3H9TxR11LoHJkO4mSgQEZ3Ko52GgIHNwHX2buYlW4FLldzK6DlQJHP
i9JOVCcNtXiEBSal6qg3Z/m6ahw91j1vnJpwiNMFsHktu1moseWTAQvGos7k8iTooZMz87DLzH+j
s7jarl/TWpqBZuWZnqKmuyNKTmOLt7AqCoAqgl4Po4LlX2zXRQR9nqcbunt80tlBNaaZoGMN7Qaz
f719t4Oe/nr7ZiE9c/tiBPdUxkqaTWBD6JJKn+X5QG85k173bUNiE1/hGbEzZRMjznHfxp7lcRt9
ntsOkSVeWVuPGwMDPgEttDzPkzHn+ezdeVorImTfpb/0uEB7E63npF1ZkJM00+E8T4npM1VGqs/K
mZIFsq2XBYKql6Q4z9cvxHna/Lw3adueP4KKrDTw8Xd+UsFVEHzuhqJd+fo3dO43+SKtgHznecEM
1a9TCqHM0wogxI/fS7gg2o5+YKdUfwUFrd9PbB8rp/pZOSCrZi9pckqlgWi5oeem/I805VSjEyJZ
7wSt8ED3qCqB0PFnTZPFzMCatn4G79feFJoyIVg1ZHxsnqertGKyopPMx/V4rUGoJZFPoRBln4eA
6e8mjVU6ltpnnGZDVNwCvQl1Ud0wToHsIWy/d2dNzfIqDKz+C/etGM3ZRXUWOWXlhbV4OMbVhTXi
GODmksrBldVSfhkVfSyBpMDG7OXZrn/RHJxZtsnypTdJIGhatBhcXpcwIJJDLCVbUlnR/H26yWqh
Oh42V2NoOy2IAxqs47dpa97eZKUnQfmzMjZaOWTFa07o9Vb90EeiUoIVo4PkJVXIK9SQF9aWIS+u
dYYD8Euq30QzSolLqoJWxklzYZXqwAzrQa++yfQGL4iA5kyIRRpP0e222NYdf0PCLedWeQeNc42k
uaETVg10tbHkNIgebz/xNQyX01Eld/xLnVLjETkFl9QmgJ4gqMvqIFLOAbu0Hk2l3WW1NIIR8pKK
6PFg9EU1brhuGPk7TV8shksT+FS23aSLR28sHv06BSaS8mlcualKGij3MnIYNn7HgNQj66rYHQPa
cLiwXiITBF//lXtvCPPBxRAcq+l604RRpxSNxW6jQFR7ebFbsClVAxyJkyLKounLavvLC18pXByy
0BRe/T9519bbNpKl3/dX6GGdfQmdul8CGI3uzvTuDAa7jZ2dp8UikCXaVrcsaUgqcebXb52iJOtS
VKhiFctiA0Fs0zLrdurcz3fmuQvMjo6IzxiuuOrZehtKodGKvHykDfDSanGIu5Qtltl4vnoaO0Pa
GGwt0mHrdnTw2uTE7YM0G0gTl5cFDnEJRIQcUkBXGBOJDCmqKjBP7OEMjtIiE4MiBIdv4q3MzgsE
0h4jOnaaSPN2KdCgnPiGl6leN1C0QvQPNx7XrN/xRL/rYz7Cvst4tN8Lx1XP+6l73s9WCLoB97NV
AXhI+uyXvzDUM734uHJni0mRQ8fA8bzG9VxXDyoDDn7azg8rJPAII1AESL9LI6jn8fpmZbpf3YF6
XL23631Viomk6wkdW9aao6QLCo3ehJWPcf6G8bUQpjTtgkI7/Nv17OJX4y4GP21If1CDNwi3bGPs
dqeZl2dl9W2el095XmXP68oijtgMSLNnVbF2D8yEaJkE6SE0nCIDc8I8hNRvpa2ryV6H2z4xSzyt
tiGUAWiN8HRQ7vk/G/f2dFDGzW5yH+3wzOqWrmIiAt7XQGbSxsPb1NhbGBpBYXbx1jw8eT2Gzllp
GUbwnigk7YJCVy4oiXXSBQXPiaeYJV1Q6GIZJX0MjbecWkwSWxaBvZJcCylCaBEWW8yG/c5UJOqW
LeuvR+832hwdlGWmVGiv4zFlNAl0PsKECjkso0MyOiBHhECEimEZUTwxPw9tt2Omo6dwdHIewuzL
2T/dzRiQkAHNvhc7ThO/kSMeyAs6vs9vV4sT3AtCGDHGZQj6crQOtftYjd2iVikG6fldjmk9r2Y7
nBV35zGKW/Z/4F07lGLaTU3Zo4rDdTUmQxlpJNpBcHa6SkxEz4aiPiz7FXhjunz+8FpUAeArWVXk
2zYrts6grhFZjL/MHmsPhCtbylaLUA/zpqmUtrS94A1XnNbf507wF8K45yX0BlMhPlbphcUeB1T8
/bIOQcNQciOiksWHpoC10/GE92j69XxLuwV7D+7ISWqmoXTtlY13QOn7x1BWtrGQrX/Kpnm+cqPa
4BHHPNK4uHlcarQXRHvabHYwOtSJc6kjrfl+XDplmjYCG/VFXfxgcA4L9tns/ejzarwuc0CuLCfF
bGWu0Nz+5jQMzbhg4Cj2iZl6LZYcTID4LtZjbMOYDxzx2KYtkWBjW7GY2V8aGVHk42cnDgGF7e52
uq+5BZMGFDIGqi3uaVvJSQ0iVyrBthKV1LrSShGFMEMUharrIjytvai01ApzxqWHQ/Pdn/5n/Gge
VJMnRx8vLNOeFtUUmjNjhAXptLZ3Pz66VATbfk2mjQIrIpUSmGAjVXxI8szSCNE9cRd6wF0oMG2k
EsfKsKJKECwkC3wtCNM6AedM7Tg02rxhCIJqHqrLJ+5Uv7I1LxeP2fjreAtts2n5WVVgY4NytSqW
j0UDECjTYtQOVz/EJZGOjPYUhETDuNMu3f8mLAwK1bC9HAE7MFuYNVsECeiBWBdzWHoxu19X7ogX
E37ZM35ZJbynDI927dMdiRdf8qKaTcZm1+azx4W19OazxdaX9Aqa21SaZkxAQoJZBweX5xQHVHLa
Egg0prZACVaIK7+i6UZlgWtJ00basGLSaEJYasIi6XrGlE0rQzGTUMpLzSmGArY070urFmAlqEAC
U4YD61mIsbTpSYZbUyGIZlriOCTJlVcNUcg1Kgk4DJhrP5I8szSlUBe3t+X70BAPglpzK8wX4+f8
7vb2Q/3vYVxWR+l797Pfjdy/f169e54953YZVojcwCP7nh+rO1R/98uyuEMnwkwaQh4xY451dMxY
fzjspSNCUfclqFvQN/cG4xLKyXko4bYNEzonZmfkjtIoaK0cWT070sxgCKFje8bu+IHZCkPQMMHZ
Dul2TBvhTrjhC2Hkg1KJzUZDwUpgpLkUod1TSOi0PgbMjTKmDQf1Oa528kGTxBmtUpvTo5gppQOL
ByHTUqbRW7BQmiOiRFjK5FLrxMo0tXyEQtuzUAjqsiNDXiwXWQipCHUgMrRUbJxco2QkTJnJyO7J
LqDn2Fjn8nnrPbHWb5FbDQiyJaG5Tb0v5fq+sScGIyNOg8V0ILL/ebGsPrsj+8boF7z74guj4G3X
PXWk+hgDHzOEOoXxN/kTHybL1bdsbBSBdTF35kgZXjdi/vbUJQfp7tetsB9UUYfMFBQMrsiNUmRo
hSXWqcwwZg7A6VUkKS0ZTRzWZPBihDDWgfi94IokPjaONVQ2SMYCu7oQTatTGfklJCbgj4pFkDIx
QXIuFDJqEFEssNrPFVeJVWJBsNGIiUQqbMSWC6RQbEf6WQg7jDjkCfMr9dtonpgypNFVNJRpho45
s9TF6oxDJgbRCIfxTAhGVNrKEUoQiBejFtBYAQeKEE+tFxiTQDHK/ezAs0tLW5lKKVZEKa0882Yc
S2KJfS0MYcIlIVpREph/cKETl3pzCaWWhkMyHsi1SSRKnEsoCDfapCBaR9PjUmvhFDGKpTRsnwbW
47SgKLGzHWvCmcKUhPVtCsRIYtmmJNdYcYo9onrtZBtSiSv5tWYgu7EXtzyrhptLF1sNp24HEMNG
+1ZXqn1Dmm4X3xU46fLiw/18eb8tibCl4odNvp9XywJqQ+pPuEu8NAVw7Ohn2MKUwvJqTSk1uLR2
aGhp83eTJ3HFSvkmOLHBETNjf3N8xvJQwwrSt+xJdZ2JTttLlxo+MFqikyCCd2pcPF1+XVhO/1u5
XNQib5rPx98sv59VsMrZcnHH39mnjjlIkL1IoMSpgDFSPbbUI9nAAuqC0MTmT6zMDrjqfLARv5og
udFNhhdg2Vw2RL1KGi9Qnd3GD6CBETawOKriTF+rCSD4UMOkW0qXiYs/IwSMNgxKqcQMKpp7RiCl
2DCjKlwLJQeqw3GpMBpm3F4gkjhvPGYoYnN85h4PXqtTRgcZbEb5VuZpOdy4++YcmRhsipDUrdBw
RAe/9ne92rQVGJB4iyot85j5fr7rpph99iU/m/PKWvERcdV8hLXqJieuqn5jK+skpUnXFs03Y3Rn
knRl8TUVgVWrzDJxxZqKMOYHTrzGSOnZhuaFB/MEbjxbPH6gSG4kmpFSm+8scIWrYAYqbFvVEr0O
9ut//W1vtNf9gzGyamlHrcbFY37aVAZgkbAkHRb3OpwdBkaTTaNZfBkmwgwm7R5my3W1WlfuEWt0
GTJSrbBArpAwOWsHRN2wnfdG6SnzwmhhZ4u4iMYjwj0k69OsrJbFtw+7RngUYWdFtxBQ395lIeVs
4u5SD2hKMunpx0sb4EZ3lF2O5bXkcHNAT/l8lRe3q/kPp6iXmo6M/GiV4CiuEpJlq0W28/iLq8KJ
u8y7LK45GQNyJ9NaAfHgEzFOawTEgNbZHpvGLCgv26gELpRmwUcUdxCc03yeQ8LfE2ggs8UOmKx2
VsBvH2FTJ2c6E2AMVeNSBJGqpEmqguz7+LG9W+E48fF1W+sH2V4m5Gn9rlYjoXkI9a5cLL9m5RMg
uX8ps9XM2buCIaaE+SJQlCEzKM4+M642Gkv4va2TSRu3WFHIzXoDlEtZH+dMLSAixbi3E65HbAeC
7adXHcNeg15F26EkiGtOt5PtcMVCMXjCxDD9ZZSTtDpcxKQ62g6j+br9ZJykVeIi5mkxJNOuLX6C
jmHVHdxl06VtTbPaALBMyhLE/uR3I5Lvv5kfnX1UFKItm1h9X1Wkjaqij4tzrz/WUz75/dd6WY7u
zgyPqErrh4mW2GSsataxM8eeknLQo2PlSEmkEPIkkoq0Xor4MXNjZ/LEkaF4CWMYp70NMcsxd0m7
PK0jJh7UALo0RnM9GLmGPeIeS0fMXI4nwRR8we2AZ/xssOPmINYGo1gMPA4NGO0eV9LdQwr0iFMB
RZiRUNDPEXOfgY4B8l53c13MfzD7VJjNK9b5MfgfUSNN+DANPtwO7VhcFQjITsQzMnSDD0BGhmqw
o9TBlmixdYHbJYeHC0ioLgwzaAtcJrtMpR3g58bR6nP9X/stGQ3DiqEX11IQh6V0MNbH6+rJkNNs
YrdrB526OU4457zMvhbLxWNmBOQUPjqel55/1mT4MxRekP4bqGX/Ch8xI9/In/DtLUE38tPkaVyU
//t/5pIdz8YKWYFHgFNwQdCj407uhUiOfpfh1z+vlhm8/yTdCDpKEuJjJl/W6HhLhe9W4+rpztmX
akunDQ2nGJLm5unwB+1Qk4yaG/fGIRVe8QOF8+7mF3Sjf7nR+EZ9ci2MqyAeMtnoIfORB6FJaXzv
jIUSw0hHWBHskTl4OQ0xhAefsYsoSX/adQu92+qlOm2aZ2x/MmxfuzT0FoGg23GTxHptDwFZThMn
g/VQEsKkj1rteY0ny2cj4Kd3r3r40a3NRlgINHS3vVJcDtMTo6hPmkY8JZhYxTeD1x6oww+zxaw8
VoiZ7VyvLrzzv/79Qg3BWLIcj7w2qqXz9rhprXXeYtRn9iBRh7r6U1Wt/l7mBRQNXhFJ1N52PLpU
b2zQ2R9ywxd2lzSDS+nsl0OFHjHW1RG9ms+ALl4yWHk1yx3RUqI0NmYBKBKEvQ27lW4rVvY+X59W
4wlhJEZaekd7z/eAaQT9/APo+ESTxBVrEaCMd2vTeOgKLNL+Nc2et4KQxFmF0QBDcOoC8Wht/bRg
eqBl4ZAio7rnRv/V/Py3ysi40oi68sNkPi7L2YPtTAbGzarIv4znMGlAaJhm5tHz7CW3aAmbv3Fe
GCEkiOAAXrnfAGx5sgbRn82XG2mMsjI3+zV1Dk7hsqoOxQjl7J9QQ7tJ1KuxKOyzjLy4B6S0ZXNc
J6XZEM0uHd8c7zlWhBAZEeoxltlIINHslZg3T05z9sz7BfIr/Dzcwz3IDEM+9VZScGL+QE96+IkR
kyjegMwxIFERB+SuAXnEAYVjQC9f1imllMWkzHem2Am9YKTAdcZ6d7c0+lqYiki70rnRNN6AyjVg
F+5/PKAdixxFF+qRcMvWmp5Lw66lURFvQO26loKlkKTl+n4TmV8vpkYBrZarzc/LYvZojGy3aIW+
nCQiHyEu1uxfuLBHZXZxRr5Z98CptQtZaliHW9hWgtdCbmWIDZ0sTY4oZn0sDWOuBmxxog6R5eXD
Q439NTHrchO9OSQjPGUfB6UlT8QMdirgJeyAU2XYAR+oaUowFrGMCHLeiDAE55N8eZlGc0j639dr
BPW+A8/5s9mTjcdjVZjDWzxm03UBXyw5zqaNuWGK0JatgELuRmNs/PBzWSN8jTbsHVMvvnFiJcGd
dVhK5uXm/kkaZISl0xjD1Mgo1J31GeJaGTZkGFBNBCASj6leCfMW7V8/23q0TXm3jxe2D5pqTNeC
XBu/4qRepn3aWJ0JmHAIoISuMg2ExS6CYkh+6ZZnSna9T8lYDVNvhi7Opg8pH3vnIAJXfZvn5VOe
VzbUl+39zpwwaC+GcFzbJCFArOVV3R4mVSI14Fw2CRFkoNhmAmk1eKgqpHwgMS5gyZ6ee4IhxwGR
6xHLkAdCIQ9E4+ubNFLq+iaNEyM9xEPJA1hFfoWkL9E1Tppe4aSJvsJJoytkMoSTvuWjnz9eaQjI
XuEOUx8zP/mk/YElXA4wp7OLgq+ZXeGVIddIhT4w1oftOMqncZFPb83DY2VWQKisky5b/mNtXo4R
cpZeaQYa8xWSCkdXqDEwfY2TJugPouF3Fr5e8S+NxAgLeYXcGg0e9xMpggYLf6F0J2lr0XQ2WL+r
+Q87SKRTT5+khAy1AZAW+q2FWAlForfMKtRvZhVRoue8IYT7zSGNmrTqyiGlMVfoyiHFivSbQ+pl
C3XJpfQK2HfJpfQC4++UcKhY32luXqnHJ3YQUS47SBFVI5mLK4zmCykH2jMEsM3SqvHtQv4Kukz5
dBV4zSBc2NN+2PQuyIwu1RiCpuaFfka7i86aBm6gOHNJRoLqgXZy4VKxoTeJ4hJ3V6IurS2iYah1
S6ZQq16uxpM9wt1+yJUxYtbdrp6CB0KGPeVmktnKJylEtMKnDSpdiIYjJywzHxfQcmXjgYZuw6u8
KM2vgTxtLbkzFs8QQE+JSGe/WC7yF5iiTQCtP3esOHA4ehG5hGiz86Q3s4tGMbtIc0GLUvEGdJld
xCfFqh3R1Era64MTEnKKeKNoRaruI83VfSFrSY4HdFlmlEVcocvY5SgiXbksM8kjrtBpe8Yxdkmz
ZRbH2CXNdXwkCpXimhkhp8dC9cUc2ogYiUfcp3l7bHaFwucfHKZJ7+wk0IeW6ypblzmoCaAOTZoq
MYit90mc+xkfSQzc9nrgXTK44riTw8TqsM8rdkAihoWNmFZD7b6hulUhNW6ZVwndd9+LodOWUaG7
lbmcfzlP3LO4h94VTPt4Ft1dlqyFmU/rHkvG+qwtTupqRUIRpkr3FOQjvBUIjwxg/7RrHS4D2j+t
SmplOPunXdKFDKeJUx5xS53GjdbxBvSHLpEBVf9WcJUynHFDZMQzVH2v0B12ikI0Z2wNojtl31mf
IbjLSsPE55Zfgyp/d3v7of73MC6rmtntT206m1io9HfPs+fciiL7kRvyCzy07/qxumOG6av6p1+W
xR0+xqo0KqgCryPDtPM5ORy+Tm8vBxW/FZ5pCEHQDkNGhsw/YPEGJP2xyTP5BzjilrrzD0i8AZ2C
QETcUieGFY1INLI/deVM/oGi8QZ0Ax6hiBff6XTiItyIpxkP2JXx4CNefXR3LrVSfenunPXMsgXt
mWUL3jPLjqO7n4EdlKJnlt2qg3RAlh31DJ0sG7G+WTbql2VTIvpm2RT3zbIp8mA2m/ZUm+yxvCiW
RVtcIygpMTvrISdCOJckll0E1Pi+XM7XVZ6ti7kxkIygyr4+zao60HGKZcHJiGGPW1LmE7OZ1beD
gqvl1//OH/IiL/4MROTsv4aJpkFGeyzyfEE4euGuIiwt+YgqGsNL5xD1SDAkcDdyaQWekuUv0GIh
d4IAE4s51YEfTJfZYmkhreylrNeelcUku58vJ78bCr7/Zoh45YRwEaxlcEweNWfa4wbLsrJ2/Rez
2Idv2dO3+2I2tY5mQ8DP5Z25suOPP2JCGRfyRv58vAGQ4YBRv3N4bx/8ZB+4poShSOKNTUm26yEZ
9aSQRiLptrz/7hyxREqmmOPPmwdKI+yeGGHobW1eu4lbQMgrmPj77rSjGFVDXOlbeovjYnCCe9j1
ekboRzt18/V0IhyLPm7o+H4yzW/Qp4fHp9lv5uvpRBimvYifn37+9CczAbMZv/z7f/z5L/W3jn1R
SvV2QPyn//zrDf9Un9Lmh3eT5cL8afV5kX+FLP3yxMUPl1dS1tvpbSZWH+Els5RenvqQxcJcKCQ1
ZBwELqTl5otMujZihqFQK8ORipTA0LLDc5iruSGs+nJedBeQFkln+f47N/p9iFVq3q0SLlQtA1dp
r3S81kRcYB/Xe8iCdWP3IC1FeIA4QUVkQ8Eh2CnhvY/Jae/rNHe993UqhknfY0rWyvGn/Md8mM3z
j7e3HwDrft8/uc3HNvfhfdNn8udV9c1RBmZZZyuMzQgT302qcdrwPHsA128xfoS2p2W+mLqXIRW9
vmVc9hfEvXIj+kialTfPMsjCzInKxEfq4qGtYJQGSGdMtyqxUyGsKo8J13rkjQSvhPmfceF0MZB2
6DRRz6/WiCmX+n3sq+X5F7VO/vmnzz9//vT5Tw6pLlpZFX3xHJgzJP0VlVHR5/nisXq6w8h1+PrN
scrNvOlu3vJ03lRx9Ma2+32clbJkPP97nMWXL7U6XywHuurdsrXjOlKk9HVrLh1vwm53GHExK4T+
CJpG45+M7+uE73qzCNpuFj2N4ltiwpFF0slNdhwaJ4j2oCQ1R1laTVK1qs1V1xbc2qwdv14rF51o
Kv+4i2+HOnOti98pf5S4ou6EDHjtcidpHeq64oOmeXVWuWJ+qf8gjGwW2aQsM2h7B8s9zr8DJCXK
jW180fbGR1/QQv7Lx4+t5+LI0Jssi3KXQPe0+mFS5NN8Uc3G8/KuKtb5SY+hEWnX+e+Yyl6e509V
tSryf6zzstqbwfN6Xs1W5oBtE8UsnzwtHc1dlRgpJNHl+38NvVKZbleF0GVPM9C/LIE5djcbSexT
w+yXiMmJUPTyk9xmQFq9FdAKGzv6YaVG9EIfgBOV0Cblzs09dOOXA56HCsMTTgZsQCGkgo9E4nvA
ECbcyFmtKAkco8Mc07QXwTB54U+bD7Mi3+Sx519gW2piNfx6ezkchMQka1l2oc5j1pQfYCAb167H
tZ2yD+UZs4htul1nRA+6tUIEPjQ9vi4jaswmHm/U9aJhXIw1S3phMDcyU3MljUkWJ02FMYFIQLLd
pJVDB+DNdCszXRfxcgwqgUhwrO26vXcc9eXl5ZSeEEo0smYyJHd8VbhOdV4MSi8xSm8ktnRCWy42
hY1NI7uIcdt9BJJ88sqtKXCtoSbj8jGe8+lsXP//2qC+qCtrnCNJ23CIeo60B8f5ZTbNlw4UVDsK
Rgq1rBH+zjD1zyAsHcNIZdg57sBxnmbT1WxXxbKaTap1cQ5d4f/Zu7LmtpEk/Vf4Yj817LqPjlB4
Z3p29mliI/Z4dkAiJMGmSDZAqq3ZmP++mQWQooQCCBaqSEszExNtmupW1pF3ZX4pjBo5W3qE2B1y
RVb2upGG8JkIscsNb7y+sZY5MliMQ+1tWAVFvv18NcBNHx14xg5O6iNKzJX7tZ9fo0uRPXTVuIFr
gefV458qNRMygPtGIv26GJRLhVAbAVRGYdq64JrxmRQ6hu7b8faO130kW9FFliNRrqxNqnemnjHB
RgJrHN3XEJiTq5VkEB4pI1PQ4j5ajIkUtISXlmQpaEn/vngKWspPi6Sgpc94X8ZPi6agZf20IvO8
B6RpT0yGGOGoFfiSWkQU1UJEzYlJYyd52a3R+n272uSOdLncFvNsXwLeZAYWRbYzZD0z1SkozEh2
tFlLu7BRS8qob1HKiJnUF1xTj+23eGvp7RenAVu/LxGrHzPfzUSTDNyLvaOFrwBY+Z9dF7crMNW4
cy83GDvj/GIHz7w93dylzS6qBKTRxnIFwVQA4O6wEhg3qi/RcffwORNyJqVMz+jssnnedG0mihAV
SYhBYB/wMeCh3GQkqwtYydyrygW+XUmWzqR4o344QuxUvKx4Jh8XKkVQZvf5Pndb29/sJq/uiiZb
/uW1WlASRFCcQy14Fa6G0JCqi95oMpRuYWWIYJbLGiFPVtUOy+ew6S7f5L5Sc5ALoclZbrFvopeV
EHVzS9NrcqESHKp3xsBMcj4lMTIwyq+Z43cUren4nFbDybSK0D+qEoRlUzysmwQlLnH3rOfqHbNF
Xm+yh9W8vC2BE/LbTVHt0sCbh/VHPL+r57KU14k/gTk0zRLcGXaedrzKmQoJT49ZQzZsDcVs3Bhr
rxbr8ksvO2T9z/TceXhxT3lXP/IFAYRdmhRkdVE2Dv5nPP6P7bPD1f99YAy/gD9+xVqXX+ADrHtb
4BeC/aPj9kFor8mFhauZm/lQ1jcvqngeXOnSt/Xdx3zhqpng18F/2+mi5kZRB2OoIzlC/qiZuRFo
P4keApPbq4rExFYR+FRsJmii7opoSEXJG5gYLi0R/Jyy/ricf8rX5Qf25/FSb639h8ekqmlvDeNH
SRAdHvNF08k8hXPdPBv5E1qSAHuEZE1/Fs3KiZ5xjjg+6u1vQhKS8Pr7fHHhgo8EHlf92PHJpZlJ
Kc6Qv7FvnxuYvWxukWmc5kCsBJclcrGhpSHlGG9rUJnV3LwDvUomSVL9+zavCrC4XlG1WJjDWTKd
503bS4n6jr6Dq+Hi7W+C63fgfHDGE/Jw31sIYTPFzTvQMewcT5f8PXgE8u1vwlj9Di5C8De/CW0n
RUzdDIvbhFvXvtcc/6V8XeLQsdNBpyg+4hEyaR5NJNxBwQ17D+pDJTNT3OtqCY3toew9+CmU/ctP
GWaAPj+F8pkk74IF0icuxs36O5qIQZX3X7tJ6fBj7D4uhqe3K2zHsAGO2G0BYfD+KQyMQeEa2dui
a+8jheI4QOYdhGBBTToxUzRKK02ZglggTRZDCRvSer/jiU5xibPAbtfuvoplfr0ofmtO+OO2Wlxh
u9Svnxv34X5Vb341hBBf+3xzOeVtq4bcr3Pfuf1+bL51v+4D/9MH9lf4/34b8A3+2qazI18U1Sa7
zcvFp2/17q3i+RDz+qYsO3N6gqrr3wJWr6LMsnf5CqaIZuYnr8/QnCTpbqDeAvbJEBbDMthXQhye
1sZ28hIPEqeFuSPvbyGzVGC/0mWLxUB5SuDloHb9wWIxIwWfXkawrXEOmc9CE2GxliBmE5sjNvgY
KYydSRncEXoDsWb1vXhqPmTwKbtf1Fle1JQZ7y6bwtQIpTgVCPXqoeGX+Y4pu529lmJjL1EJj3Wg
OTBEr5/eAUtD8juvLrDerteryktCy7Bg4tR0IRnj2NmgS/K+SggLUZK+sFcBvIn4oJpQwWMPLBlX
yRF6ov1sD0HvqFO1E9PLZgKNZk914x3vvvVHaQTnxMbkzVdUByyqMBxsgqIkPfUBLUZM8stkk4R/
Xa3ugE4NIrIFCfJDEhj0TpQ6nUyjKcGufXa27Qb2UpfXC/DLsnmBlU7XRZ05Le2lS7gAiSSBdE+E
QrBRbqpznr34TDOh45Dsg6fPwH2Nw34QQ6wXhS/pzcGCqkk0+tIuRmJJHY+y/rajvl9ZSA1KMZLi
fUms5/qFmnHLk1/OOIzLCHviDoaFi2lH+LB6LLJec8I1Jv2UiLSjA2JdfC8EtRHCRifVX1DpaqGF
VGfanWY0CaUv+2JqV7rcUUlM0uQXuMMEosMZA3ty0P7F1f9eaQj7iFKCaqY8cTwVAVo3PEazchSa
67jdeuXOSmeFTz7LA6vYOVXUJz3eBk6Jt1zxUwh24GAwo++BhGES52qHlLqdgAALv1sF6PaWwvPo
8HmxxlnhS4/TIi3ugotQl+xCmEMQDsy4JDbkcF5nDZ8Thr50oUUFN46BTmoaa7i3y8/1BiLXpl1s
/xrwel0GeMOcqBwmILNJBgSpJCqu5DpsTLddj2VxJDWZrv9O1hg8xKCdpjZUyNXF46tn2h2+MpSy
896ypQGuXrSnX3xEDFV9jSKrN1WRP3x+bvmCnTfpmXwBP5k/+RmNyJHVuPYNg4RKw8Rl95huuKem
hFx0a9YoJqUlilmb6vp4SEx+mi7Uaor4H1jx3Xc92RmliYZbu/CdpYJRgKMkMooiOygi7FVpoGBh
39SPOqpmCNB15rUw/1ps2I3vfMSmhDJ/zFt04qaXFqLSp+zHfVX72ywgziE8OI5aOUjKtmwEAUk8
kwnA+6U0JEPS9X3/XlSrrBly4U38iZC8zzCZjmQCFW4jOHp4dM6Xx+LaZqDIq1KFr53j9TarU3Fi
irpx0MbdYFNIY7SOyiLg/y3L+t43QUMJPTNMTJGCFqzsPq/vszaDd/N0s/BnQKWeMaqnmI3BFvee
i/zqXExPczudwMAPoI73PqTrob8DInWGwG05hLfL/LG8c2fjVT+UYm3hNF3wXDk2R5iN/SH59IIA
S8D4GSWpb3F+qSLGxNAla1zX3aq5gVU/EBaW+hg+TY5POH2F03FCmO10vu9bVZ8McH5ZrydZaRsL
cjR275WtIsPqiz1OBsSvNZav3eTLGxD3eXb9lH2r/fwl+Uik3D7tskMAXFflCkL68u+9qkRofIOO
YvGf04KfbuouCjVoLKMjcMvzx5c4EMvij6z4scbxD/dFXx5GwnZ5jJwkPhjn23m56rwSP/Ct6bRt
iJmmNg7VfVEPvuN+LZfz4oePJuMMFaM+z0sGMyHh+I6HliDbxfzrdT7/urr+BnbXpwZB18zEmJoX
Ro5GjSsvGDvlYc+DF85Xtxj53DB1+uG8iI3c+pu/tJ4JqNCnbHNfLLO6KL43ltEZCeSIzV6t+ksj
KL4gB6/pJddfl+vr1foIz1OlZ2pM+eFrisOM+KX53DF/iujTSZ1UHSHGjIl4TeH1r7/ZVpUbTVJ6
3+ewK1AqGWcrvW+tzgPpOhCMmSkCjQJyn1dwbXVXnq2UDNtiIvitbaJ7X6eOXslztvOVi7HErPSq
Kn7BsTD4k1/ADD+CV/PLw9bFFq3Rgr83zsgV6SavwVAxm3jhLP7CMbUnxlSpjJH55/rj6mm9IZ/g
Y0fgsXU4REhGFUH4K0sphUDUqDGoO37RjOIgBp1ymJ4Tdqph6X3JWBfVQ1nX6L/NiyX2PPuzbXRc
AfGIRQxm/lzGz1/6ApymNZVRrRlmAcinTd3BQacUvDehhDGRJamPopUKKWolaShXnxrQfWyc9RoO
Pbvdurky8IkTAQr1GVaIW45L01L2p7X/vflFV3+tyg/sNwgSGYV/wKLxIywb/qDyA/8TY/gPAn/9
j7/9j/8JpmF4aaxREQzvma2GU74s9cLTWA3LiQxfOLg4dQm6+zkc9A6bAEJBaqQDStjutHGFD4h2
oxYBXiKl4Zq6SUNljyAmD06ynSzdwlruP607wTzhAgkSyc+2yaasUnISPfbYblwHqcf4oQ02jITv
sc3uDsy4k0SOy8EcO0a0cPmyie8ass7U7lLfV68Xc1jM97ECz9lQwhkOQLMaFOHLpmnqhhAzPX2Z
Q8vw4RtKOZ2m42xsbe+GyK6VvG0dz3ac6HrIwWo0FnsXRbcNzvvVNA3OE/bXJpWNFYm8Hu+hMjty
cu7bPlXCAk51FBR5pycXoigR7qS/C3emUc6KiZBMRcvLq3lRLbOGpVubX4MfebOqYZ+LRX1TFcWp
P88WaK2vK2DVm7xnJLlWaK1NlHzfUKFtaFhxOF/Ue0av548+b74pE/S0+UCcM6rlZryAwKI2VXnj
nwhmcbg8D4kxvBt+vv0X3796DXCUdYPcHp0yJijvqtUW1N+mXG48pKnBWY6Wxye93WzAO/JQlNib
xkQsdyXbKWu/cQZa1EbfXb3ByfP9ezQa2/xkdLrlDT6J95KFGHnc+NQTyeZl5VLfQ5Qx8x7/oDFL
my3y62Lhp2px1kuK691s6wG6OF/G0uh09zrxOq+8ooO+fgK6jX06rqc4nDcjqeiXzdD0o8vgWO9B
g/zRMctwHiHol7HLAcOpYTkk0XJ6vQbfyXAh0+idE64HPDo+DqYhyKTU7ifgGRZeEeFW4/ip6MRB
/93k1dx3/2DMwnTfyPhh0MLBWQsdXyI3FbgO2DS19GpADMERIfhyexYRztsX+3VbZFmcTHux3D40
0dK8eCyBfLZrophj3r8uawx//I4p1eidRk74Dy2oPzBXWHdsbHgKb/fck6+xVy6rb3JfopDh9FP4
YO2E9+vDJv+GaFOyvu7gMnANeotPeV52v74JeudYLedtR9FGjxsifTQIPyj7OSj6yTcb+Oqhh48U
GgctpsvNvkbjsECuiep303C8D4UaMT7O8oLPqGaX3CenPFRa99gbrpyq1cP3efuFl6sYnXGlJ/Lu
ixpcX+peYKcg4RHyAy89iE7gz6XDeYpiULtb2yXlujvEAoyQJ8ZpVCWfGcbOv1dLB9tMz2RKGAnW
R/VmBSZk/qLs0av2KAXrqc7kLrAYL46+reGlbhcbP86GmAnKz5Xb7WlyNFRQrQyj5vQuOU+f1aiZ
cgk3xC2xhhMmleqtpvaMNVeMnovT9ATR2UMW1Pc54oj2JM/UuL6K4/y8p4d03OuL++sVki8QpNcT
ZBg2o0bFEKcBIoyBV0LJGVjtBQ+5ro/P6+VdKxO/vZQJ7xBBoQSVF7wMRXVK6kvQcYMrgMBDmBgv
+cN0wEGfiZAk6rh3OfJJcwHOlNSUMiW4sN2HOk5tMBrJKLwToZUIiauQwoGack+qBze6XG2a55y5
FwBFKfGzyZlHygznOu6bE+awsWbdXxeO6UMxpXwjimgZzqflF3bBkj8kQiAZbX/+25eM2OCrOOgR
c4Dvq8eiws6+liP8Npbz2ajZ0wckD9vnDq7/CPWuLtDGgb/QGNQd/Miu+M1DS2ArNT8TJaIti3KJ
VX7nEgAlgjrhFCJ/OSzjEtS2mvI4fxT9/ci69tjvzdPk/l9tEYhALd95wt2QRHmCNcPiOitu5mdc
332FPzdFtfSk7TJs6xI/xQ7uilFnTiUK3M+x5AbGfBSjGPBHLp8rsCE1/t7umKrw439zaSGKC690
e1lmXizvFmV9/7lpiVy7/ISvTUszrHdT0WvpabeyXUnG4SBltLfTb7Vroe48w2kpw1J4QdiYXGpz
9rolLMj1ZS/BoZvcyXW8NdOK+O/fj6sFyGZWL8q5/3FVCDazCV4b+ykqSbFKksUiiXLhOVDBKdiS
aE/4d3B3DSzazepuWf69qHzfeUreiGB8JtIuZJOvPSegGPoxNiXhdbm88cDSKAJ3PAp0/lSuwvea
7cJ30EwhegpncXTu4VONT8MrBFkU4U9Cgb2/o+bennimi/xptcVAf+6pIdUCmYjLVFTLTfHgERqj
wPumIk2xXV1U6KV0yQpjybgZNhOLNr95KihxhI5JU2y362HvGjaB4zYTVJ8d1Ph1BVXio7VUZ2w0
pCy89+rQ997DjpRLiMmWiGbjHdXAnf1JXWPij1sNCatHGGfPuzlAghORNE/suXhYV5qY1u3AxFTb
62vvVoWmSYS0rcH1mDQsLkld6+zRvlLNgrzdE0qdu8qXEgQFoinK/J6ydb6ti/4da5umuLv+Xq4b
TJFe0lKKJKbuYbsZ3DAdNzVkWlm5b7skrELg2C3jQfcSFTxJUXlbyjNAF+U3viAdFBD30lZchZn2
Trj+DBboR4sgWia50gaQp083StcHEt9Xq4o/wAU/cqckvk6+XVV/5NX8iORIncrQ4tz7AeKKJOHk
lvh2PawgqTVnqD33MBl6ciRxN0qXLDfg21CSthmlG+sZLKsiiSvPO2SNxqIxRlI36XX9OTdSLYEo
t20VbYjbO5qSW8PS0O9t7eiuQYmRmLMx+o+6Th/TaKX4WduPPDGMIklUzLF2H09FhXNESbJel66u
Mc5PYMk8wV7K4KHIJKdeLl2J5QBlqUSSdiZ0QgeoWh7I6x4YkbX4vANPfE3HMqMFzsmIl2I/WED7
5aKo+jUbs8SEgYsM0d9xVD9ZKmTYvXqfqLreb98cSSxutXE3uzfVj2VdXpduXGf/xjVWK5DI532g
t/opS8ZiNm62nIaxa/9IZ214zO7MhibKbv82uWIxdVVLslEVQ2TxrcyQ6GSfXE5i4IQxuRbPK2jo
Npk1RADs3zC+WUW/WhdIDggP5qOpSUATT/mPwRumkqmYrv4B8V1AOURbxsy4tbT3Ka9+wjbJLbuk
5gBrWRUz5bUnioFcP1WBuVQa+Yyfn1eGSJO4Sc2WdBPL9VKVzCXJI1vD5zTBADdbEhOvwu/zeMJX
7hJCJsmGXVJmaMsi5vOdr/Z3cO9MMxtfpnYvP/1uHlfjpioHunmv8f90A4Utz0pQhhiFCfSEtOel
F9I5MIUePfP+iL1os5thhhBjqbKC9Xfvtd//pYTfWbvpk1fPHecf+J/h1+7GqHzgf/nA2C3CuMOf
3Yki1hp63hM2F24nJFRyC84bC5ghGPXkZXgvbJSTYEZBTKYFOJMsZExNZ0uacaEu3CtqhbCITGp0
0OSdmBdsgi54ivEhZ1aWJkKBdjOVpOlg29Zw23fYu4Sl9KNnjZDdrBEKfrs+85FHS9e5HimXff7P
/27Con+jPzxDuiUECCJe0fELsphk6KEq1IzrNJstQeaqx3yR7aNQ/xosp2Cg6Zkv+LwOnZTn1hnn
FRgRL4HwgofaNLOfcdyMpvAi4xelfdhghHqqXc26Wj344WeYMlFLo14KKghKuezZraQgqmcWE6aS
7LNA1XDwFuffsWAKVKJOyVi7FyL/ApgVMix2GKUeX7yM+VcAzovGWVvnFWadjruHzxth7wRJw3NN
JsNP2GgdBvE0gm6rZooFHDj4nQPCHasxbkyPGmWKnHnmyMBADsUFfwOarb8ar6cWD3vPWTKXbgel
2sNSFHvCZbzS4SPO3fBqJNYXKCppQtk+ch5Mg/FWWv0UwY2aMbwd+ZMsZjfVkfC05nbwhhwgPaf2
J1JM4NdyltDVGz4QRL4VhlB2DsN0ZCmEoj9mzFn8wSNrURw8YUMSvQH0VpZopEojTxRpgS49xRz4
FM0itVC6bmccg9Fp8EZFxKQIeTMbdZg+42siPTeAfK8XhWeWKc7WVSr90SEyoA1p8BrBEd1dMYQG
JrHCXbQVzXct/CrEI94WOgiAeFi9zX2JIDJPzyDUCGewqh4QQ+Oh3GTXBfytcJBWXtxFnMkigvH+
HvPqqYG8WBR1PQigJLBrIui5egiKAw75f+GQ/+Z+el8s1r5nWwsSIS1NzasNimUQClVH6h7vsnlx
W2d4wB5CFNSzIqOCGXqCVPTNe28Ry8G1HNWPQcedYjduYgS8RzhCoWyynXVlHtxmRQMI+kRvNwUu
I2D1wRDPaz/6OxgEE0Cy4ZMf7XDTlQNkqXEmlRc1loC3OaqVnY5GcXb4ecWzR+OfZkspTrg4nfDe
/jRWJ2v87rx+Wt74R6yBx8SlCD3HZ/54daIeiTPAJHxUMfNU7tckEpUxmA48HC36Z8TcVYQZ+/Yw
dxWRhv3rbR/Rh6015J+rjoSIUfmjSRqsgVu2o9peaEz8llFFXVM1ptAB+zpwDn7f5lXBiAeeT2K9
nxKKT7Blr2OpF1atLw52yJY6CtXb/HtL09M8A/+9FPwsd0Sj8t4RABSqSGSHjg07dIieKYMduvsq
Qy3kdXKkthCW6ukqwlHwzoyA/wU4o2MycA6GYjgjySCyGPd2T4/AqvZsEPhBER3LG+11RmEjmOUJ
vaf3VaJHDFEXPYmzm3E6bsrWCUErYq37Yn8xEt+TvhmvnWvKLis3QV67oiHifswxOOIXSEHO4hZw
rqaYs+0SQXrBbt4Xbjayf8oU7ihC+F48rDdPnsxOBvEtn6z4/Wi+DvRcnkviVUi2qD+d38NeDNPt
fMq1u4TwwJVrBBiZlBoa9zTBLH+DCoVRLd+VYmdBfvhbdgPYuMmt/wQuILXAzEOQ68cyGi/VCT5o
9YKrc6XAHJvI6njo3TgolXJ6wcCx+k3uhufqJGs57Mk8ug5qZiLorWFkHdaxBWCVvbKapFlBU0hy
bA0ukrU0zSnsynuOLsKit8BFkkUUP8rNcV5QHB/RVUqm3K6PcwQOJaJpRKMBzevrMpHgdqZhxBbj
oIcwvuXbKX7iZrVu08jU/95m6MghMfSU4b8VFq2tvpd+TxtiQwSmi+Mytjakhg32+MBUziQ3531Y
Z5JG3V7P9WkVVnd+QABHs7Vmcb34Mi9AI+Ggv+4UKkTJJDpCbDdiVDIX3IYml9teFIez5IpLspv7
7fJ7Mc/KG38+lnCQbxvhxQHOzZsPtcJBIkaRYz+CqTEcLfbpFF5PQMcpff/P3ZMtN3Ic+St8Wb31
TN3Hw4R2Vw4/rUOO8O6+OkCgSbYEAhC6yRn66zezG3dnHyxUF7Cy7PEQpJhVeWdWHnXan67NxvoD
Fg7lJLNbPP/z9Q9q0+GDVTqyauiee8UfNNMTPjUJyeLqAZL8EhSq8slSFzp2lqReREm1jYFc8mTx
8zHiso4JYRh3RqoI3eAZruDVN7gHxBHOag8XkbLzHv8L1vrbL7W1/uSdlLEpBLV56lbhRTS0G9Ya
89T+ZDfSN5svi3nHpkSQvKCMZM9qzj1F93sSjvQnZcTiK5V1Ubmr8eNqO0CsxsFpt+4qrXlYJbUl
lpgIoa1DLzGQ3uHbs+o1sdQKJGyykMxHuXLn9izhRBQPQZJsIo0auRKBXzOjmDDolpuRy0T4VTtp
iE1dTuKSIx0d9KilZEL66IBPF1BQYHEsrLHRwV4sRSAhm5Hl7jx0Dw8J1Y8cNszDp5tTcL0eObaM
h483J+DiNHeu44sSOeuaEGVsLhDcTQSfHnZNxNegj0dOXww5xq64ZfRxBOaluFITHad7+DaVeVBj
N1nwSAPZ24fQ+JLKbXzl1953QIiI9HbkCoDPOKayJ7lkpYlvYfZDuAl2wwZHHu+1gl5yQPAWzhkQ
Kq7LTzsrTmJjv/uzBUxehBdm1sRp/sy+54/vVZXVqbtdZoXOC3inw97NPy8LTZAWlO64dNqbohk6
+OCcORbG/aF3ks5GDjzPJu5efFk3omWPWyDrfEan4bxWYAJZlFhBdcQKbOR+w8/gWPVl4ZSLq1dU
l15RUqa41453VEJgwogbaEyIcrRlnHk1gcY0Xsr0d9JSc/h1CtglTvbPenGNQ/K2WeCRu1NAXOMY
9DiW+QwY0TVncQKHjyOtb6v6k9njMj/ofzrlzIXgfpL7/YxVjbPV4ltZ5dRllTR/MqlS3ESqOB3B
K8yoVKyyU7neTCRqze/nUt+ED6XliWjmbGKSacmnJZm75kJNRTX16qYkD6sYbqWp66+xDI/cFcPD
nLHP+9Uy0svrrgi9K2JGd8/79FrVQ6RunDTSeRPfV8EizfR3kmAouGNeSxfHV5FhjwQXvDZvjtJ0
EK6f39stcE56VGo6SbwY0tXRe6XOscvS+QT6gMuAnvh60kNT8INVHptZWRLlNxrrPLjk2v3ZBFQz
EecNftdLOn+B40C8/lpUJT01A7d8+Ljv/ufQa8dhma+eq5dv/KRGXjPFlcaOhTNjKLBlXIpEB2Lk
gX7agpOzfv2muAdOxpXALf/U+EQn1CcLALxhAg+JtTSXONPGJjqRok90QJr3WoEH2j6iUqn4TPYf
EWgIX1qnTfuMyVhP9J+RO8fRoWayTWp2A3mlzuhwNhN81EajlCq9BNNoBEMhvDe+LcMqFanN8YxG
O6GUEVxIRcgwS69VTk90wJoX1kr0s9qUtSa9nqHOCMynPLOGtWU4GRpl/xGVUNpKB8FE64ghybZr
1QxJ6XpQhnVGEWjk6dUMdUZtuQGFzXSbGZVMr2aoIwouFefec0G4Cube0aiMvg80gqq2ECxqz9to
1Kn8G8FOO2o1F8wzp3TbDiudTEA8faSjFIOqttwZ2xYRn8rKcdd/SGe8EUjc9hldMkTagTMqEGEI
7fgNjQo3/WdU0lojDFcErVNFJVwPMKSwjoF2JhhSqWSHVENSw0A5e+kc4eUko7YcOKSRQkuIiAkD
zZOJjeg/pGDGwqdeEvonnZLkQ+R21luhCI9RKpfqkGzokIJbBZEMITjJYqoBa6O80QxYsm0Rg0o+
go44YGu49Jxp2tlhqWg9YGuEh/PBB5Q9ZOkjU9IcOm2s1ZbQPUqlD1Vpr0IKjALFDT0fNaQdJSge
RRhsJcT9G2zN5L0YbIeFpdpwKoTxd2KwjZDaOk8F1MLdib3mwnmIBrmiQmp1L/baWM+sd4TnI9I5
ugP2GmgtwDcTbZ/CcHMf5lpwppxlggpqlL0Xey2FFyRDaqbuw15zaZVTzFPseCf22lrhrFXEm4G0
/j7sNUd3wsN/iEcDq+/DYHNuFJfca3fD6HUoLgRFrRy3zBMe7g2SyzStFeDRCCri4j59VpRU4Eox
JT3jN3TOBmyMQNXovXDtQZMymcScntEw47nzDEKpNtaciD5yu3vZJU8njp5GwCEoNkY4iN0JPrIu
Dkaetvlq/jI0AF9xbPSzMYfgHeph2rWYOLOVT9BE3N22bDR/8DZVSCJdP9k59xIcVeuJ5wEfDS24
XqtY5u06K63DcHHJXmW+fd8P5j1smPzy5evhv82/sK8vK3Ea4zz/8n323qyfrLe+fMUvdz+S7fC3
Wv9UzD8ynJ7y7ePiArihTkccWnbRhEk2J2OdPnNqim7swywOssvfinp4QiKpxBEYIqrWQT38ZTab
E23mOMDAuFTGUtp+iTTGMim0aieEvHHxdk50L13EpF467WtcqjBTmgFVCN4e6EItCY80WX5d6v5D
aiY1/NPW1ibc2/vU2DilTbTZCLVMtue0YM0/d9EmbDwDt79tsSp2vn5eFf/Kt9RnRBUwU0I+SGWn
FzpcgQgRhZryytVsQ+DaiHqb75SANwXoX2rGEThCyiVzhNSA9GvBHDjAbeHnQQnkIXsL5168LSm+
E0bbmDQ5/GU5+1i/VdkKfqoN1aqaE5KRQw6QwxgllXaiHaFpnsxUiyHnWTow1Z5wnq0SU6uNZnOq
BLqlQgcfQocFfHDuiLJkLaZi56LKXwnl7YzGJvtppkNhuFHMCSlSgJEwKfrkIK7fiNAA/alkosEG
eEFKYzj1ZOjlNAOsdl+1MSOVsmHrM8bPzSKm3SsdNqwrLJE5kN2RDj4wRhPFxj6V/y2GUhHKOC69
od5QJlAfuwxNi3KawS8SUk480I5gU+1AdaTKB4qBMNR5+FIaFytDOuQObd8eH0lyKAvkYHaqJAvh
fjkbpkg/vd6RiwlGTJ1lcgi7qCHGZ26KYVofWbO5sBO29QL+MkGy9TBUthO01gr+En+G2Otb1Xth
HnbhMJEeSnAIpTGopUrBpZt6oCVFEzYJTXDxSDdQnLA2wTjL3WS3HrjTOCEnows7YRtskmUTqJo8
7xY58IDUJBMkmzUi/ZieYnbfbo3IAD/zVNUeQg9F0JZ7aRlRn6kmeLM43XvUjSGDTfx+KuBvmyED
oP7fPjVxMNrWPEjnXIqpn4Q44xJCx6edA9wGi90NwqppxwC3s2GOc+BUPe0A0BZYZ3Hue7IidDGU
EzXOC+6Uo4pL9NRjztuhgOPqGuz8K9+ud8KW/XihV21KpwInbA6kjZrBvruc1W4QJREEeifARxcJ
hwu3z2DQVWEqzQTsdgpNWDOJ/e4bgE1kAUydREw+cLp9Eu+RJeRk44/bOtdhadIEZmYfEXRCBk91
otnaq/fZslj0QNYYj0+Qm8RgpAeqlwA1Gpedbufafbisl4B2qBvhmQuLStI+bkdMOTUo2nNiN2Z4
PeU9MtiD0/FelMVjsSyqviPYWhhiMwcmLDphcuuQIVVcmCgD3deURkziap3u8WhbGRxMEzE6bS56
ota776sF3tdGRnGjYvrQrHkYZad5bocYVAppiU6oeLs3Dqj5ON04RXE9pt55ZLhNThsHx3cTBcsv
eLygagcY0zI9aqV+mfITwEQsf+/lQq6Fia9Wa+D79EwfbI3rPCPDvlxoRgD2oh4gfSelFU6CbWPe
ujiDuXqRU79F9LC/NxPI3dmwf6q+DJ9AeGShOz4G94FmcV9ATvZW9EDVAp/QeGSLc5rw65E5j/G0
ngR0j/OGAUxst/qYZOy7LgvbjDPszy/WcwC/qk4ce0q5Cz99QEEkrqQKXAk0SWGW0lwZIYkePSf5
nVRLgbIVRllPeEBOpXl8DlokU5azZ9wzPN+uyxK4Eot4s+bjPMvfkUMBU5tZNX+h16FbLHNgd1Kn
ZJ1z0hpBDUwyd1K8A0GZks5RLQFayASsoti91AgZBe4rPoHE6VKbpHKGa8Mt14zo+9csRVmJStZS
MVhxID22p2JRZJS2eNpIFa+geurM6q//aFzOf+c/iCXxGp2veLWZZ2AxyOyAqkzYq/AIqMWqyrfv
s2V2iELoM3jcoiCmOcMulUYDlrJepncvT+KOGeeYU0RRW7xNo+d8AXQpVh3I0Tzm0t4zuDlyxskz
A30ChdF4vF2jFF/sk9/0AYSv06zuTh48rXaWS+YInyxewu5Cgs8eJmgsccawIyTZVISBBILH2WRW
E1M6lBGTSVE/H9WLM7mZBHoT+NGAnbUxc/RncJvvlfkSqFSs+5TIRCJcy+9uVW8H9PpFPlXTkBgI
+6RSnBOTMHTYTIfeSKfMVwsqvrFWx0wuDZj7fupofECayOzvsiH93CFsmFCGccdAwO2d9U4yTi0k
sJOawF4kcawR5nJC76MfPq46nophLzTYwEEYIsIncYcGTmJkWGHy9fO6yacybaX0hppiqeVnOvWP
Ku2k5ZtSbnDQHFsOqY1sHpvAbfC2p7CFvc0GZjKfxFDJhQzppeLqwwql9/WiptHiDb4E1v3mWGvf
keTe4HY6H2UpbPkyq4BJ80W2yBdvm2UxrwF33NmNzPKKizsXr3n9R4a1qFm5Kp6eyHWnio+cIS0m
Qao2ox5FxbU5UDaq34oEg78c/pfV9bxZ8wZDE4v7B6UCcNmjTV5nvwP1XmYcJGi5LEpkFMTsZgYK
5chJq/Xh2xn/slk8teI/8Js1ROlW+hToVjISVc+QTkyRMsLhDl2R4FJqVG5HjB4YNjAey4BLJVWK
e2ke9V5oYFgbmpWcSwHE4kmIZVKgzozaR0Kp5iMQ8Eqy70X1kuFavmzfKoBamxrMAnIsHhxucUmB
RJtCWWidxAKM28cq4sz7G5dFul5ydRJlzkIdkD/e1hVYJ/CEt2VeUXOhpH+wSifBVRKJcSIQVeAI
rxZY1oRuM7jpeQlGvXGIs7L6WOblS55XJ5qiXuCZwb9ULyCFT/JV2eFGauUwAXu1qqrPcXkEpOrX
p/WaGCaH6p6pALiHNcjfX4oqB78GL75c1LXVxP2MMxAnmaSYp/GMUba54r5HXBM379gBLcyDYc5M
R902VZWz13rT6P0AbNKTxmmR47LgI+W1DkgoJ0vaBztqdkcng27XYL/PrDYZGmCiQcbRDciYZYsz
dzp2rEJgI6vTrlWIctQQudGMeWJJunSOGjtsd4QMtonbuYcdG4mmJy9JTNlM7LyWicvieTWrh7oJ
koc5Mo1jE5GzTcZxdTljqXh6uy4iOvBFA3yRYlVu8nm13n5d5dX39fb3A/DDSMxs9/Vr/rrefjRR
PpmOwbBPhmik0ZyUv26qj0GNhdMTVJBR+bTLJF0olI4M42WhdvuTes5a9rgFBM1nJSlVHtuRQ3yX
bm4om0QPeBXzbbEhK/Yh7FfSxBNlWpAlXE1HdRgIpmoHr7KuEOZyCqnulGkbmN8YK05N1A4GFw3v
/pG/U6rA3xBX+Rs/sqft7DXP1hvMq6IbVVdilvXHmDlvq1LNLIizj+4fkpcmNbkPqQI9Abxcf9/L
zGb58yJfzj5wJ2J72z34WY6FJJQJBhvEdJc7Dq6ADuDx3dPH6b1fZ8vlP1//ILwc8WBNHDmqJfdL
9aMidjaE8gwo2XwLihXs3f4FgnxhaoZwJaFWVtsg8pnLPGjPXcRgo3PgtouZg+gbMWycnBpQM5QU
YhqXJIoQV6sviinbl+JY5gOy5cMFGFivzh2gfmy83HKTrdY4G4aKdY2GiPoak49j2J/W2xxMYba/
Lulb1gQTcdQGCbRDI2qH2xNCCFjOv87eqhcQ5N0jaXZ4XeeX3ylrz2N9/InmwXu9LZ7pbA0HVwQC
GjUZPhqV1PFUiAN940SpZfG6WeaECsfrad9bN/A5jB9h4s9k+GOHb9evkvsvvsmz4izF8AR8XC/q
JLgOqqk8QqzlGX0d8AiXS2Ia1El/Hjj5Oxv0PX98r6rj169vy6popsM8fYHv/ISK6L9xVBT6U/8m
/oqf1RD+o8LOp/qvf11vv/GWB8+xVFSMK60PRKjoyXVIn0RqfibFhvEdS6PJ+J8y396Qs2XN2SLw
HfAzR8rnL2vCXhkPWNEiMRtIpvDaztyWEu02KWuDHZ9GeOs/d5Kb1YFHT0mSd3zkfriJSG9sbLMq
Bs1qWbvZPVZV+Lqi6KaccV76KXFtSlgWIA6dxtWdfo5OVxpjxuVtSXS+v9nWi2jtDUl04ZxEw4q4
1rgwm+pkHdhx/sEpFpk08jOKpomjluvdj87hZ/DfnC3pQjzjWCvNdiN6CmICs7k5ObUy94AcQkuH
PRf28lnfiRrGetsuz3hqUHv6i/fvm9DQTKQWImNsp8X0xSjuG7Fc2+roi2f5W9DScJ2U7Yc5HE50
7i/tf/ptehYbwU2XW5emPV0H4bxtKYKJKiR5qFYEYmazZZVvV3DH93z/QndxGSS5tRBN+FuRfJRW
adtS48VN5Ua05MYKE/lE6lOOEqCQfvNl7enaNxTpNimdNSl4/JI+t1IcOqwcs5dPRhOAiAYv9p7e
m+gTnuJFbUY0sx2Gx71dCup7wbzwZratDkMC6pbGekFA1tQgLNcr+vUIp3EJdlMlKFvspLhJRJsO
ARPCt+o6b6jt2twrnHZ3oYeMuW/Bb/vrlgeI2Gr2XjzXp/s6WwEyttnjrCzmZEEALmVVt/UrbNsf
l3fDzUTijrmrSHKEjppiTq+t1dwhLq6pO693uZzOS3/Oq3/gGKm/zCr67dBi58TFVuCbuQw8tE8m
O+knrb9+KpY5OROcj1xMOIaW5dsc/q+E30yj1gI9Y/YC9hX5S2PiAkLjnDfr0ymQzkE0Ja9C5Aar
lmZVtS0e36p8r7bm6/XvBcmrBmt/WFSYJ8Uz+HBdFXlJLlQAQoYEYt2AVyAi+Y+irKtJa2foy2+b
5zOliPUT+kG5JL1jIV7d8fcv8mUOzLJpl2fW1xDYT8PvtdG3bTnr9/kye378nWJDhXOAdYA9aDi7
PFvAVf3SfEgUE2d1X6KJpKua4sHaIdndsuN6XGNnQkh9529lXYN4oov3n2zWJT3bGPXI58tW8Jlk
2RTNYgnaZlZS+NN1OYUVn/Sm/v7rPzr1/QyC77/TNcj4jCVEJGLNX/L575Q41fwH2p6LoKfE1boq
nnYWuvzaTLhd1koIXIX5dla+0DXdWJ/o4kkW6ZRi4XjInQhu2xKmXwiN03qvg3CGv15gFiy/m0p0
O9Z9AUzBoyAQxDWblR+rObUBQINdclMY/pNqRmCU9Wv2UlWbjkEkRoT1rkQ/RZjJacshrvPKFkU9
XGq2/aDguWYV6W38H6lkJHbudhaaMZoOBwFG0TbPa2yJokNgj9t6It1oDZHPdoM+HCmYErQnH1mk
Otb6/IyC+i0qO4O/IYIqdiluJovJDLtaaEfaSInzkbmXMsXbldAT6yE6L4ocLK+l1ulX4Lj98Vbr
/3wLIX09amm1zsDXWnbJkcVGu5DKmRDNAAaOS2WvAtb0SOarBVz2Kd9u8y3dpCrCXPzYjbJCRjPo
Hf63l8kaQHc1teYqvB4hHT5rOp8IUK1Hn3DWbPNN9pIvQVCodkQwYRyMtYis89v6GgyzTqFONcNJ
sNazidUNqWKw1C2oT7vn0YkEBGEm59FiuF6Ouaz7NxzsiFXXXPIkA7r/rIa0n7T7jf1UvD7zb+KH
yJ5xcChOC8WPxLfZY05NcxUK1aALqb3/hB7c/UCHGpaBHu8Z1+0YjfbOQFMIO0Uk0XwK9H9aLzFV
cXwVwrcH5Az8gU33MNB6q9jEablP2u4hVXW48+Gy1To7fOfiEM3TilDCXG/SEQwiubNJSuGjl9Rp
UkFgVd21TFu+rL/TzwrShzFGt5o6wx49HAVc3bAJY+e3+l6sFtjrDpfLsM55WdCOJe5ZCRLLgIFm
oTX5//nr37L1O6j2YpHvHR4y1gTdztz1SuwwGGIsDvmDuj5CWObPs/nH18X67XGZZ11caRyYiuBe
nePdznAqvmxayATXSjDt4wKSNCDur2f4Hfq6o2LOsHPeuAhM2L4F7p/n1o7hcDniFkPRYv2qvlMz
9BMe5mBHNcnKKQcIi+4BwkIpHwlbpxPTP48qwceOJ/3cWepvf2TrTZ30X3SUXeGLpxXRgDfXH0gm
eI7NhgG8WgvCX3792y9NXeR/rWcLIHgtcrQFBccjiMxHb7vul17O6kutMgSycz2IgQtMMPdgRs3d
kqMKO8pmulNZbfPZK72Z0AtQ/wE3BA59Wm9fwYXNT/9+7JatinrYyC7MBwxvC/pBh0Pk8CCVictD
JN9oNXItmewvHWmQ3M4m7OuL2cgVJHJMhcqelm1QUtfdXQHS91KUEHN9HDc0/FYee8pmJc6SyhiE
HgB70fEK5yAu4J+H/LlXuFGptU4I5R9vs20OdpMMWr0a6zmOYbtOL1wbDz6CnE7CdqKVFWC+ZuB6
0b4DrqVRehpOEb2covjIhTjj6Pgz+wLC5bhR8KfwxiutadpKEYU9e0oSYhndsY66F2M3S1/HS6Sh
R59H8ph09Az+AUHnxhswQoYkI7d8uvsWq6IqZpgantPzd/+PvCvrbeRI0n+FL9KDeynlfRgQGvbM
el8WGGMNLPatUSJLYtkki+ahlmax/30zMouHWFnFrKyDXG+jx01RHGZWZGTc8YWCGWsxcq45JJbx
1yMYti7EbgOYv2/ypaE1k1ITpSQTAHpoREEpaWJOV/X/nIC8JFHvBHWYXFzz7haqhuQKio2dc+h8
92rO7nFiTDMYE6OKwMA4f/7dnGeFpcTM/UcsfrXTGUj+dcdZZWSMKqAqH+I2Ggfg4KtWIJLiGO+w
Jty8yf5plOjRcaxop1dxJKi7pp+2UGFVSgLFXOaZUX/kB9CbjXkxT60e8JaWaBj1J2L8hdzmF8B2
+OPR8dh4kyynz/m7cQ8SG/g+/Yyf/2EmaIyrezJj5HQfpz84bT9L1kuAYi8rfK2pBVzqau1sCW51
9W3DoOs56m49R/NJvljky/LzKRI6ZKfRwRpibhucL9QqMNb1M9vVoW6qnuLE6EARY6kGkcBIFkcF
G9AJJAg2TEcEb6NeoDqkAAS1En6c2F4ELwG4irvc/syHy2UVgIgHtFrD0+UQEqWUCFSbBg/QaE0e
FSPAGsADmAeC0I5ZqqKt2RiRaogHYlwNsYrAkQG+3/7z337Jl9ux5Tdz8yAE57XtBR4xhFoeTvED
vE7n6QIqpafZy0u6hld14GD2vGKjRI+r6YvxutdvIFw3Y/OTnykwCZw7UXG9XtOt7Ut8TgEOb7e0
4cypObd1/mGWtZ/y1kgYbw4AVhvc6BZ6kkZF2z7neXxck64fNm+lCcOEjERMz3okjDcU73RBx8v6
H8eEns+xfrPF63iz9vaTMjt8qVVh/RXgR5m+DD9KW8t4jxi5BC/IIJUqUBfeYJHrqUrySA3DnGLC
A5+esQjN/+re+3cwuifJ0o6YMge23BihaQTN9jsMK57mk92iMhUqJcRuaeSlTybZlIxX2XvqRwhh
SPORoBEJpuISPNobbW7Ft9xKzG+G1/74VvzyW/Jinv6bsQcn4ON63SxQgERGHG1la5XHo6Ec6qwF
aa8dDsFhx0f+MDBicZG0TTrZrbPtx75capp/d2rI2dDP8/y5Il0eiqnvVbBFjme2zrfb+d6KmLxm
Tt587tOGLPH9/qNPGv7cA6r6U7I6DDV+LGeSpVZspCiKOWhDTmNnrCFmvJtP7R2ybaKPvuKtdoma
T93v0JIOne/35tyfoEXgjv5kBKb5e1jBvANDjs1b091i8VEq5NLtsgFdb0cRdVPbwfyWtiPolXjn
8B329fFb7ugv8D139O/mm+6IMN9lXttvIxy+j8M38tPvhPfdt/Kqx2QS/X94TKxjcv3n32XlCjKe
RUzCovLLOLspvsfklrYT1t3fTHOCfVltXipC4kJPe0/frQS2jlFUyTx/rYzDRKX5K/mIiDZmod8g
JBqPuBDdWUp+vACo16UtzvkEQGW7TSazRRn8zUVYRiKGSk1sjijrvOyY7Onl6ghdQ4C9U8Yl2+42
AIl5v03WhrxPlt+Mx4TP5n8UeGSM6fZBglnipmAu3ZZ8aUfzXxXlSB9rxg6vbL2YbxHOFR4JxGSM
di5TuYp0rklpJHSMdgwxo43DfmZJL1bsaEkbG/5+uZqdud2QLOdSxNTlnV1H/y2kIJW6OT8H2OIt
W9eBA4guVPpNd+uiFsfGurNn6M72emAEEJziOHMvHalXOipGAC1JhWFf1V8wu0oxic0z6w0mUYZ1
dlYfvDn3Itxh25yXq9UhoFlZJ6mQYQpGuwl7v0JBrU2+51Mry/Zn+KTKIUCKtcAQw0VXW5wJgQYI
+IdNhghnn3LNH4F4B8aEd7qOZ9oUFA3xKAFVs46/9wuq+qju0DZ8tslwm0yrMQ4RsQO1ui/AuNTt
jCVIThYbEU82m/GFYCfmYqgUF29j7LmUjIu5F7H9eQZx43obU8XpnQj4IQwFM0h0dAlecmPLbrcv
5fSPsmUpnZjNpxR0c7f2LtuPjw5NapZvtj+CqPT93y0eTmWnhAC0iSHYitAhVlGsyR1sSi0MrpxS
rRjV3257Ia0isZEvMewUhVQBbVcxfmWNFLBZ4XW9FFAQi5edBTi6uSQFkL3sCvjlUwHKGEORernx
DWMOvEYRb3YKLdDfZP8Xhw8iAehAeoRBbyJigxSdtHAqbVZzvVtBtVeNg0mh3SnGvjjeeZslno5P
0HMrOy9Qj9mET9ed8IaX3YY1cVfVZp72dL+3Cqeso7rNqhWLcRvr4GgV1MKQLlcMR4XFtM35XwaG
oBrfvqX8AXa/7UbM15uxlTYbmO9paGgoaNtsDU9X1NwbBRFlMX8ObFUWFmvOie1W6GiFdbrK11tf
syAgJUT5pM0N0Ijr1Rz0loaNHGqvE9QNGu0t7A8tbubGsrYxI8oHMUGoMRIpD2o5b/1IiAywCmOt
8t3eAkbmqV9kQkg8yAMFNWOyCg1RdKl/AsEsyrXgbfPmZvsxTzezNPWbWgqLQLwK1syqCIfl1Ahb
u7LOt2CXE4c2NZy97D1kMPzse38DEt27d+uT2Pc2tfPuPmpohyGSf1/MojpUWT7Cm+6bjzNPznNP
DApg9SDsg4cn3MF4toRTJcKRNoRTQbOQWGAOy1hKELf19x5Q+DvIKQWlO3u9YSzID2WXwfeqsPQI
Ixak4ua4sd01xlJ0Kh0DPSAx4sOon6CkEov1s6gxCyL4LqYc+VtlzporZW/gzSmYVnISa8r5EByC
B1lFhJ5PdwDiDaUoIPsKNAQtZDuJEwwhjmLFW4QCVP1YuTY4ctHMNcJIB0IbsQ6Cy90LmmOn1f1V
jVqp5FWfrlddT5DgN/107fSFDIqfsEHiQfGmrjdQDaUVlPx17x0BhIO/LGeSsPYqFlBssdmtIIo8
Ts5cFNvERTEZYUroX1eCUaqGCPWxKKe57ryefS6lAHhXegXniwd2+7L49BORQxxUVGQv6qAEG8Yy
Jh17CeXsjBzkClFChrDxOYKRD2G5ztaPJIfwJOggaQYa4/ResGIu1G8JoUeYD+GihKGtdC9Uo2Kt
jXL6RA1CPtGmyeLyGJMH7AaZ2CEmY2NUvBfQk5+GmcAP9PQHVjHmhEqsQGdjhW7bRG7n3gg+iGBo
6ES10EN4GEGHbzU3XG738hSqjYsR5d5if2UYAw+hZpn1LJgYxPgWLJ6W1vsYu2YiF+5cp4u8YpQB
tF3FxAwOgsPInPE8f81325OXXvLhEdeoj5W+7rLp026TrkHWfFIZsAg7K8M4fLDXtZ3NzEeMRRgZ
XTWioKEe/N69/6kXklmzlEH5wU1sQ+IuDyJkRiBmbVZsMiOQEt7tw12CfS1GE2rS+32+h/kUxu5c
lfCtpA4sia6Qk0cVAI2qYO/aToV08eyvJJBYQoFaG/M2APQf0xYk/a9foLj4Hw5J7PF9DzhZIItZ
AwuQybxdFxJgtOKp+Q5/zu11bCxTonsQgDXz9pgdasBF14zhZQkpA6H8w07syCmVZ1euNqUaIp6t
lHg93zhJ5x88CKVlMXm/LiBSiaA9UH65mu0Hw7y/5OWmHMA9jKrbOLDXKlllxwmSsxSwHP3jKZBR
XGEgaHEna1ytj3Hhc7vfZMtCClbNHeLQ1ivYIG7LIEE6hAZxKXkXd2SPhUE8jd3BLZxtRREwjU8M
KUAF5C0cF/fv+PfkLSlw/6sFAEVigKvhojfzffeydyccplNweVXCa4xbGEK2D8o6i5l/Qo/iGCac
DhL8RxGhl/JFme4WKzcdpzxN0PhklONBvPh2xqKNw9lYq2cem7EWiTGyCBkmKSNa6PjtLFtPxxAE
/Sg60ezFXsH8onk28aJHMCLirne5Vce8OjbrlFqPhMSBswWq6hcLcIpvhxW9BgvFOM57KKOmBrRs
kZhAae1K9a1bMWVXn27r4sM3rW5EqWj/xT6sHrNv1Oab93hQ51vWRLHIzN8FeJWvmGkilcKMcSw8
YCtMoW6DAPN8nS7A0vhqvlACFoDQHHPwNQQtjSDhfBSFxROHPM61Uqzbx339Z7ZaWRQweGyIQ6AH
RrBEApnrZJ6fclkeA0Y0QOpEUL4Cm9zIKufjem0NGSkVg5/bjjd12ZnxPF2+bmcFJRRUkRKtKOFa
Qt+phxBKqs6iI7Akp4JoiqhSRttx5Q+YoBa0P+kFL07BhbpWr19LaOpUwmTJjuNsDLGCvlpSxqkk
gmstqNZnoRTjcY4kjclLBQ9hQ0QhuOHcOPVKKM8MNkUG6naKXAVSiSeDJ+DHinEk0mjIbgPzbk6V
fxwppYHTktoXJsubwkIEoWG8E6YYVp0rRI8KlFR2VQv19vrw7oXHEITiARZBndLr3ZMiskPoY0K+
3nXeLRwoKY/KNeoRq65WsUBb5bEnMGZVoRgrvkMnHENQcohLPkhLUFRKKWI8peg1guPHBzSqDF83
YAPTEnlvT569Lo0tV4Sw0m0y3iYwwHL8nE+9FJFKQEZvIIoct7TZPR+izlV7gylztMPwWhCtVsn6
bMiNS8D4800kcIZ0T8RrslmsALmOXJ2aVXdTW1goEVXC1j0Zq3ZJzA1mSA1KRX/6ESSZvhrr+fHo
eVzBWTlwV8QKd1sHGw1+0p+7dP3xsltahPMnl7kqQnsluQGgyI04qRxGvhS5rBv9hjUfcdJoAzGx
Syxwf3y4fEvmmTfzyyjqKf9atQl/4ptg1d/zH9I/RY4WIiMv5tz9iVEYIKeGoEj1tso0YmSklaDD
keg4uKNaC3ESCjDfOalO5oqUiSWgGDJq4EdrjE+GsLzKIVXpOIyhg0mHHBKvpMUEZlJAAY3bzyxL
18l6MvsAg8/BPXhli5AjemHiLh+cMQKjvDzqhJrYcFRpCLd3tpdqIlXuqkwhaafGBtVYdkahSiOS
YDu9tk/+aUgaFIZHW7Wr5DnfbX+eJ8s/Du+5KP371iybJf7SeHBMCO9p2dd1spxOZtl8urYjwys2
gQVHgQCjAbs4qYl1x/E9287G9gPjZ/jEeL8j/14oZMwHIcg8fc8mydw/68SOehAt9uEDy9jMDEuG
4MEZm0nAyMvm68+yzTZffxyQd8e/b2B4ajHjZbMxfksxjLmyYhJQxWnMs9eufXFRFAg23P7gv5vf
pXXHT7HigWW+TUgwW6cvYwQ2Rr6c+kumqIys4vEAr63T1TwxVg00BsJa+6Shp1RFIK3sNGIMDdEN
hHL3HqEKKkbuiAnmywtsoAMnJDdmA1LLBkWV+VUPAlOMet6BcZx/yXO3g1IUbCQvYCr2TwGzWhsN
4K7bb8XPv9pwxGOym2b5ceKxtUhS/9xALqnZBmND3AevTCZQO6945zQ4HtH3JNuOd0tzQg7lvVxg
JPFICc563IMtRNznoksbMBaaUjJi/X2o6i3bZM/z9Fvxsz8vqo07RXFPB/09W06Nm5uvKmwuLUMh
ypuR2Kzw+JxszA1cZzWRBma8a9nIFaicUg5wZL5J5YxLI1ECBDk+WylZrawhVxUy8PcMI4QwGNTd
PFLunb6OaaClEMcxxma3R1cR1jamGg6cjt6CZ6bpS2LMmSLY7seOhSAnQb3s47RH/CX1thG6LYyo
FH1Twu9HUxIa0YxiA7CR/McP5Tmon+M3fsJinLiZrZv1ZK8ivf4zdDRg0ufjz/2qEcH9axVtqlnZ
L6WhiLfhjauBPbBUdqNvyxFPxaHOX3TFWCcKyJi985fTcIC/5Z1Bo8og3FUMw/EGqSAuIkTrBoHA
elkhw5p1eWiRqj8VDtNA+5FW1paEtR9d5Oc06FNziZkOBXOJtfAOG/O0STtng0L/lxyGKtWU4FQD
WHOPlEjm6dqYFIm/YwsDVIdqZVWE06Hm4jGpA6Hf2m/j4InV7Edw2ouBfDYoK3QWXtghvyTZ3D81
SyI6CGnthUv+SDdglk8ANGiSjgEkfHz4pJfaABLJUM9bhNJgs5Pa26gCG6c7uI1lmcSNZ9TKsO0B
M32y2fwGgetohChm0w1YD3O4NVfaitoLOMM8HiMCMz3QM4bIL2XzxOz/oPw6QzQB6YWFjLiT5bYA
6OI5ZP7ByYck+DTbJM9QW29e/FEN3kM0V0ZT92ShOjPBCEsIIm/Of4bEvC3zSufpwmL9VXvHXEJs
JSKudB70MJu0ydRttkg9+VNsY1gc9chh6WSWjy3yGIQkjC0NVQFPd/RvQIsvwHHj9M9d9nZH/35H
yN+K/qj9143d95nffCkWcp87o+2XOyKX+TI1/5hf3tF/vf/z6deffvutVEBnO4eDwClFH+fvOj2h
PuOj7vgFEoFIebzbWhksVVCJjqjvCi23RHBtDNSgPL3oks/S9VMFR43/wx3FP8xRGFX5pYah6M9f
inMzX/Dl4eHxU8eOhSEsOniNHPUznpBQeYPUVfhuaf49ZLQNE7oX8HRO9/h7xFVgLjn2vM536ffw
CLf1wLL5RpwkPKqDx80s2RruAB2RTncrsx2X1qudcEVJYDfzpdVPGOawj2U+yefzzM4hxQ+r6Uvp
EAhMIAzDhm67AVK9AR0Ew9QjBTQhV6ZAUKySVElFG99Jlsb+2xY4U4fWP/fXNfcUV+bYBLgwWtua
6baD8BHest/w0/YJu1e/5OsnVp6+aJS6VqiNIL9sKsP4pDorvJ1gsOOEoP7bSHJXEP50FMn3rkTs
yUqye2taF6/dZbYX++lnZ1iXIu9ixLSQuMfNh0k1EWGGNDWHL6FZEiaMs6zREMTwHmXJe6YjJsPA
TJtty6o6CBuMF9k7qMPiskGftkXoyQ6Mt0gO3OeLLtvwArshVW5D89WqHPp+YlyvqLGvVFwYtdKH
WAACdCEWpKJ8+JtQ7N53ExBGN8Vo22Rd060H8HVyYKXwQ9ih/+TChaVCMXPoFBKRwx76DyW/FCYs
aoT6OeuzzFlAdl4xGTilZijWAwldzXlQ7yTYrahTobvYSRAcsit6NvqolS0RhofsHFkkbfy1yWrt
stmcqGFFShEFPTyhjYLeEeSJjirURvwwm9dVuBM78H22PgKfVnV8c0YByUQPImdgxEBtDQggxeCB
RW+jwy2VcoA1pUlEGCeA+b++ZOl8av1C++otme/S0o0wRgFHit+YZK42PgUNxDbqht/qqkIwimuP
iERRU2FBA3G5KsSKYu8oAswDx0ZV+vmF+BhvssVunphjPs7+3c+HPd/K/SRfLJLl9Ml2UJ9oy3y3
3HoGsRB2FfkdI6crfANuzEQede/LaGgONOiTYt3P+mZBZeu9HGW2nKxTKFr8fJqGatvZUwCmmw/R
jXCOriPd66W4AGObSnITMtR2OV6IxQPGmWK9x+KDQm6w38auNTfXh8VkE5rEI3UrNXNqbbs+1Ie3
7bYUt5MjIWirW/rTLF08fM9fXkqpaUkgRy7xYKGvcwaw1eNn8TBvVkQKQLuhtxQ05FhqfDs3+lJI
LhTvUtR3qW7eXh2MtTs7aFB1+5jmEMT0mkFIBQ766yi+WqTa0rGrd8ne/DxFtXFk2wi5S7TwQBVT
FWc+eaRG3coeUD0EvQey2zABZMCtyoe00RbSRsnqkOZ8BCjSfenX03/fEQJvmH9+3K536b+YF9bf
gDcY+Z9SWGMkGB+MZcxDwgdTS0lzo7J9xeeheMKL2ERZYEdJZzR9W04fklV2R34Op67WukRePuJS
X1fsf6L5KaU94+YslkvDYKWLAQVrgbOqCmfFXuuBx1A3JvoWE+NJtp64Es2SaWCERVxcvcnKxLM0
04EDEwdI60SanlyhIHBn2egJdqvXdTJNj2y0Tv/cGSbdQO9XNhnvf5+8bE+KPR/AQfGX8GPJYTJD
841GDjHAHa9UP8QgKKErq2zmA/nOClVPoniMUW8FdWmkL0UEohIqyP+Tl0u0vTODMSGMjKTWtZdW
DpxN1CpoNns/F2GS20FcFezPmAj0cbva3ZGcTfaJYUwA72Gj8Z5GfU5WGRNXtNpukKdRW0UnBTGH
qwcSbYxz2vnxNMlEx+gpzCHMw1Grg5rPIcb3lq43O3M6rvLbmwWC8+CiE/mXLZf5BOpr3zLj2y28
1cwaxte3ejKzCHBBYjGY1rt5ujlVqZ40rO1y533onKrmiJMA0kmzTUnxcCWb6IRGOjBmPwLzKB1V
3pgTQlYeNd/jcYo9Pvue8o4vVKv1QMGT3fmJyHRLIlacUdF6FYZn03YVrNXA5oqvDoYj2oO5Hq1e
a+tOQJBSdBVtE1WkEKOZtPEACZYR2vsymNZFbDnAu6Ydr7yHV7sA6AYY10Pfh9bFCZpL0RO5LgCf
AVA/vq1rW1OUQALb1OWguemY68mN4YgVZtfh1IuJViqlJtdki01xEEFNTxSPKJE9krJxV4NliZA4
F7OtKmr4eENNHb8QQbA3A5395ZQcUT1JsLNCpZMpzHX1SoRYxJehubGmmL4BN1ItBb6l6BfVrJ0T
2jE3Xiilh4jJwJLoh6Ajr6qkNwIIaxIRwKgZeYZLwJZkhJUgnS5Cy+iZFloxYpGmI7owpTHP4sEM
tnichTn9nO+W02TtTZIKRaDjXw/wcBKJIVMMGPUgvc/ay28lIQkAt+a6ETXAMTJBh1glJqTefBXC
byHCITFBnbNqs2IKbzRDq8CmHzlMHYJfM6KRJPhaaay6BC4SI8LYFchngZD33+IY7y3L58XsgCV0
uW+zl49KpGYlRpLekJd2udcrJkIYMov3bBDv9n17HMSr4c/99oCatZon2bLsRdCR5H3kWUPv94Xm
ZWOah4216+r6WOfneHs8GVUFsSPV7kCT3XbmR1+FiaS9Brb76CALtbpBYnPM6/tX1cW8AEBV72ed
bPNiAI8l59dSA1LgjMuOF8WCMtVi2cg7dcQEqFabSkGEHA22uXq1Wb1PxqGWq3siVl99qyuLKWDm
hr5n86zCLeGcBwr13g64Xm5iyIOQC/0s6vYSApIxOeCJn93uUwbwQY5R8z8RlKZXw1keNWkD43Sx
COF3ZlUsVp8Re4zZOGJB0wBVVSDguMKFkAC4rmAGPuEyGL4M6gtWQen1ST5NnyiS9/s8+wGg9MCz
BUDpp0Ks+Xwzzl+MeWYnv4E+SLKXEpKk0qqzjXZXSaEx60QvBpVCuGZu429I1cmi9ZUBYQBsTbke
a6IAkJGIa+kkJwMqsc3lbYtOoploIzT2c5bdROzJOtnMfLEmBMPNpBZNVF+TO+0EIHRu9LiA+F/2
rrW3cRzL/hVjgeTD9rhLfIszCBqp16Ixvf2cnvkYOLYSq8uWPLacqtpfv7ykbMsR9TBFSZ7BNBpV
SSoJJfLy3nNf54oAhXQiW8UIw45hJiJZ91UKfg3oKe2eHonhsjNSuLNWYlgwDFAXybWU29l9Kxhi
IllH5+MSfSeQHEtX7PaPx+FBVspWovOH/eHDtn5ml8Sd2mKm/PFwFL2nQ+wNek8otccE6lVVcIKB
CqzPNRBFVK2i3J5u9/RlttMF68YJzD6r/VPGY2evwkVATzTW9cnSzXQVvUT2gY0wVZj4CSsUd0Xd
2SruDK6sAWXhNfhzlrIZRkKKR7mE82WkPOb6W8i0Q8wF6aj5Z49RvcY3bTScIDG0aJAett/BK23F
DgH17kMdBR3SNOTBmebUix6xRcOew5KWUGhDsZjf1TDD3a3FNlqnWWTA3YnqQTf21HZUIAQT22gX
f2MHNsC4GdYwKtRSuywApR2z3ddkrnNdi+gJ0JohabKFGmFKNmdu1r0UOoAt/LPevjeb5PkvMPeP
0z/Ff3/706+fg7/+z3N6r/778bfflx9+f4YPP8Afb9/df6/+evfLAv0cwRfef1h9+OXvv1K8/pne
4I8sfHt//zf1wf2T/OP5xw/be/2jq49/+/Tb/pf1u3el2INAvYqGVSIIIF7m30XuSkvTukiNKEMm
XO6U0xhTpT+9rlQ9XTSkvZ/JxbWgBEid/YrosVo9Sw9frxRWyAIiSfuIGjb3g1X1IFOOu1vtyuZj
xOnVIBgzO7Iyow8EptS7dJwk4sBCmbeunoZc2VsZgG4r8AeoiutV4qoeXO6uHAttc9CauI5K0f/5
VXSeAADkw+BfykfTrTWVzVSE4fXc9YbCZtRyNp+rrOQV9cprMjm9fHSe/aabybwDuU5kjCv+3x1u
tgITRPneeIDTypZRUnfNkUBAWjLUWTVQlnpbiAVsFH1iJaDHEvV51It0vtdz76q56XAAA1uvoyCg
ufuXUkh/EC9Rh3okN0ZhjD4ztQ/qOx9fzUeprjESSCofRFxLLVTFO1iDfgSYtVGP8l8XXiEkVIKP
gitzUJDs00Fho2De2pyZg5EEABZijkfR423zCYSyPmXbLtKMQWT2GlVXLVsR48Ajia7KBtXWpGHe
D542FQjt8bSUIVhwx9KHQozLfP4Ur+zdCkipDukzIWRetPh25WUlVM8yMqLGauQMaJ3kB+7ZUKAR
b2ZcMNdR8pSqDTADEvO+N/3msb3shANGDIN+7uerTu02Q7pRgPVg6asCPc07a3FJ1P0VF2LNmtE+
h70zJCJmMI3GJiDDd+eoBIZZZvvdncIdt2Ygyl3lZKCcwDEgdEyT28x8EfIguJIrFifLSP0S9f3m
JazXCuGWBNw9mL3aDLeeJdGpFlPv1bv218d6zUMxAUqDsU/U3rnJWjK6DqaBrO694JNQvCre3u+i
LRQ3DlcjaQpOCZGoo3dTwA2HHL4JFhwfpjjdt1wP3fSIiJJwwPoCpwRZ7yQyQYDoiJeuwNXSNgiC
1GMpQIAGrJTZbNPNsZ79UDCzq0YrVF5biMa6z5VdOHicEKHa5kwPDI/Uja+OCxKuE4hjlO/lElBt
KQiFUuU+L/psFQHOnNkYemFemUvJiFPFBUJIjHkIjWcB1cx8lLbWw61rahZH0HjbS41sg5TgPhpV
FdK4f4avL2eL9PP7n/73TZ6hV7f5cTb/9LyFNrnK+pGgc/qpX8Bw6Keir2ikx0FYh6cJXGiYrQ6l
nr54nE+HgPHC1hnFtI3DIR8l3eonqEyYsnPCpc0xH8z3Rgl4Ah88HB/64Wmbrh9MTfdDtX3FStQp
CocHL+qPRKGDRD15PYJhiEP14Yhq88tulZ3ymQ7OtsC8Y+rQQcWp79ylW7t6g6qMUY2lOXjreVPl
BnCG2bVB1jMp+PaLJWJAwYWhFyXRDr8j+C8zHhqoajlx1wMFlqBajWCJB3IuIYHDwysAUdXiISiD
oczDXqWneAVjfdKkJl6EQwlcgl6Obr9eV82MdSlgrlrhvPnbLEEnjKJxilRqcpqQjZFYch/vbkaL
vspTm5dnE94pT9IuE46RlzPUk0Wz7MkmJVz6WMHSyH9cgXYAK+2nsOrlCIzgCfyJ/bnqPog9cVEq
BeB6xAdHKvW5EutP0yxeR+ne3nnG2IThMcpnsu0s2emUy9M+mZudV/atlDoUMPOAddqXokV6tUNl
V1BjPdRu5O6FSDhOXmareJHbv5296ylo2XUlvcea6mvmiVKApBXplPRn9T5Hj5/iLAdAu8gqwpLx
liMxpF9wvlntwZ9uyJOICUH+z7PRt9nHGiycboG9QxvmPDqc6YVK5ztkUTsEy8sXLivUZANI2Vys
Cpy5Kk3XRCRkw0lMPbo3YmS9ciGZMEEGFJ7ilK3833bKsbSiYF2PiofTB9H6ETzcyt2SPGjZ0i87
oF+GO6xw847cSHHzDt/ID6eP72Xh60HhY1T4uPg976vBM5HAwNZhD2CZkJjH2p0+eUsLH7/dzgvf
FtZgeYWbaKtGI9kGat6It4A2/6SH2d+I96XVkNJmxMdqADtvgndW5ElbVmVJX8iTNrCPyJ7SJoGD
YSinTfILW1qBB7LlAJ921/UGB+Z/K7hWKBKFfdg5q1nFkE4QA+rt0r/M9os4zcsMG7MuIWlbTlZx
FIuvyWwdzx9mi0WcPD/kX64chEREbydRRhpwFkh6P4vOPXSMDosL60FIQV7s4B9NuMsF8oexGxKH
oRlfMhwa+ZJBjmtVw/uAAjPbw7Owr1P1UOlLtLXX1IEP6XCVLVFgKrCX30MIG8+franxMwNb+7Ws
zWT4XABVIO1VSMpaEQUtC+c9XZe62iUYfCjwmNaycVAFFZCY8H2T06TKTBIEwomuxjxUjMYgjGtK
s4sfs+C+F+6GNfWq9HrQxXxXVOLuKrhndR6c93fQpauoj7qHiF+jac1r31wKt5UfjDHuRXU6oika
YikHVGeGJOIJUnJ1XZYIWl+wDPzLr+2WVkMRCCuzQI6pY5+ibL5sBnIMhq0g3xewemcUyNFzAC6Q
5TYE5G2bXoFcHAdEON2ltrm+i8IHPlmBMfGOfgsnWVKlcJYoJOOAzSMJSVPTIqVQqkbGV/h2UmGo
JMbjhpwtqqKmHCOkCpshEVxLPL9GC8Nkcx4MbKbso8MUrkKyY+bHRH0O8OHwqc7pQnHrVD2RffiK
Wp5pN9XopdpyUdlfQw5FQTDmNWwIaRAoxApG3aO8pBaj8DJfsaZJswnwE2CzRwPekWQVJ3W3FmZ0
Y0KGeKJiBKH8bJZSBT1e1T1Ic9BLDETNKdP4qlY6f1IF2hfRavb1DpXqqKYTxIOQk06aJ9pu0y0N
6FRPSrSqWmCvDfHwYqTdSmtxHtUMpgM7TdZpoJhy0j3YD5wNL9Eh2P+w3EZP1jwxeGeYXIXr8Tnd
frLHTVFA+VC3vCwwu2Vkr20JAb/Tbhi6MO4gvzbnFRGQIAs5DHcRvqSiIQkkQjIhLjkZq94KevBr
L0T80GRRx/oH2nXAYGv6+AcwSNSVSgDpGfWjg/W+2CfnQvCOouEh1pelOhng515u0yTdNwR3dTiL
sjE1VMv2OKGuah9Wzc3RUbts/PDiVpeuulBiIK4mkF3NFMDFhAV8EE3bsgWzOewzT9emfGPzXCod
41DHypm8jtvX4OpQSAENriHtQCAUejSY21SAV3jYDAnIUfH8OS51vpnOQeIJDj+n4Hfb8bDQzuQY
ZRBWDIqEGArWSOYW3W2TmuK4t99NxKgVRHCLm6P10HHkUjlUGKGRx0OMO2Hnu0IhBM8ctmMZgzB+
PQbqp3/sTqHkbbRZzebRYWJpFVqFq0MYGUePtgcxgZwgMXLgtiQzdU2WAUIK0LBxwvW1NLskhDmn
9MpglgVZOVWQ2Z2ocEDru3t5Vj65wbzRKlpXEAQhjEK3KpWCmXhSS+pgtDr7ZQrZ2uqai6Aly590
JLY8MrjZizAx1AJ40HHrKANuyyclVstpAKQFabKw129AUzhyNI+Vk6VJgL3+xkMQOqQDSgKS4UDR
UGXd6FUYl6Z0BJugcIwyraNgAxEicIqZWYFt0pkMiF0CNLBqS6v0GWtLJCtH422mNAj7fML7t+8+
wv6ojXptiLCEEdOCkbGjBbUCZy+vCZVX026a/UXaGzdqb94paWNlcN+dywmlpLmazpKhyufE8R6K
n6oSYgS4iIZD6mfBO1MMdpK0upkFGPi+5WjAt5rbG1hZOO5mZtPt59l2AddGrf2sq3eelJDtaspd
lQkMdRXW5X6kTnUbeKXjANPZY7q1X9KACo1NOtyXeg44zEToVvDfxdyof6xF0YE01Zo+XrtmBKAY
I0H++v3PrYpu/QphhpYY15erVhR2TgaACTDafYgYMaIu+MgaiGu6+lNsh0VA+keQoMNjy9356Vmt
bCB6qc+uvNPZtiKGq/YI1Et4DfbtCFfqDR2TbmrdA547exVzDWvuHAmA4QXRgcszclQefZmtN9CO
kK7flDA5tFjgAQvVLtRgtfXvQgEKGYjQO0atgahNqi/HpZ3STReoVyHFIEAvn7bwGu+dUX9WzjMX
EF8R3TRL+ikGu7zbxc/JiapQHZh9Vg8s2AUCw7zo33/94c0X9XrvP/z4/Yf3UyD9KMyRTqAUNTJP
o2Mbu/1jtaqCsTbMrQ7/8ChnlrC48PGZZnP1rzuFUmv64ZTc6Jb/7mcBs8EBD+9hmsgssRqVEGmW
/G7IO1tu0yxbKSWiEf78OT5yy9ooZfPvvsOM3yab5R0qhRA5Iz3A6DPyKWVjz+kWTAfBhEjpaATM
phe81Cibzqbm6/b5DrD9tNdLoEQ+Vwl4uopeopX9QbB0E4LLMY6xOiAmcaKxu/LYnjWnqTYt+umT
NCn+Sw04QwJaPoT0dVmy2bPdjHE3h70hIEwsAWHCBbxQHzgkmi+BDUIZb3hP9RSGIOkuD7BMDz84
NT95Q+6/eWVOvjlNTrghb7/JbY76oW92s5con/gDhvqGfNQcKuR9G1vWwnbpY7n9593H++9/KHdQ
M+zE/GMTAns9MTCTYtb2WEz5e+tzebV338HO3fnct5KQ4W7G/gK1o3zB8lft0Uzl9uKeELiW/AF3
GCmvByYId1cZpmANnnk7SxZ3wbdUSAa/XjkFIScYlVaWMDU8IEGnC1EAuPpV8w3Q8MXSiEBIqGd3
OpcPJ2n2oHUilA6booEHEzR4MOUZD4t4NwdCg4qGIj2DgXtQAeZvGA/9lLuNhUEhCtbaKQjZpB01
rLyUdb4ue8hD5R5iFOBrcTDsrgVEB8kg2qaSzPvUR9UV1MVJks7BWL7E8yxeGwnJv826vDIcNETe
BHM3/bxNFXLKPYtt9IceKwrysl9lFk5tUKswXbzH/S/oeKtm51iH0f6DaS7DNIi27gu/fsCBBP93
sewUZujwvm/0q6ucz8cWwbiahEg6prHR44mbg1lYWeNOCa8kyqBXbLqL1/vVTC19kq2D65ojFwXQ
nnVy7HaertcA0Z6jE/2hsgz7JLvdzLLl3Zv8J4uz8vLfoUMj5QgipEU69g3lB76NZll0mhxhleuA
daSEstiJIvo/sxn2MASMpPcC4o7hRxjxYg17wYRPHvZY7FcXFg81yUk/Nyle65tjAKuya/OKWen6
D+Jhry8LeOGeyOAKCK20AabSN1rQsuciYD5dH9mJ82nD9UWORrdzl4rDg045aJKNQqU6UWMYse2O
NhJu5K7/tqCsYFYaMBkRNOhPRVanLApcp8tZUjUvGLhOXRoZmy3Td6VaQZiRTFz8ihaLYetiLn3Q
5cV0nFdHVQhQJn1HSsVZJHQjxW9ei9nWwrifExO2TXTi3vWkfplN/WJlB4PRHonbH4lTOtojIesj
ufUINkskskq/FHi098f290eBCwPNaB7xa4tSTvNgPyqmdO259dpj2be5H27zlAuOoQ4K9ZyszydD
HkcF2YC85BMa+HDRsmW8XcC0dIWK8hC0TpWCq1nnSnAuLu1CtQP3fFHdF1mAtLss2pwl6HOwGowH
44lNQ9CAX0lgwh6SQAqZjYIc7aXQoBMoHSVhIXlABimziaKaMhupufjCXmRmnS72q8gmuvbcFUVu
0YBi1b0mYTFiCDswB9FcVfY0C+LIK+T49ski/3w52y0reqNYy6mErSRybzKVNpU9IYx67nh0ahb8
jzfNWDDMiSt915/qbVVihSUTOrzaQ2MsuTDWfe3QGAMxaa94BpfwDJJE/FshZOhgHk7B67opA1gr
jNyB/tB3CZ365X/JK2OIcnUkwjiQiFKGcFmwBGakG+ftc2qobbNDu9mmgk9KMEiY0X7lmJTcEXXq
nRqMtaD9eHpfLQVfMgCXpxCkqfG2ty6Rzg2EBd8WKkLVTh82HTJI9irQwG3MnKOwV4u5oGLSrRLx
9QEUG1oWi1WUq4LieVgfpCvTdGujt99sou18tquYLEZ6CTkWdmW/yuLN6gD1p/l5mXBIeaodo251
ajXyqXOrC3UppvtEfTxfzh7tFLAYg5vqoxToy3oFaaa868ne9cm4W9dnC0nMZltIcjfJIEZcCSHz
m2KMdaPUF8vmKpU7FGUHcyJhLMhQ3vVv1NosL7EE3nR1r9axUq9Kyxa6KK3UFpCvZ72kRKg9JdIl
wKKZFIJv5Zv8mtboUAzkpAT1bcSq+Iq568Sh5n3F1vQPQwOoabuN0MwVvUShqT0KLXpZjFkXo70k
TLj1DEkv8iLsa3m5h+cDtJ9m8co6JxuxEPXtF51BrOluOwf1u1um+9XiYbtP7r5Gu9v5bnN3+oYb
tfbhmW7IPVRY3P7zrvWyN/jjkUHkNvqi8EsMWna2usu2++hWo7w7/edrwZIY2NPbcKUpB8zPCWDZ
hiy2crk2utCqBmlL1sPXK1dVpCTqtlYofEmJrg92f8vGGEYFYYxySyeM8Q4rx7t0BfjvH+l2tYAO
/kPaaLNNlWBlFWXhIYcanA7bW5f4t5dPYN7LaqF1MRQMeUUIZ97CiAp/ZWfYa1PuBgQtgNs0bnp7
RRS2CfJ5Wy5AvIfWpYYAzaF1CXEuvesCSyvqInqaKe8RDMqBMv+UQarO1yiLCFUrPenkXHtU1a1y
PSw16ElhZSlMA6pQWKgdKnfW0Yv9egNeNGyFpcUMtytt86lUZI9v+3mm1Mw+yeJVxVxgpOcTO+js
YktdpLuUTtM4HmbZQzUNl9Ix0H7c41v7w3vqSyapNY+m+k/12XAYMGhV9NEsi6bpvc4ZRhS4abzd
98d08bUBmhBgpyOBT/1W5CABzVY1uxypxS8DuzWDxlqb8qBVq+yliiW3frbea4KZx9193ap7ts81
260gxYSEwrtoGSNSSfqCurx7y4mnwkFzF6Nzmu5T7aEO8M5n82VUyQwmalM8DoeYP0dUc3IhgebA
fzk1DeENTpczpXvfKkCoNPB8OdvO5lm03fWhvevWK6lZBI69i0PmrgcIQaG/2/cVaKgMh/Nn+MpU
nY1GlMD0XDujGgOgFaFnOdasWFby0wnFfSIr/a4N7TjnCZSiWtFVJJpyZpuu8ry2GRRwPr7FjG4W
VPiQGDOXDlZNwAsBh6QGE1Cu2TI8mpA4UbcifommT/tkrqPjoPzSzX4zPaqj+TJe2VP7FGqgKLtE
frrvv1bADBokcQ/GOz+QGncc015MuNl06Cb8Csilxe4LMqEuaM0p8UWgdm5k1zy/GbjaN6cjCIRk
wTC63KoRJAzZJP2gyvhsKAlgSvOF9HXJsfXJBJsQGY6NVZK0DFWGcB8zuwfJJowSJJwsrp2ZJ67h
VQJqHuTRTJnK/N/06+/qDBUQGWMXhWH15yyofIosNAVhCAlcl6RJVepiF/9fhascwli1jt7G6Q3z
Oic7K6TjPWrOMobWLKMLsGleS9rXCvpYCwXWMgYXX79FGgQhe7ulzzix0id1/jwKeTt66P7QGGUu
Lk3n686E6HFVbFmVC6lWZmPuNRNeg3RFB0qhT3t144Qy7/GOo1BPl9FqY5dt4PCiVF45jMiGD0Tz
0AX1tRZ9YrV6jMPC4/h7jOBuaHK702MsTgz2JEBWV4KQCaHUIRpdQQ4yTxfRnVrstjosYeUXLz2w
Kb8s8UPBA3JOxjkWisLA++2sqL9WHgfM69wnu9lTFCeruGKGaoCDptbYNii75QHopkIBw507+WGX
7UQyjRLlhM0jBVb1d+pWO1CpmtFL946kyeprZfhaUg+R8iSdQjlrdGIraY6d6xFIfbvMucOiXJTH
afQys7NOKU/MDcNXGreayL2EVk/Si3wUauK7SEpZqqFoPuR+cZ2DyEC5KpW+HuP4AMZxLr81TKfl
3k0NrjI1WGDPwKoOxmEpvRs23JdhM3wDA+txJnsK8FanRXAnZOMYuCSEoQHNVZpEJUWURHG2jPTk
6JlSSPBh6Vv0vFatpMxXrDYF+uh5MIpy9fZeFtpNHk5Ex7C7RRORSk3ktd4YGhPuf/jhp398eA/s
JtCvftLHNWRmXJB2pAi+LwR1Kuws2BhT02O4QY1NW8aLaKredLGyowIhmBsBxDrezYsVdJC50UNY
nrVizjM5t+vd8x25hTKzu9dRKo4VTg4Qx4Fn65NnDbLlTIl2tIXmpl1ZAOyT7NmEIvyvZZ+YJMNp
UU3tWEntCdX02KXY2216NUy9HdQycyz6Kbk5KaRFXT4FBrIFXhQTVGbMikO4a3IpDLhTWTigw1RM
85xOpokfW3k3oLgDTzBdiV6URdNNnDzbTCMQBofUVwSsXnNXTK8MeMf0Wp3FNPdAyePRTWplPBEN
hJv1tFdSAgPIz/YjUDpAcD5kXXZIsaf3Uo7m/NNRtnJSjk6WHMZIIk5EP8bUPQXfDdP5qLi6sFVr
CtQXys7to9dDxXXZFWK+4bCohMOOefpu72lY2iaMD9nyQLn00PB3yo7kw1GUXakEK0LP5OYeAfdR
U+7NzOE63I1xuwboC5Gm6AtpCo00u4QqT7OMoGv87LNp9EV9l7Esh4akc+pp2MJFBQULE94adAAW
1ZU/BmE77kIHm18hPDWZSQYNGvJqM5PeM5Gl8kOpJFKQttWfr7jH3MNzgvgCN4cjNyOiz89dm/1t
BQMHJmJC6ZCQvKL8DwksOlYEX4zCECE9qKGbAP35BmOgC1R/B9kyVlIZGDlXHyRppv5cKjiq/nqM
okT9BeelFIX6qcJTKgdtQpRzwDuGAy1AIawGCuHAihlMrLoh91m2jR/3MHlEAwnrFDKY3YOGbCHG
vAfLGvZlWf+fvG9tThvZ2v0rfHFqz9lbY/Vdet9ypWLHSTyTyUziTDKTLykBAhSDRCTwZU6d/356
tQAD6hZCamE7u2p2tg2YVnev++VZHuQY6hRr7ep5BuB2hBChnqCcc4+Z5jWyynamNRlaR4kaSwZg
mdltYaByB1UCHjjgdOkFaqbvCk69pyDDBK3fBJzECqbwa3htUmKemuzVpI1lHGUzSHiryMUvlx8V
yb2TDCv90540Ma6coN8/hwd4u/ikAQYZ/FT/AWRoqV0rHRTm4sdceXYQG0/aGI3yhFIiyXWiYJwt
BoFFg0GosgF55EI/PBNjr9rsgt3EuR72icb9z9LaO53PZvocBMrbrGqYmJLAwlu15gwQDSZ3m369
YmoEGNR2vryXFb/d79Baob/1b8++z6Xdu9Vhq74eKw+s4de/GIWTn2ezge5kfNH02e9HtE2B47Of
r2ez7ZWg6MfnVu5gE4xweQfN4CO2lPqiAG8+G22pcuoCLEfHw0Icxg/ZbP6onBaQ5iBvGIXUcHJu
3ZwBP9dXPFBbXIwqQ1NaKzemlK6QVsgW4FXbC3LqH6zfCLdQDLoGnVKkRD0hrlB8lAexrT7BjD0i
L6RGlP8V+9ZfLZ8H+sZ1TyRfX1erqyD4tmvIfXANkR1hsFONKvMmiufSWkamPCLZEnytk16jdGld
qy5b84z1PjGEfxs1i+62fKUJl87kIxosXr9epn5p3WvmAuTqR3oN2P2RMj60fNpTu1kY3EJFt83O
kzY6TrQ+gLzXxjpkDwGG9eF/JjnHpeRw1pVw3cMtxltI1dbrsNdXCLpACO6B7bgyMUrB4KC1oiQW
sem4+9BgcahOddB9nEjBwxnDRIQR0dSsW2P93HzM9Ak1eZqNIFltGAzvLvUmA8cN+zc2TIa/fnv7
RurOD3kwtVqYDIPRgIh1czJaHyFWUk3i8o6gtKWIzOaBGObUd6hAj1ofH0QZuz7lh3H5S8GjGIf8
Nz2gftya175Gr06rjgxjHc5aVHw1hAHFAKbFnkASg3n0qbgjwTiEiVuQ19Q4Ihx7D62apGGkx3Ok
eSbHnoW+1Akrk1xrGkDQ1muikIw5xTScjrXxVaqm3futKcFtr0QP/gKayDug5HP9lgyP8igFcZv2
E6zi5M/DyXR2ty1YfcjLNkq9G7MVSNSrztI9ezfoqxiB5vGbVQ6oME4yvC4koYigHMJE+HBExhoN
t6huVRhsO5gG4T5G424xyLbb6x/EusPIw49AzxjcIA+GG9YpTb4hveObsAsNYWuXYsoGQlUb8VsJ
jxKBD2bJlQYvXBjZ6DcqHdtQYNDMD6or1TfnAOSz+xTsRYxazyDlTR930/AkN/lAWBUoHcY51sFZ
Wi9gyieF9pMwU4ALKn2s7dzzIHXm2bdqVkShRTtYRjmRsO5QLoFtNVDEFVLGUvmRrTjvOJGfbv9I
8q5c2uH0cIGoaO+iTp8CedIW6UXbc9cRxFq52Ap5uDdOsnmq36ckzGojvPdMYucoR5p4LgFUQoQO
frDIa3fmSM6NRi4s5MvXAKkPlzCnRHQ8WxmXPQ6/mS93iCyfe6hEn3SZLJtHOl43g1ozgjoUiydg
pzQLfT4mKHtGvYdQdWW1tx5lHcJriOEtU2syDYuBAWlbkHrZ7L3I29w1jlH1tinbaH3YfQrdO6xR
4GNd9qsQxPLA9GXwrGHW8UAKYP2/AykD11b8yXghRX/E6fiIWOwK3t0MjISCJNwMakAEoUlSqeKO
88IKAYZnM08zx6S+ifRE7oF/iTxbtvtyVOE+TR7UazpcrLam2VkP6KtSL34g5BIkFxSkfYdb71Fh
Xqhqa0jrm4Hl5/BNqktr+bXP4Pnk4/XVK5pYC5ME6opWCguATrUBF9ahdcDnlwHGJeRBGPeSvv6i
fZiBgKhopV19q1vZYGrQDq3D9MXeuq1GOgwjrFr43kWDHkVPwQFgrnsYlB2GPPIguDe7Vae0ECB3
UyekvuSk9X58Q1RGHr/0CLwWW0hqKDSKoIRbMHGYsE15gCa3FAGAvjB4Uciz81ij4FIhcOa8/P23
i8l0HCo70gTn58MJMf7QGt+QyfJ50yEddUKLdSBX1/jz/gjGUXyV+3uGos2Gk6oP4tSoH7J7sRsn
IJGngXrxMD4OqxV4XQqvTErScfhVyo68inbxuv5KGFM4frZbsZS5V2DIfD6Nzt/FPuQeLSmUTYLU
uh6s6RywQyn0WtiO26UoyHXVDCIY5zRMk3nc18A+QG+JZ6FuJCh0rAgPAKzZg8tcQ6UaRjCIiSK7
2qgnlaMBLwp8LXu5zdw6MJbKM78moMK3TLGrs8ZXi1ekQNHYQ4QyUU++l6yUZJoGB3lhnWYhw7LA
QWn1GYUJa57fjryUlp9RQjJf1HMO7fOQ3naRXiWUC+CD2cNl90R82mGeLx63rSFOj8TLNmyK/Js1
A9YZ5669IM+SVvqSZtNEP9wBopic27Qvzb06BMFA9ypWBKrBI9L3jMObklZzRIXU2fyREx1+dcTO
WiE69c0aoqNcbr3BpdhsItT3oAOENmnwhJPoNuyf5Y95HHST+UyuF0hajVbDZFS83Ug6QsrOagNz
0X4WCFh8UrpP5ZFFy+rxHM7ZhEBabSIlaq1zEaMWl6/UuQj63fYjGMDzJ5JcI+kh5eM2Ir1Y86QM
JaLJM5VaHvuTCfK8ipg+qJIe6Uf9s3EYpHlk/HfFufoSPAjeeNgWp94fyxrk5jr7loh6VnEkjxUy
WZVHqe4yc42i8DBEP60pwHXsd9Uef/+2EqrZvLugJeyMpQein2iGIe6D+IGE28vzd3+bcHqJx1oU
LtrymNVytdq+1HgmHeJ4pdhF3Y2Y1s47LCviT9iVRcZbJdD5RG1JBAVrC5QtlzQbegLAo1xbkM+5
PRuq0SbqZ8l5J7tDWHKZjufSRoRQc++EkUNLPpO0w4w9gLSbJcb39NoCw2AQdGjZ06zl1CR7WCML
bVvzZ9Ng1hudm6JXiPq4UAbTXHmoeMKWjNEOfwL0hx0oMy1JWdJIym5w9soJquyOEFWC1paUV3bW
toQHCahFNfehBPsQ7mNes7QoW8xWyU1doAFmVpIHkDymXAb22rFFp+O5NDWhKUmex2AgBXFWUiZN
RcXO3Pa8R+tm5jybGcqBOcVqGkubzsiKc423D7Fw5tWx+c0RtmECNpghX9ihtIYDlhNStjG4Eoo+
1MtFwHamRmcSz56iSXpzCFk5MAxZvzOhht4eiqVzE+L+BX1WlJOGD6XXA4tlSw09yvJx5VbZKa9C
1CO3YAASYtbnBGLNnEDMfbFjbB+qm8RZFFqa8jiI+KzDeB2G3ZFphQo46vLG37tZAQfFVI7817d4
WhYa3SyI1AWhaAuTAc4DsTauSCXDMRatq+vFXE79gFcokmszgrCKay4YI3+wnCmKxi5yvXpaRX/t
CtRDXfFi2TJTV4k5m7HMpaKZplLVpLOoLFWFGmntq/CumwRpP8/9S+EqnycewsLXUSY/EIx3jLZF
VGGpoIMpvWUG16CDPaHCGq2y/zZx6OPb0ueokwTQxne2r8nABAywYarEtrG31XCheC1IZwX+k6+p
kIAUCWEqpcGJ+yyaDNEJvsXOMA3lJUzjIbyEt16CNMkJ2bZGqC+lhosQxi2dTDCQz7mDZglUz7hu
s4SixjBZsm1JuAmMUkEs69dcbxObMZU1CTRLQBnocdFpxRgmqlkvj9vMI6pE+FqOF+w9SHovFQ2o
wCNy+mycDE+gFu/nZ/k7J/Dh/wmmEHtYzLd1bsLuVZRX3jhxOMt6wTT8DyA7DPLKvGc5KMfOv9nm
Fwb1Fog0udk81fMmlI+RLn5xRuq33NaEnWudGQ+A71uR68XY51LSlzszCHpcMUeWfUeYLj8M06JA
hVJ4gfzWgljq/Delhtno9yVbUIR5Sy6H5jGc66g3iyb6egchT4c3EuKrIZxBlsG836Dfz5xRlM2S
9M6JZqF2YUBQqYZMjEzTxTYY4v5gptLymS0To8UmY2g6ko4XOcSenyPdrpl7IGYsDxW6RKpwy6pz
EKWS3CSt6f16F4aiu6w9IagsOn08klUcqlPhzkdpOFC4/NUoHbyKKuNnC4Pmoqy32bUZ3KlJc3lv
1CKk8WySDU9w4aTh/zDD9CA7LtI57LmFOPSeSn+7K1399wgsAcYps2bj5QazVvXnLc12cxMvz99d
GFy6aHvm+2posdaG9r2KM04qECjAsQaAglhN9+Qr11HAmwey5lZubnzrZHLxKAVUScUoxlyKKf4A
GhEjqFcl5BBXoVGJ8jI4scYOQXw3iMahBrCR+rg9zTM0pCyhPISJNjiwqO/34z+MoHWCYzu3Xl0d
wrQGTA7OfGHZZDDkwmhCwdo+iyL1w2lQ37IVBr+Eea+dNs5ZeU5DpdhaPu1MUp96O6yUURKQH26U
oK0o655rxmciyhFuEu0ob36S/N5UpJXlSjauN9fDJYQNJROUPQZDbNkA/uDWFxF1akj2aUgjrvtY
Lr9ZAfvuGPqK63MpYDK3aAvBlx2pQ2zNpBiOk24wdq6DNAq6Y0MSxxUN19xhYEAdX6Y3MVRcocHK
QMi/yaMMhuFaXUAYSw0Wz8fjkiJzz/UqYibtq74yfdhdQL7emuJa0m4w70eJk9d87S6IQ1CQIpqa
Cldhf2UeGNfiXk008x2FEJA1KeK4uJywOk77OsyXtP3vINswTIE3tSVqpF5fwuK0jhf+RTYLAMMq
gXhTotpltRhDTGVqkC3uCMfRdSivLEn7etQVDwqRqT13Zg3wJm/rU+CR2vEFhrIhrsztBzcAoE7v
4QMvhB5IHa6JFO29qKl4rmutZFCeQAZCZU2qrV7aUdxFXVXTY4dD1svQe9dF5Uw8hfezp5jJ4xz3
EmB9Cs9KFkgteQMZZFWwqAFNh1IeJnxhV1sthXhphlUQWhFax6wzJuEsWDV/lQDrSHmHa2hkYK4o
Hq6A49ZairWlMrhDuGcxh1U4x9Luag7D1lATJVKPhGBiNK61az2TKP01yV92xiVoXoRg6DRk7HFI
8iP86sGFuWRmZKn6ZJ239FhqUmoJ7lPLen1HYRhY1y62JJkXRYBLQP3ZKE1uMie87YVTY1EYUeWP
/mMIH7x6DAYE8Xzfcsp0FTXcoUA8JdbtydviuuXx0Q4Vrn2jXZ+2Eo0TQxvKsgQlREhr3RP2bRF5
9DCjT6dDfNzxGjkIpUQ0N3ROCdbU69p7n6jDGjke68JrLaQ/BcGZzaLxMkZR0gMPDYMuaqfSZv3M
zdU+nq8aky2aDOtHsW49wGGYQFCrIurtqbtKSgphPFWjUurbLHshfShJfMdBLJVEqqJS/WTi3Mj3
7+UX1lc0+g0T33ZtJfmfZJoofnibyW/UJL5OkQs7Yh7nzYChtJrvwC8JnVkw1AcLcb2i2eqt8rvs
OLl9eQacefYTT5sR26WKg6itvmMQHG9muZcZUM1Bq870coD70ELmPRquUCyxRsfypThR6KoPzSfU
Z8Je/mDd1NrVB4Jxm+x5Xx1qbHP3GbeZHC6Pkq1CVPocsXR5kbdn2MRSSQx425TVUGC1oDIRocye
vVvWs0saZqY1UmfB71Lu/LE0CX4f6N1JIdWyEJYoPMeDLDH/MOK+yhe1Yv9pt11iCEJnB2kvP6iy
0dr0oJALu9bDu3tFrpplIMzSdEdPC/Ifi65zN9WcXhEprffHi8vLB6uMID5rRTaUXhVWM5v3jHPZ
q3zEvuCtSoj7AItROAjqQ/dpjbPPxseLFefTYRooVGtDoQDypQyinrCh0+DXUZDG8o7TUBV+FDM9
gDbNePtgJJMomwBwkDRxTE1QAsa0cmp558U9+4xhMOzrVBLCVapMupPN0jCYHINyA2gaJ3+1Hw1g
RKik55FB1HswOdBtu7INIWantE1pkGU0OnGmQWqoV4QBeKJp7HOf1Qhr1vC7anlX+HXLpJJcLzWY
/j7xK+LAV9OR8XzSBS90V4gG1erRkIQKE3pyW34eZ8GgHJwN5ljUs33kSms3aFqzBG0Ng6stKG5F
q2U7LV4srd2mBve+MtDQc+nxHJGpTU2XVbeFmduYHlbXrwhjGWzZjERLcSi/2hM1WCv/1tzH2Jza
WugtIFLk07rbyUe9ExfpW9xFTSbVC4Yq9hg05yLOml/PameObqA2UbM0a+VwNxeK85tfjdAu2nnc
U5Pa22fDOLfzTGaID9iPdRKIRTNkgVhR0NHc9QEo0a68y5VlJZBEVhPLZJMXiIkXsEtaauLWO5GS
cDiyxwnEwAkEOIHbw31YzYkrnSqa62bL1buqF6QCpXgK1+1AzI85x4difoP+FS5piIhoFUcTV1KJ
uGJsUxfXZBxUibv/Kjtml33Ng16ZbnQtlZftVRKwuEhUCwd66STMIbJlMOqkwuc1VylkjNQ6y2vU
GgHUkzKdVcOYx/txqrZkGnC0K8Hs4ob8orrzyqBVpT9bKRWBK0nFLIj73eRW2sgljWlEOpvUbbBm
HSVTDTu02i7XMi5BpBdFqCI44B7ElIVjaVia6sgEAD9U6o6xQVIl810oI0qjl3lBeHdFwlYU+L4q
YR6HKrraX9Un5H2fBZg7BMPYaj2Gse11zR9b3YbRB6OYVrQ4cMMCDSeKx1Ec5sBeeUNRbxToR9Zi
AVlQe7dT/mDKRtI+B4AiUtSYQxYSPphOe4H0zctkHYdxJgTZk3XyIHZXmFJAHCOiIR1ubHaNCqvs
m6lwm2dR3tZ/DsTbl1BAinpXX3i8Ihjo3hRg9vUpBMbrwH/q54RDr9ny1zXYXeYWbXLp9FSbZ4rb
zc89hcQcZci1b4/lLUqrKFoZc6Ca8nCNSu5/dPpRNomyTHKDqkjPX+zOu6beWgpB1Eoheau6yqQ2
K4E5VWbSJU5reTyuGhQqrsCjUg72rooHr6KbgBUrf9bPesEditjD8+t67diTYV+/jjtVB8ycudT3
rVHnLJnubFGpCh1aSTLcDzeDVAYMAOqlQTbSyiQo3SfiaSiQLbp9aIIkPse40Z1No9tj+SzJz/Jx
CukQuBx7XjukwF/LDc3T8NwIdYZ8H4CWmm0qTvIwIsRq09AQPEPY9Z8O4RUpTdGgAlGVP61Pdd0c
wlGgLuMShRgcglKWRsGqyup6rRfizw9v9UPhqmIdVVGeBQpxRuFYikdNLBK52O8gciiXAuv7X+Qj
eA+weV/QDvVICzGtgjRw5J8k8XIiuL6+DNDUqyCk1ELgJAqBExUROAEg3a9jK+48feO5cw8i+whZ
E4NZnlswHa0v3HrcpU42yO7iXsnsDSFlerURxPse4Nq2zIdJGe9wRK0R8WK9XU0AUAvJH5ed/Qha
vbFnj6ZLQBEVfAunB+VZ5HU4dg+gLvXNttJuEtTa4S4KZtTMZH0nsQLK8luLwJfH3TECF942S0td
+DGahDAsejCPjWkQuGks3EMTFxPMDnGp5j4FBb0YjGgM5KsJash/fDZyNpJW7k1wHTqDsXQsi4Kt
onl8RF7lPBZm8cxRpXcAwVTfauZQEletUNFMHIlKlK9NTVlGwfXWISQeia24Us7xs9vZ82JUggrL
7A4lAM6KHOHuv58ckTN4RV46vCYvUhjHbh+5qGSF1fcey+84IueFZKaAKaSI2NuTqmZd2EHFOnoi
LRHv8bHSPL6Kk5v8/Xp8tPEVOVOpCppV1ZJF/vJ4hwqMvHb4a5ZLf62JrDAIsG0JXIJVA0WGgrbi
dua9HtK8iJxQtZVGUpLmjyJ/0lXkQDsEFy0q3DyCrlW30MTJ2gxZDxMoO1b8Y+qCwS4FQbufi7TV
3LTrMTLQZ4sHKF6BA+RH3LYFiHF9IS1MhDzUaL7UPiiWjPm+36rCWXKf0jtGLVNJxWiUCyMItcm+
UordKZjTcBY40TBO0rCPjVYct+SZ6DZfqvcQ7RCvhrw2A9lByGqxX21GwYVSBHLgk9cXvgHak2db
Z5TW3uQmO2pl94srWNRlLWB7Vk1S+dno6jmFi6U6s5dtzaFS03CeGRpRKVSveweU1c/BaDmpdD5O
GA8S+R19BxWEnnD31HMP8NS4KKp9Rvhj8wzcZp4B8WqFj3bGvUswomG0iXv4NTEhtgUU6AOs50wi
T9eix3V/k1VW92EmMW9j9TQMxlIn7HIAidvKWRPjWftevep2Pb56KcwL4tLsgwmVrV+uYbsIwPvb
OF7TcrXi+yW4MsY5FMhjto23XZSKmXWzBWpBJqBQpJACL1MbxfYbh+1Nzr3Wqa+M8r6907wo87gn
2R6awzMnkPwBv0FXQuz0klTVvyiFfKvPiikca/dB9GZtN8egL1GHSieuwTmu1bVVO1Enmc8AsNE8
FotIdSoO+kiLDLa5i92DRhjPtgrQewG0XnHLem0QVB3nBdeL8FicLIFClzDfF4bpYAhxWrFNrkpQ
eu1RFikSLUISlh6Xb3nP0zSBcsokDsZqfIN2twwcDoEelw3chKG59Ndca5QKnsV97/04DK5Kc5kI
Bv+QOq1UtZSr6zVt4IniOOkBV5gHNAOCWcMakjXanEofDeqN16aKLN4I0llkPFeVuKxTiLHPeWLM
Ds31qFGV2l7zN3bMFIIpLZS3d8166YOlLcqoZekTyQNJAQJWyh0VJ6jH28/CGIZtOQMIWqlPn6Bn
So7l1qeUPsFYLvSvyzwBALPQzkZBepb0w3+5t8z7j/yHqH9++ul/5Z8dr/6uEGj0O9RDtUo6r4fH
6sj7i7POon9M2QhotaqEZUmqXPHtKDVgfElTgfP9l6l6ScuaAz12KAWDrpSgiElCrBCEVgGmes/0
bJ6Ol0F5oKgxwGVVUW4F6tVQ4BHmdWnQRII5RI2gXj3y2ypPPFPU+BZYXoeEI5CoJGZJ2ULDNAzj
y+9zadX+LN8pFABTKJ2rt8g+zITQPoTW/O6f2b75XAhLk8X3KyHN1uTY2ShYoObfBNkqXDsHeAUn
nExnd85y6J++3h3aj0RjoqlEndglB6BOMGUennKO/7q8PC6nDexBtZpP7NDGgrdKxoVSJlWUpdXW
CtWmo1xp9ZeuSG+543D9KKSS7q3OIixmCxCqBB1cTaoAVoqCxdYjfCAAZq6x2DaG4xpZbqA5atKd
cNvMrbvDURADikg/B4JZGoCr5fXTNFFFPKVSfpO/wcacfjjIHKXAi1xH5IHWs0rkUssFwlvJZNKd
1tOuywBnsPFm7ibdZKz2ohMeDDpR/Zr7mEEwM+gn09k7qSXMnW0+jH2qYykW7wWW1OwDYBFppZKQ
rRUklx8HWQagE9NA0pkiNqlkFLFlY8OGMMwdIKTecmtgDmsLjwNF4PpZXRSw5fZfrR5yO/XtHCPU
Mu08ScJAQvN6K/ZgWqEKCBUT7dJw5wg1vaHVCvKHbYuNdAjxmz24M7jpa74acyjva/jVWPPFBOKC
tGZzy662IaTahqA171k/icNCAxFnUCuPGBE1dybtuTunm8KoJkeB0hj4hVVG3y69e2UHyZfUFr+f
/N//VzxMUUd/q8PsQqBKmtdQwROMo0DfAyqIqIg4RkovrLga7GnxyonnMf9rsd3L7whXtLz0xeXv
+tUR6zDK2l/9qyQU/B/lVYcn34L/XIcphLhP3IJXQzqMH+ImHN1NAN5Uy2sPkqQbpJq1uds6Gcxn
gyMsjYTtxQWMFGp/7a/alQk7wG3Lbevum7V+5LD4/9EuTQ6xNNKcOPHwARheu7oUN9WmFTTd9/9o
uZu3LuPlzh3jzjk+yOqOTrghv2I5fZP1oc4i1qyNpJLxaq69cMFz9z4zZJlwRVjS8s1tLlXa7ol8
CuBG+y+5OQ/i58mUbgSzqPwWSlDts4qvA0BdhkFukDVKJk4U99IQRncF4zyOoe1eBeRObh9qxlho
L3iNPS4LtOMkzvHUg3i2QW0KRQQovQrkFN769kXXUQkq2bahzTkCUxszz6vDWRDOOb6O+mHiTOVh
OXI/EPkLAZ0xr/Q2woFLHU5EvVjk2uzqII4G4KVqoe6W7xac1w4TXsOVg648zrgYXMAUV0T7JPXT
xaSOu1rKthiSChD7a+F7ka+Kyyu5k80pmjBPUTSitApF0/1Rig1khVxA2nd5eb8nrRk0XQtdPwds
2/9FxbgttDtjv96my6bvxHKz+mCxj5mS9QfZMdHtmOwYcWdtdaxdvVLdAm0kTbxKOnrPK12UafSS
ODZDFwsPwr42Vq9yytm81wvDvp6wcaUZI3szs7bknfpQPUwq9SBtrXgTSse4N4quw01A1mx2Nw6z
USg3bwx9E6gIJaKdbZbILF6tUroZEbNaa8iNXYdpNJCGRTZ28uRiXwe5VHUITfG6Bkk8Ox4silUd
+M25GUXjvHLIEDX0odeF4frW36o9D3TZciFNAzHxFGgIqlYUSiuYmlhjanLiN7h/fdcDxJajsipy
ClXkHrW1cPmoXfk02tyMkB4Qo/WPdpomwxQQ4AdRHGXgeC3LnvVVd8oWauusd1TZEVX2V3+vK3hK
dbRxsgYlbpJoGIbXVUrmGdcszLsyrK6rqGCey/exDdaE9/3CqyqqNRmuSZegDsOEWb9a6dZMyvmI
qboO1uSMJ8m1JCIp9PrOTCqPYZiqqUeZvs6NyrMlrt9EHklNPxpIGbt1jkt5RA4lFuB09SUQ0v8W
fiP1v8ydKjlfWoqAEMw+R7jRcptOmGZhTYaP1BN+e676nGsapYTbhGDz8q1lqOvetFLBovtRoSVz
3knVTo967LpLFIuKScedYrHiGZR0/Hg+JEH54R8GdHLR5PFoB1HkWtEZ0QS6sDef6DpI74B4gl4v
SVW9wYJKFo/zPP/1ZLMzpJjO9bF9Pb4w1neIewZm4YHko5FqfFYRn8JgcCvDNxiFk5X1qxtQTZX5
i3G1SCurNUnr6yLwr52o5aMOF+U9AuwgLEoqRWfZQ3IEZX7j7MWiSFESRzGwRzyezwLwBKtBDnly
Qd61dCN7idpnN+nNHQRwjb2rcWQMcfm4Ykk3K0875av17tJoPI56Oi9WWqzEztYkPY2ifj+MV5mu
QRRK+64fDoL5WD/6WZX3+XstnyNpbKegqjyJZvtEfjEiuN0DUALuNBoyPbIDDNv293+AOtMKpHCp
VFje1mlj0fG41/5hn/955vzyh/64/YrTxls7A7/DeaP7NqZSqtWEsNYyXMj3raxfmudym+zRYIh0
ExOmnYBhPLTBitrBZHoLnUO0xsoB7hrMpZ/vUdVDYDUtzArBIsxaJyBEvSZmzV5+YHnTg5oyih67
jcXcFoVKiTDhYsfYyPbYAMmlSfuSbAdKb1M5eQCjBgqnoELVpGzV3GPRRNdtNKnKRwpPiCtWHadH
5MURfiX/W0VM5Suq83S99Go8lkQwcGYjNWoYBo0FG0N05DdCLxxvQfYp36I8JwFwtfxBTWDa8Vxq
R+8kk2kgxcu36VDvSRFiS5Wut5hlTl7BpW9UUlPsq+hVvp9A2WhyW5SQlSAYqbJZ2uAxdpBYuXbl
kswIolZOQYqd3BiE0isFgv9c/aqaTU1GG30MF0AqCSOuV7dZmF6rSTyLrBBokm3QGfVMBlOSAKpd
pcoG3kwqX46iwezrLxeXepnMOrRS4J/vsjq2DqSQD4Ov9gi2TvILMPPymCW0HTfi+hJpMw1SwJYa
6+fJUFHREdr3gCHHYQikYIRhjLytoy4P0S6GMhgmP/FKMp63pcxwx29WqKjYOIj7eV0pxIifx/IM
ToqvP1M/vUrSE5L/+GJ24j6bRJPwI6DmA9TYsRrnUwjEEJdzLsrNv3rCcPluCWsAnh3dAdjNTadT
xZqCYmy83wJ2dweFPw+2OPIfcHG8A7O15Z3zB9z5gy7OxEMeewNtnkUTAI8u7dlgqhH/gUxH4Voy
WtWq0WBxxltLP8tfLXcqn5ki64vAEqqkePheaO7dcdJ1lpOPFMRMPptlQRlZOB7op35J17saAMRj
ODrMPdy+XRz0euF0tnxH7yWhDqH2nbQFcrt8OoX8owuJLnGCtFwuUMViHROXwwVCeZUCOyjhdQ5m
M23XjlyCHzlrr5lnUqp6SfyQJqU8Es8XLdJESXBIOmuYE+tr347S3SEDJqQIIah9voTy/Ek4GyV9
/RA/Us9v30WS5tMoGcAqoIHRreHdVWhgJIQ8hP4oTVJwl9Tzo7f2mwyDQrpyX+I63AyNxdgtGB9T
9N2451u/JuNsJztP7VNV5lDnHutK0efLIqevJ39+fOV4hTCJB9Uf7QuXJA4XD6Wjbg8aQll7XKeY
TTLegt3gdX29D4cC4MdJVsYxOD71YY6E18bx9a4cJbadxSfghuU53gRpbAivqkEP3HtAQwF7HYGt
2bEKqV5D0NfBeK633QSpWNrS1gFwXHGw8u4DyHrZfGeVnAdrksYyTa1VWiPnCWJlV0vcsc2T1Nle
PutQ9yHvkqCOx5vsGr49i1VBhHyAfv6zgXcR5tLxYl6LAnBTmihO6mVTfcuU6HBOrT/LOhyoaW2E
AFzNZY9cE2CN/kLMr2Fe1MIAxI3cgV1j80ZBNloWuzndu/tdT9UnVQ5geVDy7YXVlb+JdSPBKe8w
xg5u6j7cjp0O4p57aBp+uP0iJDWRj/gjJUrNE0NLB0XeD0qTepJkvv9jkqSWIgXvePSQFDkOh0HP
hrSURqT7lKSlpY0DhaInRKGWto2wgrDh7HGTqk6GQs3FniGVJ0epekKlPzih6ukU8gD4QGSq7Zby
Pfn/rZu+3SCLeqXpKGiY9aswrGj0HPeXo7u7tRveKWSoPBFayT15iCc22WeVcqLiIWWLvQ2DUCH2
ScquULG3XWWf+XtecDOKLBGD+7BSjhhVg5XWcRtXJaO6nCerOhTlAU/GYA5QVEfG1J5jOojSrGSy
qk8AZ9OvpDEeixixcxcgTWilkvNHIk7sbFteNow1FP4j4Z59/AAGVamM/Rikup/fJ/bd92Ml1Rp+
XzVUWVGav5Ffp6+B82Ege6XeqgdkBoMq4a77Y/OCQWwL8UOzgsmzRMitIbRX9X2zYBY6SfcbWAfL
7TjhLdQ7Gmc3M0D2b11TLNA/nCzt6ZHdRMUCZrErcQS/joI0DqEBMStMSmXYrVhEuc9KC2IqrCdP
V82Rr3+nef5/ka+c3U0XlZLdKA7SOzWbLc5Mdwuodpijtu82GsaAuT6Ps2AQRvE4ivWFhBzu2Kt/
FGvtJ2r3LwHfPYtmtwVi8jnkCNuPTUBrv4brob5OvrVWiGVKMGPUzjOuVzXUeFpdJMLvMOEe4ECh
Umv7MeNQ0nyoyjMD+bgjVUuw9ZEk3RKxuq48F1VsyrN35Nb2o1EZnuhQv/VLmQRjQBfURwGJGgnc
OqetihDUYUQGOEuXs4rIvo0eBgS/9gF8StQgRBvapdIQRG51JePQB8R4yzwDD3CpTvjNAlN3NRbn
z4+vvGf56Z/0o/6HeXyhdEz+8SPsHpGX8t9ZOg+PyOkzuKFL9a0nR1hkowAz7hzhV9fnH3H66QX/
/Pny3d/eX3+fjo/w6en3F2/d4cdX7uCfGxEm1+/fv5avjt69UN8pCrWFMOaAtnwUxT3+kSbjZDjX
0AGMSnTFwR/ofBoZHogCPDl5osRy+cYysRDkP+2j+Fo8CEdzDE7ZIVAmnq7wIB6V9HCK/yHjq4vL
7svfZ/TFr68+nv+RXvzx/lch3p2J/nwyn778FF5Pe7//M2TdrD/5deTOLvwZv3r59pd/zr+/MVCH
7z/tg3FaORbKvKd7LAxh5/0IXf/66cqP75LfvLef/3njf7ganJ++f3d7dSdlC4/+OXdfd7/gl+LD
1c3N/OP7P87w9AJkyYfw1e3vgzj69un6e5hMB39/uRzdXk/fXrz+3J9+uBnC4kZZQ/wf99i+mg7N
aXJklDxaSvu3fOh/L47r38fH/z7CfDgzmjefe3N39EFKKfbhPZ72Pry9/Sf7lHTxZHIx/+y+lxdw
evvhJmUxH/36m/44fA6m/JM5jjNy5DH9YfxKkoT0f/mGvb+o+Hgxkiz3ZxSPXn6+JGfs5aD3/tPZ
h39u6C+/icvP54bDoFIKoR/hMNK0P3Lfn40p//79ze0gjq9c764PZ5JejT5F+Jfrl/zl2/mffxD3
twvjYbQVSmnjMM7xkUePXpy2Rxys00aNQuXzAAjhPc7jBT16RfWH8YvrxZPfP8y+fLn75vFJ3L0a
x29Of+9+Oo+z4Or7l97fWdD9nl3+MumZSQP7P8JRfKZXv74bDK///C3M3oSf/kLh65gPyNvBPJ69
EVP697e34e/B/AyADcx8ItwnbOra9HsIfcLnIC3XyZ1hY/yp+rZ9aUGYt+V6hyxYmY2itG8uWPE8
KWHxU404WeQi6j91x9naUbj8aTs3FgOQLZULHjIW+ymc4Q/XAb+5yeI77/au+1ZuWv5p930wdl/P
Bu6rL5/F+e+fvn8fyjfexIH5NNz/xsi00aGl4r/zNIxygx1SsWkmCflCqjKPPPFr0ZEafvKkpiMY
/Hg93arbIiZJ6T3tnQXdnrRhzZoA4R9lf2bx7j7tLb69S4afXo+mvbtT+N/o4vXtdXfSG/6N/Vn3
86d5/+zUDV6/ci/e9Kfd1zfDvyd/Dr98Zt+6+MP4y9kp6uHx/Mvd6dnff70bv/v2fth/7Q17b365
/vLm07cvl6ejbnQ67k7eXX95/enq4s07tzdRn7/u//Xhpv8XfH40kmvA2lkXs/jLXxfqNfl3o4tX
78Z/k0938nsu5PcnF+evsi/Yvwv++pB0L13028eL4ZfXY/k379y30Yvvb2/KrqqeXWJZ8VAsWi/s
m8cRzGOAepVJMI7+CYyVhgj61rho8YHiJO6FNjv6BWMd4tPH+si6vmlGO4SzR2D0COYf8tws1aML
Bgg06JE/ue7iOWotLK15cC3yFKcdLNDD0x7j/AA3CGBGKzloatRFHm/9SXZ26npQaYrbl7xWW3VR
h9WKf1mmJeK55LEenK5OF7t7tx8etmfE9o6djldtXt4DdYvY3i9COci44IckS1ttwxDa548gJkNF
nbxlHFxHQ2XhHgOMNiyY47j17+JgIoWwmsIOTyVPapbe6e1g+a3I8x757WllC4x1qdNGvHZu9xcY
J7NocOf0E327CCJ07wbwB5ZktrqWpRHl12+TmceDKI4yABlUw2oUOc6S5TiJaT4ma8E82pMXMCut
hWaP9mSqpcZppPrwRJ1w7bpoCGMFswnTD+AFQNmM5aEHWRamenR7D9eznIutUep6czB9QPtffADQ
/pef0XZxSO8BtRUh3P/O9kIKc3GH7lmU/3jlxF5tsrgaVHy7qpTJw28iKm6z7MW8H8mHkgeZXEUw
EAMaWA1hJArIqHW6COv0vWBP/BhCcD/MQLAv/ToYJhoVpMYprEYY1dFFUE4krCDWG7GIdRgaCPqe
XBf5dar05Y0dh1kvmMpNyjuU12dovoYeEfHIpa7JFKzT9QcHE8lHTqEn/Xiayp8XTyo58DnkP7A8
EOYdkdPCxEqYEuT/N8p5ghn/b5RDai5UHRUHVAb7G1+H96jnaTiW5ti1wdnw/IpjA1rWpgx7fk0o
lF4yvXMW285g7oReonJMpBatybvz2cCTYns20gMOSPe+2sTxra++CbvDsfwi92csTzLo/xHdhuPs
NOi/SIfaXXgMOh+JHQF09BJBzfhL9+jUVf/66t9TJZJeiaNzdnTunxydnx2dn8ufth9FyP940z3f
z84GtpkEkqeOKzQDA8QDYaxTCzBF/wTy1ato5qg381WNcBqIuF7FOUhVlx6Ov8KaXwfReOs0Jkka
Hg/msTINs2pkQj2PdLgoH8VZwTLdEpaKgGaBNBzG29Jylzn7LBjLP3Xy907Qs+8nR+RsEs6CI+zC
7Dwn/D6Prk+OML6U1sqZ+pj8Rb67kMPw1v0iH+Xq+YdOXr24eJt/8viInGuQD5jv1ckHr+lH8CjX
wzaa/JkAo0nUqcXYNth2DJGnhyS7eRxJgZ0V6J9L8mLsMQQ0ORLowOdRFAe+q4bPUpfVepQMjIMZ
rJbN0nkvn5QoWeN+YIYeV0aqbkqbEHYFBIRGdWHrQiGFqombkTzXVXBGSpI8ZDMN5pl2j5i49TJ4
96e6oWL2OV8MKfE6WILrITF5sI6UQWCeTOXy+jGHYD0ga/HlJbooROBWy4J9CzBZ8+xEPs6zWZAO
w9nJ8qPKWFUxgu9zoIeFyM3yQqiF/B0E4ywsTLjntFk+ofjctR4mvzBpR3puE2JRCCfHo7tudJzr
K8AOulYDuKQZL1/Rop8AI2LPBqHg3YTi4sMRCrZEKFg+JqtjK7ZHKPQRVEgzyULcBtmQ3WTDDkg2
xBLZEJAv1hi6G/QVF2ej4EpeVWqoXuHCrcjN3qFolVdCEvF2UYnYQSUw+9jffyHjYWfzrnTcklnS
S8Zqwyn8P8QjtZ4tEh1C8F7rN6JSUYtKoc53g0gFECmy/tx1HiafLCotQ4ofXrZx4rG2iCmcTPWR
ZSpXxpXg2Xdyi1eBWw5IrZ4davWAWrl4TNQKhcZlYQqvesjvufScZ6Eu8EcYbosYY3lnQdaLIv2Q
TtxBHtp7g3vEAzzUnNxVKaU2Qe7BaF66/wq2/XxfcGFJJ6vs22wU5H6vPn5GsDxYd/8Fc+pMN6Ab
B8EkGt85A7m/QdAzihNKiB1Xe62tZdPBBmZM4t446l2dKPfmX+gnDYYs+BjV4qrt3jlDrk9tSSpV
oZaL0J+nBS6VWlzyUSWQA2/3BfSDWaCEknOTpFfa2AKFQB5pzrgqepE5wwROGTnzOM8wa0URpp1q
ePNVtphMnBv5Yuj8+eGtVnBQLAUHr81BYTALz8fhRCqOd7DFqeQc9PNtcRoTQhWbFysJ9xxeGvCm
DTWMEJPC+4jzCmH14mE+V+HxPM94RM5zZr2cpZC0H6TJ5Exa0WdJP/yXe8u8/8h/iPrnp5/kXx2v
/qw4p7ODcLW8fsucTTi35mmkyVUYO5CgM4Fq4DqWaDnVR3Ecpm8+/vZWb4VC8JQ3WHPtnNMkyxZT
k4NeT5uOYkR+EYC7t0WWm7vNiTOaDI+wm6U96HMMusl89j/dcRBfKSgQN5F/kCapeq868co/1VIt
I8hrQRHci8tpsXWEQWgT4Udg+fjYb0BKavL3WW6CH0exej10bkepk93FPXgMVapkTjPIZyDCutpY
FYnev5RMJR9LsnIWxKNVKzAei1sT93OoiQr7LybJPJ45wWAWpk5vnGRA8k53nunR1D1gN0Kt6jb8
861OeknDhGDWGmMvb0GndPpJbw6P+LP66L8gxbrO9QhanzH+6X83VM6S73OmP/7r8vL4p8LAD1Rx
hHklkr7f2w7ilpZw3E9utCMdXYiQeojZMsi0ZONTZTu0xUj5BIo8XaGvIKUdxCzSUhBLYkrB0NVQ
lKPcjJyuJIVAmj/qq7ZxnP/d2wh0BaTtR2k4yN9RIA5YqQ/154vPAy0dYU+Sm6+o8Pwsf/PsOCjq
CwrlU75nSUJImppKES33nZuG+oNVUJGeVXlA9Panh2DCWeviT0u/WPW5irrblGZMGqoRPUGcm9jA
n5m0C+RLE2kP6HtJidQ+5HBeoCB1pMBWzCab3Y3DbBSGEFnpO5NISh/lUxQLRyTpIMKJLXqVbAPZ
SuMlIukASFHnNxd0C5dTH80QnWqlm9W2BPq4Gw5g2A7YCHozn0szn7QmXL8F10Gu5EwOLyU1D1bR
Tj8ch3K9RVfdPM0LN4P+nZpttWikUaGcYW/BqMtZopP/z9619zZua/mv4n8y2N5bT/iUqAJB0c60
295tp0WnuyiwWBSKrSRqbcnXsifJt99zSPkRi5RpibJToEA7iR0nFMnzfvxO+Smd2TMqwDvghlxQ
4N84xD2+vzvSL05xEXzkP0u6ich0OXnIP2UHwDBYfag7yrZvY0nUl/RQPnIg/OR8kkpIKoKymMYz
wWplILzK3oUCtqhExNfeEtKL3jdm20lUHyUJlujHoSQcs7shdMQJGUzceLlCjIM6DkZwuGV4tZ5Z
6E3ogglsvT6jI/LS1fB2LAJGQehhwTHD4RVxUKZzmuuUUulZmt+JxuxB2xjLui7ibgaKcSINqLBX
BPxYc0w2LrLH1hOE9dEQUaGkz7hCEQga125yqG52lu3SsvltNtUlmUYPrOAmbtewZasAFBSTGDxU
Rs624aatzCIKqi+UXbkXn9tc87rQej53BsMiEYEEoCFlrs++k2gkIxJg36aI8fd5uni7elo1ypg5
fj3/nXaqFDnkl00pwhgDu8Zgs+KEsZFUIgzLdOqOOMJnpjFCf0j3Pkyzm+trlDizB9jlF4oQcn2X
60oRsH+qxzv4lG71NxLRpAhASz6mzxWIR5SV5o9ZRCUcBWeU9KNmz8M31Xyii+nY/aZFsHq2QxGB
ZrJu8wPL1K4HYsw7kWFls10ygwaMSO9j3p6yszaEYbEVZQOdMHiJ2TLDFsu8GC/SpctMEjiIk4cO
kffjZRcnY2HAF5jqucYPXPFbONssEp///N2HPybz2eP0vXy4/c//eZ6+u3/6r18fP03Yh+f0t6/J
z/c3N8eYWY4kC2f5HFOOvtcTS1BdTAzvjbOmNy6FHH5dYYkCCBGe7XfVs1amj9SoU/mKDys6ItGI
rTe494lqgwqKDY1CBd2eCXKMV2UJBj24HNZNSqJBNy4tWw4u/6VkKYAdMc++mK3v88Kk3zHYrHPv
i8UsN97K9dO47nDV1FxkK43TYD5fp/GxEfOL6+vtMRtzo31LemqMNkSINAn8NjGlQBxQzsnwjCkt
AiGiAY3bLbl+Wa1v5/kK41T7ivPmo34bThd/Al+Q/OHLXWmQmeDb22e03uD/ze+8QeVwl2ezKb35
kD3qTy/neKHwPr4Cvxi+rKtsufsou3mzTKd5eb8s1wt6c5fNwZd+M3nIJn/elk/spizeVNkM/vrm
A3lqFgKpndKbH8tlhmTUvtwVe4c7ecgnuJXqoVzP9A4y/fRY86B39PiQFfjFvL1aL/HVqsR/HvIK
vmDx5ds3m/1+BwSaFdnUVhsstOrggg5PK9xCK5yHFuJaUa4QOhr4f54X6cpeqCcwxkplUGm3LkBh
j7cfsKpqBONiSTjD8WVtol3ACpxxE2qrWG2ZLSv/cLbCOdJdvMFOY8uZDLtSS9OuCnyih+bg4dla
BnSrZCT6B4x3kBWHqvN6TwU+ZPn9g0YIkASLUow6Y6jOqpf6TAjurc8Yw3rTN5PZegWrospdWDQa
TxAVyKuuNjlFWuxlHB3hP65Mfi9wLwfiVN2XGrLq0BbTfZxYB3D6Zq1LrsrFdimbgxkJT52d+ApC
a4UbClzpVVWRnCL57CFblAahtrSrTjmW9+eU0hGP4lZ+TAY3ZS1E/dKYrQ3RRm54W4w2LbGi67Pj
liYCfzDmpVsSFz4CbuntfCFeMIFAZCoRheb3Yj1r8++kTm313Ut5n774y9EIFKAXjOHJf5doNNVe
57RXeYAm8zi/G5fLHJwc3cmi33uH9btvzLs3KO+vOI4qhf+2MVN4B92YN9Nslj7f4Gk24qDYqyC7
HK89da+5X+ftv9Tf//cvP9xUax2ZhQWthpCGwBKchZJ15RwMkQqRmjfeo3vsZKR0Sv+ykuEl+Z/f
w70ixM8o8PFwhR8MhddN6vr/muxtlEMEMJtXhdyrYLNYhpacdheKeZYq+tzBNLubpdtqFeSt8S1Q
WVmUd3f24H+SYGvrScv3CI5JHnexXnZIh3s0toEozefgqFem+Gaezcvl81hLlPXSnhgF8QnPkQQ6
8ZeeHDxVWYBIrTRsqgu4wQwt4oGf4NDzsTxLw/mJpfKcSXM69eXFp3SWI4QsvlzZEWmoHukn2WVl
+muOVR4X49ol6CVX9x7hLl0/1VNz7BWzNPGs5Ur+jk6+nugkCOAOrnCXkA6PA7qnLRE51Fx+KDCd
xLh5wyq9dTWjGF5614/QBPEjMR9JGg0itVulNaMa25310eBHoI6LxcNGsU+qRbPAcwx2BDb5XUJf
NGSjURkYxqtHbLJteSDI7bwoygnstc6pwzutBYEKOyiVF9jXaXKcOeW4ZIGpeIskAaJ8Aztix1Di
2AxPghMSmLy32Fu2fRCNXp07QlwxVkB2CHHNQT6ljoDkBDuUsEgc7AAUaNn07bz81IhlyDgZTILY
b6EpRxSRnlgep9vj1tAeQiD4hfxDHzhW29IkGYDeigKfA0w9UyBdj1FoGcIocWxSHJ3P5SKqw4nv
bWa/XSyfI10ZoElcN52/Tau8iTqt444XltHshYyONzI67iejJeeMn42OWmZGIh1x+WqiltYgSpzQ
wFKuKPe8WuzKxO7pcmGFkeFsxDgfxEzCQSW3d3lh7+yh8MfhGzWYhHedgiWfqzg2mgU3Krhz9E/M
zsYd+2qghVMoxR6AOBnQbNVPotlmvZzd1B7/QTF0Z5FqoBtpIkOZ/Fqe6oAZEBK4qFlRObpEEpJ4
DnP6291/Re6+8Gv5SwJhza/ymaWwgkdSjpJYDSoOKriOcY2msaX1dvMr8ix37/lQnk+DXaoXN5X4
1lTS2Cn/+/gAqu5Ttvy/g6a30y0mbAjiNAkVLtGtlbWw1F24Y92Gq6Ets6e8wovRbd9mwGK2hE3U
OKUayF8QYU0KMOLZLHw5W0pJEjCCZzMVZES6GUxW6sK28NQ9JTCR3XzvvxXLRePIsRjW+fGTmiTu
HLzaajg40+8xVMHeu9DxlMBGYxVKkXYcHOXXcxjixNucTTxxxs9nU+zGSB2/J0oTTjwnpp2UeHAg
KiSIGxM4amb0Z6Xj77NZNnPMmMHQkTrFWthzNP69BgFDmXq7KO4boUCGJZqMXMYQOVAVJmRTiz7z
/o09iQo/n2erh3J682SypHmxWK82qVqjB17+QOd1n+CbT+lsrbO5P8+ytMrq34Evz7AB1A7ff3hr
gkVvzECt92WB48BA1D5+ZZ6pgatCJM46YmJQfn2az/AwNgDmbWJS15Ykr6bgRp99PZ0Mexvgqf+o
6jIc2jR7gM8YjeRf+fFJFJ+TFtpiIJJjpQ8LZ9wZxsTmu9v1auWy8gjWV54iVY40eZoxA2jHaxO/
XMOuy+nheFKha19Vl/LvA/gfM8ChvG9mcGLyV+Ys2ulwXs/jJ0mo3OU2/mVPVMbCE7U7GBf7RjU5
Nxg450okgYNMLhxC9f5jCKy6PUegrK2aPNgaBlZlEncUEz7YYK44OU/i3v4LeLTHXBg0AXiouDFs
9B57G3A+tMGfd/ePsFgknl16HexkOyYUjXU74qVsWKtG3DNmtSFqflS79rVxuysSzJ5STAe8nZTz
a5f1+e3uF6kF7Q199Iv7rH2d886u4nGWoCyKKJbahJfp1WL8AOyfLcd5Na5c6MZx7Im5f0Hl29S4
ivY3pvyxFO1dhKRbk91xftXeoR0gNvGcKtRV7WlG2lHOSwWF/MS0+qV/5+D+ciW35C/H5LGKw5sK
x/u6sOWcdbAta4yE63UB9zz9vX75+2O6LHI7UIrEcgjaq42wjqMRgnG0L/XB6lhSs7VGYGNw8grM
kZ14O7RGNmGxYYwROO9YRUl4knKbnSAoQWRGHTjvpRd2/duPP3wHL38xL795wtZ+F5RmrAcm0HDh
5xorzjVWhJ8z8vAPb+HBuhh9dW3TFlAY7YGymFnnFzDFRryLJjy42/1JHHd5YQBfy0UDCBBRBBIW
9a9X9S0KpjyQlvegJMT9izqlt6wCp24lBlnzR+bO+mIpbpdWpQ2ZmK87YFtLRxtiCnZhkE53xqkg
yJGxEjycmAPreJYV96uHytFIS7o59Q7PGr61g94QST1l6cGwR6Q5OLoXBFnX7OlxlvdlVmkwjTGY
ZViovspns3H9WxaITMoYDpSHe+3SPtpkC98w015AyRwWnFXjqIyciOIhg2MW17JB+gj5KxMWDxjz
jsj5WoXhtrvVRXldmmkFxl4qklzau2NRpwbwTUW0Od1yeVR1sk4FpC8l73Y1i+iNRuJSVf927fMm
L76DMwFT1Zi99aeM6atf7bp0XyKeft4EfCcv69x2jbl7f9aC8S5ZFIWnsGl2lwLr6PRBPU6rJRHM
seUkCVXYhfgXOi+BgLvZGKekWLkrTvoWWh5qKWbXUmjx94K18j7jlnQMZ/AUrAcfV9nsrp2FY4Zi
OByDYd1uvsLmuGZvWKIdZRnMHEXd7hraYUCtZH+zEI/Q4powtDsvbTYwu9kgYzqg+tmAUdVTLbQg
G9+ltnJtSTTAYCiFy+z4ZbBG0jnZtgK3dBM23gUirKwCRgTvgqjVw1FUsQwOlgaG3rRGL5xk+SdH
MpFTnOx3Jo+HKs7hHiWXgwrc0+v6EcSLqwA5ipXJNDrDlYLEo4jGIRUbd7hfGm+ru1hEc2acFZNy
6giHMhXTbuGkZk9aLYP1cpltzoFiCYZ6hycbT3qJPEfjDuxNwj8W6Mo4oOvzcoVaELNeFOw22NHR
2TMMwWzPivQWfPyd3bixx29N3WU9Zi8+cnrWJbcLXdtHcse6/YSKs9kxjEbhE8uGzED+Y3lwhRKa
WB1aiVGSOGhgSNglE44h9lE5grgD3uvqwTTvrBfgfGWVmdSwdECPgDfBBTt9RWM7FBUWK9xlK7Ag
6nyUA3xUgdnbYZlWFuQOY0j5VNS3HOGe6saUaesBomDhSZ+d2X1AHG2DydaWWVQxmA2CJj23apgA
tuGe88KF8kMYdO6xQf/STv/YtudTFnC4UFjlIRw+hU/XvZVP9swgG8dYhgIr+C8abLUvTZV+WTS7
CsGaaFORJ/GnsKOVjAQXA0MdaZVZ4wyD/aJLMnSBwu/LdXFTlKAoj8DHHVvF/HGsp51UixttEIHO
/ccV/xpjX9uV4QVo0AKMfq1Iv9avifmmAcEkJWFJIMm1x9hNEG9g5hFlXlM4vBY7gm0bx0pn7HvI
D1/9bfePETjFx4c5XL+H20pJ1GHBpvlvKm6x0bayTQ+n8SiWNKRkjuySGWtAWdRJNJwQhb5i325+
Db7d/SK8OKIb3zjN4Zfx5iumLCNG4V0cMnrF3uGE0e2XBP9DlJtvneNGpUKUcZ/02bA6i1kdnoio
YOaBuziER1jNR89D7jgHM5SCYi4fbhDW/RLRratsdfNnmavxslFhMxKxCLUuCKzl83i9ulN6Zf3y
5uo9uUq+vXpPrxTB779W+l+m/5X6fdYMX0YyyFNV69ujoQxsxIw4C7Fcc63241ecj+JeHkpDksZW
5JdIdNOFnXiF8ssQMo9fISELRc5JyKKLFHnVVm6rWZumaYtlS2OfdvsTfeR6EuXxQTnA2H45057+
1N1d04+LqRh63buytKwryRm91ThSgYM70hXciVQoH8k6p8PpOJn8LY4vTGgP8VbLjm0K0cyzGW/O
wt4sSfzw30J5hoIE0Rv76EGWhiYEl4j5GV3QLhEVt3pXdkcJwW/7qN2aPvL5olyuPrrb8nS/k0wC
2kovl2xmsnE+oKQkjBjvVo/kI/vdnmC+X5t0fMJU09kTWFEhhAzmUxk8FHtBOnY5yJAEm9jj1yhc
yAVijQqYJeFBtAYGBHCH25r7bV0grJ9Pb/IpaZQVaZXVz5E8vixtLutVmRJk8cZEbHSu6OB75pZl
JR98WWHbrTqbzqSK0zOqMhINZU0XKIwfMvigxdKLY4w3itAq4FjFnFfy1VPkzjPscqwDbtZglifG
8Bm13N6d7LrNDupor3/7+PH6oJbWDCz9/s7AL6Hiy7Jd42UNdIy+W6Fn82BT5r9ALX6sIb2J+cuf
6V/RXZzwRfeCVvjTn7/6+PGb929xSdtcVMlHQjA1gNn68g4b/MgjPbmdy6FXtmKJRSPRS6vN86ds
+s745dcvzZuxRvQC2ac9BndeOOIjntDgAmLvYWZ5YbVaokT5TTn2YNbx5Hkys5chirhbmYT9kA8c
QoNxajl5e0UkaHQVmtLM1se0SdsC3bOkl3g62Hu9IgaKEBlHj0zeyJ2jpJYQ0i2a6bN9Zt++3+CF
HtJ5PJnlQO5YH2rKYV3VVtlsDqZHWsAvL38AjjByOf1nPr3i73dv/xMLqeCdHUld8a82ySiiU0zf
aJEKgjRtClKOg/UEYewsRLYp76Kc8mhQDnOQnhunQqLxLPjApF8zPVC9u/JGUhHMJtHteajhtXA3
wAmpq9EzEroP8xL3UoeCrYhZqlvE/4i+QSUzLgvNjfaorvID0T+NLVyNvRK0jmDxIORXbc7ZW/Iq
JXFu2PkoYfeILRyKA9QGKd/aT2AocnQTt+XSUppd58R7WQ4BjfsGfbsjV5haqT+pJ2Vqu9xSx/Af
WMXwORYv6H8+q8ekv8NfdKgXGomRJLxLBYNNmuGMWISH14Jc40rYx5ljBzQfmJd8RLkAPqLhLRjL
MTSrhOiICkUChw2swmLUqUKlv6hoVxrgpHUJyQeXFtssZ7P5iISv7C1v/9AolPbB1QpNC8VDM2Nb
CbOIEPsk7l0e95jdjtPForomxIF7ECXYu3ta3NUvXTGe5newQ7jXnwzoSiOQhGEk3iUmcHKdVogn
3qmqCx0Vi0OLRJAJGyoc67r6pnuXxCOqVJdKshZSNHM5Jvf5IdnDv5LwYNt0MxgVUTfL0fNCzQ+p
bRQlHQnxSmKZB3LPbeyYDwYZFm5ioDh7d+/PzctPeT1KfItW36VJ6sUwcUaua9yC+vEbhhZDQ4tK
EVTQsrEZdGZ3ERiCtw5Mdswy8gaBQOMwlacoNlotSW2/0SHOdJy+XT2tDlkKVuvkd3msd2tdT6ng
pR8vDtVqlyohO1hm1rbrh7SYVg/pnxlIfZzBgWCkS3ivnBcOc1V36HIhz2EYe83QOtHCQwye481b
HXsiWujIni5kCi81UD2PLudJi9VhLQ/rmPZo2Y2NGzgixw6eSpbNVHLMRDBxlhegdvKpq1hRxMKv
Pf2Es5xYzhK7auUAgmVve3WoyCZhojDtMXbF9Fys0qdvcKadxSaSIyFVcNmmJ+hZUyRJ1K05wn2d
dlgDinN5ExKMTI2M1tf4CQ59XY3n2bxcPhvIeGsyTA+EDetJcpf5Dn4yBX8u/E0ijsv49nk3wLXa
CAibGEeMXRkqhGOOfHMJh6/tOJqDLZ5Y6j8YBcUVtN0Mvvx7nS//dGElUixP62KLdCQpwRLfEimD
wneaq2RrHxOdGvDPg77I47CVrD8V37gEpcJSqmAtqR1YCdVCqM4yFzAiI0FNPgeMBKLrd8kSekrG
jYbXIV7UDY5speJCg18Nc6PULp9oFMd8MNMicxgVuohWEXE56pUqqPktnEISzBlJmHo9gdTVw7J8
tIVPpSDDqCq7p4XoaAHjpn7qWNB4gBCx5UgNJhr8R4L7y3WeTpfe6EM3FfhWa5pxvykvQ3dbO9Rl
csaeK5xbOpiMn6dPBivbTuo4/yogUogL1pARdkF7oEul/lHkQT06fTIrK7sLlXA64uH88oNdM7sQ
iRQ9j+4AA1sG6Y5qD6Ho4pgoviTpBDXzpD2woBCBeBgN5wgxREm3wltfoZNX8xTl3mJZrspJOWvx
vOFhIr/Z2UN7TlakwYj1JvLWLgWERSYh/RUHEoYIaEpvN2RJVDI54lFQC1Y6pVCMnXxnoZyjRwFG
z/I+s9aeyDi5SMO6iujQMD99DEJfoB+/8rj9dhlrbIaKoJLcjgkiFNZODiPJ7SECinMnaDScJC+X
2Tid4HSnNhlOcFRDRHqLSvPFeC8fytWvD9kysy+Ik7OZCnqlRs6kVd5wl0ayS5/eFmb4Ia/GOJwT
yD+rxgbaQ0/d1Vk4W0d9MhKSDemf6WI/w9zWcLjAZj0Z8ngdbfZRR+OnZaG2exQDBb3tOJgUVW+I
nFFNSalOgG8nBmqgT4OihuyKMA3uKhKGoS0mhpUUXrkWnUkLcecupTxZZukqsw5hE2yIdX3vxVBm
s04PLJlO2LPngUtV9IJHZrExSRKDmAxZukOJQ6tRYJt4cBxVGqLiwsUMjSHUZgJr4jdh/YQjdJrp
2OuXxGpYyePjaRKuq/eG0QCRI5kfITZ3yIO2p6RiECFdUGTOgV4po1cCNtNiAB11R7aTsLqUmMKb
wIS7mVhOX0XpAfWRGhwak6ugNKmZH5Eu7GZXFwAcT+4vyuP+SRxhRDakOUuZvZNRjjgNyu2s/WRF
kgwjzmKH2wUakbFTqNOJvextATRVCpcjKjpt3Z+o4LkKMyuvzZSViKgf0n2h9ogtT4CyRDygS+iI
zQpdFuV33z/9/Ov3P334GP7OJWo4jnkH4YUqS0+nd7t7SvHYvVwGGgxxPCb919tYg+78lB530WGh
ExjIEe5nYHp6oc/REw1evVmHi0WxOU4yMdSydqdOiA4Ldp804TOK+CTegL2/fWpqOczdd+FDf9pZ
L+6XIHNbJS/zhE2k57QrLxDaZoInA5D1PFs9lNPKon3Hum6A9jh6m6EauYaMeAXUu1JaMU6rSZ5v
hkfrdApiuO4PSdPWpTU9jYWALKhCWizzeb5yjDJMcE6tlylN+87fsI9kohGYXh0u/nCS4n55+tGp
iojBPQYtrMLwusdAJhmBbBGtwz49SNt9ty1LR0miTVs5mN5ow5pWjF2W13bxYyu/JbEnfrIXv00z
I1fLZWWHgNPsFvUkg3wPXSGbZa7+R/DJBZeXPf1NDM1+9qD0Bet0GGEGx1inxezm3J5nTAwOTKSU
J8Fl8GueCHBF4rahACKJkq527nSZ6mHFGq0pm47zeXpvz/hSgS115+AQnLq4rhDWx96OzcGB8SoP
9uCHLUzUH3WsoR7Jai9NFtIXr4yGq0xWckClgBYyTiFBb8Ocu71OFefwKjLYc4CiXGQFEiA+kf0R
sExNiQs6HEdoxYKNjvgKt+V69cXtLC3+3IWf6w81xJuOPpN+Fua+hgWR/SPWAWbTdx8//rKeZfYC
4RirR7qY+SedktWkFULDHAxGWI/LEkxbjwA1eBIiCmlxNs++ZWQ3h4uPe3nTR9a2j1BKYNPhmbr8
01hb+21N49vsuSymY/q7NX0Gpl6i5+K9Qu7mLdx9nKVjuN2EqGBXWz9mbV6838xasElMiZMtBO9J
1Fp02YcRj/pFg/+fu6vtcdxG0n/FXya4W4wS8VXUAoPcJNnc5naDHDazwH1VW3K3MrblleTu9r8/
FiW/tEVJlETK7kUyycQ9McliVbFenzIgvh5my3SKrhlB5bPzmsTxQ+c0dmhJ4qFN/VAfeZXl5y1o
l4bJ0oGwEu0ZvQEkqDM1sU4eo+XhyhU6jkmrdbbeHcXQM47vUGd0aAy929CvR0KYGUMEs872+kFJ
krL+iFf52nplUkmgwBeumWcg4yD52oubSTNm7LbSjH3mRm3r50AIQ+ABI75VZR+eAnd+TDqfCUCU
8G2prWN8fpt5xf6hO1ADjWfY8rqX4EFvdtDMtBHoZsXCEXe/ob8evAQviLBm0Ut1mW3XB2nwZF/T
RIP8gKTpjgjpKRPsP7CCD+89HQ0gKRK64eaXr6gVVxRx16E/cwm3/7IRxKlVlXQ1dqIqjoYxoxo4
a6WlQr6giFmX2mUC+YYoz6PDwx7gQvWGDB/3KBiqDN02mmCDAefQ/eCEtfVsTQE0+5Z6aqxUjdEa
OPAdcdfDOtNbccgUyGoaW6n1G/xEfMnVhFtTlRV4qTZ4g6Gzgt1SP/aqm0pl/vLzPz7/+pezyrye
nfgB8w+YvGL2gfyABapR5xvGuXRHoZ3OjeC00xkTspjmgUxdfZRPYn5t5Uu6TNTvqonU+hwAwMPR
YFTFx3OavCQ5AN7uPhdfktfyO8hLF+VhnRRPSVJqin2IyvkHloW4SLZx/6sEYuVOfTT20DRloVZt
1KusVyF5kq7SJJae4zbOXpTaVl57kZRli10QwNOMpz5SsPChXlZfDSjkOekdaTC9KGgNP3yhxQC+
WZp8zP88ZLQG7rEQFRvwQHBLQnehht6KX7NUH8uLYcix9MEO9RIoxtX7jL9n0paewITNpgkUPZra
AAMbYO5IG0iPeidZ9uBFrSjHKFSGOrXyAprohFHZGS3Lq05nqPIq8yQ51sF4yzwqnjSPDkzHCpy8
Oa22KvTRC+KWxfSGagj1BILdsfIlZsrXieYVUPxPfFtCV59Swf95yTMw4bEAQh/GE2ps7QhetNFY
p9n6FQD0sWXAqjWuXanqMlyQ0J/zPdA+B6qDwPZzULfLDke5D4Qw7N4epzrMNqYxXlUDgnAnOfri
KLFAAbW8aP1EZttq9R6JhVR+gCw9XIpLizbrCIWhGzbMk7bxhRwKMcdw/5wKCQqYZ1JIGAvXoldd
RlfBuHzCGQvu+Ak3dp8cPOGBpA/l/jy3pGnEUplrPm8PX2ChS8KwM8JeK9Y0ASAkuOEVoxDdBRVw
IFzaR2eJ1iedARPPYSan4x6OzEju4xoYcWqD6PMdvgODYAjxubAeoarsH+8pWe+SXOOqV1NROL3J
wojfB7NhfsNLD4M7Uf9ojsZEqi8qQgsixA2fH0z8O9F71trjCulWquyEQa1TgA1x7pzR/25UAb0l
FTB3lJW9YoaW6DSEUInT/KzpPjC7E3YI78gpvDYeNf7g+f/4QD5/wAGS/iD8hapuwGNPZXys+68A
fVXfZMPxk54Qo+I2auFojd6JU0Bu6f1iHlqyzjZR+aSFBCHcFFJsDmLf0gRnzKH7p60cFAgG9o24
4WINv0qvzKNtIZXrpippv1gyTgsAMtG3pOBgQeidvLrUv+GVU3zTbvBDUjhsB4dX4KIjvNH8zbC9
3pypb61wZfqWT2kegw9SHio8H71IqGId/6YGIEGzxjk5Qw55/8SUjZAynY/OvVxHbmxy05v6vZOA
EKwRgfjhv5n712w8+X65TqL8E2rU6QA6JGW3ZILwTrytgN+SCtYqlpSPJy/7OYmhZ/8RPC19ChoK
45i1Zw828691d1Mbndr7bBro005UoJD8vqdEa78fXVXW/8eVx/yfLX1IpAdsdbwmrS5XX9kOYPDI
qR7vXh3fi/o2wjHCbvwIsyp77JwIyAhnxxERzKLIMxAhQLcjAgr5XRDBbMKjK04w0gkzcAIfIQ4d
74c06mDR//7hbwr4SvvK+dC5xiwd/zhjE17edLuP2hrlobic+CMOC4Gky1EHZiGlZhARSw1POGVs
Ar3vMpzy5xZ4vSaSXmCG5YstYvmGZtO18fAaxvZZVDAnAaPQMoNXqQ2vY9wx8YmUZ+Far7ROLqIU
nCVhEC8koq14U2mPaBsDXN56DVf6/VbqlU/ffvtd9XdVRlZzqNrvt5sd/WaTbpIvh13y6TmNk+w7
+Eh9w+fyE6p+93OWf6JNnvQDFIhgMlcOKp/joXUd0HQxNvt1mcJUrg6oFgacSvispydGAWWb6/HZ
lH7RHJRNYWDsGLNvypEFmXe9MUbElPUQm3c9PPP5yNz0nFckKZ75/ogYtV4zRVw8P+rywyIwnEE9
5MHfRMXXKkS2UeiW2cYrkvy5pZ08IONsjq5Ymd64keftQY/HrsI4AZ5wwOlhHOLQdFdme+PNbkfG
butmGWS7o09xsorkomfjvUjWK/kv+Cn+pGKl8vM/NQa5sQXHPrbN8hfQW8p9jJZli+WCmOCG0ym6
9Uj0kOXHVl3tEAxu2Jw90F7b7+S/I6m1Tpab3kUPVJWVHe31CiuoOS5NHcZh6ljoW1MgdT35LgEw
RKm3ymObk/YyYYLdGCXdQ+Vk8yA16GkeRx36x3oMUig0GcFPLY1n4Kx9In7wzbEDTdUa/Cz/Pkmu
/GSY7KpYuzTwm52aciFwdn0+Si+PX7dSBgIUwnDKVa6ccti8vWSR6LENa5ciaUZjYknY6xHly2i7
TNZeWyeiwBAi9Mce60y96oDLp2T59eKYwCPKsz25sOUb9/XNbqQOAjAvfiebQSEWlAJoPLalmdbp
9qvOslI1J3MphlYI9TGJk3692F/9JhVjaNgOO4DxY/lJnh1OYK5wA9peXIgniemLPybXza3UpzBJ
FAAQwnetcXkParVDjcvFdK54O69SSYG3TqVZBuG3XHVnqmDHMttsIv3IVGE67X6SgNZlaVgPLkl7
K9Hx+CmeF1RRbFab5p8+HuTTsf74CoOvtuVHaSV//PjxUP3XN5W06+PsjaQ/5ONgLOYARrqbzctH
khE2F+3rSP+njx//959fPkpKDNorFQvKkeFe5QK32icCa5zcQi9W+IBvciswALKGDdw19R/D3JYF
cPxQOX5FIn2yHcIMaYwChIThoLQhT7IBQhVGBF5EPJO207dAAwIJsa76t+flCy8qDtulV6h8rqKR
Vu0yTMZ5jIOhOoYNXK6EER6wq4xgFQxEYowdPbvNASN29DYHE9jFU9FDvONgcsHGRH1ue+UMuTJQ
inyp+s667BPMUe90E7d3Rkbl+My05TJaPikUj7YImhp/hfh98oyWXfjISIPJo7YvV0L7pHFVj+SW
R1rYA4djnLybXY+5DdcW/082u/KgDzSpAQ/+je6BcTyPntIPCQM1da+6fZtJDZPE8nxptC70YouQ
ax3buYv6GjElFoMaN6AivQcqSqXkB46EQYU05CZAII5j6B4O3kUqrHpMtXOMmWHD8dXG/ig8iK16
ZwLVTlWjjIr7EA+w7lbpUj5CUOlQhDM4E/o6UMF60b9N2e3kOy1h3vWMtiUHCID3dIJvVJ7X10Yw
DKMUdRkbuqVNi0MyA+dAigQSI3+GUOxLlsf/dY83EdJb3gT1Q+HwJlZZJinwYJtkvm8taNnc9+kT
+adX6/TxqfxU5vuk3v3N5PpPTe1FZybDSr74t6dD1585hshfoRzoa1o2Soa5II7Y/d+NXjWPGac2
BucHTN+KUX7NuBfjqqei9UuaSdFaMTFiLVRT1esbjeANoPUV26RS84DK6FuQScE4gyK+q1PrG239
XmgD9zsgWHB/4h7qtd4OJm34FAz80klVbGNWJIQK7NS50E/2gNEe2FplSrHuHiGFYQIrIu8pvkne
UzSWcTRvHKDd96e9EITOYoOEBIPcnf7rMn2oBgfPg3exT4F9V++snnnIUOa5ncT5N0pEUDSpxP68
8hGOQr1Sg+8qYHiB5Gbwu7gt0Oa3tWMw8e/DokNiPmsK2coRvmkz1DYXccmNhM1tvY0qhu97d5+j
81OrhsTtoC5VIUFtYI7H2+4tlZILAGeV2zYjLz3Hqx/VDFj5tV4clVFreS6CycPMLZ30uTou7U7m
OujXRRiNCmfyiQuRUXsvMbG89zpxwAIvKOfD1zAheZ0eBdaMHrI9VGJF268dEBrUJ4bdtsTEkgBn
44e///bj3/7yk75dW139KPpakIW2MVFm1R1kmP5vUYY4gHoa5vz6JQNC5H/d0bWEA+kP0O7Hl8wu
hAEAQeAgtE6hi/KJHlo1kSE4NLIRp3zblmUUimOoc4Yp9g+tWkJxLfEdc0qb5+gL7PT0eiwSqGr3
fcxsqsZT4LVTR4byvgMnCum0AZ1mCrh8l5zy+CkroIruEq/umq2mbD8cOrQ0CkIGnVuTd3cGhVkl
ectaIYHI3/ClLj0oKJUrk83OW6VrZRV+D79RLWonKvwIRPjlggY/HP5aUaAZdvakDjIC8yUDsYdq
QqjiDg1upnwiuB9OJMbYcYbSyH9I4zjZvglgFmuNC4ndkUYzEhjhRShC05dzZFaoS1qscBT2R0mU
iWatHtLCk2LwC6B39rgDAbSq9mAykHGdLbPQEkPZJaUOeLB2d+WfaLIhZZJqYsoNHn1DSY91uk1g
wL0eQ8DvrXN6D+xO0YhRAJu0WF6CtWwAcb4Ac2WniXRAGbSPERXo3TIzjAg2mxNoSTF0mGEcAaAx
m8jiXxTyFSC/yVdZ8TxQqDUoIhAybM9yZglV/Xd6S0gyqBn4pn3z5NdqW1rzJJQrO+eZL+kmgbBG
x1vCMVHZ03egrLrISQSbzIAXtbrQF+sdDZqmn8XZIiAs4PeutFopBi8wRfy933pfm9X5CP/361++
/PW3n+7sCPB2+P6UYEWclLBe7BXRNn7IXo8AYh1drYGPDacsty6aJYW3zUoveU2LRqxMgT1gBk3u
bDYN1/EoshDep3DO96msdqV9kLgCshqh+5VlFefRo5c9Q3qsuucTlJZi4462PMIXlKKZ3sH6WvRS
SycF0C8k9kHuYfvYGKeDKYxQofO+B4z1pSOt69Mjl428B0knHsz3gk3aLbxXE4OLWnWyytS9GuCF
IT/ghpPZzJzWtx9XJjbo1FW238b6/IOAXMgkvV2XSQDUsg4zHYCnxiRbTEH+9Og2GIWGVaJDwwFX
RG32XnEO8TpmLV43AB/g/A2fn5LNty/ZatWEGyJkSBKh+ysrfGKYbRy4iIx283OD9IRyaSH4fFA+
TfMIpNtttgSefk6XUsVURX7tCVxEkIIzYyPf36qSsIpqKOxyqa/W6bO0hx6Xam0wRtQjnG4f9TUE
TJpHDuIFWlWml3KAU6GWpHydARhArflbyR6M1Sz9wwDSQsGfA79dG6FgB4j7Fe7QiXCjKalgZV7G
ebbz4nQF1o7kqXZIGOSHMKOdOublDtteCJighWzy8vHZas+uBQJq3YOJiutEam0GOYASUnyvrBv4
Lu4830ivVYX0oCXbyCrjgJdrhIzXqsx/BGWtv2hMKHQtW+KuE9izPP82UQfV2kMhTIXDyIoUq9ut
vDXtjBxhOOfvwhP47febQjJ+ID9LqyJdHX6CqTPkJ6QxmowzY+osY3fy/XkfjTGWgNiImZ0yqV5F
MSr7UEUTsqSQp1BhnAZcJwC+TopRJ8Uy2qmS3s0xjZCsYw8cv0IP7IhVlePcmkUbNIJiL0ZGK5Zd
eZp1qjspIgB1O0LwdOg2XWTWxCpouEDUDGT8XYl9IO5D7CmbxDXKcYLLhLucNk9toJioeCIIyGUt
bBMwRbsnABOa9GZVq4NLBdb8cxp5p2jFi/wDiR5pjQaGQ8JbzaRmEPGo/cikeNNFEKLvZM1yfMEX
gvm+o3MNrFqrxOUqr18jim9By8QVz6bb5XofV9WRJ/5tFvhL+ZCOwySn4WK6xb41zQG5cPmizC8m
haSN3gvGgC0upkjJUwqjww/eEafEO+KU6M1XrKKGk9SRVOlFy5xyMS4eak7f9ucZBchwuiNxhsiN
A+Lw8F3FtvLwWLhc/E0hbNvABFTtYxI7S8sAwMZ3US7doqhI1OyQbZG2zkdREQ46lqPzPMulGnxb
igR6EXquSIjoRJ++oludmOsoDxeqi2jaWifTqk71Fpm+PBdJFxlRMj7i+VrCXB4P7DqvZhxP6rzH
PcRAo8dIXlnpJf/ap88abS+okL+meBHp5rHixwt2LHrBisOpygmWVbFkAOZNYoX9Uc/RgE8Kr8xa
JYMKPE5ADQi+idbwuErNoOmd8+Wbx8WI6ePXYdbkwYt2u+I7H5Gq1PmtH0ErZA9ffiPprtyjztSv
WYckHRKY6c9UEdP2LzpS85oEPTHUl4oRpzdhr5oWGu4KArLgTFgi+jYpIZgPwMJV8hjCcJ7S0NqY
K5TxGXnM1FZh/RTc7qqtXowSjTc7lmd/Rb6vq3PwpY4jgfxG++y431bREvnjosz3S2lzdllj0ghY
mM0GGsyQOj7koXT2DYQQXa1WG8+X7gMU76hknn6OpOQHjIx6WywQuFPiA8O6Xtr6nKnO600W7yEC
3XhPleCp+eHaIQTccIzvMDLUJUyVBwV19VIZPMqPNlGZSplcH7wojk1aMzlAtYgp93RZsW5KqWbf
I4Mspx/YZxjdw6igkapglBdnW00cAbiG4olKSBk+cbI9VKG+M5CvgjhsTMxYhHTsy7SKnlN5fC8q
apnUmlbIyQt8qqYr0ljeerHTO15MiiF3eLvnKk4odNSZeFiKYmCUs6GdjRk1sb+V/2hWKED0hLte
ghJky5bILk03faZa2g+EB641aFsXvxlkihE5vWcp9puijaosEDMLPDNyOEaJ43WmBsJry6d0rQDu
tQlhCnmbAFmzE28yZC5gN/KpMHUpIW3WhW+a9rPPQ3prBxnWx083JrRmBA5U2Mait3MbLiY2FFFt
9F2rIoWTq9FF/q3CEWiM/9PymqmCaW3BBhOGw0m19hVUVa2iJZg559HjRfIIuSjI4sgf6VMpEG0P
6ZwSeoqItGt5zN63fAjsTtfqE2JM5Whv9LT0gCG6UQckvAnTtj4roW9LSezXazVkKlqW+uK1UDkr
/ruWEUH5rdh1jMF+LZ31sOcBvgJHVY/HzBZ84F63H6GT+qwvGEJtllk1EZNdpq/CV3XD6D24Ce1z
IXnIHbJotkn1oTZEJnizqkhtB0nLMnktd+tIn76DaD/pAThx9GAMo6m2NkZ3yGYkhwQEJtviOSWv
84FSksdtPVBy6SR9Trwoz6PDwx6aCfQlMYQZVo61cvJW/TbxHpMMpE31ZmtrxfE4zr0nmWfcil96
Qaq6m/hIxHqHekcdgj3OHHXJlnG2NENiDMclA8cYCJoovyHg3BAxkUL6oD+qHxoWIrfq2zLKH5Py
3DCusIu09wtayYFCUt1yXfC20JGGpugA1YpXr7OS/HPSfsDg+n5eaEAcZWgM7ETH/qA4yGCAfN12
FChBujoWyMgv+EZ9prqsm4PdsJ1gl2ZZLUUQ8sX0V7Yu/XyTAdO5QXTB/DFhzfaSGKqPkQAeJHUk
PMc3PFpXRoW+qQDKyuyeVBX/QMVcVKTFVc2cJGzIrKlBJcGt6BXIR3hcXN9IRegVBB6cPrUivA/J
5YQrXV0CR4EttdW+1FleeQ+U7W2IMCog2cJ85w2f2bCrgDMEnF0zlHpnG8ChsCnqTC92IANCjLU+
LpCIvFje8faxtWaSSwEnY2yA5qTd4ycNFEgitZY3oXTOqO+ACHk93OrV6Eowa5xtFI6qhhh0HNCE
eJLmhSbUH3//Xfqf2UZe1CZr6edBNLTqghZJ/gyeb6ofHYYCX8rRmDrS9ssS+iJsH/oVLC50vju5
ZMUfmtkJIczSEDPZJNJz20ll31LBBsiUIZrMRf8TPUe/VzGrHmZCUCdohobQrruOM8KT7fICESHO
NlFb3XkInrptBs52EGzQ8zCBsE04KE5+Ha9qHLX14YGOeBIG/uR7TH+uxv303CElxHDchNkdqraB
jusL4JeYfjolIH2HI0r7BI7F82q2yUu6jbMXPWwxH6ejJrKTH06m93MaJ5kKucKso55HhqqK5bFJ
9Mdkm+RRqTpCqlLlumawjB70KAsE4o4Cu71mPTdjNbDEjjIqkm1ce07LdVYkXrb19tvW5jAKMIeh
K39Y9bn/8x9/N3KMOacWrYqKDt1RbcRIOK5AwWhJmJ2kx5aEqYOBmJvo3S8/xuPy0O2kgGCpZL+N
NFlhXx0ARRTQjYXJ4mzI4i0BRbwwm3rDRhB/BQl/1e73kq7jZZTHnRFVbMoIxudW7cB6J1FNjwsc
Hdz8zCgwDOganzl7+AMyaKXcgnJeVf+f9u0kpuCQzOAhq7Fcex4yCm03HDPhiPBGAEyBYjRslegm
gs1VcC4cvq7FZF5X/L9O16HuyBmbhnHbE5xsPblyFzc7+uZbJQP3opoN/UYACVCtOeFMPKqtv2ds
nGzOyyqUOWQVM4goYxEtn3K9D4GQHxiCbU+67i64b+IbJhNvet1GqZMxNFJN66qX8mrO+bLYedDV
Dm3GbTPPA7mkWee6Ka/ozTJAjsD2lsmfj16J9lAQLRfYNb2LcQQPDAMc0xRAiF0Ypo8nV2CbAQBu
R/4ObESLhjhE9zvavQgMFuLWGCzdqEr5Mm8JkiNMAZDAt0/i7R/KsaqrNo7lel292Fxq+5DYskTz
ZW88BTLfZrjkbGQ1TkWF9nGjgcpUhWgu8nd1akNViZhhJzDhr9PqIWKcwA2+FdiJ7lIguOnjqT5R
1SZ/gUekb7HkUGBPZyJ7V8yNc0NI1aEbUesnzxBxfIq28TrJz3EYFZWr9gpu6ibRIweGEHAWzNXm
+pUTIabQ41M2cCTLY5atDvroCHVjEGi38Uf0HNUftYxQw2CgBGKe/ejvhdkMF1XP5UvLW4n4yDhN
Uy885clK2n1JlBdmkHghMCBBVswtlU/RB6IWiCNnt3mp+b2XJ4BelKbvFgS/ildpyU45QwoMzLd6
y3pjT8X+hY0bVlZeedjpI2AQ2J8kN2/h1N6uqAqjW7FHUUjlL+FO1fe+8ArjzF7obf/QbVL7UKRL
XbN1Webpw77sPjgLxhn3p51s0tckPubvLmvhlY40KoYPYO44CS1Rv8wATU5K8C46tKXUYIwyJnSu
C+h6LqhQMyPtnH2/jZOV3EHcw3/IjUHbcnx4XeQutNYmxJ7HWDEtx08hxNRSIcCdGmy91qwwne/B
jU66iYqvxwmFLcaBYAtqVLLEB534rRHW7UCHYCBO2EFHm41SPKfKAUV5PcoRVSggtui+i9IcZkTu
8zx7jOSPoCqkyuLn/8/etfU2jlzpv6IN4H4Ilt11vzRgDGaSDLLYAWawkzwHtETbRNOkIkpuO79+
6xQpWRaLVIlkkXIQIHHbak/X7dwv30ni0l0ArSGn5aVfxIVi1p2kp0awi9Ef/qgs9L0dvs5+KB+L
Xbb6x2aX374m5adlub61hHFD0B9v6E+NtmBpHkZ49eIMeJY6+eXUOca5ZJOQZhtR+mE2DWLNo3bF
fQ1RVwDVeBKeE4CER8PoU9XytX5wjiqnWo/19iCD9rrGPbSUehYv+i6XF9F2E6cZ+All1hKnVZx4
hq9aeb5GpCg2NlHzlBqPDKxpt7hn3LetIwjX54Vl+iM6A9Z38b3Qkk5E+e4IAfLESPIlh7XxmdtG
1EnwLDQZft6/mYf/dW0nHR1Xm1dHrhIn1ZQt8yxAKbfxem1uxkqlL8nyqb6dZpJxIQijdMTrsJt5
axBvsUClZ3IsJLEeayjzR/3rFeneEJnDfBRjoDp1l2ZjX1k1JOCfu2TTUhskwGofX60bMfatO9VZ
GbddqkNxiNWgmcn87c0dZM4RGqTvz+JNVpeU2Gl7n5dlI4qvFgyTsYnmHLmgwORS9qUX4tkMdbK5
PH5OH6rXPioyiPNV8bQvNTj92dnypshoIq9MNsbItNXLUbFOIHoIWYXyMf6WtA4NpWheUqRKz8ys
L1GHViILTuCJusp4xLUNAYf+IL8Nzz0DHDrRsBxLgx0+fIfB3Q3/b4ubuB6dCZ4M08fnpr7YNDvp
wYHVv340Mdf+bGdCOrK2AOUuexzxhDCc5FB19J4QhRuByzY1odm5vUM5G27HEvfQBsd1ZiDutsaG
qp6jgy2czKup5qOzQ5VirjBDnK4IArzWM2M/xhZzF18N5mda4saUaxfujjBIgvJr3R6jkMFToxOW
sTLsBDyYxPmcunsJOCSi+/C9v/hpt+60ZyXe2CIHWmg6vF0jCpnxyJknvbiu4wy9HF1Ms8ncvAhm
QpBAZq92jQjEnsU8fYnA/f6+MyR8yP5fyaaIDMc9mOdu60vDBCLsWAR+2JY3pULMRuztatUQO0d+
1RM9Hn9lHB2bZzxvgSCY5SH1/DeEP6Oml7xgWnlLhJ4quLosN/VQwviMjnCv2J8/gbiLyMH8vgp6
wC56wNRsLpgg6aIFzCULpR2oWztIogO5KACUB/CLUQ7DwltLnDS4SZiHZUDXXt6/ALewlqBJJFHX
QJrEQZocc4EC+swwPexbey7d2nV9TMqxhBXngWj1jSxqCy4uX3MntKu2FStXQSHUJbwUNGwF5SW4
K+CnNovIeIyK9jE7vKhEusUYNlZ9wOjbuTNzBZY94gF4cxtH2/ghSh/yAioc0nuAaYRYM5AHcZfw
a8+2veAkypwkihCa+qKc9wSDMJmYRqK4MwHGT0J6TnnK5uUZ4td4fiEpVHUTMPbtGLrHAw2ZIQXI
dsEpAgYKVA6Tu6mTQ1Mn49fAwdzpMWEaSr4zt3znmst5SZUipKYgVXeFPCRzpZ5dsVNF5qPKljAH
pPY1ZTNKURkoymoHH5y4LYeK17ZODowh8Bug/DMHWDD4rg2tD7y4wfCZdQ2OoUBsnr9xNsAA5yJY
5UCLkyxC29RFxQ3WYil3a5gn4owRgG2t0WzBxix9TjqCjTRAuUmNG2T0d/n8EN0b0w4MPPuhM7VL
hOfoxR78+P0x3SZZahFy7a/Vl+RMcSuwwpl3asrisl9GNO3baRKOFAsKmGZzUU5XtQfi4LJIEYp2
vNCXOLQEiR7GaAVl+ARSOi5LmHVR5K3QzNbADKUujumhXJv3Sbro0/irtF+B8lVNNVOXRGpHnGpG
OZmPlzqSPhxaOQUOF7/uoDJnTJtQv/5V0WkXuBjMDYYK8xQogDdi6QVHLccQKU5e577z1eUlvP6W
cbMxyvryO9ItBFeNngPuonXobt2bkL0eFXy7J2ZCgfCZ8S1y0Bgy9zw+4QVlIgM5Bmekk+zHh28U
UCdhX8rNvb0PyJrfXkIvn8ptvE1ubfVUozjJqAjkNcRNXq1+MK5CL5IbYeqlV8eRHM9H8UvkSoeU
rYZjwGialvGOULfud4sXuz/j03L12aksNjqBK/RB2BGa57JkmzQAcQALmoeQ4+0jKrEn+LKLsOxs
VqCr9amCVuYoRHnNeBqmn+ugmnv0tQWNR6EV9FOyfSxWXQoaQSKCi4DKsWVGJ5NXyBHv7uuMgjJ6
9jolk+sQ1WdNyWTccvkxnqFDMHEp57AU1tnOSLFj7+kJYEeqj9/LnRotlKIQAtROw+hAVVO+Yal2
BR3dJRD+qgYFRCvD18VD9BRvl4+2FDg3h4e+i/1e2zejidGGdEa7mKEegr85nGqXGu2ZrY173Gy+
EEx5IkfJ8SptKWczXirmE58WkZ70fAR8WFG2DXUck3fLJIiF1miIH3ssJSwjVwCdbWiYgG0ntWah
LYT3UX+nhQDY8H0M/H7mkhsjHzI8ZEZv2lvXT6glbWJu/3TnjBUsP4Az3T4xm5PhDH9mxCzUPWBB
+HUade8eu2nHEc5oKP5AbhlMmNbyY3BFh+3YK0p6apOluSdQCgFUe6ZnFGRShxLkUMRrQ9JllDzd
JatjCCBjJ2Yr+I32OfChLoW0FPUIGU61vrm/7cW8WMNwKUnnowXB+bRhQqn4JfJiWRTf0uTYv9o+
ppsVYN5sDUnZvzXmQxa/gBPSPmYXM4aN3Y+HrW0165+qj5vmmgDtwemwJeoj7bZpBo2VIPEsxsb9
LrfzrW9XCUixehMNeoJu5jlFCxGBj28e4OeiqI7fhJXwa4STITFgyiJvJEVhvjrWeDSrom4J3G0f
T+UPfFYlSqtJ3enq9r4o/l42ItIRADRqPX5EAJyJXlEBKBERoaQRbyvb94/gddd1DnwSI5qMg7XQ
Xq14oZgXiyu6CuwHydvnLkQLMTAm0CXia2AwgRM1r64Qfdzp4YZgdU0dhiBFMwYHBaKTGIXdNiEL
ZRPiFlMYzWy3iDGckkGau1huk62dDBQ/OSBiDLNIMR9ZYhQsod8SX+WXZYXGt+UIuyJ1JAm9JuWI
hJ6XX6GqayA9Zuab58SYiI/GQKwO7hwRoD2xq3vK5Lp6sMNLRwJ7TncPKZ9eXKPYFlxpwYdZ8UYY
xGlus1vOwDs2AogLQocFjzvwsfyeBlBttrvSgQ/ln78+71rlRbTcGZfl6fAUY+70sujADJtkoGjE
mIz9UNzF7nZ+Cmyl1QxsZcc9fmkOWNQStB6T4YVNm6xRMGJdoQnM8voT7wAtwFYzPJ8M6GIsYly3
qxEBXRvVQl6DAOjmfz1Qn9wb/t9aHNqIZslzkkW52T38WLnGQHHw0/44rfXaZA6XwLY4OONTxmHn
ZKhnakNl5e6uvqq2eDUY/YSNkO80N2/BCOxysHgVliu2jzBnsHV9woASCGezSKLuCAFIIhJQRlfl
EPZv73dZy6BU5jnAycshe08VQIqQPry1PzXJkEjFyVycsc6MrdiAUFowySUeRbQdakGgntTKtcMn
hyeyzRafTv0nC5xTi7jbl+h7cvct3bp/qwpD3/7xUL7w9cuXQ+HCV1u2MBLuYg33rVQYWjlMeQGa
Me9z+3OcZk2ZbnahQ6TpPUEnOULsP8TRRhwCz/k2BGk6mun0b/k+xs2Wc4nb57tTC00LCNbSYHXn
nmRDNeP/IZsusvGPGHazdWWnRwwxSybFzphKxer1JGgLXS3Qb4amX1Sw8YjxosPysHVMa6gXi+KN
8YufQdGuEvPuLdNrBfQZz3QLdB4z1IgAgSayan6LS4enShSeUzC7G+DxgimsyXSU6SRIxo2TIsL5
SO8RPyJoQt8sW7hDU2ocNjGq45x2eM5mNYnCV/C2XkEzm2ZsCKFpaD5NnYwKJWFUB+6zu+Au2EIg
NhfXNnMoGuDktArYY+GHkoCVhm4PPq+bKNRV9ThcDBgA40OvrHT/4kZxzDkeASwjL94K0Z2tDjAB
KYznOfpVddTuE00nULVg/HVbgDBqRZO5JDzFEs9qiiHNRWAReraPHSuonFJiInpwN6lB2F5dHVNd
0tNO+kQ73pHSOouh7NcsAp6yMdayLHlwT2KVUM/Cp83zNBBGFpxgRK9ScVzSx48FQvxDkF67PNeC
jEx8raTHoKdVBU1w2ZTWvgL2eEjp2VYoTAJL07M9v1gRT5VGTlOQu2ybQoPOcb/z/rPoe5xu6/Lo
6K7Y5at48+pwEwTlFL5BlBAyyBp63nuLVgykeXRfLHdlBDNSM8iB5mW6gh4i85st06IZNab5SNG8
MVnrkuZfjEYrXm2wWBsOlXk5Q0FMsasUrWe6abHklH2IJ+/qbKViPHG6W6/MH6Vhlftks0mco/eI
IoB8OLbwMvtIYihkgO7w92O/NnH56K7alHhB+1QsDZfvZzsczg0cksEmPDEt2UxLI+1VWai6ZNAW
1IbRHU9RRZN2Bri7uJBC6fDl6x1e3zjQab5KXpLV6s68aGGWNCrjrnhx4z6b5ZQYsJwvsdWfeFsT
2twF1kPv/a2Ez/kCEXayoGCGBWV3yZsKN8wMn0lRhluaqDNTdcMtTf3w8jqo/g3d1+LTAAlE68Rs
J99GSbmM126DkcJc+TMFziEf2ysQpM4i83heQLNHx1g6Cz+E8/FFwPmCOSUHiQCLL7bbZLUpXZrH
MEZAu/Zlwig52mPNc3ZADflcVZIWq9f2SmrzJJSqkQTfXRbn35zjqf16UwaugeToLO2mFGO9EV/J
dbG5XhVMHJ7OnRwSZyrVeooQn7WlVxC1rwhpERmYYKVHe11jF5t9PJ4RV1Y5G/NYYRqeQ50pYUxt
/eyMhKYRm4vOBOUhtYShCJDUndDwyLPLZMDbJy/ronsEhIKhPXKYT2DovsiyyhSN77dGJ8EGI7PB
9PnADUZnPTwBO6S2+/o+Nb9G3MOLYHQ4pqPzY7kGN9rFhgJCDWFs5M73cBEmtNGgCUizC+bPOKBE
8PEfwFAIjLQ6b8cSDXHhITu4ET/eCHwjhf1KbwS9keRG6BuJbiT7+t24lcX3z9ti/XmvG25vCInv
it32qzUCzE+nEyWE2ZjfzI+LWLZ2ad9aRI5rJaN8lzkjohy6UzQN9Ug1szgbL7RnkURPljl/Hx2l
R0JJaGgkMiwL5UmXbOcU9yPf8a7I4aLBQBShhAxEMm5aEZ6TkkfgGDeXYM9BeOO+RAeBarXgQo9O
nm87TJaPxd4/XcXbGMoGKjDsW/jx67uG9rpcu8JVzpOtlcn/nRUP6T3UICSrT+b7299+/P33//q0
LNe36dMDsMANQTdEAh+YPxqpDr3gWLHRZVOr6hY9lupEDTcOw8ODC1SaAeyCnpye3NxMOeJq2CWv
i/Vu/S6yGoFOdE53pDA+Ljgr1wmZfc319zRbLeONU8wKUIFD7ZTmDbhPz82fasJ3b7mHTskC/KAY
Ca76OmxHDoXGbAhV1otlqXEkWiZJYQwWKkfzP4ebMTHnSo0Sxji5jLMzBqRcSCHkRFzqdB5sd+xF
QX+Pc9tpC53DFZQRBwEcp6Bq9ecf/+cXq1XfGKxbsRrTgQmvepmR6b5L6kiobOgNWPC2FWqkW4VV
8A7FrwFV4EDK4gDHhAhFPQyBJjr5PZTEvNf91v8DCCpGJ7/8FlMes0FWZKX3jvIXe/2flkcbqbfm
LBuE/pY+0dpTUbMzInWT/qvK8dQVgi4WN4Yz0TikclvH5tqrQuMuFcdlw6n58d0h/lqVlQ8hjSOM
srdvD6BkzuVOr8uoId0naXGMI5Lmz3GWrqJqW+25Jmr4g6HhvPF21uNpklWoyAgB59KUk35O5qWE
8VQ8p92UARGiUf3+bjLADoy8EzAnPNHyVgxDtaAikx2fOI7P3itHMtHyNV6jUniy09Pm6cUJHiCd
aPn96fvUuPRcnjVPz7UMrQ+delBjW0t2vDSb6OT1xWtFJ7t47iC7k8ZSPtHy+/m+Ek12euEgu5Mk
npho+cPbi8lOLx2nPzFC5UTLV0bHQhIyzMDZJEa3g5kBoyvA3s2ytGwrzUCUL6gQY1o5q+Q+3mVO
0E8sqbF4pQxv2BzqmlqmpFIYM0RYEDrb38CXVbrBJ6/uAN3l5CSyAh72tFupCogXEgdxv74/Jnln
bkkoT+i1YRdAzr6F4niKlyBnX0KL4W7/GXFgGOXBDdKH5UKwkyB0sJtYwlAP9yVgLvrkuUa8BkaH
r18m+arGxn153LilIoyklhOtREeIpR49pm3r/fv//VKFtpZQGLLcAVBvVGbGs3Yn3KX59/0Gx46n
BtxxD2G82zEdnE3yBH0bgDy+sh1M34vNyux2l1czCHebRr1OLXsIVew9z90XxUx7wUqrwZpgj7xp
E1H38bckSp6h5duZ9gJgGXQV74CFksE34rcTNqohPGQnIZpQzAJ1J3Ve5MvOKJRkRm6x3nYx4HIf
yBFEwvIxzt1SHwtpDGIqZiDFH5bF05MxmZzNltFCUzFBpPhMHV0lMMW4sqGqXIuKdeL0USjmnpNr
zifhHjZJkhOOXjj67AJqBzE0yAbeWBn3lxdz12BdlPvDddXHYwIGcJ8cmP/rnindpZB+GaF098gw
yItd2ZL2sGPjfWLKuvWai21hTLgImlSNWRctLSCEsT3MrW9b0Ms4+J66O42rL7dmq3MCX7s/bZPt
+FCd+4c/zLSX2s4mSA03PkGigvmXJ0tHW4KlMfPVmPRiwLufS2hXeADZoTXfDh9pVDxhJsiC++V3
tZc+AeD8dpVCMF4wLzxF7ctc+xpsY3i3FJzD2EM84KoPUKk//fLrn/73L3+OtkU1V75lSVtK7FW7
pUeJnFk/x5EtOUnfVr823TZqllK0B5m3DEUHYFkYwvD1y5cv26f1l1/i12K3/ZvZpeE6s+UvW/ut
Q9vBfxUdHnIbbx6SbXMIukWV9UIG6cuW+foxsrUmdfEjdBSusx+Sl3WySaGDIs4qHN7ysdhlq39s
dvnta1LaOpK3/+TGbGW/xXoK/Kd/3nrv4ob8XP1bRiB8shbnrf3aMLQ4AsCbIZxTARlEa7sDo3a/
x69ON5gT5lnK6ysYnKtgswxVapC0Wz4m0CN6X2wiKPFYO904iO5SjCaTAW4RoE5EQGAJ4BIAYqER
mfQaHIljP7w/fdZmPqVngKaunv+HirRPNYEUC6wV7atej0J3LaTnsC2UwGIhiWg+PZnw5vfSn+lJ
H5+6kliocRN0wm3UNyEonfQmXDl0FYYNsuLBBTDF7BhFyT6iOj1Uai4B6NN8NT8FUrFKqAZ9sgmJ
Y8+pfWzkAVtwlRqceAbVr023jT2nkmn1tnDV+jSlt5hwG/ubEMNMJSMlio07iqmh52TSa5Yugmuq
BjnhNvbZPczGtLI7qg44xDgomts1FScVVTO5phLh0GZh/RYOu9Bv1uOI53fYxaIPKZxYpgwxy+yO
2RmVKYqxdLw2mfK4FXCeZ2Z5PPuHLZiamNdcdaMnTe1xaAM4dlrAaiGxmPYyHCawEB/eHAVEUMEe
Y2Nj/hTnK2NpLh/jTbzcJptyuJXa9a83jVcmhIO32ZQPu+dtQaYlLpf9ylDzMviUG6kvg2A9cfjZ
WTrriD+LKTdS34bqw/ND9uC0NB2XIafcSH0ZWo1palbYlB1hXWyIEYlBTkSar3dbO2UjKnbbLH1O
yuhheWjWtV1LLd1DGHNljC02W/DPr2vqTEg7zePNa/QSQeoSjPs0d2euFeTsCZ3YxOF9MgStRE24
+HzXmH9LoNYCEUmvTHfnRVN1jx822rZEjijvY12e4eUO55Fx7FkZEchl4phPSNxcaE+40TP8mxV3
h/ldd6/bJNq05scxRp5j5a6IzLdhA6Sc0fFVVp48uytyLDwaHhb2soXAF+sqJAHhOjh72ZM74xHD
Tca7TfEtySPzaZTky2LVclQOeLlofEfstIwyfcgBS3uXl/F9kuaZUZzuETl8QcnUoqVX+U+7MVjd
/OHWXxzjRqCOf1Cg0fPWYRv3hdnW6pD3z1d2Hor5q00CoxWiIs9e3ZhiVWXa6PxeHKYqVE04q+J7
/rCJW6ZMQVneCFmAZbx8PABC1uiZ1fgvd3UUACMKHlwCtN6FQyxQzKZmDCSD0Ojp0KpLqdWB5ylh
gA9nQcnVSZ8SezYJuJWUPVR8VxbZbmtRx93jm6T5v5pCXgDs1Okr5IlRmnZ8kHmQwn7b+JVis3+h
6hM3eAUMTMETMpVLuUoxNRcxNi0XjfaGjsJcQPLGWpHByYp6dOc70ncUxRJgbRpiNdJczvCyIHgC
NrNgL/YH9xBpQObVo4uydlgvJnwxhgZxZrUBp2qbMlbCNVlw0rcS7AgvE/oXym2xtm5GC/C3Zhgm
po7+mJUp3aYxuGEcosaMw683aW7cJmtG7YG0ahCpJm5WBA3kUs5itQ1kHA8yfrt6l35R+IPEDAbG
CJrhAaIlmTTkqfqlzVs5qxbM7oibHPi0XqRV78BFV4R8oFjU6LSFKWeTRxzHpK32MBeMYRB4tmAT
ZTNqCTbM3upljlP2kYK6w4O5DmZSGn+kOxj7AhhHVI9knBSGrTapO3ilMTW2LRGjZr1hTumrI6oo
1GJYH2NDYl0UqOMKe06TGXJQwL8070fYVUXmxq3jbD93Lx3Yh5DYpOk9IehCEj3N0agOvRDD0LxI
BZ/oQJT/mxyoJnJCprq4j1DEUGnA+G65Gt0MYDS4vCZILPSCKjzRkzIdRgG6Q//CczhCyHD2qL1C
hgMNkTZYkkjKJ9Ls09eVIDmVuGFTaTg2jUKg6mM5UiiILyXlVIpeqGneVbGJeH0izmNIT6DmFASp
JqIEqcILfcyur2H4PIMf/298ZhdMyBENjI6EnOzpTY+UkMM+s9c4Gi0hhxfSR/OfrngakQFQBoDf
uktzgFTtmMeLGYRmfHzB0zXfDgcQN4/xJk/KsplL1pwT5AdL57VClZlvrkNtCZ/AH4xT7TeG6dBj
/JzYn82XahhqCMaVXihQRw/x26+/n49zt88XpjCtifpk1DuY6D3rHCCTsjT/5iyelMqvKHzMY9px
eJMuKQmcdPIlfdpH/p+9Z+1t28j2r+iLil3sVcx5zxQICseJ26DtpmjaW+B+uaAlWlIjiypJuXF/
/c4ZUrIsDqUhOSSVRYHWcRzbZ+a8z5nz8IlYPnKqZvMJkoyczJtHkJLDuKl+b0ndGhQbGLezEqpg
i6rUlqHfG8uRYKTFjfu3D+LNWLxtbwfy32N7TFasjVkuTcIDynx9dbX/lV9Dp7ALy2ziNHvQ1r3c
tZ+PwNMHJh7cou0ahkJukniewCI8Mw52AvSZZtHsh2g9tw9p04ClW0FNA2mpvnq+UBomVqHWd3+G
v8NCloTrVB/FtuWYwlxM0R7hqziNiiG79s4WpekbfFEiiW/H7MaDSJrfUxZJhQLWgbNUVU2NWQMq
r8PH5TxfPKqvFa9WsJA9KsrSgP4TTf/l435f+30SzgHXk6VZsHe/1N+GK5pjqXbkWadWyV6RbVbJ
+ZWzA+afVK4zRQommjeRgS7UcDksLSaQcupdSI+rgffjgc1ZlvbdFFxHyBSxnmNyRvggUmIP2LnS
Yqs6p8cpeVGcuFUBnjMQ+5HU+WCuCYwIsDaSQ6Mvll414woq/U+9a0GLN+nSYTQoPpZaM8d5oZ2C
I6k998vCVQQdC+FxEoZoD2Ki3e0mPFyp3Jbr++V6mUFjabyxqgxY0ndimHtjnFVd08gGg4RDr9eU
rF94TsWYHuEp2S88pFqZmkPZOiffTLCRjoBov3IhqOoXoYigfiVCsW5sU/GlXH8/LuNVvo3aTJqp
yG1L6P7oF9+C9wvPaQubT/IGpE/vSzs7lPWMUdmzCSH0v9pkCdqvAsKI93tB7ZLLflUebDeZ6KAi
3TUzTvIxH2ZjU5FqsO8yoiOssEc3+sx6KBhkgSkaJHHGYapHh957FXXse20I07ZISMk9BE3xp4rw
GFFYDi5ZJ573cm0WVuWjVcu+N8cjVdO3OZPRn0fZJNX/5xeGxplvpqsoTF6jUt6McCHoRcigPa/F
xQg30UoHYpCnrBlGyp47owiS1Mjvy1WZBJYOV95E/Z1PX1UFwoc/eYAUyB1k4ediwvdRCJyv0bmI
Y2aLRCvMylNKPIQtcTQfsIiONovr61MtX1w1okr1ytEIZIkG0ustK4luIMJ6LhqwDm3Ved2Na8YR
vnQ3oFt7+WgwpjdjBKyPAgR5SnImMD5nDQVn61mYzCbQNr9aplk02/f05+9Pk0xbkjm4ONrZWS3n
C7scBoGE8uagDotWv1PA8fbwbGfL99nNrE+FkJEil3EQgS7kHFhcxjkYuoxzUHoZjCrVZZyDXwqf
0gvhU3kh+LgQujBXPv3w0y/vP/z7Y5dnCdDlnAWTyzkL4ZdzFsEu5yxcDHWWK6jqgcqBbPV0Dcu0
v8u/y9T3lA4q1SBKp+YhCfkCDsn45R9SMfUlkBtfjiCrC1IqhF7OWWhwMWeBp7i/aWRxsAX92zhb
A482Geg0fIh2me5ws8mn/phEin33B4MhhPJypIXLC3LZiPjbrba6j8EFaXo/hQ6HcrM0dcD5tmwX
EZJsxJikQ+VG7Y8AmI+YIA1qMn5Pzdvo5Bk3u69oMpWz0pjAsEmEiWyfgj18poOlVPrTv8x1rYWf
CrERokIiT+pyqoEjeyYXVqM1IfAJXMa252eMYPV1k8qPEy9gNnb/nN9ZX7l0490zHL6oR3mKpBc5
P3FxU7nO3Obj9yzJmHhKEh9KmP53ePt5IWjVLRCEc5Mj9idr9gfygKPafcHtJADbJYBJ6R/n6/hI
sR0vvzVL/xDnBHtmd2wfvA3TkoprgvD1dlPDUngkBe5U2PZiVlQj5cKW2/dtClMXpovlamY6zqr2
AOK9S+oXQw7oQQJJNBRw2aoE7VjaSYVlhUHVopMr7uZr5HVYlv5JCbZWDsx/xda6Sg4kBF79Wa8e
gf5wolOkd0bkTHm3/S+vuNOFfDBOlHQw9GJK8WAKLuBsYAHMPz9lAAgRHhUhrSgWwc3G75yKoXKO
g6UfSYV3SQIJawu5f0/nuazIcHxFXRFGWsOhjsqKsqdVtAjTxSSEpL49eMcYQdGnT0vH7ARG+Y6T
rhFdRnCjkX9mecwqTObR5Pc0n8UQPthUF5YwIkT7rJhpX6WDMKWkPL/JP3/92/eTz4vkiMlLG6BG
oglxGxtPag8mYKj6cCImGfVsQK1KjAj4YwAOhwUBF8h3aECSY454x1o1Xx5/IjGqjRroVjmQzrss
jtDCIYMh7axgLnoQtWCIM6EMJzDcNGhxiGNLy61TDxRtBqZFAskWMLmNo0C1UjgVUQupD+iU21hK
3dgfPWAuTeBUD9+GqZwGjiCEKfiyHnlL2CdqaCdO+WRhWbHSW18H4b5Rux+yZfWUlXBb6ut8d/3H
H9tl8sle10+1PmwEz/dTCGOsV2ViP8SZKhLUXTYaKtT9KrLKpxeKvatMe9YbCdUjTSuCAomGt1Ju
beao29QiPZt2Q909QTAqPTNdZXCESE8egXc5qkiYIjUk5RA+E2J1qBQlw0OBxgirAbF+ruYUdZEh
1/G0lMMRG8vBQFM0pIQhNBCxMfbkaM7i6dYM7JvFDyHEy3l0fionLLB2RYgaiuQokMKL+n459uC5
qM30wp96FcAmVy0GczjFYKDRubeQDmEr5MfPPub4WpTHfIQYahXmnQk9ixVx1eKndY7Ghwi8JzWm
2luFoZ0aBZskfrCPT4D1jpj40Xp5hhRIf/Bp7iovZ68pYgRZuD/gwwF3m3Llond3evZEflhgBHMv
h9d1BLOu+f0EGrjCMNrYE97/jO7SP1Yn65VJrt29itdzCfc8sg+jNY8SrordoXC8GrrFlaEwOFp0
4Ms4QHar5auB6/3mhrw0Po1+/fkHK2vzALLDqhVnrWd38efJcr2I9BcmWTyBMWugQvdmpqKOU8I+
Idn65rUHaFf+fDidwqiX3aL3QimCHTqaL0M12ogmHOIM+4nYC4WkbVBVnYmEMfs9IOt5DpK4slyZ
N/FBWhwCY9spGMcdnGICvSZNmQekO/uclfNngng8ahmK6XSAbTeeVEgKMxK1F7SMZnv1YeZ5V4gx
NhXx1IviPLX0UKJutZTdJDHHmqszgDUuCwk3ZjedFKrGTOrahEkFfO3pOc55PK9h7lahfYsPjEdi
wucd94q/mBplczEQb/kcd9iZdRq+ZuNwVrC0fTkhNQX1QdcSVLEHAHbSMJ/4127tg2bxjZXaGLK/
rBvEnwKMwYJx1SGOrehlHN59kU/0zqMY7JPphtH6+GabgPz+FOszVb2FY+pNjj0cR2LgO+xkyfH5
wAqSdb8swj3IdzAe70b7TXfh9NP7FD6LZr8ts8XuG35dh4/hchXeraLbOPn2+fw/Rtkinlm63qAJ
mToFgrgJFf8Ms+niJAERddtSewz/iHl3BTBFRDjJnjaajcN0cReHiT0W0ybI7ZEbt2OdsziQyLy/
OsWh+PR8wXzH2yESLAMcwdlkQUB9En25fgxXSyuiCeSUuA8SZ+F08Vw3bvWalOSOkxqxo+tktmOB
x2xLl0uYKHwma+QJkFBeCfYQz5b3T5M0Wt3bm184clw9hvtb60OcetYayOsZbBAGfrLyzcL2Wh/i
aFZd+SoHqu9aCZPrSAOpQJHOqW31xaXrOlpn5t51wcxmFX29CPDcnpzx9IcYRiXcVm4vowTigKAb
rn2+5iTNoo21tgdTBKeg1CdHvbi3NrNZaJ8Py0dISIp7uT2uCMEYx8oHpV8+ZdozrZQKx7C2Lisn
0UP8WNGlLqnjiATsvCpWWyGzFtLiPTCtKxgVvFOi5tet5moEq+cFVe0NfbSexjOIZM1fJ9tkVZGO
UdAdz3u7dsX+Rw6pUd7KE8jXdpporwCbr5bLl70u1xBrVhYfQ+0xOTPz0iGygdEzxRx1yAre66DF
NvJN/yqufDpzuX+sv5o8mZHb/ze+vUmW08XxLUdaa7WT4zKWV1plQg48gYzo6ungTdS+yREpM13b
L6YPgNoQDs0KCA+BcEYkQZ0i3F5LrxW28ozkMk55QAfBKZNKdIHTg1dP+zOnZl3lJ7Q2DxYfd8uB
LQ1ohPNh+BXhYBDAlAbYL1HjdW4Bzuh+RQLjaPSn+5061M9c1FSf2G1dsVPgTlvcEB4t/qooluDa
5mHV470D1YFfY3cejZ+OvaN5x1KOKNZSDAn0/lDMaJdaY/w2GKvb8Vs0lgF8/uad+YjNR3bw9Wvz
MTgOI4zq5h5U95/LbGHisyr6E8EcawVcIAHCtVNr6JCXmsJXUngVBMNht8BEUz64bGIg2Vrt5Wt5
AR3WtbxC8lZEiPah6S6G2N4VX4BarOUG4mTYt2MPKwJ4NFSXTQTJWPskcq74zZxLraEm84rJP1Q5
Vu9UEmQRbqJigY4Rh1PbwglXMA/ERSORWtu3xuR6jG/1f/uyD/0VGWhU49vdUfWn+9+iP8+P/LJg
B37nmNzea+Eek7evXulvMx8Ofy79YxsmEQqCV5v1fIy5qe7R332kfouFkIGTyvniLnuvw6rIst/z
dMMKcdiVVdTRGECwJyn5IujMz/Qw/Ffc3E50KWSdq3+hgszPpILOE7jqmN/AIV+/enWl/ztInB0e
7itzNJuDh3T0Ca/xavDDHTPH8+kQOjNXetjjQev1xVKWE+ndVymGXtveyxGHPwNyuQhBijiVlZO6
7srJuQSIw+uWU/0gcfDKMph5ldl7Y4Qcub05nAH0eRptIL9h9YMxQdSxPp848tZfUaJjn2g9zxaW
8lKwkD4ulSUhFDuGD1EGLGytcjaBHvPIIxUtHZC1Js1M3wuWt/I5ZhcshLy1n9epQpekFvFbPBEK
aGRzGnx2mrGLdILpnrI+yVF4x+cexfV059Yqni/XltYt5RQqdnsGSVm/Z8AWPByFsHfhbK110gAn
wZzwwdGBAkb6PQSx8aYc/AwI9Y0IajvEUathT9xpOYqiw6NDyvZnyGsXILM7mYbrabQy2vouTuxO
XEDZiCLk8eoHB8ji4gzWFxwidEDDuacbb9cGpLnpZJqE9ro2hKHJRCqfbvlJb9xsKZc+9d7Lf4Cp
YfnVrTimfMQUau88w2b0Wbiea895m+7DMmv4IdSIOHWXkOZr2UsuO6K8JsyKW16vVj8XHRbfVd9S
u7zMsYTQlawwMNjOsWIkgqA1w8bbLF3OtCO7BsVgak/3wO1FRZpxRVvnOc8QLu93hQmgAUHBv07m
d+FqswhzN3k2+98weSq/gyEBU1PVBRyCUx/c9ZK1KhqHZLOY8AgayOg+Y1BRPIAJU5BJqQXsu3fX
bx3aS///wbS3PHeYnpTv4rvhm7+CN/LXJEAvEptwMhxIIn2e9SXg8v5VEVwkZnD5NQP3iRdR01Xq
Cy/kBV4IZHKc2tCIeztyNVrAe7tMQRIv0CKK5fX9sQtt4tXWsF4nHTDTxyVRHxbEajkkoi0u7+UE
uL0x0XBNNw40oKZLGOASWJHNtVcUML8iZ50AQDHtAYpba9MZ1K3v4w/rn2BjRJSm7x4rmt+bByYl
eL/DE8Gi0sOAgeBurT3nAGVREmrfwhTHh5m9EULArJkmQd6zAkims3gKgeQuCVs9QgBDPwAV7aFB
O0kxRUEDXseZA2yh2kaWO9hmbAO899xHSRIlploIqkDtNekk13D+6VkOtPT9UED4SDG3ckiXWoLi
jsVColU8N7qtdEk1Ek7SSGsi1z42gI+o05hn2vSCx/fD+n5O2fnK+x0OGINuxlUcp9FaK+yzM78E
h25K5eW6B7PGSieaLiCD4HAgrnUh0p6trH+kI6Y2pfFZmGT7TpplVlFzibRREfUBlnfawl8XYbKG
wr5SWaFiDMP7rPQMKYk2kOKzLItVZllpLXBn8jFFK3tpbCNMK9JusJMD4AmY23b4czwy1+5lxQOt
NsoCdSKWm9W2olVDMAjNSeuLHTZswBX3XzAa1iShLTlocSQF2zRKOgeeG9ARk9iLFqoaf5jjfBJW
zafRdnQkj3PSnSBgmV5vswV0fU21qZ3ZUCEv4BTiKIDOf0mP5yi4kh8x5VDncBvEfPoIRTxfzYVC
SthWH/iCZM+Yc7fN3i0gYIZIJ6ozH+ppV53EZK07vRcVKGhv4k6CQJz354+dQCfCsJCSy46vi93G
DbXCKK1pW376tSaEQBLWLQTMlej4DtB4WwfC23c/vPvlXU0gtCaimgBBoia9mwAhBNfTcNZM6mma
B9JrWJhmial8dAwNYU8L7fyOiuGOQegAr14M9Nv3tx8+vLn+ua6WwaoHMFjJoDOmOBGYQBWXCnq4
IOE1VcTHd9c/33xXlycU7hxIoITqHAjGHv1S2ESQTKahfcak9q5gIJbsjP1OeCPQ6x6ojp1W7CN/
ccY01XSo3sbvs5q3EDXlpzaeUOAjqXQmfiBBx3jSXqFoxclPqyhdRFE2WSTR/cmGUkbp2ZdIWqsB
7cXocDOv25YKSdOPcEr7qrkzy6scMi32X2/ez6CaBXnjQhtKGSX6Q5tIKX2cF7V8pll+/7b8EGdF
kZ99pqzUbhHtWBNJ2bWu41J2DIEGnuLYZxq9II6m3zHbmSpvwbrWTgHjXWcBqFCqa1tEZMchpVbj
HYfFyG3mXAsIhPQQsWLsVInHGmuyk4UyAqsRcZqMz1rdkrnNMmsHhHCn+hDWydxUGtSD3SBepph3
DAK5GZ9Wt5BOoSRrGUpSTFEPYIjb00AdlttPK0+iqgJ/KWCfhfSoNqDJ0bye5ZNq7E0jUBseqD6I
J2rqxCbRM0G8DyA12bAJEIoEqs8LRxCeeXI3KayyfUiC0XBa58EcX+UOgJ9oPQ8UzAPCQfu7Rn+u
lmsYlX8wlW1p3+AViBHmPu96dsYBRqaxhfQNkyiC26N2u1rt296OfXTOHbvsmWudiJnUXwEOOjgE
4bz1nTRXrqPszzj5NMmWD1G8zYrZhTPNNev58/o7OwchSJ81oObDMp1erULNnPsq3E2YpBqifX2H
GlHUQDYO3sYPYZmcw0ybpdc/xusxvhnjACP94d/xI3waBFL/EaAxuQ6I/kCI/uu3P/5yrCroSAak
p0Mp4XgkwmkHR/pFM8ssfGqDK7fUVwtcTfSRJjUORKjo+EC30V2tA7FOMRSQ2gfinbI3mfwYJnXO
QzFqqmp2jmf1OGEk8IhI3hYA7MALp1HuclZ7nIyJs7lTG5yDruRwudom9jdONuLtUWVKMz+n8Jr6
tIomJilsWe6nbavGW1Mb8HIE8wm4aemSCrYusNYEM0FCugnzgqlyQlnS1lcLNUOnW1Nub/U5pXY7
RUMoD2H6afI80WVT6V4SxFpfpOgRh5mrqanAKUBamsek9ob0zVw0Gne51ummdOj5d8qac//RqpvF
tV4yysL9hqI0S8In6EWaa6b/Yxvb20840gCd8k3VNz2ITeIMFhLN4nVUMaF0hJ1GGPOTbFPw/uQM
OAUV0NzT1VLoLgOymedY29R8U3ENs30wF+2gAiyg5X6cmZmQYV/x5DoI2fWOh3Cty2LMWDm37YVW
Hl2maf6i/ayMbWAU7M0i9YHosG0VQWNSlC2SePrp6NnNEElHO9RpbYP1AvFsq08e3qXxaqtlu2JG
NSVCKy3VFMh2lS03KzMQ+cHekMFkUBtAHiEeSdN+JpbpHT2UKcuMLJgwTJzGZdiutY4nL5046zYi
WF/cAMJZR7HsAIrGymi9WWhUrSfb7F4WyYIJdJu+2qwsmS1Kmqr0+M40K0YPd9EsVz2P84lm8fDJ
NJr+Felwe65JlhsWs36nNMJAgnt4etufqMh9fk7T6+1smcXJcSLBNMNl4Vxf+BvwsF5bf2i3KCgf
PfPtm++hpDbvKPsKPkuj7LX+6ld/vB6Tm/ybtW+Tf/vr8Y348Hv4GOba9mszi/wf+/3MuS/8zzF5
p3+0AKT/Ukop8BHTGtlF2h2Q8PI+0AOpyQFYsO4RJsaJOIV32Qvej86ZY1t/Jcddjt7882MS5DgP
SliGvxz+3FX+20rIFxCmO9kK6Yz8ok9xk8QbfbinvEjKrkuI0jEYkZ5JsD8G0EDjEuP8SPDZIT6f
kXeArBKKILaSErV2GPbOyWb/VGG+XLnhB0HjGwTKbrvu6hLISg9BHJeqyirdrg14Xtdgcb6QGnHa
4Lc/FylZvQU0cquMb3pmfGZoccdK4oBcR3p4x9Ylnr66vX7/w9VLxtbff1YXY0i9OvG6C7c9zPcL
W15YllKVVWBqcpug+GACQhJF0Cn33HO+TA9GTZTiAAFbqrkYhrBVmLHY3Id5TmitvAJkFL/5OWfj
a6ExFVR61LnoGLcYpip3wESQGND4nVVyEuHg/tLBaVo+aImYN2R8TQ/ImdNvjMXuX4SFeEKOWEAI
8XfBHFqJgDq2c3onrElAcMivP968f28Qgye79epmq1TFWxCBfjjelZf28ghR4TAYSv0rFzqtNTH+
117qML4ay+BqTN5USBy4GMd0U9rHRRh5VDaBTeaI6JxkdicOUtt4cKmzHfWrjqiJBeZdU7OJBn2c
H45wTeJPYBOrXBssHF98WvGMm5RTMye/deZRc02yXMO42gQ8b+Nhl0N+Lpn+UzuOTjWR/iBigYTq
F6KOHXCvEHW0QvqFiDELyGD2QcCKMSwOdIqo0iXiWJHowEUw7lFzjt/hscTj65vSoJFAew64a1G3
SrYkjssvZNv02qvP1pYrpI0va6tLDcwbU5EMS+qtT4ciUDRoC8jEMR/NDgZLawCGFhyfpseLrbWa
2naCwQLo2fcoGLfjN/q/txbBIFT5FwytvqafnuzuEji0bcIjS9C7jp/HgdmiXY1TQf2CdI6zBVGD
8+sBOY5DMQiqNQu+DMQ+gvmZv7pP4ocbzeA3Wvf/I/jM5P/oD8R8+Kc1uFZa1/Cug2vi1CziyLBg
5PK66f+wd+U9juPK/av4nx7gYaMe8SZfMFjs9ZAXbLKLzAYIEAQLta12e8YteS27j/30YVHyqZJM
U5LdM+/t0Ye6WyTrYrFY9av88TFpBFeL46vxEJnhu/F8vbJ//+FfHDfHO26+7IdIKP3f/3v3B614
Skp3fly/MuNanmguZM5Z3wvCM78tyGOYWebSfUswuH/77T9+jgDsZzXDMdA5i11zhJC1ndD5e8iO
hctVTOutHpzoVGiGkph2+mDav5MXeUMZZF7CZwJpauUXpPqC8M0XsvyCx9VnU30mTVHVWJL+yIEa
BS+4HY9hdkHFyFLy8yENN+2jGt09AeUc3AzE+mg8t3Z87x4cZCGdP84mH5LM/uLyZzvjksXJN7PJ
Dftx9/gbqG+2T0pOvcTuH5lU38qKxy9K1p6wzZPNF4punpjNk3jzRSUiL6z2ZjnefCGO37P9K6o3
f775q3jzy9RY2QK5hxB+UpczrpQ1ZMrrfqWzGMBVOt54W1rvhrA3z3+rkEfqTvTxg4ryxhyr/4Yn
hNAjgyB0uBFhMM44X7zufbuxKW18l8B37oXS3Z3vYPTbdB8Suv6p+826H8chRsBL95Wkl9gCcK0v
y+n+yfmerP5phtMRN7FXAUEAw5PHRboE+HA8w1CNqFJvmNm75dyw75zzf0P1e0va//n40X46QVtm
XEMxMdBGuu9BUdxn567h1ltWpo0Ik3J1N7E5prYl9U0sHLXdJUqbMLs7aeJVJdiR4I3yLOUXJ897
FD4tz0bQgcjb6hJwwlyrhi+GtjdxXJI39qArhCn9Sh4C6GpPpQBkV0QN2fMcajH1Fye2PnSFWwM/
7PwAuhbJfYpfQeoRpT2eXBoH/vaPXbrHbw+z4obG7oMrG7K/BJ/KpEBIA6ml6CnrbumBlHm9nFdX
XfjWD506lPlSZM6SzzpUAv4lcCFRXfOf4wzwWECisFfZ2fn0btRrw75OvRZEnc4MY3+FtPxTC6yM
ZLWeNoeVSTYC8NRGivoNGBSObJllRWUXgHQ/312RwTEAwtVWZH/6AX7UQFKIXTN6uig9gKKnvCbm
OmXx6xO1NtEGulpfqUr3Pk1WDbGM0wAEAWRtD9aT9kSqS5EUiZgDOUH9HS3v8vXqr3fzJPsMtETk
1+f67D3YYKsR1iq7oBf7/jRjCLcnBWZOJ7oFcKbVj2UQ4KBvwIQczrJR1ONzRJ2x032bzidoczLI
9SX8lP31uv49La1QmWCk7nXDW6RZEWXpc/Q8yyb5Mw7hBgGaaworNsl3pb/xoz3OfCBVidNh1YLf
pXtLrY6CpmfidM2g3/ofkzm0rEsnLv6Jp3JoB4dzDUIjs9sItLvfhHZx7w+TGgjYXPZD7XrfWgB+
ulD1XKK9QK/BZb4qmzdvajDRDuEGmlSdrpK+CDXbpn0owru/KX+pL6m239hN8ae/31vL9Jqv4TSY
wplwVR4VH9OiSKbwwDqS9mOW2w//bl3yj+UL7HM37l/cn6RZ+Qk+gmtO41+/+/jxpx9vYchFXYeo
4CNBtWGXEQeK42MYnyasVxQH6iMO9GsRh5hrE5i/uYdd8DRtyOIlikMWLzfmQjaI4UKnfJqQXlHo
mI/Qsa9F6BhVARZgP2m4Qgx2+X8uf6ysmUZPXsKeK/iFbB5HxQ/AUE6n6jesGNhyWy77dpLbg5sV
ktv0ZVasbqez+1rOKx0REfucbkkfY+m+fItBtIr7aBX/WrSKMK9gEeku5QJ19KxIeODpN0heXa/x
0w8Z+R1oyZVETviInPhqvAcP2FIfhjukjHy9ms+e0iKajp1NB/zS8TIpHhrqyggRxlr3C8m8bPJm
qTFvWB6ljzzKr8YExl5Hix7EQeEIcgZ2xVCNKAFjoCfCU7rpC+wUAD9KKRdWDtW/nbSdOy4E+gzr
i9CDSL3ykXr11RzpCYsHkQI0HdAyPw7ZgnuQOm4ChO4IqgeQsZc+4H5yxDi/jDHR+N4iffB6WmZw
VORBhZXe+HaRTQ+qG7l9K415J8IewhgekBi/cQE8yjgmgVK0SJcAwhEVs2kGAFtA3Oh+ls4nJQ4c
NiQcWJR8wzZL+9gs/dWEADy6+RwwA4dPxARhkqySfWmoIykKa8SI0ppcRr1NU0zKLyhwLYE0PgJp
vhqBVCZ0E13k89n4FUrX0ykgDo+T+dxSaPU8G+O2CJLgFOm8hVabZjU8evsipYSS0r6cYsA4hkQj
125qA3a8l/fUhMdq7DGJq54XjLoJlEBVnlbhvCxWFfBrdLderXIU8Z0xOPe138Ker7agUlsUCqD1
N7u2XmVmdkVywLmB1Bhr+srn8Q37/htL/KYErqOy/G3iNgL/LiVVugfLfA6wLQGWcTmkkL5UyJH5
AkxcEdkNI182JEJK4tNHulFaK9dylUcumSZyyTQNLVcAbtdcXIyOiFETp0maveICAlkP3KNlot/E
M2udraG0Qhk925+lO5R2yDKI9or8cSWEJGnR2ao0cQyHAYn7ZlcjETb5xI01zRUeJOS6HmcSE5fT
RE/k8JHOUIC0s5q42xsHkV+gvZEEtPHqj8eW1guK9ThQEE+UPQUTs3zfn6o2xwaoYsHNiBjd7xIZ
RkuiYY097MMHQ3FsqFiPTIhs9ObctnLg3WRWJHfzdO9XGhI83oPn+L41MwkSkzRX3SMi9mX4LmFG
vK+DAmD7OMzmI68taoz3WGNvbV9Pe/M+5JPbo09lImvu1UHyhJFBTblQPSqCfbSeY0DPnCvXx73n
TcNPCU6T+90SsK+qZobRbFJ2gnEAGx/uUvu165ZSqkb5NihomUA25eZbSBKGczY8W8zXU3Av4dnq
deGeJYuFddfLONFL9JzefbautesLlKWrYpws0jLbEo6AiZXCvdc95k+ztHzbUzJfu2dVa/kt545a
y6Mkm6wfH19vi+f7G6juh9e9Lwd0lNmuqPqunwVtgH37nXDF0roVEmAltF9eOy7TFcIUZoHgno0P
ZQJac7M1064QrruiVuA2zYpKzEhR8jb09CgT/OtR0ps49hL7N6OkIRNuV1IlmI+XSXEldYfZTYNU
RIqpGRlOz3+/j1jiPXYhuyoebEHU8JHUquP7XUzAnTSqlrr4rYRyTQPbLAC9kAX4h9ycv6yd2VPj
HXiL5r1qpJ2/latPDbdrMCajOlhlyqVCC2EAZYXv5+ttPOI46Uvb0wETPevMbpmgNb5a0ImdNVvg
KidIABX37kId0iuJj+9cnU9lDZv9aHggm6qjm8DPjBCfZoZ1FIFif5RD0yxc4GJEtF/Jb8sKkuI1
G5cJYOmL5dXKtTvPl5MGX5QoCEHyzksrx61q8T8VtfjZSBHRj9K2S1uZSStH3OhebQS4kadvZhyk
nyDX3PMaJtrT5geXwfDsdDuVzT7XaMupkGBbQ7y39uXjF3dsRCm/MmP+4d2QRmEA3AER+2XB+QgD
3Hckq9VydgcW8C6f4PjSFDpWxT1Lxaab27al2nEPOr+S79plohhJFlPSI4VK5NeHJJvMAai2MWgJ
N+ynqmQH057WieLdFruQ2YGYECF7JPOuOVkUEzw7DgqqWO/0LRZJtuvDsNcK7UPNfpO/3LDvoea1
dkdpT4zCGEUHIght7AVM3gJBatRgI+vGEjMQNRie78GtmVLXU7/6DOvd9cDQ4US8SSn0N0h0FFnx
2uKRv7y8lJfiB332DvKjareXcBqLvSAtmCfxKzepRTcNgX2ilfisqygWm7wrIGTIdmsfWq/7W8TL
YtA5RXo53yE0o437BRdfBs1qBAPIUI8ux4EEY03NXanSwxJs60w6J75nKaMjro1XenUI0XizZnY/
urrWsgfn13pOFXXpRcywL4VHqBmIaYAZqEUX0DiC5nzkh4zhQSOX7QZ+W1vhhOQORzlsPXtceLGb
UZbMm2MXxrI+Jj7QlUcjvTzOgYPL9I+13V/3xwQ/tijsz5EQfVQOF3vlKLCeJJsz6XPpwJtFYwJX
glFyb6lZNWvedSJGMxFil6sXNmYtpDZJ79ZTd86L7pLx5+kyX2eTOi+NBAef0O7DHq2wTlfm+uZ5
pQqfoipeHgxHMt55ISXbWuJ2VDCvsK0HvQ7GQiXRSmHcUQ6z3PIlX6I2Q0FBoSGdV7O0B1FrnLZD
IRlblNj/pdAXGcuujNJOZPu9PDn/7nq3Fb+XWFS/N6NAMErhgu/8MT8VZSBqD/u1fFIXPsqEdB/P
H+VYUau+8fNv3fo+wNuPjS6VsSQ+p36BEXGWTeepSzFIxmABF7N96/DSWEpAAgdMasFUOKjHOnT+
QCXgNVxRJdnsMYEc2rIbKjb32Iz8cF5Fbzui3RK9QsWyuVxxZT8Xq9kYRZQ0nPisqXUEJJNtvbCe
XFpEDzNQ39dotkof66IumHUylPEqGzxr+DyLyngyOpFojySIXWEE9mnzVua0yTMkF57QNAeXAk3m
VPI6MlOVmcq3Jy+CkUuQw9W+RO0aDdeAhGivIucWq7G+q8qkrDF8mE3SbRjajr5cFc5solEQwiGs
6xU49aHH0Sz2Rocb3s008c2auQMa63Umkzxq8g4opGlwEbgZHW3eO0gT2MDdPdUc7s62+xRgKb17
nD2m7vrL/fp7eAR/ArXTtTii1FIQSxKhOTUevaCYOpxltVEeTRTrHV6aLGZ3L0q0D/n1eZtzlL4s
rIrghVdUAKaq6mPUcjArZosEYrcZnltqnQJJzh9uGwGoiqY+Vt//6uoS95N0ILPepdunuMZZZRtR
c6kp4J0R7Ay8YodBMyhz7nI3i2RuOWQF4e5123kbJgh2AY2XwJUKvfTMmmfDPT17c9ZsNrXDOTRg
y1dRcn8Psxs/zOYov4iVGD9civPmsd28tjOxWjt+AP15KPDNggsIow4wk9qGis6pfvYXdkaQH9SO
Qd11Nu76CQz37rx0ZECZtnYsVl5ltKGz2Q0ebcnk5KcU5dtxUdRPXFBGdBnSuPPrMVkAjZhrooYk
SxlTQUlSP69T6wIqGl+GJm5LOiYJRLml0uYyU3B+UI0r2k7BL0P1dDfh5C5Fkx0pbDOxuswyXx6W
tUUycPS9wLJCp1HdOaOihyYyumRGNaQ2WELg86nh9ErIqfSqeddBDvDt7ftkPJuwnf9npeTYB4ZH
jT4wI9zV6Fp5jYdg49Sey+wZ6e51kRQQHYuK8UOKH08IhGX9oJnMKUf1MSk+45ixAHfFBljoIl+u
HChDmt3nlmlo0aIZEeklDo0LXFTH8nGSjVMcFQQCiloGDnIkc4fD4WAoXNsNSOvOA9a2G5gBOVSq
Mq1XjYRRPY5XalYdarscTYykMqE8KyFPXIZnFq1X90Te4VcSTFq37zyulQgh/pt48gR2FAQVD65y
ofiAZnOaAxSEu+2uZlF3HQDslrDOrLU2Zvw5+mOdLl8jl9kKC4ab9Z/ojeY339Gbn8SN/vFGH5tD
bXc1YrdtD/+bxH78njfyW8Shw/S0UuFz0eG3TkZxuSbQdpcJcv443nK1L1F1uVYxGF2fiPqglPax
V76UnjdTmvuE6QddKB2C1W5zrcItJRCd/TkWejZWq3zQRtpI7bJOTlhrcH59Asp746B4TiitMbIK
FTBYf1uDjtX1NJhw66Carhp0wNZ5M1uFGlqA72fztEGABTXWlxL9OG/IgcH5xeeeEZTUI8kU1/xy
Ai8l6Y3dzXsT+HfSXG5V/EzHom81ZtInvWsgPdYcXFwTmx4ZO29hrM+RpC/GKmqGthr2R+58Ocld
zOE+h6DDLg7x/AC5smk2KauLG20psXtJMAeeNldALn/GTqqY/ZlGWTrNV7OkqZiZAySrEuePee7t
a2M83StDqWV0n8tX/ObN4UzF8YWU3snHPu5es0FgsbIT4canUpqQYeyB0XD3qgaYQE1xxsu8KKJ8
OZvOMsxvtL6sVK1loYR0itIyQs5aZ9+W31jLezVOK64g81x0kbWd7XFXjGPLzpKpZaFx6w040ZKN
OOUXkDRUuNRIcn5V9kvik4I6GPv1iBIhB6P/vnbD5fM4zz/PUhzIh1v/2lfRf/n1t7//8p8fR++r
F+5TPF39UI1Sz2C2BKdKi3PMyfkjEC1819G3NAkhyPW2DSoA9brTvlG8Pt7l8+JwW0Bhr6FbhFeU
LEhw82z+Wha4lFBNmPWAwxdl17QeVEPH3qtZDwLdf2KqBmXCFt66QrCOZvfOzZ6VuP1omhGHA43X
caapKneVvlg/bZnYM4YTxWZJ5HaQkSZexzc6FBXw6yY9Yl6bS/i0qq/BkbPnELhGxCDNAGXdJzW8
w0TWi+nS6ilU68EvpU366hVDosPZZ62HkBNPfRVWK6iWg3KiifCcXJXwipH2PZmePESMkwpK37m5
ydg+K7YAsy2AfkLBVSW9Gtulgbw1adRQbC8ctH7p45VHgGYvL2Z+HQyPZxLg5+n4Uhz/dpyvs9WH
GOG8YFc2OOx69kYzuB5oT8HrkwulCNaC5MAGSQfbnqHEYQ0TsrvPn+kyL+N9a5dSA6VUaDKphKSC
dujNISjzr2PrOtiVzJJ5gdNJsQHFZZpm6dI1DCoWe2JzDG7SP7kpAaRTIuIL6uLwq4pGmnM9JL9q
eSGX4ZZ2eW/GXM5yDb8oQgSB6w8ylB0CH9wdWF0qfUt/AwL/kzeu5t6riaEfKH3TSuC9FsWtc0Tf
qo3yXQbcZhr6RnXXdxEk1tKqa3DGyh7Jn6ZIAmOZVgsAKdZR9Wk10Eitp9kkzQ8DreNk3NRDXAvq
1/y0oxGaZYA6vodzirUgonIkVHxV/1ifezDt00E2FGoyvEB5CA269W29fGGEjUTITnAM0ANg5RM7
hp0PIuKMhgyRTmbJHgZFKeU4DAWxygo7gehMRpdRna9X89lTWkTTsXOsoUGa69PcoFLEtQtpx0L0
cOZdx440G6eRQ3g91GhXx1CTIHuGgK1cX2Vowrk9LoSydm90x9THBa8tjYcc2jzfTgx1gFhKBQqN
CxBX7Rbw/ssQhu6uXAfj1LYQQMf1i2liOFSub3X0VGyKM9ANQynA/W2VMNa/hJX4CYLKgKWdloAK
nYGHEm6dwRabupZq2wq8RZo0GFoliTUQ4nQdOz+NFtZaxE7tAUMGrik9Lq+I2Ygxr/Ml9ro77HWK
8MDXjbHX+RkI7HUT5HX2bBZKuynyOiKCWXGPvE74eW3Y6x6w2RmvrBPsdTPsdZqHsuITSjseOrvP
2Ou8Cv7R182x14XLXYa8jnpV1qGve8S0gvpAyaKv+wObnaChr1tgrzNe3iD2uhw1AXEo7ZYYZ8P3
0p2Vrm8OyAUFgYJKo0LlqMAmT3zqs3BHAHudosHbI8b42Cuygb3uCXudjEPF8hnVwThULP9EzaEM
5ewrNjumQ2dHUAvBQllBsdmp4H2To4uVoYsVqNzp0Nm9IK9TXIXuTAzzORQPnZ3EFsuDtUKh/hoN
tSgae500ocbaoLa/V+eUch1q72J834z79HWVYD36utRo2qNzas/SqkfXmepenVPIUevxUCQJMT16
4lwp0aPrzHSwGGOus2duuK/rzKgUPfq6VFHdozdJY0X7dOxFsBewQA9Fpk/HnkhpevQ+KQ22dyv8
QEl7dOypV0N5b2fWnu3jzueEhyRzDcqzdOwKtJCaU4hJhNvCtQOH3j+HYNFryoRnmig6xnJ+oiKb
GBNbq0Q708vdpQQUvwsBiwyJPB3dsUF9Y7o8umqDiwE0B1lAdnSw77lP13kLXeVV6SqV7kDVLM/S
Yj1+OArOOiUjUJiiTWfqNVUYM6Njz4rywainDT8nrL4l12ElW2mTXJ/tHqg1b6FWDzavA7WCTkq+
GozijVsZDI/0HQzY7XYRgPzPkpTjUun8ETC+bj8tjq9nrX0i0vMSDGtN8JzeVV2TDy90solr8oG3
69LcD+iLtLddODH2ttqWoJcl5sSVVj9jU3RspeTQq8fhrhmXI+mDYXEOs3dohMhSJVf9k3k7IrpG
Ats94ESdMW5jzwuAWcP6Xjjg8N7GyNHmGgQOwqYzs7K8pYyOUENH3CtHvH0UAHtvlwQa9yj0B8Oh
N65wTcNJd8PW3g5eMuYJN8QbNiY70nRuR3nMV7CkZLL5utwzNkjNZV3FLnsbR5GXHJA/T98zk8Zu
LG6PAitSrOzQbnve4FmW/90nxaqE5dsvxpinWZbABuPga37bwtfc0L99WqTTd+5t360+EM6YKr/7
W778IGslE8q47iUxJGadpV541X9JvwPCYe15AAdAxQG6dgCE4fLv7QutBS5mYxx8HNqy8L7GcdmL
ZfZG0dRZQLkA/eACisujINaExZ2We4TwUaQO9tZ9/d//9fOHHTXwM5IacUHO2+tbJcnBpTeJkKHi
ymtVRsT9ShcuVLEnbkygUG1gG7L8VPUtAxRQxtiV6c5ke2/Q/mRMeqUyCB8GN7fNYdCYwuuSUDQx
2PUng74Hsyz9teq3XjLzl0ZmCkbgVtxj/xKD7F8b+LWD/QsebrYvIahp274IMbEWsH9xwCrti1Gt
Bh4Sur2qtoSH/J8QdaW0HUz1ta4SwhhfFdSjiQuuyusO22cwcOmhNAjtB+XlBDePsoK2OoBqk2Sf
I+jBC43s4PSAtoBTZ6+qzK7Hl9UwdFRqOpbeL1z5p+B9Lxk3HcKv25YfD5HFNq4T+lEDlljHdUIu
7hYhrNmDdOrem6zuD4piSFDLQ80463FtbX4Fc022u57ZtoDz2C4ax1Iz+GRP8aQnOqJuw0niOgLb
A0/ALI4XXMzxQ7dhge/GDt0wCtpWigI5RY8i0uaZwOWAuIKLMJmN09MeAhexaPMQhJZEg4MQc8kC
SBYUqbK+SL9DNQasOO9mBddFurREzbBqKcKphPyrztqyes63wSO8haUkAb4b1qDFytZ6OQfRatSq
w9kciXw5HUq17lGPW0fcRM8M9Up0a2ZldQKA3TNKJpPD7pANzeHgkokOPeq3BBnXL0aCytVsPnfw
rlHVNNd+Xq2XWRFla/uTvD1eLWIy8ursHrpm1IhK6/AKM/CgNTq7YUN8tFp7kP9n72q727aR9V/R
fpC3SauYeCPI9PjsaeykL9u72xt3mzZf7qElymZLkaooOfb++jsDUpYtgSQoAbLU9pxEsiRbAJ4Z
DGYG87Kqo4r59tjSTruNCTcrf2JG1tIFmyYgnUDY5njBNyrHx672+ssIoK7ouGJttWOlaePlqa4r
O2YRex1P+u6jhAAn8dnWcJb+gBzLJ+RTfcdB2TML09EOMAPGK3OPsRt7fcCL8PwebykGJevyje+K
4qvFKAFGX7/UTrJ5PJtH17o0bxhQeEYno6xxpzwad7p0psTFMJrGg2E+mSBLevrbVh/vd8Kd91x9
45/S74GJ7AyMoEZYg/bVraG6XCwq1sN0ga1Nz8Td/X/BMrs5+f2sT2mfermKc8IXUQq//Bl5cXqq
aT7GAmkUhRTsQAOq9/qDzgq2hjto6pCgLzaA8LABn1lVqnAHIFjduYMdZ5qACK3wSJ8NR8ltn8UP
TPIEoBId9qLPzv82GGh4hcNUPTcQ4T0UvNJvV66cNtIgUzTcLVPU82TI9kCIxo16OZ9h1AsK7fOb
aHaej+LPvDsRfAEPTD28eNGnfp+yOzouf+Bys7lOj4VciL1gZtIiehem0MuP0MfaMM9ELXNSDYBE
vy/y+QaFGF4mUMf7SS9xsPahL4+B0RG9zW4ZPR6YBedugVya60POfMoc81vtyU1InwpG/3rY7eHF
hvKOQpIQR4yU5bjt42Iwj65ARYwKsJOAzbW+BRFwTBdyxFwPUym5bLSYTO77XnjaWZadqD8tv2BD
hcJ6kiF3DKYWPF863Jlr4JFtzoANrLDznW90YbEFVmq6DZYPFcEeRH+dQbK0RkCy0w1cQmxE7YqH
Klz02oSP0t17dlwo4iJ1uPhGhVmotzUuelUB22E27y2TIXfGhSlc1AdSwzgEN5SRIbsFQPoIG0/d
+bvDZRetaTPEGe8gTIKgOsGTZL/WOXAlXsiGluFJMrxyLt1JgM+uYhgMCB9My9AOKrN4nJY5a5g2
Mo3mN3VXxzSkuwKj/GrDeDovgRnns8kgqhLm0tMl40zyRRHnt2j5U/pddBtdKn/V6xKxUT5coFvi
VdmR6EX5V+rSD378x+Qsza+TbF1n8lWwVShtgXY9w/LMxJeEEn0sdkAwo9UyK6E3tHSOpvmwthUc
zKlndMtkNoOyTm7pM8SuFR3b4+l96aFZMOlW2+3BebteTdT2sk7iTGVkVl+mLhWWf3RG8Ehg5+UI
ffa2g5uEnZ8+/Bm8mMLTt2Pg8vt8AY9FHMPj/CYp4GkCfBhdx1/gHsjhYbVf4EU55Av8EFaHj/Af
1OAp7rOx+hL8qnL68MNVDMv+onw/e/gYQYSnH766vHx78QonhxPSXRgHhHfjOndN+FyTfqPJn2Am
/iTqpnsPYRQzZQjdYQaNCI3x+lNF8lrZ/iQA1IityVrZ/rutcCkJHn3LX0IBjl2/xz0adqP0gQgF
ayxfygc/NCmYQ6kj+RDg3aVJb8baGRiCpc2+laiQCFuDW97vzRv4z7hlpe+xTsSyW7l+B04b9KRR
uUlqr4PAZuycVxpLz7bZSaCqmoSuNju8k0ZD1Zd5Huuz7UOzahZ73O+bkz5Rf77xm5U4WEEMEuCJ
ng+vqy+7xO/6kwkITjHt0TOptvE8AqKVOwdYG2q/MsL6GqiPlbz5/mSM3eljnwwQUSZxmluJKG0g
bEBQFTskoWQiav5MsoXxALhamoTQPt/m1G5HgSUsxYGKxJrGPlT6/mEKkJraOT4+CEs2zCNx9Sa5
FuqSW3/HhsZLc0awM4lRP8kTdSkfz8/wfa2QOP35sh+Qy8vTp6JgXSpK7GZg0pqBsu1AHcw/JXAW
YGGqOFN91oh/lcwHiyxRqZXaIEu/x5o7u5vMpgbywSjWTAPv9EwgXXgellFvRzZQLeI8oxPHFrT6
Gk2hCkN0A2Z3/tVP2oyfTXCXYU+wkAXuYNdLCb/1ZnWfKLeASr1+EF4/YLu8TWpjaEG5SW+IjsBi
ygkGGsWFqnelftaLBVUr3pVYWE2jush+xIK30ezzq/x6UfTZxWlfnJ/22RsFXZ8GXp+G8LIROtnz
CTWp0bo9dKN8gYqjCouoRS84APQo7Y6egJM/cImeyu+q3dwIXUtcwF6g87zu0PFQmpSU2B467JXa
znj8ABhPbsN4vrCvHC37OtcyXEgd7lXj02Rjmltbo6enN32PNGGN0WKCMCOfRmewb7HsW01hK1SP
pDgAqB9Pcg3oh6AXFfzxGYhQ/Aienh7Y6mAvZkOMhLnDIqEFRsco878ed8yQ4UFowuS8E+4qmD/R
B79y/M+aUefuUX8yxR2Yu0/9aDIFaTLMp/ctQoUQ1YTPKCyyI+B3UwxLwliu8ppSX5gjaLdn9wG9
frIn1a9sflzjCwOp/vMlWAZyPU4O9jX3pZG7oBvMSVYkYD5ip1F4qa8XDicHGLHPjbFupiertLpz
lVaH0iGBpztk2qSSFuUnFeC31+W7j92JfxsMTn6nZ4MBvizTuryoz66q07XM8wrgjW18laflkOsb
RzCgKHdOUW1EsaA+FjE/LIqyDYqubQ7yFNo6eiIlyz/wTGnhoRCjJi02dqJFXTH+NlN776R4fIJs
7hfMeBzva5tQdIBIaf98yeJopgoazvXnStDDUJ9nJsvaJDucJ0pXevJy8OB5ujzdzIZBTvRMKlx1
hbnRFFU1w54f5Sdz3DiYwVDVSJN1Rx0FERKapJJ2BFDVMWmshMZAmAedQGwoCIRlQ16fnqIPLb3J
i/nrwAM73QXqmwuzcz24WVE/fHbdpZ2IPhzKlNu3W1TllDYL3aey1ULnO1UeMYPJaLKYV8+px6Qb
rBoFlk9pW5rj/oBqnCnhoselJ91wlBYb9IwJdhDY6Kup+ugAc2CqNm5sgvEtJi5LcYAyeh/iOeDN
nhPhXjy3SGYeSJOKvyYzfTRoEY1j/R09oa0HeidQtIP+4/fKSjr98SYpPod/0ef46edVgapNHRE4
mQTEpGjYFkjoM1+JaMsI3gkJZohEn71ZB8MnYMILQS3ODYZcho085LtvxOMyhvmLTkjA9VfBoq2f
zE4k4GXV3SUh0H0zuV45fitR97DcUtSN87y8eNv0quB1g+wOD3zjRucy2PvC2lcJk+7yWxBNX/gf
K1kw++PNhqtckbrBGfdas2u7i/RllbfZsLwX0/OF8Qbb3FeEyZ5koVG4fTfUVM7Uk/AcvdRngV2p
bxYm1BIZBE+CtYQGgeUbck72AJzemcnajRc3wCl42LB8lqx89qtnSavXYfXaq5559Xdx9Tmpnqvv
8cXTv1/+Pg2q53H5LKrXgj1+pj71nv4eDZ/Oc/l+9/luhCD3BOjTwR7ozvWKGW31nO5pw2BBjJIk
JSEeHoEYC0+MykeiHgP1KNUjX/1OzNU7VD2G6p3yZ6F+jgb9RTCK4Y9lhB+LsTeGdwiJ+gtf0iE8
CnYF75PxFV4fNd7ZUdLzvcCBIrdJOaEvdKq60D+31l8325M/Bok598U+TrNBsZjN8utoHg+mUVIf
ASIPkOC6udcHy14EDEh4cUHetgRtBj0eEqN49F3B19/uharxzl8H4p4OQmw3LU06kVDZMf1ApRLA
W2X56F+j26jSXzWJkiLsSaNMMLllDkRZaqhshKZRoFVVs24g7JY1spkEEhq5O6WTRNUgZCqtg7pk
gyQbTOJ5VF7ZXmf5TB8GxoVv1qF1+5kUw5t4gtRIo3lyG2u7YjCz3qruGIIRHj4bQ0jJ8BwOpEMy
1MAujMKL3e1D7vvs2XD3YSNSbtQ2o+MMiigbXeV3y2aIShIXuCdVr4WbOBrFM6ojSUh6ImDPMp/l
dZpeTHiGlWu2pVQ1Q3VzUf189mS2KiVTvY5AmpTdNDcrAPTMsijto6eP2BE9s+wHZ6hpEOLEHX/F
k6mqNPiEr5LsJsb43dHg6h7U6KvSjatjfg4aqcn1SWBtctoepSH2xHY2jQ67Dqhg0Cis80xM+Gee
TwerVjmGm08IsifYahsPSO8A4NJBI7lLaEx0vbIGv0vGvo3SZNRAIQxlpT55DgqVef06woTuJE6l
fuVZeq/f39SsFa0VOB5N5oxoN68D1ig9Eqr5b+mTSCbqdkjPn4HhcbktHNn0ZqC5JCpu8kU6+r/Z
Iju7j4uT1jujVtSXN0cnw2J6Vo1VXlb2qczyLN6sGj1ARxCnrijwcBlX9bqvCd8PVfnoznOoiUBB
f88Z8+TJMhSlz77q03fw7yEgBd7phq1ysg2mUVGo8nRZPk/G94MRYLrerFhVnxPNAX3bMpLpLJSV
AYe4u621Tti6IP6t9IiDpWsgwkOgKyXcOV1Vzbca5w2GngfHsF/HUZLq6ChCZxIPQxCi6TTOsMVh
fSs9zn0s/udyFqCeJavQlXUuwi7xgUsdv/TJV0aXQUSE2en2cIirM04JHzjeXmISIPVWv9J05BEO
hhaRThe/Ntn1GQSixx3oo4+Ij0sHDkgTeIpvMZdV614JzPrcb88EOPTgBoRaikbvhs6DRKxUsyaS
UbwtlITJZ5pqlj9WqQwm69NQOqevdl97oNuH/FmVWUDLsi671T4H1ZaKQLqkArZNmCUjLAcSj6NF
WrvjVYklj7ucS1OIsMSAXeFS4E1g8ck0jSuJr5qda67gVEiMA3OjlT3ju2k8SzCpP0rPxlFaxCct
+/tB9wBmNh4edBZFB9Rr+uwdKDR9dtGo0sBbyy+HH7Vfr750NUBdgOAAG97x8BiwfZjiEWEbhkYX
EeG2+7eI0/FS667ry6V60Qnrs9hWuNfld2zlqHiQ5giEVppjHbj9UYDWUsDIdRbu/XgN3FNAhozu
jwKs1lsXkMOgQPGUBJwz5yQIuZFTZycS1OIePi/u7ryk7bgzJt2K/3k0GwxneVFUkSt6ImA7dHkg
RHDE/S81ejxjnsNF16ZcUI4VAOyTXY07SJMCnX4zrOhWc+ILLmDXefsneLNOtzTdn9DtiSr2MOFK
Feuo6NXrYcJjzyGFuuu4aoe4xwOOA58eNx4vLYIRGpUPPGQw1DlkkT84o8F+JJj+cs/HY4sdgQTz
wv1IMCbN0h4OXKKXfIr/vNAmw7IARjpueF5a3cCeNHHqMO/Z8Vipz/BieDPLJ/EgvoPBVR2o5YgK
Ma/P3lgUccTkMqcjQloRpzdJAx+UNHEUNKp41h72hJrkje935U0nrr2VB8wkWvP5V/7wb6V02NUw
fGlyh2hj+3G9jYQxmPSYmLCkwDwa5vaoID12PCJoBULfCywKI5+Q49iSyztLi/Qn9GDVBFQR1b96
wdSmZ5bf8ESO2cOOEl/uR4IJfbMlL4Tz5Di275qi+86i8e6HR7F71xGYRvMbi6cp94JjRaHP3v2+
iGf3fXZRqLJr9mBhvklUy4HCQlmUwZfPLEp76ZOjExfVnbxFFdzoJvCwmKICwa7QCIzyOQ4WCIdy
wzcK2zhcZOyLDgHqxpEigg1UkyLqszeIDSb2REU8SYZ5mmcWN5MMTE5gcqAAwSfqARvHlizkIVIY
NzmNhur21tYhZHQX3REordrs69VmGfZYGB4arTo7iy2eiGDKGODhreExSYrh4/vwNP9UFlF5mqZc
lsNlwGrUTEklh+BwqUXd6hEsPGqShXwEkLg8jI3ygI8BI/vHsh/SI5dk1tX7kJHjljJOdH3fC9kf
BRV3skYQ//D209Yw2Rc34R8Env2YBML35R8Frf3ZBz436XNpwz6QOvsgwDo2JoGjh0Q3m3a+SU2F
A+NZi1a8bxK5e0jL3zYrqslCF/7x6QpOoIDdYBLAz2gNFJ+SbJR/KnOpi8Ewxb53o3wSJZlW9LAA
RE9jPeHakVbwwlE2eDKubihKRY8wZpLo2mlxqnhhzdKMksZtLjAIPGvLwzIb2iRZLIJoUlnD5sKY
UeAKa15Yhhm30XgeLzNIykppg2hxVzYveVQjrK49NJO7TGS18sdTUknAqm/KQ6bgRv8cv60xtcGY
aX49eDRuOaSm+rAQOy3y+bU4qwck9YyuENnhxcqD1Wg/dYDALjhOOJbcYZE1uEmj1efHAiOO03hs
N47KqLrStiIZFQYjmcxMC/TslwotEX0bAssLXz6Eedk0LI1C4tnuhmWgjTgVYFj6/ChoM4rmUSkb
qp+i6RQGq8qrvltV7O+zN1dREfu8T89Hk3f3337zXTpkPxWj86/Cb79+f/sL+2n+8YPwvp+M0tHb
n4qPH0h6lb0/j/+T/vbP89H9x5//Ra6++d/snz/Olz8vPk7S+yF7fxF9nRYfz8Xiir5Pf5q8K0Yf
/nP9w+Wbh9/75ef33nCSJqOf36fDe5F9/Pn9v3+B7//4NvU+fvDy79j7NMbvvhT0lw935OOPwG4X
mtsvfye+aNm7xeLKfOt6gdWJPCqAa6zWsTDsUd87FkFepo78ORhV+iZZ/Fur26tv3lS3qUl2lUWl
mwp53GpVlfz3x+dKQTk1sY/4VlKrg+bDsNfgDhPpcL6H+sZtQY9x7gwK44OEhz0SUutIOL8Vfukk
052apfkZ0GQ0mM7yea71AgluViv8kDG36ifwQ2EN9tsoXcT/1haYIZ7kZnX0DxX5lxad1SS0gHme
xbNZPhvEd8N4ikKmuSYs8TzDxiEHSwGrjC8lbSzjXYvCar1LCjSAjn26uWfSfMfCeUc8fTFihrlz
FhhuGmewy1UvuKoHALysSkKWFF22ZVl+rmfEADskiaNgRHeVXRhju5xDj4phq9iRVYPGqzTKfoOX
s+tYe8VDZACqu1mYePvo0+ga6wDAB3NkwUc9AnV3Ilz0hFGVuUMjPWyiZV0svRkBv2C1ICUzS3re
XWiM4uksBpOnrhq832MyOFSCLUsHu0i5pR47WEUxVwd+Ua68KgReWao2IWBmt+rPAsFUfRt2IVzX
F+K7aDJN41fDfIIRdur3LBZsoUZpEbtvzEmUjvMZ6tXYh0lbDlxiaRILJzvYSwD5PInbYx8EC7EG
+o6aU5YPhotiDopENbS2lRGBbyK+ZyR+RMcV1gVACCZ7RnWWa0fcZpXMpFFphzXWRUEIBoewSZda
g9VhFITR8mSPBL6Rn7B2gfnstzV/vda6p4FZ2431gWpalyw7ljQUQ37kqy3nOImLAlUiRYG15iSY
X+ObNGpuA+KRu0mPAzdr4dIdh7q6rJ1xEEa5ve1c2DpcyfY9FtAdxrsDvrt4+69v314MYIDkOhsg
QyijG7bBTW0PFhY0Csr25bUMPIjm82j4m74xnhTYDYX4jtadF/q2I4FUV9vu1g0DN66bcJA4PCCB
u4VnNfY+D4XaeU4XX/qdmwAQQPnAzM7aBoBZPG4x9BgB5m9uk2aAgxK6P2Cmoo670ZIVInSzRrAm
inmUjaLZ6IeGw00SAieOQ3pr5tFI+hDj/bgbTDCdoJHxhcNdvxy8ZeeD3A2YI4mnbhWGNV11cf3U
ISMsB29ev08NKw1tsfxZjB03tUedT3pMMneLL4duPuxkz+x+c4uVF2AwDG/0mpavrsCdrbwcunnl
ARjqlsRgZZ1+WAY3R1pmF55vQeolWZYPsSvXbTKcJxMtY4Xb6bG6pY3icZLFTcKcUnRMS88eNZ+O
2UhF6mEXNG6Jg5f3zzWNBrCNmNyVfuUY43yGHgukY+3ZwM3aw5ss7DqeX/709UU+XKB/qKkFoge8
w3aVSWV39+L2WtPSnQe9YCcjpn5Z+dWvNb2+fHS/+NTtsgTx7C0rTmEpKMrUvVGSRfDqNkYPU+m2
0GahBKhWWdLf8fthEqlCtmwXXbJubZSAH1KzvgzMbx9+eT+GnUPTJNK6ZTgjoidks77sW5KoTAQO
xlnZA69Vd9bP+pS+++rb719jLqrqmHp+k6Sjz17A68/h/yye5Lfxw3v0xZejivtfXeWj+1cwRjz7
5sf/+f4MPuyz8ylmsM7v0/js7+McCRkn1zfz11d5OvoS04Fnr2fx6O999vZdlKSLWYwVWOMC76SM
JsDOT6fwxzDWl6enjzADZVqVoDVzhNdBh+CsfSlaSMQ3kvcmTJbBUZ2MKr/tYHgTZXqrKUCDhe/M
aCVPG49KQGpxI8eXwVpXnFbu5jKvWR/J7al9bJXby0HLJs7agxzbv1JhZ62TeH6Tj8ykFqECpabs
stz1uQuG7GHkOTGZfYJxq/fT5QUxGG+FEsf6zEPeemC3E6uAfb4at1Duy8n87GlcZzTHm6E3dxr3
eC8Mgn1MYcXEGzyLp8E+pjArCj0IVAVo7gOEIs827GgQtcLN4PP4bo4X89HwJh5MoiwZxxspi7B4
zqXb8Yt19zQnYEIHTgfdaGrQEwFzOmI8nOg5HPVm7na1tbuLY+jvvsYmGxH6IKAZJ3sbnm4Oz5m/
t+GZZnjXq9dTXQDDh04HTsGmqeU46VagTFPQvjYsCsOYP4NjPEM/1E0Etlp0lSoFZDpX/gwjtURS
0upUMdBKiKCWDLLSuB6ASaisDZ2RxH1Q47ZQglSlxU8wYDz4BIYFPEYJmiBaPZGg386SpjWLrxcp
RjV0o03ghapx+c60MapPbLCO9bBSLUOhosh34W2tr24jorXR0c5ATbOlJhf3GfZTyvJFge60if6i
qcw6tGK3oc/OZFBGqfIW2F+lmoby6YPd+MigW8xSfchwaZfYmUkVLgOP8V3lcNeuHsc0ukszH7O8
wUL/iFYk+BI2lIMRq0SkXO95xigywayOiqHia3RtM9aV0LVMYs009E5Vz6zrdNehS8e4vihL0PVU
bBZfm8M23xOXdo6VFYMJqTrBzbIIfsjm8PGrO92aqWeYgGIyaJEOlh7Dwf+zd+29jeNI/qv4/nBj
O92K+RTJBoJBP6axdze4GUzPAAscFgfZVhJN21LasjvJfvpjUbLjByVTDiU5fTcPx7Fjs/irYlWR
rMcmWunBEu2OHNOkXeCeBasiaPpw5PywcxUb0PAEjH1Eo5Xh/7t4FJFXipAWWLD+g1+LqLQHW1BK
aEIEjo8tmo1tGwxupJ0qvogTuG5jNpQ6QsLf5PYWVL2Ia7PBhOfJVhNwOHm9s+NINSegZUl3K+vZ
LU3U6T77NCGxLgRpzoRblQ2bSBA64E4dFOumWhWAgEMItxG+1ncxELE7gXBhVn9m4j6EtcGoYpAM
5jAVWY3U+9U00e5d2ev+KRcsmixXmk2TbD63ZxAgKKLKTtzpbh1QlAkcs+weX94dtnLQPzDjTrtd
aRnIeBO2u2r9zVLU74ocUNu6GIdslCSFLXR0A7kocId4dRrUr75dDenHdf2In0cXFyP0Fo0u3l6M
ii3A35C5d9z8xf7mnA24IAy1Ixlahc3G2j2suI+mxmk6B1x3Cd0DtcDxiykufgkBBh9vo8XHbBr/
DT1w+VY/UPPwuhZpjDhUBhOyJahBJAKE7WUpte1W9WeTqiukt+l8NZmtlvpbrt7uQE7Qw9WQCPxK
o/jqG7nC0A/anQ/6geIjzDDnYoy7yL06mRnEHkkXHo2L6pgZpI4Zx3AHBu1AT45BDxdwDIt2oL+O
UkjYS5OJJtBqbEOIv8Nngf8hsXvQD1cIhdhBjws8YFI65bufAGqSwml2PDUCU3HYQI06b1PJrOVz
dPHPf2oELkYHxk//9m8fP73/4/1/X4wKqR3948uX0WuQ0Tr0wDvSjgNqC70igmUyy4xjC9Ox2UOs
3c0jhWy7Eswqkjc6ApKC6ccERJR+HBs9/WybeaAoMCgKxdvlCpwaxqlegBVXKBTOS5E4K7Yc0GxF
Hw9xvc6gWuqVU6LmCfiW2cYQ7L3IZhC3ZT0jZJBGGJ4HvFUk7zkn+WIC7kllsuIQkRr6HkzuYOHR
1NpJojR7JG+XPVCSDsSJ2M+P+dm4KlZ6n9RRoYQuLsAEjA700ZpnBD7+7m25PF6PRsYwQOhnLStU
qBWRoLwTTlA7JxTc5Z66s53PltnXOE3+FUPWPcQVBpMFpJQe7KK1S6x3Klhhhs+R7dQH28FLCPQ/
bszHxjRTp04gz+c+syc6MpNQ75chm3x6zZBvT0BsYzek033oxrfx41D/8YGxDiH4FnWzRrj9Ihni
HVB/KA1JaDZUGqQtvGxYSWh86pSt8nys7D6NVidIneMKrza4+6v4AFfBAFaC2oU1W0F80rdVtrTn
IUEkUojOCtp9ku3wHim+UOvMHFWiRIt8GDIHC8bQybwxFwVJXHHayEyNqRq+uIzsky875Db0MY/y
5CetjaL53ZB+mGR3j/qHg8cJCRQEucSGPINJaVazeGALzOk5MWmHXAuTnrFqji0ZbVEFc7nLfg43
VrO6vRlEVaqzYscOvY03ZsjTxowjJ2/8GYxZxLPI5DDmk9u4IuXVnLiRc2KPjeptJr0x7tKnLeaU
JS/9rBgM7epaXjGmLJIpD2NeNb1n7Vs2yF8/K11WSbp9HZWGZB49juM3U0i7W2Sr/I352Jui167D
aoFrL46o7IYpVm8XqkJLdJacqIE/j67X9Rad9JLU7m+IhWoV6BXMep6kUMqz4raRSSioIM4JbhvV
vp3gnyqOEzaHFeNZdHvgcVE4WeJd8sx+0qeOZuz2yzPS0saFnsg1jjHmHXLNfioo+XlzjXrm2jFm
lSvR6rBJl9p8p/OrMv76rLYzrWw1XVxmCYWTcEs7y+XtIo6DZTKP86erMS1/OBwny9pYAAiMCc9j
g+M+if0YAcLhX9dIAYmgdxQKW2LFIkpmcGNcRgrYrQ1cqbLzOIuxE7x9w1B9yV3eH6HIU4QYZtqu
KMa7YY3dpFDISqRnyRraLAQB3kdRcdnTmE+jURAcVWoMamlx0g27mN3CUFOM+BzZxewBqqPRaB2c
8/wFQ6D1s0sdFIafzwFuT+uCNu31m0vcEwd4A132cIUvXsi/ntWuqaWjvUPZjRQFfxJEpP30mwwI
5mcpSltUHxjBYUyGEg0j6WtVQxiCUqwbflQefBN1lpxoZgRHF7BW/CncEDwEpVpmTflGlJpQt8IT
tvd5hD4RYYt8ssXVwUdHrwOsHW9Ett6u8bkFNIR0SYlsBlvlnubIprN92d3VFFEUPYVNbD+/i3bC
KbzlWkDsnJDIF+Dfb7QsJvPIfmspQVtg1g/ie6SVkH+HgoQP81mav3vQK+rr1gb//v7+8p5eZoub
EVZKjcz7my18yY9JspjMoLzh4gpDL0g0Kt8uhoJqh0vNo/FqGf9XNI+vzJe8g5rt+i3ToTHXdHzY
7m37/ilwA43jmyS9QtBaKE6nV5o98PQ6mc2urvUu+F/x04ijaO2G6zlp9VbUxPuUpfEVfjVdze9+
LkqsfHgsioBmi6uSyIMSMVD0DCHuTybqFyJDRXpwX2JhW4wTg2IMT9bHP//4JUn/07AOhMTE2EDJ
nxF85u0mhQzkAz62WXLFL+bbbHHbxKkxgMv8t2sOgJXIVkWlh7IXIMQyRnleUexCKwLs1j7ahRTI
sNRCCr14x4/QBCQYJzfc7sodLQzcGu9rqLSGiQNvx2zIoXX6671zVa1883h5BV+ws/IOSuKbgoIu
5UtPw3mWgVdQWAVbdRHOtRMf1pc03Br5t1+/HEW8lohgEd/N7JU5ETTGEe1Bkf+V5JWB9PyErKrm
WbYEK3bC6q4eiNgGwnr1IoXOZA1tYK9cQ/K6dg3lt8n18n/0txxdSAoL5k96oC5XWRx707LcniWq
7RVR/ES+PuSzZTCGWkvzqq5nlFCQ0mcLzt5Q0J3PVpRA+4ChS43xU0bLD5uOkkGInr8o0ixfTW61
6MXaEM9m+/WciRjw+iKeDbXc/pqwRW9IJXi78kjs1YOkP9N9shaoJnfXFS0Ss27jaKp35cRPBrmp
SE5//ndwqh+zFdzVxabm+G0C/nLZjgyc8XSqH9NMP/yHdrm/rH27YtzX5iNxWvwoa5brH7+9//Ll
50+X67LkBzYVbiNoiNtlfUW1CnCf1Bmynh5jPf1hWI+FQ4KCVnsns956oyG5XvVK+hnZK+vZMdaz
H4T1TFHUjPV7luZoS14NHpi5vWIrxsJxvfpdyjJgUu9caq8ymUNXt90xyvpICCHIcnuGlLm32E2z
II/nCfSPsDe7Dametoudo320QJ7G19Fqtu5XDnGJ8QzcXJDL7U7mWw2R/fVBlqHTeQ3tvY/7Di5l
8V8bYtBcpHzjAo68ssUcivqYUvW7fzqO8rhsPL3z+t1sdZOkRY3mouvIVrH7h+A+Hn9NlgEs9iCN
l/kkuov98SMUIfHOD/uiSaN8kiTWnS5UOHepGHsGcvEU504+Dz/Sofqc5NqCfMkWH/Qr3hjDMVe8
K8ZUt8Jy2Sdg+kzFTaRLvdxueZ9mVpUAYOkf/tafQi4Nqxjrf+57/62h2HvDHzJ6q8LODZkqS/GE
BdzJDOl7UA7k835OjEcz6has3D84tXi0tKakQC9kTe0sIusv/lChoUtvuoao2AwK9NzNK44kMaJ8
4FR6oX/2bEvrBWAbTzyad+RS9vcsQfDp5jAVEv7ScChU12e4qFwT4lF5OdU6P0tA1kQMCadjU5LG
RoxHqBjGLx6qz1YyoNHaFggasyOG1OUbf//5y69//v7x5y/1qgk5tQA6A99iXzdpuRNUP4QcHuCZ
gGeCwK8KnjF4UF4VmJCEvUi0tgTGAY0NjnyD8vUuwHT73VrTJ5h/lT/UROjR9diaLk0V/EqLV0ZV
tEC8PyX/L+s+ucuI4rhLN9N+02i6UeKXvi6HhJrc/CH9VESpeNwNKKVePDz0c0vwcKQIfonu+bZP
2q4AKal+CIRakyEmsXqpWzy/expOkNP9L3/hPpLryuFOBbnOGg2XTcsGAp+3VS7FjbuFrsmSaoqc
V7mTofS/Cms8M2pP8NGemeT+6VhMptkkmGZxni43IZ5PbLQF9kpmiiF7J8VcCUezWXYfT+3FOolb
o9iTBXk8W8WXlo7hkKmvWprweJZNvlZNWJh2SK0MnN/G8VNHvTXu1m2B3rwMCDtB+Cq6e0EW2xVF
4tW6zdfmgGbT7OugGtoJrNMjaDJlfYuLFmSFhLxLllk5hpFbb9Nz5FhIRNccI91wrGatMylNvYmX
yTHWAn7fb4LrLHVUURhhalo7nTN+7z98/Kz/5FJPzQKhakXo7WMaO04UqHXUHeequkAxhF4s35gk
vfAN0w74VqOvBIQnC/ly1xtqR/BNyJabzpJYuDXC7hHCm0Ucp0H+bRUt4gocZSvyXzOw0fdS74cE
6ZCFVjdLIbd+r2fNQSr64iAhuAsO1qgxiDk/yV/vkIN6gDr+ceFfky0X0eSrmxYz2ZL8vNeAmc7l
9+XSIvysFeG3jWjcfK3yCeuIX1Vlus7d6NSwC9PO2cVV2+yq0U8hDrXAvNjVxfxb6FUeL4IyfcTs
ro3Larp4xQtb1+oQaxSfhWCR6RZMKyL+MSemO4TvmX5PpnHmeEIH3rjsZfe7JQdxvryc37EDMSB6
xCbLtvYrCbQTGFAqvX4jVkQyNmCYdcRGe/Fx7pY6wsIeuKhkfUW+sAHkFDFIYqG0+Vyd0DZV1GDG
pkJOCXkwfgwm+V0w1xhFcLuh1Yi93wtGkIrotLvdo6747qe5l0TWCLIKWx+lFG7qdIfRDO77bPEV
aoPMsnGQpFoDJ8vcgGxsWh7E36OZXWcaP4R1R1BRtaLIDc4L8oJorF/KQT6CfDXO428rqPBY/KW1
tgzBcAclwr7I3miRySLL8yBbJJACWeM/YAkd7pz8vfBE38nQZPTNWs28G402CuZdM19iffWo7bqp
nrZ7I1tueFh3YmPd8QjkeFR/Eg36zbTMmq09OIWqIE6l/E9lbEGP4Swk2V7No69x8HC7MPf2W1Qe
S1eylJkN1QnwPcxnMM4Clmm+3D5piJeXy4cD3x0Kz3XBpDr3XUnHgMoOmPSUHWXjSHvGYcscaMLs
OsxuhWH7JWXr6FWTteGtcaeaiX3z+JWNJj04YgkHUrqc8ogWdXjl8osm+jHfdAsfR3lSaq7LyU1i
OXKR3meyJWkuBrNGrSoK9pK3iHVJ6zadR8hcC191oYVa5/7gyFNpiepbmjx7BPXHQqdOpH7sosqh
1u+kb3musUCKaYfVydq2L8/7yrRCnvdtqHa3ZKsrsnt5dYoBP0lkYMNVe29LmOMGRnjySICiI3Vi
9OMqNW3+knSW2FwUaGkZtiDGJWrXq7QocrV5UgchFY6ety8ID8h7Pp4i1PNQbeFZbqG3N9sV6knS
AaEnGKO/8qK0zxNo5SsWHU15CE5ul0K/A4CVWyWDYHVUMs2SBHtwIAGue2sGaL6aLZO7WWwsUVHd
zXououAsi6sOAd5QVlJ1ENTHBmELHC9xcTnNlbBBFydgUnGau2WbqnrTHRjlskZeAGHd+4YIygiF
IXsGRA2GM44nNb1EWmJJfdA6R1y7QV1qAFN80CDxfGUttRPU2hoHTwW67UE9+Vqrhx0PEn0huEXY
8yEMQU+2tvFc1+P3sAHFSOtSiti57UAtu8hQqh/LK+9xF0na20WuhTO7TyuPtENymq169jml7Siy
BUJ2D6/WZW3j6cZ/NClQpomGCSWwr0zZNko3cRovomXhby1iU0DeQLZbpLe9ORLCB1z41/IP+axG
mTDBQKG0CKwJGLGUqxdUQomvVua7ddxxcNFP9HxJK6Mm85uakbH2JThr8zBluYjS3JRzXWZAjAV0
pjfQbsVymk/fLVxGhY4pjKeiYCPFcu71pjy43XLpDyMytncBTx84COGAstgmh3TdEWis3aGbNIPw
0fvbOA3m0XJyC4mm0YY0oxyMunhz3IdilA7kKRuGDmPRnrzuPbkrTTxXrZj4ymHXXZ6poJ2Iu1Xa
KcQ44x9K2h3FNQz5SxZXJnsSV+J0RydPF9e6TEgCsVfM+/gV4lptK+HUUDo1AJA9C9B1lMzs+s4p
dLg5H1dpdH1d2I/xY7Ap5h7gKmfHKc3QHx2kyslkR70O8g6z2sLc03gWPeoBZ9mNYav5HbpD7p+J
wlYeIezk6XBeG+uSpSZULYi/VzTqFRo8xqm3gfTm4UZPOTcDBpsel7k9xkw6xq06Dq4HvsvSPA5u
YujtW9HlDSlYoc0HfeLkLIumAbQGCe6jZAnBCj+l0MTz8rIRZa/g05+zxRV+NU/m8R+wvd10jrSR
jZEQ6BSpOIX0vTjcv/IsrST4bhYl6eHZhKaXCpdYqhbofajB98GSRW+I5S7tznh4RBjjxSJb1Cw5
rgYU1wa2c9cINmsIzTROE22YdmNoimIwAz07F9V+dI6GL80We4j1Yieexo7TaVAOew1NBs0ys46r
hHRUMqeMa3htHxeydF1uSp2ZnaTXSZosY21BsjtrdwenYC+P4ync8fyw7HY8D/LaaLyO5cUpnsSr
vIhOx3O6yfW6/rqVF+FyquKTf6Rb/SJZ13jSbvFk3a53gXm3+iXsdv1hiXFLhh5es9r5MNT+hQc+
2ofNH9PJ+qjVnlkkiBoQ3q0eDwnrWI46tlOi4/lx2bGe61avctTxeLRjPUe65l/HflTHdoqTbu0G
l/SHtoucdLxPYx2vPyY63qe5+MHCwd5DJnnN8ayUUMnVx2DrSD2XM1JiKua6xFUcG/YuToPI+DDZ
93hR6UMJGg4oef5483h5m01zy9GX9g0pconjfM4Ieh6k5Tlgl8rux7hSxOjFD9Fkubnct8oBC/X/
tXUKjwz1tKisgwbJ9SKaW4ujUMSR3q/gJoNXxvYHmiBbfD/jcEZHPY2RWZMIoL6okzspTjvzNdfm
piB4bq6VCqCvLvbxlGSACSKdE1I2atb/WSgSKOyeIKRs4IQuqWKeSWmSfmlo5KoP/jUlk0l0dmQ+
Nc1Fyi6LTKk+ZLGxDBDSr5ze39+TSwdCBetD2biiqHoQ0QZcdmqp65m+62aCKFB/gtiETNKnXncR
RafNZysEOi2U7qlzEr7wvKz1kH62kcnPzKnQL1nXCDs3MisodUo87JZSagM0ROdGJrcTism5rSP9
w0IolOo4M0Q/wtbGhintXjcBFRtSf/n14/tf/v7rlz/qjI7ql0YHHe8UhOqZxsDKz+6xurBuURXv
YYdyIOMcakD04J8Oibg4DNcvpLmHYwRCNDXESk33OvWiShehHmR3R29aBVmEPVPlcoqhWC9sbEqn
U00u/3R+PIHUkPaiwBpVOTPKrfsFnK5ms1MQVT1vMOKHaH43iy/TeGk9sES9IGklpfvlbFV95Ox2
hLtfv1dcsvHFjZkkflmTtHp94sdnlI8Ly3Lcop7SbhmQm3hZXP9a00slRK8hL7eL1aVEg723dqi1
XLIKNMBUINY2LFWoMNMUgpwhKgQz3iYqcH9aJy3YJCO74fKb3vx2Jy6UsNaBqZYX2mAVdYsLw9Iz
LrnWZW7KhVHHbKPuFxNTgI2HQ4V6bColBvMB4WcMDfERXVUJzRE1w9hAiGZ6rtNFFToVp38eOtWS
E7qVcutN4wiXKktHsom3Mraz+yLR0bSFMfnaxltLllBsKcnSK/Jqk8V9UGGTww+KlDfbcH+rBwaf
0dRimVX0RyFC20nqxX+o6o/AGfYZE7Yzr+QuiKZTyCotqrJa+59SaC3fCqxb3rM9UpFA72PRytjw
vj13liMovtzOjJ8Aj/NC0PPVeJrNoyTN7V1MNC2hbJ0We89I2DLgVsZexPOsqulQ0atStTJuPdo4
hL4CHm4TIf52kUxjyISHQnrr+rd63pM4+Q6tQpdQQO46g4Jv+W1yvfwrqZBG4Zrx1EDRBGWxjqdK
f5Cqr7e1QMGQfpjcRos81nvhT3/+8TmQr8o/vxpKOgw5PHJpnh+UgR8oD+Foxi6aLj/lwIEBsdKP
IIwVerilgZcmH+wg2hRr8zygRLZooveOLg6KJ4VQI1z0RwDGA8wa3gd5JwA1FDn/BDR08P0TQPtm
gQr/ryPAetQDXOsB1DClwzsCCvW9Cpho5WTmuBImSKguht4+uj6oMG8zDtRDFk6FUawyxlgJ2jif
yS9DOGxO+9QHCBKsUK8EYMz6RUA0zMPxPb7kPTOg6UG1bwIUFz1LIOoRAG5OhFS/CCDVMwEkZL2Y
RCg16Hyv1qFJ5JAi6MITedwk7ljDaTZZzSvyijGGInRO5+yyHpS7RZLuDmw5myVswFSIT9gN+64E
eIncagGGSp1yNX5ajcja3Owa2qtStzEShGPRC9q7dSIPSK6uFImwU4COD3GkcM/j1Nyw6aKz3pqo
cEC56mqp8QGngmA/czPnweNslU6jxWNFr10+oE5JBD5mF4YDHjLKnj27BVR3MJ1qKk/wkBRufaeO
DvVU1bkYdPOSsRbmJbw1OoPTZiiZv4vqKo8XuIvxi34qA7VXS6ut8afxdbSaLQ8JCDnuBnxyCH5o
mTzpYvxy7pLSTsZP4/tK/IVLMXfHdVZxtyEdr3PaWWEK97zCGOt5hTk5CS2tsL0Mzq5XWGhRr6RT
8F16TBwdPJo+mou7yW2U3sRBlE6rayFzzLQJRT5NmvH5spvvO/xlsLUYCCS8z8+qRogRKOJhsHUr
u2yxCb6DaHJr51IFAWb1p7vuglM1sLXIJRZhu8MWHT4sm+iBQtQjzPqZ9vWSaJZvtj5//v6L/QRX
ccd4PtfZl6FGKxPZY5boSNOFt17fQ6DUW/tiDSugW0KKsp8DRXHrcJCjcIR7pfpagoMchUM4Ha87
i+ZW/C2xX/BLBV0Hm495vE3vXrPKmgV8N3u83D3BKAs2CtEuYYSMLE2BUUscqI1KJApKbNHwhC1o
F6zAmMmWSROjEyuR/297x9rbtpH8K/rSfjiA530/Ahh3aeJDi/MlQZMC/dSCliiLV4nUkZTt5Nff
7lKyLWlJLq3lii4KtImlupjnzs7MzuOlsrC2k0DzyMbHKwbkeGt+/PTlp48fPk/6gakn9GGCwgub
AKe3TfkCaZvZjbN8c7NM7Gs/lRuEnaYJyxOtYMv/8CIL6WSsTkDaJieBBhRTw1pWPcKRBpDPC2RA
JQovA0kHkkFVpOtVmtl77ZBZAUxOI9csNk9W62ieLuvgUv9g8vIHO3zbMfxdR1Sb8ni8KHHKB0g3
63W0tq6XzrRy+DAs0ivrWMccT9nLvvcAvxvNyrgHxXLHQPF3tVLh/mWTMDECI1c36BRNypctSRxW
22hHy93Q2gbIyLQNOe2lO6e2YYC8GzccQN2wNm4dg5AHVzckR6ZumI9c3YDTG2wv4xZK26g4s3GD
eFzaBtnYr1LU8yp1MW4ogLrttvuc9y4FIzNuYOzGDb7kPhiJtmF2Tm2Tgo7MtvGx2zbplEB9wvD9
1fXVl6vRRAqSnFXfCBmbcaPj1jeFoP+7FAbQNmg2yZ31LhWSj826jT0sBVL4vkqDKZtkf0Wle7Zt
7Ck3BAQc4C4NpnAQnNd3G9tdikZu3RDk8NW+KLiNnP8rDfFM3Ejw15rRd9urFPJwMzj2ywSTV5tR
p2Rk4oYUjj0OP9WXPqO02chSfBij0T/OklecUWYjO9yQjz7JBl5tRpeOzC3HkIz+uYi/4pQqG937
IB59lkmw15vTHNv7HIQjd9WkhK81p0hekg4dVthi7J5az/MxspweI2Mz5qMXuCTD1DA3NDrpSaYj
LSFnWDpmhLv0xt7RwcQEEx68Sp1h4U3CaZ6Vpi9Ydzjvxv5aB5UQSNQfPvMiB4OS1G/Ml+nt4knz
DVd2Hy6rYpM8Nzv7o5NOBHPcEgQ4DE3rYV8rPl7R93ZTLdRx/GYmzEc/Gnn9eYVAODm3DBCZ0O6u
EPJGG98QDH9uFYV3hnNAmy2mbyJt6n7Qmuqm7n8e7gtH7ne/YL5EApHZ+Hw2+aujxtqqPcOJeVir
xrpXF4c4ahSHVbbw7K51mvCdTo3NmgytZqKXmg1lU1h3/3EIy0LkGCzLwBdIW29GAJvCKByLTRmK
0VudpmikNmVYBWPkvP4B7c5UO2CRKKixnicZZ9Nk2TwSCwLKFeH+QdqBMTlBXlyDeVIkhR0GIi5D
9XpIsp7MuYNpXdpHAeseAuEZJGbAB8hVsrpJiugmnpmxV/d5MbOPAyVwgrrXuvQg0gr7YppvFOnz
OF1u1K/uZSxNavE4HUi7n8MGwMoyTvGgJ3Oe52fCBAo6DpZADOQ4EAFAjASR7oaUQKI5mD5yRnV1
2GYYBhEG6DhMiRyHtgrOz2nwrQ9AUHe1+DhD+TrJoiSb5rM0u20e7i18skBv+ttU80hYLnXIJpg5
DNDqCe4+zWb5fRlBRKEFqpgQQokPdavf9HYMtU4NxBix3t7ZacPgAaI8EDglQIokQoHAYaj8QEBB
IHDKdycSQuJdU6w7bo2ekNNJe+ZT6yGKyXSRR3HZdgYhctjT5EzkvMhX0Tpfb9Z2C6PnYgkvRz6p
zD7V3TKNKo++JUVuhaojXYdpskj9sw91tVlW6TounvP18bt6N7TSoeIuXl6C79PVLby81YFhpNyv
B/Xv39fZrf4aXcY3ifmgN2Xo7dFHgTAzWzGA3iDdrXL0jS6laGdPvVlkG5XnyvAXRW6PIIUgE9y9
P9IF6JZFaTZPs7TS87HztT3r0P3g7Rdet4p7hUe6++68wsOU9oLnajtssbiexkNJUPJ0I2BIeByF
VReGAvOTkcDHISw/MQ5MHw99HsLykwfWFwpoYP2UgeXHX+P5q30Ks4i1TL8ldkeW62Xo/aG17pio
fUfMiQoZEfdHSrJaV1+juCjirzeb+dyeYkeYMRf3sYfEtKcaLZPstlrYx0ozn+6DvZySmPHV0iMz
2+IbCfCEIOCdqurhMEMO+YRK7+xDFkhCUSR8A8JWQFhS34CInSLC/QM6VnGKJsTrHb0VkqWiV0Hi
wL+U7JCgd+5Ri5i4zk74hGTSA1GWR9NFXKjI2louTH2RV5sLvTnS1Ck/Lf2xh6dMTBD1eaAfF1ce
L6bEjPqjsFwn0zReGqbG06qhDBsynXumPh26XdG3faWPz4ssy6soLqdpGtW5awtIOhHwdJBlojdd
6Ys6ar6pmbL9fVWlTxbNUGrLTAodE0Phh8pZXMXRXZrcNy+rhFTvR2LoLJRih7fFYVjMJfHMYqsW
Yb1khp2FRCAo90OiNq5NVTBC14wI6gfQJpslKv5IZsaYN+9P0ylYHCpJZeapMBoSHKY+zn+hLgwV
WrVv8wZCBSQUhaIOIz0BFmEP5FXmLbS+n+7i5cZ+5VOg6ZNe4M30HsEi35RtrVCIwP4cdSlp2sG0
MVWn/QX1cTVW2x9raNv99PeLVDk663iaRGkWPTL7eJuiOpies8eG9AftZm0ZYKFfqhgAChgcLtQb
3wlh5wBMAULoLBRLLjzcK+lqvUz2m1dnSZYq05/cKVtVti9uw0BfrAwEwqNhL4/2tVvWeO4BP2kz
mNMLFzqR0JZFUGSCOWwlFJ3eLEucEtEnUmm32BK6rJ/rhr5S5lKFaJvsj6e1pFGVPFgVSJqqUBeo
bB/qMo91buyRq9fq82cVMqVllU71QU6UhU5MEWz9C9F9Wi3qHl7zxhybzt7dc7eVJVDXNnPaH7kn
Uf+3jIwxUfioCPlYqbiOxU9X7CeAz9lvs13GakrAnCTN2yWtUwxRPFfMjLKkus+LP1pexbWxwkL0
h/osON4CUQq+WcaVAqQrBjR/DwcDNKL2/a40bJaW0zzLkulxQTDCTmHRoGiu42pxeXEwuQdjPYCW
jxU36OZingc3MGLcoBytTPl4jwKEkI6WbePVNk5GK1HhlEo9k7KBESsbHa/ZJXC0bENixKaNjRU3
6ZR0PNclT0dsQPBYfN8mxxci6icq2JRb+M19owJCxweXDnCb9VrBULGt+g97Jej2MFfqepqXkOkp
4LQiRRVSmJzkBDoEmlDgQdmtos1/6J8udbB/8WDJoajQ0y2e9sJ7XcXuxH4FSiFHwjAnXcW3yUV5
d/vbb5+uf/n8228WRnFdoEtBGITi9XqZTk1z/kWZx+tmvDCZUMwBD4PXPM8vbuKihU26OwfjQOhA
hC9+ePtzKzqECSqCced3xR3FoW8tKMkJEZyEQylyQolLEU6Hdqi4YIalwCQYZt/xKyd2YQxQOKQQ
dOKUkNDlNhGekCJuui4ECYcUdRWfDIgU/8FJfIQ4WQVfSL13QUoZcyYDIvXOSXwEOhXp+VJ06oQU
pE7VJr6Q4p1IqQiHAi4Cio8BJ04px5cF5BR2QgpQGdJ4MhfxYXUrg2BI/c3JSjEUSqNMyGLtVdAP
zziQAa9jg3V2a8FCUh5IPGmmoql0dvQaOiEIg5Bmx+2EQ+jkHvm69H9wu/TdHlh9IfXezWfjEgQU
n3BDCvKAngiSbkhRHNBA43cuBlrdGjSg+PCV06UPpVPiRHpB6p9OZ48BIIOh9B1yciMpFE75PU9I
YScrRRFxysD6QuqtE1LYrb3IE1LUTXzALX3vS6eQm8MNmAiG1IVbasfN3falUf9yU3MsRUCk3IJd
JqGHs3d3G02LJNZo3XyNHhbbYmX1URf9xeXiJo8bBjJiIhz7+l23ByhsTCuY+vuouhBPGGCnn+vd
dJpbQ3QRVYtYFzfO482yenztaqnpg0jxHnUfG/YGtiOyWetHiSjPzBNXtC5yhVJZmgLLKK6qIr3Z
VPY3KCiEOr/dDTF7OJzQbgB1i1G3P+NOsvnLUGot6dRtf92lOb6oI2bTr2/q+skT6uc7EFCelAvg
l2LdebQltuPllmFlN7qdPo/yxQ7t+6dRq79rIJYoZeYhldmhG/A0YnWNe7T9TfsjOTJHGASkGkLu
FdxtUln6vJUsu2el9WNuWcXK/DcbQ0JdOq986o/ADocFATcSd3awmULlGBM97rMXzBNJJC666Ubi
PoF2+465HpOCQ1JIgfRF4eO4RF0DtDUEeTFrGH+OlCJi2NLnsge2u6Gn7kIp9TSdQ1Zb5m3qxkgp
xOmkF6mpBVluTJNHvk6KODLzWgEg9h5l4TJXtBPwsxEQbShE6byIV9ZmTca4jlg8YmLqgvbRsc3A
UMEbGpTx1EYuFdjNW/TCeNrCeI7YhMGBlY/ZRY5VTMIC8YC1KZ86BpQNywJuBUyYSzu7JxbwNjXA
SikpGJQFwgpYV6FRHogFooUFlOtpQhIOygNphUyJS9u4Jx7INjVgeu4a40PyAALrXCA9jMDDGXTi
AQStPNCJ69Nts05L5dkma4qymJa6B1brxFzrPHaopyUzn+q1B/I40acuNyqRGMRzbBtDLaQiljLo
g6XPa8uvP3/aOnFXxo/c/1Qu8s1yFq3iarqwO5fKsCCMfWNVp+DM2KvPpvi9RuR9Wq41KldNoYs6
ZXQCJQyEz4e86kQJmnmPTHpHaTYzMK/TskqyRJ/HnezsJwVzL/7wARrTRTL9I9JbBZ6GlEVzFZYQ
5RPvarZv8tlXaywNhWcfYdurcAT8cJeFHu0oARuGG3rOhIUd1jlDELhMtd/D48ert++PEMny6uoh
PZ7pUJMKHYYW9qa1fjDRryT1lNCGhRnE891XTyTdW01wPFINyQmXyDvJxXKudf3tcvnzdg5Cvfyu
YQaRIl2Sk5HQ0d6n+DaxiRYjZe8I9E6pUtmbdDZTDsUqUcdopkL8h2mybmq4gFBnxfwbOVM+FekR
eibtOYvKu1vLYxQUjOohtB61zCRaUqVlFnBE6JjqBcSWyVR5btXX52lNvQ0BUfBAzS6EQwPJFV2C
Dc1Wq0i5vjAQHISnD7bJM5y5TLX2xVUofHN1laqzoq3hKn1QqjqNS/v8Z+k0grGfy9qFx7GF1OyW
gPpnQlnqpSPzdJl02AxEgBf7+MSIWZ6USqsTfREeGkpMJsz/SapXnShSdfBln9SmPWRGfAPWk2i3
V2A9JbvT/xPaDfXpa2X5uxqD63pM937QQndzIn3kwZqJN/e/NQPHzHSnAcj9okHGZVoetdtS6t2/
fpJqHd9vI7Ln49GtDxx6ChOXHsm/SW8fhz9ZzImkSDIdG0OIw0GFhEFOiYrKgQTeWW+2wRlvs3aC
rPktM/l+GNg11F39j13OyhXpG+9++qXVvdaJiEfzVtNtuT0mgnt9PnMFS1E/a/L+6vrqy5UHwKyn
glmjtL5gowknLocYvlS3tHMQpepwZWVapXdJQ5JH2VJKeuHx6y8ffnr38ecPPjjv5Ng/gX5QoKd5
kfkA3ZPq6SJ99+8rH0Rz0E/u7z6uv3o5Xv0ITrP3V7/6YDToB3eV3/k41NQpLdLvdN0lRZHOkkcv
/LmnshtBasuFCdfHotPQaQ9OJBEq4BS+sTAp7mkRl1ZvhWtnheBeQDuuE7Pa1G7LVMzR72h1l0S4
qhviFJ/M2hdoOeynVtPcjy3BtBfYdVy9+9EDXCL6wf309osfuE4eQq9zs3N9vyQPVUc0TfTJxT7V
q+0MOZSZv5TWX36+tj/tYKTH3ngksEhmaZFMq9+3OU4zgGlTLC/t66DMmjeAvSLQODbYLet3MqU6
BzjPN9nsoH5ou4QNAY9INMGq0zPUi6v7wjI1qHdnSA8sd+0psWzkIpLKoc7Ur/+57jQfuiLSuwE7
mryf5VHWVKqkNzwzFgKFxsUK3Bw9n1rfueWA1fWo3u2pKQpXtDrUwyKqa2MYP90Ds+FwV9ZretSf
ZVKYgpV5nC43hV0LlDOowi7SWq8aBAvB5SlIPKnAdsW0tgZFvoxu4jKd1lkdmz5QpQ4n0t8B2njj
mnilHllUD5dvwERyDIZSTN3UZV82IoDsrY5dLwP3dRuQGeE3S5bx13o5uZ4jp5Xhkn5vvr2kh5vH
qT4flA7Eh/5qiah3U2HqiaebsspXbTtgIAI6hvEplwOgtgyYJGIQes1qpvkytheWEV1Yxr1zepOV
8TyJdv6YfXih8XZfAPrY33v08zQOby4ulvk0Xi7U8X8jgADNYnl8/re6hYzJ8SJHqWg1na5rF5qg
mAIAOOHQKdZqh/bsFedpsUbjchgq6ARLPghUK0CGdHFS1+nD6A09mFCRZnqxY5UXuyG3j3w1W5HL
aJaWf0TTeLqwJ5yZEBPeSWkvwMrUaHCzqJwW6bqyTFTlygunDiClO8g9qqPtUs2jJgWsnP/OlBvG
bwBogvx80fX2uwZojAOubhHcH9qzGrv/beIigcBWWqGiKKJo6myFtgDoGAmrXZVTx8JS3RPUmWNt
Jd5lKq+KYf4PUEsDBBQAAgAIAA9DlUo9ggivqEgAALsIAQA4ABwAY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50LkRldmVsb3BtZW50LTY2MzY2LXNhbXBsZS50eHRVVAkAAy4k+lguJPpYdXgLAAEE
9QEAAAQUAAAA7Fxrb9tWtv3uX8H5cuFMSvm8H0JvCz7bzE1aT+yZFigCgSKPbE4kUqUkN+6vv/uQ
lERKlGM39gD3dozAVvlYe6999vNQrFck8/tVvnLKmbNKFst5Xtw4abkYJcvl3Ix+MtP/ydf2T1AW
a1OsR6G5M/NyuYDPzvkyzxwhqBCvHDhc3TsYOYt8Ps9XJi2LbHV2WZWpWa3GzvbnsdC/1LAfzi6T
9e3+bvi5+Gc53yzM6iJM1slF9NPVRQPU/vE3+Ty7eG/mJlmZ9thoViUL81tZfbz4p6lWeVmsLryL
ny+DK1Pd5aDfxUNafVqmF+3n1cW7JP3x6uKRJM7elknmeFlWbU2APmHEuVYIobM3GVySz3JTjT9r
mrNW770lBGKvnXP4PcIjrF+/OgvKzDjX90uzveZnJVzBwICVted+Ib799lvnF/zh7AwMaC6u88Xu
DoKwdBFzCXaQGhM6pmgktXZcJEHft8mmSG+d/Q0Hl6MxJiNJWHv5j1dOX2kwnQMHfwYfGWE8Es45
5t9hRvCrs/dmWVbrzvXyzNv65XVZzi3CxWZVXUzz4qL2UnPmws/ZWZDM585NlSxvx2dWiNbYub6t
TJJNCCYMKTgW5qtlsk5v/74xGzPB446hF0leuOv6esc5X5kqT+avaqDXNdRqnYBeznleOPN8mt3P
sxH8yqev4Dx2nF/QJzmbzbQ0MuNJ9qG9s1HDYje3PtJdLCinrIat3URLRD7AQu4c9R1AjhaLMWZq
J6oRBk462QsEDeHAXlWm2V5ZolU6nZoPHYQGY2JByum/HkKSmveQDNasj9Rg/XDlAeE8TdawoO92
cHAQ+NfWw1LskFQySzEV6hCpwXJ/6aE51ab4cAgnFOmizWSm0DHaMN6kMJ/W0R2swDvrJpAA2/9Y
fRxvIETnNlDGefEOImycmV+tG42PNGB8b2M1RYgSIoY0aG0dXl79sBV7ZBskZB8rm53AatH8eZl+
/IfV9YdDLm/z1fpNrftP+fo2zudrUzUCv39jY2tafqoXdu/OKlUM8WR2SmIj871JTX5ndvKCcrEo
iwFkRkkfWooHoFvwTRFsKpu4auy3ZblsOAzgE8r7+Jryh/AbCUEMMiwu/LlamhQScdqAB2Vl4nJT
ZLV31BL03lU1TaUwVD0soV2WSVfKKXRMeR9ecpN+Dv5IwC5DpLeX5TZnDVDBpCdLQZL8vKxtQktv
J4vVzS4zrO5Xa7OYfDRVYeb7HME7KQJlmaJT+hgRfSGTNST1z0mCbqMnaSbJh6EyYD3woAyQbhmw
ub096y6SIrmpQ+S4HEy2V00WN9VkVzfa6tCe6xii4/gKVjlLD0pEHy8v7sqP5gE8gkUPUGLR83QL
+dHYgJn8Wq6eaLyZmSWDxhM9U/1wVUdkc75jmsYYk37BbCUvm5Md0bSTrAnilOMDwyyfhidUD1Bq
nBwaZgc5LbP7R2iIDxB1NlAxe9Y4SuNMd7I45jrTfKhWPn8qeoHk89Lp5oUSzIulFEH/7M5/V+bZ
X6FDzsbjCXTV8KuVsazKT/df70+sN5A4vraXO+d/fXU+XUDPXqbjsbe6L9Jr6LK+3h363iTLr5zm
0t7B8RjufPXNX1995XzR/d8435zXir9qrPC35C65Sqt8ubbOa8lr2jbgiZilzGTQ6E0mMxh9rE8n
88kU5soxw3wgkL9EMzBTbb2oWFf3l2VerL/QUKf4Ed3hR6jlt8Mf3Y4xRsfpRMpn4dbmjvOTuuE2
shvlqJh+sFNxkeXW9pO7BOrxdG5g1GRHOv6l1rLWYe95x/dOkuJ+PP4tydcdB90UOTT1E9tD70m9
26zNJ+suj7ruv05zQqrLCbLrICes+QCnxvYPEWrInFByf3TR0xLiPH39eoQ7E6LsRjwnQg306H/Z
ecMun1iFJlaDzyYVKXoikJJEnRLRCpksra/dTtK7IQmfydwmmw7MTJj9ezxZy+6iU3wYZYQPFKyu
co1QMG/azEFXaQKdxo15IHgQ2ctMplyATIsySpdLCGs1WCGPRa62gj7j91drqPJp6/1fdX30tiqL
cjzONlXdB3w9L4sbx/7qXlWf+xrPvwK9EZpDoJ0kRgXuEMuMBmLNMowZxScKPxDrVKDbfNVWJyA4
N2Y5mZXV+Zfp3PxYzW08r9ang0vyrudrWCh0eiACxYukKGstD12+sxGDdae5zFIlMvTgVA2wk8nK
LGwkTVb5DZSypw4IYP/hVkj1B4R/vH8blEVh6oppt0BN9acfFGBSaC3WaDqZNMhH3XgHTWVEGzG4
vfb6lwMznzd2fuVMKrMqN1Vq7AGbo7Y7VUH8g1nbPfA63Xf6cpUxIxORDY8RL7FP8iJ7Iy+/H/Ji
eyAvNaRwDKN7vddcmbEDSbWc28c7f/Zg/Ok6hq5pPbs+bLgfHgwk21Uhk4osgbhqEMCkl40mq6bW
SjYQsrXU9dNEYqk6MlFmnwbsRxEQpOlg0G7XfLxb8+u2+OUFtI/JPP/dHLQw7S11TPDtCCS5YLwe
gQ6AIKzscwhOTkT3Y2Jby27kTZXG+HRkv9R27Ytt0/57tmdfdFv2xdKS6D2DC+IraCzNerSs8rtk
bf7TK2wt8m63FT3oLFL0nGXKGU+GmgXb982hTXhqv4fkQL9HqRS0u3wp6JVssrwceX8P5rl9WP0n
X8DAu9ym2zrTn+8ObDO9Z+3VeYSlUKcby6Y8o2ZoIb8zhanytE0pfRndQnIIjzuPf2t8MyX/6fb+
f3V7lCkpDuNyYbI8GSV24yEv/+xhOct3zUveccF31kb1Vwi6T9cMJ1yRwSi035+p767v3IWZM7df
9kmaL/s42+VSTCCEAAF9IpqiTsuDlJjBgeE4jPObK7NIlreg4E8wsb83c3DiOzOgNuZ9tZmm7FQY
Wqgfi2C7iTiExvpg01PP0nur9Ny7gN0Yf549wF6ocI3kcKgUzYg83cxmkGn/Myo9V8zEW5zv5uU0
mbc7Ef7WzJDF55DFBwQQ3MXHJmWzz1euL5w4Xm7eeKFp498xa7zgpPF8BVEpvYtyxjXfTsf2eLPt
9tuvB9/aeHQEs46vWLxduD0ekqg+qOSy5yg17MRGxq8158qsN1Xx1Ladm501yN4aTBC1swZ5ZmuQ
l7EGeU5rSIjSjm8I0Yqyx5/TGhbvBaxRwz6fNezDoq415Fn7mAA9n29s8Z7VGh3Y57HG2XW5TuZO
sVlMYdSG+4F++tE5r0y6qVa250ohba5N5iw283UO/cJXzm+3pnC++W/+arzTSbV/n6sKD2J+abPQ
BX2efqb+Knr793lqZhfxi2vlCbAvrpBd3C+uikNgj6qDh2XQfoH67MoSmt47a+in7Dsd1pu/sq92
WEeez5PlClz5vPVgp+vCT5Dd/nDNxO72p8bj9qUDIXQH4wnt/jYXaKE6AI/Z69o3HrsbH/u9yYFb
n/Zcdfc89uzMz4ukunfeLJIbs9qtQ+cdEcd1+gc1rPWDL4rUr4S8hvv2b4Y4X4eceUIj4vpMRS7l
vnC9IBauH2gUUO4pqr1v/k+9WNOzSoIHTJVga6rXcH/75svVbb5o1sA5R2CUmGlBROy5oeKhS6lE
YI8gdAOkvCiOuMJYPt0oR8IOVJ0eqwqtyGwmj1d1cCkp5kHIZOwqjgKXIsxdHYvA1SHhcayY9jzx
jEvZnOtyEFjPjjgIqtLZbHrM4a25SdL7QSaxjn3OiHY9H/vWKbnrRT5xpc+ETwMlWRj9ISaNzIf4
NFf0WAnEj1jJxJDZjB6wsmVikBCLNI8wVW5MNBBSsXQ1IZ6LeOiHyBMxUX8gyqy4k1zsyS4NTTNx
REOrVM4MdV6DN/5mptU67YZBgMMgiMPQJXHMXBop5Ho6jl0smZYy4gHx/SdqfSCnpyCocqRgIjU5
8J7+o9BBc/t+4EkSB25MlYT4Zb7r25jANMDMk4wI/VT/6Usdtnr/mg43+OHJITd70Bzk7PZhif38
feh97729nG9u3hTOOZHAjsD9zQcbIzxiENOBKzwCOSokAUQLjd1YIBWgiOk45MDxqq4zF2/zaQX1
5CL6BPmy1beVMvpoPq33ybaRuD+9U2I0hf5nbg7T8tF1Pd6q/iLUAW9FxWCtujarNXRhhalGb4p/
QaU2mV/LdM7xyIJg4C2JCLhixGWxAKfkgrg6goKFPB0osAnSCP2h3LCX3hd+gvfDN/WNkKhjI2iC
bAKxkddGq8W62izt647dKMQaRz6HNYaCDGldhRCFWEHuwIh6YRQTGf+BKDwls6s4M9lRTcJsBtNR
vyZ578J312/9qix+N2EFY1FlF4yREeZ20UZsZB1WKU1lJDxXYR9BeZLa1X4oXUyiKGRxoD3fe9hh
j8SccsmjC7usODHHscgpQgesYBj4uFnG20C3lLClI9TI+qFHQ6F9rl3f8yClRzHUKKSo68PCBloE
EsrtMZ3L5jn2DnV10YjpJJTmQE9jNk2PNYaDMyOd1+m87SJXzvm3335r0x8VyJNWKx7FLougffEU
g1+hgoSItIwQ+8bZ39eTJY05liVnpI5YcJAYbP3e3OSrdXX/jzdbR8WcN4tMmYA6EblcUeJSzZjr
SY7c2Pd1SIkKSBwdW6Vjjs7Ll9tGsWOb7oXXV50T79tvtq0uTqjY4UhQIsghR4KmWBz79fskM2Xx
M4PLv3t72rcD5lGkuHSlVxecSLiaK99Fvo61ljgKQ/U53x4Qddq/By7uMKQ800fFngoi68bX8a7f
dO6/CkCf3To21OoaGlOYC8C/Y6Fd8KgIAhcTNxJMBgGhgdDPSemUSl1WiTiuJjSRFB10CE0V3RT5
ejUKysWyLKykOoBpvWiYAkGh44DjWLuRhFQErgoB4hHpqlhLT0NpDTk+JrjHu7D5s36cPkq3Bw9p
7S7p0kgHiiJNk5k+cL+kxc5M2uch6mIIv+0yxQorERDbBkDAUagOOoRfJMIx9P0hljx8kEWtXtAI
Ocmjc9FZo7HdWRAGJ51ksTtoeGLfGbCvxEMJq5VtEpNSTAoKfVkQoNilGOqZFwTMlTBnIh5A8cZW
Wfs2Pyz9hQXoiFOMEn4ozh6cHnQT+yETGqdd48AjggkJhRvHHliKc5h5YwyBGoc0psJnKPQfk7D3
6J8bcfu6CzSgu0AHuv+6Sar177Nu1bGJhtQMwgDWN4S6GUGjRz0PBjwSYxgqiNZIekz7+sHk+vca
fFjt5tyByumAyjaJ9NPkamXWQZLemm3GBq1ZUyxZXSt5TKAfVcyFWcqDWqmZ6yNJXSGJjmQUchHq
x5j+WNIwl+Pr+rwkGeCV8ANe9YPGetjGAi6GwtnEG6JQxIAK4y6V0Hl6AiLPD2QURTSCZiB+DJUt
+DCB7dm+2lMxoLZ1/p4H5em83GSjOC+yd/ehacJg3z/7OpAMx5AwYg/aSd+Tri8iyBqexiiA4h2y
6DEEuvjDJLpX9ImkQ6GQqgMiNnnu1jlu3qa1rkUIHdn/T4gltP1sB4OY+9Ij0IHB3OrS2NMwrfrK
DTllMY6wltp7MDp68oYZdei3+py4sD3bo62T2TFtnfIB2vX6e5v1bWkfgdssZmc/zW3d8lSMYcWg
HHt+BIMf5H6t7F4JETAbYPBL9agFPJYzzOX4uj6rVAyxOtyNfPPj1aaaJbUvIjUio7oSN59shiAR
xyFkY0YiKMZh6MOQIwKXKUKgiSWCBOzBxdvhD5PYne7pnilzrHumD3NyFL95W97kxbaa2I6PKswR
1uBeoYRcHEjrd57nQnD5vv0epKaPav+32MNqb892teYslUdac0nZYR6wW8d1+iIjm780rbcNvIhi
acMixpC/kIb8ZRMBE0xj6sckpv4friHd9Wiln1iO9myPl0zIAK+pqffZoB+wb6/M70Z626sK2/94
giOfB8rFGsYMKjzkKhFi6LwJE5xi5cdep6U4gulpoDU91iBBRwVvYEaBccQ5p1LCzdBKjpgdCnzB
AuJDR0lgXKcBC6C3pIEr4ZgSFAWhZl8wCw3bvT8WdWvi9dVZnxYZ4poceFG9vXP1/tI557sSArOk
xwOCXCiB0EkJ37fPDKRLtO+JwI9lwNSjynmLfULh9uyB1tMBrYU8WCGbsy4rSFr16xDd8gf5RIBT
+C74DXUpkZ4LTkZczkgMH6ATIfKx2XMv4XTm3F/T5yHUEI/DTvZdUtxU5V2vgJNQCZ96IVg/AAa+
D81UIISLgzhEgUaRYuxRHUiLfaIDac/2tVbJgNbT5GAnvJ56/hl8H1qnUbXiHOi2szLzvNjH0PVT
iRRkIJjAwHs8VyMuGGXQm7HgsStQSzlt/Pp0j8E0PW5p+dSggRocbsw6TMyiLC6rcl2m5by7CjgU
CP4FrsbMs22UD3kHSVfqWKiYBRKTR1fhY0mnKR1f2+dnjqsxT/lhj5Ela5i21yZdl9UqrbfRZU2N
1Uk1UgKLGGFYE9sjQrJyfaygSBARiTDEXhA+ipzdiwy3Yk7vmx9ddtbXfpDSbFsW2iepRbnOZ/f7
/Shwt6YvDJnyw4gyF8US+iUWeK6H4tgNuFQR1VrJIOhUiAbuYhi4r9jARAcHD/f0y6UpbqzvkFHr
PvUHuwMBY5ustxCDEPLo//J2Jd1x3Ej6zl/Rx76AD/tyxCprWh7LZtsz11qSMp8pUo+U3O3+9R2B
rEwWMlHF6hk+X6RSIYWMyAQivi8WlDeMBMRAKQNpD+CWTeRnHcQPMPW7D/2HOo4tBF4DULVny2D8
B9j638A/45la9cjHo2WvbGTWS+AMICT4tIBRoUhh2RvKXWKGenZR1HNxj74Oy6uuWsFNTxtbg0HV
z38G+3V7h8t9XBSyagBQswiXCZMJNNAio+VxRCqtfAQn4Cr/WS+H5XytMLcdYQZqpqjp9vnzNZ3k
EIgOTGZSgakj3mI4XBmJPCwQlVTxwCa547oFLkdzXLW3WfsSzQ+eHC7+4D/6+Ld5ZzDNRzsM3Mnm
BKQcaBMRLlESCvBCQaWnkVvDmTgPT3a74X54ghf7Kir5fdhhRK972ULCq0YLRjuqsTW5qLJ8D2/o
6Y/3D7ePzZJ1wgIkiyR7zGKaaIgXQhHNk/Mq5cicvmTJrm5yimksLlsotOkp1ENdC+QHy9eigbYI
elNSJgkPa5iXMfcQSrKgYUyWM2CA9o2QZefChT7bnj77hT73SGKexzzT8btxgRdVXCA5CcACTBQS
DJIqHrQ2YBZ1UJe8m/vTFGp51UGKE2vx6IpWT+46esrtAnfe/LoZCbvEMLqovGv6iK4oJW4Zi0Tn
GAB8wm6zOTOiXShOKxOkvwg4H27T1+EweCy+YWodODVML5fd3x8fRsb48oZ0Uj5xAACCWlhqxQC/
AgBKwNwDWHYw5C5Cm4ep+yIfBhuR+UauReab3WTeD955//D8vJ8ZIVfXmlbyZSmzDpw7PGU0rxhL
AJqoiBKA8qXVhol0zusfzbsQa98Ra78k3/HXbw+/1RM26wPBEKKpyUNTt68p3KpIKFV55E/OekGU
5VoyoYQIl2HH9iYnQGN7UavMvrMsxI71OOC7X/xRLtRhrUWNSdUPCIglBWQIHNxFeMywUMDMOtjZ
Idnsgwo6OnExKYSbnSGFMNqoIUVHDSl78cRwD/j58fHrr8drPCsAhc5zAqxWw0IH+V3SgGyAjAAO
c8Kw/GrkcJ75NHafL2ml32870g+7alpg+f1rOi4G1je75iOoDSID8QPjLwHDwhq3hrhCE+7STGWS
1PjYood5mubmTc3N/KU1i0f338PXcjMlnmQFr1Zyr4TUhFcaWjjWYcRCsrLaM5o9K+fBa52z/7Dq
UCPnnq4jM/Dl7cL+IuhNd0+VSeCmw9Ok8SU7WevjvDY+gQ2IERNAFDinThieYanIEGUXCCzg9jz7
adQ9X9Jq0IEy8KWYUBoukF++H7ukX7Cau8ZcLDCgZGgJYHUdGGF4FiB5dKSmVWIwyev0fyYK4+V3
Y+p8LcVCiY5R3q+SWF/AAR2Z+uuP+O+xWouxGsqGnVVBqPLZeq8DiZliEtYkEmhCrgZmJBQGZiS9
eYxsFqd/5Tzcqq7ZWvVB0Wmb/vPzPag0vTnuRqtITaCGAlWiFtOzvgDI9mBkouZgFU0x4AbafXo8
TyPAoF1HAMNuh3EB7e73uy/fgGvePcyMh1+bGl7X8Iix/oYoD3ZZUCaJM5aSJLRlKVJPbXh1AcVL
FtBailaJTurNDNZNT/HgfTfP9zNZ4uJajUZPsmIzY4WwAGRFFAaLxQMK9p4pY3ICJ+rO+fR51lak
TlDL3LJVWu3ht+vjtCy9djUvi5YFlqmORWh0e1grESxQemFIVJL6ImQQwp53IJun7ePrAPb9sQwN
6Xj4rdHplq+NjRVyGZr4/Q4nuC6b3TDuTnEtal6t/j16RsrBfxPJGa4bY4nngYFiPMNXMil3WbLw
cIcTGh5Gr1ppbzsqmN1kL9sjkP/yV0VZjfjUchwjAfopQzTzgEUSWBWvQAutUow2ilQc7y6UdtJW
HrPvyGOXNUN4kvT95o/JFpX/wYeK/00YZG5ShcyCc4D7GUUGUIv54A8NACkomNFfFllrb3MirtZe
1KpjTU+dpeM/4vgjh0d1GP6/wz/xXxUNWMZVEsQXhlWZXBMAMYqUElOAxRiT0X9GMGEcW2hqO5ru
lxTV57/81VBc/PBnBenScSM5KUCmMQYaiJdYyeYjcLjgSvHy7dLJPp/Au7nVZb9OWFoMha7THzXF
Vv2tHNef1hiAx5dlDGfBK0UQpxEhuSJWOA67OpmoELv58Kpqdf7TWLcON7Jrunag+OUKpe8eNwg1
K3LjtaiQGmOxnjFxwcDGKjZSC0DmTGouojLsFXlhzlOywtBCTt6Rky1tZz1wZTOetnUDaK8+7UN+
WLhqPW0EaAk8BKynw8gTOAgXsSJTGyBD6PrDRWUvnVv1lelc2KrGOjZVW7XwvoeTDmbLamcPjHXI
AFsEcTxFMKxYPOKKJAG4dtJaShXZ2Vj68cytaJ1UvNWbzUK08YTRmQ+ZKciPnD7bgLuVRQzyg/0J
TGBUlzPBuNHGnhPseN5Wrs2anVmzdYuU1354/u3r45fnlwIoLEs5VBvSisEE9llpwLaRBsx7JUbA
4DtCpdZZgTsN+qLVkMZbTaYFLzhh/tcXXrVarIGPdVJPj/zdh49Pj59g5s+b7d393deX5Aqvzzz6
7DIPipgssOjVRAIrXhJZpHSRC3DC8m1YyQlJrlrBOw7NqXltb/9V0y4zrERvDNBGgfWz8EpKxtJ6
SWB1a8IMpomAgIiaSj2OwR/P0t6/k6ayDvfW9mTmbUqqA2uvhf7SwT6IJKQITB6sNHwKiSSTXeEx
MqnYf5x1uyDj1qphO2psxO30GH///u553n9Ki8pPQ9GMF0BZxYsABhpIqg1AemxiIQbOcozqT0ol
HMnX6FWjiSu91NJzvnDWGmmylIMbQidaY0WMs2sxZrEdlcYUn8H0CYCY4ImIRYZeUimUg87JpYvD
XfU2ZwJedbxVZ+iosxV86UyxFDA97p6ncJcAW16rn1VJjsGKJ9QloCzBgSUPPhGlHc9MW1MEvSgG
Od3hhHudhq9aQdfRHLu7FVNsN3zwN6t8VZCRMwvAUuUgiIga2J9RiUQvwUyDIdJe/0mL7EW+q1aD
dXQE1skyDvnSSI4wx9WMsMLaUsO8S8JTQgPDtA5QW6uLIExaLbTyOr8SUnuZuSd6PBo/ltvhj6Gt
5GbIFmFvvPvw0/CwH56Gp3L/uPk6W38GvkvCawToiIVXUhTiJE9EJ1g9oZQUXkkfnrP+L+0ci9tP
7QOLr1t1OlVcju34iqmNZ6U+/XFUtlyDU1wdPDaFT+AgSAweM6SREcfgU1AGE4fMKPeGFGAtzylW
t7yu0X4r13THbdUwGfAPdw/D5snffxpA3NUmKwU8Yk6FFKqxrJHiEpTA/6M3IZQkA09/VlJ4LWir
qGMdRTebTvnFc23KPJQymEMb14jRhc7gvXztEoV3zMAOAmMsJNtoAjdIX8NbhG5wtd9MYpyOHc+X
NKrudmtK4vaMTrGQ3beneyB3h5fpatcgz5RlGTA8X7tbah84IDQVi8UaA6lcC22OJ7lqb9R50Hu5
bFf5afj8+HX45W74x8t+OnRfVEIduLXAhhyARARbCXB6kKEQppSWFPinEhcliNb3OWVDlte1WslN
Ryu7TOT9mGrEg1eUViO6sEMEhmw4QD5UAzAjA6xTLAeTkBjVmb15xPrHE0VuP6ZWJ6t6Oi23xFjN
vcPDCO5GPD3BA4NuKKqsWZCKMKexQoZyAi4WWBXLTPDgHPCssxqu5z/T5dBcd6zNhnYywBs66FWb
Bp7RA1i0Ztvxr2q6FbOGAShL4KIEWGqMEsPaozSJaG3WTryiA8x6SmwYaiUdTE/S5Q55xmODQMtf
7zCBWssi4X3pGtnOeKI2EOmCDTImaxIEQH8ONEpxijnINwkg3xwk+O79idqBebzRj8m1/YEvzVSC
9+3hH3cPcxZeqOo9C1hWIOWKyMQw3eY8kCtQEUMfJYQMyEh0KfnxbAsxbEcMxdfJSmxVaPvkEuDa
wHIh2A0CVM9h6QUvhAPqNdH6ksxFdQyHyU/mLXGwFbpTerFhes4b7epvY8anP758fXypbIfFMMVc
4HHh74UywFhBgiUHg4N9LlibaZkHRJyC7z7H9cytYJ2EFny5PNaim8ur+Y8a6tJ1t2WriqERqCpQ
aCEzA1pkPYmsKAp00MXk32L5fmxlWSXtFvqJnn7byWm+K/+LpTLDfhHWKAW2XkiZUJ8xlI2Hv2CM
C6gsdaJYY4x/o7BGK0EjPacd48fpfhEPa07jAhWExXBTzXanBMsd3D74JODkHjytjbHaFRZzzk6p
s8myZuZWNLntiOZmhHn0Czf4UMdVbEsEXynQAitwm9JZ4nxURGMwNJgCRmIRajmaprm9cGvquxH7
ZfceVjVP4bjr8TGXu/sBf/IWcIm8lrh6ZQ1fsMR9MiYQY7DGCYAI8bw6d+oFh13GWXw7nN/KcrqG
6+WaRn25XwdoNorN5SKbby92hFncnc45cOi0EMkKeHHuQb0UPfDoSKULWqV6gMTRo3+Zo7m1MrvO
rTdq2lGHlXOHtZFTya0xaMdk7TzyDuwY9i3A5hJGg0vWyRIdffASlgCsgXML8mXaRii97/gmPcx1
FbvPX+YcIT4NvFfhsBFgzYEYIlhsmMZUoYsuBytyLIuFOM/Q3NjQdUJwY0WvGeLvwz+/ol8c4bB0
hyNcfAoZ2LMiSRZYbYJhL2mUJGnJkmYq5vg6v8S5T6dhcPSqFbCzea1ZkuMPyX88KvfimDqyYyVN
3TLOZ4HdYqQETAwj8beFZaKKFVFncP36fCsy3uCEiYSRVmTbWXZ2u11UAs4neAlGUURqM4N3zWG9
SQt7GUiHV7Z2nBshVMgmy7Mpgc47t9uuKMOp9pFh++3Th8dPnxZV9Jj+4YABQBaHuBoTKhQ2qLNg
wLPlLgbxHzWPHN3nldaRoysbzW5dB1vduvkhAzEdhoefBvwlqXlzc30ta+2fLtG4xIhUoIoAaEec
VAXjJpwnQOKqpHZPradrpdl0bPztdklk/jY8bYenx+cpx17jUkEaibwyK48x/QzsxStNMkgiuKGF
5/NQepq0/yCn0Vbc7XpTbbeDXPcNjme3jUE/ScELYT1oEZIxgMskJTw9RCYKrlpbErULnFOVJXu1
COpEbW08jF21kq1zbdudXvW/fx9vcNViFgtg0Jhnk66EDG5EAeCDlUsB6dV8LIYsTSw8yIuK6XHu
E+wKRhppd51KBfjSLbxO4+8n/+dqUIsFUZTH48AKJlaw9toGoCNKCSu0LoHTs55nPXUj4CDXQHp7
u+rL//n9ceB3NAZS6PEwIR+C4sC2swkGC1YUCcBgSdZaheRtAiR3yWM9vkf/8R5fcazFTgzr3PBO
0iW52j0+fN3s6sEq44ePODeI9fByzABnYlwthnEscqeEsYAZLZoIIGlBsJ87lCwvrQnu3OuUmVtd
eNXqs+YEO+32C589EfWpKw6sGmik6TUm/3htkMvF4NEbVAUHRsZm4jIezEU9fBNEkvG8+5uI9nka
ftWKOXRk34p1sXZ9CncPeFSRPLC0WhtVA7xgULKhnLCIgZGQgEg6eCXRZKOiCFKyS3t359uczFzN
V7SKbE1PkWW05Aa8wNPdGlbXaHUt1Kl/X5trTJ7q4K3T2QC0rSA3YfNiAL24dsxpUYCKXtRaceKu
zetprml0M27tCXaW3p5YYLdNKmiMCDFeW0VothT1McyCS2UF0AHTQFEcgEIpTRCvBOKnNfSaQVhf
1yhkO2XLuy1dNpR+9/7wYyeIFceD0iw1dcUJ7GmIeFiK9gWDA6BJpJkUZoMAcpqVVm8RHJhF6F85
Dzfq7dTadsOXS8/963D/pbrC6gxljXmo5GUCZElDrSb3GGs0keABhCqmgscTvolacOsTGsHIQhnV
U0bPGK7Kch1euDkAuMPpKZRxJS24R81kOhQqi8CINrpIbhKPadGO2M62EKSzw3ear03VzeZhX1fN
ylApbjT2/41dkQKLjuppsJJn6p1PPOdLDdXhJifN1GG8VaETPdrtqViF0r9usKSjBsRGZ+EMv64d
nqpIaiJ2H3Ep4ZEyheFnwHY8pUAlp1y+YfpwkuR0zBpHr1p1ZE/H2zlC9vHnw9mQ3w9PYCWWBUCY
AQEFEwFIXVMh4AXxsD+jTOFgjkWJF52B8nKfS4JmfaFaxXpGa8+XbaOxnO0XAUzulMazIVTGcnMH
6IUZRlS2UWmfs5P2/9svcvy2ywXXLy5qtB6G9ZLdU7sscdn8fux1pgydBFIyRiUkYLVERQG10WgH
LObBAIlhVEurgs+v9Ar4X17zOcdXXDXSdmJ7+GX3mNzxgL96NN3PD2PX4vH5fsJYwNSOA9pkGsNe
AUwJt0CthPCGJ0PV+TTWPPMJJabhhQasp4GYwnM/bfZ3G8Sv01aSuiLlTPEAyUKowxY0wR0eLOHg
HWhrrInCmXL+/COst33/w2vlFCsJGuEZWzuQPdvw/X51/s3wXx/zu+ZcsWJyCnhuE55VK0ypZwRI
krGQGohiMt5dXBCFk5+ph8LhVvBNZ+mzYejURdek4/sfsNh7DBpI48YK0uQ4ZqazwYiWxXARuBhC
wcs7o502rrxqrQ+Tv3KQ1vsfGuG5WDOvPbfbReXgd++bOhU+pg8r9DU6SBZJBJaLta+SWExY5AJ4
xGOi3b19D9WLNKfgVg8fg1q7jq5uff4Kpq4+bsZTbUHb8QSrmir12dTQjlJYBmbw5BjM1gQumDQ+
eZ7dW+CuYxFOvc+XKxolpVx3au3l/nal5P3j080fDztEP+7QWunG5soShcl4wpLChqIYgKXBNsKu
IgdDNhVr3vyVzvKcUvcw3OraKUTcG21Wrvbwu26w74BH64qjD59qpXxwoGQmCWsogRVgUQW8Y+5V
yZRbn/QrVTjT/Kfc5mH4qhXT9mSfW4y+bD4fdfTVE/FLTAyWG7EmRGx6BZ8SYOfJyEW2WanCFqeN
Hc3R3ruTS9lvNFts+gYCjit36qMUuharjR/quVDB4ynaRANUB0KC3XEMzIA1yTLvddKSvh3cfJHl
xBOfx69aDdfZmv3WyKmJ8fd083FZXQxkgmsFjDEVPDAq/Zu3K2tu40jS7/wvza37eKzToQhPWCPK
nn1z4GhIWEukzMNrza/fzGqg0dVdAOFZhiMcJI0uVWU16sgvjy+lgYmpjLTvxDEDT/3fRVRyEq+a
1dou8c52Q+bEOnf96nHz+UCwMACe8hvNMlRaZ4wZ+Im4yrRzwcBlBJCHGzjA8ytz/GsuyKMg50wC
h8c39Xxak7TjV3c0lo6aDTEMbWYDUtCcR4aqNE94ngXQKVnoUgzJC5WEcvmiBbbx0jcNo/t2s7On
9IUhRanGLLBdYY9iJizarrklCmElhqobgCuYqpbtWyUtTMavJN82eJi2W0NHi/bqqcolLsSzlAZA
4QAfScCcRpLxiITdTrUJzsCJaXKqj56qm1oAw1oCzN0r4xyfBo9WoR07egRoObhDkDwGCtdTSc0K
ArYlA5RundYkCgWa7PWerNJ/6836yfN6IquGwrpb0LIMeOH5YB6alsBeggaSrITlCcgPDnirWGdU
CKAFUhGycoQb+zpouGiImraoJrOz28ZkVuOy2CCh8XFR6OKFlcI4lyzck+g2kEwiBwMorszpIJQx
Quh2aNCpq1qEBgVnT+RmtjDi/mnzod88PG6LYxN0lmLxswRjTwY+VwFohoPa4injWKWDdIbAX8Gy
lJBMR9LLQTTVEGfTW09NbiqJVWsaamTE+kfJ8R1jVJgu6VmB+OxNpxPy3UcPr5Fq2enMrVA5CIDD
9f6qeqnGFw22oF6YUbEA/DsQxx/PJjW4FeBgMtFn3oEC6VG3hY2E3KFwQiWOXnUZ4/8TeldQsJaj
noLZNqawZsfT9T18KzWE9cIyL6XG15aQfxnk1nCFqaS9dFGKzMMbQdhx8FrkNW+IvBlTl/pjbYJx
D6HjIEeLSY0KFLkU8GpSnTWALDCWF85cGaSYnauzfmoZtqQhw5acTaseMgXhH0w+okNOtTScak0x
jA4ZVhTu7oybPYCQoCzr9Fqk8St6z+n5bA7Li76Xa3KOp3q0AmgOkstbRnA/abinosDA+mxwLStY
GAIQDbzcRGGDgsZMrsPTr6Dpm1pM2pKdzZzFT/1mj4adqW7PmafOBNVFTGLkGa4yb+AwtU4yL3Tg
SflLOkrV50wo3hJKHu3yL8/7ke5C4OkpgvU5wWsDFRhryyTYSnCRdgaEoiIRJ9SMNeTUxWzkZbBY
rzHIvXJHDZzOB2AxmEAF2kJLHGFITiuqOsUdJorB4eiVM53QymcVeZbmGsLo80jh9LwSXW9aovdz
EI0sqKXuUsk0GxOxJ7E2gsNmgQ1tBXfI+kM6T5CAgWTKueeJEHaNhtIc6FwsaqNpPbld45jQu/k9
+/St7+GKefp+//y5f9pXTlB5e6gINvxRvO3REcwtlgkLXDDlO8y46KSNnqFfMb/iaPtPjAZ3RcS7
pYQVoKgbVa/CNCiF4MP1JD762x5OqV9PVbFUCZ6jGKkHqzFL5EQyLiEBr+20h2NISJJ9iOfCousO
a3FY3xBHzy2Jd9+/rh+OL6vAuYHkWJRIRw2ahFayyx7J7DEuzkiAdd6zbBIgIBOuWnLVIGfe7LRJ
PZEGs1e/MqtTHaenL79uv9+vvu5PkE3dssFzBUvGsNhhwhdowRK0YAn6fUiEAT7iKYpZ8tCyt5t6
3HVDmNUcIK++VUtcTOjG8DLRXpUYPgAanktY3NJ3SgNmU1nQKNPV5uX3L0+fL9ZwmbeqJ7PSrcmc
Asvf5ZlqZOACV0EApk9IsMoBUHgPP4KAa8ZkhTD0jVSjcfCZyJuGyGt63GRY3nfURo2WQ2ocZtuK
7DppMkLlaJDJXnY0gyoiUoIros2UO+mtlmLNWlKIhZlkg6WG/vUI/9uMYaHZcCYt7dBmgmsBU0/h
R1TRMA2gU5vr9lc10NnwiEmb2XRkYzrb3SQOfrXej1Gph3AIy1jKnqsOgCaoyRTWMAhNumSoC4X/
PJBFIPzYTyXAuuGugQ9XDa/HT9+e91/3/17N6fCdZRKNMJ1mhqCm4TFjSsJ5SmOB75zYa/H7dIzz
Otu01Ww2jTNizdS4rX6cmXI0iZIqwTsikKVcoGs9U9hkgNZgeRjJzJuZclpvv2/Iu+HkmBQ1rUI3
L5PnQHY4QxGzA9rjIrrOBgp3mfCAHA0sDUX/vtIQZ4vnNWa94Q0FeyP7mUY5SB4e7nf7Ty8DJc1t
cu+RyOC/S3WoIX2IDod7BHibiCQAbTCQQFBQdZMxXXSwHWy0IuerSgIcRzhTTOXwtJ5PwxbXb3at
iO73MY93UqG8st5nrDyqMZIuYcSZiRmWX7LcW6+JzldXkoj5QgmJmGuRdw2Rt4vEZ/hnxdR8ZHQr
dljtAIXjGR7QwGAsJgSr0LGE4TaMwBqUb1H9ZRj7jHZcnlUz6hsVbfqdnFfkfN8/7h4ev6Lz2t2v
vnwHVXJ6lhENyC1yBqgJA81chFXEI6Z3wNXLvcPik1dp+sthzsxk2fCmnsFyr+yItst8Rex5LJ04
nVPI0RqDhW5jRJoRUCU9ATjIjWEW0LUMnL7Gslp1fjZxsWo1ncauFRWw42zE1PvNC0ZI37rRcSPp
LfxX0KOx1oMWBAIL2CRRuM4E+JETzCXKyGTQ9W036+2mHnQJpHdGzIMRj4jy67eHJ1Qg5LAD+MAL
jRm18EKDw7Q4LKRnVdadzCpLlmOQXr3FDqhluIx8hzbVTI20jZkewkgmhlhM5xgwAG4FXhyCpc4T
406wILEeLeid3Gg4nVJinQhGOwHQWl7HrD4d4RzN1KlFNQdLG9+WBWRXO4y+fVk94zYarXLiqOcx
6yzBErZKI2tp4LChkc1bBe4MLCPvqLyYwlj1XMm2po33u+b8eHl/+ffX1a08ubKKq4NwUDp9l51E
aZxEFx3tSNSKcDQfh5mhcNpJPToXjdG3c6KYCVk1vJOBTB5/7woZKtEsOZ66zGIEtI/kJB5UCMu5
DZoYTSR9pWLaK5TVkwa19NvGu9uQufTHGOf9/XM/Vn47Zr0reWRuo97zIniMGnOHNUA8LgSox0ob
qjWXWl8V6PzuOM7lOOex2U0tfnNOI1r+srr/tJ9kChdNPgSRkcZNBkkPlrGA1CGJO0lzRMrf2YKY
9DIbfqlL7rZybnL958dyo2tk9UVIBKjn4LZKPHq4IjAEGRkdtYFrgpEuW7ghgnNwvV+OdSs9nzml
Ps6uaxCsca9tN2bXrw8mm8d+UyW0cy5PFIKByBw1AHm8EYR0GEyRQeET1AjjeKBnfFazXmuRGlmx
u+1uvibfbaYFNbCSNxIEDAW9Q0wp+qS6LNHo6jGgm0XRMe4xiioaK66CQtMxzmysTbuaBghsW7PY
tcudoOX+4RGt1/JAlln+KAwe1GfNRJdBjT6EcBK0nRASlMQ6W0L+hZInw0AXy50MTarJNLWfnRwT
lcPn/X3/1H98+K2/3//7lFVIMcpLW2+Cwro0BJkPAixoy0LsBIivqU3KxJk3rt3dTKJtS6LdLKd+
U6GWo1GEsHJild0Wk9cx204ZgryeSHcQDOBQqhToZTmTfDmaYTnARE5YAnQRlwQfsnnseXhcPX3+
0GModP94NxZXOcQwa4reLSINeuU03BKY+oaeDW/hBxFUZ+W5otcVPW6NdQaxNFpWs6M9Xc6uFHFe
5O+/7Es6yYG9drCkYTUylTHTCvMPg+6MBQAjs9RCZ9DpmLsWdP387jzm+vldJTNfN2QWyjYsLZhl
O9Xgc6DJYZEXDRoZ7EXAtk5x0SHpgBWRABDTfyXX93J+byW10Lwhtd4spMY4xoEy5WBrK6hceKM0
B8m5QktFBu0R4BUmLWsXZBTZ+CsB7rH/S3GUM+IUFHS7lF6S0/mBEU8HN8wReFB9vGaSYoajt9RL
NA5RinVrsAJnYj5TUK8Nn2lri/5u6oFb0hwKHWE2zLfV41PfJC4EYGGpI3gGI229EXBNc4IlsLkM
IkXQgP4uTrW5lNUUQWNcTtGccN7T71/2zz0fnaZUFYiHRcmlTRq58TAgF0OApA6dUtZqZrEi1Yxe
ouroph6Nt0RYXONoDg+rb88v6LEcQmeHwFkXUsiwozqM5u64w8rcWegumexiFgCI9Nsw8U8kuFDi
9tCinqNQyzkW4rFl9fFJlNLSw67QxJFhrh5NHbCiYIk79GwKDngkMwxYep2n62Ks0rTFTS1vY61s
13OLjdtuH/unJ//w8NuYMDzNgjZ1vrB3CeOvIlynAfQWuOth+0rRYeyqwizbmPJfyRd+LRhm2a6e
5KZxD297NdMXfusf7/tJvQphStgjhnYO1XKFAfGx2hMmFmBhJO/hCtaSAogNBI7Ti9rCtPtavCXr
mCU9GT2nJYmidkQp5BA2KXQ6aKz0J5G11nm4jLwD2KhA632rGJ3T6De1fAtPlKXUzFlTftlv+4fL
qz/owBRFkgklMWER8C+DU4gqF2A/aNpMmZ9MZTpEez7TFje1vOvGJOy8TvTBfQ+w5eHT/b5ehsUq
VVSb8hvhZJLOwrfRZYEMSSxKDElKmKOtQCMEsCnTm3DAFak+tIRa+uwnzeo3YFnrDYx3xVfkyPv1
ef+1f3peff02ITa7JbdioFAGvOUoZXBWO4m0DBl5Bj38SJTJ4OHD60xUP7z/ORx8+pOpnBNiNo3l
fUMFm5vZPqz+N0C/j6sD/WwpT4AcHmbw91NhQcuOXUQfKVfwpRkn0R1gHabbA65tHMTTiO3/mo9Q
jqb+/hnLNG9+ujs9v6klFQ3xN3OHKnJg+sf9tgTGyMI9UviGI2jT1GsMrEeO0BxjZ6NUnbCG0UAj
lewqwvFT/+f20fF5Jb1ZBsHgh32jKOGpjN7Jc5mJxNo6nfVYS9o7hZVoQc0WjGTGgo06XluY8GIB
vUmDmfi7pfi2n3tf//my3/z2I1yAP7/L081fqAmtutWlChYWxYZjOXJTyiqQzgI067ACFiitgNP0
GxmlR1nOWaTHBjf1tNatuY5Xzcv95lT5qhS69DRZ0LuC1nIg2fJwA3WKJ4nUUCafCR0YO6qH3zUu
Dbubl3D5+Pjy9Jz+WH15KXe5+9QjU+GhJkehhGLcCitSlxNS0FqM884AIROTWBCFMpOvWvCtgc4s
nkbLamor0lhFK75tIMvjYVEsmPfIeYqqRiGsxt94JyZKKTKIRo0RG5qbzmGd5pAB7vgoUjD+Wqw5
H+087py3rOa3Vo0jaq1Hm0v4kO9eAA1UtZGJNl4E5IZzuB+IApWJedeRwBzxzhsX+Ay8Vd1UEvSi
sXZ7MTIp/g57Z3X/PKmaZkjh+RVU2Yz5FhgO6hhcx9ylLiH3hjQqgibfXMLz/mph1sszj3HV7zZ1
Ya5D9Z5BPzZDTqDMXlCGOUG8EK7zzmkssMmtJjkYEIq8GYy8UN3nj3lpH5zAchEzLXTx9NSL2P0c
EDoeAwAOf+ElatD7HEr6GkHVlHU2AHwjzBh4+ToAJLh27cIg55crPLyp5TQt4c1xffzWf//6abRO
MrSqGVAvQwJgIvHO5AHNDDzmLlkTtKJe5USaa2Pa10wI2xDiEFaB6/uH0W/xdOK507d42AoNiwE5
VyXDzAWClVcJnL2RyESYcElx+ncsjLqQ5ELger7LDA34cNOKMR9t6T/dnUz3mpkhb2f4o8QsUgsg
wHSATDGNzuQOtC/VKcMB3eSkgzVvl0F3kuUMl/tdw8APM1zW77LMLEi2fi/X+W7/Bd7gsZYQOdYS
KptFBmFYYh2oQCVAE1nVCSgMoIlGYZKWhr+dFzsPglxyYh+aVJM1jYOXGXXCCLBYnsYSBHjuJwHX
uiccFGlfSGhQbeCqC4JK+PoSh7utPvenfdSD26WVhVm9KUfSy/3D41fz6/rTqQLCsVKm51S6ZEEx
KAVJo0VrFuVdCozCayZGUvUGlTLLNsoYPAIq/kKcm1robWMmq9EK8ee3UffSqrjZTEnAipQzkzoi
keY0OtcZCwuGa6kZyzZS07Y6jN3VQixjXi2DvT1buD+uQIH7fGmbEml5dnB06ohxCRa0L28AfZAQ
qMFMIebfkGu3lufMl1K1mc6arzdL5YWv+1F1+PPpy/OE6nigRjWJoLk5dQCfMGEiwSKWWcAXwZzQ
jiot5iVfJ93U4y+JGq0gSjSUw7NFZSTguIyc5xYBRkHZhhvWMVgfUctshHSvvvDXDWnTNje1uLI1
h3nMzmC8QHwqCj7VhQVBpYjlByQy1PEErxM0Ho4sCJwmBguGx//YIjI8m4mqGqLCr/6UioDmzIlb
sKgD2fAsGI0dpWjIEJgDZ2HDUZ+8JJo4TmYW8EVPtRxmqSQKqtnJsMdmdr0gCCYcmI4JuApA8Udr
PEfCS2jAg83yFQbRv2LXYw2RacPVJIo9SDfZI/+A179d8EUK3DI+WuRah7XqFOYVg97PnIYdhd4o
eZVFqPR+RnvFR7XoDRsQfJvrlipSZ30MkZWY9TFEEFCnPOZnITkqFmWHvwzoHpj3wTwos6DIpqvh
1+u5H4tmN/UMlphZiPXEQrdZTSoAoSkCT6+UVSAAFUG1xdABAeqFcaDaKuskKLrBajdL/ag6qkSQ
bHlzwebYLWngvvS/uNo6csuH3Cb8A69lzITkMoGGoxy8Wqs6a+HaCNGRZBJz5rqVcRjrQtbHL66a
g6LLi0+YdQufx4EHjhXLjhjy4x2D9wZaTaco6uaaYbQ/qKZGpEQCptdcQfEdz9K6HZ9WIlu+1K3h
w+0iiftAInbMhMlVdesJEZrKhukINxrJcBhzD4qRhzfeMQnqnEwpuFfIqRZDncnnrltVk1otAyLh
w7U4nokf3+V51g0al50LvnOZYX0nB0odB6WDUJEBEjHFpH+jQ/E0ei30unH3rbbzAOB/vHx53j8/
vIAWMo+swLwRcSw/dMjzYzI7htU2MHoDD3vWOZ8l1izASm4uKncVWfCFYSsf4LxZNcX1qvG9rE+Z
RedryaacotUMT0v0d5BA4IsCdVBrSzIjXlgxIw0/Vz0WB2ws+XU/j5j54e6uDnGAQQjnmBfqkZcE
DrfOIfkyUieoZJ2lr3DmQI9nSvHe3dUS9qIloTgex1i599P358fVhBqOHGMkiYMjJGDAi8BIwxwl
nH5IYG0c4iOmFi72RXczYRrrcr0bayb8uXo8qbWHsldwqOisVMcwfJtjXVITDe00ySJgtDIPs4Cs
SSf14LvGm9gw0zhRiwMOtYSh9MBwpFLnmMDg7eBLnrZCXr8I6jZgXyEFU8K+jiBKz+fP1PL4phaw
sc5Ltk+1wj58DEPsUyHGwGgUBD+3hafNOaK45QAHQkSGuQj7lsMrFPAtZiIECdd5t6djnDmbJi3q
WbRO0d1GKDns1of1/2xOcfyqGEKjlBF0HN3R7BPyKMLio0R2QkTtclImsFkI/7SXm3ok2Rp+O8vO
P+zzBV8DNyVqmGOAIKjqVkY4LpTkyMANsMbCVdQJTFaUWUXyf8VdWY/cNhJ+n/+iAe/jkafXgJ0M
NuvsvvZpNzzuGcwRbP79VlF9iBLV3UgM7MvEaQlUUSLrYtX3UXEDE/U8lgMItm4s1O2WTlH9wWt4
cBVdxoFI8gAXrj1TXoNf6wp1aUxIfeci/LE+kBwRKul27+XhovvyUPsv2y1rTeLM2fK826/fzye0
1PauOLFaS6TDIdmhyhECQbeQtyXmyIJkfTp2WNVTjTQSYppilQT5w/SYqnH12Odieh2ti5YGxeNN
5qrUr4KqzlggAvvIJpGCMKDDdfrLOZn+2l0l2RRVqPx4fGcVUeOXAXjDkVTSRRJdMK6zIFyfkQV9
jQnJFBR4JT66kb6eGXIklmqJZY5ihd8///bw+P51tz/a8xFftyQc/dEu4jkGaCLZmUQiuPZBaqmM
8Ir8nH7JGUmq2Ug9zW1IuVo0ykAfn0599sKoe6oLfyeV94XEW3GuQg6glaKOCBStwDtVvJMqRpV8
JN7Eq/bg09O1SOt4Rz2J1bI1iZNCCx/+868/nwetUVaRcuKbYQN5iyUeHGwqR0AyTxMeYXtwkZSW
ntqrQn94WTx/261eb3BQR4JUk1CNDI1Uy1OCcfX+/HpGIxO8b2G1VBrhBOlYAQznEC06RXkXEmPM
gD+gxwpiOE4twLLxFtVq7CZ/3L89PrxstpsX5HU4s4va4p+ADnUcrIACtx+2nKedVTJ2mG8DVUU5
TTe1kI4eMlPbV99UTcY0FK60cj1LNI5f8t+f3C8DmnECZqNA0niO+EO80zkgVxXHGtIAHgNn2Qka
Y4jp6irBseeXNV69q0XdtOQ/sbs9lnRpI+NsuMBsnewkeGIdov53zsHSSCFz6g2hoH+aFnk4Yi1K
Iw+Gfd3jY/8QqoJrcAM8ixzz9hp9etAMGjwXBjvOJAqiuJsg6WDYmTP9UB0gKmRyGoupODkdIO5W
T/s/BhuolAwR6YiTYCEYouooZTqDRCkQqQawDuAuJDvuixyMUj2f803j+WLcko2oNE+rp0f/vt1i
V2TpGClwQ94lmWTAFizMHnqkRNPw+VICtZog7lQp3QqRc37CPDbO+Z56HlNUQvyRj7zDJZiD76dD
UFUI/Bg4o6hNs0KibunxVBw8VqOMpIEJ+O4XGwWHQ45EEi2Rxr0Kz9+e9pv9+4/l8biup5guNGSg
FJXLXnYM7BQ4qvDNPZEG6xQF45F5Rm+qyXjAZ/zSP2Pm1Q7uqGexmubhlFjZMxTM/u0BC8PPPTjS
FDMFTgKE6Y53gvkSssCCtfAHvOuYnNNchPx/xCkYCl3N2GwbW8KScYv8pMaxh8BC0Exd/E9W3oLy
ELlB/NdFgRXusKQ6ozPiYNGUFc2wmW/jlmk97sbqyxE+FsympXXsaoz2v0IIqu+7t/uCRVXaB4WB
ieEJUf8PTMUw2DNcQwyNqUpYowW73WCvgiRR5GTiFay2w+AzduZwtZZ/ipSHP/Jhe0f+LQwxLym1
JUfNuEFfDzaSSbnjyQuwNC4j3FJMYGcgvvpJDK0TIUZTmKbY9UqwBgPk0VVD7VCKYAucee8LKmok
cdg/xhHOhsdSx+8hTgS/nGp9E/bvZV9weMddLS1vTOGAOXoRzqPoOdEXJZTGemNUIuCreDRm3BW0
cgcq2djsSQpepctpmRZkyAzm1eTGek5L0ZjT8gQM/G2z+7FePHaL1/0pySUkL8k29LqsAeUmCDZ6
I3EEogOANWadgYgOT/hUiCPbPB2xEmhDGgJtpGyyWpQSJfwXZioPDAX4X9ymTsNm5L4DbeSxmQ88
LGtCF4xlSkQCW/V6iUsP+DlfHYWXa+mlakivx71vJ3z3gSfGQ9AU36HFww+aKCxsLEkIoEhpTmDb
9Y2c2/PQ7lNgd5Ru0RJ5fQRchE90ZitHWrfCjEYJ9yx7LMIFLW+CB1vHXJeo8jF4Qhxp85WfR6uE
2PLpeytMYPV7mxwy4Lnigc5SqIIDasHVRy4meGEJidQ5YumqDvSyVJwiFNbfONw9XByKbsSUkQJ+
FBMUzQOv0nEPIZz/AbnBKeO5DZ3XBsNbiAoMcpZLlUpqHVSCuYilORy5Fq2hsODHUx497hZf90+v
b7vV583rK0ztNTzusDz3lFQvrY3g+HoFdoNRROiTEr51QG9cOvDmwVPzdsR2dXnckYiLhojy9PZW
T89/bnePA2RytAJOGMWRVSBjFMsF/PEeNKkISmbwt5jhbKYvfjhcLUnDxhqx0ZOG55fN2+PJpTZF
FaKhDZZEB6uuE8QwxAQLEE8bcGWdcsYrrRUz14gzTwPXkm2mGUEj5bg19R+9Yq0PbWTkSmLi3HiJ
CWksfjNKdzkIUJDg9/t4U7hyGHyOXK1cvKvlW7eEXl8oWmyVQCXkIg6RQWSMSD5MMAi3WITFB6tO
KC+1/7uVisM76ik0sm5GmvWIduLTYv91CLGkD+WHfT6Wmsgo4no7njAqwFYXLVxHIMyKQgoi9M8H
Gh2KNFfIdb6jnrRtfbfViRfvnx8fphk6FWxSgYVOsYz4Kklh9t6ACoMgQFLiqXY/M0M3EKIWfoqN
hT+OzS+W7R3e5efFHvTTj9L8cDbG0aqonYod+MjgPOBZiZfRglHhjvtMKPXyCs7KaPQ5nJXRbfVs
1g31rZi80ODbx2T9CuzXn80cVl80HbMR4TRZ7pAgpnPe+kydBOvIrhvEwfDXO3jH4Rfo6oaJNJPM
wLABdmDh+5ZlqrTtXU4msoEZ8S5wZC91GFwiCHmgCs+3oo/0Sgl36znV4dD5hrta5GkMY9ZMjxTC
h83TkH2qT1Mixld/4MGiMRrTbV7ziOQUyFYawVpk5aKl2Sp/E3bK4DEzx+rnG6pprBtOqjk2VRcu
jN6hoA1nBfwrIlkCP9pFhPPAii2OpD6UOq9IoNnQMbNGNVotyZQADn5cro7KBqlVdn9szvlAzu9Z
zyxcWqCDBgVDUyc1liVEK0HLhtBRLY3l0kFMOPJMRgNWwmwa3TdmMylAOSejP/5aUgRgaA/kQrBC
Zf+anCS2nBxhhXmHjYOdwfJdzpQD346A3b2y636dzRCUS7Xk60VL8u2UieK7e1nu3l5OfIZ95qY/
ZJGWMOc6yQsDoIR3qQntckxReik5uQKIPRp9loZieFM9i03DAduKCa7Tse1utkMQ/AXOsYRMJo+d
XRChgJJIHaxQywTJ2P1zpeD/8IgrjX9D8RdETw9mFsScIFlXr9t1C3xDskyiV66j2PkH7nVCWuaI
ILNcRB7AiRz1bw1GqiQQYmr9FgNf+vt/B5HcuPMeAnmaHQQgChvDOUOyeg4bKqlkqFQ6GdHuQjyP
WgsjeUMYK86MQ1/GR65gcqXFxZd4Kb6Gz8aQ3J0ZSiCutDb4nwVR+6UlsZ0e7S2kGlML4hIu1u51
XANYcM0FfFlRQJkw5Yu6SVqkc6ZYE2Dgs1qPp4hccEluwhQ8PW5+R/XX72q5V43JrPmsMivnW7u8
a5ysWdClFgncPcdOyewKpRs4R87wADPzIdwM3oqPuHDABleraZiGZlssTM8G8eFT2n/d7TenFZTB
HCWeMX1isIgxghvKM7z4mGHxJNDFTP7lFXR2QI/PPbafH/+/kryBIg4/LtejcLIqYoNNh01LJe6x
nNJAeAeONT0gIUGw2zkFy1TlnJmyl6LJmWo2kGAa0yyWatybslysvr8/VzzyEM+IQ1xTDuU4EfBG
IZqxFGyvBv1qFUSXPhsZuPTCkJtaEP3oScNX3l+r5F/axmtdmVO5/wH0jtzbe3NStvZIrRaVIUrD
+o0UWYopVkZr+COpT7AvlQ1mBHQ0He+ufjJviaNaZU/9q/i43z6Vavh72SMNl+SBspxBgB46kvCI
E5ZuhxyxHZYbCM1h9912Ij960IXap/NNd/8DUEsDBBQAAgAIABVDlUr/+QQWA0YAABA8AQA4ABwA
Y29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LTY2NDcwLXNhbXBsZS50eHRV
VAkAAzkk+lg5JPpYdXgLAAEE9QEAAAQUAAAA7F3rc6O4lv+ev4Kt2ppKphsHCQlJrt6e4mFmcjeZ
yW1nHlVTXS4McsJtDB5spzv3r98jwDZgnMd0Mjt9G39wCIjz0nn8jkQZOw2Su2W81LKZtgzmiyRO
r7Uwmw+CxSKRg1/l9H/jlfrjZulKpquBJ29lki3mcKwdL+JIsyzCjBMNTud3GjK0eZwk8VKGWRot
jy7zLJTL5VDbfB5L+veC7Pujy2B1s7sbPqe/ZMl6LpenXrAKTke/jk9LQtUfZx0n0ek7mchgKatz
g1kezOXHLP9w+ovMl3GWLk/t098u3bHMb2OQ7/Q+qT4twtPqeHl6EYQ/jU8fqcTReRZEmh1F+cYE
xidkhIJHhmEcnUUwJJ7FMh8+aJqjSu6dJSyDvNKO4XuABki8Ojlys0hqV3cLuRnzG7d0i4ABc2XP
3UR899132u/o/dERGFCeXsXz7R3YQEw3iI6RZvAhNofEGgjL0nSDgbznwToNb7TdDa3hxpCKgcmN
avhPY60pNJhOg5O/gY8MEBpY2jGi3yOC0cnRO7nI8lVtPDuyN355lWWJonC6Xuan0zg9LbxUHunw
OTpygyTRrvNgcTM8UkwEF9rVTS6DaIKRoATBOS9eLoJVePPPtVzLCRrWDD0P4lRfFeM17Xgp8zhI
TgpCrwpSy1UAcmnHcaol8TS6S6IBfMXTE7gOpH83PrHZbCaYZBENovfVnaUYinZ56yPdRRGlJinI
Fm4imYHfw0RuHfUCSA7m8yEifMuqZAZOOtkxBAnhxE5UIshOWCx4OJ3K9zUKJY2JIpJN/3UfJSZo
g5JEgjQplbR+HNugcBwGK5jQiy05OAn6F9ZDzNpS4sEsRKbF25RKWvrvDWpavk7ft8lZHNepzVjE
jX1q3fQmqfy0Gt3CDFwoN4EEWP2z/DBcQ4gmKlCGcXoBETaM5B/KjYZ7EhC6szGfGoaJsdUlQWVr
73L844btnm0MizVpRbMDtCpqTpKFH35Wsv7Y1uU8Xq7OCtl/jVc3fpysZF4y/OFMxdY0+1RM7M6d
eciJQYPZIY4lz3cylPGt3PJzs/k8SzsoExM3STPrHtIV8XXqrnOVuAra51m2KHXooI9N2qQvTHof
/ZKD6wMPRRf+jBcyhEQclsTdLJd+tk6jwjsKDmLnqsIMmSVNfj+HalomdS6HqCOTNskzKsOHyO8x
2GaI8OYy2+SsDlUQbvDiCJOHeW0SWngzmS+vt5lhebdcyfnkg8xTmexyBK2lCCOKuDk1H8OiyWSy
gqT+ECdAGw1OM4bfd5YBvlcGcL0MqNxeXdXnQRpcFyGyXw4mm1GT+XU+2daNqjpU12qGqDk+h1mO
wlaJaNKL09vsg7yHHkZWgyBDVsPTFckPUgXM5I9s+UTjzeQs6DQeFXVT/TguIrK8XjNNaYxJs2BW
nBflxRprs5assUFNilqGWTyNnsUbBJlAQdswW5LTLLp7hISoRVFEHRWzYY29NE5ELYsjKiJBu2rl
86eiF0g+L51uXijBvFhKsfDX7vy3WRx9Cwg5Gg4ngKrhq+KxyLNPd292F1ZrSBxv1HDt+NuT4+kc
MHsWDof28i4NrwBlvdme+kEGi9daObRxcjiEO0/efnvyWvus+99qb48LwU9KK/wjuA3GYR4vVsp5
lfKinB6EUCAtIiMAepPJDFof5dNBMplCXzkkiHYE8udIBmYqrDdKV/ndZRanq8801CH9sKjph02l
35b+4GaIkLEXShzq53PoVuWO44OyoSqyS+FMa/pedcVpFCvbT24DqMfTREKrSfZk/C+QkpUy7Dxv
/95JkN4Nhx+DeFVz0HUaA6ifKAy9U+pivZKflLs8atw3h3UyeF0nyK6dOkFK6dBpWGh1n0KlMgeE
3J2dN6SEOA9fvRqgWofI6hFPscU7MLqSRysk2uYTJdBESfBgUmFWg4XBGeaHWFRMJgvlazeT8LaL
wwOZW0ZTq4s++js6Ca6Er7IOVW3/eAVlNCzuhLgUZocuGmiz5VEbPxwq9uMk++hCtron3gy0Y8vI
jALbct6GhLJOhorlMryR0eQulkn0cC1plhJuCvb+AOGC9EeFhhd5/MTZFgbtmG1E0F+TuASrx7iJ
2kkV0w580pCu5Aq+GJZ97zgMAFle3zt5eMeUTEF/TVNUBuFiAWmcdyKiDp7LDacHfLjmX2+/eV0P
oJs8S7PhMFrnBfB7k2Tptaa+6qOKa29Q8hoEN4wEguagZqZVc0sSSVFzSxMdQHpKsxrmuImXFR4B
DRMpF5NZlh9/ntDlR4muMvhydTidMlr3egFTZRxugZXkaZBmhZhtv6+tvSFR6yeikFuRce9CiqI7
mSzlXGWyyTK+Bvjy1KYQGd1NoUWaTeHP787dLE1lgZLUsrfMv/rmELrDymKlpJNJSXmvA6tR4xEW
UAC62sRXv7fMfFza+USb5HKZrfNQqhMqUW1WJ13/R7lS+x5Fia/1YjwikgVW1N06vsTa2Iush738
GtiLrXu9WGPKrKFW7C/kcqhBXs0StaX3tQfjr1c+ILrV7KrdZN3fDDKyLUSRZUUBxFVJAUx6WUqy
LOstIx0hW3BdPY0lYrzG04gUFNy1n8CoAwkWvKo5H27n/Koqf3EK8DZI4n/LFo6pbiliglZtryEF
kbRoe1uEIKzU3hPFB6L7MbEtWD3yplwgdDiyX2qJ/sWW5v+aJfkXXYp/sbTEeR0wuP4YsKVcDQDp
3wYr2WOFjUUuttsPnc7CrIazTCmhQRdYULgvAZjwVLxnsA68Bx/e2DYPQa5gHcXZwP6nm8TqAYWv
fAJd+3KTbotMf7w9scn0trJXbduSGzU0Fk1pZMquifxepjKPwyqlNHnUC0mbPKpt+Rf05RT3aO8/
C+1hbCLRjsu5jOJgUCzRrBMZzeJExtnXHp6zeAti4porXihbFY+P1HdWJcWU485o9OPr8cayPlj2
7Kf61l+DJKJmnSSa4qnsDkBFVM6DxQ3c/iu06u9kAt57KzuJNuUkwiSH4k+R+il1N6ubXdRIk9j0
0IMTjWl57iXfenA/z4JvPUaISbg51M7SSH6SkXpmUG3gaCp59EsUX1FXdOY55Zw3DqPKH2oGaAhS
65CqbTMjmgFMImpJckun0JUa7FAgPk6Gw83ZdpleMZ+Vy/Qt5geWe7fmdvNsuSy1LJ5/edM+q1aq
35abHn6WX8jlMtgtPtfNQLeiSEPwGYiyTTHFSrd5T4BPAZ9U8mzucdR2asG2eHytlOscoPDb4+3h
N6/Lm9Sjp+ohNu8uDeZx6Kr1afXEa3M1tm44amykDWiEIrVEfhnkH9RjcdkKxOXo3pJdcN3dMBwu
4HgrepAkd2fzRVJ4TCnDt5Wk4zBbyOg8mE+j4E2h9fHJZtG4a0i5BdEe8jh9O3aTrFqEhghh3NS7
8BjBHugxSxEK59iqDHELMkWqtJTTU2wHgLxRtp4m8qBEllmL3pDODmYMItCD/ekLV6IXr0iEWXRY
mtder7K52lbpn6f6OupR/XGZzfjN8ZsulxgOiykro82eLqF5CFcqKcp8kwaGw/+eGPVdq2LDLlhl
+WdRfLvZGVX7oJCrckXx+OTwhiQmu03swMCmoXZBm7yLWcCIHqqUVb4FBWTyg0yA6aV6/H+4kVzt
ZRwWgOzmJDRIaJRZr0WsdARB7q+XzfvKNY7hMF+nqk6WpnsnZ5erysTjmyCXRQ3dpfLD+5tk569T
1ZPeIyfC95TTFmtf+RNMeiXBa+0fY3ezyQuSO/I6Ti9v1AMBxYXvXZXW1+qWYsIReluMO2xfy9im
ccolptPWjrN5bzEtmI6TbPVLvIyBKSCfHLoxP8/mpQ7H+yPKC54ap57+ruriRZZmqywFp4JidFBa
vnvwRjAcUN6CKkI8UAD/ErTS9RDUNoyQIQh9Cmj56oHL3xq8/MUA5qVBjNWDmB7E9CCmBzE9iOlB
TA9iehDzJYIY1oOYHsT0IKYHMT2I6UFMD2J6EPMlghjeg5gexPQgpgcxPYjpQUwPYnoQ8yWCGNGD
mB7E9CCmBzE9iOlBTA9iehDzBYIYZvQgpgcxPYjpQUwPYnoQ04OYHsR8iSAG9SCmBzE9iOlBTA9i
ehDTg5gexHwRIIbQHYjhePszdep8+fObH/9ovbHj0YCF1AEL0Nua6PEkMW8SZZQ1TFSQnagK8keh
cy5X6zx96s93UYm7rSG+amtwJurWsDalQJ1/Tmsoei9gjYLs81kDCnzdGCXWKE4/ly0qcs9qih3V
57HE0VW2ChItXc+nAC3hflA+/KAd5zJc50v180thtk5XMtLm62QVLxKo7x9vZKq9/R96MtyKhGh1
8FwdRzfRz+2MGlSfp3srSBobQZ+WxdtJPAi7aD5nISqySvX3JVuqPT5/QcNY5Ig6z/9sbLWn7v8X
klIfVv39m/YPdRH/jq3jA/K9bH+9x/xv163WJfybN3x1Uft1pN06kvpsCu/z/NRqneJn/8jqAWKf
/eOqdbqf/ZOqXcQe9TOq7V9RVa+YPRorhaZ32ipbFG+9VrjvtXr5tYqFJAkWSwB9xxXW0+pg70ko
ZwMGWPWy3icKvwG8EHI1/k+Dvpv3OnNk1mg85pehdw369sbHvlmy49anvYVk9/qSoyMnToP8Tjub
B9dyuZ2I2mu0NV1rnpQw2fe+S7t4a/YruG/38mztjUeJbQkD6w7hI92kjqXbrm/pjisM16Q2N4X9
9ot693jDKoJ0mEoQZapXcH/1cvDxTTwvJ0E7NsAoPhEWtnxb9zj1dNNkBtjD9XTX4PbIH1GOEHu6
UfaYtUQN90WNKIQw25/Vzqk0EXU9wnydU8PVTQNRXfiWqwsPU9/nRNi29YxTWV6r6xBRvq9DxJiY
zab7OpzL6yC869TEF75DCRa67SBHOSXV7ZGDdeYQyzFdzog3+lOalDzv06cc0dBKyNmeVlKG4Wxm
trRSdaJTITISdIRMrvtYgELcZ7rA2NYN6jmeYVs+5n8iyhS7g7qoizU1kMGmsq0GeFgwm0lTewXe
+FFO81VYDwMXea7re56OfZ/o5ogbui18X4f2SzA2oi52nCdK3eJTFxAZkIfaAqIpC1ve00QmneZ2
HNdm2Hd13+QM4pc4uqNiApkuIjYj2BJP9Z8m126rN8fUdSvioq0bD02rM2dfyeUK4Egq88FZ+i8o
WTJyAHwkoCwaKCIIdGTYciknWCe+BZNDLayLESRuwxYupyNigDH/VIzsuDeZD6bFn3Zavv+mphEC
vm+ECBsqkJQHVl6raI3XiwWglbo3IoFGDsWeDoUJ0hv3wBsRhxhChml7Ix8z/0944yGedcFDHE33
BA/NKGrlZvvCu7g6d/Is/bf08vgWEDdMGMEDRNWkDcgAgx6cC5ONLFvnyDEgTTOhC8djOsKjkUd8
V9iOygXjAiGcnsfTHIDA6egTGL1ytD02B6Zmf2BDK2u/4sDJwCh8EkzgA7V30O9BC3H389lmKhCl
pRomsSAjjHTKTaybghDdZtTQfccRnom5i/3Rvhr+Jm5ADbBZHBaIegMJamFVH3g1rl14V73ya3l6
QMSGjizczylwMmrFXfVOD3X8g2f/YJ9fJuvrs1Q7xgyyCob7ywNVmyC2oJa6umWDL5oedqFKmb7u
WwZ3jRERvkfvn76Ky+CD/LTaTVnJcXd5K8ShyW2Pa+jNDXNfbzg5k0x7FSYV8Fxqx999951KmKZl
2MxWtXbk62QEgMfmBL48DinUEGxkkLfa7r46r8joyG0RMo1W3i5tvE7j1XLgZvNFliptVIQgswgP
ZIIklvBdinyhjwA3KLcCIWzMdO4LZgswvEfRvnl39E5VNBfvBBmEm5Nt022H1NWQBGzQVkMSGewH
+bsgkln6m4KW358fDnSX2KbBKdOZXVShkaULyh3dcIQvBEMjz+MPBXoHq8PB3jG4oaHsmCgp0WwT
8Jee/+7scmBvQl1YxoCpUCcYCv7I0y1mInAR8BMxwhhggeU6pucgy7s/1JXBv4fG7yYOl92lsxHV
TTmaKpi8QwUybU0SYIywNM8sTlZgsy1T7ZgOENwP36CZIMi2LEF1znzIxcKGKXIhAhyLGMTkzsj2
8L5ml+W7m2oK7loRG7q8u2VcV3P/Yl2lWdAxK7NwJloqBZVPRzJsxo9VQAL4VnHsc8QtF6vkBEnZ
hBopPPjCI+RDF+AhRr17o6cIC7dkcjB+aoNqmmDKo6CtCabRlBb+ZV+d1fxz7ALzbUkpQ6cAbr4J
zajQHd+C6LegvECvhfWRRZjrYtO1xHOGzCGRjkrp1fKJRTmuzc/2JGWBenU0DI8AnhRTUKZSzgmz
TMCermv4uokAq9iuS3QGvbRBXQBmSE3BepkrVz9VBGrsODExbbNTJ6etirVrpKFIbUEhHWGEsWfp
vm/D/FMKfb2PwKl9z/RNyyGG5zzGn3fUH2rjm7Iz3CF7QFuuXLyHpehikQWDob6UrmuYgBl0yyJU
NxlAWdsCJ3ZcNhqNzJFtO/5jRN8Q7xZ8c7Up9tTqEHs6a5k8DpNsHQ38OI0u7jxZ2n4HyB3hMoJ8
iD3fBnzq2AzSyAgC0BbIcAEreWT0GAXq9LuVqI9oKhIaHYqEvKWISsdbyOWPR7dVIcbYHCCjSI/b
Y9Vp+NRhNjZhKhAgHt+Gvlw4XPeoSXw0QoIJ+8H03wHx6hrV1K/kOTCwutpQW4Qd8ydC0VL77Kfx
Op8FxawZfIAHBewoj1Ts4BFFHgQLwSPIPZ7nQH9huTrhGAMqwhZ2yb1qbul3i7693JA94nJf9kgY
LdlH/tl5dh2nm2BX+MLkiBpIwER4DDKNy9QM2bYObug4JiQhYdqPcbgN7W6xN1frUlNm7icpyIio
CHRIa2p/BY3DIIHcu0nyyCq8CSqTPyIe0j1fATzDQbrDPU+HEGGAllzL+z/erq05jttYv/NX5DFV
KezB/fKIq6xEOpal2HVe9zK0WKZIFUkpdn796cbsLBcz2OVWwvKLRM1AQPdMo/v7uhtDYf4L3tA3
qpZCnMIdC6lbnde8o/NmqGkgGIy/i/j2+8pNCmsMyF4rGlS0hDngRkJ7SqwG5WngUivBbCj+KBos
pmkkcE4sJVhTNkeonQcED+AvfxXGwH8GTL2SCE8B5EQeAFpzYNEiygggW0Ri4JrVgsbk5J/3IuDG
VasW7+m6nu2LyoI+ffyAsG5yxEBcvIqcEggkEAR1CJjSNoS74AGwFhOlvWRfTHOfEHh/dyb1piO1
nidx0SF+eIBQVAuEx0EEfI0GowgE7EYQwY0nYGScKMkL/KB04uYS2dsV+hq0Y1o9tO3pMQch79d3
vz7cf2/CIE9WB+GBLMgIGoQgwStpTVgsiUZHs5Xyoji+n/tEHN/fbaW2647Um/UsUVvp3y/xh4RG
Y6vgCtTdszbpfQkMAJsAdwT+CagoWI8njiothQSEI+Olb6Cucvrh19uNBpthGcnUVqnZc8ffnLUb
ngYsuz9uaxbUVD1kdTrZaqYLZSAzIhHYzCQwC5GM66xTYj6mi5AIptDStMzptOdi2FUrfVel68lt
7ithd/dPN9d/PCeZ4HWM6CNJG1IWktBiMhEyeuJpKSQqY7NwzgIxOPKg43T/05+4FUzTjmB6Xka7
/zrc/XqL6Gi1N/L6A0YyDiw+KCArMYGf8QYiGeKHlIFlBV+8ifysA/0Rpn7zrv9Qx3szga+XAu/Y
PIf8DrbGt/WvA3bW4C+xPt6cykZmvQRkCkKCzw/IryIlxhlgXUAPqWeXWMZ8jb4O81FXreCmp42t
WaMaB7/A/sbf4jkZhawaAEwDjpgJkwk00CLjznREKq18BCfpKspemsN8vlaY644wAzVTZmTz+GVF
JzkERk+TmVTgCoi3mMVVRiLaD0QlVTxwFu64bgP70RxX7TJLX6v5PtLB4Hf+g4//OIJRfPRTgNBt
TpJoAOdEOGD5oQD7EFR6Grk1nInz4Xu7HW6x7WN4MWp/H7bIjbvDZhJeNVow2lGNLYF5leU9vKGH
P97eXd83JuuEBcgSSfZYhDLREC+EIpon51XKkTl9ickuFjmF0mfDZgqtewr1UMkMGYH5WnTQFkFh
Ssok4cGGOQD3XBS8umRBw5gsZ1pa+0rIqzNwps+mp888PX6LBOBxLI8cvxsXeFHFBZKTgFjJRCHB
ICHhQWsDblEHdcm7uT1NP+aj9lKcsMWjEa2e3HX0XKQNsQ2uekyJCSmxwuzE9COGopS4ZSwSnWMA
cAa7zebMiHahOK1MkP4iYLlfpq/D/uax+Iav5UJ8uLidfOU+1O3uHh93B/rB1UrTivQtZdZBpASR
0VchqQVOoogSACml1YaJdC6EHs07E2vXEWsn5+mGz9/uatfc+EAw64M8BP6se8EUDrSPUKryCNad
9YIobNBnQgkRLsIqs0VOgK52UKvMbklpjdiyHuF484svzwllh3VnrBGNP2CpUlKAWUD4XITHLIoB
n+Vgm4Rksw8q6OjExQwEFjvDQOBuo4bsMHMjZS8FFG6/DU/390+fj7d0VoCwnOcEKJSGYALyu6QB
JgDyBVDjhGEv5/oPM5/GvochrfS7TUf6YTvlFf4NT3iyb7biI0IMIgPLAE8qARCCjVtDXKEJhLeZ
yiSp8bENxYdpmsW3ZomvzNaa2aP73+GpfJrS7rIiQSu5V0JqwivnKRxr8bGQrKz2jGbPynkkWOfs
P6x6q5FzR5dpALh4PXNmiCDTzUOF5bjp4GHVzJ6TtVfIa+MT+IAYMVFMgeDohLkAlooMUXaj6gy7
HmY/DWEPQ1oNOrgALooJ8qCB/PJ+7NF+Bj5uhSUCoBPJ0BKIoQ6CJzwLkDw6Urh0JQaTvE7/Meoe
h9+M6aClFDMlOk55p+eZu6/gzY/C1eoD/nvsXGFgwmhDZkR0ymfrvQ4kZoqlT5NIoAmJD7iRUBi4
kfTqCZmDOP2Rh9ut6potVR8Unbbp719uQaXpzXE3ekVqAjUUeAe1WJzyBRCrBycTNQevaIqBMNDu
0+N5GgEG7ToCGHY9jAa0vd1tv34D4nZzd6APfGVqnlfDI8YeDKI8+GVBmSTOWEqS0JalSD214UUD
ipcY0FKKVolOtcQM1k1PcR9914+3B+bBxUqNTk+yYjNjhbAAyF8UBsbiAVJ6z5QxOUEQdedi+mHW
VqROBsVcs0Ul5O6344oquBaHOWmGngXMVMciNIY9LOEFC/xYGODrkvoiZBDCng8g64fN/cto8O2x
DA2Cv/ut0el6Wb+zVsg5z/9+gxOsyno7jLtTrEQthdS/x8hIOcRvIjlDuzGWeB4YKMYzXJJJucvq
O/sVTmi4v3vVSnvdUQE740Zz3908fl0/bT9PdqIoq+mT2oVgJEA/ZYhmHrBIAq/iFWihVYrRRpGK
411DaSdt5bGmI88iUh4xzJFB4kNl+P/2/8R/1fBpGVdJEF8YtrJxTSDqK1JKTAHeXkxG/xlUdrw3
09R2NN3NCZLPf/mroWgt8GdFtdJxIzkpQOUwAxeIl9gc5YGZs+BK8fL1SmY+nwCIudVltyw1WUzE
LZPTte28BihZYY7QGtOj+LKM4Sx4pQgCGyIkVwT4OYdtkExUCHZ8eFG1Ov9pcFhvN7Jruow4eHEB
a7f3a8RmFerw2qdGjbHY2pQ4Nq8UxUYsDlCWSc1FVIa9IC/MeUpWuDWTk3fkZHNn82a4Q3OtBxM/
ATyqT3tf2ROuuhsbAYsBcAd34zDvIfatKVIbYA8YK4O7xN10luor0xnYqsY6TkhbNQtXd8NTxTmT
K7KHkIXNmxDnBXE8RfBEWCB3RZIA5DRpLaWK7Gwm93jmVrROEdXq9Xom2pd6cupAIMyUYkYSnG3A
3QrkXkjAJDYwgTlFzgTjRht7TrDjeVu51ks6Y83GzQoSu+Hxt6f7r4+HVBHD0vu+KY5W0CLwkIYG
MBhpwKpEYkDhrSNUap0VxJ+gL7KGNC41uRYccCKpvxx41WqxRArWST098jfvPjzc/wozf1lvbm5v
np5T+7w+8+izyzwoYrLA5jgTCVi8JLJI6SIXELXk68D4E5JctYJ3AppTB9ve/Lsm/Q84DLN4gAUU
eD8Lr6Rk7EeWBKxbE2awSAGIXdRC13EG+HiWdn27LJLYtbie1v/+/ubxYLhKi8qEQtGMF4jnxYsA
ng3okA0Ar21iIQbOcozqT8oAH8nX6FXzVgu91DzkPLOjmtOwlIP/xuhTsxKMs5UYi3OOSmOKz+Az
BIAZcOHEIhcsqRTKQefk0sWJlbrMmdRKvd+osxFL5m2312LKw4V3/tMiUR9k5MwCplE5CCKiBqRu
VCLRS/AQsAe013/Sa3qW76rVYMlk4UnPc0bPJyAxwrpaClPYumWYd0l4SmhgmM8GGmJ1EYRJq4VW
XucX0h/PM/dEj0f3j+V2jHfkZojswbrevPs43O2Gh+Gh3N6vnw6Oh4HblPAaAbVgR4YUhTjJE9GJ
aRtKSeGFusk5x/PcTjJbfupAnF1u1em0dzi25bPNksZ6PUj16Shg1B51tQ8WFH4C30Ri8Fgaiow4
Bj8FZbBiwoxyr4g+l/KciCiLcY32G7lE2m6jhskFvgMSvX7wt78OIO5ik5UCzjinQgrV2AtF0QQl
cLXoTQglycDTn1UNWwraKupYR9H1ulN3fqyHifY1XDM25ukRHgqdwf/7eroJ3jFz4PeFLSTbaAI3
yJzCa9BstPZPkxin83yHIY2q2+0SDbsdO5ww2X57uAVeMbWb11M+PFOWZcBUau3/r+cXARyoWCwW
V6VybVQ9nuSqXajzoHdy3lj9cfhy/zT8cjP863k/7TtqK5cL3FoA4g7wCcb5BBAxyFAIU0pLCtRH
iYuS+ct1TvmQ+bhWK7nuaGXnRZefUiXb6BbAHWD2DXaIYJYSDsAG1QC4wgAtFMvBJSRGdWavnl38
6UT3y0+p1cmqnk7zLVGbd3GjPj7ejFBuqlwYDENRZc2CVIQ5ja0BlAPptgDoWWaCB+cA4p/VcDn/
mSbiZtyxNmvaqdat6aAXXdD4GSZAc7XMiH9V162YNQxgTYIQJcBTY0YPbI/SJKK1WTvxgg4w6ymx
4VYr6WB6ks53yCN+GQq0/HyDxa7aLwXvS9csZGbUKOBwBTwuHmsjQYREOCB4xSnWi14l2fdpL8EP
b08UTQ/3G/2YXPofuGim3qNvd/+6uTtUTIWq0bOAZwU+qIhMDEsjzgOuBxWRdZcQMiAj0WWDx7PN
xLAdMRRfFpb8N6zGHZ/oSNrxwID3Y7M1sAyHNWdeCA/Bm2h9Seaidrr95CdrTHizFVqpjtD6kOMH
ub/c38WHP74+3T+3vIIxTHQfHpfAbkbAWEGCJweHg23k2JRmmQdEnILvPsflzK1gneIDXOQzUt2t
u9Rcdc2y6LrbslXF0EiSAfYmZMZeZOtJZEVRIFQuJv8a5vuhlWVRYJnpJ3r6baag+ab83/i5nhmj
LgW2XkiZUJ8xi4ofLcD0CpBB6kSxxhj/Soy6laCRntOO8+N0N0vFNB8wAxWExUxHrUymBOYOYR9i
ErBaD5HWxlj9Cos5Z2DlZwsbzcytaHLTEc0dEOb2b397Li+zfXHZlgixUqAHVhA2pbPE+aiIxjxc
MAWcxIzlH03TLC90Z3lhh7mz/ToM28+rd2s8qfRp+LK+e7rZvod7AK6Omg7gnfMKCMcf0FPA29Yp
W6JKYnj2C3AKZRBERMjeSKNlPI8Iu0ue6uzrDG21dbSj7W5+FAibV6e812o0qnJzO7y7eYS9yuVK
ooaypjtY4j4ZE4gxgHMFwC7ieYUy1AsOPoWz+HqsppXldKvO85hGfblbJnTWih0aGdbfnr0ms+iL
nHMAX2ghkhXALNyDeil6onKk0gWtUj3efmRoz3M0Syuz7Sy9VpP/2O+TG2yBmzorjUGvjduveO/A
a2P7NrgSYTQAEJ0s0dEHL8HgweLPbb/naRuh9K4TifVwqPhvv3w9VK/waeBahcO2hx2W0YQtHmTE
IpaLLgcrciyzbXeYoVnY0GWP0tqKXk/4P4ffnxAFjOBfuv2Bb59CtgI2f5IFrE0wPJgWJUlasqSZ
ijm+zKZx7tP1Drx71QrY8RXWzFMB75L/0PgEueJ27PGoW8b5DI+ucFICliwxzWELy+AhrIg6A9Dp
ZY2PXQIscMIDwJ1WZNsxO7vZzHrUDt/ZEYyiiNRmBu+ag71JC3sZKJZXtp6ZNEKokE2WZ3PvnXd+
7Tp469odRAGyOgx3HyFKPB9PklyvZO3d0iUaBx5UKiOIALhHnFQFcymcJ0Dn4F5by1tO10qz7njC
682c3PxjeNgMD/ePSNumZixgM0Yi18zKY4o5A6PxSpMMkghuaOH5PLyeJu2/w+luK+5maXqbzSCX
h4zG7xCNiUBJwVdjP18RkjGA0CQlPPQuE4XwrS2J2gXOqcqSvdjEcuL0ZtzfOxZ3s+2UouGim3m7
Js5MftfV1BELoiiPH4spMcELj4HYAKBfKWGF1iVwetbjLaduBBzkEq5urheHS39+e5xeHVmtFOOR
Oe9DUBw4bTbBYAlfQWRXjGStVUjeJsBLl3CA4zX6FnE84liLrez0nG21283c6MQUp/MosIWEwTZU
LHzwejQlF8MLI1QFBxZtM3EZv+RCPVwJIsl43iNNTO88D7xqxRw6sm/EsrMTz4evb+7wcw5yTxNq
I0XNMIL1ZkM5YRGZeUjAZJwUJJpsVBRBSnbpqbLDMieLD4cRjSLGLbfm1tLrEy/husnXj7Sd8drI
TLOlOhtimAUfx0ohjmlAVg5imZQmiBeypdNzfsmeluMahWynD3C7ofPjTj+8/ef9/e3m/vcKeyvq
tdTUtyKwSTjigXHtCzI40CTSTAqzQQCDyEqr12BwBxH6Iw+3G/W2arn14eLclX4ebr/ilhe15Csr
MVXJywQBkYbanukxIWQiwa86qZgKfvPpVdSCpU9oBHdmyqieMvoQVKssq/BMoCCi7k+QU8aVtOBd
NZNp3/kHdI5oo4vkJvGYZodl2tlmgpiOIJovt/On9d2uWs1iMytuNJ5OGc/sCGxKqJ+akzxT73zi
OV+6mfeLnNzK+/utCh2Kv91Rsch3Pq3xqF/NWowO1Rm+quePVJEUCCh4Ii6B7XumMEcIwZanFKjk
lMtXrPFMkpxOLOLdq1Yd2dPx8LGZNx9+3n9w6/3wAF5i3iCAaWpQMBHAODVfDZECvy9llCnA9pwo
8aLT7c/rXJLZ6AvVKtZzWjs+P9QUy9kGbABJTmk82asy9m+6BC7YMKB7Nirtc3bS/rcN2Mdvu1ww
fjao0XoYlia7o3ZeyV9/P446UxlFAkocyZRkISUqCqiNTjtgzwLyOsOollYFn19ovvW/vBRzjkdc
NdJ2UhJ4sfstsPE7VfVLNz/f1U+VNJ+pEsYCJHPArDjwQWDrAVwJt4B1hfCGJ0PV+VrDYeYTSky3
ZxqwngZiyip8XO9u1nfbQ8szk7p+wCNT/BBVIdThmQ7BHdiadPAOtDXWROFMOf9lC+zHe/vjBZ9Q
aCVohGdsGUB2bM13u8XXC4a/f8hvmm+rFJNTwC9y4AcAhSn1BKskGRstgUkm493FfR84+Zm2D7zd
Cr7umD4bhk7fZK0Mvf0Rm0FHFieNGzvMkuNYPswGibhFlgshhlCI8s5op40rL3rr/eSn0wj7AY3w
XCy79nbcbmYfZ/vhbdNMwMcaD3bLB6ODZJFEIEnYGyeJxaxyLoBHPFZD3esfSniW5hTc6pVGQa1t
R9fFBo+1vvBhPX4AD7StBThX61k+m8q1lcJeHYPn/jGlHrhg0vjkeXavgbuORfh/4q6sSY4bOb/P
fwGN+3jEqWCE10trlmu/KfqoJsdLcrhzyJJ+vTNR3dWFKvRMSx7LERvD2ekSkFkNJPJLZH556fs8
P9EoKeW69GEv94eVkl/uH25//bZD78cda5XcWK1UojAZ+TEUZujHAEgGthGm6Tv4yKZi356BZZLn
krrHj1tdh47FNtqsjtp/G1NDYd8B1tTVjz7+VjNpgwMlM0mYKgaoAG++4TvmXpVMufVJv5IqcRr/
0rF5/PimFdP2ZJ9y9r9vvs5KZCrdbomJwXIj1oSIVWRwpgTYeTJyAbhZqcIWXDGzMdq5OyHg/Uaz
xaZvXMBx5Z4Kk4SuGUXjL5XVI3ikJiUaXHUAJFhuwsAMWJMs814nLenbuZtnWS688enzm1bDdZB5
vzXyVBX0c7r9sEyiBDDBtQLEmArSfSRlQTFdkEuXem7h0/BnldGfxWu02ro13tnv6JL24XbYPOw+
j6xqx6z9+i+GLphy3lo7smcIXRjx0cJhBJBHWDDg5RUdf9/NyUmQSyGB48c3rT49Jd301Z1ibZNn
Qy3HuNKIFIwQiaMrLTLaswg+JY8kp5iD1FlqX14M4HVe+q4TBd2fSBlrUvFYwtBiFtiusEextIxR
RoSjGmElZuRagCtYylLcWyU1z+ZvJN93WEL2e8umgOjmsSnOq+R7jEVA4QAfacQiIVrQRMJuZ8ZG
b8Fi2pJb09MM0wpgeU+AZbx70vGx2qG0Gb6Okc/Ry0bDHaMSKTI4nmrpRpSwLTmgdOeNoUlq8GTF
tVQ84/i9Nxtmn7eKbDoO62FFGjDihadjeKg67lO4agkaaHYKlicgPzDwTnNidYzgBTIZi/ZUWPc6
aHgxEDV/olHm4PYdZTbTsthtdp+n5Wzq5ZGS1vvs4JzEqLPiCouawXHl3kSprZXS9PM3zkO1InQI
1AaqdouFke4edz8Ou/uHfU18BJ+lRvwcxQSBkalPApoR4LYExgVSn1NiKfwWHc8ZqR4UeznToZni
Urbq7JGbRmLdU0NPfC1/qUVzUyIBN7V8I9JQgiUmI69pCvAamVHEFOGkLlECHG73VzNKM7/scFkM
0k6OBeDfkf/4ZJv0GHoHw2RTKIKAAxnQt4WNhMxvYKGywMtAldL/Eno3ULCVo1XB7jsqbPnJun6A
b6WFsEE6HpQy+NoyclCC3AaOMJ1NUD4pWUR8Iwg7Td6KvBUdkXdThcZw4qCd9hDWiJTksOhJgyOX
Ix5NmjgLyAITLsHmqqjkwq4uxmll2NOODHt6sexyrCSC/2D2JzbWXCormDEMc52QskDj7i642SMI
Cc6yya+lg77i95w/X+iwPugHtaUdfooKZ6cogBEguXrHKe4nA+dUkpj9XCyuZQ0LQwKigZebGWxQ
8JjpdXj6FTR904rJerLzxV3j47C7w8DO3LcXPDBvoyYJi5xEgaMsWDCmzisepIki6/CSj9KMuRBK
9IRSp7j889PdVD8u0XrK6ELJ8NrABYZ3lzNsJThIiQWhmMzUS70owz8PsZh5neMyGMxEbq6j/v15
8/D02xFYjCFQibHQmuwVszeaaaKFB7sYwDgG7S2RRoeikyjqlXDgefALicbT543oZtcTfViC6A8P
90+1mUVE5t+pUHPWhEMK2CywoZ0UHmk0KAnUYbJYYUIEkSm9ij+8O9GlhMHOo61yh46ZMIflOXtM
NHv89dvT56FhLEdexGPbg/GXWuOTPMXaQ5WRWZrrQDAtniiXAsd7xfLKRdsfCRrcVhFv1xI2gKJ9
qHkVtsPRAX/czpJYv9+Blfrp3GpE15wfhglGsBqLQpIR6zN4atQRE8AMSUVLiOlS7mo7YCsOHzri
mGUk8fbXr9v708uqcG6kqJQ1QcuAJ2G0IiUgTTGm81gFsC4EXmwGBGTjVUuumeTCm50/0irSocoZ
NnZzbh3y+OWn/dhw8eyHvOPjzRUsGcsTwaoc8IIVeMEK/PuYKQd8JHKSiwqP9WiNMJtN50jZbM4J
s+/LwpuwcObpKAEGZ2TME+CDhwA/ogTLbItG5PZG3sQ0+ULkXUfk7cSfjO3yJgfOmrFZgcAqQlk8
UbYgukwWqXsVYQVOb5kzWNU+9eFstFaKLe9JIVeRhR2S/f/HA/zfbmoEK1Zw5RjBMANY8VpSBz+S
TpYbwGnGXrckm4kuZhTMnlmoozrq7A+z/N7N9m7KPztmEDjOcwlCE8Bm4FkyBYaNG0qyZT5WwtdI
Vwm+0ziNANvODQf8cdO5KPjr96e7r3e/bZb8v95xhXELYrileDgHrAQBSA4gvCJeQd21kHc+x2U3
Z/7UQpttRxuup231r4voB2ByxbQUhEqknZV4G10YbDIAOLA8rOL2zaIfvbc/dOTdCXoq9pj3Clo2
M/IgO5gdhLkAkIRMnrjIwPzLAGDLwtLQ7P+JlHwt9k2rYMcn3alh4YSNksf7b4e7T88jy8O77D9g
ifN/oll8N5ZFsDFgmAARZqoooAG8e5cMvMNsLUketoNLTpZyFQfyaYYLzPLHT1t9OuGrYXcYOvjg
QyonY1RZDqULoWAHNIMJWjkxgAOpwPLLTgQXDDXlaursVF7gzE6lFfnQEXm/KuiE/6xGZ0+sQjV0
aTwAV7ThETG5dVjoqCPhGTNUOIU1qK7wf18vQKlzX3Ao62eNRsOuc6IejvxeM42Gh8P9w1e87z11
tpnbMmoA7CTBAWhgbpZPsIpEwkRuOHpF8Ngi7CrneD3NBU3WD960Gqz3yoEat67DwpGnrjJznSIg
emux4V5KSEAA3leggKCEtdwBIFVRsNeY/prBLxZkNU/N1Tj0LtIPgk8w9G73jDmp5z5O4J6/g/9V
wGWdC+AFgcASNglgaGIj/CgZdEkqcRVNe9otRmsksWodijrYYz7CLKI3bJ8/jc4kLhBRb5ZEvVYS
ANujEiQ48MaENbBnc+ZERmsAh1KqriOQnc9wic/k/ESjg2Nr/Ax/3C5uHr5/2Tzh4prCO/Lk/XDn
HcW2adogn1wUsMyRZ1VH4S283OCZerFgqRm5kW3LOu93K8TpSPvy29fNO3W+E6kxcyrAFQukeIXS
eIV3PYzQZDQVGIeMi4jTfJB2diE7s++XtBAzGlF4JyNnLv57qDR11PDsRSaFpwSwEakIAhysTggX
DbWGKvZKU5VXyERnDzTS72jn3e3OtNpfNt8+3c1q6KovGKMsyK2jomLHcETEovosvGIlIXHh4uXN
Rmmm3/dszX5nD8P2iDwfhl1TPCmEOjMlRapKMsQr3KVSebwTLnAIS2al9SKyC6H3xaitSJ2apMP+
sPw+3+/mrNXa1uMK/8HVlXJOIWvAxRg7CpiXypMkXARMBknWyavc0/kcF77WXZ+yGgR2PS0OfU7x
sa09BuHUkROs/lKrxRngaC4JoGZ7zESjOhNPadQKmz1I9Tt4xceJXuQUHx9plOmeSAc1lYnFz3ff
hsfhb/f/GL7d/TZrpoPJKsYFGzWSv1Osso0GjlYeE5EgvmEua5sWlwr94RYS7XsSHRb1m7vGkzwB
VcorpVa960o5mFQc0ZYifRmW1kYL2IBpDWdlKbS8fCm7nmAmJywBtkqvgD/yZQptfNg8fv5xwIzO
4eF2YjA/pmIahkF6qixeLhiwUVgAggHa4OAHlcwUDdCQXdc0rTfXBS+y82SjHVvXiuIfl4u8Nmb6
+P7EV1nJHsb8ZsVlliESWX1hTNjyhWqSlQBHwWCrWXpVn4dxgou+4/rRy6HY2QOtrgNb61ob3q0q
RZ/vagXAkZBwjORgexNdsIDEYLc9Q6wDB1oVZaQpngXur3X6P76/7PN/fN/ILI1YyyzNboX0MYlr
LOo/Rk0qvpLBaiNgSwiNmLOAxwOOMoWT2viokiw2XAlVTuO/lES2KO1HQfdr6RU9Wx1M9zjGoE8u
JDOnwylrbgVeFQWFMJ8xgPkJm0dlHgoDl9CKhYexGu+mnbgnzbEHAZYCfN88PA5dai1dwNXxFC03
kuBamQBhgLkJ4ANFCQgwhD+L9WcpZaMieDlrFe3ZY3/855e7p0FMN0ZMV2c9RYGksgbZmzAbEfMf
lIlEa+cAh2OziEVJcDPQTTub6ImwOvwxsBk335+e0aSMeYNj1qCPORYaDMFUVkBz2JqxSEOyLT4V
CU68eRte35kEF47T2ROtjlKvdazUOOv2k7MUjfX1okawWkDXgKAVVhQscY/XOlKAD104Zmu8ziTz
YqLG/IlGCfARO0oMenEAj42Yz8TQ0tZ0KEz5GnugSUCpGtsqYMIxdiAIwWIXUgaYJFKwNC8ev/Ph
W/HWlDGODnS6UanJ1W20XTMJs+ZITDTYn0YhaZ8PBI5VDyhAgxv5Vnf359lvWvlW4XbHmF0Wgf/9
bj/cv7wwoolcM6wG1goLmQDOcNigTPsIS8WwbiXmTJX5FH195k/ctPJuO0o41uePABxw/+nbXRv7
rc2PT+2PR5KWrLyDb4MUifQWPClMVchY36jBxQI8pPKbEPhUqX7sCbW+y5s91r4Bx3tvYDKjX5Hg
6Kenu6/D49Pm6/cZK807+k6ODJIAYDxjHJtyK6z2LUgSFeBHZlzFAH+8LuLww4eP8XjXN1PlkhAL
NdammEm+jJr8uPnvCOM+bI7cgZXWGIut7XgPyKQDtzWRhBdBQsOXZgGkEmedx1JVAIq61+r5nMn5
L8sZlv2Rp88b8d3QWYfwx5MFeP62OzP/1645gWUHJ0U0Ro1UDgEMA9EiKyQgsOXCtdU0UDv9obOX
3WHJyP23h+fHp/zz5stzRRD+04DsP0eK5Uo8wAWAVZlJyUjr5jAtr4D7mLlCfmvGbbmqFVpvov7i
7j3ZqLahh7VqG7Hv3B+dvsP38IU9fEMeMTwBKgkk/oumKjPGkJUrGbwtNMISj03fYgEHLSSZow3X
esbL2S77ycsnG/22Wq7125oJW8Yfy+0z+C9NozVqbJARGUg8crlRDScZD57QyD0NPlgfxcLdbIZp
JBhkZ+0OcmIn+ufz5gEpbc5dIyyt3HmSaVcwPRazdzwHKyl8JhlLpZXVCXyP7hJejtcKs13laTgu
9HDYtY0JjmTsY6dKO5ZwqBIkoDiSg6gkpoJ4gw2GhDO0AM5Wlr6Z4/sCWfvPS6Z2VGC9iDlgsRpP
XTTh/BjR2T1dPh1/Q9tm8eYj1moDih4DJy6Cw0m5tfDyTYzRXt2D82N8oQPnx3jTyml7wtvT+vjH
8OvXT1MUhmP0wMKpH7OSSLuE0QMERiIVkp2NRrOgS6bdtTEfayGE6wihpkbD8Ye6u7CV9OOZTcW8
Q2MLwFRWHjPFMdGUYucpwHskUZUplz5rwf6MhdE20lkJ3Oq7TqiFP+7oS13L/3p7DlEabsc06/GX
mmLCHPhmlliFRR3SAnDyXBNtBTidJZvo7NsVPJxlucCPetsJZDpuO7aIW332ZuD9PU5Mt2gKs4ST
DrAtHPmhltHjSSo0iZIp0CgLMPetKZyP0U6+rkB3WHE9NfB+eB6wHfaih7ey70w9O6kCj0ORSAV6
9EEh2y4coJwmVUwK+hXevP/DHt4dwVvN3Rokcmd21T49f7t/+Gp/2n46Uwyf2gYFwZTPDpSs3ZmS
QzDOBMmRM6fgAFBMv0HboLqnCt5ighu2EuemFXrf0WQzIcVfvk+OmNH1bsHW5PnEBLeZUIXMWsl7
Yl3myDVqOC8uMdtHhtNwrRDr5CvHYaOvmtKCN/f5pT1LlRPFgx01Ca8CHbhiwUYHR24E8GiC4uEN
6d1aeS6R3M2fmWsttru1JyO2w+RH/PL45WnGJTiycdlMMVqWCVMck10zbF9VJHwR3EvjmTZy2f9q
Nkw7/7BKJHSSatnxFC+ytiuWWEFSUVcwNx2RkBWWEw7rIxlVrFT+1Rf+WkVA+8xNK67q6bAkfxkB
JtoezIJkytQKVp0T8vsqZOARGV4nuD8CK1gFyxwWjEh/GLWOny1E1R1R4Z/hnEb6gGzA57uQ6hsU
K4rkLBHGEGxKrF9wsOFYyEFRQz2YzkVu2XKkVg679hglM/wcfOGL2EuUFJNFLeFSOUQBGEwUyHUF
D4joinqFjuv3xF54R+Qe2IVXsu0d7m3a65gng2mv490j8zpggjpRNUeLS+xdnbBGlvMA7iG4hvlq
QPN68uvqsZtWgzUKlXI7C0XsNjOeeu10NQG56EgBfIGziJeOsgQA7eAsaucVuI7RGb/IfW0GakRQ
fG3+YYUdeg1Lm36lCrxsMSZ34y94tmEpiFCZRKY9vFqniXNge2PyNNvMvVXqanqFF9uVNt1KQdxh
s9ZBr1qan1l8RxH8/uvdN8yIa/MnK3Zggtmgfe0ehoUtTCHZRYLDOoLnp4I33FyXH72e6VKa9PrJ
m1ah9Rkp7baH69NI98MrAbQcyyA9h9UBrh+BF4N7mGOGKri0VuZMI2ZRX0FAmS6y95w+bUR2Yu2T
wx/3q1q9I1fM8ZR8V5qugDO+G10sNwkOP1rAbosAPlSAdUW4Al9U5Rz9Kxwkq6kulO21TzVKbdbp
SvDHrZyc3vdlmSmOsULvYyC+cOy14MH/E+CfUCYLQCmuuQpvZD/Ps7dCbzvH5Ga/TFr7y/OXp7un
+2dwWJY3z5jrLE+tAI7lHFwVz5H5Gm+38VzgxIeikFEXu6r4pP1VlIIvTNvcdiwfa1Tcbjrfy/ac
DX+5pVguOTnD8UzA8DWNFL4o8ByNcbRwGqSTC7LOS03EcMLOkt8Oy4yCH25v28tcmIQKgeU/AcvP
wYQTjxSNWCGrs/NgfV6OxcCIFzqy3d62Eg6yJ6E8HTrYwO3Tr2CBZgxA9NTkjHowIREvySXmNpUE
dtEhzaX1CCK5Xl0mroZbCNNZl9vDxOj7y+bh7AEfW1CAUTFFa8Ix5VAkpLpIlhFDi4yYSyjiImFl
Nkg7+aHzJnbcdixqvU/BI2Ikxh1NKvOeS88CiaGW42mkb0rgmTNYMUpyLd3rYKOOfNmm1o8bqXc9
+3PYSa3GdX6//a/dOWtT19BjUiqBD2QIKyEj0RQeZ1QRKZPxJWsb+SJhcz7KTTuT6k2/X5QvHnfI
qqBVWIVrSWDqEfjDTiXYaFoJpPEE7ODAiBOJpSmq6ESZvKKV3+ViVxBs3/mKDwe25qEFr+KDb6nR
x0j4kXPUBK6DSYARagOulLGBi0/ww4VIS0Iuieu9mw8vujcfWv/mcOA9Jc5c3N/vvu2fz1dVzJlx
szoDcBzOeFo8blYpkZUE+bhTSTwqPgZA5zf/zUgLIXRPCHMyr/f7w/7cJbm2wLAywnyUJC0sNhdC
osR6OmgOFq1QVxZ8jbMxFnOvA6qKSrP4FrHZ0e7LGGwZLaupthXMRbDYTBiz8sDAloQYzxKXZY7S
guU1+Q8HXcbPbhrJ1pQP9Y+n76tpdfRxVll7asvkE00+Wk8cCDfGX8HK/k9x19brxm2E389/ocH7
5ZFXN4DTGg3S9HV1sSP4RDZ84qD9952hpNWSS+mojYG+yD67C+6QS84MhzPfh+HHHDX4EiH5Tsve
aLITS4/EsjNf+j9+/On987ePh+PFCndki4oK9CJJwlML4YQiNtME246ojNJWBk2/E2f6WJKmN2q7
DnzCxVkPxbf/xAjeVRM6TWvYscC8Dw6PqAUYEYFAK4FlDdvAAD6BNiow96rWfvt1+vLrYfvygEfW
CdJ0Qg+iF0pv5uDb9tuXlyvKihSnOiPHlJVeUsIrEKqATaDXTJCYOecWDKDp1/WynUYAO1Atyqnd
TWpF7Pwv7/xfF8SKlJ04fcFzQSgCQUyJiLYvMKMqMiIFL16ylGLKrw4stn3bGuLdp1bU/Uj+mY3j
uUbfBgFMKyQGfxRRDNmiNZZxehjNHItgwVIGs31oe5YttqIMwipYr9YfKce4LAUpYPACTwLDwAb9
PrDMBmw0h0mK1OzB+ofQaaDZG+fFsTmc0pyttYAWdD6cOmw/H/9YzLmaJUCVp16BPuJYYK+1JWCs
KYHdTARdBIYxu77eY9FK836xBvbBi6LzHzbPn7ef5oMpXak7OLgruHCLRkJCFfCkEnwapA9mkUsY
r7slEssmW5G26xiIllt3rUM+/v4eE/NWRxigBGHz4AWRHNFtLFb8OfgBzyVl75HDtfwfK/6WQjc9
th/Wy0Y72hebrRJpTjnCiNhkqn3ldRR08FRzMO9JYoYhfAxiTUEQBpaLZgWmz0OBn+HrHkzx6ROC
tVvDnOBFsUxPLT/FJWARY67G17iwLhn4jDCjkIk0SNANvmCtfMqgGcD3+04cSCshui6sw4NmK/mA
deRij1C11EylikV5MniaWUU9Zs0LLKwWqeYhBvBhkbXcmIeA2+4bvOUTT620YtCFqWdcHxSWVpgP
eYK9qoWZSHNLwboEVD/CV6hJDNBZVwLNMeh8f7M1Kl69E4lrHmz7tJGDPm1mVLdf94ffdtMzmV6O
89ZVKlG30GgnnQXlICkWVyHqr0YY2oyMbODxYYhfx9Rp03WLjUB7OhBor9QQkrgmLOD/MP5whpfF
fzEO4k2SRQQCqzlgCQOS3NtIonWwl02UJvn6gfcJrel2rgTebqVXeiC96ekDZ3DOhe0UMRqGY+gw
pMkyg4mNZ5IRFBErGayKeZDV7jYu5xqVE6WbRiLvLmg58ImufIDIW1GpHxgVgZcA7jPSJdgYwFZw
TzLTIcVAqadjRsBra40QH8R63CqNQztuq9AhnomcyWGkriBODpwzBNKHActIVSgQCE0TWbLSgiEo
w5843TnfXIpu5RpOGC7KFQTSGRT/soYQi/VcLem1DcLBFtxY9OHBj7PICqh0rgEzUAn2LhDSsuVW
tIHCgotzdCwdpo/Hzy/IV7Z/eYGuvcTnAybrzaGyWprBpQga7AZnCK+iFHzriP6T8uB/cSGC67a+
99vtRJwGIqp59Lafv/z7w+F5ASuJVsAjjTZCwhaBaCUSfkIATSqjVgX8FW4Fv1ENuGyulWRgY63c
m1WZ19f978+zM2erKkRDGx3sc2HWEUktR3SKSDwYKwKf19ugjdHcvkaaMzfcSrZfRwysUn1pzV9O
irUNxaoktAJhiA0Kg2XKEbA9hpQoQUGCxxnSQ0eE58ZvMWPUm0+tfLuR0Ls7KUyjHIiM/FcxcdjL
YE05lxy2FBzPrmDWSR2UCX82b2n5RNsFsx90we46zOB30/HjstjfnI/eTvEaZhNnCMroRUavGvOR
jfSEgoOfpJJUmu+PErUU6VYmx/WJttNu9N22M6nJ3394vw5D6OiyjjwSzQvWNGeNkUULKgycaMVo
YMZ/zzDEQohW+DVKA17szS/m7ZzH8sfpCPrpt5oKfTXGyelkvIYddEIyFIzjBpUcGBXhRSgUtrLq
FTagrvVb0D3dY01vdgNnwl6Kdyrg7Enxs4FRATtIFc/g73jkcTWYFSAQOZsxHzSNrFjWw9c2rbWS
rFkW4OJme5kUiF98+GN/3WkL8YafKK5q8XY0MBGQZc/goVByClZDjIQZZZ1QHnz3zoJ0DTbC7Ac5
03a/Ov67hnl++FtFGQGFeEbwNg4jJxXlRlFXI4AOqYUEC1gsGQ2iuXmwwRT0I3+lGP9mJWi91Uq+
m0aSf1jDvX7yXzeH+TD/skM9RfyUo9x7okSl2VAwloYyUlJOKigl6Cuoc13rN7Felw8tezFRsw5W
TtTOKEjbl0XwfFElqXihKWhPGBY8gB+RiU+gLkDXC5lEBGvZpa0vWmokkHK9zKeF0/DpXwuXta8D
gx0LKx48LY1lSoLD2IH3pUjW2TKlTbZyXHxxbbUVRomBME5ecbF/7mPPoFuUw6+XRU0zQ9pWZLDj
llFwoJ17hZb2v0CF+nkksVsHaielewIMnAPV4X3pUxgq+p6ELytrzT3GhnBxK6Se1UhqDUaPGBcw
JiykUA8VVl9fd3tKnu4/tXJvB53ZiZvaoIZeD+UwCPo6UEYOqfiCwAKR4ivxAFgBb0WEnoUYH8ZL
wlfcif3C3aYbdqAapsmeMEvfvsvHj4fj/kpsDfo8i4L7RKSUFAnsrSgw8AkZujMoM67+5xl0tbSX
916KoS5/N5IPgPvg4qant27O4GHRIRFadfCcYCxSQZDrl8DODRYDePXEa5imupTC9V1y6xuH8SDB
2nmbNrrPwt1M20/fviw3lOi4ybMDV+PFgsqM7KfOMTBexoGx0OBGh2JVFCpISx+qvAjdm5ZDfrrX
yL9xg2Hd2jmx8YxpQt+4N3ZWtu5CAJC0pdrA/E0MubQYpq8Z+FEsZFiX2kXbVaSv23v6D1BLAwQU
AAIACAALQ5VKdGuAt7A/AAAY6QAAOAAcAGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZl
bG9wbWVudC02NjU4NS1zYW1wbGUudHh0VVQJAAMmJPpYJiT6WHV4CwABBPUBAAAEFAAAAOxcW3Pb
RrJ+16/AvpyS1wE1M5grKycpXBOflRKtpU1SlXKxQGAoYU0CDEgq1v760wOAJACCMhVLW7WV1YNE
A4Ov++vp65C0m8fzx1W2soqZtYoXy3mW31lJsRjFy+Vcj37W079la/PHL/K1ztejQD/oebFcwGvr
fJmlFudMsjcWXC4fLYysRTafZyudFHm6Orsui0SvVmNr+3Mq9K8V7Iez63h9v38afi5+KuabhV5d
BPE6vgh/vrmogZo/3iabpxfv9VzHK91cG83KeKF/L8qPFz/pcpUV+erCvfjl2r/R5UMG+l08pdWn
ZXLRvF5dXMXJjzcXJ5I4uyzi1HLTtNyaAH3CKJ0ijRA6e5fCkmyW6XL8WdOcNXrvLcERfWudw+8R
HmH19s2ZX6Taun1c6u2aXyS3OQUDlsae+4349ttvrV/xh7MzMKC+uM0WuycIwsJG1CbYQnJMyJiK
EeLKspEAfS/jTZ7cW/sHDpZjBKrwZvmPN1ZXaTCdBRd/scwyPOLWOWbfYUrwm7P3elmU69Z6ceZu
/fK2KOYG4WKzKi+mWX5Reak+s+Hn7MyP53PrroyX9+MzI0QpbN3elzpOJ8TBWCC4FmSrZbxO7v++
0Rs9weOWoRdxltvrar1lna90mcXzNxXQ2wpqtY5BL+s8y615Nk0f5+kIfmXTN3AfW9av6JOYzWZK
aJGyOP3QPFmrYbDrR090FwPKHFrBVm4yE4h8gI3cOeoVQI4WizGmcieqFgZOOtkLBA3hwl5Vquhe
WaJkMp3qDy2EGmNiQIrpP59CEop1kDRWtItUY/1w4wLhLInXsKFXOzi4CPwr62HBd0gyniXY4bKP
VGPZv3bQrHKTf+jDcUnaaDORSnSINow3yfWndfgAO3Bl3AQSYPOP1cfxBkJ0bgJlnOVXEGHjVP9m
3Gh8oAFlexvLKUIOIXxIg8bWwfXND1uxB7ZBXHSx0tkRrAbNmxfJx38YXX/oc7nMVut3le4/Z+v7
KJuvdVkL/P6dia1p8ana2L07y0RSxOLZMYm1zPc60dmD3snzi8WiyAeQqUO60II/Ad2Ab3J/U5rE
VWFfFsWy5jCATxzWxVcOewq/luBHIMPgwp+bpU4gESc1uF+UOio2eVp5RyVB7V1VOYng2pFPS2i2
ZdKWcgwdO6wLL5hOPgd/IGCXIZL762KbswaoYNKRJTGhn5e1TWjJ/WSxuttlhtXjaq0Xk4+6zPV8
nyNYK0WgNJXO1DlFRFfIZA1J/XOSoNvoSJoJ8mGwDIiDMkDaZcDk9uauvYjz+K4KkcNyMNmumizu
ysmubjTVobnXMkTL8SXscpr0SkQXL8sfio/6CTyCeQdQYN7xdAP5UZuAmfxWrJ5pvJmexYPGU52K
+cNNFZH1/ZZpamNMugWzkbysb7ZEO61kTRBzGO4ZZvk8PC47gELhuG+YHeS0SB9P0BD3EFU6UDE7
1jhI41S1sjhmKlVsqFa+fCp6heTz2unmlRLMq6UURf7szv9QZOlfoUNOx+MJdNXwq5GxLItPj1/v
b6w3kDi+Nsut87++OZ8uoGcvkvHYXT3myS10WV/vLn2v4+VXVr20c3E8hifffPPXN19ZX/T8N9Y3
55Xib2or/F/8EN8kZbZcG+c15FW9PRiThCdUp9DoTSYzGH2MT8fzyRTmyjHFbCCQv0QzMFNlvTBf
l4/XRZavv9BQx/gR1eJHHMNvhz+6H2OMDkJJSvUi3JrccX5UN9xEdq2cw6cfzFScp5mx/eQhhno8
nesxQfRAx79UWlY67D3v8NlJnD+Ox7/H2brloJs8g6Z+YnroPamrzVp/Mu5y0rr/Oc4JyTYnyK6D
nLBiA5xq2z9FqCZzRMn91UVHS4jz5O3bEW5NiKId8YxwOdCj/2XnDbt8YhSaGA0+m1QE74hAUhB5
TEQjZLI0vnY/SR6GJHwmc+t0OjAzYUT+Pa6sRHvXHdwPM8IGKlZHu1oqGDipJ6GbJIZe404/ET6I
7IXGU8ZBqEEZJcslBLYcrJEDMldbSZ9x/Zs1FPqkCYCv2m56XxZ5MR6nm7JqBb6eF/mdZX61V1X3
vsbzr0AHhOYQa0eZORy3mKVaAbN6I8bUwUdqv2HWqkL32aqpUMBwrvVyMivK8y9Tuv4xqpuYXq2P
B5hgbe9XoBs6PhQZzfM4Lyo1+37fOo3BqtVhponkKXpytDa4k8lKL0w8TVbZHRS0544JGB0ZE1h3
TPjH+0u/yHNd1U1zEKrLP/24APNCY7Fa08mkRj7oyVtoMiVK88FDtre/9sx8Xtv5jTUp9arYlIk2
F0yi2p5X+dEPem1Owquk3+rOZUq1iHk6PEy8xmnJq5yQvP6pyKudhLzWqEIIH1vViXOpxxbk1WJu
3uT5swfjz7cR9E7r2W2/7X56PBB0V4hYwtMY4qpGAJNe15qs6nor6EDIVlLXzxOJhWzJRKl5T2A/
kIAg5QwG7XbPx7s9v23KX5ZDExnPs3/pXh/TPFLFBGsGITSLU8aqQagHBGFl3o1g5Eh0nxLbSrQj
byoVxscj+7UObV/tsPbfc0j7qoezr5aWHNFuGPzoBnpLvR4ty+whXuv/9gpbi1ztDqQHnUXwjrNM
GWXxULNg+r45tAnP7feQGOz3mNM5Fk5Ar4VOs3gUmyknK/7s+zfLdkkya2WTK2Oj6g3L9lm+ZoRJ
ooe2zbxbXz1dPbl72wvmkji14vqjBdZ2uyTlMI4AAvpElINaqRVJPoMLw91dlN3d6EW8vAcFf4bJ
4L2eg3s96AG1MeuqTZVDjzV3BurH3N8eWQyh0S7Y9Ng7d51deukzh3aMvMyJQy9UKOuHSrxJs2Lk
/t2fZ+bTHX/yWPHd621nUjVF57sL26bINfZqvecrUWtwSacsdQaD5zud6zJLmurbldHuufrwuPV5
iQpfT8l/B6P//MGICGcfl0oK3sg01+uB/Pffeu/qnhx7tBV7Bm8XKKdDEtkFFUx0HKSCnZjp/beK
c6nXmzJ/bkFnemsNKEE7awi5O4A211/UGoD3GtYwsK9kDUk4+q81WpHy5/YNrNjOGpQgsh14zfWX
q9gG7YUrdgfyhSp2hbn74IqxsT7hszCYyt6HYfC0n/K7yKttSzqpT6vnxe9P4qsOfpLwgW7XSNjj
rjMYWSrwP1RVEj7sHfVpTCPshWLlYDNfIlZasC8TK2e3xTqeW/lmMYWBFZ4H+slH67zUyaZcmYki
gfZirVNrsZmvM+iGv7J+v9e59c3/sjfjnU6y+ftSnjuI+aUB1gZ9mRxgfljz92X6yjbiF3eUR8C+
uJPs4j7XD/tumA5Rf+mg2QJ/cbs7BHZSMurnIj6g3UvknrMbs6fTR2tdLKuviJiA/sp8U8TE8nwe
L1cQzedNEFvtKH4Gn+aHKsZ2jz9rFt+mMilRC+B5vrTFwJi3ME45NNvPKbsHT/0Y5sCjf6w+7ZN5
R/nT3+ndv0V8duZleVw+Wu8W8Z1e7Xa09eUVy7a6F8FpZk9+g6X6rspbeG7/lRXr64BRlytEbI/K
0HaYx23Xj7jt+Qr5DnOlo9xv/qO+8dOxCpYDpsLSmOotPN98JefmPlvUm2CdIzBKRBUnPHLtQLLA
dhyBwB5+YPtIumEUMomxeL5RDoR1VSX0UFWdgqbicFcHt9LBzA+oiGzJkG87CDNbRdy3VUBYFEmq
XJe/4FbW99octMDsgIMG55rNpoccLvVdnDwOMolU5DFKlO162DNOyWw39IgtPMo9x5eCBuEfYlLL
fIpPvaLDaip4nxVGkJxnM6fHytTcQUI0VCzEjrQjooCQjIStCHFtxAIvQC6PiPwDUWbEHeVibrZo
YKzogYNhrB020471Frzxdz0t10k7DHwc+H4UBDaJImo7oUS2q6LIxoIqIULmE897ptY9OW0FCdaz
AwVJeuA93XdnB83teb4rSOTbkSMFxC/1bM/EBHZ8TF1BCVfP9Z+u1GGrd9e0uSloXg64KSHTwZx9
q1draO1yXY7e5f+E2qdTDxq5OZDFIwOCgaMg3GeSEptGHDaHcWKrEBI3cpUvWUiRQugPxcheelf4
aFr96aflpx/qGEFXH9XqGUELaQLJeGDjtQbrZrM030dseyNWOPQYCWwoTJDeZADeiCXEEEaOG4QR
EdEf8MZjMtuKJ9NUHSgOF/u717ylYF5/H7jfu5fX883du9w6JwJ8k8Dz9QuT4WCHICP7NneBkRMQ
H3KdE9kRR9JHIVVRwIDMTdUmXFxm0xK6gYvwE1i+8bZGyuij/rTe70ktcX97p8SR3TtY1+adUhUf
8E6ZSno1yb0Krm4vvbLI/6WDEmbM0jgqJSPMjLOO6MhQllI5IuSuLbGHoDwJZSsvEDYmYRjQyFeu
5z5N+UDMMVIHCzusOJoesuLT2SGr93Gqi/wXkze/uzzOzKeugyQTtnCrdBNyWzHp2chTkVICh0Eg
P8dsQNRxdgOL2wy1HAg0rRzUy6S1v27ybL0a+cViWeRGjGEIg4ihhx1gx1XkMxwpOxSwZY6iEHcu
EbaMlHAVOHHA8CG7Pd6Fia/q7Z1Rsr3Y57Rb0qGhUnZIQ1edrmW5t+9aZrjxQfA2WzQ7VBWCyIH+
Q9lexEF3jkLwPkzskFPh+8TxuXrJnTmmUpvVDLODnhTPKMM994sbi6U66e4Or0oA/Db8Iokl94lJ
IwQ8D3KiCuAXCXEEXV+ABQue3JvK6H4t5OjutBad1RqbCZUnM5Xsmewupk5sPspuvqkNibtS9ttv
v60SABXcgars+yiyHQxZ3PV9aguYMhDzoWRho6z5kjnY7MIAtMRJ6hDWF2cuTntZeD9iQOLdlUsW
EkxIwO0ocsFSjMHEE2EI1ChwIod7FAXeoaWu60/CRNtqv2oNMJ8bcLq6CzKge8x6m169LV/195jD
YolUvcnIIVFoc06Z7Qgo8i6H7fZ8EYahE7quF52i+hZ8WPHt3a7aUz6g9rQ/ambJvNikoyjL06tH
mMUq2+9bFU/5guIIvDRyoXJ7rrA9HoKrugojn4cyoOEpBNr4wyTaK7pEEjRAJJE9IiYPbefTUVR/
s9AkREKckfk/Ewyh7WvTg0XMEy5xYCswVPHIhYlFedIOmEMjHEKHpwZKWotRR94woxb9Rp8jC5u7
HdoqGdg/lage7Xc/3mzKWVztGpIjMqrSf/3KxA4JGQ4gWCgJIYsGgQedFwyWVBLCoPHixKdP0tzh
D6u+u93RPZX6UHdoxHq6h9G7y+Iuy7fBbgqyI2EQxQo2IoBx2PGF2SHXtcENPc+BJKQc9xSH22IP
q72929aaifgw0JmY6mpYhLRmPhU+fxipba3iJo27nCGP+dLGikFrxF1kSx5gaCAI5czB0ovcVmY8
gOlooKDQH2gQo359af33CzsPdG9vrHNHCHgY6vyImt7G4xTmPCj3MKKCKakPhd/xbQHXJHeQH6in
935Izuc8HfQYXgM3zrq0yBDXuOcjVZd78/7aOme7pCQpcmGCRTYkVSgI3PPMwZewYUB3ue9Fwqfy
FB/ZYh9RuLnb03o6oDUXvR0yyeG6hLRcfcy4nVAh7jg4hWeD3zi2QwQ01UwQm1ESwQvGAyJO0b0r
YZhBd02XB5dDPPoF+SrO78rioVMSSCC5B2MbWN8HBp5HIUI5t7EfBchXKJSUnlTTGuwjNa2529Va
xgNaT+PecU7Vkv7kfx8Yp5GV4qZxa1p+6rqRh6F5cQSSMMxAewze48Jsyjh1KFR76p+6A5WU48av
bncYTPVhVmcJYz27pzABp3oN03hRrpLqrERUPGiVdELJMY8QBp1NVYZgtj0sIasTHvIgwK4fnFSV
zaAdbMUcPxw5WHbW1X6Q0mybNpvz8rxYZ7PHXZ/PYDvqShxQ6QWhQ20UidB2qO/aLooi22dCho5S
Etr9Vgat4S6GgbuKcTSgGNc9WxdLnd/NTacwapy8emHGJwIjoMdgBPEDyDOuwLZnamkQQm/uuZEr
fPJkAv0RoL+7HDZqfa+n8OxQ4RTznsKXEBqb+E6b/9Gl+g/HWsHJpI+lS6FLAyUh53tmavKRLZSA
WQqGCuTiUzyjL2OYQ3/VWVdxMcRGVpNsVQcXEN+zzLh77RS0YgAtC0x+oY1pAAy4E5rIVDZlnLk+
JElVdZyH7tDH6yozG1BGI1GZFhZPV4sR2urhmOopQkwZpALblebMgwlqOl/PZgGLXOjfiSK8W9hb
GGddMYe5lpOm0sHiS/fa9f+2iwzMSZ2noFuVYUBtDo0qDO8wG3oRdOIOoi7yiRQEO0+X7yTRc13C
xn62aj/oxEy8g8t6Gp51WGA0QA0fNqmVLlewQ+Xju3xWdFxWORJaFt8OXXNULXxhu47DbE4C5bIg
9LHip7jsgZBjHWtvWY9QPERoqCvpdUbgvtIkaGmawiBgInBc8GECTWwYMdi6QAJDP5AEcwrz9Mt0
XgMLe3ymQ3z6x59z0wyv6kPU9t4oj0QsUp4dBg7USuxEtidMc048zgWkRe6xU/ZmfrwV769qtDji
i60VXZ5EDfCk015fdnMfl1XGpOaYyRmZSX370pSiICASY9/moe9BcwbRJsMQ21x5keJMeNQ9qbFs
xAxzaG621Rckpgfqw8VkmyubUpfmq1W6Gz8IG3H0/7xdSXccN5K+81f46As42JcjVrdm7GlZGvvN
tZZki88SqUdS7m7/+o5AVmYVMlFVnGk+X0SykEJGZAIR3xcLqiJ9S5l14ClBZLRVSPCAkyiiBEBK
abVhIl1yoSfzLsTad8TayyX1/vTt4bd6WFp9IBgBQR4C/9a9YAq3KhJKVR7BurNeEGW5lkwoIcKr
sMriJmdAV3tRq8x+HYMyYsd6hOOHX/186+++d5idwhzA+AsmNCQFmAWEz0V4zKIYsFkOtklINvug
go5OvJqBwM0uMBAYbdSQoqOGlL1wSPj8bXh5fHz5dLqlswKE5TwnQKE0OBOQ3yUNMAGQL4AaJwzL
VwMf88znse98SSv9ftuRfhjTErD8/pi6/mF9s1s+IsQgMrAMsKQSACGscWuIKzSB8DZTmSQ1Prau
eJ6mufnOrPGV2VmzeHT/PbyUj1OwVlYkaCX3SkhNeOU8hWPGLhaSldWe0exZuYwE65z9h1WHGjn3
dB0GgA+XWQ5EkOn+qcJy3HR4MCi+ZCdrRYHXxiewATFi0JQCwdEJYwEsFRmi7HrVBXadZz8PYedL
Wg06uAA+FBPkwQXy609j/84R+LhbDPwDnUiGlkAMdeA84VmA5NGRwqUrMZjkdfp/o+7x8vvh+T+6
UiyU6BjlvV5Gsb6CNT9xV7fv8e8xv81gCeMaMiOiUz5b73UgMVNMx5hEAk1IfMCMhMLAjKQ3D8jM
4vSvnIdb1TVbqz4oOm3Tf3z5DCpNb4670SpSE6ihwDuoxZSGL4BYPRiZqDlYRVMMuIF2n57O0wgw
aNcRwLC7YVxAu8/73ddvQNzuH2b6wG9NjXlqeMSYsSTKg10WlEnijKUkCW1ZitRTG64uoPiaBbSW
olWikzkwg3XTUzx4383z55l5cHGrRqMnWbGZsUJYAOQvCoPF4gFSes+UMTmBE3WXfPo8aytSJ4Ji
7tgqK/Dw21H9alocxmcZWhZYpjoWodHtYWIuWODHwgBfl9QXIYMQ9rID2TxtH6+jwXenMjQI/uG3
Rqc7vjY2Vsglz//9Hie4LZvdMO5OcStqWqD+HD0j5eC/ieQM142xxPPAQDGe4SOZlHtdruNwhzMa
HkZvWmnvOiqY3WQv24r9775XlNXwSU1hGwnQTxmimQcsksCqeAVaaJVitFGk4nh3obSTtvJY05Fn
5SlPGObIIPGhMvx/hz/xr+o+LeMqCeILw4IXrgl4fUVKiSnA24vJ6D+Dyo5jC01tR9NVfYjP331v
KK4W+LeiWum4kZwUoHIYgQvES8CDxQMzZ8GV4uXbpY98PgMQc6vLfp12sRiIWwena3FqdVCywhyh
NYZH8WUZw1nwShEENkRIrgjwcw7bIJmoEOz4cFW1Ov95cFiHG9k1XXsc/HAFa3ePG8RmFerwWpxC
jbHGByClgoFRUmzE4gBlmdRcRGXYFXlhznOywtBCTt6Rky2NTe2d3YxnjHwEeFSf9iHLJVw1NzYC
FgPgDubGYdwDLKqLGUCuNsAe0FcG9xpz07lVX5nOha1qrGOEtFULd/UwHoE0myI7uyws8QI/L4jj
KYIlwmSxK5IEIKdJaylVZBcjuaczt6J1EopWbzYL0caj1WYCYaYQM5LgbAPuViD3QgImsYEJjCly
Jhg32thLgp3O28q1WdMZa7ZukZDYD8+/vTx+fZ5DRQzT0IdCHVpBi8BSbg1gMNKAWYnEgMJbR6jU
OivwP0G/ajWk8VaTacELzgT11xfetFqskYJ1Uk+P/Icf3z89/g1m/rLZ3n++fzmG9nl95tFnl3lQ
xGSBlVUmEljxksgipYtcgNeSbwPjz0hy0wrecWhOzWt7+0cN+s84DKN4gAUUWD8Lr6RkrFqUBFa3
JsxgkgIQu6iJrtMI8Oks7f3tOkliN+Juuv/vP90/zwtXaVGZUCia8QL+vHgRwLIBHbIB4LVNLMTA
WY5R/UkR4BP5Gr1q3Gqll1q6nCM7qjENSznYb/Q+NSrBOLsVY3LOUWlM8RlshgAwAyacWOSCJZVC
OeicXHp1YKXe5kJopY436mzFmnnb3Z2Y4nDhR/9xFagPMnJmAdOoHAQRUQNSNyqR6CVYCNgD2us/
6TUd5btpNVgzWXjSy5jRsecMPayrqTCFZUyGeZeEp4QGhvFsoCFWF0GYtFpo5XW+Ev44ztwTPZ6M
n8rtGO/IzRDZw+r64ccPw8N+eBqeyufHzctseBiYTQmvEVALVmRIUYiTPBGdmLahlBSu5E0uGZ4P
h5MBwe22t5/qChcft+p0yjsc2/HFZkljvh6k+njiMGoNsjo4Cwq/gW0iMXhMDUVGHIPfgjKYMWFG
uTdEn2t5zniU1XWN9lu5Rtpuq4bJBP4IJHrz5D//bQBxV5usFDDGORVSqMa6IIpLUAJXi96EUJIM
PP1Z2bC1oK2ijnUU3Ww6eefn2nJwyOGasUhNj/BQ6Az239ceCHjHzIHdF7aQbKMJ3CBzCm9Bs3G1
f5zEOB/nmy9pVN3t1mjY7RmdeOvu29Nn4BWHl+lqLwDPlGUZMJRaa5JrlxOAAxWLxeSqVK71qqeT
3LQ36jzovXSL/fRh+PL4Mvx6P/z9uJ8O1aWVywVuLQBxB/gE/XwCiBhkKIQppSUF6qPEq4L56/uc
syHL61qt5KajlV0mXX5OlWyjWQBzgNE32CGCWUo4ABtUA+AKA7RQLAeTkBjVmb15dPHnM9UvP6dW
J6t6Oi23RC1kxY36/Hw/Qrkpc2HQDUWVNQtSEeY0lgZQDqTbAqBnmQkenAOIf1HD9fwXCmqb6061
2dBOtm5DB72qCMZ2fkBzNc2IP6rpVswaBrAmgYsSYKkxogdrj9IkorVZO3FFB5j1nNgw1Eo6mJ6k
yx3yjCcMgJaf7jHZVeul4H3pGoXMjBoFHK6AxcUmEBJESIQDglecYr7oTYJ9Hw8S/OXdmaTpPN7o
x+Ta/sCHZqo9+vbw9/uHOWMqVPWeBSwr8EFFZGKYGnEecD2oiKy7hJABGYkuGzydbSGG7Yih+Dqx
5L9hNu60DyBpxwMD3o+Fx8AyHOaceSE8BG+i9SWZV5XTHSY/m2PCwVZopTpC6znGv6tfSRWf/vn1
5fFY8gqLYaL78Ljwa7oYYKwgwZKDwcGSaixKs8wDIk7Bd5/jeuZWsE7yAT7kC1LdzbvUWHWNsui6
27JVxdBIkgH2JmQGVm2tJ5EVRYFQuZj8Wyzf960sqwTLQj/R0287Oc0fyv9ijcCwXzDqUmDrhZQJ
9RmjqNjajOEVIIPUiWKNMf6NGHUrQSM9px3jx+l+EYppDkgAFYTFSEfNTKYEyx3cPvgkYLUePK2N
sdoVFnPOwMovJjaamVvR5LYjmpsR5smh8vhQx1VsSwRfKdACK3Cb0lnifFREYxwumAJGYsHyT6Zp
bi/cmgtvxH7ZKILlnFMk6HZ8zOX+84DfNAe4RN5KXL2yBgBY4j4ZE4gxgPwEABHieXXu1AsOu4yz
+HY4v5XlfPHK8ZpGfblfhzg2is2p/c23ox1hFnencw4cOi1EsgJenHtQL0UPPDpS6YJWqbaFnjz6
4xzNrZXZdW69UdOOOqyceywKm2oNjUE7hguyeO/AjmFBM2wuYTS4ZJ0s0dEHL2EJwBq4tCCP0zZC
6X3HN+lhzoHvvnyd8zn4NPBehcNGgDUHYohgsSEM0zouuhysyLEsFuI8Q3NjQ9dVOxsrelXS/zP8
4wX94giHpTu0uPoUMrBnRZIssNoEw7alKEnSkiXNVMzxOr/Euc9nAHD0phWws3mtWZLjH5N/f1Ka
wzFrYceqh7plnM/w6AonJWASD4m/LSwTVayIOoPr78VRTytf4QZnTCSMtCLbzrKz2+2iams+n0Iw
iiJSmxm8aw7rTVrYy0A6vLK1o84IoUI2WV6MRnfe+Z3rIJA7N4sC9G0YHj4M+AUH8xbg+lbWaiZd
onGJEamMIAIAEHFSFYwucJ4Ar6qS2pW3nq6VZtOxhHfbJdz/r+FpOzw9PiORmcqTAN8biewrK49B
1wwY3ytNMkgiuKGF58uAc5q0/w6n0Vbc7XrpbbeDXLfdjOd3jKExScFWY4VbEZIxAJUkJewhlomC
Q9OWRO0C51Rlya6WdZzp7YuHsVNxt7tOchY+dAtr1/iZye66GkxhQRTl8ZCFEhO88BiIDQCDlRJW
aF0Cpxct3nrqRsBBrgHc9m7VevjLu9OA48jzpNDVK3sfguLA8rIJBpPaigRgTiRrrULyNgGCeA0q
Pr1Hf0WcXnGqxU52qrB22u0XZnTiTlOHBmwhYbAwE1MBvDZr5GJ4YYSq4GBF20xcxhMQqIdPgkgy
XrZIE/e5zIxuWjGHjuxbsa51xH7hzf0DdsfLA3CupQU15garNxtg2SwiVw0JsL2TgkSTjYoiSMle
22c13+ZsOH6+olHEuPXW3Fl6d+Yl3DUR7JHIMl5Le2m2VGdDDLNg41gpxDENyMqBL5PSBHElfjg9
52vraX1do5DtVMbttnTZADR/Ry+6OFYDg5aa+lYEls1GbCfWviCnAU0izaQwGwRg6qy0egtOM4vQ
v3IebtTbqfXWhw+XpvTT8PkrbnlRk6CyUjWVvEzgEGmoBYseQyQmEjwNRcVU8KyUN1ELbn1GIxhZ
KKN6yujZqVZZbsORUoBHPfQXU8aVtGBdNZPpUAsHBIdoo4vkJvGYFu0j7WwLQUxHEM3X2/nj5mFf
V81qMytuNPZrjF0sAtP09YgmyTP1ziee82s38+EmZ7fyYbxVoUN6d3sqVhHAlw02v1UePxpUZ/ht
7chRRVKgZGCJuAT+65nCqBk4W55SoHh2qHzDrMckyflQG47etOrIno53M7F//8vhoJqfhiewEsuU
OQZuQcFEAOPUCC54CqMoMcoUYHvA8eOrep+P93kN1+8L1SrWM1p7vmzzieViSTKAJKc09rqqjBWN
LoEJNgzono1Ke2D+0v67Jcmnb7u84vrFRY3Ww7Besntql7ntze+nXmdKLEhAiSOZkiykREUBtdFo
B8ziI68zjGppVfD5Sjmq//Wazzm94qaRthOSwA+7px+Np8nUE0N+eagHWTSHyQhjAZI5YFYc+CCw
9QCmhFvAukJ4w5Oh6nL0fZ75jBLT8EID1tNATFGFD5v9/eZhNxcBM6nr8Q6Z4rk+hVCHXQ6CO1hr
0sE70NZYE4Uz5fK5B1ih9u6v17LAKwka4RlbO5A92/D9ftXPP/zn+/xDc/JGMTkFPK8BD84SptSe
Tkkylh4Ck0zGu1dXQuDkFwohcLgVfNNZ+mwYOpWENVfy7q9YHjmyOGncWHOVHMeEWjZIxC2yXHAx
hIKXd0Y7bVy5aq0Pk58PIxwuaITnYl3Htud2uzhC6S/vmvQ6H7MeWD8ejA6SRRKBJGG1mCQW46y5
AB7xmB90b1+mf5TmHNzqJQtBrV1H19UGjzXi/n7zMHweta0pKVczPD6byrWVwuoVg53wGGQOXDBp
fPI8u7fAXacinHufxysaJaVcNwPs5f5upeTnx6eP/3zYIfpxh+4dN/bvlChMxhMjFNasxwBMBrYR
Fq47GLKpWPPmr3SW55y6h+FW16FjsY02K1d7+CZK2HfANXXF0Yffam1pcKBkJgmLp4AVYC4Y3jH3
qmTKrU/6SvHANP85t3kYvmnFtD3Z5yr2r5svJ00j9ZjKEhOD5UasCRH7qsCnBNh5MnIBvFmpwhan
p5zM0d67EwLebzRbbPoGAo4rd2rVEbrW2Iy/1HMugsej7YgGqA6EBBswGJgBa5Jl3uukJX07uHmU
5cwTn8dvWg3XQeb91sipT+b39PH9sqwQyATXChhjKngARlIWFNMFz6CknlsYDX9WY/lRvEarrVvz
nf2OLg9C+DhsnnafxjO3DnXs9SeGLphy3lo7nichdGHERwvOCCiPsGDAyxUd/2+Zk0mQcyGBw/BN
q09PSTe/uvYLi+vxThzjSiNTMEIkjlBaZLRnETAljySnmIPUWWpfLgbwOg9914mC7nd37ljwOxb1
t5wFtivsUWy2YpQR4ahGWok1qhboCjZ3FPdWZb4n928k33fOzdjvLZsDopvnpl2tHs3GWAQWDvSR
RmyboQVNJOx2Zmz0FiwmIJbW9DTTtAJY3hNgGe+edXyudihthi9j5HNE2Wi4Y1QiRQbuqTYzRAnb
kgNLd94YmqQGJCteezjNOH/vyYaT8VaRTQew3q3a6Ee+8HIID51+/9eaNNDsFCxPYH5g4J3mxOoY
AQUyGYv2VFh3nTRcDESdXtEoc+f2HWU287LYbXaf5uVsavJISet9duAnMeqsuMI2XwCu3JsotbVS
mn5Fw3GqVoTOkWIDVbvFwkj3z7sPw+7xaV9LAQGz1Iifo5gyH89xk8BmBMCWwLjAI4MpsRR+i47n
jIcfKHY599/c4lz95sklN43EuqeGnk8w+am2kc2pdW5qQ0OkoQRLTMbzO1OAx8iMIqYIJ3WJEuhw
u7+aWZr7y87pDoO0M7AA/jueUjrZJj2G3sEw2RSKIAAgA2Jb2Eh4FhpYqCwwGahS+jepd0MFWzla
Fey+o8KWT9b1PbyVlsIG6XhQyuBjy3hCIchtwIXpbILyScki4htR2Pnmrchb0RF5N/csDNNZq/Me
wq6Jkhy2AWkAcjmia9LEWWAWWIIINldFJRd2dTFPK8OedmTY07ONiGNvDfyHk4/Y2IWorGDGMKz+
wSZ+jbu74GaPICSAZZOvFUhewT3H8YUOa0c/qC3tnNhQ6ewcBTACJFe3nOJ+MuCnksR64GJxLWtY
GBIYDTzczGCDAmKmr+PTV9j0TSsm68nOF7nG52GH34rdYHvBA/M2apKw7UcUcGXBgjF1XvEgTRRZ
h0sYpZlzIZToCaWmuPy3l/u5o1qi9ZTRhZLhsQEEhmeXM2wlcKTEglBMZuqlXjSmH6dY3Hld4zIY
rM1t0lE/f9s8vfxxIBZjCFRiLLSWP8XsjWaaaOHBLgYwjkF7S6TRoegkiroSDjxOfqb0dh5vRDe7
nujDkkS/f3p8qYfARzwXdm5dPDm8XgrYLLCh/0XclTU3biTpd/2X0tR9PNbZ2xH2uqPlnpk3Bw+w
m2tdI0pet3/9ZgI8UEBR4ngU3ogOig0iqrIKhbzzSyeFR2AJSgJ1mD5VmBBBZEr5JRpKc6JzKXSN
W+vFbRpswmymcnb32HUgYnbf75+/dbvtblzjrq73QO/Dl77qJXmK1XgqI+4w14FgojhRLgWOccXy
RqDtzzgNbnoSb+YUVgZFfVO1FbaBWgEXl6O0zsctcKlfThD9us/5YZhgBKexKITdsD6DpkYdMQHY
kFS0hJjOZXPWA9bk8K5Bjpl6Em++3y0fDpvVm3MDaKPsE7QMaBJGK1ICgthiOo9VYNaFwIvNYAHZ
eNGRqyY5s7PjW+qFNMBjuoU96kDlYXf7y/r7/eJuezLZ9DUfIldwZCxPBOtUQAtWoAUr0O9jphzs
I5GTnNQ8zEeriFksGiJlsTilkH4sE23CgszTUYIZnBFDToAOHgJ8RAmc2RaNlts7aRPHySckrxok
L9nhXGLDq6MCZ40aimCwrk4WT5QtaF0mi2C2irAC0lvmDFy1DQY4Gq2mYslbVMiZZ2GFoOn/eIL/
NlMjWLGCK8cIuhmAi/dFZvCRdLLcgJ1m7GVHsprobEbB6J7JclRjOevNKON1sdwe88/2GQSO81yC
0ARsM9AsmQLGxg0l2TIfewjUSGcpr8dxKgKWjQgHXFw0AgU/PT5v77Z/LKaIuN5xhX4LYrilKJwD
1kaASQ5GeG/xCuouNXnHc5xXc8Z3TVazbKyG6+Nr9cPE+wE2uWJaCkIlArFKjEYXBi8ZGDhwPKzi
9t28H63d7xr0rrBZhNjzpPvnz93X7e55FGtWqj8EHmgHtoNmLhhIQiZPXGTA/mUAY8vC0dDsr0OH
rhjInOyreoENnXSluokSNlAeH+43268vA+7BdfafsOj3n8gWr4dCATY4DBNYhJkqCtYAxt4lA+0w
W0uSh9fBJSdLuQgV+DDDGdzx/a/VerpVg5lv9mBLI82se9o8PN1hqNHfL26/g+Afv0bUgJ6dBAcd
F9OCfIIFiIQ5xMD1RQBNnF/UaqAxzRmtbH7jVb2C+WPaUOPmRTE48rFxx3hNEYxJa7FHUkpYDQ6C
P1BQ3oW13IEtpKJgb8GuVYOfrY6p7hovY9OK4W4EP1pA29ULpkNe+6ObXbFr+Nfr+ta5AAIYCJbA
2sB8IzbCR8mwlqQSV9HUjHYyWkWJVXMvyMbuQ+EjZ1K3fPk66DF4QEQf1BB9REOAxRiVIMGBIiCs
YcTlzImM1oAJRKm6DM1zPMM5cInTHdUaHJubbnBxOXF6P94unvFwHT0L8iB4ufOOqlyINgjuFQUc
cwS91FF4C5sbPFOvVo9UI1e0LVljf5dCHLjp7R93i2t1csf37loqQAsIpHiF1HiFYQZGaDKaCnSB
xYmzYzxIPbuQjdnX0xr9EaYj7MkAYIp/Nz1mGDU8e5FJ4SmBxYJ14QF4uhPCRUOtoYq90e3hDWTH
0Q0V9Sva2LvVCeP4dnH/dTsqaOrVkBhlQaATFRXbW8IRK5yz8IqVhChyk80bjVJNv27xmvXKbrrl
3uh56lZVJZsQ6gRbE6kqyRCv8C2VymM4sgD/l8xK60VkZ7y+k1FrkhrlMJv1Zvo8P67GEMLa9o5f
/IOnK+WcQtZgkqHbImBKJE+ScBEwDyFZJy/SjMZznHmsqzZ+MBDsWqvYtAGe0ff18IT+H7UHaOq/
9KW7DEw4LgkYbHafBEV1JmBgR60QeV+qfwPkeZjoVYDn4ZZqMU2JtFHHCqX4bXvf7bqfH37t7rd/
nAolGOZJGBds1IjETbHkMRoQrTwmIoF8w1zWNk382e3hJhStWxRtJsV0q0qJOdhIlPf4Rn2YJeVg
UnFEg8mMZboMXyVQS5nWICtLoeX1eOB8ghGdcATYLLIPF/k0ezM+LXbfPneYTNg93RzhpPdZgIah
f5gqi35tAzwKaw/QNxgcfFDJTNFglbDLujm15jqj8jfurFbHOjZfXd+dala497LtE7L3iGmDYY39
F3TBfH6DrbEMsU5Hoooy0hTPAveXmi9fPp43Wr58rGiWRsxplmY1M7wwp2aoOt4bsb26K4PVRsAx
ERpNgAJaACiPFKSX8VElWexljalO47+W0zOpPUZC13PqFT29iRh937sED2oVMweGnTW3Aj33QaHV
xRhYXQm722QeCgM1yYqJ1J2Nd1VP3KJmD5KOmdmPi6dd18T+0QXEv6fIzRCl08oEWje8ggH0gihz
YiH8VbAkUyqrJYLkny/RnrTY3b9ut8+dODrwme4V2BQFol4ahJfB5DAMRysTidbOgVmEaPaTCs1q
oKt6NtEiYSYQ0c8UF4/PL+g9H9K4hiQuH3MsNBiCmYVg4WAftSINybb4VCQotuZ9gEdHFJwRMaM7
6jVKPV9jj90x7xU3ipjPoz0aDbgCaw1oyMGJgiPu0csuBeiVhWPw/G2oi1fj5uM7qkWA3tRYRKcn
QmncAB2Ra6Xts1MwA2do0iTBctOI+475nwiRHoLFloEM9PRIgdO8KpLGw9fkzTEtHO3o0cHd57rW
zk/NJMyaIzHRYAMNhahiPhAQNR40Yw2q1XuFUk+zX9X0zbyfjjE7rcn9+3bdPbx+MKKJXDMsztQK
60pAxefwgjLtIxwVw5qFcaOljKdor2d8x1VN77KxCDdtT7aPsoBu/PD1flu74jDOMpQz9X/RCsjK
O3gapEisv+dg6IeQM5abaVA7wEZQ+V0QRnqqPreImodWRrfVO+B4aweObPQOEVh+ed7edbvnxd3j
CDbjml7LAeIOlHrPGMeWs9ihHt3xfTWwz4yrGODiZVb4h09f4j70MlrKOSImy5izYib51JPwefG/
EcZ9WuzBzXrcVax9tUNYhkkHqlwiCf3yQsNDs2C4EWedx8pBMJ50q4PpKbHub9MZpu1Lj79X5Luu
cQ7h4oEDvNyvTtDkfVuPwLIDSRGNUUNlfQDGQLTICuvBbTkTRTgOVE+/abzLbjOFDP756WX3nH9b
3L70WrX/2iE8yR4Dtq8D5wIMOAnWekbcKYdZUgXUx8wVAvAybstFvZpaE7UPd+vOamkLupkvbSHW
DXf+4Rl+hAf2dI9ARygBepQ6/IusKjPGEDYoGQzeGGGJx65UsYCCFpLM0YZLNePpbOf15Omd1fqW
Ws7XtzRHeyt+LjcvoL9UnaCosUFGBITwCDZFNUgyHjyhkXsafLA+iom6WQ1TUdDJxtnt5BE+5V8v
i6fF/fMI1t7SHtxLMu0KZitiMoXnwCWFzyRj5aqyOoHu0TzC0/FqYpazsLnjQnebVY2cvkeLHlrp
2SGjXpUgGceMWtGjLAriDXZAEc7QAransvTdFN9X0KR/m0JJ4wLmh5iDLdb7GCddAr9EVHYPsYD9
N+RtlkbmYp/8jR3PFScugsJJubWw+SbGaC9uEvglvtIi8Eu8qum0LeLt4Xz82n2/+3r0THC0qC1I
/ZiVBJMTvX4RDSORCsnORqNZ0CXT5tkYjzUhwjWIUMdOqPFD/3Zh39fdCdzCXCOzBcNU9kBLimPe
H8XWOGDvkURVplz6rAX7Kw5G3eljRnC93nl+I1xc0ddaDP90c3LbGW6HrNfhSx/xZw50M0uswhx7
acFw8lwTbQUonSWb6Oz75Z+faDkD4HjTcO45bhu8iFt90mZg/3ZHKE5khVmCpAPbFkR+6KuaUZIK
TaJkClaUBbD7mhWOx6gmdw0XAHeLo5Xx++NRiBvd+2ptnwebmOA2E6oQJCd5T6zLHIH0DOfFJWbb
VsVxuJqIeR6F43BIZh0XQRP49trzpsqJ4uEdNAlDKw7EeLDRAbuOYHiYoHh4R6Smmp5zvRnH94xX
LZaruRQUy+4og37f3T6PgLIGYB2bKXpaMmGKY95ahkevioQHwb00nmkjp81dRsPU83eznCAnqZYN
LeMsJDF2tS6ImOcKppmiFm2F5YTD+UhGFSvV2/2730rure+5qslVrTVMcRwG4wSj7pjQxJTpi9F0
TgheqRBMQ2TYThCd2OdaCJY5HBiR/rTFM/w2IVU3SIU/3Skj7AmhLk++5V6uFCuK5CwRxtBQkZiK
7OCFYyEHRQ31gk6cP7ORajrsXNuQzPCT4c4ndnuUFPO+LOFSOdQg0RElELYGbhDRFfUGss6/Y7fz
BsktQwm2ZNkSDHUG29BaBjPYhlgO8zpgrilRfboFl9iYNWG5G+cBVAtQK/LFyvDbeWyz267qFcwt
GCmXIzN2tRiBMGunexaQi44UFHdQNDCII0sAgw8UDe28ArUjOuMnaWzVQBUJis/ZP5ywTasbX9WM
T4GGJoY8TfyC8TvM6hYqk8i0h611mjgHvDcmT7PN3FulLq6UfrUXX9WKz8EZnUsPaZctaykNmBa8
x/2UQ62P57BvIFCJZqgpGY5pWKAoWJkzjZgqeAHKWjoLUXH4tSJ5Mc8hgItLeXgHf/5YppmD6Kzw
PgbiC0c0ag9mqgAhR5ksoMtxzVV4p5fwNHtN9LLBaxfraSbJjy+3z9vnhxeQetNwEOa+yQNY8j69
l6viOWKDYsgJmQsnPhSFCIuIO++T9pf1MT8/beVund5WLXG5aDyX5Sk78nzTlVxycoYjY0H/GY0U
HhSoH8Y4WjgN0skJeNu5Nis4IW9Q0U3DfB9ubupoEkxChcB08IDliMAHwNI3imDFlM7OO/ZGqSyM
eKZnzc1NTWEnWxTKA+fCFjdfvz8/LUaIEMdO49TD2xYxSicx4aAkBYwCYc+sRy2W61k0YzbchJjG
uVxujgiPvy+eTmrUHqRbcGqK1oRjHpBIWPqcLCNgM8uICT4iTqLIo0HqyTeNnVhx22A+vUMX3ckD
UOLAfZj3YI2xQGLoyzM0wnkkUO8YnBgluZbubY21H/k8++l/vqoJbJzzPmOxOmGff45DwLavh8PA
Hyrb1z08g/dUCyew6xw2CLcJ3lsBWyjhKRYqJY35otDleI4zvGl0R72KFhfdrKRWw9v6sPyf1Skh
TPcenKRUAnXAEFZCRvgUOHyMKiJlMr5kbSOf5IKNR7mqZ1Kt6deTopz9ez4r0xJW4RshMKsBVEOn
ErALrQSC04Ea7VTORGLCtSo6USYvaNl0voQLCFs3Dupmw+boiiBgP/kK3HPf9mKPpGcC18EkUJf7
RispI1C/T/DhQqQlYYX05YL+06uS/lMt6jcb3lrECWH2cXu/fjl5/JkzA8txBixTEOq0eGQ5UmKt
PaLMppJ4VHzwI40DqNVIEyLmviFFEe3cTBtLrG6HfpgDjzY9lwbGEyw2bsSkG2DVJaHJYYnLMkdp
gYeb/Kf7Yg6/XVWUzYuJ+4uHPavaSnwZ1WwdWmD4RJOP1hMHxA2uJODX6EnJUYNWEpKf8OszQ07I
0i2y7LE37d9/vPl0+/J1e3+Q55PGVooKVN1IQgcscCJFwDZOoAVHZZS2Mmj6Tv1p25RUq1GruQ8H
Lh55Qfzwz5+/P47SU52m1z1qKZy94DDaJkAcCSzhDyxrsEoCaBfaqMDcm/z/w9Pi8dt2tbtAt5sQ
Ui1CN4xppZdHX9Dq5XF3qt+XYshgd0xZ6SUlvIfYE2CTeM0EiZlzbkGUmum7NR6nIsA2Xm/l1Pps
Gytc/D9+8P89amJF2dA/EXQgLHIVxJSIOM4Ck0MiyCfBi5cspZjebrCNY5+Xq/jrVU1q16L/iHx+
2zuDGv40KyT6IhRRDDtzaiwQ8rCbORbBgqUMTnuT/49HrElpWPlYCTGNjsU4zvQuIHQCTwKkD2YL
OFAenQE5yeGQYhvcYP1FuAcw7JnQV6z87JqzORfQgh797NvVw/1vozPXBzyp8tQr4EccSze1tgQE
JiVgF0XgRSCcspumc49GqeYXc8gIvCgmMnx5+7D69ehj1z0oPAeVAV/corH5kwoYdAG9Als1ssgl
7NerGdDjIWuSVnOTXMuVO1W43T9/whyjU2Kksj0vASYIZogXRPLQq2SwRQ4+QHtI2Xvsl1f+H2tJ
xkRXK7ab+WujHZ3idsxyAobKXsQCMb185f0u6ACaKei3JElMloKHQawpWN7LctGswPG5yA/RnO7C
bIVJ2S+sZl5AjxfFONOu3MQxFMahETsX1iUDjxFOFHZ9CxJ4gy9YhZkycAbQv/z7NWKviJgsYe6t
MivJG3j2B3mErKVPuuhRzgaBp5lV1GNSrMCSPZH6lKoAeiR2iDXmIkig1wXe+I6rmlrRWMJi2t22
UbLUF5DLAVAFeZDFloIUpEtA9iN8D2IGtkSxrgSaY9D5dbOtVRZ1phR2dmO9pqVsrGl5xAv61m3v
1otbstjdH41gqURvjKOcdBaYg6RYO4F4khoBDjN2vwGNDz3OOqYJN52PWBHU0QZBnVJNsMs+9orf
0JOxBy7Ev+hR8SbJIgKBtzlghjI2FLaRROvAKk6UJvl27G7AATkf9sWfa+qVblBvpq2ajrBvI9kp
YjQM99ChH5FlBgcbQ2QRGBErGaSKubCD0HnEtzneG1K3aJG8PuAwwCM69V5CRPQeVJxREXgJoD4j
ELeNAWQF9yQzHVIMlHra7r50Gq0iYiPm+9YDhNf7NnNCDv3fhwpA3cODOFDOEKIZNixjWyiBEDua
yJKVFgzLff+DYMP+xzHpVs6BKuGinIFr7OGWD+8Qovzti6G8tkE4MIONRR0e9DiLHZiUzr3rDVjC
q32Nq5Fr0hoMCy4e/Wxpu/h6/7B73q5+7HY7WNou3m4x7+jodOuzzLkUQYPc4AwL95WCZx1Rf1Ie
9C8uRHATEOzXx52QuGiQqI67t3p4/L7Z3o4Ay1AKeGxZimCDRWAdvISPEICTyqhVAX2FW8HPFPuM
h6spachYKzszq+J46p5vj8qc7VkhCtrowM6FU0cktRzrniPxIKwIPF5vgzZGc/tWO4bjwDVl3dxj
YJWaVgn818BYa6euSkIrdKzZoNBhpRwB2WNIiRIYJGicIV0UsdoPfg5zvf/xqqZv3SJ6/Uo2Risk
n7GzSkwcbBksGeWSg0nBExw+OHVSB2XCf5qCMb6jXoLpGkuw6wka5Q+L+6/jWl6zxzAc/DXMJs4Q
7suLjFo1plYa6QkFBT9JJak0748/MibpXGLB6Y560a713FZHuPzPHz/N3RA6uqwjj0TzgiWLWaN3
zwILAyVaMRqY8e/phhgRURM/L8LGi1Pxi2kk+738cXEP/Omuz+o8CePkdDJegwWdEGYffalBJQdC
RXgRCgVTVr3RZ2Iy+jlQiMlt1WrWDWXCHuoQeijDgfGzhlABOUgVz6DveOyZZzBILRCTlTEfNI2s
WDYFRqxGqymZ43fDxeXqcCgQGXP7W3eytIW45kPzlL42Mxo4CNi/yWB4KTkFb0OMhBllnVAedPeJ
BJkMWBHTNdI/bTcLJJ7cPB9/6tFFgSH+X2tXs9s2DIPvfRcXkmlK4lGypV127QPYyToEAYqi3YA+
fkk5cfwjt8GwS4BEgUTJEknR5PddsGEtSeQk4yegohwBJCGtAB2k7qu1ghPk2QYr1o/1N7W2u4Ch
uWkp+bEvSf68BRI8+7fh9OdtgqMfb6hjxA9J1d5XCBnAHXktrdJV6mKHARHUN3hGq953UQTnf5rP
old2G6zslZvwNQ7vz8dSwRfWSXXB+EpL7jb7EbHyHasL1vXQdNCytVxl4M56WkjQNNtj3s+chvPH
zGVdl7TwjUUnz56WkYoLqHnt2PvCKproNBobXVPOI7/1uhQGoSAMNTfE1ad17Jl1C5I8vQg560kI
AYUbqXZasQNN1Ib/hTfyVJKYtoHaHs0aWl32QHZ432dvc/S4khkLzebqMksSG5LDjUJqaIRAlI1e
ZSlITBgaQHUXHsE03P6WHNsflnIfCpM5wq42yKHXUzoVgr7EyoiE5CmA5LonnyGt2Qp4By3PLLRt
uje9R4b4IvbLrYtpuIJq6Hs3ouH9+Blffp9eft1IRFmfR0hyTxSyMujY3kLihe+EDTWyMqvxn3fQ
zdJex73WdVy/LyQvQELxj8OaSnTxNp8PnVDsZAePQOtWQSUskhXf3PgwsFdfecPb1KSUavMlkejO
a32WYOu89YNZJ4UO/eH893V+oRTHrbk4cDleDKqJwqtHpIU8mdhYGHajQ3LYAobGqbuSyMNqpPmS
j20L+QcqLOvBTXl2F8gC9UiPblK2dIWW7oxTxvL+7bSwtGjJprL8gTpEPpeGWrcqrt329/AJUEsD
BAoAAAAAAI9ClUoAAAAAAAAAAAAAAAAHABwAY3J5cHRvL1VUCQADPiP6WDMm+lh1eAsAAQT1AQAA
BBQAAABQSwMECgAAAAAAj0KVSgAAAAAAAAAAAAAAAA4AHABjcnlwdG8vc3VidGxlL1VUCQADPiP6
WDMm+lh1eAsAAQT1AQAABBQAAABQSwMECgACAAAAj0KVSiXg0wgsAAAALAAAAD4AHABjcnlwdG8v
c3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVU
CQADPiP6WD4j+lh1eAsAAQT1AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBrZXkgcGFpciwg
c3RhdHVzIC00MzA0ClBLAwQUAAIACACPQpVKMDu4sUsAAABoAAAAPAAcAGNyeXB0by9zdWJ0bGUv
cnNhLWltcG9ydC1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQADPiP6WD4j
+lh1eAsAAQT1AQAABBQAAABty7ENgDAMRNGeKW4fGlawZEuxgDhyLkRsDw0d9X9/S7+Eht3ujuks
MQhRdXpUOaBCgaShBtFHa5E0XdaP44w3skgFZ6Cln9Z/hgdQSwMECgAAAAAAjkKVSgAAAAAAAAAA
AAAAAA8AHABjcnlwdG8vd29ya2Vycy9VVAkAAzwj+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoA
AAAAAI5ClUoAAAAAAAAAAAAAAAAWABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUCQADPCP6WDMm
+lh1eAsAAQT1AQAABBQAAABQSwMECgACAAAAjkKVSiXg0wgsAAAALAAAADEAHABjcnlwdG8vd29y
a2Vycy9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1zdGRlcnIudHh0VVQJAAM8I/pYPCP6WHV4CwAB
BPUBAAAEFAAAAENvdWxkIG5vdCBnZW5lcmF0ZSBhIGtleSBwYWlyLCBzdGF0dXMgLTQzMDQKUEsD
BAoAAAAAAJJClUoAAAAAAAAAAAAAAAANABwAZGlzcGxheWxpc3RzL1VUCQADQyP6WDMm+lh1eAsA
AQT1AQAABBQAAABQSwMEFAACAAgAkkKVSqNX/ehQAAAAjgAAADIAHABkaXNwbGF5bGlzdHMvZXh0
ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUCQADQyP6WEMj+lh1eAsAAQT1AQAA
BBQAAABzL0osyMhMLnbOzytJrSixskpPLXEO8dXQVMgsVsjLL1GoTC1RSM7PLUgsyUzKSVUozyzJ
UChKTc4vSsnMSwfKgLUV63G5oxtUjGYQMYYAAFBLAwQUAAIACACSQpVK8paV1UcAAABJAAAAKQAc
AGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1zdGRlcnIudHh0VVQJAANDI/pYQyP6WHV4
CwABBPUBAAAEFAAAAHMvSizIyEwuds7PK0mtKLGySk8tcQ7x1dBUyCxWyMsvUahMLVFIzs8tSCzJ
TMpJVSjPLMlQKEpNzi9KycxLB8qAtRXrcQEAUEsDBAoAAAAAAMRClUoAAAAAAAAAAAAAAAAIABwA
ZWRpdGluZy9VVAkAA58j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAMRClUoAAAAAAAAA
AAAAAAARABwAZWRpdGluZy9kZWxldGluZy9VVAkAA58j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAMRClUp8cUh/ywEAAAAUAAAoABwAZWRpdGluZy9kZWxldGluZy9kZWxldGUtZW1vamkt
c3RkZXJyLnR4dFVUCQADnyP6WJ8j+lh1eAsAAQT1AQAABBQAAADtl81qrDAUx9f1KYLLYUaSqInK
7cDtlFIodNGZ0kXpIupxrjB+oJkybRFKX6Drvsl9nvsCfYUmnX5dGLibi3URN5pj8s/x/+N4lGLC
J9ibUIJwEFEcecwJaYCSqnBEXa/AuYD4JJf6NKtKCaV0DuEaVlVdqOtLxjxPrSNeiN0rNKsaWMBG
Rmg0GqHzslASkCL7z9P98+9HG/2YLY6USITwhmeQxC6nNEvx9K4UBaB9NF/Mq3Ip88liNjmD5Xol
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
SXVJTc5PSbVSSAHRmXnpCqlFRflFVgqZecn5RUWpySUKKYkliQrJGanJ2XpcAFBLAwQKAAAAAAC2
QpVKAAAAAAAAAAAAAAAADAAcAGZhc3QvbG9hZGVyL1VUCQADhyP6WDMm+lh1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgAsEKVStsI00I7AAAAPwAAAFIAHABmYXN0L2xvYWRlci9kaXNwbGF5LWltYWdl
LXVuc2V0LWNhbi1ibG9jay1pbWFnZS1hbmQtY2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0
VVQJAAN7I/pYeyP6WHV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARK
KJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBBQAAgAIALFClUrbCNNCOwAAAD8AAABT
ABwAZmFzdC9sb2FkZXIvaW1hZ2VzLWVuYWJsZWQtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1j
YW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAkAA30j+lh9I/pYdXgLAAEE9QEAAAQUAAAA
cywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0
uABQSwMEFAACAAgAtkKVStsI00I7AAAAPwAAAC0AHABmYXN0L2xvYWRlci9yZWxvYWQtcG9saWN5
LWRlbGVnYXRlLXN0ZGVyci50eHRVVAkAA4cj+liHI/pYdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEo
yVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMECgAA
AAAAvEKVSgAAAAAAAAAAAAAAAA0AHABmYXN0L3JlZ2lvbnMvVVQJAAOTI/pYMyb6WHV4CwABBPUB
AAAEFAAAAFBLAwQKAAAAAAC8QpVKAAAAAAAAAAAAAAAAFwAcAGZhc3QvcmVnaW9ucy9zY3JvbGxp
bmcvVVQJAAOUI/pYMyb6WHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAC8QpVKOQHL3UAAAAB6AAAA
NQAcAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsLWFic3Bvcy1zdGRlcnIudHh0
VVQJAAOTI/pYkyP6WHV4CwABBPUBAAAEFAAAAHMtS80rCU7NS0ktCijKr6i0skrOzyvJzCvNLy32
BeLU4OSi/Jwcp0qFzGKFvPwShczcgpzUXKCm1BQuV0o0AwBQSwMEFAACAAgAvEKVSjkBy91AAAAA
egAAAC4AHABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL3doZWVsLXNjcm9sbC1zdGRlcnIudHh0VVQJ
AAOTI/pYkyP6WHV4CwABBPUBAAAEFAAAAHMtS80rCU7NS0ktCijKr6i0skrOzyvJzCvNLy32BeLU
4OSi/Jwcp0qFzGKFvPwShczcgpzUXKCm1BQuV0o0AwBQSwMEFAACAAgAvEKVSuSKx0M8AAAAPQAA
AEAAHABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL3doZWVsLXNjcm9sbGFibGUtc2luZ2xlLXJlZ2lv
bi1zdGRlcnIudHh0VVQJAAOUI/pYlCP6WHV4CwABBPUBAAAEFAAAAHMtS80rCU7NS0ktCijKr6i0
skrOzyvJzCvNLy32BeLU4OSi/Jwcp0qFzGKFvPwShczcgpzUXKCm1BQuAFBLAwQKAAAAAADEQpVK
AAAAAAAAAAAAAAAACgAcAGZhc3QvdGV4dC9VVAkAA58j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAMRClUrE6lTjjQEAAAUKAAAjABwAZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0yLXN0ZGVy
ci50eHRVVAkAA58j+lifI/pYdXgLAAEE9QEAAAQUAAAA7ZVNSsNAGIbX5hRDliUN85dMGrSgKUUQ
urARF6WLSTKpgeaHZCrVEvAGrr2J5/ECXsGZthaFgrvaRbNJ5pvJ+73z8jCDIWJdSLsYAej5GPuQ
2Qg7IC5zm1fVXNj3IrrJpH4FZSFFIe2BeBTzssrV98R1HYf4mECC8BQEZS1CsZQ+6HQ64K7IlYRI
gPnx9vL5/mqC8yAcKhEfwCVLI5owBAUisL8qeC7ABRiH47KYyawbBt1bMVvMeW2BJnvWcwhCG64f
C+Rc1tlSFeFSjRLRxHVWybJWlW2Lwa62a0ZdmHg91YxL9Xe0kKJZrx9e8SaLr3nz8GNlhDAEEz1O
U8aQ61AKp/2VfKq0l3wheTQXIMliaamsFoXUDi1DRVJnWrdvnGHga/WxqhQzsJVyMIlZuk863qSr
PZmjsd7DSIVy+e3VbDdmf8sxhCn1/pLbE6vZGq3Rb1sD7wPAwQcCAMfYJekJgGMDwEUHAoASGhPn
BMCxAcDcQ10BLuKeOAFwbAD0yKFOAAd58HQC/CcAX1BLAwQKAAAAAADEQpVKAAAAAAAAAAAAAAAA
CQAcAGZhc3QveHNsL1VUCQADnyP6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAw0KVSk77
IPiIAAAA5wAAACUAHABmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQJAAOd
I/pYnSP6WHV4CwABBPUBAAAEFAAAAKWOsQ7CMAxE936Ff6B4YMsME2wgOrutKyI5ceU4Uvl7AuUP
WE4n38nvJk1rFPKoGdhMLcAShb8SEPGhUhMXPJETnocbDjxeouOVXlr9zsULLlQctyJoXLTa1Orb
0/pZp0O7gsTMcAQWTpwdYlrVvGtJ2C0EqJnGBnUFUZp/8P/Q/f6c58+G7g1QSwMEFAACAAgAw0KV
Sv2iLmSPAAAA7gAAACcAHABmYXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRV
VAkAA54j+lidI/pYdXgLAAEE9QEAAAQUAAAAnY4xDsIwDEX3nsIXKB7YMsMEG4jObuuKSE5cOY5U
bk+gnIDly/9/23qTpjUKedQMbKYWYInCXwmI+FCpiQueyAnPww0HHi/R8UovrX7n4gUXKo5bETQu
Wm1q6815P9Lcx7SqeV8tHloGEjPDEVg4cXbY2641YR8hQM00NgBXEKX5B/InRtZSp+fnRbsT6d5Q
SwMEFAACAAgAw0KVSs+PZg5QAAAAoAAAACQAHABmYXN0L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0
ZGVyci50eHRVVAkAA54j+lieI/pYdXgLAAEE9QEAAAQUAAAArcyxDcAgDAXRnin+BlHabIPACEs2
RpaJMn7IDmmuu1dMJ0sOtgFyN7/QWAgQHoQTJKQ0ArZirkg87ixcsbsIzRxK0a3uyyyVv7Cnh8rx
kS9QSwMEFAACAAgAxEKVSoFKd61LAAAArAAAADQAHABmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10
by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQJAAOfI/pYnyP6WHV4CwABBPUBAAAEFAAAALXM
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
jrVO0gxnNDwuVfAwkobtdvO0eUyKl/IQH0AWNSwXfigScu/fz3AsNHxm7BCE4YLQK2NQJ8kqr4vb
+AJQSwMEFAACAAgAI0OVSrM9PVhHAQAAiAIAAGIAHABodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRl
cmFjdGlvbi1kaWZmLnR4dFVUCQADUST6WFEk+lh1eAsAAQT1AQAABBQAAADNUEFuwjAQvOcVK/XS
KjW+AKp6CiWJiooAkbacTbyUVR07ijdAf18buFRV7714ZO94ZnaEECDfnekb9DJXrGSxqeQGty/E
V3jqyWi5RoPKozTqy/UsGD2LDn1v2Ms9cyvji5fGKU32Q4aR67sa5+FesWLyTLWX1lnRdnhQBu35
/5kkjsT7qNp77ARZxk7VTIGLpxZrRj3gEydpmv7nrAF6Zc5JswzE8H4E6fD+AbIsgUaRhV2nGgQB
mnRJlvw+d3XYxXI0Ll1Xxvlv7rOy2uDSxrjFIdD939yL7g89sZpUFUyd+yQE6xh0aCdWmqQ3q1kO
b4t1Ua2Wi2r2XgSR2jUD1bYGB5dGI0xdWNPyIMcDGtfGyHDbkobxePQwukvScjKbP8IrNaghdANH
RRyahZ3roiXtvnJnEdjBFqFWxqBOIPgXy/J6fgNQSwMEFAACAAgAI0OVSkap58OhAAAAOwEAAGYA
HABodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1leHBlY3RlZC50eHRVVAkAA1Ek+lhR
JPpYdXgLAAEE9QEAAAQUAAAAfc5BCsJADEbhfU+RC+gB3IlaFERLq7geOr8YnEkgk/b8Vlyp6P7j
8XJgoauFDJpR5Nh5MG9MRy6sEtJeQ6zV6qeo8gdeac7sf0mLHjzixJ6woBOKF7qq0UFl1hjGkCBO
LYoO1oMu7DcdnM4FRjtxWOh9Gvnq1ixcbmvthzwF/i5sg8SEo6QJbcZJl5/0VX2rNcuuo5XqnUGi
ThEJjjivqgdQSwMEFAACAAgAI0OVShe9IP1OCAAAMR0AAGoAHABodHRwL3Rlc3RzL2xvYWRpbmcv
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
OPYBKRBOV2BgWDi+l1RwX3rqyyfchyDJrPswxMoixO/hXlIZ4QBG7gPEXEkPiEJxuHYS9NHQ98Oq
JZSFq5ou3Zi5cCkR9cRegDvDphe1j0jXxyPqcN/3XB76HZ5AFx61psgTj9P4WKQ+qoIA2xnqM8Gh
97hejiDmML5szAI2eHkOKPr1MoVdHN09uVCL0YZkhCcrYC5JcDJ+G1Zs5LhZAzILBv/XZo/PMHt8
vtn6I87HTAJgvZPU978xe3KG2ZNvjfapKKtL3egaHVwvzfCxa+dhUJ+tX8Rgbd7J4Px4RnD+mAU8
X/RH6NObhwfnnrFHgkERhDz3Y+i3vRfj0vQM2P9lt8ykkz6dsJed4bzy6erTu5Xz9w8/rx8+ffzw
8O6XNSQfaNhDeU6xp2lOXu61ansrvMOU5arD+FMOOjWZjKfjP38Tkn9f56b9zm3evHs/dz6TFA5F
QKLOEwKhBjmTX1kggSR+XoGwy/4kgL4EpBRH3xXjvxfPTs8I06w/TN/V5++P/uHgBPzXHzf/R+wO
h99m2rdkpnVRvQ60CupfSv8DUEsDBBQAAgAIACNDlUpnSuqNWQAAAF4AAABkABwAaHR0cC90ZXN0
cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tc3RkZXJyLnR4dFVUCQADUST6WFEk+lh1eAsAAQT1AQAA
BBQAAAAVxr0OQFAMBtDdU3yJVe5GLCY/i8Fo9lNJE7dtKIm3x3TOOLFDBaLO29OoEJwjrdDLM9ih
C50nFo1hMtspjDT37D+1ipN4aOimXS1+h/GKCkWRl3naDl3yAlBLAwQKAAAAAADOQpVKAAAAAAAA
AAAAAAAAEQAcAGh0dHAvdGVzdHMvbWVkaWEvVVQJAAOzI/pYMyb6WHV4CwABBPUBAAAEFAAAAFBL
AwQKAAAAAADOQpVKAAAAAAAAAAAAAAAAFQAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL1VUCQADsyP6
WDMm+lh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAzkKVSg56yobiAAAAcAEAADwAHABodHRwL3Rl
c3RzL21lZGlhL2hscy92aWRlby1kdXJhdGlvbi1hY2Nlc3NpYmlsaXR5LXN0ZGVyci50eHRVVAkA
A7Mj+lizI/pYdXgLAAEE9QEAAAQUAAAAtY9LbsMgFEXnXQUbiOABD8zQ4aNK7SiK2rGNSWzVgRSc
rL/OInqHRzrSuWFY1jSRrZBY07AlMg91IuuSf8illhuhz6HSS1mnVBvVmTbFI4cZ5R2lWeM945MB
v0W275rpmX6n8WPZzqltp0fOu3XA38936agd4pzo106WkgkAPa5lbNRZK6U0QQOyznqltbDImRYA
WhnhOHZBSetfif8Yc0qx1KnRV4D3aBko1R0ZasMN97IHbpjpvfIIIKXrd6GVR42JgnNBGo1WdIwF
7S140aEWSoME1nvGIFij7GHc/779AVBLAwQKAAAAAAD1QpVKAAAAAAAAAAAAAAAAEAAcAGh0dHAv
dGVzdHMvbWlzYy9VVAkAA/0j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPVClUoVNTWS
egAAALwAAAAqABwAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQJ
AAP9I/pY/SP6WHV4CwABBPUBAAAEFAAAAI2OQQ7DIAwE73mFP0Ag7aEVvyHEVSwZjIyR+vwS5QPV
XlY7h9kspREnI6mAqqIRPsQIp1mL3m+P1xpmtvgOIfhCPXvFLkMzdv/tbG5Ph6PSRM0NpXVuwFQR
noCMBavBTZdJ4l0hwqhpnxoTYEnHf7oqfeTzupcsMS8/UEsDBAoAAAAAANNClUoAAAAAAAAAAAAA
AAAWABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL1VUCQADviP6WDMm+lh1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAz0KVStsI00I7AAAAPwAAADcAHABodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJh
Y2stYW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0VVQJAAO1I/pYtSP6WHV4CwABBPUBAAAEFAAAAHMs
KUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgA
UEsDBBQAAgAIANNClUqWEbM5aAAAAGsAAAAtABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3Qt
Z29iYWNrMi1zdGRlcnIudHh0VVQJAAO+I/pYviP6WHV4CwABBPUBAAAEFAAAADMyMDTXNTDRNTJU
MLCwMjKyMrbQMzW3UEjOz9VLLCjISdULT03yziwBUc75eSWpeSV6LqllqTn5BblAdrSZmamBCVCf
iZmZWayCX7BTaUlJfp5jXmZuYklmfl6xa15iUk5qiq2fPxcAUEsDBAoAAAAAAPNClUoAAAAAAAAA
AAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAA/kj+lgzJvpYdXgLAAEE9QEAAAQUAAAA
UEsDBAoAAAAAAPhClUoAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvVVQJAAMEJPpYMyb6WHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADUQpVK
0qv8VnEAAAB0AAAAVwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2Nvbm5lY3Qtc3JjLXN0YXItd2Vic29ja2V0LWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADvyP6WL8j
+lh1eAsAAQT1AQAABBQAAAAzMjA01zUw0TUyVDCwsDIysjK21DMxN1BIzs/VSywoyEnVC09N8s4s
0fNLLSnPL8rOzEvXc0ktS83JL8hNzSuJNjMzMTG3MjI0sTQwilVwdoMqUwgO9vFIzEspzkjMTlVI
S8zMSU1R0NC1tDAw1+QCAFBLAwQUAAIACADUQpVKfFjzQHEAAAB0AAAAXgAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2RlZmF1bHQtc3JjLXN0YXItc2VjdXJlLXdl
YnNvY2tldC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA78j+li/I/pYdXgLAAEE9QEAAAQUAAAAMzIw
NNc1MNE1MlQwsLAyMrIyttSzNDFXSM7P1UssKMhJ1QtPTfLOLNHzSy0pzy/KzsxL13NJLUvNyS/I
Tc0riTYzMzExtzIyNLE0MIpVcHaDKlMIDvbxSMxLKc5IzE5VSEvMzElNUdDQtbQwMNfkAgBQSwME
FAACAAgA+EKVSmOqrGyCAAAAqAAAAEAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAMDJPpYAyT6WHV4CwABBPUBAAAE
FAAAAC2NQQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHe
UgjLbZ3jyJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwn
ksqdljnSjs2vMUSbguxqTdTxmr5QSwMEFAACAAgA+EKVSmOqrGyCAAAAqAAAAFIAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHls
ZS1zcmMtMi1zdGRlcnIudHh0VVQJAAMEJPpYBCT6WHV4CwABBPUBAAAEFAAAAC2NQQrDMAwE73mF
XhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW
7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxq
TdTxmr5QSwMECgAAAAAA0EKVSgAAAAAAAAAAAAAAACEAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9VVAkAA7gj+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANBClUoAAAAA
AAAAAAAAAAArABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvd2Vic29ja2V0L1VU
CQADuCP6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA0EKVSpZ/YhThAAAAcAEAAFIAHABo
dHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC93ZWJzb2NrZXQvaW5zZWN1cmUtd2Vic29j
a2V0LWluLWlmcmFtZS1zdGRlcnIudHh0VVQJAAO4I/pYuCP6WHV4CwABBPUBAAAEFAAAALWPS27D
IBRF510FG4j4PjBDflaldhRF7djGpLbqQApO1l+6iJ7hlY507jhte1rQUVCsaToSWqe6oH3L3+ha
yw3h51TxtexLqg2rjJtkkdEVxB2E3uM9w5NQdouk85XxBX+m+W07Lqkd50fO3TrBz/ur8NhNcU34
oy9byYhSbPcyNwyeS8UFDJ4JTzwDzkkQbgQuLLXaezs6TRT/S/zHmHOKpS4NB6lUCOAIlXKwBJRm
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
Lxa2esV/AVBLAwQKAAAAAADuQpVKAAAAAAAAAAAAAAAACQAcAGltcG9ydGVkL1VUCQAD8CP6WDMm
+lh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAJ0OVSgAAAAAAAAAAAAAAAA8AHABpbXBvcnRlZC9i
bGluay9VVAkAA1kk+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANxClUoAAAAAAAAAAAAA
AAAUABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9VVAkAA88j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAANtClUoAAAAAAAAAAAAAAAAaABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9VVAkA
A80j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANpClUoAAAAAAAAAAAAAAAAhABwAaW1w
b3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9idXR0b24vVVQJAAPMI/pYMyb6WHV4CwABBPUBAAAEFAAA
AFBLAwQUAAIACADaQpVKxyHv2zcAAABAAAAARwAcAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMv
YnV0dG9uL2J1dHRvbi1yZXNldC1mb2N1cy1ieS1tb3VzZS1zdGRlcnIudHh0VVQJAAPMI/pYzCP6
WHV4CwABBPUBAAAEFAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVKEovSU0sUyjJTyxUS
SxQsDAz0DMBAB8bgAgBQSwMECgAAAAAA2kKVSgAAAAAAAAAAAAAAACAAHABpbXBvcnRlZC9ibGlu
ay9mYXN0L2Zvcm1zL3JhbmdlL1VUCQADzCP6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
2kKVSsch79s3AAAAQAAAAD8AHABpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL3JhbmdlL3Jhbmdl
LWZvY3VzLWJ5LW1vdXNlLXN0ZGVyci50eHRVVAkAA8wj+ljMI/pYdXgLAAEE9QEAAAQUAAAAy80v
LU71zS9LDclXSEvMzElNUSgBsjLzUhQSFUoSi9JTSxTKMlPLFRJLFCwMDPQMwEAHxuACAFBLAwQK
AAAAAADbQpVKAAAAAAAAAAAAAAAAIQAcAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvc3VibWl0
L1VUCQADzSP6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA20KVSsch79s3AAAAQAAAAEEA
HABpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL3N1Ym1pdC9zdWJtaXQtZm9jdXMtYnktbW91c2Ut
c3RkZXJyLnR4dFVUCQADzSP6WM0j+lh1eAsAAQT1AQAABBQAAADLzS8tTvXNL0sNyVdIS8zMSU1R
KAGyMvNSFBIVShKL0lNLFMoyU8sVEksULAwM9AzAQAfG4AIAUEsDBAoAAAAAANxClUoAAAAAAAAA
AAAAAAAdABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9yZXBsYWNlZC9VVAkAA88j+lgzJvpYdXgLAAEE
9QEAAAQUAAAAUEsDBBQAAgAIANxClUoHa2Mw4QAAAHABAABDABwAaW1wb3J0ZWQvYmxpbmsvZmFz
dC9yZXBsYWNlZC9pbWFnZS1tYXAtYWx0LWNvbnRlbnQtY3Jhc2gtc3RkZXJyLnR4dFVUCQADzyP6
WM8j+lh1eAsAAQT1AQAABBQAAAC1j01uwyAUhPc9BReIHo/yuwSDValdRVG7djCJrTqQgpPzlx6i
sxzNJ30zTuuWZrIXEmua9kSWqc5kW/M3udRyI/CcKlzKNqfaQGVokkWGi+B3wc0W71k8KbJbpD3X
DCf4Suf3dT+lth8fOXfqIH4+3riHYYpLgs/erCUTRHBbOTeQbtTB46t0WqlRmyA1R/SWBS2V9Q49
95Ii/in+o8wxxVLnBkEqFYIYKEqpHRXKMMMCt8gMNTbIIBA597YDrTxqTMCtsjgoYUOfCDuiYCao
gJppTakZBToxOK4P5/735RdQSwMECgAAAAAAJ0OVSgAAAAAAAAAAAAAAABcAHABpbXBvcnRlZC9i
bGluay9zdG9yYWdlL1VUCQADWST6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAJ0OVSgAA
AAAAAAAAAAAAACEAHABpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9VVAkAA1kk+lgz
JvpYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIACdDlUo2GZqefQAAAIcAAABGABwAaW1wb3J0ZWQv
Ymxpbmsvc3RvcmFnZS9pbmRleGVkZGIvYmxvYi1kZWxldGUtb2JqZWN0c3RvcmUtZGItYWN0dWFs
LnR4dFVUCQADWST6WFkk+lh1eAsAAQT1AQAABBQAAAAlxrsKwkAQRuE+T/FDGi1MI2xhJ+4GFiUJ
xkudy0QGNjuLjIpvr2JzvpM33uJcHV3b1FXrLw4rDDIXXUqBiiv1e9YfO4lKUQtLTwqS5u9jkXiE
MWtjllm59YcNTjzTCHkoXh0rxxsmuSOK8vS2Egkq6AlDFwKNWZa7uvznA1BLAwQUAAIACAAnQ5VK
tUWPuC8CAACyBAAARAAcAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZGVs
ZXRlLW9iamVjdHN0b3JlLWRiLWRpZmYudHh0VVQJAANZJPpYWST6WHV4CwABBPUBAAAEFAAAAMVT
wU7jMBC95ytG5dBWqZN20faAhNRCglQtSyvShbMTT8GLY2djZ9v+PeOkRaAtXFeREmf85s174zFj
DOIHo5oSbZxwx+P0MYsfMf8h3eFz1Ugl4ntUyC3Giu9N45hD61iNtlHOxrKsTO1QxLmS+iW2ztT8
CWOpBe5QiJziJmeCGBwyk//GwnkMMpEz3FX0iyJyOxeEYfh/1fDCNVy1WmYzYJPR+RjCyeg7zGYB
W1MVcM/cQZss9RNwDR0DtBT0L4CDIOU5yYPCaMel9khf1IIwaHXfQVFz+xwF4dlqkcCvu/s0Wy3v
ssVDCoySyohXlcKoc+w/10SE2kUJ/kVlqpLWMKikgOn0fDodBuHNfHF7AWtZogDqCGy5bAVuTA3a
OLnZJ0YjOAM5yeJKoQggYEsNtikKtHYE1EnYSqXAIhmhdy3RgtlAbzXPsh7QmVhqJCE3RimzpUr5
HnrrNFvD9fLn6jZdp70oYP4RueYlwiX0Pm929OxK1QvY4WCSq6iDJYfuDTqS4XuEqVAf4iOY0FZL
NqZCxFfUyB0u2yKZjw/63Xb/CJx8DZy8AcdR1biB1z4fwQvuh95SVChDsobeYI2tlOGFX/5p/GRc
wic6v7UZnbn3RX0ysf678U42IaRITqa6mmvbGWqXNLvS6DcrI+iTTbGtpcMPDWjBkfnC/eTN/dUp
96cMf3Z0x0h3ZeiaB8xP03HqNo1S+xWvLQ2TtCStQe/5w0xRIDxLlzeH9ytQSwMEFAACAAgAJ0OV
Svc6kclcAQAA3wIAAEgAHABpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLWRl
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
4Bl+QqH2/ardZa7a3+mawgzRr4eRo9PelyCdpwXpHFKQzt4s4sYr+U5F8cdTdEfXB8Lb3UvmgeOQ
gOA8EMbea03bnX0wXUJ1png/OQzEwV4gwhkUzijnqCG9dQ9k+eGrtfw+SM5QWzFJHcoJRvuJ8m3A
L0QP49fqB919EBdhZPpSrtDdB0HpW39DtPrV/MRsi2JPkX4AFZOHhEl6QA/pdvdZQGihXPHi1UO3
tzcp8urh8oDVQ7f/+quH7qEI8AUPJt198GCG1FwyUnKYs393H8SoLjSy249gxfn6Rv1GK0EshdBc
0cMAH71ajtkH+5Uufw4Cs9c+gAJf3a11f8et9ezr9f/xynnwY8h+5D618tA/PPrQMr96/jdQSwME
FAACAAgAJ0OVShNKLp1ZAAAAXgAAAEYAHABpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRk
Yi9ibG9iLWRlbGV0ZS1vYmplY3RzdG9yZS1kYi1zdGRlcnIudHh0VVQJAANZJPpYWST6WHV4CwAB
BPUBAAAEFAAAABXGOwqAQAwFwN5TPLCVbYTtrPw0FpbWfiIE3CRoFLy9Ws2MEztUIOq8PY0KwTnR
Cr28gB260Hli0RQms53CSHPP/lOrOImHhm7a1dJ3GK+oEGMZY94OXfYCUEsDBAoAAAAAAC1DlUoA
AAAAAAAAAAAAAAANABwAaW1wb3J0ZWQvdzNjL1VUCQADZST6WDMm+lh1eAsAAQT1AQAABBQAAABQ
SwMECgAAAAAALUOVSgAAAAAAAAAAAAAAACgAHABpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvVVQJAANlJPpYMyb6WHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAtQ5VKwtse
nH4AAACHAAAAQwAcAGltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJm
YWN0b3J5X29wZW45LWFjdHVhbC50eHRVVAkAA2Uk+lhlJPpYdXgLAAEE9QEAAAQUAAAAJca9CsIw
FIbhvVfxQRcdLA5SwU1MC0Fpi/VnTptTCSQ5QY6Kd6/i8j5v3mmFc3Os+q5ten2psMDIoTApeSqu
NOyd/NhxFIpSKHqS5xS+j1lyFmW5Wi/nWb3Vhw1OLpAFPwQv48TFGya+I7K46a04EoQxEEbjPdks
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
a+f+Dgp2SeCFQGUY3/6hOOzMho8MUUduJEg7rAtZuSM63e/Jz+5d7epMb4H7NfrVacaqXwSZQZBi
kmJUfg2w4xan1z8knkgXoFgYdF0bCiFfHThsHQNl+/T65PPd0vrX/a+rh8+/3D/c/baybHX0cVCa
UuxoPavHjU4bzhI/Y8rSPMW9SyFQLi7Gl4P3ZgOwLcDqF9x5N7jbj3c/z60vJAZWBr5hrRFkCogn
dcxLmCThdgmZRSVIDxIjxDIOmkDyRxVOJeZOr033PujXeYKI4Lj1sjO8qKvhK9Q06lZTr5j1of3l
ANiNOwj9/BXQD7hSjv/zx4cH6wbMr3xDxf+791DrZGSZ/GVBXctyj7eHYDOW0QAqJOQO6wvQuBXn
jDvW90XAK9GN+kUHpLlffONe8Q36BTfpF1zftrvoGd60X3iXvcKbDQaXw9nsfDK+HA/g2S/Waa9Y
79F9v/BmvcK7S0KSqCuIXjEOB/2WijdCOewV5Q9/ZkwuQsb0S89Y+6U2SUZpzwD7ZTchogL3jLBf
fsO8r3As7Rni5C0gvhPYZ0nwvmesF2+CVUaE9w61X/oz3JFXOJdrjP8vZNO3JHbD3mD2S3qyJMBA
CHDQF77z/wXfefHi460v7sYHLu5Wv9y+4a3b5Psk+54rpcYjvyW+cvXfmP4XUEsDBBQAAgAIAC1D
lUqjq8XnXAAAAF4AAABDABwAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmZhY3Rvcnlfb3Blbjktc3RkZXJyLnR4dFVUCQADZST6WGUk+lh1eAsAAQT1AQAABBQAAAAL
T8wsUcjPU8jLL8lMq3TJz0tVKMnMTU1RyC8t0VEoKMpPTi0uVkjOz9VLLCjISdULT03yziwBUc75
eSWpeSV6LqllqTn5BblAtkJBZoqCrYKZmYm5gbKrvxsXAFBLAwQKAAAAAAD9QpVKAAAAAAAAAAAA
AAAAIAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQJAAMNJPpYMyb6WHV4CwAB
BPUBAAAEFAAAAFBLAwQKAAAAAAAIQ5VKAAAAAAAAAAAAAAAAKgAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL1VUCQADICT6WDMm+lh1eAsAAQT1AQAABBQAAABQSwME
FAACAAgA+EKVSnX8Bk5rAAAAegAAAFMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtYWN0dWFsLnR4dFVUCQAD
BCT6WAQk+lh1eAsAAQT1AQAABBQAAAANyDEOwjAMBdDdp/gjSAxcgLFSGWgllB7AbawSERxku5yf
TE96NLKpuGMwa4ZTuj+GeUnnCz59eRfcoEetRNOcnsuEJB6IFwdYwWuzQNEe0ilRuOL47sZZVCRL
hks4fmJemmLl7Y1ouILoD1BLAwQUAAIACAD4QpVKTa1dHvUAAAARAgAAUQAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5l
ZWRlZC1kaWZmLnR4dFVUCQADBCT6WAUk+lh1eAsAAQT1AQAABBQAAADNkMFqwzAQRO/+ij22yKoa
Qo8FJ8TQUJqU2GnOa2ubisqSkVaN+/cVJpfeeygMLAzDm2GllKDevE0DRbVBRlWfGnWi7tnw9ayT
sVodyBJGUha/fWLJFFkGislyVGYYfWDS6rLs1YU6OVrkdx+GORbV1mmaSG/WCrsclMZlGTZoZRrP
ATU5Ik1a0jRSn0F3PHEhhPhH07DnhHYeVlUgF+USxKJ8gKoqoJCvq6aBNhOBP5ABHcw4MC4bBFck
/EJCJI7wRSEa76DD/hPYwz0U4gmDoxihDsEHuGm3L/X+2N6WkD8R8UzwCC5Zm4vFbt8ejru/qy5+
AFBLAwQUAAIACAD4QpVK4gbLVEkAAABPAAAAVQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50
eHRVVAkAAwQk+lgEJPpYdXgLAAEE9QEAAAQUAAAADcjRCYAwDAXA/07xRnAFNxDqAql9aKik0kTn
t18Hl7Y1Z+z0QFwSEIOUPgJqMzjRULnxPueQSiMrK5zh+Dhcu6HI0RAdC1L6AVBLAwQUAAIACAD5
QpVKCq1rAxYIAADlGwAAWQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
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
D5LffUwwoFRBOQJ/AU0AzmYFuTQnNdwhSR5BndNgFquNAumnXaGDb0bHuyPmLj/Wr+/4SJZQdOe9
KfqCgzrfhsw3VOBbP8N8FdiWGseLKZgYxhedWRD8b88BAj9euBFwD4jhH6FIAdr0bDPs5v7HOtur
25s6B/P2qn76DtV/X6dydb1Hf7hHLn769vERPYFa8G46ACZByyZGWInToBeQE86hdXdFuBuiQcsg
LWgz1AGdTt4SuRgy+UWn8glyK95yV9fgkPPetrabtNfUe8zI3+ETa2og18V3WICh9JtpAgsFLXQv
RNDkYQP94en7H+5//OXpjydhr61twh3RDQqadRM0GHONrwn6/1agz95h/dn/SaB/fdydjWv+6cen
n3/5hJ4gqININjVObWokl/zfG4ddO35FHc//N97tPQw/A9+Z3+79G1BLAwQUAAIACAAIQ5VKSMFw
FXoAAAAdAQAASAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Jp
bmRpbmdzLWluamVjdC1rZXktYWN0dWFsLnR4dFVUCQADICT6WCAk+lh1eAsAAQT1AQAABBQAAADF
zDsKAjEURuE+q/hLBbdgOaCFCBIXEGcuM8FMbrgPIbt3Ciuxtz0HvnBKUkkVgwgLdvF8Ga73uD9g
3WqaCUdULyWEz8GNzKXmOuNJXWEMHSU3gy7sZcKjt7R5TdjYeiMomZEoIqnB8koT2O2H90rF6T/i
uKRcv73wBlBLAwQUAAIACAAIQ5VK++8eNw4BAAAUAwAARgAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2JpbmRpbmdzLWluamVjdC1rZXktZGlmZi50eHRVVAkAAyAk
+lggJPpYdXgLAAEE9QEAAAQUAAAAxVHBSgMxEL3vV8xR2Y2hiHgS1tIFi4jSrvac3YxtNJuEzMR2
/95Qe1IvFtHTDLx5j/feCCFAPnmbBiQ5U6xks1rKFXa3hg9jmozVcoEWFaG0avSJBSOxiEjJMkkz
BB8Ztdye93KLnQhW8bOPw/6M5Nxp3KGeTWVnnDZuTcK4F+xZvOIocBfyivqMd1yUZfnfflTPSdm9
m7oGMakuoJxUl1DXBRTi4Xq5hAVyii4TIRMI2AP10QQG2vhkNXRjUEQQomfPY0AgZMZIX/lvyib8
G4V+o4yDorxR0WFGmhh9hJN2ftfcP7anFeTKSa0RrsAla3PY8oAdn7fNfQObATXkL30n+OMCflHy
o5HPgsU7UEsDBBQAAgAIAAhDlUpvUmONTwAAAMEAAABKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvYmluZGluZ3MtaW5qZWN0LWtleS1leHBlY3RlZC50eHRVVAkA
AyAk+lggJPpYdXgLAAEE9QEAAAQUAAAAvczRDYAgDAXA/07xVnEDoxMgNkIktGmLCdv77wAOcEfr
su/YOIb12i/cPB0h8GxVA15ktBPH1OQONQmJqQznCDYHffiT2uBfglxS7SB6AVBLAwQUAAIACAAI
Q5VKLUENPwsIAACDHgAATgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2JpbmRpbmdzLWluamVjdC1rZXktcHJldHR5LWRpZmYuaHRtbFVUCQADICT6WCAk+lh1eAsA
AQT1AQAABBQAAADNWWtz47YV/e5fwbGndZMxScmSHEtau5P1Y5JJ02Zit/nYAUlQxBokWAC0pG37
33vxokiKlLydTbLZyUoiXvdx7jkX3HeZzOntybsMowQ+ciyRF2eICyxvziuZ+tfn8FjILcW3JwtK
ipcLb/FKBJE48f594sF/Em+kn+CYcSQJKxZewQq81EMR4wnmfsSkZPnCG5cbL4HvOFme/PfEbGc3
iRllfOGdjSZzPRY8EorvSZra8QjFLyvOqiLx3dT0Wv1pHmROEIySxDtLksSMpayQfopyQrcLL2cF
EyWKrYE54isCJo9x7o3Mo5KBc9oPjil49Iq1Qdm4Y+lkMunZX6BC+AJzkjYGBfmI9RnNQ32KU7nw
RsHMPU+IKCmCTUgBkbEWrkkiM1g8Gv3B2oeShBSreqWxzaZGfWtnx5pLigyMkvX0jL1i3vFoNpst
h4KNsQlDoHLyFzhL2MUpZQjc4GSVyXbm1Kw7cB+BL+4oBqEnElwcdVyWKKLYjzGlLS99vW8rSusM
vPN1DhXU1hyVO8uecKxyNwgavbgNmS5cLGZd3AFQo3JjTnjYlJBe2B9cwxdeoD66Hg6aJ0iCo636
29OmvqcsfvkJcRmAq4uUcCH9OCM0GQysOu4J1l8c2ozjHFJ7ceQ8e4YLvwGcH6kpLdjNHOoALZLE
iPqIkhXUhmQ9bnGskP4dKhKKXTjsPiqE6neGTUJ3eI4rLlRqlNndCkQRZKdyGYMza+CY4tHmHbKi
hfN9OKw43i47wAxmx/JlQuwFkh0Nc5BylneCbflRnaGi/tcqjzAHNOEmusxTZ/g+jVrUzuctAnTl
0keDrpKn02kv3TSzX3OM2mhmSsCUQU34FgcWnn0QMea24DSxhNVwXLvYSzhGJAbDcoCkSq6qU5lp
A+jYxKLGOdKqVVjkm2rVQxBP/RP84Bi9+OqBMYjkaIVbmVl4l3XAI4pUFNXEGKgBbABT7Dev6/cu
K9fT+SD3pjjdEYCCFexYy2OjmnuWJmnSXgrJFsPT53i+PKTp9U6WZZp22KoYlusk2dvASzAdXoHn
R60Jv/aeqrJkXILScotkCGqe40IK7+sQzkOVzJiJt1Fj1cwA6iXgNHaZ0gv0nAH9r+coYxBAQk92
dHblgK3oBlF65yzonX1ptCxHG78j7zn0BfbR5ajWne7REPeD59SVXZd065g+OwNWYiOb/hpHL0T6
kquyM5EwhnvBpVg23Jhap8+ERLIS76sINLzWw0BVT685aolkjEaIt8fd0SnFukJ3Azn7WD+tyWli
6tj2Ueqr6xbU9+GWcIg5DrZyO1ikZIPNPpaPR22XAqR7EFNm+yq+JsAFvAO1es+PPikSvAGSOuDa
TggbJvT5ZcmoJW/XlsUKZaYt2F5pgvMitjlq6NXO0LEBsRMh80sba7/XCmZ/1gbXnVnraJJylBsL
O3XSbiMaNXI3wLT7sdlCr8nWVusxhcYReuY3CNPV/HEHL6vJA4M6EO2xuo1M9tvjdnNs9zDh28fw
YEuQOJ41x3zrSMFddUbN0WenkZ07ydU3jtD2zTxQJI3bjsiR6eWbnFswDo+XAyxj/VctmOg73Pjh
6nrUN4WiCNMFSqHCLvaWm+d6Ey3IBbh66v3HO12e1ELckO/uaoqgQ2epL7cl7t3qdNAiO7Fzxc0w
1QRZN6NINaMDGnWWYyFc4zEY5760NKrjSRP1W6QQJAYaolfCKnFXP4Fm9iMu7hpi2afzruXoSkxT
XBSXA2o1Ehy3298WiZZEJk4D32SNhQb0OFiqmmjJhW37Bpq+ps5GFVRV0eQdp+8JeV2kLLYxZJVU
fNEsv4hWWknsEOAlBVtAwcbOkaZY6l2gh3nOsDkptEq7AvuVD5J5EsYiM9tCTXivBClOlj9aTICx
EWdrSDh0AhmCtbYpIjJQTVDtx/TKdvF1K2J/O3ZQjaz6f9QWUfdKp9vj5ySBW5ZxTCVIuMt3j6JA
H8YEeoXYQwRwR1eaN709qfPHwcS0TLuXH079e3Jwdn9/3yjps+vH+8fZYy8/QXPZj+KHh4c+qxc4
L4GhWsm3bVpnZgBfwdJW5T/Mr0fXlrdiihH/p24P3FVAPdHXpkxNeRfat27vRMxJCTnl8c1pJmUp
FmGIPqBNsGJsBYtKIhR09bOQkkiEH/5VYb4Nx8E0uLQ/Amgtgw/i9Bb21fvdeu2dY5ZgX+UQr2He
nyHTKpk30+vGEjDKviiMWLKFD6gHsBsJcXPubgLqfWE2vg3/AfkEzgrvkUThwy9P4S84+oFI+/G+
IjQJfwbdRQKHgBQIpy8xMCxc3ysqRUhyhWCchOtJHAJt+IAnCU1+rqeJ8HvVfuDk/n0YQScCoRbQ
kXwAGfdf8NaH5qZCNJAbCSaP25Y2XhSd74/oC/zQc3Wx90QGnXbSmaJuNV7rhZB+cQoi62boVwG7
/uL8dgxxhfHb1iyo+ONzQLXPb+0I5ATMcB9NkxoQU7P1sJ37yT6b+9pRnxvzDrp++QbX/1hEolwO
+//Tt09P3s9YVrxQhQZZF4ovHaYzVlHg420JS4DnmWRKuBWrSkWT3eh9Frcmn9+tVwSK8rs7Nv0d
HYszMNU7ivY2XkEnjoPVTjro+QGv2BsgrT3/DvEClNp74Jxx70/P3//48Le/P3914bme7sYrKkp/
04L+XCQ2e0NoJl8Iif32oJgOe25R8P8z2DPIoCdJDtdWEM9PK/vP6uTsU5z8ZD77Yty8+lXcNOz2
xTj5za9Tqp0P3T1CY6b/7fl/UEsDBAoAAAAAAO5ClUoAAAAAAAAAAAAAAAAtABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvVVQJAAPwI/pYMyb6WHV4CwABBPUB
AAAEFAAAAFBLAwQKAAAAAAAKQ5VKAAAAAAAAAAAAAAAAOQAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L1VUCQADIyT6WDMm+lh1eAsAAQT1
AQAABBQAAABQSwMEFAACAAgA7kKVSo80GnBEAAAAoAkAAFwAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9mYWlsdXJlc19SU0EtT0FFUC53
b3JrZXItc3RkZXJyLnR4dFVUCQAD8CP6WPAj+lh1eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/N
Sy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw4XIeVTuqdlTtqNpRtaNqR9WOqh1VS3O1AFBL
AwQUAAIACADxQpVKVALJsjYAAADAAgAAZQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L2ZhaWx1cmVzX1JTQVNTQS1QS0NTMS12MV81Lndv
cmtlci1zdGRlcnIudHh0VVQJAAP1I/pY9SP6WHV4CwABBPUBAAAEFAAAAHPOL81JUcjLL1FIT81L
LUosSVVIVMhOrVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2kKkFAFBLAwQUAAIACAAIQ5VKjzQa
cEQAAACgCQAAWgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJ
L2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBLU9BRVAtc3RkZXJyLnR4dFVUCQADICT6WCAk
+lh1eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/NSy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1
MTYw4XIeVTuqdlTtqNpRtaNqR9WOqh1VS3O1AFBLAwQUAAIACAAKQ5VKVALJsjYAAADAAgAAYwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5
L3Rlc3RfZmFpbHVyZXNfUlNBU1NBLVBLQ1MxLXYxXzUtc3RkZXJyLnR4dFVUCQADIyT6WCMk+lh1
eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/NSy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw
4XIeVTuqdpCpBQBQSwMECgAAAAAA/UKVSgAAAAAAAAAAAAAAACYAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL1VUCQADDST6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMECgAA
AAAAD0OVSgAAAAAAAAAAAAAAACoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9VVAkAAy4k+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAA9DlUoAAAAAAAAA
AAAAAAAwABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMv
VVQJAAMuJPpYMyb6WHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAPQ5VKzW7KwJEAAACdAAAARwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtbm8t
Y29ycy1zdGRlcnIudHh0VVQJAAMuJPpYLiT6WHV4CwABBPUBAAAEFAAAAB3LuwrCMBQA0N2vuKOC
jWlS+lpbRbAUMRUHcYjtVULzKGnQ37c4nuEwGmcRTSIWA81LlpSckixh0DtD5DRpJDd8nlQgLYav
86Oyb1LjB7WbDNpwT7N0SYwXPKYPaMX10gicZ+Xs7o/KWYt9WAzHrjuDdnKAl1QaB1iP1UEEj9Ls
vXe+dkYqK0SzhajIY75Z/QBQSwMEFAACAAgAD0OVSlh9lnuRAAAAnQAAAE4AHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLW5vLWNvcnMtd29ya2Vy
LXN0ZGVyci50eHRVVAkAAy4k+lguJPpYdXgLAAEE9QEAAAQUAAAAHcu7CsIwFADQ3a+4o4KNaVL6
WltFsBQxFQdxiO1VQvMoadDftzie4TAaZxFNIhYDzUuWlJySNCmgd4bIadJIbvg8qUBaDF/nR2Xf
pMYPajcZtOGeZumSGC94TB/QiuulETjPytndH5WzFvuwGI5ddwbt5AAvqTQOsB6rgwgepdl773zt
jFRWiGYLUZHHfLP6AVBLAwQKAAAAAAAMQ5VKAAAAAAAAAAAAAAAALwAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvVVQJAAMnJPpYMyb6WHV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACAD9QpVKJ5EDvq0AAACuAwAASAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1iYXNpYy5hbnktc3RkZXJyLnR4dFVUCQADDST6
WA0k+lh1eAsAAQT1AQAABBQAAADN0cEKgjAcgPF7T7FjQa5tLqdetQgSiVZ0iA5L/8VQN5mjXr/o
3APs+N1+8DFCRUR4xCgiac7ifC0wJQQ1dsBqHHvAF7jvtcc1+Ld1nTZPXMILejsOYPw1SThlOaNx
IrIbquX5WEmYJm3N6heFNQYa/220O50OqLeqRQ+le2jRvCu20jtQw8Y560o7KG2krJYoylIaL2bs
H46LgHEZDRfH0jRcXMyTcHGcBLL1A1BLAwQUAAIACAD9QpVKjkW/Nq4AAACuAwAATwAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1iYXNpYy5hbnku
d29ya2VyLXN0ZGVyci50eHRVVAkAAw4k+lgOJPpYdXgLAAEE9QEAAAQUAAAAzdC7CsIwGEDh3afI
qGBjLrVpuraKYCliFAdxiO2vBNukxKCvrzj7ABnP9nEYoSIhacIoInnBeLEUWKQpat2A9Tj2gE9w
3ZqAGwhv5x/G3nEFL+jdOIAN5yxLKSsY5ZmQF9So475W8HwaZxe/KJ210IZvo83hsEO90x26adND
h6aPcq2CBz2svHe+coM2Vql6jhKZUz6bsH84yePF5VzGi5PLaM/lmBARMU6QOHAfUEsDBBQAAgAI
AABDlUqFoGChmgAAADoBAABPABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvY29ycy9jb3JzLW5vLXByZWZsaWdodC5hbnktc3RkZXJyLnR4dFVUCQADDyT6WA8k+lh1
eAsAAQT1AQAABBQAAADNzrsKwjAUANDdr8ioYGMefa+tIliKGMVBHGJ7ldA8Shr09xVnP8DxbIcR
mkUkjhhFJC8ZL5MCxyRDnTNYjqMGfIbbTgXcQng5Pyj7wDU8QbvRgA2XNI0pKxnlaVZcUStOh0bA
NClnV19UzlrowsdoezzukXayR3epNPRoPlQbETxIs/be+doZqawQzRJFRU75YsZ+5RL+H7k3UEsD
BBQAAgAIAABDlUoZhL5/mwAAADoBAABWABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvY29ycy9jb3JzLW5vLXByZWZsaWdodC5hbnkud29ya2VyLXN0ZGVyci50eHRV
VAkAAw8k+lgPJPpYdXgLAAEE9QEAAAQUAAAAzc49DoIwGADQ3VN01EQqLdgCK2hMJMRYjINxqPBp
GvpDSqPX1zh7AMe3PRoTHsVpRAmKs4ImxTrHnHHUOYPlOGrAZ7jtVcANhJfzg7IPXMETtBsN2HBh
LCW0oCRhPL+iRpyOtYBpUs6uviidtdCFj9GubQ9IO9mju1QaejQfyq0IHqTZeO985YxUVoh6iaI8
I8liRn/kMvInuTdQSwMEFAACAAgAAEOVSlfl1gBHAgAARQwAAEkAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLmFueS1zdGRlcnIudHh0
VVQJAAMQJPpYECT6WHV4CwABBPUBAAAEFAAAAO2WXWvbMBSG7/crdNOywWTr+yMQRkjSdqxrytyy
izGKLMmJqWMZR13Xfz8lZYWUwVpKWUqHfWHZ5ryvH17rnPHspJgdT8HnaVGMDqcDMOvred2CRYzd
IM+bYE2zCKs4UAohUK9AGyIwTROuvQPlDRhZ61crOA5t7EMDR+sn8LZG9mZ8v/iBj3YBRqcfgTXt
ulITjPuthYnMUDrwRiuv1u/mpqvz3q/CVZ908q73VVPPFzHrbj7EcOnbobSGIE84tF4ryFBFoOI2
XXHvNZXIamz2l+bnhZn7IdoPG2vDteQeHe2Rg3TeCac7a+n9zfddLH1cBLcaHk7PsufF8u+Yb2nh
hzJ3iiljsYNeWAIZMxyWJRFQKGkkFlxIZ//C/E74ljl+Rcy3cv5g5pYw4V3lIHZSQyY4gopgAzn2
0iGiGNf4cTl/duYEYQkRgwQDpAaEDVDSpgzYsMxM1zU+++rLT3XMTny8Dv1l3c6zif/hm9AtfRu/
CcEwGRBMhdTfwUlx/uW4SGp1aPPNIqm23sa0BkdnZ6e3kCtTN8nb28vxQRF7b5bTvg/9JCxN3RbF
8XsAtcL03Z/Nabm75gjdZXOK74a58UvvZ5XCrqJCQEqdTf0MU6gc1VAjjgzTApnH/uf3+9nprHgl
m+vDhwiiNPLcQCJMCZktFTSEeVilqGNSVkYh+jToR9PRJHtxXJDk1mqVkGifwkhwajqlwlCWMvUP
S4yg+olhPP+fxW3muJQlc0SngZZXKYtpKzCVpml/k0hzjbQSfMcG2l9QSwMEFAACAAgAAEOVSuTE
cXGiAAAAdAIAAFAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9j
b3JzL2NvcnMtb3JpZ2luLmFueS53b3JrZXItc3RkZXJyLnR4dFVUCQADECT6WBAk+lh1eAsAAQT1
AQAABBQAAADNzrsKwjAUANDdr8ioYGMeJX2srSJYihjFQRxie5XQJilp0N+3OPsBHc92GKFJROKI
UUTSnMU5IVhMaJzBahh6wFd4HHTANYSP8522L1zCG3o3GLDhJkRMWc4oF0l2R7W8nCoJ46id3fxQ
OGuhCZPR/nw+ot6pFj2V7qFFy67YyeBBma33zpfOKG2lrNYoylLKVwv2L5dm880lXMw4l/J55L5Q
SwMEFAACAAgAAUOVSrrYAZDbAgAAmBIAAFMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXN0YXR1cy5hbnktc3RkZXJyLnR4dFVU
CQADEiT6WBIk+lh1eAsAAQT1AQAABBQAAADNl89qHDkQh+/7FH3yrTz6U5JKBhNCcJaF3U3AD2BK
qlJsMvEMnjGbvH1qsmzOC4Ig+tLdNI0+SvrqV+8+/H3/4c+77a+7+/u3v9/dbO/13B+3tx//2Do/
Px/O2/7Asj2ez8eb3c6Hcu3s8jdEzu3G5dsdH592L3o6vL50Pe2OLzr2T58ez9fHb2/Oh8/6fEtd
A6pT8L0GwKEKzbkGqecWxQk1kqsv/PWBP+mtu+L9/vDPw6Oy6Mvp9iuMg/0Yfv736ufdw+nM59fT
bXTuevv439vN1nI8PJ90ezptF4DTa7eFncbr/rd3v4C2KesIoUMhKYCpVOBeGIQKlSYhUe1ztH4h
2tgK5todeK8VkIKDOnQAu8iFQ8ZWJ2sbFqJldIMSKhQWDyhWVuqMkEIevgoG73mONi5EG0KolWRc
yiqAWQRqoQQlcdIoPKrGOVpciBZJEL0rUCmbpbQx1FYHuOhy4VR77GmONq1EG6rjQQOGuxTYlQIk
2SyllZxEHFnCHG1eiNY5zxqz6ZhNVVjYahvskbPjMIY1oebmaMtKtBIzt9igNEXANjow9g46MEbf
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
AAAiRJVKAAAAAAAAAAAAAAAADwAcAHJldHJpZXMvd2VicnRjL1VUCQADLyb6WDMm+lh1eAsAAQT1
AQAABBQAAABQSwMECgAAAAAAIkSVSgAAAAAAAAAAAAAAABsAHAByZXRyaWVzL3dlYnJ0Yy9kYXRh
Y2hhbm5lbC9VVAkAAy8m+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIACJElUpiqwoIbQAA
AKMAAABAABwAcmV0cmllcy93ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dUaHJl
c2hvbGQtYWN0dWFsLnR4dFVUCQADLyb6WC8m+lh1eAsAAQT1AQAABBQAAABlyksKwjAUBdB5VnH3
4EDorGhw0lohK4jNTROIL5AP3b6IiIOOz7ksd7NMGrM2ZrzpASkKcT4NWIMVYUKlOMSKFkreo2xK
PUZjcKW3PTU8u/csH2UNOTl8ebJl4xEL7Rr4SzNd7K/jktz+U70BUEsDBBQAAgAIACJElUqLilAF
zwAAAKgBAAA+ABwAcmV0cmllcy93ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dU
aHJlc2hvbGQtZGlmZi50eHRVVAkAAy8m+lgvJvpYdXgLAAEE9QEAAAQUAAAAxY/BTsMwEETv/oq9
p2ZVtRJSTwltxKGFIozo2Yk3xNLWRvZaKX9PoP0CLpzmMHqjN1prwPfI5UwZd1YstieDJ+r2Xm7x
UDw7fCUmmwnZfsUiWiiLTpQLS8ZEkvzMT9Ql6dHNM/1oQyDGrgwDJXLNOZYghzi9jTM1RnaaLp/U
C7k7uYiqquq/PGwvxfKvRV2DXi7WUC0XK6hrpbfHZ3M8tPDUGtM8thtgHwjuVxu4DUOm4MBnkDHF
yYcPBX9hFLw0xsCOBjs/gavtT391BPUNUEsDBBQAAgAIACJElUqrucb0cwAAANYAAABCABwAcmV0
cmllcy93ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtZXhwZWN0
ZWQudHh0VVQJAAMvJvpYLyb6WHV4CwABBPUBAAAEFAAAAJXLOwrDMBBF0V6rmD2kCLgzjkhjx4FZ
gWw9WQJlBPrg7YcQTApXqe+5w/zgedQ0aeb+rjuKQUDXS0erNyKIVCCWQqHqc9qDbGr4f1HPnplu
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
lkOVSgAAAAAAAAAAAAAAABMAHAB3ZWJydGMvZGF0YWNoYW5uZWwvVVQJAAMsJfpYMyb6WHV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACACWQ5VKYqsKCG0AAACjAAAAOAAcAHdlYnJ0Yy9kYXRhY2hhbm5l
bC9idWZmZXJlZEFtb3VudExvd1RocmVzaG9sZC1hY3R1YWwudHh0VVQJAAMrJfpYKyX6WHV4CwAB
BPUBAAAEFAAAAGXKSwrCMBQF0HlWcffgQOisaHDSWiEriM1NE4gvkA/dvoiIg47PuSx3s0waszZm
vOkBKQpxPg1YgxVhQqU4xIoWSt6jbEo9RmNwpbc9NTy79ywfZQ05OXx5smXjEQvtGvhLM13sr+OS
3P5TvQFQSwMEFAACAAgAlkOVSn/Ph4fIAAAAmAEAADYAHAB3ZWJydGMvZGF0YWNoYW5uZWwvYnVm
ZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtZGlmZi50eHRVVAkAAysl+lgsJfpYdXgLAAEE9QEAAAQU
AAAAvU+9bsIwEN79FLcH94RAqsSUFCIGoFR1VWYnvhBLh43is0LfvmnhCTp0+obvX2sN+Bk5Xyjh
xorF+mTwRM3OywNesmeH78RkEyHbr5hFCyXRA6XMknCkZpAW3WRvexsCMTa562ggV11iDrKP40c/
qfvITtPtSq2Qe5KbqKIo/rvftpIt/7aXJej5bAnFfLaAslR6fXw1x30Nh9qYaluvgH0geF6s4BEM
iYIDn0D6IY4+nBX8xaPgrTIGNtTZ6QHc1/7w942gvgFQSwMEFAACAAgAlkOVSqu5xvRzAAAA1gAA
ADoAHAB3ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtZXhwZWN0
ZWQudHh0VVQJAAMrJfpYKyX6WHV4CwABBPUBAAAEFAAAAJXLOwrDMBBF0V6rmD2kCLgzjkhjx4FZ
gWw9WQJlBPrg7YcQTApXqe+5w/zgedQ0aeb+rjuKQUDXS0erNyKIVCCWQqHqc9qDbGr4f1HPnplu
cKbFSktzDvlTUXyKlr55NHnDOWaY1eNAE2xor7OSVH9SvQFQSwMEFAACAAgAlkOVSt9njtWbBwAA
nxgAAD4AHAB3ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtcHJl
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
LmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LTY2NDcwLXNhbXBsZS50eHRVVAUA
Azkk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAALQ5VKdGuAt7A/AAAY6QAAOAAYAAAAAAAB
AAAApIEGNAMAY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LTY2NTg1LXNh
bXBsZS50eHRVVAUAAyYk+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACPQpVKAAAAAAAAAAAA
AAAABwAYAAAAAAAAABAA7UEodAMAY3J5cHRvL1VUBQADPiP6WHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAI9ClUoAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQWl0AwBjcnlwdG8vc3VidGxlL1VU
BQADPiP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAI9ClUol4NMILAAAACwAAAA+ABgAAAAA
AAEAAACkgbF0AwBjcnlwdG8vc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktbWFsZm9ybWVkLXBhcmFt
ZXRlcnMtc3RkZXJyLnR4dFVUBQADPiP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI9ClUow
O7ixSwAAAGgAAAA8ABgAAAAAAAEAAACkgVV1AwBjcnlwdG8vc3VidGxlL3JzYS1pbXBvcnQta2V5
LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAAz4j+lh1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAACOQpVKAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UEWdgMAY3J5cHRvL3dvcmtl
cnMvVVQFAAM8I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAjkKVSgAAAAAAAAAAAAAAABYA
GAAAAAAAAAAQAO1BX3YDAGNyeXB0by93b3JrZXJzL3N1YnRsZS9VVAUAAzwj+lh1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAIAAACOQpVKJeDTCCwAAAAsAAAAMQAYAAAAAAABAAAApIGvdgMAY3J5cHRv
L3dvcmtlcnMvc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktc3RkZXJyLnR4dFVUBQADPCP6WHV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAJJClUoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQUZ3AwBk
aXNwbGF5bGlzdHMvVVQFAANDI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkkKVSqNX/ehQ
AAAAjgAAADIAGAAAAAAAAQAAAKSBjXcDAGRpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtdHJh
bnNmb3Jtcy1zdGRlcnIudHh0VVQFAANDI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkkKV
SvKWldVHAAAASQAAACkAGAAAAAAAAQAAAKSBSXgDAGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXkt
bGlzdC1zdGRlcnIudHh0VVQFAANDI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAxEKVSgAA
AAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B83gDAGVkaXRpbmcvVVQFAAOfI/pYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAxEKVSgAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1BNXkDAGVkaXRpbmcv
ZGVsZXRpbmcvVVQFAAOfI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAxEKVSnxxSH/LAQAA
ABQAACgAGAAAAAAAAQAAAKSBgHkDAGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWVtb2ppLXN0ZGVy
ci50eHRVVAUAA58j+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACWQpVKAAAAAAAAAAAAAAAA
FAAYAAAAAAAAABAA7UGtewMAZWRpdGluZy9leGVjQ29tbWFuZC9VVAUAA0wj+lh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACWQpVK3SHD7UIAAACGAAAAQQAYAAAAAAABAAAApIH7ewMAZWRpdGlu
Zy9leGVjQ29tbWFuZC9jbGlwYm9hcmQtYWNjZXNzLXdpdGgtdXNlci1nZXN0dXJlLXN0ZGVyci50
eHRVVAUAA0wj+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAiRJVKwDLNFFALAAADRQAADQAY
AAAAAAABAAAApIG4fAMAZXJyb3JfbG9nLnR4dFVUBQADLyb6WHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAMRClUoAAAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQU+IAwBmYXN0L1VUBQADnyP6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKlClUoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQY6I
AwBmYXN0L2NhbnZhcy9VVAUAA20j+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACpQpVKsrYu
N44AAAA0AQAAJgAYAAAAAAABAAAApIHUiAMAZmFzdC9jYW52YXMvY2FudmFzLWxpbmVEYXNoLXN0
ZGVyci50eHRVVAUAA20j+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACqQpVKAAAAAAAAAAAA
AAAACQAYAAAAAAAAABAA7UHCiQMAZmFzdC9jc3MvVVQFAANvI/pYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAqkKVStsI00I7AAAAPwAAACkAGAAAAAAAAQAAAKSBBYoDAGZhc3QvY3NzL2NvbXBh
cmUtY29udGVudC1zdHlsZS1zdGRlcnIudHh0VVQFAANvI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAuUKVSgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1Bo4oDAGZhc3QvZXZlbnRzL1VUBQAD
jiP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALBClUpYKmd1OQAAAEMAAAAyABgAAAAAAAEA
AACkgemKAwBmYXN0L2V2ZW50cy9kaXNwbGF5LW5vbmUtb24tZm9jdXMtY3Jhc2gtc3RkZXJyLnR4
dFVUBQADfCP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALlClUowtW3jOQAAAEMAAAArABgA
AAAAAAEAAACkgY6LAwBmYXN0L2V2ZW50cy9tb3VzZS1mb2N1cy1pbWFnZW1hcC1zdGRlcnIudHh0
VVQFAAOOI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAsUKVSgAAAAAAAAAAAAAAAAsAGAAA
AAAAAAAQAO1BLIwDAGZhc3QvZm9ybXMvVVQFAAN9I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAr0KVSjd5jHtoAAAAawAAADsAGAAAAAAAAQAAAKSBcYwDAGZhc3QvZm9ybXMvY2hlY2tib3gt
YXBwZWFyYW5jZS1jaGFuZ2UtYnktY2hlY2tlZC1zdGRlcnIudHh0VVQFAAN5I/pYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAsUKVSjswPIKrAAAA6QAAADMAGAAAAAAAAQAAAKSBTo0DAGZhc3Qv
Zm9ybXMvZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQADfSP6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALFClUoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQWaO
AwBmYXN0L2ZyYW1lcy9VVAUAA30j+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACxQpVK2wjT
QjsAAAA/AAAALwAYAAAAAAABAAAApIGsjgMAZmFzdC9mcmFtZXMvZnJhbWUtZGlzcGxheS1ub25l
LWZvY3VzLXN0ZGVyci50eHRVVAUAA30j+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC4QpVK
AAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFQjwMAZmFzdC9pbWFnZXMvVVQFAAOLI/pYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAuEKVSiGPvTgyAAAAMwAAACwAGAAAAAAAAQAAAKSBlo8DAGZh
c3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQFAAOLI/pYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAtkKVSgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BLpADAGZh
c3QvbG9hZGVyL1VUBQADhyP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALBClUrbCNNCOwAA
AD8AAABSABgAAAAAAAEAAACkgXSQAwBmYXN0L2xvYWRlci9kaXNwbGF5LWltYWdlLXVuc2V0LWNh
bi1ibG9jay1pbWFnZS1hbmQtY2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQFAAN7I/pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsUKVStsI00I7AAAAPwAAAFMAGAAAAAAAAQAAAKSB
O5EDAGZhc3QvbG9hZGVyL2ltYWdlcy1lbmFibGVkLXVuc2V0LWNhbi1ibG9jay1pbWFnZS1hbmQt
Y2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQFAAN9I/pYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAtkKVStsI00I7AAAAPwAAAC0AGAAAAAAAAQAAAKSBA5IDAGZhc3QvbG9hZGVyL3Jl
bG9hZC1wb2xpY3ktZGVsZWdhdGUtc3RkZXJyLnR4dFVUBQADhyP6WHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAALxClUoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQaWSAwBmYXN0L3JlZ2lvbnMv
VVQFAAOTI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAvEKVSgAAAAAAAAAAAAAAABcAGAAA
AAAAAAAQAO1B7JIDAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvVVQFAAOUI/pYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAvEKVSjkBy91AAAAAegAAADUAGAAAAAAAAQAAAKSBPZMDAGZhc3QvcmVn
aW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsLWFic3Bvcy1zdGRlcnIudHh0VVQFAAOTI/pYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAvEKVSjkBy91AAAAAegAAAC4AGAAAAAAAAQAAAKSB7JMD
AGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsLXN0ZGVyci50eHRVVAUAA5Mj+lh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC8QpVK5IrHQzwAAAA9AAAAQAAYAAAAAAABAAAApIGU
lAMAZmFzdC9yZWdpb25zL3Njcm9sbGluZy93aGVlbC1zY3JvbGxhYmxlLXNpbmdsZS1yZWdpb24t
c3RkZXJyLnR4dFVUBQADlCP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMRClUoAAAAAAAAA
AAAAAAAKABgAAAAAAAAAEADtQUqVAwBmYXN0L3RleHQvVVQFAAOfI/pYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAxEKVSsTqVOONAQAABQoAACMAGAAAAAAAAQAAAKSBjpUDAGZhc3QvdGV4dC9l
bW9qaS1nZW5kZXItMi1zdGRlcnIudHh0VVQFAAOfI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAxEKVSgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BeJcDAGZhc3QveHNsL1VUBQADnyP6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMNClUpO+yD4iAAAAOcAAAAlABgAAAAAAAEAAACkgbuX
AwBmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQFAAOdI/pYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAw0KVSv2iLmSPAAAA7gAAACcAGAAAAAAAAQAAAKSBopgDAGZhc3Qv
eHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4dFVUBQADniP6WHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAMNClUrPj2YOUAAAAKAAAAAkABgAAAAAAAEAAACkgZKZAwBmYXN0L3hzbC94
c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAUAA54j+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADEQpVKgUp3rUsAAACsAAAANAAYAAAAAAABAAAApIFAmgMAZmFzdC94c2wveHNsdC10cmFu
c2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQADnyP6WHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACNElUomLYbYZgIAAI4FAAARABgAAAAAAAEAAACkgfmaAwBmdWxsX3Jlc3Vs
dHMuanNvblVUBQADMSb6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMxClUoAAAAAAAAAAAAA
AAAFABgAAAAAAAAAEADtQaqdAwBodHRwL1VUBQADryP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAACNDlUoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQemdAwBodHRwL3Rlc3RzL1VUBQADUST6
WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMxClUoAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADt
QS6eAwBodHRwL3Rlc3RzL2luc3BlY3Rvci9VVAUAA68j+lh1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAADMQpVKAAAAAAAAAAAAAAAAHQAYAAAAAAAAABAA7UF9ngMAaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9VVAUAA68j+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADMQpVKMX5OWYoB
AACtBAAAQQAYAAAAAAABAAAApIHUngMAaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1zaXplcy1kaXNrLWNhY2hlLWFjdHVhbC50eHRVVAUAA68j+lh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADMQpVKf92RjX0BAAABBgAAPwAYAAAAAAABAAAApIHZoAMAaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1zaXplcy1kaXNrLWNhY2hlLWRpZmYudHh0VVQFAAOv
I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzEKVSifcCa1QAQAAsAMAAEMAGAAAAAAAAQAA
AKSBz6IDAGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Utc2l6ZXMtZGlzay1j
YWNoZS1leHBlY3RlZC50eHRVVAUAA68j+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADMQpVK
zLPYguwIAADuLQAARwAYAAAAAAABAAAApIGcpAMAaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1zaXplcy1kaXNrLWNhY2hlLXByZXR0eS1kaWZmLmh0bWxVVAUAA68j+lh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAAjQ5VKAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UEJrgMA
aHR0cC90ZXN0cy9sb2FkaW5nL1VUBQADUST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACND
lUoAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQVauAwBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9VVAUAA1Ek+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjQ5VK
CvU4ivMAAACoAQAAZAAYAAAAAAABAAAApIG6rgMAaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJh
Y3Rpb24tYWN0dWFsLnR4dFVUBQADUST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACNDlUqz
PT1YRwEAAIgCAABiABgAAAAAAAEAAACkgUuwAwBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFj
dGlvbi1kaWZmLnR4dFVUBQADUST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACNDlUpGqefD
oQAAADsBAABmABgAAAAAAAEAAACkgS6yAwBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlv
bi1leHBlY3RlZC50eHRVVAUAA1Ek+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjQ5VKF70g
/U4IAAAxHQAAagAYAAAAAAABAAAApIFvswMAaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rp
b24tcHJldHR5LWRpZmYuaHRtbFVUBQADUST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACND
lUpnSuqNWQAAAF4AAABkABgAAAAAAAEAAACkgWG8AwBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRl
cmFjdGlvbi1zdGRlcnIudHh0VVQFAANRJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzkKV
SgAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1BWL0DAGh0dHAvdGVzdHMvbWVkaWEvVVQFAAOzI/pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzkKVSgAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1B
o70DAGh0dHAvdGVzdHMvbWVkaWEvaGxzL1VUBQADsyP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAM5ClUoOesqG4gAAAHABAAA8ABgAAAAAAAEAAACkgfK9AwBodHRwL3Rlc3RzL21lZGlhL2hs
cy92aWRlby1kdXJhdGlvbi1hY2Nlc3NpYmlsaXR5LXN0ZGVyci50eHRVVAUAA7Mj+lh1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAAD1QpVKAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UFKvwMAaHR0
cC90ZXN0cy9taXNjL1VUBQAD/SP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPVClUoVNTWS
egAAALwAAAAqABgAAAAAAAEAAACkgZS/AwBodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0
LXN0ZGVyci50eHRVVAUAA/0j+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADTQpVKAAAAAAAA
AAAAAAAAFgAYAAAAAAAAABAA7UFywAMAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL1VUBQADviP6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9ClUrbCNNCOwAAAD8AAAA3ABgAAAAAAAEAAACkgcLA
AwBodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJhY2stYW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0
VVQFAAO1I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA00KVSpYRszloAAAAawAAAC0AGAAA
AAAAAQAAAKSBbsEDAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LWdvYmFjazItc3RkZXJyLnR4
dFVUBQADviP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPNClUoAAAAAAAAAAAAAAAAUABgA
AAAAAAAAEADtQT3CAwBodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQAD+SP6WHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAPhClUoAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQYvCAwBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAAwQk+lh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADUQpVK0qv8VnEAAAB0AAAAVwAYAAAAAAABAAAApIHvwgMAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvY29ubmVjdC1zcmMtc3Rhci13ZWJzb2NrZXQt
YWxsb3dlZC1zdGRlcnIudHh0VVQFAAO/I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1EKV
SnxY80BxAAAAdAAAAF4AGAAAAAAAAQAAAKSB8cMDAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2RlZmF1bHQtc3JjLXN0YXItc2VjdXJlLXdlYnNvY2tldC1hbGxvd2Vk
LXN0ZGVyci50eHRVVAUAA78j+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD4QpVKY6qsbIIA
AACoAAAAQAAYAAAAAAABAAAApIH6xAMAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADAyT6WHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAPhClUpjqqxsggAAAKgAAABSABgAAAAAAAEAAACkgfbFAwBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMt
Mi1zdGRlcnIudHh0VVQFAAMEJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0EKVSgAAAAAA
AAAAAAAAACEAGAAAAAAAAAAQAO1BBMcDAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L1VUBQADuCP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANBClUoAAAAAAAAAAAAAAAArABgA
AAAAAAAAEADtQV/HAwBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC93ZWJzb2NrZXQv
VVQFAAO4I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0EKVSpZ/YhThAAAAcAEAAFIAGAAA
AAAAAQAAAKSBxMcDAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3dlYnNvY2tldC9p
bnNlY3VyZS13ZWJzb2NrZXQtaW4taWZyYW1lLXN0ZGVyci50eHRVVAUAA7gj+lh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADzQpVKYEtmEJEAAAD7AQAARQAYAAAAAAABAAAApIExyQMAaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdpbi1zdGRl
cnIudHh0VVQFAAP5I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHESVSlsEWA6iBQAATRAA
AAoAGAAAAAAAAQAAAKSBQcoDAGh0dHBkLmNvbmZVVAUAAycm+lh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAADuQpVKAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UEn0AMAaW1wb3J0ZWQvVVQFAAPw
I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJ0OVSgAAAAAAAAAAAAAAAA8AGAAAAAAAAAAQ
AO1BatADAGltcG9ydGVkL2JsaW5rL1VUBQADWST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ANxClUoAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQbPQAwBpbXBvcnRlZC9ibGluay9mYXN0L1VU
BQADzyP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANtClUoAAAAAAAAAAAAAAAAaABgAAAAA
AAAAEADtQQHRAwBpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL1VUBQADzSP6WHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAANpClUoAAAAAAAAAAAAAAAAhABgAAAAAAAAAEADtQVXRAwBpbXBvcnRl
ZC9ibGluay9mYXN0L2Zvcm1zL2J1dHRvbi9VVAUAA8wj+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADaQpVKxyHv2zcAAABAAAAARwAYAAAAAAABAAAApIGw0QMAaW1wb3J0ZWQvYmxpbmsvZmFz
dC9mb3Jtcy9idXR0b24vYnV0dG9uLXJlc2V0LWZvY3VzLWJ5LW1vdXNlLXN0ZGVyci50eHRVVAUA
A8wj+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADaQpVKAAAAAAAAAAAAAAAAIAAYAAAAAAAA
ABAA7UFo0gMAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9yYW5nZS9VVAUAA8wj+lh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADaQpVKxyHv2zcAAABAAAAAPwAYAAAAAAABAAAApIHC0gMAaW1w
b3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9yYW5nZS9yYW5nZS1mb2N1cy1ieS1tb3VzZS1zdGRlcnIu
dHh0VVQFAAPMI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA20KVSgAAAAAAAAAAAAAAACEA
GAAAAAAAAAAQAO1BctMDAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvc3VibWl0L1VUBQADzSP6
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANtClUrHIe/bNwAAAEAAAABBABgAAAAAAAEAAACk
gc3TAwBpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL3N1Ym1pdC9zdWJtaXQtZm9jdXMtYnktbW91
c2Utc3RkZXJyLnR4dFVUBQADzSP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANxClUoAAAAA
AAAAAAAAAAAdABgAAAAAAAAAEADtQX/UAwBpbXBvcnRlZC9ibGluay9mYXN0L3JlcGxhY2VkL1VU
BQADzyP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANxClUoHa2Mw4QAAAHABAABDABgAAAAA
AAEAAACkgdbUAwBpbXBvcnRlZC9ibGluay9mYXN0L3JlcGxhY2VkL2ltYWdlLW1hcC1hbHQtY29u
dGVudC1jcmFzaC1zdGRlcnIudHh0VVQFAAPPI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
J0OVSgAAAAAAAAAAAAAAABcAGAAAAAAAAAAQAO1BNNYDAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2Uv
VVQFAANZJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJ0OVSgAAAAAAAAAAAAAAACEAGAAA
AAAAAAAQAO1BhdYDAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL1VUBQADWST6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACdDlUo2GZqefQAAAIcAAABGABgAAAAAAAEAAACkgeDW
AwBpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLWRlbGV0ZS1vYmplY3RzdG9y
ZS1kYi1hY3R1YWwudHh0VVQFAANZJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJ0OVSrVF
j7gvAgAAsgQAAEQAGAAAAAAAAQAAAKSB3dcDAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhl
ZGRiL2Jsb2ItZGVsZXRlLW9iamVjdHN0b3JlLWRiLWRpZmYudHh0VVQFAANZJPpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAJ0OVSvc6kclcAQAA3wIAAEgAGAAAAAAAAQAAAKSBitoDAGltcG9y
dGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZGVsZXRlLW9iamVjdHN0b3JlLWRiLWV4
cGVjdGVkLnR4dFVUBQADWST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACdDlUp4d/1NqwkA
AIIuAABMABgAAAAAAAEAAACkgWjcAwBpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9i
bG9iLWRlbGV0ZS1vYmplY3RzdG9yZS1kYi1wcmV0dHktZGlmZi5odG1sVVQFAANZJPpYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAJ0OVShNKLp1ZAAAAXgAAAEYAGAAAAAAAAQAAAKSBmeYDAGlt
cG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZGVsZXRlLW9iamVjdHN0b3JlLWRi
LXN0ZGVyci50eHRVVAUAA1kk+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAtQ5VKAAAAAAAA
AAAAAAAADQAYAAAAAAAAABAA7UFy5wMAaW1wb3J0ZWQvdzNjL1VUBQADZST6WHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAC1DlUoAAAAAAAAAAAAAAAAoABgAAAAAAAAAEADtQbnnAwBpbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvVVQFAANlJPpYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgALUOVSsLbHpx+AAAAhwAAAEMAGAAAAAAAAQAAAKSBG+gDAGltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW45LWFjdHVhbC50eHRV
VAUAA2Uk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtQ5VKRGJ/aZwBAAD5BgAAQQAYAAAA
AAABAAAApIEW6QMAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZh
Y3Rvcnlfb3BlbjktZGlmZi50eHRVVAUAA2Uk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAt
Q5VKkO4IK7oAAAA2BQAARQAYAAAAAAABAAAApIEt6wMAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjktZXhwZWN0ZWQudHh0VVQFAANlJPpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALUOVSg1UGeXMCAAAayoAAEkAGAAAAAAAAQAAAKSBZuwD
AGltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW45
LXByZXR0eS1kaWZmLmh0bWxVVAUAA2Uk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtQ5VK
o6vF51wAAABeAAAAQwAYAAAAAAABAAAApIG19QMAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3Blbjktc3RkZXJyLnR4dFVUBQADZST6WHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAP1ClUoAAAAAAAAAAAAAAAAgABgAAAAAAAAAEADtQY72AwBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VUBQADDST6WHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAAhDlUoAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQej2AwBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9VVAUAAyAk+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAD4QpVKdfwGTmsAAAB6AAAAUwAYAAAAAAABAAAApIFM9wMAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWFj
dHVhbC50eHRVVAUAAwQk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD4QpVKTa1dHvUAAAAR
AgAAUQAYAAAAAAABAAAApIFE+AMAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWRpZmYudHh0VVQFAAMEJPpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+EKVSuIGy1RJAAAATwAAAFUAGAAAAAAAAQAAAKSBxPkD
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Fib3J0LWluLWluaXRp
YWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHRVVAUAAwQk+lh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAD5QpVKCq1rAxYIAADlGwAAWQAYAAAAAAABAAAApIGc+gMAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVk
LXByZXR0eS1kaWZmLmh0bWxVVAUAAwUk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAIQ5VK
SMFwFXoAAAAdAQAASAAYAAAAAAABAAAApIFFAwQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvYmluZGluZ3MtaW5qZWN0LWtleS1hY3R1YWwudHh0VVQFAAMgJPpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACEOVSvvvHjcOAQAAFAMAAEYAGAAAAAAAAQAAAKSBQQQE
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2JpbmRpbmdzLWluamVj
dC1rZXktZGlmZi50eHRVVAUAAyAk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAIQ5VKb1Jj
jU8AAADBAAAASgAYAAAAAAABAAAApIHPBQQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvYmluZGluZ3MtaW5qZWN0LWtleS1leHBlY3RlZC50eHRVVAUAAyAk+lh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAIQ5VKLUENPwsIAACDHgAATgAYAAAAAAABAAAApIGiBgQA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYmluZGluZ3MtaW5qZWN0
LWtleS1wcmV0dHktZGlmZi5odG1sVVQFAAMgJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
7kKVSgAAAAAAAAAAAAAAAC0AGAAAAAAAAAAQAO1BNQ8EAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvV2ViQ3J5cHRvQVBJL1VUBQAD8CP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AApDlUoAAAAAAAAAAAAAAAA5ABgAAAAAAAAAEADtQZwPBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9VVAUAAyMk+lh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADuQpVKjzQacEQAAACgCQAAXAAYAAAAAAABAAAApIEPEAQAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvZmFpbHVyZXNf
UlNBLU9BRVAud29ya2VyLXN0ZGVyci50eHRVVAUAA/Aj+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADxQpVKVALJsjYAAADAAgAAZQAYAAAAAAABAAAApIHpEAQAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvZmFpbHVyZXNfUlNBU1NBLVBL
Q1MxLXYxXzUud29ya2VyLXN0ZGVyci50eHRVVAUAA/Uj+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAIQ5VKjzQacEQAAACgCQAAWgAYAAAAAAABAAAApIG+EQQAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0Et
T0FFUC1zdGRlcnIudHh0VVQFAAMgJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACkOVSlQC
ybI2AAAAwAIAAGMAGAAAAAAAAQAAAKSBlhIEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBU1NBLVBLQ1MxLXYx
XzUtc3RkZXJyLnR4dFVUBQADIyT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAP1ClUoAAAAA
AAAAAAAAAAAmABgAAAAAAAAAEADtQWkTBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL1VUBQADDST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAA9DlUoAAAAAAAAAAAAA
AAAqABgAAAAAAAAAEADtQckTBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9VVAUAAy4k+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAPQ5VKAAAAAAAAAAAAAAAA
MAAYAAAAAAAAABAA7UEtFAQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvVVQFAAMuJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAD0OVSs1uysCRAAAA
nQAAAEcAGAAAAAAAAQAAAKSBlxQEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL21vZGUtbm8tY29ycy1zdGRlcnIudHh0VVQFAAMuJPpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAD0OVSlh9lnuRAAAAnQAAAE4AGAAAAAAAAQAAAKSBqRUEAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtbm8tY29ycy13b3Jr
ZXItc3RkZXJyLnR4dFVUBQADLiT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAxDlUoAAAAA
AAAAAAAAAAAvABgAAAAAAAAAEADtQcIWBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9jb3JzL1VUBQADJyT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAP1ClUon
kQO+rQAAAK4DAABIABgAAAAAAAEAAACkgSsXBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtYmFzaWMuYW55LXN0ZGVyci50eHRVVAUAAw0k+lh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAD9QpVKjkW/Nq4AAACuAwAATwAYAAAAAAABAAAApIFaGAQA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWJhc2lj
LmFueS53b3JrZXItc3RkZXJyLnR4dFVUBQADDiT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AABDlUqFoGChmgAAADoBAABPABgAAAAAAAEAAACkgZEZBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtbm8tcHJlZmxpZ2h0LmFueS1zdGRlcnIudHh0
VVQFAAMPJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAEOVShmEvn+bAAAAOgEAAFYAGAAA
AAAAAQAAAKSBtBoEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Nv
cnMvY29ycy1uby1wcmVmbGlnaHQuYW55Lndvcmtlci1zdGRlcnIudHh0VVQFAAMPJPpYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAAEOVSlfl1gBHAgAARQwAAEkAGAAAAAAAAQAAAKSB3xsEAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1vcmlnaW4u
YW55LXN0ZGVyci50eHRVVAUAAxAk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAAQ5VK5MRx
caIAAAB0AgAAUAAYAAAAAAABAAAApIGpHgQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvY29ycy9jb3JzLW9yaWdpbi5hbnkud29ya2VyLXN0ZGVyci50eHRVVAUAAxAk
+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABQ5VKutgBkNsCAACYEgAAUwAYAAAAAAABAAAA
pIHVHwQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3Jz
LXByZWZsaWdodC1zdGF0dXMuYW55LXN0ZGVyci50eHRVVAUAAxIk+lh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAACQ5VK23tCLZcBAADeBQAATAAYAAAAAAABAAAApIE9IwQAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5hbnktc3Rk
ZXJyLnR4dFVUBQADEyT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAxDlUoFQcNXzwIAAL8T
AABVABgAAAAAAAEAAACkgVolBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9jb3JzL2NvcnMtcmVkaXJlY3QtcHJlZmxpZ2h0LmFueS1zdGRlcnIudHh0VVQFAAMnJPpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAXEOVSgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B
uCgEAHBsdWdpbnMvVVQFAAPAJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXEOVSu5dckWG
AAAA9gAAADsAGAAAAAAAAQAAAKSB+igEAHBsdWdpbnMvbnBwLXNldC13aW5kb3ctY2FsbGVkLWR1
cmluZy1kZXN0cnVjdGlvbi1zdGRlcnIudHh0VVQFAAPAJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA6UKVSn1u4UvQAgAADjQAABoAGAAAAAAAAQAAAKSB9SkEAHB5d2Vic29ja2V0LndzLmxv
Zy1lcnIudHh0VVQFAAPlI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2EKVSoJXzWkIAQAA
jwIAABoAGAAAAAAAAQAAAKSBGS0EAHB5d2Vic29ja2V0LndzLmxvZy1vdXQudHh0VVQFAAPHI/pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAhEKVSgAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSB
dS4EAHB5d2Vic29ja2V0Lndzcy5sb2ctZXJyLnR4dFVUBQADKCP6WHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAIRClUoAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgcouBABweXdlYnNvY2tldC53
c3MubG9nLW91dC50eHRVVAUAAygj+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjRJVKRSYd
OdEnAADLqgAADAAYAAAAAAABAAAApIEfLwQAcmVzdWx0cy5odG1sVVQFAAMxJvpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAIkSVSgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BNlcEAHJldHJp
ZXMvVVQFAAMvJvpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAIkSVSgAAAAAAAAAAAAAAAA8A
GAAAAAAAAAAQAO1BeFcEAHJldHJpZXMvd2VicnRjL1VUBQADLyb6WHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAACJElUoAAAAAAAAAAAAAAAAbABgAAAAAAAAAEADtQcFXBAByZXRyaWVzL3dlYnJ0
Yy9kYXRhY2hhbm5lbC9VVAUAAy8m+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAiRJVKYqsK
CG0AAACjAAAAQAAYAAAAAAABAAAApIEWWAQAcmV0cmllcy93ZWJydGMvZGF0YWNoYW5uZWwvYnVm
ZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtYWN0dWFsLnR4dFVUBQADLyb6WHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACJElUqLilAFzwAAAKgBAAA+ABgAAAAAAAEAAACkgf1YBAByZXRyaWVzL3dl
YnJ0Yy9kYXRhY2hhbm5lbC9idWZmZXJlZEFtb3VudExvd1RocmVzaG9sZC1kaWZmLnR4dFVUBQAD
Lyb6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACJElUqrucb0cwAAANYAAABCABgAAAAAAAEA
AACkgURaBAByZXRyaWVzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9idWZmZXJlZEFtb3VudExvd1RocmVz
aG9sZC1leHBlY3RlZC50eHRVVAUAAy8m+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAiRJVK
PAsBIaAHAACnGAAARgAYAAAAAAABAAAApIEzWwQAcmV0cmllcy93ZWJydGMvZGF0YWNoYW5uZWwv
YnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtcHJldHR5LWRpZmYuaHRtbFVUBQADLyb6WHV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAF1DlUoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQVNjBABz
Y3JvbGxiYXJzL1VUBQADwiT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAF1DlUpuvSNhOQAA
AEIAAAA7ABgAAAAAAAEAAACkgZhjBABzY3JvbGxiYXJzL3Njcm9sbGV2ZW50LWlmcmFtZS1uby1z
Y3JvbGxpbmctd2hlZWwtc3RkZXJyLnR4dFVUBQADwiT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACNElUrkNQtFJEYJAAL+MAAKABgAAAAAAAEAAACkgUZkBABzdGF0cy5qc29uVVQFAAMxJvpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAbUOVSgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B
rqoNAHN0b3JhZ2UvVVQFAAPdJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAbUOVSgAAAAAA
AAAAAAAAABMAGAAAAAAAAAAQAO1B8KoNAHN0b3JhZ2UvZG9tc3RvcmFnZS9VVAUAA90k+lh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAABtQ5VKAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UE9qw0A
c3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9VVAUAA90k+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABtQ5VK93TDYTADAADmDwAANwAYAAAAAAABAAAApIGRqw0Ac3RvcmFnZS9kb21zdG9yYWdl
L2V2ZW50cy9iYXNpYy1zZXRhdHRyaWJ1dGUtYWN0dWFsLnR4dFVUBQAD3ST6WHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAG1DlUqgOYu3ogIAAJMMAAA1ABgAAAAAAAEAAACkgTKvDQBzdG9yYWdl
L2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLXNldGF0dHJpYnV0ZS1kaWZmLnR4dFVUBQAD3ST6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG1DlUoDDKqWGwIAABcNAAA5ABgAAAAAAAEAAACkgUOy
DQBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50
eHRVVAUAA90k+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABtQ5VKRoXt9JALAAALVAAAPQAY
AAAAAAABAAAApIHRtA0Ac3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1zZXRhdHRyaWJ1
dGUtcHJldHR5LWRpZmYuaHRtbFVUBQAD3ST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHRD
lUoAAAAAAAAAAAAAAAAEABgAAAAAAAAAEADtQdjADQBzdmcvVVQFAAPrJPpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAdEOVSgAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BFsENAHN2Zy9hcy1p
bWFnZS9VVAUAA+sk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB0Q5VK2wjTQjsAAAA/AAAA
PwAYAAAAAAABAAAApIFdwQ0Ac3ZnL2FzLWltYWdlL3N2Zy1pbWFnZS13aXRoLWRhdGEtdXJpLWlt
YWdlcy1kaXNhYmxlZC1zdGRlcnIudHh0VVQFAAPrJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAhkOVSgAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BEcINAHdlYmFyY2hpdmUvVVQFAAMMJfpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhkOVStsI00I7AAAAPwAAADoAGAAAAAAAAQAAAKSB
VsINAHdlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLXN0ZGVy
ci50eHRVVAUAAwwl+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACWQ5VKAAAAAAAAAAAAAAAA
BwAYAAAAAAAAABAA7UEFww0Ad2VicnRjL1VUBQADKyX6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAJZDlUoAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQUbDDQB3ZWJydGMvZGF0YWNoYW5uZWwv
VVQFAAMsJfpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlkOVSmKrCghtAAAAowAAADgAGAAA
AAAAAQAAAKSBk8MNAHdlYnJ0Yy9kYXRhY2hhbm5lbC9idWZmZXJlZEFtb3VudExvd1RocmVzaG9s
ZC1hY3R1YWwudHh0VVQFAAMrJfpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlkOVSn/Ph4fI
AAAAmAEAADYAGAAAAAAAAQAAAKSBcsQNAHdlYnJ0Yy9kYXRhY2hhbm5lbC9idWZmZXJlZEFtb3Vu
dExvd1RocmVzaG9sZC1kaWZmLnR4dFVUBQADKyX6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AJZDlUqrucb0cwAAANYAAAA6ABgAAAAAAAEAAACkgarFDQB3ZWJydGMvZGF0YWNoYW5uZWwvYnVm
ZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtZXhwZWN0ZWQudHh0VVQFAAMrJfpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAlkOVSt9njtWbBwAAnxgAAD4AGAAAAAAAAQAAAKSBkcYNAHdlYnJ0Yy9k
YXRhY2hhbm5lbC9idWZmZXJlZEFtb3VudExvd1RocmVzaG9sZC1wcmV0dHktZGlmZi5odG1sVVQF
AAMsJfpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIkSVSjTwfBDdAgAAwRYAABkAGAAAAAAA
AQAAAKSBpM4NAHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAAzAm+lh1eAsAAQT1AQAABBQA
AABQSwUGAAAAAMMAwwB4VwAA1NENAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308384</attachid>
            <date>2017-04-27 06:08:05 -0700</date>
            <delta_ts>2017-04-27 13:41:37 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>483730</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYTg0YTA1ZDQwZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtMCwwICsxLDIzIEBACitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQorbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtXVEZfRElSfQor
KQorCitzZXQoV1BFX0lOU1RBTExFRF9KQVZBU0NSSVBUQ09SRV9IRUFERVJTCisgICAgQVBJL0pT
QmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisgICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAg
ICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5cGVkQXJyYXkuaAorICAgIEFQSS9KU1Zh
bHVlUmVmLmgKKyAgICBBUEkvSmF2YVNjcmlwdC5oCisgICAgQVBJL1dlYktpdEF2YWlsYWJpbGl0
eS5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hF
QURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUt
JHtXUEVfQVBJX1ZFUlNJT059L1dQRS9KYXZhU2NyaXB0Q29yZSIKKyAgICBDT01QT05FTlQgIkRl
dmVsb3BtZW50IgorKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BF
LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjMxODNhMmIw
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3QoQVBQRU5EIEpTQ19MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2lu
Y2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3Jt
LmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAg
ICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVmIHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1h
cF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5cGVkZWYgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlwZTsKIAotI2VsaWYgZGVmaW5lZChVU0Vf
T1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkgfHwgZGVmaW5lZChVU0VfV1BFKQogCiB0
eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlUeXBlOwogdHlwZWRlZiBpbnRwdHJfdCBF
R0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMDJlY2Y0MTcxNDguLjRlNjEwMTI2
YjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ2MSw2ICs0NjEsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTUw
NSw3ICs1MDcsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYyMSw3
ICs2MjMsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzcxLDcgKzc3Myw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTU4LDcgKzk2MCw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAyNSw3ICsxMDI3LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDc1LDExICsxMDc3LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTQyLDcgKzExNDQsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjgzMWVlZTAzYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dMaWJVdGlsaXRpZXMuY3BwCisgICAgZ2xpYi9HUmVm
UHRyLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQzYTMwMGVlODllLi4zNTJjMTkwOWYzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTgsMTEgKzM5OTgsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NzVjMTg5ODRhZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UK
QEAgLTAsMCArMSwzIEBACitsaXN0KEFQUEVORCBQQUxfU09VUkNFUworICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvRGlnZXN0R0NyeXB0LmNwcAorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2U4YmFlOTgxMWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDI4
NiBAQAoraW5jbHVkZShwbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UpCitpbmNsdWRlKHBsYXRmb3Jt
L0ltYWdlRGVjb2RlcnMuY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL0xpbnV4LmNtYWtlKQoraW5j
bHVkZShwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENP
UkVfRElSfSIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNw
ZWN0b3IiCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9CisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0FQSSIK
KyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2J5dGVjb2RlIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvbXBp
bGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgorICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9taml0
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2RlYnVnZ2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50ZXJwcmV0ZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9qaXQiCisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9sbGludCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BhcnNlciIKKyAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L3Byb2ZpbGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
cnVudGltZSIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3lhcnIiCisgICAgIiR7VEhJUkRQ
QVJUWV9ESVJ9L0FOR0xFLyIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvaW5jbHVkZS9L
SFIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2NhaXJvIgorICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9n
bHgiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgorICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIiCisgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6LyIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmciCisgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZCIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZSIKKyAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS90ZXh0L2ljdSIKKyAgICAke1dURl9ESVJ9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUworICAgIGFjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCisgICAgYWNj
ZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKKworICAgIGxvYWRlci9z
b3VwL0NhY2hlZFJhd1Jlc291cmNlU291cC5jcHAKKyAgICBsb2FkZXIvc291cC9TdWJyZXNvdXJj
ZUxvYWRlclNvdXAuY3BwCisKKyAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNr
eU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAorICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorCisgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRp
bmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3Bw
CisgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdTdGF0ZU5v
ZGVDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorCisgICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAorICAg
IHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCisgICAgcGxhdGZvcm0vVGhlbWUuY3BwCisKKyAgICBwbGF0Zm9ybS9hdWRpby9nbGli
L0F1ZGlvQnVzR0xpYi5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1EaXNwbGF5LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0
LmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENh
aXJvSW1wbC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9GbG9hdFJlY3RDYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFkaWVudENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Q
YXR0ZXJuQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250
ZXh0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1QYXRoQ2Fp
cm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8uY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25NYXRyaXhDYWlyby5jcHAKKwor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9HbHlwaFBhZ2VUcmVlTm9kZUZy
ZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3Ry
ZWFtZXJDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhU
ZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0hhcmZCdXp6RmFjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNo
YXBlci5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0xDb21tb24uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xFUy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9y
YXJ5T3BlbkdMU2V0dGluZy5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlVmVydGljYWxEYXRhLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRm
b3JtRGlzcGxheVdQRS5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0lt
YWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
ZXJ0aWZpY2F0ZUluZm8uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9DcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0dSZWZQdHJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVNlcnZl
clNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNw
cAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25l
dHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsv
c291cC9TeW5jaHJvbm91c0xvYWRlckNsaWVudFNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKKworICAgIHBsYXRmb3JtL3NvdXAv
U2hhcmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCisKKyAg
ICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcAorICAgIHBsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAorICAgIHBsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCisKKyAgICAjIEZJWE1FOiBTcGxpdCBi
dWlsZCB0YXJnZXJzIGJlbG93IGludG8gYSBXZWJDb3JlUGxhdGZvcm0gbGlicmFyeQorICAgIGVk
aXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKKworICAgIHBhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5j
cHAKKworICAgIHBsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9n
bGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xp
Yi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL0tleWVkRW5jb2RlckdsaWIuY3BwCisgICAgcGxhdGZv
cm0vZ2xpYi9NYWluVGhyZWFkU2hhcmVkVGltZXJHTGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIv
U1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL1NoYXJlZEJ1ZmZlckds
aWIuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWly
by5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JbWFnZVdQRS5jcHAKKworICAgIHBsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCisKKyAg
ICBwbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRT
dHJpbmdzV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcAorICAgIHBs
YXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3Bl
L1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3Jl
ZW5XUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcAorICAgIHBsYXRm
b3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwCisgICAgcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9XaWRn
ZXRXUEUuY3BwCisKKyAgICBwbGF0Zm9ybS94ZGcvTUlNRVR5cGVSZWdpc3RyeVhkZy5jcHAKKykK
KworbGlzdChBUFBFTkQgV2ViQ29yZV9VU0VSX0FHRU5UX1NUWUxFX1NIRUVUUworICAgICR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5jc3MKKykK
Kworc2V0KFdlYkNvcmVfVVNFUl9BR0VOVF9TQ1JJUFRTCisgICAgJHtXRUJDT1JFX0RJUn0vRW5n
bGlzaC5scHJvai9tZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5ncy5qcworICAgICR7V0VCQ09S
RV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qcworKQorCitz
ZXQoV2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFNfREVQRU5ERU5DSUVTICR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHApCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
TElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtFR0xfTElCUkFSSUVTfQor
ICAgICR7Rk9OVENPTkZJR19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRTJfTElCUkFSSUVTfQor
ICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorICAgICR7R0xJQl9HTU9EVUxFX0xJQlJBUklFU30K
KyAgICAke0dMSUJfR09CSkVDVF9MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAg
ICAke0dOVVRMU19MSUJSQVJJRVN9CisgICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9CisgICAgJHtJ
Q1VfTElCUkFSSUVTfQorICAgICR7TElCR0NSWVBUX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBf
TElCUkFSSUVTfQorICAgICR7TElCWE1MMl9MSUJSQVJJRVN9CisgICAgJHtMSUJYU0xUX0xJQlJB
UklFU30KKyAgICAke1NRTElURV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTElCUkFSSUVTfQorKQor
CitsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0NBSVJPX0lO
Q0xVREVfRElSU30KKyAgICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtGT05UQ09ORklHX0lO
Q0xVREVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lO
Q0xVREVfRElSU30KKyAgICAke0dOVVRMU19JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9J
TkNMVURFX0RJUlN9CisgICAgJHtJQ1VfSU5DTFVERV9ESVJTfQorICAgICR7TElCR0NSWVBUX0lO
Q0xVREVfRElSU30KKyAgICAke0xJQlNPVVBfSU5DTFVERV9ESVJTfQorICAgICR7TElCWE1MMl9J
TkNMVURFX0RJUn0KKyAgICAke0xJQlhTTFRfSU5DTFVERV9ESVJ9CisgICAgJHtTUUxJVEVfSU5D
TFVERV9ESVJ9CisgICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCitpZiAoRU5BQkxFX1NVQlRM
RV9DUllQVE8pCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIGNyeXB0
by9DcnlwdG9BbGdvcml0aG0uY3BwCisgICAgICAgIGNyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5jcHAKKyAgICAgICAgY3J5cHRvL0NyeXB0b0tleS5jcHAKKyAgICAgICAgY3J5cHRvL1N1
YnRsZUNyeXB0by5jcHAKKyAgICAgICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAKKwor
ICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmNwcAorICAgICAg
ICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmNwcAorICAgICAgICBj
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmNwcAorICAgICAgICBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCisgICAgICAgIGNyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1IS0RGLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1QQktERjIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QUVTX1BLQ1MxX3YxXzUuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMS5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMjI0LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyNTYuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4
NC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNw
cAorCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5j
cHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCR0NyeXB0LmNw
cAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DVFJHQ3J5cHQuY3Bw
CisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTUdDcnlwdC5jcHAK
KyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfS1dHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtRUNESEdDcnlwdC5jcHAKKyAgICAg
ICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1FQ0RTQUdDcnlwdC5jcHAKKyAgICAgICAg
Y3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1IS0RGR0NyeXB0LmNwcAorICAgICAgICBjcnlw
dG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUhNQUNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9n
Y3J5cHQvQ3J5cHRvQWxnb3JpdGhtUEJLREYyR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisgICAgICAgIGNy
eXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvS2V5RUNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0
by9nY3J5cHQvQ3J5cHRvS2V5UlNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L1Nl
cmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcAorCisgICAgICAgIGNyeXB0by9rZXlzL0Ny
eXB0b0tleUFFUy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YU9jdGV0U2Vx
dWVuY2UuY3BwCisgICAgICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKKyAgICAgICAgY3J5cHRv
L2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNB
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSYXcuY3BwCisgICAgICAgIGNyeXB0
by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3BwCisgICAgKQorZW5kaWYgKCkKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAppbmRleCBmMmQ2YjNkNDJjNC4uNjYwYjNjNzg1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC02Niw2ICs2Niw4IEBA
IHR5cGVkZWYgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXI7CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBfQXRrT2JqZWN0
IEF0a09iamVjdDsKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXI7CisjZWxpZiBQTEFURk9STShXUEUpCitjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPiB7
IH07CiAjZWxzZQogY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI7CiAjZW5kaWYKQEAg
LTExMTUsNiArMTExNyw4IEBAIHByb3RlY3RlZDoKICAgICBDT01QdHI8QWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBBdGtPYmpl
Y3QqIG1fd3JhcHBlcjsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTU0MTU5NGFkZWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hl
V1BFLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxp
YSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKworI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNh
dGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3Jt
SGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSosIE5vZGUqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0Fu
Y2hvcihjb25zdCBOb2RlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3NpYmlsaXR5T2JqZWN0
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlP
YmplY3RXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZTk0
YzU5OTRjYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
d3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gRGVmYXVsdEJlaGF2
aW9yOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VT
U0lCSUxJVFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbmZpZy5oCmluZGV4IGQ1ZDQzZmU0ZGY0Li4xODA5OTBlYmZmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgK
QEAgLTEwNCw3ICsxMDQsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykK
KyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgVVNFX05FV19USEVN
RSAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5RUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKaW5k
ZXggNDQzYTY4MjE1YWIuLjRjN2QwMjk4ZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlz
L0NyeXB0b0tleUVDLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NDRUNDcnlw
dG9yICpDQ0VDQ3J5cHRvclJlZjsKIHR5cGVkZWYgQ0NFQ0NyeXB0b3JSZWYgUGxhdGZvcm1FQ0tl
eTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogLy8gZ2NyeV9zZXhwKiBlcXVhdGVzIGdjcnlfc2V4cF90Lgogc3RydWN0IGdj
cnlfc2V4cDsKIHR5cGVkZWYgZ2NyeV9zZXhwKiBQbGF0Zm9ybUVDS2V5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaAppbmRleCAzMDViZDRjNDNhMC4uNDFiY2U4NTll
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oCkBAIC0zNiw3
ICszNiw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQ1JTQUNyeXB0b3IgKkNDUlNBQ3J5cHRvclJlZjsK
IHR5cGVkZWYgQ0NSU0FDcnlwdG9yUmVmIFBsYXRmb3JtUlNBS2V5OwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5
X3NleHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBn
Y3J5X3NleHAqIFBsYXRmb3JtUlNBS2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4
IDNjMTU3ZWY2ZDg4Li4wNWU5MWJmZjAxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApA
QCAtMTI0NiwxMyArMTI0NiwxMyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0
b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogICAgICAgICAgICAgaW1hZ2VFbGVtZW50ID0gaW1h
Z2VFbGVtZW50RnJvbUltYWdlRG9jdW1lbnQoZG9jdW1lbnQoKSk7CiAKICAgICAgICAgaWYgKGlt
YWdlRWxlbWVudCkgewotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAg
ICAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICppbWFnZUVsZW1lbnQsIGRvY3VtZW50KCkudXJsKCksIGRvY3VtZW50KCkudGl0
bGUoKSk7CiAjZWxzZQogICAgICAgICAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBh
c3RlKCktPndyaXRlSW1hZ2UoKmltYWdlRWxlbWVudCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1l
bnQoKS50aXRsZSgpKTsKICNlbmRpZgogICAgICAgICB9IGVsc2UgewotI2lmIFBMQVRGT1JNKENP
Q09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICAvLyBGSVhNRTogQ29udmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1hdGNoIE1hYyBh
bmQgZGVsZXRlIHRoaXMuCkBAIC0xMzc3LDcgKzEzNzcsNyBAQCB2b2lkIEVkaXRvcjo6Y29weUlt
YWdlKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICBpZiAodXJsLmlzRW1wdHkoKSkK
ICAgICAgICAgdXJsID0gcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwoKTsKIAotI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHdyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoKlBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLCAqZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0
RGlzcGxheVN0cmluZygpKTsKICNlbHNlCiAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCktPndyaXRlSW1hZ2UoKmVsZW1lbnQsIHVybCwgcmVzdWx0LmFsdERpc3BsYXlTdHJp
bmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAxNjUyYjZkYjM5My4uMzZiOTZiMmJj
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDY3LDcgKzQ2Nyw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoQXR0cmlidXRlZFN0
cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxC
bG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3cml0
ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB3cml0ZUltYWdlVG9QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmLCBFbGVtZW50JiBpbWFnZUVs
ZW1lbnQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgd3JpdGVT
ZWxlY3Rpb24oUGFzdGVib2FyZFdyaXRlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dw
ZS9FZGl0b3JXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5h
ZmZkMmRlMWU5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3Bl
L0VkaXRvcldQRS5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RWRpdG9yLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQu
aCIKKyNpbmNsdWRlICJtYXJrdXAuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21QYXN0ZWJvYXJk
RGF0YShQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiByYW5nZSwg
Ym9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCit7CisgICAgY2hvc2VQ
bGFpblRleHQgPSBmYWxzZTsKKworICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzID0gcGFzdGVib2Fy
ZC50eXBlcygpOworICAgIGlmICh0eXBlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKCJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCIp
ICYmIGZyYW1lLmRvY3VtZW50KCkpIHsKKyAgICAgICAgU3RyaW5nIG1hcmt1cCA9IHBhc3RlYm9h
cmQucmVhZFN0cmluZygidGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiKTsKKyAgICAgICAgaWYgKFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1
cCgqZnJhbWUuZG9jdW1lbnQoKSwgbWFya3VwLCBlbXB0eVN0cmluZygpLCBEaXNhbGxvd1Njcmlw
dGluZ0FuZFBsdWdpbkNvbnRlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVh
c2UoKTsKKyAgICB9CisKKyAgICBpZiAoIWFsbG93UGxhaW5UZXh0KQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5jb250YWlucygidGV4dC9wbGFpbjtjaGFyc2V0PXV0
Zi04IikpIHsKKyAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0cnVlOworICAgICAgICBpZiAoUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChy
YW5nZSwgcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIHJl
dHVybiBudWxscHRyOworfQorCit2b2lkIEVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZCkKK3sKKyAgICBQYXN0ZWJvYXJkV2ViQ29udGVudCBw
YXN0ZWJvYXJkQ29udGVudDsKKyAgICBwYXN0ZWJvYXJkQ29udGVudC50ZXh0ID0gc2VsZWN0ZWRU
ZXh0Rm9yRGF0YVRyYW5zZmVyKCk7CisgICAgcGFzdGVib2FyZENvbnRlbnQubWFya3VwID0gY3Jl
YXRlTWFya3VwKCpzZWxlY3RlZFJhbmdlKCksIG51bGxwdHIsIEFubm90YXRlRm9ySW50ZXJjaGFu
Z2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxzKTsKKyAgICBwYXN0ZWJvYXJkLndyaXRlKHBh
c3RlYm9hcmRDb250ZW50KTsKK30KKwordm9pZCBFZGl0b3I6OndyaXRlSW1hZ2VUb1Bhc3RlYm9h
cmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJv
YXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQsIE1haWxCbG9j
a3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKK3sKKyAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJl
dHVybjsKKworICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CisgICAgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tUGFzdGVib2FyZERhdGEoKnBhc3Rl
Ym9hcmQsIG1fZnJhbWUsICpyYW5nZSwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsK
KyAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdl
LCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCisgICAgICAgIHBhc3RlQXNGcmFnbWVudCgq
ZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hv
c2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjk1N2M4Nzg0
ZmMuLmVkZTk0MDE3Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0y
NjExLDcgKzI2MTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aXNJbnNpZGVTY3JvbGxiYXIoY29u
c3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
I2lmICFQTEFURk9STShHVEspCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkK
IAogYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50b0hvcml6b250
YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTE0ZTBmZTNiZjEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCkBAIC0w
LDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKwor
I2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2Fy
ZEV2ZW50JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KCkKK3sKKyAgICBp
ZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUoJm1fZnJhbWUpOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dp
ZGdldChSZW5kZXJXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRn
ZXQoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBXaWRnZXQmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZy
YW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKiwgSGl0VGVzdFJlc3VsdCopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVy
OjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmLCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK09wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gRXZlbnRIYW5kbGVy
OjphY2Nlc3NLZXlNb2RpZmllcnMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXk7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jpem9udGFsKGNvbnN0IEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oCmluZGV4IGNkY2YyNjVmMjYwLi41ZTkxMWQ3MDhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vy
c29yLmgKQEAgLTc0LDYgKzc0LDggQEAgdXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBSZWZQdHI8U2hh
cmVkQ3Vyc29yPjsKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gTlNDdXJzb3IgKjsKICNlbGlmIFBM
QVRGT1JNKEdUSykKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gR1JlZlB0cjxHZGtDdXJzb3I+Owor
I2VsaWYgUExBVEZPUk0oV1BFKQordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSB2b2lkKjsKICNlbmRp
ZgogCiBjbGFzcyBDdXJzb3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKaW5kZXggNGE5
ZjgyZDlkZTQuLjVkYzlhZTM4MDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EcmFnRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKQEAg
LTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2VsZWN0aW9uRGF0YTsK
IH0KIHR5cGVkZWYgV2ViQ29yZTo6U2VsZWN0aW9uRGF0YSogRHJhZ0RhdGFSZWY7Ci0jZWxpZiBQ
TEFURk9STShJT1MpCisjZWxpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKIHR5cGVk
ZWYgdm9pZCogRHJhZ0RhdGFSZWY7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuaAppbmRleCBlMzI1NWQxOWFkMi4uY2JlZjczOGY2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdJbWFnZS5oCkBAIC00MSw3ICs0MSw3IEBAIHR5cGVkZWYgc3RydWN0IENHSW1hZ2UgKkNH
SW1hZ2VSZWY7CiBPQkpDX0NMQVNTIE5TSW1hZ2U7CiAjZWxpZiBQTEFURk9STShXSU4pCiB0eXBl
ZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlICJSZWZQdHJDYWlyby5o
IgogI2VuZGlmCiAKQEAgLTY0LDcgKzY0LDcgQEAgdHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gRHJhZ0ltYWdlUmVmOwogdHlwZWRlZiBSZXRhaW5QdHI8TlNJbWFnZT4gRHJhZ0ltYWdlUmVm
OwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBIQklUTUFQIERyYWdJbWFnZVJlZjsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQog
dHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBEcmFnSW1hZ2VSZWY7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IDE5NWI2NzZiYzJiLi4xZDgwYjRj
MTgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtMTk4LDcgKzE5OCw3
IEBAIFdFQkNPUkVfRVhQT1JUIGJvb2wgZmlsZXNIYXZlU2FtZVZvbHVtZShjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKIFJldGFpblB0cjxDRlVSTFJlZj4gcGF0aEFzVVJMKGNvbnN0IFN0
cmluZyYpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYp
OwogQ1N0cmluZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKIENTdHJpbmcgc2hhcmVkUmVz
b3VyY2VzUGF0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRo
cmVhZFNoYXJlZFRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5jcHAKaW5kZXggNzc4Y2FjMmQ5OGIuLmRkYTY4MmViODQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAgTWFpblRocmVhZFNoYXJlZFRpbWVyJiBNYWluVGhyZWFkU2hhcmVkVGltZXI6
OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdU
SykKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogTWFpblRocmVhZFNoYXJl
ZFRpbWVyOjpNYWluVGhyZWFkU2hhcmVkVGltZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuaAppbmRleCA1OTBmNjg5NGFkMy4uNDkw
NzMwZjE0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFy
ZWRUaW1lci5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
I2VuZGlmCiAKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBNYWluVGhyZWFkU2hhcmVk
VGltZXIoKTsKIAogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2ZpcmVkRnVuY3Rpb247Ci0j
aWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAg
IFJ1bkxvb3A6OlRpbWVyPE1haW5UaHJlYWRTaGFyZWRUaW1lcj4gbV90aW1lcjsKICNlbmRpZgog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCA0MjllMWFmMTQwMC4uNmU2
ZjIxNjVmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTYyLDcgKzYy
LDcgQEAgZW51bSBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgeyBE
ZWZhdWx0U2VsZWN0ZWRUZXh0VHlwZSwgSW5jbHUKIC8vIEZvciB3cml0aW5nIHRvIHRoZSBwYXN0
ZWJvYXJkLiBHZW5lcmFsbHkgc29ydGVkIHdpdGggdGhlIHJpY2hlc3QgZm9ybWF0cyBvbiB0b3Au
CiAKIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7Ci0jaWYgIShQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdJTikpCisjaWYgIShQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwg
UExBVEZPUk0oV1BFKSkKICAgICBXRUJDT1JFX0VYUE9SVCBQYXN0ZWJvYXJkV2ViQ29udGVudCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYXN0ZWJvYXJkV2ViQ29udGVudCgpOwogICAgIGJvb2wg
Y2FuU21hcnRDb3B5T3JEZWxldGU7CkBAIC04MCw2ICs4MCwxMCBAQCBzdHJ1Y3QgUGFzdGVib2Fy
ZFdlYkNvbnRlbnQgewogICAgIFN0cmluZyB0ZXh0OwogICAgIFN0cmluZyBtYXJrdXA7CiAjZW5k
aWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgU3RyaW5nIHRleHQ7CisgICAgU3RyaW5nIG1hcmt1
cDsKKyNlbmRpZgogfTsKIAogc3RydWN0IFBhc3RlYm9hcmRVUkwgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCBkNzJmMTIwZmNmYy4uM2M2ZGE2
YzdiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5o
CkBAIC03MywxMCArNzMsMTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgbG9uZyBzZXRQYXRobmFt
ZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgbG9u
ZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICNlbmRpZgorCiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFNlbGVjdGlvbkRhdGEmKSA9IDA7CiAgICAgdmly
dHVhbCBSZWY8U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKKworI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVz
KSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBp
bmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJikgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIH5QYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKaW5kZXggODVhOGM5ZmMwNWMuLjIzZjZmMzBjNTJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtNDAs
NiArNDAsMTAgQEAgT0JKQ19DTEFTUyBOU1Bhc3RlYm9hcmQ7CiBPQkpDX0NMQVNTIFVJUGFzdGVi
b2FyZDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9wYXN0ZWJvYXJk
OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7CkBAIC01Myw3
ICs1Nyw3IEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKIGNsYXNzIFBsYXRmb3JtUGFz
dGVib2FyZCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUGxhdGZvcm1Q
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwotI2lmIFBMQVRGT1JNKElP
UykKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKICAgICBXRUJDT1JFX0VYUE9S
VCBQbGF0Zm9ybVBhc3RlYm9hcmQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5n
PiBmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGdldFR5cGVzQnlGaWRlbGl0eUZvckl0ZW1BdEluZGV4KFZlY3RvcjxTdHJpbmc+JiB0eXBlcywg
aW50IGluZGV4KTsKQEAgLTExMCw2ICsxMTQsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBHdGtDbGlwYm9hcmQqIG1fY2xpcGJvYXJkOwogI2VuZGlmCisjaWYgUExBVEZPUk0o
V1BFKQorICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZCogbV9wYXN0ZWJvYXJkOworI2VuZGlmCiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKaW5kZXgg
NWJhZDNjZDBkNTYuLjY0ZTM1NjM5NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2No
ZW1lUmVnaXN0cnkuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBz
ZWN1cmVTY2hlbWVzKCkKICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoImFib3V0Iik7
CiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJkYXRhIik7CiAgICAgICAgIHNlY3Vy
ZVNjaGVtZXMuZ2V0KCkuYWRkKCJ3c3MiKTsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRk
KCJyZXNvdXJjZSIpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRl
eCA1NWI0OWE0ZGRjNy4uNWQ3YWE0OGE3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1dpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBA
IC02MSw2ICs2MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrQ29udGFpbmVyIEd0a0NvbnRhaW5l
cjsKIHR5cGVkZWYgR3RrV2lkZ2V0KiBQbGF0Zm9ybVdpZGdldDsKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oV1BFKQordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVdpZGdldDsKKyNlbmRpZgorCiB0eXBl
ZGVmIFBsYXRmb3JtV2lkZ2V0IFBsYXRmb3JtUGFnZUNsaWVudDsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRp
b0J1c0dMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1
c0dMaWIuY3BwCmluZGV4IDc5MWJmYTM5NjM2Li44MTk3NWI2NGE1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcApAQCAtMjcs
MTEgKzI3LDE3IEBACiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAorI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgQVVESU9f
R1JFU09VUkNFX1BBVEggIi9vcmcvd2Via2l0Z3RrL3Jlc291cmNlcy9hdWRpbyIKKyNlbGlmIFBM
QVRGT1JNKFdQRSkKKyNkZWZpbmUgQVVESU9fR1JFU09VUkNFX1BBVEggIi9vcmcvd2Via2l0d3Bl
L3Jlc291cmNlcy9hdWRpbyIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NS
ZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFy
KiBuYW1lLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aChn
X3N0cmR1cF9wcmludGYoIi9vcmcvd2Via2l0Z3RrL3Jlc291cmNlcy9hdWRpby8lcyIsIG5hbWUp
KTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ19zdHJkdXBfcHJpbnRmKEFVRElPX0dSRVNP
VVJDRV9QQVRIICIvJXMiLCBuYW1lKSk7CiAgICAgR1JlZlB0cjxHQnl0ZXM+IGRhdGEgPSBhZG9w
dEdSZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEocGF0aC5nZXQoKSwgR19SRVNPVVJDRV9MT09L
VVBfRkxBR1NfTk9ORSwgbnVsbHB0cikpOwogICAgIEFTU0VSVChkYXRhKTsKICAgICByZXR1cm4g
Y3JlYXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGdfYnl0ZXNfZ2V0X2RhdGEoZGF0YS5nZXQo
KSwgbnVsbHB0ciksIGdfYnl0ZXNfZ2V0X3NpemUoZGF0YS5nZXQoKSksIGZhbHNlLCBzYW1wbGVS
YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5j
cHAKaW5kZXggNmZhM2VhNzcxZjMuLjgzZDMyZTEzOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMyw5IEBAIENT
dHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAgICAgaWYgKCFjYWNoZWRQYXRoLmlzTnVsbCgp
KQogICAgICAgICByZXR1cm4gY2FjaGVkUGF0aDsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBkYXRhUGF0aChnX2J1aWxkX2ZpbGVuYW1lKERBVEFfRElSLCAid3Bl
IiwgbnVsbHB0cikpOworI2VsaWYgUExBVEZPUk0oR1RLKQogI2lmIE9TKFdJTkRPV1MpCiAgICAg
SE1PRFVMRSBobW9kdWxlID0gMDsKICAgICBHZXRNb2R1bGVIYW5kbGVFeEEoR0VUX01PRFVMRV9I
QU5ETEVfRVhfRkxBR19GUk9NX0FERFJFU1MsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHNoYXJl
ZFJlc291cmNlc1BhdGgpLCAmaG1vZHVsZSk7CkBAIC0yMjIsNiArMjI1LDcgQEAgQ1N0cmluZyBz
aGFyZWRSZXNvdXJjZXNQYXRoKCkKICNlbHNlCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBh
dGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJUiwgIndlYmtpdGd0ay0iIFdFQktJVEdUS19BUElf
VkVSU0lPTl9TVFJJTkcsIE5VTEwpKTsKICNlbmRpZgorI2VuZGlmCiAKICAgICBjYWNoZWRQYXRo
ID0gZGF0YVBhdGguZ2V0KCk7CiAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAppbmRleCA5
MTE0ZTc2Yzc1OS4uMmFjY2ZhZDE1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgPE9wZW5HTC9nbC5oPgogI2VsaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgIk9wZW5H
TEVTU2hpbXMuaCIKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQogI2lmIFVTRShPUEVOR0xfRVNfMikKICNpbmNsdWRlIDxHTEVTMi9nbDIu
aD4KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
TENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0
LmNwcAppbmRleCA3MGY1ODczOTJmNi4uYzE1YmVjNWU5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQo
UGxhdGZvcm1EaXNwbGF5JiBkaXNwCiAgICAgfQogI2VuZGlmCiAKLSNpZiBVU0UoRUdMKSB8fCBQ
TEFURk9STShXQVlMQU5EKQorI2lmIFVTRShFR0wpIHx8IFBMQVRGT1JNKFdBWUxBTkQpIHx8IFBM
QVRGT1JNKFdQRSkKICAgICBpZiAoYXV0byBlZ2xDb250ZXh0ID0gR0xDb250ZXh0RUdMOjpjcmVh
dGVTaGFyaW5nQ29udGV4dChkaXNwbGF5KSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUoZWdsQ29u
dGV4dCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250
ZXh0LmgKaW5kZXggMmMwZWEyN2UxOTMuLjA0NjllYjUzM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApAQCAtMjUsNyArMjUsMTMgQEAKICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogI2lmIFVTRShFR0wpICYmICFQTEFURk9STShHVEsp
CisjaWYgUExBVEZPUk0oV1BFKQorLy8gRklYTUU6IEZpbmQgc29tZSB3YXkgdG8gZGVkdWNlIHRo
aXMuCisjZGVmaW5lIF9fR0JNX18gMQorI2luY2x1ZGUgPEVHTC9lZ2xwbGF0Zm9ybS5oPgorI2Vs
c2UKICNpbmNsdWRlICJlZ2xwbGF0Zm9ybS5oIgorI2VuZGlmCiB0eXBlZGVmIEVHTE5hdGl2ZVdp
bmRvd1R5cGUgR0xOYXRpdmVXaW5kb3dUeXBlOwogI2Vsc2UKIHR5cGVkZWYgdWludDY0X3QgR0xO
YXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggN2Q4MGQ1YjQ1YjQuLmIyYjc5NTI1NDVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKQEAgLTYwLDcgKzYwLDcgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiBP
QkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NMQVNTIFdlYkdMTGF5ZXI7Ci0jZWxpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdJTl9DQUlSTykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV0lOX0NBSVJPKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIHVuc2lnbmVkIGludCBH
THVpbnQ7CiAjZW5kaWYKIApAQCAtMTM3Myw3ICsxMzczLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTaGFkZXJOYW1lSGFzaD4gbmFtZUhhc2hNYXBGb3JTaGFkZXJzOwogCi0j
aWYgKChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikpICYmIFVTRShPUEVOR0xfRVNfMikp
CisjaWYgKChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oV1BFKSkg
JiYgVVNFKE9QRU5HTF9FU18yKSkKICAgICBmcmllbmQgY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdM
RVM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzRE9wZW5HTEVTPiBtX2V4dGVuc2lv
bnM7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
T3BlbkdMRVNTaGltcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdM
RVNTaGltcy5oCmluZGV4IGI0ZTk1MTU3MjE3Li5hYjdjNmI4ZjM5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMRVNTaGltcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaApAQCAtMjYsNyArMjYs
NyBAQAogI2lmbmRlZiBPcGVuR0xFU1NoaW1zX2gKICNkZWZpbmUgT3BlbkdMRVNTaGltc19oCiAK
LSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKKyNpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oV1BFKQogI2RlZmluZSBnbEJpbmRGcmFtZWJ1ZmZl
ckVYVCBnbEJpbmRGcmFtZWJ1ZmZlcgogI2RlZmluZSBnbEZyYW1lYnVmZmVyVGV4dHVyZTJERVhU
IGdsRnJhbWVidWZmZXJUZXh0dXJlMkQKICNkZWZpbmUgZ2xCaW5kUmVuZGVyYnVmZmVyRVhUIGds
QmluZFJlbmRlcmJ1ZmZlcgpAQCAtNDUsNiArNDUsNyBAQAogI2RlZmluZSBnbElzRnJhbWVidWZm
ZXJFWFQgZ2xJc0ZyYW1lYnVmZmVyCiAjZGVmaW5lIGdsR2VuZXJhdGVNaXBtYXBFWFQgZ2xHZW5l
cmF0ZU1pcG1hcAogI2RlZmluZSBHTF9ERVBUSF9BVFRBQ0hNRU5UX0VYVCBHTF9ERVBUSF9BVFRB
Q0hNRU5UCisjZGVmaW5lIEdMX0NPTE9SX0FUVEFDSE1FTlQwX0VYVCBHTF9DT0xPUl9BVFRBQ0hN
RU5UMAogI2RlZmluZSBHTF9GUkFNRUJVRkZFUl9DT01QTEVURV9FWFQgR0xfRlJBTUVCVUZGRVJf
Q09NUExFVEUKICNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfRVhUIEdMX0ZSQU1FQlVGRkVSCiAjZGVm
aW5lIEdMX0RFUFRIMjRfU1RFTkNJTDhfRVhUIEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNw
cAppbmRleCA2N2VmYmNlYjhiMy4uMWI3MTk1NGY1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcApAQCAtNDIsNiArNDIs
MTAgQEAKICNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXaW4uaCIKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oV1BFKQorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorI2VuZGlmCisKICNp
ZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2VuZGlmCkBAIC0xMDAsNiAr
MTA0LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxh
eTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
bGF0Zm9ybURpc3BsYXlYMTE+KG51bGxwdHIpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1EaXNwbGF5V1BFPigpOworI2Vu
ZGlmCisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5
LmgKaW5kZXggZjc2NGMyZDQ1MWYuLmNiNWZhMWVmMzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaApAQCAtNTQsNiArNTQsOSBA
QCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oV0lOKQogICAgICAgICBXaW5kb3dzLAogI2VuZGlmCisj
aWYgUExBVEZPUk0oV1BFKQorICAgICAgICBXUEUsCisjZW5kaWYKICAgICB9OwogCiAgICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IDFjMWNlYzI2YWNmLi45
ZmU3NTVmYzU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKQEAgLTIwNCw2ICsyMDQsMTMgQEAgc3RkOjp1bmlxdWVf
cHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0
Zm9ybURpc3BsYXkKICAgICBpZiAoZWdsQmluZEFQSShnRUdMQVBJVmVyc2lvbikgPT0gRUdMX0ZB
TFNFKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBp
ZiAocGxhdGZvcm1EaXNwbGF5LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldQRSkg
eworICAgICAgICBpZiAoYXV0byBjb250ZXh0ID0gY3JlYXRlV1BFQ29udGV4dChwbGF0Zm9ybURp
c3BsYXkpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7CisgICAgfQorI2VuZGlmCisKICAg
ICBhdXRvIGNvbnRleHQgPSBjcmVhdGVTdXJmYWNlbGVzc0NvbnRleHQocGxhdGZvcm1EaXNwbGF5
KTsKICAgICBpZiAoIWNvbnRleHQpIHsKICNpZiBQTEFURk9STShYMTEpCkBAIC0yNTEsNiArMjU4
LDkgQEAgR0xDb250ZXh0RUdMOjp+R0xDb250ZXh0RUdMKCkKICNpZiBQTEFURk9STShXQVlMQU5E
KQogICAgIGRlc3Ryb3lXYXlsYW5kV2luZG93KCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUp
CisgICAgZGVzdHJveVdQRVRhcmdldCgpOworI2VuZGlmCiB9CiAKIGJvb2wgR0xDb250ZXh0RUdM
OjpjYW5SZW5kZXJUb0RlZmF1bHRGcmFtZWJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKaW5kZXggZTVhMzM1OTdkN2Iu
LjlhMDMzZmViMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWdsL0dMQ29udGV4dEVHTC5oCkBAIC0zMiw2ICszMiwxMCBAQAogc3RydWN0IHdsX2VnbF93
aW5kb3c7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0Zm9ybURp
c3BsYXlXUEUuaCIKKyNlbmRpZgorCiB0eXBlZGVmIHZvaWQgKkVHTENvbmZpZzsKIHR5cGVkZWYg
dm9pZCAqRUdMQ29udGV4dDsKIHR5cGVkZWYgdm9pZCAqRUdMRGlzcGxheTsKQEAgLTczLDYgKzc3
LDkgQEAgcHJpdmF0ZToKICAgICBHTENvbnRleHRFR0woUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29u
dGV4dCwgRUdMU3VyZmFjZSwgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+JiYsIHN0cnVj
dCB3bF9lZ2xfd2luZG93Kik7CiAgICAgdm9pZCBkZXN0cm95V2F5bGFuZFdpbmRvdygpOwogI2Vu
ZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZvaWQgZGVzdHJveVdQRVRhcmdldCgpOworI2Vu
ZGlmCiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlV2lu
ZG93Q29udGV4dChHTE5hdGl2ZVdpbmRvd1R5cGUsIFBsYXRmb3JtRGlzcGxheSYsIEVHTENvbnRl
eHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEdMQ29udGV4dEVHTD4gY3JlYXRlUGJ1ZmZlckNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiwgRUdM
Q29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIpOwpAQCAtODUsNiArOTIsOSBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVXYXls
YW5kQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0g
bnVsbHB0cik7CiAgICAgc3RhdGljIEVHTFN1cmZhY2UgY3JlYXRlV2luZG93U3VyZmFjZVdheWxh
bmQoRUdMRGlzcGxheSwgRUdMQ29uZmlnLCBHTE5hdGl2ZVdpbmRvd1R5cGUpOwogI2VuZGlmCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdM
PiBjcmVhdGVXUEVDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYsIEVHTENvbnRleHQgc2hhcmluZ0Nv
bnRleHQgPSBudWxscHRyKTsKKyNlbmRpZgogCiAgICAgc3RhdGljIGJvb2wgZ2V0RUdMQ29uZmln
KEVHTERpc3BsYXksIEVHTENvbmZpZyosIEVHTFN1cmZhY2VUeXBlKTsKIApAQCAtOTgsNiArMTA4
LDkgQEAgcHJpdmF0ZToKICAgICBXbFVuaXF1ZVB0cjxzdHJ1Y3Qgd2xfc3VyZmFjZT4gbV93bFN1
cmZhY2U7CiAgICAgc3RydWN0IHdsX2VnbF93aW5kb3cqIG1fd2xXaW5kb3cgeyBudWxscHRyIH07
CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
RGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0PiBtX3dwZVRhcmdldDsKKyNlbmRpZgogI2lm
IFVTRShDQUlSTykKICAgICBjYWlyb19kZXZpY2VfdCogbV9jYWlyb0RldmljZSB7IG51bGxwdHIg
fTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uOWYzZjQyZDc2NDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcApAQCAtMCwwICsxLDQ0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdMQ29udGV4
dEVHTC5oIgorCisjaWYgVVNFKEVHTCkgJiYgUExBVEZPUk0oV1BFKQorCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5V1BFLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVf
cHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVXUEVDb250ZXh0KFBsYXRmb3Jt
RGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5LCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0KQorewor
ICAgIGF1dG8gb2Zmc2NyZWVuVGFyZ2V0ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihw
bGF0Zm9ybURpc3BsYXkpLmNyZWF0ZUVHTE9mZnNjcmVlblRhcmdldCgpOworICAgIGF1dG8gY29u
dGV4dCA9IGNyZWF0ZVdpbmRvd0NvbnRleHQob2Zmc2NyZWVuVGFyZ2V0LT5uYXRpdmVXaW5kb3co
KSwgcGxhdGZvcm1EaXNwbGF5LCBzaGFyaW5nQ29udGV4dCk7CisgICAgaWYgKGNvbnRleHQpCisg
ICAgICAgIGNvbnRleHQtPm1fd3BlVGFyZ2V0ID0gV1RGTW92ZShvZmZzY3JlZW5UYXJnZXQpOwor
ICAgIHJldHVybiBjb250ZXh0OworfQorCit2b2lkIEdMQ29udGV4dEVHTDo6ZGVzdHJveVdQRVRh
cmdldCgpCit7CisgICAgbV93cGVUYXJnZXQgPSBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoRUdMKSAmJiBQTEFURk9STShXUEUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXgg
MmJmMTFlYTFiZDcuLjI5MTczNDM2ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC01OSw3ICs1OSw5IEBACiAjZW5kaWYK
IAogI2lmIFVTRShFR0wpCisjaWYgIVBMQVRGT1JNKFdQRSkKICNpbmNsdWRlICJHTENvbnRleHRF
R0wuaCIKKyNlbmRpZgogI2luY2x1ZGUgPGdzdC9nbC9lZ2wvZ3N0Z2xkaXNwbGF5X2VnbC5oPgog
I2VuZGlmCiAKQEAgLTY5LDYgKzcxLDggQEAKIAogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCiAjaW5j
bHVkZSAiUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2lu
Y2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgogI2VuZGlmCiAKIC8vIGdzdGdsYXBpLmggbWF5
IGluY2x1ZGUgZWdscGxhdGZvcm0uaCBhbmQgaXQgaW5jbHVkZXMgWC5oLCB3aGljaApAQCAtNDM5
LDYgKzQ0MywxMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmVuc3Vy
ZUdzdEdMQ29udGV4dCgpCiAgICAgICAgICAgICBtX2dsRGlzcGxheSA9IEdTVF9HTF9ESVNQTEFZ
KGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kPihzaGFyZWREaXNwbGF5KS5lZ2xEaXNwbGF5KCkpKTsKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICBBU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5V1BF
PihzaGFyZWREaXNwbGF5KSk7CisgICAgICAgIG1fZ2xEaXNwbGF5ID0gR1NUX0dMX0RJU1BMQVko
Z3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRoX2VnbF9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3Jt
RGlzcGxheVdQRT4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7CisjZW5kaWYKKwogICAg
ICAgICBBU1NFUlQobV9nbERpc3BsYXkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggYzdhMGVjN2YyNTIuLjEyNjVlMDAxZDhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAg
LTIzNiw2ICsyMzYsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSgp
CiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKIAogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNpZiBVU0UoT1BFTkdMX0VTXzIpCisgICAg
OjpnbEZsdXNoKCk7CisjZW5kaWYKICAgICBzdGQ6OnN3YXAobV90ZXh0dXJlLCBtX2NvbXBvc2l0
b3JUZXh0dXJlKTsKICAgICBzdGQ6OnN3YXAobV90ZXh0dXJlLCBtX2ludGVybWVkaWF0ZVRleHR1
cmUpOwogICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKQEAg
LTM5OCw3ICs0MDEsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja1ZhcnlpbmdzUGFj
a2luZyhQbGF0Zm9ybTNET2JqZWN0IHZlcnRleFNoYWRlciwgUGxhdAogICAgICAgICB2YXJpYWJs
ZXMucHVzaF9iYWNrKHZhcnlpbmdTeW1ib2wpOwogCiAgICAgR0MzRGludCBtYXhWYXJ5aW5nVmVj
dG9ycyA9IDA7Ci0jaWYgIVBMQVRGT1JNKElPUykgJiYgISgoUExBVEZPUk0oV0lOKSB8fCBQTEFU
Rk9STShHVEspKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQorI2lmICFQTEFURk9STShJT1MpICYmICEo
KFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSAmJiBVU0Uo
T1BFTkdMX0VTXzIpKQogICAgIEdDM0RpbnQgbWF4VmFyeWluZ0Zsb2F0cyA9IDA7CiAgICAgOjpn
bEdldEludGVnZXJ2KEdMX01BWF9WQVJZSU5HX0ZMT0FUUywgJm1heFZhcnlpbmdGbG9hdHMpOwog
ICAgIG1heFZhcnlpbmdWZWN0b3JzID0gbWF4VmFyeWluZ0Zsb2F0cyAvIDQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSWNvbldQRS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSWNvbldQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQzYzM3YmRmOGFhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkljb24uaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitJY29uOjp+SWNvbigpCit7Cit9CisKK3ZvaWQgSWNvbjo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKK3sKK30KKworUmVmUHRyPEljb24+IElj
b246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpCit7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JbWFnZVdQRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lYWEzMGE4NTY2YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JbWFnZVdQRS5jcHAKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKworI2lu
Y2x1ZGUgPGNzdGRpbz4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEJpdG1hcEltYWdl
OjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCkKK3sKK30KKworUGFzc1JlZlB0cjxJbWFnZT4gSW1h
Z2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIHJlc291cmNlKQoreworICAgIHN0
ZDo6ZnByaW50ZihzdGRlcnIsICJXQVJOSU5HOiB0cnlpbmcgdG8gbG9hZCBwbGF0Zm9ybSByZXNv
dXJjZSAnJXMnXG4iLCByZXNvdXJjZSk7CisgICAgcmV0dXJuIEJpdG1hcEltYWdlOjpjcmVhdGUo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGQ1YmIxZDFmNDEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1E
aXNwbGF5V1BFLmNwcApAQCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybURpc3BsYXlXUEUuaCIKKworI2lmIFBMQVRGT1JNKFdQRSkKKworI2luY2x1ZGUgIkdMQ29u
dGV4dEVHTC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDxFR0wvZWdsLmg+Cisj
aW5jbHVkZSA8d3BlL3JlbmRlcmVyLWJhY2tlbmQtZWdsLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUGxhdGZvcm1EaXNwbGF5V1BFOjpQbGF0Zm9ybURpc3BsYXlXUEUoKSA9IGRlZmF1bHQ7
CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6flBsYXRmb3JtRGlzcGxheVdQRSgpCit7CisgICAgd3Bl
X3JlbmRlcmVyX2JhY2tlbmRfZWdsX2Rlc3Ryb3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0
Zm9ybURpc3BsYXlXUEU6OmluaXRpYWxpemUoaW50IGhvc3RGZCkKK3sKKyAgICBtX2JhY2tlbmQg
PSB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfY3JlYXRlKGhvc3RGZCk7CisKKyAgICBtX2VnbERp
c3BsYXkgPSBlZ2xHZXREaXNwbGF5KHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9nZXRfbmF0aXZl
X2Rpc3BsYXkobV9iYWNrZW5kKSk7CisgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElT
UExBWSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlBsYXRmb3JtRGlzcGxheVdQRTogY291
bGQgbm90IGNyZWF0ZSB0aGUgRUdMIGRpc3BsYXkuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFBsYXRmb3JtRGlzcGxheTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKK30KKwor
c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0PiBQbGF0Zm9ybURp
c3BsYXlXUEU6OmNyZWF0ZUVHTFRhcmdldChFR0xUYXJnZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQg
aG9zdEZkKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTFRhcmdldD4oKnRoaXMs
IGNsaWVudCwgaG9zdEZkKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVdQ
RTo6RUdMT2Zmc2NyZWVuVGFyZ2V0PiBQbGF0Zm9ybURpc3BsYXlXUEU6OmNyZWF0ZUVHTE9mZnNj
cmVlblRhcmdldCgpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RUdMT2Zmc2NyZWVu
VGFyZ2V0PigqdGhpcyk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpFR0xU
YXJnZXQoY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJiBkaXNwbGF5LCBQbGF0Zm9ybURpc3BsYXlX
UEU6OkVHTFRhcmdldDo6Q2xpZW50JiBjbGllbnQsIGludCBob3N0RmQpCisgICAgOiBtX2Rpc3Bs
YXkoZGlzcGxheSkKKyAgICAsIG1fY2xpZW50KGNsaWVudCkKK3sKKyAgICBtX2JhY2tlbmQgPSB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2NyZWF0ZShob3N0RmQpOworCisgICAgc3Rh
dGljIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2NsaWVudCBzX2NsaWVu
dCA9IHsKKyAgICAgICAgLy8gZnJhbWVfY29tcGxldGUKKyAgICAgICAgW10odm9pZCogZGF0YSkK
KyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgc3VyZmFjZSA9ICpyZWludGVycHJldF9jYXN0
PEVHTFRhcmdldCo+KGRhdGEpOworICAgICAgICAgICAgc3VyZmFjZS5tX2NsaWVudC5mcmFtZUNv
bXBsZXRlKCk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9l
Z2xfdGFyZ2V0X3NldF9jbGllbnQobV9iYWNrZW5kLCAmc19jbGllbnQsIHRoaXMpOworfQorCitQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6fkVHTFRhcmdldCgpCit7CisgICAgd3BlX3Jl
bmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQg
UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OmluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2luaXRpYWxpemUo
bV9iYWNrZW5kLCBtX2Rpc3BsYXkubV9iYWNrZW5kLAorICAgICAgICBzdGQ6Om1heCgwLCBzaXpl
LndpZHRoKCkpLCBzdGQ6Om1heCgwLCBzaXplLmhlaWdodCgpKSk7Cit9CisKK0VHTE5hdGl2ZVdp
bmRvd1R5cGUgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6Om5hdGl2ZVdpbmRvdygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZ2V0X25h
dGl2ZV93aW5kb3cobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVH
TFRhcmdldDo6cmVzaXplKGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgd3BlX3JlbmRlcmVy
X2JhY2tlbmRfZWdsX3RhcmdldF9yZXNpemUobV9iYWNrZW5kLCBzdGQ6Om1heCgwLCBzaXplLndp
ZHRoKCkpLCBzdGQ6Om1heCgwLCBzaXplLmhlaWdodCgpKSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OmZyYW1lV2lsbFJlbmRlcigpCit7CisgICAgd3BlX3JlbmRl
cmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV93aWxsX3JlbmRlcihtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpmcmFtZVJlbmRlcmVkKCkKK3sK
KyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2ZyYW1lX3JlbmRlcmVkKG1fYmFj
a2VuZCk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0OjpFR0xP
ZmZzY3JlZW5UYXJnZXQoY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJiBkaXNwbGF5KQoreworICAg
IG1fdGFyZ2V0ID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfY3Jl
YXRlKCk7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfaW5p
dGlhbGl6ZShtX3RhcmdldCwgZGlzcGxheS5tX2JhY2tlbmQpOworfQorCitQbGF0Zm9ybURpc3Bs
YXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldDo6fkVHTE9mZnNjcmVlblRhcmdldCgpCit7CisgICAg
d3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfZGVzdHJveShtX3Rhcmdl
dCk7Cit9CisKK0VHTE5hdGl2ZVdpbmRvd1R5cGUgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZz
Y3JlZW5UYXJnZXQ6Om5hdGl2ZVdpbmRvdygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdwZV9yZW5k
ZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2dldF9uYXRpdmVfd2luZG93KG1fdGFy
Z2V0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0o
V1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1Bs
YXRmb3JtRGlzcGxheVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3Bl
L1BsYXRmb3JtRGlzcGxheVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi44ZGUwYzdkMDRkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaApAQCAtMCwwICsxLDk5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKwor
I2RlZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKworc3RydWN0
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9l
Z2xfdGFyZ2V0Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dDsKK2NsYXNzIElu
dFNpemU7CisKK2NsYXNzIFBsYXRmb3JtRGlzcGxheVdQRSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9y
bURpc3BsYXkgeworcHVibGljOgorICAgIFBsYXRmb3JtRGlzcGxheVdQRSgpOworICAgIHZpcnR1
YWwgflBsYXRmb3JtRGlzcGxheVdQRSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKGludCk7CisK
KyAgICBjbGFzcyBFR0xUYXJnZXQgeworICAgIHB1YmxpYzoKKyAgICAgICAgY2xhc3MgQ2xpZW50
IHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lQ29tcGxl
dGUoKSA9IDA7CisgICAgICAgIH07CisKKyAgICAgICAgRUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3Jt
RGlzcGxheVdQRSYsIENsaWVudCYsIGludCk7CisgICAgICAgIH5FR0xUYXJnZXQoKTsKKworICAg
ICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBFR0xOYXRpdmVX
aW5kb3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OworCisgICAgICAgIHZvaWQgcmVzaXplKGNv
bnN0IEludFNpemUmKTsKKworICAgICAgICB2b2lkIGZyYW1lV2lsbFJlbmRlcigpOworICAgICAg
ICB2b2lkIGZyYW1lUmVuZGVyZWQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFBs
YXRmb3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OworICAgICAgICBDbGllbnQmIG1fY2xpZW50Owor
ICAgICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldCogbV9iYWNrZW5k
OworICAgIH07CisKKyAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQgeworICAgIHB1YmxpYzoK
KyAgICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYpOwor
ICAgICAgICB+RUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKKyAgICAgICAgRUdMTmF0aXZlV2luZG93
VHlwZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVj
dCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldCogbV90YXJnZXQ7Cisg
ICAgfTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUYXJnZXQ+IGNyZWF0ZUVHTFRhcmdldChF
R0xUYXJnZXQ6OkNsaWVudCYsIGludCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVHTE9mZnNjcmVl
blRhcmdldD4gY3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKK3ByaXZhdGU6CisgICAgVHlw
ZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpX
UEU7IH0KKworICAgIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2wqIG1fYmFja2VuZDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19Q
TEFURk9STV9ESVNQTEFZKFBsYXRmb3JtRGlzcGxheVdQRSwgV1BFKQorCisjZW5kaWYgLy8gUExB
VEZPUk0oV1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0N1cnNv
cldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDRkYzk1NWY5MzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcApAQCAt
MCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXJzb3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25z
dAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE3NjAxOTY5NzFiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCkBAIC0wLDAg
KzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKwor
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KCJfU2VhcmNoIHRoZSBXZWIiKTsKK30KKworU3RyaW5nIHVuYWNj
ZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgi
VW5hY2NlcHRhYmxlIFRMUyBjZXJ0aWZpY2F0ZSIpOworfQorCitTdHJpbmcgbG9jYWxpemVkU3Ry
aW5nKGNvbnN0IGNoYXIqIGtleSkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChrZXks
IHN0cmxlbihrZXkpKTsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93cGUvUGFzdGVib2FyZFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjJjNzgwMDgzZmQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1Bhc3RlYm9hcmRXUEUuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0LTIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CisjaW5jbHVkZSAiUGFzdGVib2FyZFN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJh
dGVnaWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCit7CisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBh
c3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQoreworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7Cit9CisKK1Bhc3RlYm9hcmQ6OlBhc3RlYm9hcmQo
KQoreworfQorCitib29sIFBhc3RlYm9hcmQ6Omhhc0RhdGEoKQoreworICAgIC8vIEZJWE1FOiBH
ZXR0aW5nIHRoZSBsaXN0IG9mIHR5cGVzIGZvciB0aGlzIGlzIHdhc3RlZnVsLiBEbyB0aGlzIGlu
IHRoZSBVSSBwcm9jZXNzLgorICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMpOworICAg
IHJldHVybiAhdHlwZXMuaXNFbXB0eSgpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJk
Ojp0eXBlcygpCit7CisgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CisgICAgcGxhdGZvcm1TdHJh
dGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcyk7CisgICAgcmV0
dXJuIHR5cGVzOworfQorCitTdHJpbmcgUGFzdGVib2FyZDo6cmVhZFN0cmluZyhjb25zdCBTdHJp
bmcmIHR5cGUpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKDAsIHR5cGUpOworfQorCit2b2lk
IFBhc3RlYm9hcmQ6OndyaXRlU3RyaW5nKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0KQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3ko
KS0+d3JpdGVUb1Bhc3RlYm9hcmQodHlwZSwgdGV4dCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6
Y2xlYXIoKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0cmluZyYpCit7
Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0KQor
eworICAgIHRleHQudGV4dCA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKDAsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRm
LTgiKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRXZWJDb250ZW50UmVh
ZGVyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6Ondy
aXRlKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMo
KS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKCJ0ZXh0L3BsYWluO2No
YXJzZXQ9dXRmLTgiLCB1cmwudXJsLnN0cmluZygpKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3
cml0ZVRydXN0d29ydGh5V2ViVVJMc1Bib2FyZFR5cGUoY29uc3QgUGFzdGVib2FyZFVSTCYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25z
dCBQYXN0ZWJvYXJkSW1hZ2UmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0
IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+d3JpdGVUb1Bhc3RlYm9hcmQoY29udGVudCk7Cit9
CisKK1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQoreworICAgIHJl
dHVybiBWZWN0b3I8U3RyaW5nPigpOworfQorCitib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVw
bGFjZSgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
TWFya3VwKGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFp
blRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBTbWFydFJlcGxhY2VPcHRpb24pCit7CisgICAgd3Jp
dGVTdHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIsIHRleHQpOworfQorCit2b2lkIFBh
c3RlYm9hcmQ6OndyaXRlUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJikKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uZmE0ZjM4ZTExZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcApAQCAtMCww
ICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChU
eXBlIHR5cGUsIGJvb2wgYmFja3dhcmRzQ29tcGF0aWJpbGl0eSkKK3sKKyAgICBBU1NFUlQobV90
eXBlID09IEtleURvd24pOworICAgIG1fdHlwZSA9IHR5cGU7CisgICAgaWYgKGJhY2t3YXJkc0Nv
bXBhdGliaWxpdHkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09IFBsYXRmb3Jt
RXZlbnQ6OlJhd0tleURvd24pIHsKKyAgICAgICAgbV90ZXh0ID0gU3RyaW5nKCk7CisgICAgICAg
IG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2tl
eUlkZW50aWZpZXIgPSBTdHJpbmcoKTsKKyAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUg
PSAwOworICAgIH0KK30KKworYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBz
TG9ja1N0YXRlKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiwgYm9vbCYsIGJvb2wmLCBi
b29sJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTQ1NmVlZTJkZjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNw
cApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1QYXN0
ZWJvYXJkLmgiCisKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCisjaW5jbHVkZSA8bWFwPgorI2lu
Y2x1ZGUgPHdwZS9wYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRmb3JtUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKQorICAg
IDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBB
U1NFUlQobV9wYXN0ZWJvYXJkKTsKK30KKworUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBh
c3RlYm9hcmQoKQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0
b24oKSkKK3sKKyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30KKwordm9pZCBQbGF0Zm9ybVBh
c3RlYm9hcmQ6OmdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBzdHJ1Y3Qg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3ZlY3RvciBwYXN0ZWJvYXJkVHlwZXMgPSB7IG51bGxwdHIs
IDAgfTsKKyAgICB3cGVfcGFzdGVib2FyZF9nZXRfdHlwZXMobV9wYXN0ZWJvYXJkLCAmcGFzdGVi
b2FyZFR5cGVzKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXN0ZWJvYXJkVHlw
ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgdHlwZVN0cmluZyA9IHBhc3RlYm9hcmRU
eXBlcy5zdHJpbmdzW2ldOworICAgICAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKHR5cGVTdHJpbmcu
ZGF0YSwgdHlwZVN0cmluZy5sZW5ndGgpKTsKKyAgICB9CisKKyAgICB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfdmVjdG9yX2ZyZWUoJnBhc3RlYm9hcmRUeXBlcyk7Cit9CisKK1N0cmluZyBQbGF0Zm9y
bVBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoaW50LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAg
c3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZyBzdHJpbmc7CisgICAgd3BlX3Bhc3RlYm9hcmRf
Z2V0X3N0cmluZyhtX3Bhc3RlYm9hcmQsIHR5cGUudXRmOCgpLmRhdGEoKSwgJnN0cmluZyk7CisK
KyAgICBTdHJpbmcgcmV0dXJuVmFsdWUoc3RyaW5nLmRhdGEsIHN0cmluZy5sZW5ndGgpOworCisg
ICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnN0cmluZyk7CisgICAgcmV0dXJuIHJldHVy
blZhbHVlOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVi
b2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgcGxhaW5U
ZXh0W10gPSAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IjsKKyAgICBzdGF0aWMgY29uc3QgY2hh
ciBodG1sVGV4dFtdID0gInRleHQvaHRtbDtjaGFyc2V0PXV0Zi04IjsKKworICAgIENTdHJpbmcg
dGV4dFN0cmluZyA9IGNvbnRlbnQudGV4dC51dGY4KCk7CisgICAgQ1N0cmluZyBtYXJrdXBTdHJp
bmcgPSBjb250ZW50Lm1hcmt1cC51dGY4KCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRf
c3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxs
cHRyLCAwIH0gfSwKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwK
KyAgICB9OworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50
eXBlLCBwbGFpblRleHQsIHN0cmxlbihwbGFpblRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCB0ZXh0U3RyaW5nLmRhdGEoKSwgdGV4
dFN0cmluZy5sZW5ndGgoKSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUo
JnBhaXJzWzFdLnR5cGUsIGh0bWxUZXh0LCBzdHJsZW4oaHRtbFRleHQpKTsKKyAgICB3cGVfcGFz
dGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMV0uc3RyaW5nLCBtYXJrdXBTdHJpbmcu
ZGF0YSgpLCBtYXJrdXBTdHJpbmcubGVuZ3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2Fy
ZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFpcnMsIDIgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dy
aXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJl
ZSgmcGFpcnNbMF0udHlwZSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJz
WzBdLnN0cmluZyk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzFdLnR5
cGUpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1sxXS5zdHJpbmcpOwor
fQorCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X3BhaXIgcGFpcnNbXSA9IHsKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAw
IH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWly
c1swXS50eXBlLCB0eXBlLnV0ZjgoKS5kYXRhKCksIHR5cGUudXRmOCgpLmxlbmd0aCgpKTsKKyAg
ICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCBzdHJp
bmcudXRmOCgpLmRhdGEoKSwgc3RyaW5nLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgc3RydWN0IHdw
ZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAgbWFwID0geyBwYWlycywgMSB9OworCisgICAgd3BlX3Bh
c3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJvYXJkLCAmbWFwKTsKKworICAgIHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ19mcmVlKCZwYWlyc1swXS50eXBlKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdf
ZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUwOGViN2RlOGM5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BF
LmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNj
cmVlbi5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAyNDsKK30KKworaW50IHNjcmVl
bkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gODsKK30KKworYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBzY3JlZW5I
YXNJbnZlcnRlZENvbG9ycygpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitGbG9hdFJlY3Qg
c2NyZWVuUmVjdChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDApOworfQorCitGbG9hdFJlY3Qgc2NyZWVuQXZhaWxh
YmxlUmVjdChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZs
b2F0UmVjdCgwLCAwLCAxMDI0LCA2NDApOworfQorCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5k
ZWRDb2xvcihXaWRnZXQqKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRl
clRoZW1lV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQ
RS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI1OWUzM2JkY2My
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5k
ZXJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJV
c2VyQWdlbnRTY3JpcHRzLmgiCisjaW5jbHVkZSAiVXNlckFnZW50U3R5bGVTaGVldHMuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVmPFJlbmRlclRoZW1lPiBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQorewor
ICAgIHN0YXRpYyBSZW5kZXJUaGVtZSYgdGhlbWUgPSBSZW5kZXJUaGVtZVdQRTo6Y3JlYXRlKCku
bGVha1JlZigpOworICAgIHJldHVybiB0aGVtZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZVdQRTo6
dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRl
RGVzY3JpcHRpb24mKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmlu
ZyBSZW5kZXJUaGVtZVdQRTo6ZXh0cmFEZWZhdWx0U3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCisjaWYgRU5BQkxFKFZJREVPKQorU3RyaW5nIFJlbmRlclRoZW1lV1BF
OjptZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCht
ZWRpYUNvbnRyb2xzQmFzZVVzZXJBZ2VudFN0eWxlU2hlZXQpOworfQorCitTdHJpbmcgUmVuZGVy
VGhlbWVXUEU6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQoreworICAgIFN0cmluZ0J1aWxkZXIgc2Ny
aXB0QnVpbGRlcjsKKyAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzTG9jYWxp
emVkU3RyaW5nc0phdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5n
c0phdmFTY3JpcHQpKTsKKyAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzQmFz
ZUphdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKKyAgICBy
ZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworfQorI2VuZGlmCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVy
VGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZmIyZmU4OTRjOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQ
RS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgUmVuZGVyVGhlbWVXUEUgZmluYWwgOiBwdWJsaWMgUmVuZGVyVGhlbWUgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UmVuZGVyVGhlbWU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW5kZXJUaGVtZVdQRSk7CisgICAgfQorCisgICAgU3RyaW5nIGV4
dHJhRGVmYXVsdFN0eWxlU2hlZXQoKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoVklERU8pCisgICAg
U3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIG1l
ZGlhQ29udHJvbHNTY3JpcHQoKSBvdmVycmlkZTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFJl
bmRlclRoZW1lV1BFKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflJlbmRlclRoZW1lV1BFKCkg
PSBkZWZhdWx0OworCisgICAgdm9pZCB1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24o
Q1NTVmFsdWVJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0IG92ZXJyaWRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjBmOWZlNWQ0ZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIFNjcm9sbGJhclRo
ZW1lV1BFOjpoYXNCdXR0b25zKFNjcm9sbGJhciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzVGh1bWIo
U2Nyb2xsYmFyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0cnVlOwor
fQorCitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjpiYWNrQnV0dG9uUmVjdChTY3JvbGxiYXIm
LCBTY3JvbGxiYXJQYXJ0LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIEludFJlY3QoKTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6Zm9yd2FyZEJ1
dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFy
VGhlbWVXUEU6OnRyYWNrUmVjdChTY3JvbGxiYXImLCBib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIEludFJlY3QoKTsKK30KKworU2Nyb2xsYmFyVGhlbWUmIFNjcm9s
bGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpCit7CisgICAgc3RhdGljIFNjcm9sbGJhclRoZW1lV1BF
IHRoZW1lOworICAgIHJldHVybiB0aGVtZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BF
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjcxODVhZGEyOWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUu
aApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVDb21w
b3NpdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJUaGVtZVdQ
RSBmaW5hbCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZSB7CitwdWJsaWM6CisgICAg
U2Nyb2xsYmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U2Nyb2xsYmFyVGhl
bWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICBib29sIGhhc0J1dHRvbnMoU2Nyb2xsYmFyJikgb3Zl
cnJpZGU7CisgICAgYm9vbCBoYXNUaHVtYihTY3JvbGxiYXImKSBvdmVycmlkZTsKKworICAgIElu
dFJlY3QgYmFja0J1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWlu
dGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICBJbnRSZWN0IGZvcndhcmRCdXR0b25SZWN0KFNj
cm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7
CisgICAgSW50UmVjdCB0cmFja1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCBwYWludGluZyA9IGZhbHNl
KSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93cGUvU291bmRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5lOTE0NzdhNDU5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU291bmQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBzeXN0ZW1CZWVwKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1RoZW1lV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZDVhZDk3NzNkODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
cGUvVGhlbWVXUEUuY3BwCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFJvdW5k
ZWRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVGhlbWUqIHBsYXRmb3Jt
VGhlbWUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUaGVtZVdQRT4gdGhlbWU7Cisg
ICAgcmV0dXJuICZ0aGVtZS5nZXQoKTsKK30KKworTGVuZ3RoU2l6ZSBUaGVtZVdQRTo6Y29udHJv
bFNpemUoQ29udHJvbFBhcnQgcGFydCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCBj
b25zdCBMZW5ndGhTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKSBjb25zdAorewor
ICAgIGlmICghem9vbWVkU2l6ZS53aWR0aC5pc0ludHJpbnNpY09yQXV0bygpICYmICF6b29tZWRT
aXplLmhlaWdodC5pc0ludHJpbnNpY09yQXV0bygpKQorICAgICAgICByZXR1cm4gVGhlbWU6OmNv
bnRyb2xTaXplKHBhcnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFjdG9yKTsKKwor
ICAgIHN3aXRjaCAocGFydCkgeworICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgorICAgIGNhc2UgUmFk
aW9QYXJ0OgorICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZSB7IExlbmd0aCgxMiwgRml4ZWQpLCBM
ZW5ndGgoMTIsIEZpeGVkKSB9OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIHJldHVybiBUaGVtZTo6Y29udHJvbFNpemUocGFydCwgZm9udENhc2NhZGUsIHpvb21l
ZFNpemUsIHpvb21GYWN0b3IpOworfQorCit2b2lkIFRoZW1lV1BFOjpwYWludChDb250cm9sUGFy
dCBwYXJ0LCBDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3
KiwgZmxvYXQsIGZsb2F0KQoreworICAgIHN3aXRjaCAocGFydCkgeworICAgIGNhc2UgQ2hlY2ti
b3hQYXJ0OgorICAgICAgICBwYWludENoZWNrYm94KHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVj
dCwgem9vbUZhY3Rvcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmFkaW9QYXJ0OgorICAg
ICAgICBwYWludFJhZGlvKHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHVzaEJ1dHRvblBhcnQ6CisgICAgICAgIHBhaW50
QnV0dG9uKHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZCBU
aGVtZVdQRTo6cGFpbnRDaGVja2JveChDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCkKK3sKKyAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBG
bG9hdFNpemUgY29ybmVyKDIsIDIpOworICAgIEZsb2F0Um91bmRlZFJlY3Qgcm91bmRlZFJlY3Qo
em9vbWVkUmVjdCwgY29ybmVyLCBjb3JuZXIsIGNvcm5lciwgY29ybmVyKTsKKyAgICBQYXRoIHBh
dGg7CisgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChyb3VuZGVkUmVjdCk7CisKKyAgICBjb250ZXh0
LnNldEZpbGxDb2xvcihtYWtlUkdCKDIyNCwgMjI0LCAyMjQpKTsKKyAgICBjb250ZXh0LmZpbGxQ
YXRoKHBhdGgpOworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoMSk7CisgICAgY29u
dGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsKKyAgICBjb250ZXh0LnN0
cm9rZVBhdGgocGF0aCk7CisKKyAgICBpZiAoc3RhdGVzLnN0YXRlcygpICYgQ29udHJvbFN0YXRl
czo6Q2hlY2tlZFN0YXRlKSB7CisgICAgICAgIGF1dG8mIHJlY3QgPSByb3VuZGVkUmVjdC5yZWN0
KCk7CisKKyAgICAgICAgUGF0aCBjaGVja2VyUGF0aDsKKyAgICAgICAgY2hlY2tlclBhdGgubW92
ZVRvKEZsb2F0UG9pbnQocmVjdC54KCkgKyAzLCByZWN0Lm1heFkoKSAtIDMpKTsKKyAgICAgICAg
Y2hlY2tlclBhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQocmVjdC5tYXhYKCkgLSAzLCByZWN0Lnko
KSArIDMpKTsKKworICAgICAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcygyKTsKKyAgICAg
ICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDg0LCA4NCwgODQpKTsKKyAgICAgICAg
Y29udGV4dC5zdHJva2VQYXRoKGNoZWNrZXJQYXRoKTsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVX
UEU6OnBhaW50UmFkaW8oQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgUGF0aCBwYXRo
OworICAgIHBhdGguYWRkRWxsaXBzZSh6b29tZWRSZWN0KTsKKworICAgIGNvbnRleHQuc2V0Rmls
bENvbG9yKG1ha2VSR0IoMjI0LCAyMjQsIDIyNCkpOworICAgIGNvbnRleHQuZmlsbFBhdGgocGF0
aCk7CisKKyAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcygxKTsKKyAgICBjb250ZXh0LnNl
dFN0cm9rZUNvbG9yKG1ha2VSR0IoOTQsIDk0LCA5NCkpOworICAgIGNvbnRleHQuc3Ryb2tlUGF0
aChwYXRoKTsKKworICAgIGlmIChzdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9sU3RhdGVzOjpDaGVj
a2VkU3RhdGUpIHsKKyAgICAgICAgRmxvYXRSZWN0IGNoZWNrZXJSZWN0ID0gem9vbWVkUmVjdDsK
KyAgICAgICAgY2hlY2tlclJlY3QuaW5mbGF0ZSgtMyk7CisKKyAgICAgICAgUGF0aCBjaGVja2Vy
UGF0aDsKKyAgICAgICAgY2hlY2tlclBhdGguYWRkRWxsaXBzZShjaGVja2VyUmVjdCk7CisKKyAg
ICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQig4NCwgODQsIDg0KSk7CisgICAgICAg
IGNvbnRleHQuZmlsbFBhdGgoY2hlY2tlclBhdGgpOworICAgIH0KK30KKwordm9pZCBUaGVtZVdQ
RTo6cGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXpl
IGNvcm5lcigyLCAyKTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJl
Y3QsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIsIGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAg
IHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRlZFJlY3QpOworCisgICAgQ29sb3IgZmlsbENvbG9y
ID0gc3RhdGVzLnN0YXRlcygpICYgQ29udHJvbFN0YXRlczo6UHJlc3NlZFN0YXRlID8gbWFrZVJH
QigyNDQsIDI0NCwgMjQ0KSA6IG1ha2VSR0IoMjI0LCAyMjQsIDIyNCk7CisgICAgY29udGV4dC5z
ZXRGaWxsQ29sb3IoZmlsbENvbG9yKTsKKyAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisg
ICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VD
b2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsKKyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Ro
ZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjczOWY1YzFl
MWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1l
V1BFLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlRoZW1lLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGhlbWVXUEUgOiBwdWJsaWMgVGhlbWUgeworcHVi
bGljOgorICAgIFRoZW1lV1BFKCkgeyB9CisgICAgdmlydHVhbCB+VGhlbWVXUEUoKSB7IH0KKwor
ICAgIExlbmd0aFNpemUgY29udHJvbFNpemUoQ29udHJvbFBhcnQsIGNvbnN0IEZvbnRDYXNjYWRl
JiwgY29uc3QgTGVuZ3RoU2l6ZSYsIGZsb2F0KSBjb25zdCBvdmVycmlkZTsKKworICAgIHZvaWQg
cGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmLCBmbG9hdCwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCkgb3ZlcnJpZGU7
CisKK3ByaXZhdGU6CisgICAgdm9pZCBwYWludENoZWNrYm94KENvbnRyb2xTdGF0ZXMmLCBHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCk7CisgICAgdm9pZCBwYWludFJh
ZGlvKENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBm
bG9hdCk7CisgICAgdm9pZCBwYWludEJ1dHRvbihDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjJkZjBjYzZiMzYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcApAQCAtMCwwICsx
LDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXaWRnZXQuaCIKKworI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2lkZ2V0OjpXaWRnZXQo
UGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQoreworICAgIGluaXQod2lkZ2V0KTsKK30KKworV2lkZ2V0
Ojp+V2lkZ2V0KCkKK3sKKyAgICBBU1NFUlQoIXBhcmVudCgpKTsKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
Cit7CisgICAgbV9mcmFtZSA9IHJlY3Q7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworSW50
UmVjdCBXaWRnZXQ6OmZyYW1lUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWU7Cit9
CisKK3ZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9v
bCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0Q3Vyc29y
KGNvbnN0IEN1cnNvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRn
ZXQ6OnNob3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0Ojpo
aWRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0SXNT
ZWxlY3RlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGli
L0dTb2NrZXRNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dT
b2NrZXRNb25pdG9yLmNwcAppbmRleCAxNDMyOWI5Mzg5MS4uOGQxMDFjZjRmMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHAK
QEAgLTUxLDYgKzUxLDkgQEAgdm9pZCBHU29ja2V0TW9uaXRvcjo6c3RhcnQoR1NvY2tldCogc29j
a2V0LCBHSU9Db25kaXRpb24gY29uZGl0aW9uLCBSdW5Mb29wJiBydW4KICAgICBnX3NvdXJjZV9z
ZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgIltXZWJLaXRdIFNvY2tldCBtb25pdG9yIik7CiAgICAg
bV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogICAgIGdfc291cmNlX3NldF9jYWxsYmFj
ayhtX3NvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oc29ja2V0U291
cmNlQ2FsbGJhY2spLCB0aGlzLCBudWxscHRyKTsKKyNpZiBQTEFURk9STShXUEUpCisgICAgZ19z
b3VyY2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0hJR0ggKyAzMCk7
CisjZW5kaWYKICAgICBnX3NvdXJjZV9hdHRhY2gobV9zb3VyY2UuZ2V0KCksIHJ1bkxvb3AubWFp
bkNvbnRleHQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtV1BF
LmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE4NTZhMzNmNjQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NzAgQEAKK2ZpbGUo
TUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9KQorCitjb25maWd1
cmVfZmlsZSh3cGUvd3BlLXdlYmtpdC5wYy5pbiAke0NNQUtFX0JJTkFSWV9ESVJ9L3dwZS13ZWJr
aXQucGMgQE9OTFkpCisKK2FkZF9kZWZpbml0aW9ucygtRFdFQktJVDJfQ09NUElMQVRJT04pCisK
K2FkZF9kZWZpbml0aW9ucygtRExJQkVYRUNESVI9IiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iKQor
CitzZXQoV2ViS2l0Ml9VU0VfUFJFRklYX0hFQURFUiBPTikKKworYWRkX2N1c3RvbV90YXJnZXQo
d2Via2l0MndwZS1mb3J3YXJkaW5nLWhlYWRlcnMKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRB
QkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5w
bCAtLWluY2x1ZGUtcGF0aCAke1dFQktJVDJfRElSfSAtLW91dHB1dCAke0ZPUldBUkRJTkdfSEVB
REVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlIC0tcGxhdGZvcm0gc291cAorKQorCitzZXQoV0VCS0lU
Ml9FWFRSQV9ERVBFTkRFTkNJRVMKKyAgICB3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVycwor
KQorCitsaXN0KEFQUEVORCBXZWJQcm9jZXNzX1NPVVJDRVMKKyAgICBXZWJQcm9jZXNzL0VudHJ5
UG9pbnQvdW5peC9XZWJQcm9jZXNzTWFpbi5jcHAKKykKKworbGlzdChBUFBFTkQgTmV0d29ya1By
b2Nlc3NfU09VUkNFUworICAgIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9OZXR3b3Jr
UHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIERhdGFiYXNlUHJvY2Vzc19TT1VSQ0VT
CisgICAgRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWlu
LmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKKyAgICBOZXR3b3JrUHJvY2Vz
cy9DdXN0b21Qcm90b2NvbHMvc291cC9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNw
cAorCisgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzU291cC5jcHAK
KyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhU291cC5jcHAKKyAgICBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcAorCisgICAg
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorICAgIE5ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtTZXNzaW9uU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0U291cC5jcHAKKworICAgIFBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25p
dG9yLmNwcAorCisgICAgUGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCisgICAg
UGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCisKKyAgICBQbGF0Zm9ybS9jbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmNwcAorCisgICAgUGxhdGZv
cm0vZ2xpYi9Nb2R1bGVHbGliLmNwcAorCisgICAgUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5j
cHAKKyAgICBQbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCisKKyAgICBQbHVnaW5Q
cm9jZXNzL3VuaXgvUGx1Z2luQ29udHJvbGxlclByb3h5VW5peC5jcHAKKyAgICBQbHVnaW5Qcm9j
ZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNwcAorICAgIFBsdWdpblByb2Nlc3MvdW5p
eC9QbHVnaW5Qcm9jZXNzVW5peC5jcHAKKworICAgIFNoYXJlZC9BUEkvYy9jYWlyby9XS0ltYWdl
Q2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvQXV0aGVudGljYXRpb24vc291cC9BdXRoZW50aWNhdGlv
bk1hbmFnZXJTb3VwLmNwcAorCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L1NpbXBsZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKKworICAgIFNoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCisgICAgU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZFNhZmVDb29y
ZGluYXRlZFN1cmZhY2UuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwCisKKyAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5N
b2R1bGVYMTEuY3BwCisKKyAgICBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3Bw
CisKKyAgICBTaGFyZWQvZ2xpYi9XZWJFcnJvcnNHbGliLmNwcAorCisgICAgU2hhcmVkL2xpbnV4
L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKworICAgIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1
bWVudENvZGVyc1NvdXAuY3BwCisgICAgU2hhcmVkL3NvdXAvV2ViRXJyb3JzU291cC5jcHAKKwor
ICAgIFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uY3BwCisKKyAgICBTaGFyZWQvd3BlL05h
dGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3Vz
ZUV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAK
KyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dw
ZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9XZWJFdmVudEZh
Y3RvcnkuY3BwCisKKyAgICBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAorICAgIFVJUHJvY2Vz
cy9EZWZhdWx0VW5kb0NvbnRyb2xsZXIuY3BwCisgICAgVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25T
dGF0ZUNvZGluZ05vbmUuY3BwCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNYW5hZ2VyLmNwcAorICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFu
YWdlci5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy9jYWlyby9XS0ljb25EYXRhYmFzZUNhaXJv
LmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5jcHAK
KworICAgIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcAorCisgICAgVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUv
RHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50
SW1wbC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5j
cHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkv
d3BlL1dQRVZpZXdDbGllbnQuY3BwCisKKyAgICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3Nv
dXAvV2ViU29ja2V0U2VydmVyU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2
ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKKworICAgIFVJUHJvY2Vzcy9MYXVuY2hl
ci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcAorCisgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5p
eC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1
Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKKworICAgIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyLmNwcAorCisgICAgVUlQcm9jZXNzL1dlYnNpdGVEYXRhL3VuaXgvV2Vic2l0ZURhdGFT
dG9yZVVuaXguY3BwCisKKyAgICBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3Bw
CisKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL0luc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVy
bWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9jZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlH
U3RyZWFtZXIuY3BwCisKKyAgICBVSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9y
LmNwcAorCisgICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29va2llTWFuYWdlclByb3h5U291cC5jcHAK
KyAgICBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwCisKKyAgICBVSVByb2Nl
c3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcAorICAgIFVJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9y
UHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwCisgICAg
VUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dw
ZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29s
V1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNv
dXAuY3BwCisgICAgV2ViUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViS2l0U291cENvb2tpZUphclNx
bGl0ZS5jcHAKKworICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvZ2xpYi9JbmplY3RlZEJ1
bmRsZUdsaWIuY3BwCisKKyAgICBXZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9y
YWdlTWFuYWdlci5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9BY2NlbGVyYXRlZFN1cmZhY2UuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9BcmVhQWxsb2NhdG9yLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisgICAgV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdl
L2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9E
cmF3aW5nQXJlYVdQRS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3Rv
clVJV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKKwor
ICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAorICAg
IFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKKworICAgIFdlYlByb2Nlc3Mvd3Bl
L1dlYlByb2Nlc3NNYWluV1BFLmNwcAorCisgICAgIyBGSVhNRS1HV1NIQVJFOgorICAgIERhdGFi
YXNlUHJvY2Vzcy9ndGsvRGF0YWJhc2VQcm9jZXNzTWFpbkd0ay5jcHAKKykKKworbGlzdChBUFBF
TkQgV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUworICAgIFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBv
c2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJf
REVSSVZFRF9TT1VSQ0VTCisgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktp
dDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYworKQorCitzZXQoV2ViS2l0MlJlc291cmNlcwor
KQorCitpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICBsaXN0KEFQUEVORCBXZWJLaXQyUmVzb3Vy
Y2VzCisgICAgICAgICIgICAgICAgIDxmaWxlIGFsaWFzPVwiYXVkaW8vQ29tcG9zaXRlXCI+Q29t
cG9zaXRlLndhdjwvZmlsZT5cbiIKKyAgICApCitlbmRpZiAoKQorCitmaWxlKFdSSVRFICR7REVS
SVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxl
LnhtbAorICAgICI8P3htbCB2ZXJzaW9uPTEuMCBlbmNvZGluZz1VVEYtOD8+XG4iCisgICAgIjxn
cmVzb3VyY2VzPlxuIgorICAgICIgICAgPGdyZXNvdXJjZSBwcmVmaXg9XCIvb3JnL3dlYmtpdHdw
ZS9yZXNvdXJjZXNcIj5cbiIKKyAgICAke1dlYktpdDJSZXNvdXJjZXN9CisgICAgIiAgICA8L2dy
ZXNvdXJjZT5cbiIKKyAgICAiPC9ncmVzb3VyY2VzPlxuIgorKQorCithZGRfY3VzdG9tX2NvbW1h
bmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVz
b3VyY2VzR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX1dF
QktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIENPTU1B
TkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzIC0tc291cmNlZGlyPSR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vcmVzb3VyY2VzIC0tdGFy
Z2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291
cmNlQnVuZGxlLmMgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJj
ZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVSQkFUSU0KKykKKworbGlzdChBUFBFTkQgV2Vi
S2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0i
CisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5
cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICIk
e1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3MvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
TmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9OZXR3
b3JrUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy91bml4
IgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybS9JUEMvZ2xpYiIKKyAgICAiJHtXRUJLSVQy
X0RJUn0vUGxhdGZvcm0vSVBDL3VuaXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL2Ns
YXNzaWZpZXIiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy93cGUiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzIgorICAgICIke1dFQktJVDJf
RElSfS9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IiCisgICAg
IiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQv
dW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL2NhaXJvIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dwZSIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwIgorICAgICIke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvbGludXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9zb3Vw
IgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZSIKKyAgICAiJHtXVEZfRElSfS93dGYvZ3RrLyIKKyAgICAiJHtXVEZfRElSfS93dGYv
Z29iamVjdCIKKyAgICAiJHtXVEZfRElSfSIKKyAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KKyAg
ICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtGUkVFVFlQRTJfSU5DTFVERV9ESVJTfQorICAg
ICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtHU1RSRUFNRVJfSU5DTFVERV9ESVJTfQorICAg
ICR7SEFSRkJVWlpfSU5DTFVERV9ESVJTfQorICAgICR7TElCU09VUF9JTkNMVURFX0RJUlN9Cisg
ICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX0xJQlJBUklF
UworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7RlJFRVRZUEUyX0xJQlJBUklFU30KKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R1NUUkVBTUVSX0xJQlJBUklFU30KKyAgICAke0hB
UkZCVVpaX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBfTElCUkFSSUVTfQorICAgICR7V1BFX0xJ
QlJBUklFU30KKykKKworc2V0KEluc3BlY3RvckZpbGVzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS8qLmh0bWwKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJ
Un0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvKi5jc3MK
KyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnLyouY3NzCisgICAgJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy8qLmpzCisgICAg
JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9F
eHRlcm5hbC9Db2RlTWlycm9yLyouY3NzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yLyouanMKKyAg
ICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0V4dGVybmFsL0VTTGludC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Fc3ByaW1hLyouanMKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9ndGsvKi5wbmcKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5zdmcKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy8qLmpzCisgICAgJHtD
TUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90
b2NvbC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm94aWVzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvKi5qcworICAgICR7Q01BS0VfU09V
UkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvKi5jc3MK
KyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVyLyouanMKKyAgICAke0NNQUtFX1NP
VVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVh
cFNuYXBzaG90LyouanMKKykKKworZmlsZShHTE9CIEluc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVz
CisgICAgJHtJbnNwZWN0b3JGaWxlc30KKykKKworIyBEZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzIGlzCisjIGV4cGVjdGVk
IGluIERlcml2ZWRTb3VyY2VzL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
LgorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJJ
TlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZENv
bW1hbmRzLmpzCisgICAgREVQRU5EUyAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9E
SVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBDT01NQU5EIGNw
ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3Rv
ckJhY2tlbmRDb21tYW5kcy5qcyAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCispCisK
K2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5T
UEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgREVQRU5EUyAk
e0luc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzfQorICAgICAgICAgICAgJHtERVJJVkVEX1NPVVJD
RVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJh
Y2tlbmRDb21tYW5kcy5qcworICAgICAgICAgICAgJHtUT09MU19ESVJ9L3dwZS9nZW5lcmF0ZS1p
bnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5CisgICAgQ09NTUFORCAke1RPT0xTX0RJUn0v
d3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkgLS1vdXRwdXQ9JHtE
RVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUueG1sICR7SW5zcGVjdG9yRmlsZXN9ICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJ
X0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMK
KyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxl
LmMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5z
cGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291
cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
Ykluc3BlY3RvclVJIC0tc291cmNlZGlyPSR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJ
X0RJUn0gLS10YXJnZXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNw
ZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9E
SVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBWRVJCQVRJTQorKQorCithZGRf
Y3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RP
UlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jCisgICAgREVQRU5EUyAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNl
QnVuZGxlLnhtbAorICAgICAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0luc3BlY3Rv
clNlcnZlci9mcm9udC1lbmQvaW5zcGVjdG9yUGFnZUluZGV4Lmh0bWwKKyAgICBDT01NQU5EIGds
aWItY29tcGlsZS1yZXNvdXJjZXMgLS1nZW5lcmF0ZSAtLXNvdXJjZWRpcj0ke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2Zyb250LWVuZCAtLXRhcmdldD0ke0RFUklWRURf
U09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUuYyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jl
c291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElNCispCisKK2xpc3QoQVBQRU5EIFdQRVdlYklu
c3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVMKKyAgICAke0RFUklWRURfU09VUkNFU19X
RUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jCisgICAgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNl
QnVuZGxlLmMKKykKKworbGlzdChBUFBFTkQgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJB
UklFUworICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorKQorCitsaXN0KEFQUEVORCBXUEVXZWJJ
bnNwZWN0b3JSZXNvdXJjZXNfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURF
X0RJUlN9CispCisKK2FkZF9saWJyYXJ5KFdQRVdlYkluc3BlY3RvclJlc291cmNlcyBTSEFSRUQg
JHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVSSVZFRF9TT1VSQ0VTfSkKK2FkZF9kZXBlbmRl
bmNpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIFdlYktpdDIpCit0YXJnZXRfbGlua19saWJy
YXJpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzICR7V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2Vz
X0xJQlJBUklFU30pCit0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhXUEVXZWJJbnNwZWN0b3JS
ZXNvdXJjZXMgUFVCTElDICR7V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0lOQ0xVREVfRElSRUNU
T1JJRVN9KQoraW5zdGFsbChUQVJHRVRTIFdQRVdlYkluc3BlY3RvclJlc291cmNlcyBERVNUSU5B
VElPTiAiJHtMSUJfSU5TVEFMTF9ESVJ9IikKKworc2V0KFdQRV9JTlNUQUxMRURfV0VCS0lUX0hF
QURFUlMKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tBcnJheS5oCisgICAgJHtX
RUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL0FQSS9jL1dLRGF0YS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGVj
bGFyYXRpb25TcGVjaWZpZXJzLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tE
aWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9B
UEkvYy9XS0RpY3Rpb25hcnkuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Vy
cm9yUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tFdmVudC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRmluZE9wdGlvbnMuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS0dlb21ldHJ5LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFy
ZWQvQVBJL2MvV0tJbWFnZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLTXV0
YWJsZUFycmF5LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlRGlj
dGlvbmFyeS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLTnVtYmVyLmgKKyAg
ICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQYWdlTG9hZFR5cGVzLmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZWN1cml0eU9yaWdpblJlZi5oCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaAorICAgICR7V0VCS0lUMl9ESVJ9L1No
YXJlZC9BUEkvYy9XS1R5cGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VS
TC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJMUmVzcG9uc2UuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJDb250ZW50VVJMUGF0dGVybi5oCisgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaAor
CisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaAorCisgICAg
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5o
CisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaAorICAgICR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVET01XaW5k
b3dFeHRlbnNpb24uaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVz
dWx0LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlSW5pdGlhbGl6ZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oCisgICAgJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24u
aAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVOb2RlSGFuZGxlLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VCYW5uZXIuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VHcm91cC5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlT3ZlcmxheS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUmVzb3Vy
Y2VMb2FkQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGUuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3Jp
cHRXb3JsZC5oCisKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3RJdGVtUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tC
YWNrRm9yd2FyZExpc3RSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dERvd25sb2FkQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SGlzdG9yeUNsaWVudC5oCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmgKKyAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsLmgKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsVHlwZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvV0tGcmFtZUluZm9SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9X
S0ZyYW1lUG9saWN5TGlzdGVuZXIuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9XS0hpdFRlc3RSZXN1bHQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9X
S05hdGl2ZUV2ZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZp
Z2F0aW9uQWN0aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tO
YXZpZ2F0aW9uRGF0YVJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dL
TmF2aWdhdGlvblJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2
aWdhdGlvblJlc3BvbnNlUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNv
bnRleHRNZW51Q2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VGaW5kQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlRmluZE1hdGNoZXNDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VGb3JtQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlR3JvdXAuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZUxvYWRlckNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VQb2xpY3lDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCisgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5Mb2FkUG9saWN5LmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRlUmVmLmgKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJTY3JpcHRSZWYuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oCisgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLV2luZG93RmVhdHVyZXNSZWYuaAorCisgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaAorCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5oCispCisKK2lu
c3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX1dFQktJVF9IRUFERVJTfQorICAgIERFU1RJTkFU
SU9OICIke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0vd3BlLSR7V1BFX0FQSV9WRVJTSU9OfS9X
UEUvV2ViS2l0IgorICAgIENPTVBPTkVOVCAiRGV2ZWxvcG1lbnQiCispCisKK3NldChXUEVfSU5T
VEFMTEVEX0hFQURFUlMKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dlYktp
dC5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0hFQURFUlN9CisgICAgREVT
VElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJ
T059L1dQRSIKKyAgICBDT01QT05FTlQgIkRldmVsb3BtZW50IgorKQorCitpbnN0YWxsKEZJTEVT
ICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5wYworICAgIERFU1RJTkFUSU9OICIke0NN
QUtFX0lOU1RBTExfTElCRElSfS9wa2djb25maWciCisgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVu
dCIKKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2Fy
ZGluZy1oZWFkZXJzLnBsIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJk
aW5nLWhlYWRlcnMucGwKaW5kZXggYjYxZGI3ODc3NGEuLmE3ZDNhMGI2YjkyIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5w
bApAQCAtMzUsNyArMzUsNyBAQCB1c2UgRmlsZTo6U3BlYzo6RnVuY3Rpb25zOwogdXNlIEdldG9w
dDo6TG9uZzsKIAogbXkgJHNyY1Jvb3QgPSByZWFscGF0aChGaWxlOjpTcGVjLT5jYXRmaWxlKGRp
cm5hbWUoYWJzX3BhdGgoJDApKSwgIi4uLy4uIikpOwotbXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAo
ImNhIiwgImNmIiwgImNvY29hIiwgIkNvY29hIiwgIkNvb3JkaW5hdGVkR3JhcGhpY3MiLCAiY3Vy
bCIsICJlZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMiLCAic291cCIsICJ3aW4iKTsKK215IEBwbGF0
Zm9ybVByZWZpeGVzID0gKCJjYSIsICJjZiIsICJjb2NvYSIsICJDb2NvYSIsICJDb29yZGluYXRl
ZEdyYXBoaWNzIiwgImN1cmwiLCAiZWZsIiwgImd0ayIsICJpb3MiLCAibWFjIiwgInNvdXAiLCAi
d2luIiwgIndwZSIpOwogbXkgQGZyYW1ld29ya3MgPSAoIkphdmFTY3JpcHRDb3JlIiwgIldlYkNv
cmUiLCAiV2ViS2l0Iik7CiBteSBAc2tpcHBlZFByZWZpeGVzOwogbXkgQGZyYW1ld29ya0hlYWRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMmU4ZmJmYmJlNWMuLjMz
YTA2OTg4ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0zOCw2ICsz
OCwxMCBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2VNYWMuaD4KICNlbmRpZgogCisjaWYgZGVm
aW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlV1BFLmg+CisjZW5k
aWYKKwogLyogV2ViS2l0MiBzaGFyZWQgdHlwZXMgKi8KIAogdHlwZWRlZiB1aW50MzJfdCBXS1R5
cGVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNl
V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNWVmMDYyMjAyYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKQEAg
LTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdLQmFzZVdQRV9oCisjZGVmaW5lIFdLQmFzZVdQRV9oCisKKyNpZm5k
ZWYgV0tCYXNlX2gKKyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFk
IG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tWaWV3KiBXS1ZpZXdSZWY7CisKKyNlbmRpZiAvKiBXS0Jhc2VXUEVfaCAqLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjUwZWQxYWMyYjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaApAQCAtMCwwICsxLDEwNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQ
RV9XZWJLaXRfaAorI2RlZmluZSBXUEVfV2ViS2l0X2gKKworI2RlZmluZSBCVUlMRElOR19XUEVf
XworCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUu
aD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvCisjaW5jbHVkZSA8V2Vi
S2l0L1dLQXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEYXRhLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGljdGlv
bmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9yUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLR2VvbWV0cnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tNdXRhYmxlRGljdGlvbmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS051
bWJlci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luUmVmLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVVJMLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLVVJMUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlc3BvbnNl
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CisKKy8vIEZyb20gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy8KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCdW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExp
c3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZUZyYW1lLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSGl0VGVzdFJlc3Vs
dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUluaXRpYWxpemUuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCdW5kbGVJbnNwZWN0b3IuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlTm9kZUhhbmRsZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5k
bGVQYWdlQmFubmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUNvbnRleHRNZW51
Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tC
dW5kbGVQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZU92ZXJsYXkuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tCdW5kbGVQYWdlUG9saWN5Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
QnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2VVSUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVJhbmdlSGFuZGxlLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlU2NyaXB0V29ybGQuaD4KKworLy8gRnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYWNrRm9yd2Fy
ZExpc3RJdGVtUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0UmVmLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbC5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0NyZWRlbnRpYWxUeXBlcy5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVJbmZvUmVmLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0hpdFRl
c3RSZXN1bHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvbkRhdGFSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tOYXZpZ2F0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvblJlc3BvbnNl
UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1Bh
Z2VDb25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tT
ZXNzaW9uU3RhdGVSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyU2NyaXB0UmVmLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLVmlldy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXdwb3J0QXR0cmlidXRlcy5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS1dpbmRvd0ZlYXR1cmVzUmVmLmg+CisKKyNlbmRpZiAvLyBX
UEVfV2ViS2l0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKaW5kZXggOGFjZjUwNjkyMTAuLjIyNDM4OGVlYzY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRp
bmdSdW5Mb29wLmNwcApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdv
cmtRdWV1ZVBvb2woKQogICAgIHsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgIG1fdGhyZWFkQ291bnRMaW1pdCA9IDE7CiAjZWxz
ZQogICAgICAgICBtX3RocmVhZENvdW50TGltaXQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2ln
bmVkPjo6bWF4KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
Q29tcG9zaXRpbmdSdW5Mb29wLmgKaW5kZXggODE2ZDQ2N2I1MTAuLjY0NWQ3YjkwZDEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
VEhSRUFERUQpCiAKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNz
Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9j
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZENvbXBvc2l0b3IuY3BwCmluZGV4IDU0ZDk2MGIzZDBlLi45NmQyOTY2YmRlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRv
ci5jcHAKQEAgLTQzLDEyICs0MywxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRocmVhZGVkQ29tcG9z
aXRvcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUs
IGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGRE
b0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZs
YWdzKQorUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUo
Q2xpZW50JiBjbGllbnQsIFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0
U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNo
b3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBh
aW50RmxhZ3MpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkZWRDb21wb3NpdG9y
KGNsaWVudCwgdmlld3BvcnRTaXplLCBzY2FsZUZhY3RvciwgbmF0aXZlU3VyZmFjZUhhbmRsZSwg
ZG9GcmFtZVN5bmMsIHBhaW50RmxhZ3MpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaHJl
YWRlZENvbXBvc2l0b3IoY2xpZW50LCB3ZWJQYWdlLCB2aWV3cG9ydFNpemUsIHNjYWxlRmFjdG9y
LCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFncykpOwogfQogCi1U
aHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmIGNsaWVudCwgY29u
c3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0
aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVN
YXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKK1RocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFk
ZWRDb21wb3NpdG9yKENsaWVudCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBJbnRT
aXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJm
YWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6
UGFpbnRGbGFncyBwYWludEZsYWdzKQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV92
aWV3cG9ydFNpemUodmlld3BvcnRTaXplKQogICAgICwgbV9zY2FsZUZhY3RvcihzY2FsZUZhY3Rv
cikKQEAgLTY0LDEzICs2NCwyMSBAQCBUaHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9z
aXRvcihDbGllbnQmIGNsaWVudCwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaQogICAgIG1fY2xp
ZW50UmVuZGVyc05leHRGcmFtZS5zdG9yZShmYWxzZSk7CiAgICAgbV9jb29yZGluYXRlVXBkYXRl
Q29tcGxldGlvbldpdGhDbGllbnQuc3RvcmUoZmFsc2UpOwogCisjaWYgUExBVEZPUk0oV1BFKQor
ICAgIG1fY29tcG9zaXRpbmdNYW5hZ2VyLmVzdGFibGlzaENvbm5lY3Rpb24od2ViUGFnZSk7Cisj
ZW5kaWYKKwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBtX3NjZW5lID0gYWRv
cHRSZWYobmV3IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSh0aGlzKSk7CisjaWYgUExBVEZPUk0o
R1RLKQogICAgICAgICBpZiAobV9uYXRpdmVTdXJmYWNlSGFuZGxlKSB7CiAgICAgICAgICAgICBj
cmVhdGVHTENvbnRleHQoKTsKICAgICAgICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUoZmFsc2UpOwor
I2VsaWYgUExBVEZPUk0oV1BFKQorICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7Cisj
ZW5kaWYKICAgICB9KTsKIH0KIApAQCAtODEsNiArODksOCBAQCBUaHJlYWRlZENvbXBvc2l0b3I6
On5UaHJlYWRlZENvbXBvc2l0b3IoKQogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdM
Q29udGV4dCgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyNpZiBQTEFURk9S
TShHVEspCiAgICAgQVNTRVJUKG1fbmF0aXZlU3VyZmFjZUhhbmRsZSk7CiAKICAgICBtX2NvbnRl
eHQgPSBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxH
TE5hdGl2ZVdpbmRvd1R5cGU+KG1fbmF0aXZlU3VyZmFjZUhhbmRsZSksICZQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpKTsKQEAgLTkxLDYgKzEwMSwyMiBAQCB2
b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKICAgICAgICAgaWYgKG1f
Y29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgICAgICBtX2NvbnRleHQtPnN3
YXBJbnRlcnZhbCgwKTsKICAgICB9CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBh
dXRvJiBwbGF0Zm9ybURpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKTsK
KyAgICBSRUxFQVNFX0FTU0VSVChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxh
eSkpOworICAgIG1fdGFyZ2V0ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihwbGF0Zm9y
bURpc3BsYXkpLmNyZWF0ZUVHTFRhcmdldCgqdGhpcywgbV9jb21wb3NpdGluZ01hbmFnZXIucmVs
ZWFzZUNvbm5lY3Rpb25GZCgpKTsKKyAgICBBU1NFUlQobV90YXJnZXQpOworICAgIG1fdGFyZ2V0
LT5pbml0aWFsaXplKG1fdmlld3BvcnRTaXplKTsKKworICAgIG1fY29udGV4dCA9IEdMQ29udGV4
dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyhtX3RhcmdldC0+bmF0aXZlV2luZG93KCksICZwbGF0
Zm9ybURpc3BsYXkpOworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCkBAIC0x
MDAsMTYgKzEyNiwyMyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCiAg
ICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIG1fc2NlbmUtPnB1cmdlR0xSZXNvdXJj
ZXMoKTsKICAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShXUEUpCisg
ICAgICAgIG1fdGFyZ2V0ID0gbnVsbHB0cjsKKyNlbmRpZgogICAgICAgICBtX3NjZW5lID0gbnVs
bHB0cjsKICAgICB9KTsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9N
T05JVE9SKQogICAgIG1fZGlzcGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7CiAjZW5k
aWYKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9IG51bGxwdHI7CisjaWYgVVNFKFJFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyAgICBtX2Rpc3BsYXlSZWZyZXNoTW9u
aXRvci0+aW52YWxpZGF0ZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9y
OjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQog
eworI2lmIFBMQVRGT1JNKEdUSykKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c3RvcFVwZGF0
ZXMoKTsKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGhhbmRsZV0gewogICAgICAgICAvLyBBIG5l
dyBuYXRpdmUgaGFuZGxlIGNhbid0IGJlIHNldCB3aXRob3V0IGRlc3Ryb3lpbmcgdGhlIHByZXZp
b3VzIG9uZSBmaXJzdCBpZiBhbnkuCkBAIC0xMjMsNiArMTU2LDcgQEAgdm9pZCBUaHJlYWRlZENv
bXBvc2l0b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBo
YW5kbGUpCiAgICAgICAgICAgICBtX2NvbnRleHQgPSBudWxscHRyOwogICAgICAgICB9CiAgICAg
fSk7CisjZW5kaWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldFNjYWxlRmFjdG9y
KGZsb2F0IHNjYWxlKQpAQCAtMTQ2LDYgKzE4MCwxMCBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRv
cjo6c2V0Vmlld3BvcnRTaXplKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2Nh
bAogewogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdmlld3BvcnRTaXplLCBzY2FsZV0gewogICAg
ICAgICBtX3ZpZXdwb3J0U2l6ZSA9IHZpZXdwb3J0U2l6ZTsKKyNpZiBQTEFURk9STShXUEUpCisg
ICAgICAgIGlmIChtX3RhcmdldCkKKyAgICAgICAgICAgIG1fdGFyZ2V0LT5yZXNpemUodmlld3Bv
cnRTaXplKTsKKyNlbmRpZgogICAgICAgICBtX3NjYWxlRmFjdG9yID0gc2NhbGU7CiAgICAgICAg
IG1fbmVlZHNSZXNpemUgPSB0cnVlOwogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c2No
ZWR1bGVVcGRhdGUoKTsKQEAgLTE4OSw5ICsyMjcsMTggQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0
b3I6OnJlbmRlckxheWVyVHJlZSgpCiAgICAgaWYgKCFtX3NjZW5lIHx8ICFtX3NjZW5lLT5pc0Fj
dGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgaWYgKCFt
X2NvbnRleHQpCisgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOworI2VuZGlmCisKICAgICBpZiAo
IW1fY29udGV4dCB8fCAhbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAg
cmV0dXJuOwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1fdGFyZ2V0LT5mcmFtZVdpbGxSZW5k
ZXIoKTsKKyNlbmRpZgorCiAgICAgaWYgKG1fbmVlZHNSZXNpemUpIHsKICAgICAgICAgZ2xWaWV3
cG9ydCgwLCAwLCBtX3ZpZXdwb3J0U2l6ZS53aWR0aCgpLCBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQo
KSk7CiAgICAgICAgIG1fbmVlZHNSZXNpemUgPSBmYWxzZTsKQEAgLTIxMSw3ICsyNTgsMTMgQEAg
dm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJlbmRlckxheWVyVHJlZSgpCiAKICAgICBtX2NvbnRl
eHQtPnN3YXBCdWZmZXJzKCk7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV90YXJnZXQtPmZy
YW1lUmVuZGVyZWQoKTsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQogICAgIHNjZW5lVXBk
YXRlRmluaXNoZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2Nl
bmVVcGRhdGVGaW5pc2hlZCgpCkBAIC0yNzAsNSArMzIzLDMyIEBAIHZvaWQgVGhyZWFkZWRDb21w
b3NpdG9yOjpjb29yZGluYXRlVXBkYXRlQ29tcGxldGlvbldpdGhDbGllbnQoKQogfQogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShXUEUpCitzdGF0aWMgdm9pZCBkZWJ1Z1RocmVhZGVkQ29tcG9zaXRv
ckZQUygpCit7CisgICAgc3RhdGljIGRvdWJsZSBsYXN0VGltZSA9IGN1cnJlbnRUaW1lKCk7Cisg
ICAgc3RhdGljIHVuc2lnbmVkIGZyYW1lQ291bnQgPSAwOworCisgICAgZG91YmxlIGN0ID0gY3Vy
cmVudFRpbWUoKTsKKyAgICBmcmFtZUNvdW50Kys7CisKKyAgICBpZiAoY3QgLSBsYXN0VGltZSA+
PSA1LjApIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJUaHJlYWRlZENvbXBvc2l0b3I6IGZy
YW1lIGNhbGxiYWNrcyAlLjJmIEZQU1xuIiwgZnJhbWVDb3VudCAvIChjdCAtIGxhc3RUaW1lKSk7
CisgICAgICAgIGxhc3RUaW1lID0gY3Q7CisgICAgICAgIGZyYW1lQ291bnQgPSAwOworICAgIH0K
K30KKwordm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmZyYW1lQ29tcGxldGUoKQoreworICAgIEFT
U0VSVChtX2NvbXBvc2l0aW5nUnVuTG9vcC0+aXNDdXJyZW50KCkpOworICAgIHN0YXRpYyBib29s
IHJlcG9ydEZQUyA9ICEhc3RkOjpnZXRlbnYoIldQRV9USFJFQURFRF9DT01QT1NJVE9SX0ZQUyIp
OworICAgIGlmIChyZXBvcnRGUFMpCisgICAgICAgIGRlYnVnVGhyZWFkZWRDb21wb3NpdG9yRlBT
KCk7CisKKyAgICBzY2VuZVVwZGF0ZUZpbmlzaGVkKCk7Cit9CisjZW5kaWYKKwogfQogI2VuZGlm
IC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCA2Nzk1
NGEwN2E0Ni4uZWIxMjQ1OTc1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKQEAgLTQyLDYgKzQyLDExIEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaD4KICNlbmRpZgogCisjaWYgUExB
VEZPUk0oV1BFKQorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1EaXNwbGF5V1BFLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZTsKIH0KQEAgLTUxLDggKzU2LDEzIEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOwogY2xh
c3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50OwogY2xhc3MgVGhyZWFkZWREaXNwbGF5
UmVmcmVzaE1vbml0b3I7CitjbGFzcyBXZWJQYWdlOwogCi1jbGFzcyBUaHJlYWRlZENvbXBvc2l0
b3IgOiBwdWJsaWMgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50LCBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8VGhyZWFkZWRDb21wb3NpdG9yPiB7CitjbGFzcyBUaHJlYWRlZENvbXBv
c2l0b3IgOiBwdWJsaWMgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50LCBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkZWRDb21wb3NpdG9yPgorI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICAsIHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6Q2xp
ZW50CisjZW5kaWYKKyAgICB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkZWRDb21w
b3NpdG9yKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTY0LDcg
Kzc0LDcgQEAgcHVibGljOgogCiAgICAgZW51bSBjbGFzcyBTaG91bGREb0ZyYW1lU3luYyB7IE5v
LCBZZXMgfTsKIAotICAgIHN0YXRpYyBSZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBjcmVhdGUoQ2xp
ZW50JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRf
dCBuYXRpdmVTdXJmYWNlSGFuZGxlID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0Zy
YW1lU3luYzo6WWVzLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7Cisg
ICAgc3RhdGljIFJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBXZWJQYWdl
JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBu
YXRpdmVTdXJmYWNlSGFuZGxlID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0ZyYW1l
U3luYzo6WWVzLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CiAgICAg
dmlydHVhbCB+VGhyZWFkZWRDb21wb3NpdG9yKCk7CiAKICAgICB2b2lkIHNldE5hdGl2ZVN1cmZh
Y2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCk7CkBAIC04NywxMyArOTcsMTggQEAgcHVi
bGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgVGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0
aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMsIFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXI6OlBhaW50RmxhZ3MpOworICAgIFRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmLCBXZWJQYWdl
JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBu
YXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYywgV2ViQ29yZTo6VGV4dHVyZU1h
cHBlcjo6UGFpbnRGbGFncyk7CiAKICAgICAvLyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGll
bnQKICAgICB2b2lkIHJlbmRlck5leHRGcmFtZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRl
Vmlld3BvcnQoKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJf
dCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpIG92ZXJyaWRlOwogCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6U3Vy
ZmFjZTo6Q2xpZW50CisgICAgdm9pZCBmcmFtZUNvbXBsZXRlKCkgb3ZlcnJpZGU7CisjZW5kaWYK
KwogICAgIHZvaWQgcmVuZGVyTGF5ZXJUcmVlKCk7CiAgICAgdm9pZCBzY2VuZVVwZGF0ZUZpbmlz
aGVkKCk7CiAKQEAgLTEwMSw2ICsxMTYsMTIgQEAgcHJpdmF0ZToKIAogICAgIENsaWVudCYgbV9j
bGllbnQ7CiAgICAgUmVmUHRyPENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZT4gbV9zY2VuZTsKKwor
I2lmIFBMQVRGT1JNKFdQRSkKKyAgICBDb21wb3NpdGluZ01hbmFnZXIgbV9jb21wb3NpdGluZ01h
bmFnZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6
RUdMVGFyZ2V0PiBtX3RhcmdldDsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkdMQ29udGV4dD4gbV9jb250ZXh0OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdw
b3J0U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAppbmRleCA3ZmM0
ZDdjNGIzZi4uYTQzNWUxOWJiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
cmF3aW5nQXJlYUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJ
bmZvLmgKQEAgLTM0LDYgKzM0LDggQEAgZW51bSBEcmF3aW5nQXJlYVR5cGUgewogICAgIERyYXdp
bmdBcmVhVHlwZVRpbGVkQ29yZUFuaW1hdGlvbiwKICNlbmRpZgogICAgIERyYXdpbmdBcmVhVHlw
ZVJlbW90ZUxheWVyVHJlZSwKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBEcmF3aW5nQXJlYVR5
cGVXUEUKICNlbHNlCiAgICAgRHJhd2luZ0FyZWFUeXBlSW1wbAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAppbmRleCBjYjFmMTE4Yzg5
Mi4uMTRmZGRlMjI0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktl
eWJvYXJkRXZlbnQuaApAQCAtNTEsNiArNTEsMTAgQEAgdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQg
R2RrRXZlbnQ7CiBPQkpDX0NMQVNTIFdlYkV2ZW50OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShX
UEUpCitzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYktl
eWJvYXJkRXZlbnQgewpAQCAtNjIsNiArNjYsOCBAQCBwdWJsaWM6CiAgICAgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChHZGtFdmVudCosIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYs
IElucHV0TWV0aG9kRmlsdGVyOjpFdmVudEZha2VkRm9yQ29tcG9zaXRpb24sIFZlY3RvcjxTdHJp
bmc+JiYgY29tbWFuZHMpOwogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQoOjpXZWJFdmVudCAqKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqKTsKICNlbmRp
ZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTcyLDYgKzc4LDggQEAgcHVibGljOgogICAgIGJvb2wg
aXNGYWtlRXZlbnRGb3JDb21wb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmFrZUV2ZW50Rm9y
Q29tcG9zaXRpb247IH0KICNlbGlmIFBMQVRGT1JNKElPUykKICAgICA6OldlYkV2ZW50KiBuYXRp
dmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KKyNlbGlmIFBM
QVRGT1JNKFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
YXRpdmVXZWJNb3VzZUV2ZW50LmgKaW5kZXggODhjZDE0MTA5MzguLjI4M2ZjMzM0OTQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKQEAgLTM4LDYgKzM4
LDEwIEBAIE9CSkNfQ0xBU1MgTlNWaWV3OwogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZl
bnQ7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZlV2Vi
TW91c2VFdmVudCA6IHB1YmxpYyBXZWJNb3VzZUV2ZW50IHsKQEAgLTQ3LDYgKzUxLDggQEAgcHVi
bGljOgogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoY29uc3Qg
TmF0aXZlV2ViTW91c2VFdmVudCYpOwogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoR2RrRXZlbnQq
LCBpbnQpOworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwog
I2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNTUsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgR2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVu
dC5nZXQoKTsgfQogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2
ZW50KCkgY29uc3QgeyByZXR1cm4gMDsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0
IHZvaWQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91
Y2hFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaApp
bmRleCAxMTgxMjRjZGViYy4uODJmM2IyNGQ0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L05hdGl2ZVdlYlRvdWNoRXZlbnQuaApAQCAtMzQsNiArMzQsOCBAQAogc3RydWN0IF9VSVdlYlRv
dWNoRXZlbnQ7CiAjZWxpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVl
UHRyR3RrLmg+CisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSA8d3BlL2lucHV0Lmg+CiAj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Niw2ICs0OCw5IEBAIHB1YmxpYzoKICAg
ICBOYXRpdmVXZWJUb3VjaEV2ZW50KEdka0V2ZW50KiwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQ
b2ludD4mJik7CiAgICAgTmF0aXZlV2ViVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2
ZW50Jik7CiAgICAgY29uc3QgR2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4g
bV9uYXRpdmVFdmVudC5nZXQoKTsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdl
YlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCosIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKTsKKyAgICBjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3Jhdyog
bmF0aXZlRmFsbGJhY2tUb3VjaFBvaW50KCkgY29uc3QgeyByZXR1cm4gJm1fZmFsbGJhY2tUb3Vj
aFBvaW50OyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTU1LDYgKzYwLDggQEAgcHJpdmF0ZToK
IAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBHVW5pcXVlUHRyPEdka0V2ZW50PiBtX25hdGl2ZUV2
ZW50OworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZl
bnRfcmF3IG1fZmFsbGJhY2tUb3VjaFBvaW50OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAppbmRleCA1ZGIwYmNlOGZlYi4uMTVmOTU4
NjcxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaApA
QCAtMzgsNiArMzgsMTAgQEAgT0JKQ19DTEFTUyBOU1ZpZXc7CiB0eXBlZGVmIHVuaW9uIF9HZGtF
dmVudCBHZGtFdmVudDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9p
bnB1dF9heGlzX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBO
YXRpdmVXZWJXaGVlbEV2ZW50IDogcHVibGljIFdlYldoZWVsRXZlbnQgewpAQCAtNDcsNiArNTEs
OCBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgTmF0aXZlV2ViV2hlZWxFdmVu
dChjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jik7CiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChH
ZGtFdmVudCopOworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwog
I2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNTUsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAg
R2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQo
KTsgfQogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQq
IG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CmluZGV4IGJjNWQ2OTE3ZjMxLi5iMDQwZWMwYWZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTg0LDExICs4NCwxNCBAQAogI2lm
IFBMQVRGT1JNKElPUykKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW5zcGVjdG9yT3ZlcmxheS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2Fy
ZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VsZWN0aW9uUmVjdC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2hhcmVkQnVmZmVyLmg+CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCisjaWYgUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShXUEUpCisjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+
CisjZW5kaWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oPgogI2VuZGlmCkBAIC0xNDky
LDYgKzE0OTUsMjMgQEAgYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRJbWFnZT46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkSW1hZ2UmIHAKIAogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShXUEUpCit2b2lkIEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRl
bnQpCit7CisgICAgZW5jb2RlciA8PCBjb250ZW50LnRleHQ7CisgICAgZW5jb2RlciA8PCBjb250
ZW50Lm1hcmt1cDsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50
KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC50ZXh0KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC5tYXJrdXApKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYgLy8gUExBVEZP
Uk0oV1BFKQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8RGljdGF0aW9uQWx0ZXJuYXRpdmU+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGljdGF0aW9uQWx0ZXJuYXRpdmUmIGRpY3RhdGlv
bkFsdGVybmF0aXZlKQogewogICAgIGVuY29kZXIgPDwgZGljdGF0aW9uQWx0ZXJuYXRpdmUucmFu
Z2VTdGFydDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aAppbmRleCAwZjU1YjhhZjVhYi4uZDJhZWNmYmNlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTEzNCw2ICsxMzQsMTIgQEAgc3RydWN0
IFNvdXBOZXR3b3JrUHJveHlTZXR0aW5nczsKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BF
KQorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50czsKK30K
KyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOwpAQCAtNDE2LDYgKzQyMiwx
MyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNvdXBOZXR3b3Jr
UHJveHlTZXR0aW5ncz4gewogfTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQordGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudD4g
eworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGFzdGVi
b2FyZFdlYkNvbnRlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7Cit9OworI2VuZGlmCisKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHsKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5k
ZXJsaW5lJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDb21w
b3NpdGlvblVuZGVybGluZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggOTZiYmE1ZDlhMzQuLjNlOGY4MmU2ZDc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgK
QEAgLTM3NSw3ICszNzUsNyBAQAogICAgIG1hY3JvKFBpY3RvZ3JhcGhGb250RmFtaWx5LCBwaWN0
b2dyYXBoRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJBcHBsZSBDb2xvciBFbW9qaSIsICIi
LCAiIikgXAogICAgIFwKIAotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZ
X1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNybyhTdGFuZGFyZEZvbnRGYW1pbHksIHN0YW5k
YXJkRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJUaW1lcyIsICIiLCAiIikgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BF
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQ
RS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2ODNiODEyZjNi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJL
ZXlib2FyZEV2ZW50V1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3Rv
cnkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYktleWJvYXJkRXZlbnQ6Ok5h
dGl2ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZl
bnQpCisgICAgOiBXZWJLZXlib2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5
Ym9hcmRFdmVudChldmVudCkpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZDlkNDNkZTVlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2
ZW50V1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRp
dmVXZWJNb3VzZUV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5hdGl2ZVdlYk1vdXNlRXZl
bnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2Nh
bGVGYWN0b3IpCisgICAgOiBXZWJNb3VzZUV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2Vi
TW91c2VFdmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZl
V2ViVG91Y2hFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdl
YlRvdWNoRXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4wY2M2NjU4Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93
cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViVG91Y2hFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZl
bnRGYWN0b3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJUb3VjaEV2ZW50
OjpOYXRpdmVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqIGV2ZW50
LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYlRvdWNoRXZlbnQoV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3RvcikpCisg
ICAgLCBtX2ZhbGxiYWNrVG91Y2hQb2ludCB7IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251
bGwsIDAsIDAsIDAsIDAgfQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBldmVudC0+
dG91Y2hwb2ludHNfbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgcG9pbnQgPSBldmVudC0+
dG91Y2hwb2ludHNbaV07CisgICAgICAgIGlmIChwb2ludC50eXBlICE9IHdwZV9pbnB1dF90b3Vj
aF9ldmVudF90eXBlX251bGwpIHsKKyAgICAgICAgICAgIG1fZmFsbGJhY2tUb3VjaFBvaW50ID0g
cG9pbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRp
dmVXZWJXaGVlbEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYmE5NjJlZDRkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKworI2luY2x1ZGUgIldl
YkV2ZW50RmFjdG9yeS5oIgorCisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworTmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6
IFdlYldoZWVsRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGV2ZW50
LCBkZXZpY2VTY2FsZUZhY3RvcikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhX
UEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhX
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kODdhOTI3YWJi
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4
ZWN1dGFibGVQYXRoV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHly
aWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xB
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nl
c3NFeGVjdXRhYmxlUGF0aC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Cisj
aW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMg
U3RyaW5nIGdldEV4ZWN1dGFibGVQYXRoKCkKK3sKKyAgICBDU3RyaW5nIGV4ZWN1dGFibGVQYXRo
ID0gZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7CisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuIGRpcmVjdG9yeU5hbWUoc3RyaW5nRnJvbUZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aC5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK3N0YXRpYyBTdHJpbmcgZmluZFdlYktpdFByb2Nlc3MoY29uc3QgY2hhciog
cHJvY2Vzc05hbWUpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4ZWNEaXJlY3RvcnkgPSBn
X2dldGVudigiV0VCS0lUX0VYRUNfUEFUSCIpOworICAgIGlmIChleGVjRGlyZWN0b3J5KSB7Cisg
ICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJp
bmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWNEaXJlY3RvcnkpLCBwcm9jZXNzTmFt
ZSk7CisgICAgICAgIGlmIChmaWxlRXhpc3RzKHByb2Nlc3NQYXRoKSkKKyAgICAgICAgICAgIHJl
dHVybiBwcm9jZXNzUGF0aDsKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nIGV4ZWN1dGFibGVQ
YXRoID0gZ2V0RXhlY3V0YWJsZVBhdGgoKTsKKyAgICBpZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVs
bCgpKSB7CisgICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChleGVjdXRhYmxlUGF0aCwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4aXN0
cyhwcm9jZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAgfQor
CisgICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9tRmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKExJQkVYRUNESVIpLCBwcm9jZXNzTmFtZSk7Cit9CisKK1N0cmluZyBl
eGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9j
ZXNzKCJXUEVXZWJQcm9jZXNzIik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2lu
UHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVQbHVnaW5Qcm9j
ZXNzIik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQorewor
ICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFTmV0d29ya1Byb2Nlc3MiKTsKK30KKwor
I2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRh
YmFzZVByb2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFRGF0YWJh
c2VQcm9jZXNzIik7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU1NzFlMWFhYzk3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0wLDAgKzEs
MjE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Nyb2xsYmFyLmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRl
IDx3cGUvaW5wdXQuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdGF0aWMgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JF
dmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICB1bnNp
Z25lZCBtb2RpZmllcnMgPSAwOworICAgIHVuc2lnbmVkIGV2ZW50TW9kaWZpZXJzID0gZXZlbnQt
Pm1vZGlmaWVyczsKKworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2Fy
ZF9tb2RpZmllcl9jb250cm9sKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRy
b2xLZXk7CisgICAgaWYgKGV2ZW50TW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlm
aWVyX3NoaWZ0KQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OworICAg
IGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9hbHQpCisg
ICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmIChldmVudE1vZGlm
aWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9tZXRhKQorICAgICAgICBtb2RpZmll
cnMgfD0gV2ViRXZlbnQ6Ok1ldGFLZXk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRXZl
bnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKTsKK30KKworc3RhdGljIFN0cmluZyBzaW5nbGVDaGFy
YWN0ZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBl
dmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBzaW5nbGVDaGFyYWN0ZXIgPSB3cGVfaW5wdXRfc2lu
Z2xlX2NoYXJhY3Rlcl9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5n
bGV0b24oKSwgZXZlbnQpOworICAgIGlmIChzaW5nbGVDaGFyYWN0ZXIpCisgICAgICAgIHJldHVy
biBTdHJpbmcoc2luZ2xlQ2hhcmFjdGVyKTsKKworICAgIGdsb25nIGxlbmd0aDsKKyAgICBHVW5p
cXVlUHRyPGd1bmljaGFyMj4gdWNoYXIxNihnX3VjczRfdG9fdXRmMTYoJmV2ZW50LT51bmljb2Rl
LCAxLCAwLCAmbGVuZ3RoLCBudWxscHRyKSk7CisgICAgaWYgKHVjaGFyMTYpCisgICAgICAgIHJl
dHVybiBTdHJpbmcodWNoYXIxNi5nZXQoKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitz
dGF0aWMgU3RyaW5nIGlkZW50aWZpZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBpZGVudGlmaWVyID0g
d3BlX2lucHV0X2lkZW50aWZpZXJfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9n
ZXRfc2luZ2xldG9uKCksIGV2ZW50KTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgcmV0
dXJuIFN0cmluZyhpZGVudGlmaWVyKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiVSsl
MDRYIiwgZXZlbnQtPnVuaWNvZGUpOworfQorCitXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2
ZW50KiBldmVudCkKK3sKKyAgICBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nID0gc2luZ2xl
Q2hhcmFjdGVyU3RyaW5nRm9yS2V5RXZlbnQoZXZlbnQpOworICAgIFN0cmluZyBpZGVudGlmaWVy
U3RyaW5nID0gaWRlbnRpZmllclN0cmluZ0ZvcktleUV2ZW50KGV2ZW50KTsKKworICAgIHJldHVy
biBXZWJLZXlib2FyZEV2ZW50KGV2ZW50LT5wcmVzc2VkID8gV2ViRXZlbnQ6OktleURvd24gOiBX
ZWJFdmVudDo6S2V5VXAsCisgICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmluZywgc2luZ2xlQ2hh
cmFjdGVyU3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAorICAgICAgICB3cGVfaW5wdXRfd2luZG93
c19rZXlfY29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0
b24oKSwgZXZlbnQpLAorICAgICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVudC0+dGltZSk7Cit9
CisKK1dlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKQoreworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOworICAg
IHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50
X3R5cGVfbW90aW9uOgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoK
KyAgICAgICAgdHlwZSA9IGV2ZW50LT5zdGF0ZSA/IFdlYkV2ZW50OjpNb3VzZURvd24gOiBXZWJF
dmVudDo6TW91c2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KworICAgIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b24gPSBXZWJNb3VzZUV2ZW50OjpOb0J1
dHRvbjsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9p
bnRlcl9ldmVudF90eXBlX21vdGlvbjoKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50
X3R5cGVfYnV0dG9uOgorICAgICAgICBpZiAoZXZlbnQtPmJ1dHRvbiA9PSAxKQorICAgICAgICAg
ICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICAgICAgZWxzZSBpZiAo
ZXZlbnQtPmJ1dHRvbiA9PSAyKQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6
UmlnaHRCdXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMykKKyAgICAg
ICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHVuc2lnbmVkIGNsaWNrQ291bnQg
PSAodHlwZSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSA/IDEgOiAwOworCisgICAgLy8gRklYTUU6
IFByb3BlciBidXR0b24gc3VwcG9ydC4gTW9kaWZpZXJzLiBkZWx0YVgvWS9aLiBDbGljayBjb3Vu
dC4KKyAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwor
ICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdl
Yk1vdXNlRXZlbnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIDAs
IDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBl
dmVudC0+dGltZSk7Cit9CisKK1dlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVX
ZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGFyZC1jb2Rl
IHRoaXMuCisgICAgZW51bSBBeGlzIHsKKyAgICAgICAgVmVydGljYWwsCisgICAgICAgIEhvcml6
b250YWwsCisgICAgICAgIFNtb290aAorICAgIH07CisKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUg
d2hlZWxUaWNrczsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgZGVsdGE7CisgICAgc3dpdGNoIChl
dmVudC0+YXhpcykgeworICAgIGNhc2UgVmVydGljYWw6CisgICAgICAgIHdoZWVsVGlja3MgPSBX
ZWJDb3JlOjpGbG9hdFNpemUoMCwgZXZlbnQtPnZhbHVlIC8gc3RkOjphYnMoZXZlbnQtPnZhbHVl
KSk7CisgICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsKKyAgICAgICAgZGVsdGEuc2NhbGUoV2Vi
Q29yZTo6U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBIb3Jpem9udGFsOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRT
aXplKGV2ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSksIDApOworICAgICAgICBk
ZWx0YSA9IHdoZWVsVGlja3M7CisgICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJh
cjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU21vb3Ro
OgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1
ZSAvIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH07CisKKyAgICBX
ZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBvc2l0
aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYldoZWVsRXZl
bnQoV2ViRXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIGRlbHRhLCB3
aGVlbFRpY2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3RhdGlj
X2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKK30KKworc3RhdGlj
IFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVGb3JU
b3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9l
dmVudF9yYXcqIHBvaW50KQoreworICAgIGlmIChwb2ludC0+aWQgIT0gbWFpbkV2ZW50SWQpCisg
ICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9u
YXJ5OworCisgICAgc3dpdGNoIChwb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3Rv
dWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1U
b3VjaFBvaW50OjpUb3VjaFByZXNzZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRf
dHlwZV9tb3Rpb246CisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2lu
dDo6VG91Y2hNb3ZlZDsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgor
ICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFz
ZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIHJldHVy
biBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworfQorCitX
ZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qg
d3BlX2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7
CisgICAgV2ViRXZlbnQ6OlR5cGUgdHlwZSA9IFdlYkV2ZW50OjpOb1R5cGU7CisgICAgc3dpdGNo
IChldmVudC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93
bjoKKyAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaFN0YXJ0OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgdHlw
ZSA9IFdlYkV2ZW50OjpUb3VjaE1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hF
bmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVf
bnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgVmVjdG9y
PFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiB0b3VjaFBvaW50czsKKyAgICB0b3VjaFBv
aW50cy5yZXNlcnZlQ2FwYWNpdHkoZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aCk7CisKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytpKSB7
CisgICAgICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAgICBp
ZiAocG9pbnQudHlwZSA9PSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKQorICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnRDb29yZGlu
YXRlcyhwb2ludC54LCBwb2ludC55KTsKKyAgICAgICAgcG9pbnRDb29yZGluYXRlcy5zY2FsZSgx
IC8gZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICB0b3VjaFBvaW50cy51bmNoZWNrZWRBcHBl
bmQoCisgICAgICAgICAgICBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludChwb2ludC5pZCwg
c3RhdGVGb3JUb3VjaFBvaW50KGV2ZW50LT5pZCwgJnBvaW50KSwKKyAgICAgICAgICAgICAgICBw
b2ludENvb3JkaW5hdGVzLCBwb2ludENvb3JkaW5hdGVzKSk7CisgICAgfQorCisgICAgcmV0dXJu
IFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpNb2Rp
ZmllcnMoMCksIGV2ZW50LT50aW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTJhYTAzNDUwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorCitzdHJ1Y3Qgd3BlX2lucHV0X2F4
aXNfZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50Oworc3RydWN0IHdwZV9p
bnB1dF9wb2ludGVyX2V2ZW50Oworc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudDsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkV2ZW50RmFjdG9yeSB7CitwdWJsaWM6CisgICAg
c3RhdGljIFdlYktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X2tleWJvYXJkX2V2ZW50Kik7CisgICAgc3RhdGljIFdlYk1vdXNlRXZlbnQgY3JlYXRl
V2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqLCBmbG9hdCBkZXZp
Y2VTY2FsZUZhY3Rvcik7CisgICAgc3RhdGljIFdlYldoZWVsRXZlbnQgY3JlYXRlV2ViV2hlZWxF
dmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cik7CisgICAgc3RhdGljIFdlYlRvdWNoRXZlbnQgY3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qg
d3BlX2lucHV0X3RvdWNoX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0LmgKaW5kZXggNzhhMzgwNDE1OWUuLjdiZmEwMzdkYWY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01NTcsNCArNTU3LDggQEAgaW5saW5l
IFByb3h5aW5nUmVmUHRyPFdlYkdyYW1tYXJEZXRhaWw+IHRvQVBJKGNvbnN0IFdlYkNvcmU6Okdy
YW1tYXJEZXRhaWwmIGdyYW0KICNpbmNsdWRlICJXS0FQSUNhc3RHdGsuaCIKICNlbmRpZgogCisj
aWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRlICJXS0FQSUNhc3RXUEUuaCIKKyNl
bmRpZgorCiAjZW5kaWYgLy8gV0tBUElDYXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLQVBJQ2FzdFdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4wZjhhMWU3MTcwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmgKQEAgLTAsMCArMSw1OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdLQVBJQ2FzdFdQRV9oCisjZGVmaW5lIFdLQVBJQ2FzdFdQRV9oCisKKyNpZm5kZWYgV0tBUElD
YXN0X2gKKyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tBUElDYXN0LmhcIiBpbnN0ZWFkIG9m
IHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKworI2luY2x1ZGUgIldLVmlldy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorCituYW1lc3BhY2UgV0tXUEUgeworY2xh
c3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dLX0FERF9BUElfTUFQUElORyhX
S1ZpZXdSZWYsIFdLV1BFOjpWaWV3KQorCitpbmxpbmUgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6
RmxhZ3MgdG9WaWV3U3RhdGVGbGFncyhXS1ZpZXdTdGF0ZSB3a1ZpZXdTdGF0ZSkKK3sKKyAgICB1
bnNpZ25lZCB2aWV3U3RhdGVGbGFncyA9IDA7CisKKyAgICBpZiAod2tWaWV3U3RhdGUgJiBrV0tW
aWV3U3RhdGVJc0luV2luZG93KQorICAgICAgICB2aWV3U3RhdGVGbGFncyB8PSBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworICAgIGlmICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdT
dGF0ZUlzVmlzaWJsZSkKKyAgICAgICAgdmlld1N0YXRlRmxhZ3MgfD0gV2ViQ29yZTo6QWN0aXZp
dHlTdGF0ZTo6SXNWaXNpYmxlOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OkZsYWdzPih2aWV3U3RhdGVGbGFncyk7Cit9CisKK30KKworI2VuZGlmIC8v
IFdLQVBJQ2FzdFdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0Mvd3BlL1dLVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dL
Vmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjYmIyMzcx
NWVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dw
ZS9XS1ZpZXcuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldL
Vmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJQ
YWdlQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldQRVZp
ZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tWaWV3UmVmIFdLVmlld0NyZWF0
ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRv
QVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUobnVsbHB0ciwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkp
OworfQorCitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVjdCB3cGVf
dmlld19iYWNrZW5kKiBiYWNrZW5kLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRp
b24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUoYmFja2VuZCwgKnRv
SW1wbChjb25maWd1cmF0aW9uKSkpOworfQorCitXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1Zp
ZXdSZWYgdmlldykKK3sKKyAgICByZXR1cm4gdG9BUEkoJnRvSW1wbCh2aWV3KS0+cGFnZSgpKTsK
K30KKwordm9pZCBXS1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3UmVmIHZpZXcsIFdLVmlld1N0YXRl
IHZpZXdTdGF0ZSkKK3sKKyAgICB0b0ltcGwodmlldyktPnNldFZpZXdTdGF0ZSh0b1ZpZXdTdGF0
ZUZsYWdzKHZpZXdTdGF0ZSkpOworfQorCit2b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tWaWV3
UmVmIHZpZXcsIGNvbnN0IFdLVmlld0NsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICB0b0ltcGwo
dmlldyktPmluaXRpYWxpemVDbGllbnQoY2xpZW50KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi41NTllYzJiNDViNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVmlld19oCisj
ZGVmaW5lIFdLVmlld19oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLR2VvbWV0cnkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsK
KyNlbmRpZgorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZDsKKworV0tfRVhQT1JUIFdLVmlld1Jl
ZiBXS1ZpZXdDcmVhdGUoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7CitXS19FWFBPUlQgV0tWaWV3
UmVmIFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCos
IFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpOworCitXS19FWFBPUlQgV0tQYWdlUmVmIFdLVmlld0dl
dFBhZ2UoV0tWaWV3UmVmKTsKKworZW51bSB7CisgICAga1dLVmlld1N0YXRlSXNJbldpbmRvdyA9
IDEgPDwgMCwKKyAgICBrV0tWaWV3U3RhdGVJc1Zpc2libGUgPSAxIDw8IDEsCit9OwordHlwZWRl
ZiB1aW50MzJfdCBXS1ZpZXdTdGF0ZTsKKworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld1N0
YXRlKFdLVmlld1JlZiwgV0tWaWV3U3RhdGUpOworCit0eXBlZGVmIHZvaWQgKCpXS1ZpZXdGcmFt
ZURpc3BsYXllZCkoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0
eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRCYXNlIHsKKyAgICBpbnQgdmVyc2lvbjsKKyAgICBj
b25zdCB2b2lkKiBjbGllbnRJbmZvOworfSBXS1ZpZXdDbGllbnRCYXNlOworCit0eXBlZGVmIHN0
cnVjdCBXS1ZpZXdDbGllbnRWMCB7CisgICAgV0tWaWV3Q2xpZW50QmFzZSBiYXNlOworCisgICAg
Ly8gdmVyc2lvbiAwCisgICAgV0tWaWV3RnJhbWVEaXNwbGF5ZWQgZnJhbWVEaXNwbGF5ZWQ7Cit9
IFdLVmlld0NsaWVudFYwOworCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdL
Vmlld1JlZiwgY29uc3QgV0tWaWV3Q2xpZW50QmFzZSopOworCisjaWZkZWYgX19jcGx1c3BsdXMK
K30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tWaWV3X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTQwNGVjNWQ5YjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGlu
Z01hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIK
KyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V1BFVmlldy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8d3BlL3ZpZXctYmFja2VuZC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkNvbXBvc2l0aW5nTWFuYWdlclBy
b3h5KFdLV1BFOjpWaWV3JiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCit7Cit9CisKK0NvbXBv
c2l0aW5nTWFuYWdlclByb3h5Ojp+Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKSA9IGRlZmF1bHQ7
CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmluaXRpYWxpemUoKQoreworICAgIG1f
dmlldy5wYWdlKCkucHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X3ZpZXcucGFnZSgpLnBhZ2VJRCgpLCAqdGhpcyk7Cit9CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHk6OmVzdGFibGlzaENvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9u
SGFuZGxlKQoreworICAgIGNvbm5lY3Rpb25IYW5kbGUgPSBJUEM6OkF0dGFjaG1lbnQod3BlX3Zp
ZXdfYmFja2VuZF9nZXRfcmVuZGVyZXJfaG9zdF9mZChtX3ZpZXcuYmFja2VuZCgpKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNhMzVjMDdjNGQ1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
aApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3Mg
QXR0YWNobWVudDsKK30KKworbmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDb21wb3NpdGluZ01hbmFnZXJQcm94eSBmaW5hbCA6
IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkpOworcHVibGljOgorICAgIENvbXBvc2l0aW5nTWFuYWdl
clByb3h5KFdLV1BFOjpWaWV3Jik7CisgICAgdmlydHVhbCB+Q29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkoKTsKKworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKSBvdmVycmlkZTsKKworICAgIHZvaWQgZXN0YWJs
aXNoQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQmKTsKKworICAgIFdLV1BFOjpWaWV3JiBtX3Zp
ZXc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5
YTAwNTU3Nzc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkgeworICAgIEVzdGFibGlzaENvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5l
Y3Rpb25IYW5kbGUpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4zNzNjMGY2N2UyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEs
OTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKwor
I2luY2x1ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEcmF3aW5nQXJlYVByb3h5V1BF
OjpEcmF3aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IERyYXdpbmdB
cmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlV1BFLCBwYWdlKQoreworfQorCitEcmF3aW5nQXJlYVBy
b3h5V1BFOjp+RHJhd2luZ0FyZWFQcm94eVdQRSgpCit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQ
cm94eVdQRTo6ZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6c2l6ZURpZENoYW5nZSgpCit7
CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkKKyAgICAgICAgbV93ZWJQYWdlUHJv
eHkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpVcGRhdGVCYWNraW5nU3Rv
cmVTdGF0ZSgwLCBmYWxzZSwgbV93ZWJQYWdlUHJveHkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbV9z
aXplLCBtX3Njcm9sbE9mZnNldCksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKK30KKwordm9p
ZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6
ZnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKK3sK
KyAgICBpZiAoIW1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkgeworICAgICAgICBjYWxsYmFja0Z1
bmN0aW9uKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKAorICAgICAg
ICBbY2FsbGJhY2tGdW5jdGlvbl0geworICAgICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxs
YmFja0Jhc2U6OkVycm9yOjpOb25lKTsKKyAgICAgICAgfSk7Cit9CisKK3ZvaWQgRHJhd2luZ0Fy
ZWFQcm94eVdQRTo6dXBkYXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVw
ZGF0ZUluZm8mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0Fy
ZWFQcm94eVdQRTo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0
b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6
ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQoreworICAgIEFT
U0VSVCghYmFja2luZ1N0b3JlU3RhdGVJRCk7CisKKyAgICBtX2xheWVyVHJlZUNvbnRleHQgPSBs
YXllclRyZWVDb250ZXh0OworICAgIG1fd2ViUGFnZVByb3h5LmVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94
eVdQRTo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9y
ZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4
dCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJl
YVByb3h5V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJl
YVByb3h5V1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFmNDI3
YjRjYTI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93
cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0Lmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVByb3h5V1BFIGZpbmFs
IDogcHVibGljIERyYXdpbmdBcmVhUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IERyYXdp
bmdBcmVhUHJveHlXUEUoV2ViUGFnZVByb3h5Jik7CisgICAgdmlydHVhbCB+RHJhd2luZ0FyZWFQ
cm94eVdQRSgpOworCitwcml2YXRlOgorICAgIC8vIERyYXdpbmdBcmVhUHJveHkKKyAgICB2b2lk
IGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaXplRGlk
Q2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5n
KHN0ZDo6ZnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4pIG92ZXJyaWRlOworCisg
ICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHVwZGF0ZSh1aW50NjRfdCBiYWNr
aW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBj
b25zdCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAg
IHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3Rv
cmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBl
eGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJ
RCwgY29uc3QgVXBkYXRlSW5mbyYpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5
ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworCisgICAgLy8gVGhlIGN1cnJlbnQgbGF5ZXIgdHJl
ZSBjb250ZXh0LgorICAgIExheWVyVHJlZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworfTsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNs
aWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMTY1MzA5
NWZiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3Bl
L1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGFnZUNsaWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUu
aCIKKyNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2Vi
V2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiV1BFVmlldy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYWdlQ2xpZW50SW1wbDo6UGFnZUNs
aWVudEltcGwoV0tXUEU6OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1f
c2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxHZXN0dXJlQ29u
dHJvbGxlcj4oKSkKK3sKK30KKworUGFnZUNsaWVudEltcGw6On5QYWdlQ2xpZW50SW1wbCgpID0g
ZGVmYXVsdDsKKworc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRJ
bXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxEcmF3aW5nQXJlYVByb3h5V1BFPihtX3ZpZXcucGFnZSgpKTsKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKQor
eworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpCit7Cit9CisKK1dl
YkNvcmU6OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCit7
CisgICAgcmV0dXJuIHsgfTsKK30KKworV2ViQ29yZTo6SW50U2l6ZSBQYWdlQ2xpZW50SW1wbDo6
dmlld1NpemUoKQoreworICAgIHJldHVybiBtX3ZpZXcuc2l6ZSgpOworfQorCitib29sIFBhZ2VD
bGllbnRJbXBsOjppc1ZpZXdXaW5kb3dBY3RpdmUoKQoreworICAgIHJldHVybiBtX3ZpZXcudmll
d1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZTsKK30KKwor
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3Rm9jdXNlZCgpCit7CisgICAgcmV0dXJuIG1fdmll
dy52aWV3U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKK30KKwor
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3VmlzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fdmll
dy52aWV3U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZTsKK30KKwor
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3SW5XaW5kb3coKQoreworICAgIHJldHVybiBtX3Zp
ZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcm9jZXNzRGlkRXhpdCgpCit7Cit9CisKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OmRpZFJlbGF1bmNoUHJvY2VzcygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnBhZ2VDbG9zZWQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVmZXJl
bmNlc0RpZENoYW5nZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFu
Z2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkKK3sK
K30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2Fk
UHJveHkqKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6
ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKQoreworfQorCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29y
ZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVn
aXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdl
UHJveHk6OlVuZG9PclJlZG8pCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxs
RWRpdENvbW1hbmRzKCkKK3sKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6Y2FuVW5kb1JlZG8o
V2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVk
bykKK3sKK30KKworV2ViQ29yZTo6RmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9E
ZXZpY2VTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJu
IHJlY3Q7Cit9CisKK1dlYkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRv
VXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1cm4g
cmVjdDsKK30KKworV2ViQ29yZTo6SW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9v
dFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50KQoreworICAgIHJldHVybiBwb2lu
dDsKK30KKworV2ViQ29yZTo6SW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVl
bihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQoreworICAgIHJldHVybiByZWN0OworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQmLCBib29sKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0
aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCB3
YXNFdmVudEhhbmRsZWQpCit7CisgICAgaWYgKHdhc0V2ZW50SGFuZGxlZCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNo
UG9pbnQgPSB0b3VjaEV2ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpOworICAgIGlmICh0
b3VjaFBvaW50LT50eXBlID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOworCisgICAgaWYg
KG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXItPmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7Cisg
ICAgICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogYXhpc0V2ZW50ID0gbV9zY3JvbGxH
ZXN0dXJlQ29udHJvbGxlci0+YXhpc0V2ZW50KCk7CisgICAgICAgIGlmIChheGlzRXZlbnQtPnR5
cGUgIT0gd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAgcGFnZS5o
YW5kbGVXaGVlbEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1f
dmlldy5wYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IHBvaW50ZXJFdmVudCB7Cisg
ICAgICAgIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbCwgdG91Y2hQb2ludC0+dGlt
ZSwKKyAgICAgICAgdG91Y2hQb2ludC0+eCwgdG91Y2hQb2ludC0+eSwKKyAgICAgICAgMSwgMAor
ICAgIH07CisKKyAgICBzd2l0Y2ggKHRvdWNoUG9pbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9p
bnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0g
d3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgICAgIHBvaW50ZXJFdmVu
dC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3R5cGVfbW90aW9uOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9w
b2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAx
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3Vw
OgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5
cGVfYnV0dG9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAwOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYWdl
LmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudCgmcG9pbnRlckV2ZW50LCBwYWdl
LmRldmljZVNjYWxlRmFjdG9yKCkpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxF
dmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpCit7
Cit9CisKK1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBv
cHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
KyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVu
dVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJv
eHkmLCBjb25zdCBDb250ZXh0TWVudUNvbnRleHREYXRhJiwgY29uc3QgVXNlckRhdGEmKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7
Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25z
dCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKQoreworfQorCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkKK3sKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVXaWxsRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVy
ZURpZEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikKK3sKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoKQoreworfQorCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjp3aWxsUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZW1vdmVOYXZpZ2F0aW9u
R2VzdHVyZVNuYXBzaG90KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZSkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdl
QmFja2dyb3VuZENvbG9yKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVmVmlldygp
Cit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRlcmVmVmlldygpCit7Cit9CisKKyNpZiBF
TkFCTEUoVklERU8pCitib29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQ
bHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRp
ZgorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQorewor
fQorCitXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIFBhZ2VDbGllbnRJbXBs
Ojp1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VD
bGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50
SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jM2NmZDc4ZGZi
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1Bh
Z2VDbGllbnRJbXBsLmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQYWdl
Q2xpZW50LmgiCisKK25hbWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI7CisKK2NsYXNzIFBh
Z2VDbGllbnRJbXBsIGZpbmFsIDogcHVibGljIFBhZ2VDbGllbnQgeworcHVibGljOgorICAgIFBh
Z2VDbGllbnRJbXBsKFdLV1BFOjpWaWV3Jik7CisgICAgdmlydHVhbCB+UGFnZUNsaWVudEltcGwo
KTsKKworcHJpdmF0ZToKKyAgICAvLyBQYWdlQ2xpZW50CisgICAgc3RkOjp1bmlxdWVfcHRyPERy
YXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7
CisgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkZsb2F0
UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SW50U2l6
ZSB2aWV3U2l6ZSgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3Zl
cnJpZGU7CisgICAgYm9vbCBpc1ZpZXdGb2N1c2VkKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Zp
ZXdWaXNpYmxlKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1ZpZXdJbldpbmRvdygpIG92ZXJyaWRl
OworCisgICAgdm9pZCBwcm9jZXNzRGlkRXhpdCgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVs
YXVuY2hQcm9jZXNzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwYWdlQ2xvc2VkKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgdG9v
bFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAg
ICB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSopIG92
ZXJyaWRlOworCisgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpD
dXJzb3ImKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zl
cyhib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhj
b25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKSBvdmVycmlkZTsKKworICAgIHZvaWQg
cmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQ
YWdlUHJveHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJBbGxFZGl0Q29t
bWFuZHMoKSBvdmVycmlkZTsKKyAgICBib29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5k
b09yUmVkbykgb3ZlcnJpZGU7CisgICAgdm9pZCBleGVjdXRlVW5kb1JlZG8oV2ViUGFnZVByb3h5
OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0
VG9EZXZpY2VTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXco
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0
IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworCisg
ICAgdm9pZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBi
b29sKSBvdmVycmlkZTsKKyAgICB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVX
ZWJUb3VjaEV2ZW50JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisK
KyAgICBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBh
Z2VQcm94eSYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdl
YlBhZ2VQcm94eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0
YSYpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZXhp
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJp
ZGU7CisKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3Zp
ZGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpIG92ZXJyaWRlOwor
CisgICAgdm9pZCBuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBuYXZpZ2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYp
IG92ZXJyaWRlOworICAgIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoYm9vbCwgV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVE
aWRFbmQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3Qo
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVtb3ZlTmF2
aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKKwor
ICAgIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IHJlZlZpZXcoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlcmVmVmlldygpIG92ZXJyaWRlOworCisj
aWYgRU5BQkxFKFZJREVPKQorICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdN
ZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Bl
cm1pc3Npb25SZXF1ZXN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZvaWQgZGlkUmVzdG9y
ZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisKKyAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVycmlkZTsK
KworICAgIHZvaWQgZGlkQ2hhbmdlQ2xpcFRvU2FmZUFyZWEoYm9vbCkgb3ZlcnJpZGUgeyB9CisK
KyAgICBXS1dQRTo6VmlldyYgbV92aWV3OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEdl
c3R1cmVDb250cm9sbGVyPiBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRhMTJjOGViMzUxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3Bw
CkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVD
b250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworYm9vbCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQo
Y29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCit7Cisg
ICAgc3dpdGNoICh0b3VjaFBvaW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hf
ZXZlbnRfdHlwZV9kb3duOgorICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3VjaFBvaW50LT50aW1l
OworICAgICAgICBtX3N0YXJ0LnggPSB0b3VjaFBvaW50LT54OworICAgICAgICBtX3N0YXJ0Lnkg
PSB0b3VjaFBvaW50LT55OworICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKKyAg
ICAgICAgbV9vZmZzZXQueSA9IHRvdWNoUG9pbnQtPnk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgaWYg
KCFtX2hhbmRsaW5nKSB7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWCA9IHRvdWNoUG9pbnQt
PnggLSBtX3N0YXJ0Lng7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWSA9IHRvdWNoUG9pbnQt
PnkgLSBtX3N0YXJ0Lnk7CisgICAgICAgICAgICB1aW50MzJfdCBkZWx0YVRpbWUgPSB0b3VjaFBv
aW50LT50aW1lIC0gbV9zdGFydC50aW1lOworCisgICAgICAgICAgICBpbnQgcGl4ZWxzUGVyTGlu
ZVN0ZXAgPSBXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCk7CisgICAgICAg
ICAgICBtX2hhbmRsaW5nID0gc3RkOjphYnMoZGVsdGFYKSA+PSBwaXhlbHNQZXJMaW5lU3RlcAor
ICAgICAgICAgICAgICAgIHx8IHN0ZDo6YWJzKGRlbHRhWSkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAK
KyAgICAgICAgICAgICAgICB8fCBkZWx0YVRpbWUgPj0gMjAwOworICAgICAgICB9CisgICAgICAg
IGlmIChtX2hhbmRsaW5nKSB7CisgICAgICAgICAgICBtX2F4aXNFdmVudCA9IHsKKyAgICAgICAg
ICAgICAgICB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAgICAgICAgICAgICAg
ICB0b3VjaFBvaW50LT50aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAgICAgICAgICAgICAg
ICAyLCAodG91Y2hQb2ludC0+eSAtIG1fb2Zmc2V0LnkpCisgICAgICAgICAgICB9OworICAgICAg
ICAgICAgbV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgICAgICBtX29mZnNldC55
ID0gdG91Y2hQb2ludC0+eTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBl
X3VwOgorICAgICAgICBpZiAobV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9oYW5kbGluZyA9
IGZhbHNlOworICAgICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3Bl
X2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsLAorICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAs
IDAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdkMTcyNGFhZGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0
dXJlQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3cGUv
aW5wdXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBTY3JvbGxHZXN0dXJlQ29u
dHJvbGxlciB7CitwdWJsaWM6CisgICAgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoKSA9IGRlZmF1
bHQ7CisKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVudCgpIHsgcmV0
dXJuICZtX2F4aXNFdmVudDsgfQorCisgICAgYm9vbCBoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qg
d3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyopOworCitwcml2YXRlOgorICAgIHN0cnVjdCB7Cisg
ICAgICAgIHVpbnQzMl90IHRpbWUgeyAwIH07CisgICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAg
ICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9zdGFydDsKKworICAgIHN0cnVjdCB7Cisg
ICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0g
bV9vZmZzZXQ7CisKKyAgICBib29sIG1faGFuZGxpbmcgeyBmYWxzZSB9OworICAgIHN0cnVjdCB3
cGVfaW5wdXRfYXhpc19ldmVudCBtX2F4aXNFdmVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2Q3YjYyM2E1NTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApA
QCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCisj
aW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJLZXli
b2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUg
Ik5hdGl2ZVdlYlRvdWNoRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50Lmgi
CisjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIK
KyNpbmNsdWRlIDx3cGUvdmlldy1iYWNrZW5kLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK1ZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tl
bmQqIGJhY2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDb25maWd1cmF0
aW9uKQorICAgIDogbV9wYWdlQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+
KCp0aGlzKSkKKyAgICAsIG1fc2l6ZSB7IDgwMCwgNjAwIH0KKyAgICAsIG1fdmlld1N0YXRlRmxh
Z3MoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rp
dml0eVN0YXRlOjpJc0ZvY3VzZWQgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUg
fCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KQorICAgICwgbV9jb21wb3NpdGlu
Z01hbmFnZXJQcm94eSgqdGhpcykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBiYXNlQ29u
ZmlndXJhdGlvbi5jb3B5KCk7CisgICAgYXV0byogcHJlZmVyZW5jZXMgPSBjb25maWd1cmF0aW9u
LT5wcmVmZXJlbmNlcygpOworICAgIGlmICghcHJlZmVyZW5jZXMgJiYgY29uZmlndXJhdGlvbi0+
cGFnZUdyb3VwKCkpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMgPSAmY29uZmlndXJhdGlvbi0+cGFn
ZUdyb3VwKCktPnByZWZlcmVuY2VzKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldFByZWZl
cmVuY2VzKHByZWZlcmVuY2VzKTsKKyAgICB9CisgICAgaWYgKHByZWZlcmVuY2VzKSB7CisgICAg
ICAgIHByZWZlcmVuY2VzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsK
KyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAg
ICAgICBwcmVmZXJlbmNlcy0+c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQodHJ1ZSk7Cisg
ICAgICAgIHByZWZlcmVuY2VzLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZl
cmVuY2VzLT5zZXRXZWJTZWN1cml0eUVuYWJsZWQoZmFsc2UpOworICAgICAgICBwcmVmZXJlbmNl
cy0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisKKyAgICBhdXRvKiBw
b29sID0gY29uZmlndXJhdGlvbi0+cHJvY2Vzc1Bvb2woKTsKKyAgICBtX3BhZ2VQcm94eSA9IHBv
b2wtPmNyZWF0ZVdlYlBhZ2UoKm1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7
CisKKyAgICBtX2JhY2tlbmQgPSBiYWNrZW5kOworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAg
ICBtX2JhY2tlbmQgPSB3cGVfdmlld19iYWNrZW5kX2NyZWF0ZSgpOworICAgIG1fY29tcG9zaXRp
bmdNYW5hZ2VyUHJveHkuaW5pdGlhbGl6ZSgpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmll
d19iYWNrZW5kX2NsaWVudCBzX2JhY2tlbmRDbGllbnQgPSB7CisgICAgICAgIC8vIHNldF9zaXpl
CisgICAgICAgIFtdKHZvaWQqIGRhdGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxW
aWV3Kj4oZGF0YSk7CisgICAgICAgICAgICB2aWV3LnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZSh3
aWR0aCwgaGVpZ2h0KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGZyYW1lX2Rpc3BsYXllZAor
ICAgICAgICBbXSh2b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3
ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5mcmFt
ZURpc3BsYXllZCgpOworICAgICAgICB9CisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3Nl
dF9iYWNrZW5kX2NsaWVudChtX2JhY2tlbmQsICZzX2JhY2tlbmRDbGllbnQsIHRoaXMpOworCisg
ICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2lucHV0X2NsaWVudCBzX2lucHV0Q2xp
ZW50ID0geworICAgICAgICAvLyBoYW5kbGVfa2V5Ym9hcmRfZXZlbnQKKyAgICAgICAgW10odm9p
ZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0
YSk7CisgICAgICAgICAgICB2aWV3LnBhZ2UoKS5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCkpOworICAgICAgICB9LAorICAgICAgICAvLyBo
YW5kbGVfcG9pbnRlcl9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lu
cHV0X3BvaW50ZXJfZXZlbnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBw
YWdlID0gcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAg
IHBhZ2UuaGFuZGxlTW91c2VFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQs
IHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5k
bGVfYXhpc19ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2F4
aXNfZXZlbnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVp
bnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFu
ZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2
aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfdG91Y2hf
ZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVu
dCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJl
dF9jYXN0PFZpZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3Vj
aEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2Fs
ZUZhY3RvcigpKSk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3Nl
dF9pbnB1dF9jbGllbnQobV9iYWNrZW5kLCAmc19pbnB1dENsaWVudCwgdGhpcyk7CisKKyAgICB3
cGVfdmlld19iYWNrZW5kX2luaXRpYWxpemUobV9iYWNrZW5kKTsKKworICAgIG1fcGFnZVByb3h5
LT5pbml0aWFsaXplV2ViUGFnZSgpOworfQorCitWaWV3Ojp+VmlldygpCit7CisgICAgd3BlX3Zp
ZXdfYmFja2VuZF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgVmlldzo6aW5pdGlhbGl6
ZUNsaWVudChjb25zdCBXS1ZpZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jbGllbnQu
aW5pdGlhbGl6ZShjbGllbnQpOworfQorCit2b2lkIFZpZXc6OmZyYW1lRGlzcGxheWVkKCkKK3sK
KyAgICBtX2NsaWVudC5mcmFtZURpc3BsYXllZCgqdGhpcyk7Cit9CisKK3ZvaWQgVmlldzo6c2V0
U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7
CisgICAgaWYgKG1fcGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBtX3BhZ2VQcm94
eS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZShzaXplLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNv
cmU6OkludFNpemUoKSk7Cit9CisKK3ZvaWQgVmlldzo6c2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OkZsYWdzIGZsYWdzKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpGbGFncyBkZWZhdWx0RmxhZ3MgPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRl
OjpXaW5kb3dJc0FjdGl2ZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKKwor
ICAgIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIGNoYW5nZWRGbGFncyA9IG1fdmlld1N0
YXRlRmxhZ3MgXiAoZGVmYXVsdEZsYWdzIHwgZmxhZ3MpOworICAgIG1fdmlld1N0YXRlRmxhZ3Mg
PSBkZWZhdWx0RmxhZ3MgfCBmbGFnczsKKworICAgIGlmIChjaGFuZ2VkRmxhZ3MpCisgICAgICAg
IG1fcGFnZVByb3h5LT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWRGbGFncyk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3dwZS9XUEVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9X
UEVWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJiM2M5ZDg0
YzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUv
V1BFVmlldy5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3Qu
aCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlBhZ2VD
bGllbnRJbXBsLmgiCisjaW5jbHVkZSAiV1BFVmlld0NsaWVudC5oIgorI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUg
PG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3N0cnVjdCB3cGVfdmlld19iYWNr
ZW5kOworCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VHcm91cDsKK2NsYXNzIFdl
YlByb2Nlc3NQb29sOworfQorCituYW1lc3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3IDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Vmlldz4geworcHVibGljOgor
ICAgIHN0YXRpYyBWaWV3KiBjcmVhdGUoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQs
IGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAg
ICAgICByZXR1cm4gbmV3IFZpZXcoYmFja2VuZCwgY29uZmlndXJhdGlvbik7CisgICAgfQorCisg
ICAgLy8gQ2xpZW50IG1ldGhvZHMKKyAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tW
aWV3Q2xpZW50QmFzZSopOworICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoKTsKKworICAgIFdlYktp
dDo6V2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gKm1fcGFnZVByb3h5OyB9CisKKyAgICBz
dHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIHsgcmV0dXJuIG1fYmFja2VuZDsgfQor
CisgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6
ZTsgfQorCisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlKCkgY29u
c3QgeyByZXR1cm4gbV92aWV3U3RhdGVGbGFnczsgfQorICAgIHZvaWQgc2V0Vmlld1N0YXRlKFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBWaWV3KHN0cnVj
dCB3cGVfdmlld19iYWNrZW5kKiwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYpOworICAg
IHZpcnR1YWwgflZpZXcoKTsKKworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CisKKyAgICBWaWV3Q2xpZW50IG1fY2xpZW50OworCisgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYktpdDo6UGFnZUNsaWVudEltcGw+IG1fcGFnZUNsaWVudDsKKyAgICBSZWZQdHI8V2ViS2l0
OjpXZWJQYWdlUHJveHk+IG1fcGFnZVByb3h5OworICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXpl
OworICAgIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlRmxhZ3M7CisK
KyAgICBXZWJLaXQ6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5IG1fY29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHk7CisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIG1fYmFja2VuZDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9XUEVWaWV3Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL1dQRVZpZXdDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi40NDRhYzk4ODY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldQRVZpZXdDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgorI2luY2x1ZGUgIldLQmFzZS5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdLV1BFIHsKKwordm9pZCBWaWV3Q2xpZW50Ojpm
cmFtZURpc3BsYXllZChWaWV3JiB2aWV3KQoreworICAgIGlmIChtX2NsaWVudC5mcmFtZURpc3Bs
YXllZCkKKyAgICAgICAgbV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQodG9BUEkoJnZpZXcpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNWU1NTlmYWY1ZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApA
QCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVk
ZSA8V2ViS2l0L1dLVmlldy5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0
IENsaWVudFRyYWl0czxXS1ZpZXdDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxl
PFdLVmlld0NsaWVudFYwPiBWZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CisK
K2NsYXNzIFZpZXc7CisKK2NsYXNzIFZpZXdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tW
aWV3Q2xpZW50QmFzZT4geworcHVibGljOgorICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoVmlldyYp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3Vy
Y2VCdW5kbGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ODIw
OTJiYmZlYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCkBAIC0wLDAgKzEsNiBAQAor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxncmVzb3VyY2VzPgorICA8
Z3Jlc291cmNlIHByZWZpeD0iL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UiPgorICAg
IDxmaWxlPmluc3BlY3RvclBhZ2VJbmRleC5odG1sPC9maWxlPgorICA8L2dyZXNvdXJjZT4KKzwv
Z3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDI3YmVjMzYyMzE1Li5mZDg0OGNjZWQzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZv
aWQgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpM
YXVuY2hPcHRpb25zJiBsYXVuY2hPCiAgICAgaWYgKG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFBy
aW9yaXR5KQogICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFk
ZChBU0NJSUxpdGVyYWwoImFsd2F5cy1ydW5zLWF0LWJhY2tncm91bmQtcHJpb3JpdHkiKSwgInRy
dWUiKTsKIAotI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2lm
IEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KSkKICAgICBjb25zdCBjaGFyKiB2YXJuYW1lOwogICAgIHN3aXRjaCAobGF1bmNoT3B0aW9ucy5w
cm9jZXNzVHlwZSkgewogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2Vi
OgpAQCAtNzksNyArNzksNyBAQCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRp
b25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoTwogICAgIGNvbnN0IGNo
YXIqIHByb2Nlc3NDbWRQcmVmaXggPSBnZXRlbnYodmFybmFtZSk7CiAgICAgaWYgKHByb2Nlc3ND
bWRQcmVmaXggJiYgKnByb2Nlc3NDbWRQcmVmaXgpCiAgICAgICAgIGxhdW5jaE9wdGlvbnMucHJv
Y2Vzc0NtZFByZWZpeCA9IFN0cmluZzo6ZnJvbVVURjgocHJvY2Vzc0NtZFByZWZpeCk7Ci0jZW5k
aWYgLy8gRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjZW5kaWYgLy8g
RU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
KQogfQogCiB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5Ojpjb25uZWN0KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNl
cnZlcldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dw
ZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4yNjgzZTNkNzE2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAK
QEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVj
dHJvbmljcyBMdGQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKKworI2lmIEVO
QUJMRShJTlNQRUNUT1JfU0VSVkVSKQorCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIK
KyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8
Z21vZHVsZS5oPgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3Rv
clNlcnZlcjo6cGxhdGZvcm1SZXNvdXJjZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBWZWN0
b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpCit7CisgICAgLy8gVGhlIHBhZ2Ug
bGlzdCBjb250YWlucyBhbiB1bmZvcm1hdGVkIGxpc3Qgb2YgcGFnZXMgdGhhdCBjYW4gYmUgaW5z
cGVjdGVkIHdpdGggYSBsaW5rIHRvIG9wZW4gYSBzZXNzaW9uLgorICAgIGlmIChwYXRoID09ICIv
cGFnZWxpc3QuanNvbiIpIHsKKyAgICAgICAgYnVpbGRQYWdlTGlzdChkYXRhLCBjb250ZW50VHlw
ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBmbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsKKyAgICAgICAgR01vZHVs
ZSogcmVzb3VyY2VzTW9kdWxlID0gZ19tb2R1bGVfb3BlbigibGliV1BFV2ViSW5zcGVjdG9yUmVz
b3VyY2VzLnNvIiwgR19NT0RVTEVfQklORF9MQVpZKTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZXNN
b2R1bGUpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiRXJyb3IgbG9hZGluZyBsaWJXUEVX
ZWJJbnNwZWN0b3JSZXNvdXJjZXMuc286ICVzIiwgZ19tb2R1bGVfZXJyb3IoKSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBnX21vZHVsZV9tYWtlX3Jlc2lkZW50
KHJlc291cmNlc01vZHVsZSk7CisgICAgfSk7CisKKyAgICAvLyBQb2ludCB0aGUgZGVmYXVsdCBw
YXRoIHRvIGEgZm9ybWF0dGVkIHBhZ2UgdGhhdCBxdWVyaWVzIHRoZSBwYWdlIGxpc3QgYW5kIGRp
c3BsYXkgdGhlbS4KKyAgICBDU3RyaW5nIHJlc291cmNlUGF0aCA9IG1ha2VTdHJpbmcoIi9vcmcv
d3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlIiwgKHBhdGggPT0gIi8iID8gIi9pbnNwZWN0b3JQ
YWdlSW5kZXguaHRtbCIgOiBwYXRoKSkudXRmOCgpOworICAgIGlmIChyZXNvdXJjZVBhdGguaXNO
dWxsKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9y
PiBlcnJvcjsKKyAgICBHUmVmUHRyPEdCeXRlcz4gcmVzb3VyY2VCeXRlcyA9IGFkb3B0R1JlZihn
X3Jlc291cmNlc19sb29rdXBfZGF0YShyZXNvdXJjZVBhdGguZGF0YSgpLCBHX1JFU09VUkNFX0xP
T0tVUF9GTEFHU19OT05FLCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAgICBpZiAoIXJlc291cmNlQnl0
ZXMpIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5FcnJv
cjogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGVycm9yLT5jb2RlKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChl
cnJvci0+bWVzc2FnZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG9jY3VycmVk
IGR1cmluZyBmZXRjaGluZyBpbnNwZWN0b3IgcmVzb3VyY2UgZmlsZXMuPC9ib2R5PjwvaHRtbD4i
KTsKKworICAgICAgICBDU3RyaW5nIGVycm9ySFRNTCA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4
KCk7CisgICAgICAgIGRhdGEuYXBwZW5kKGVycm9ySFRNTC5kYXRhKCksIGVycm9ySFRNTC5sZW5n
dGgoKSk7CisgICAgICAgIGNvbnRlbnRUeXBlID0gInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI7
CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJFcnJvciBmZXRjaGluZyB3ZWJpbnNwZWN0b3IgcmVz
b3VyY2UgZmlsZXM6ICVkLCAlcyIsIGVycm9yLT5jb2RlLCBlcnJvci0+bWVzc2FnZSk7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBnc2l6ZSByZXNvdXJjZURhdGFTaXplOwor
ICAgIGdjb25zdHBvaW50ZXIgcmVzb3VyY2VEYXRhID0gZ19ieXRlc19nZXRfZGF0YShyZXNvdXJj
ZUJ5dGVzLmdldCgpLCAmcmVzb3VyY2VEYXRhU2l6ZSk7CisgICAgZGF0YS5hcHBlbmQoc3RhdGlj
X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc291cmNlRGF0YSksIHJlc291cmNlRGF0YVNpemUpOworCisg
ICAgR1VuaXF1ZVB0cjxnY2hhcj4gbWltZVR5cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MocmVzb3Vy
Y2VQYXRoLmRhdGEoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgZ3VjaGFyKj4ocmVzb3VyY2VEYXRhKSwg
cmVzb3VyY2VEYXRhU2l6ZSwgbnVsbHB0cikpOworICAgIGNvbnRlbnRUeXBlID0gbWltZVR5cGUu
Z2V0KCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yU2VydmVyOjpi
dWlsZFBhZ2VMaXN0KFZlY3RvcjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSkKK3sK
KyAgICAvLyBjaHJvbWVkZXZ0b29scyAoaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9tZWRl
dnRvb2xzKSAwLjMuOCBleHBlY3RlZCBKU09OIGZvcm1hdDoKKyAgICAvLyB7CisgICAgLy8gICJ0
aXRsZSI6ICJGb28iLAorICAgIC8vICAidXJsIjogImh0dHA6Ly9mb28iLAorICAgIC8vICAiZGV2
dG9vbHNGcm9udGVuZFVybCI6ICIvTWFpbi5odG1sP3dzPWxvY2FsaG9zdDo5MjIyL2RldnRvb2xz
L3BhZ2UvMSIsCisgICAgLy8gICJ3ZWJTb2NrZXREZWJ1Z2dlclVybCI6ICJ3czovL2xvY2FsaG9z
dDo5MjIyL2RldnRvb2xzL3BhZ2UvMSIKKyAgICAvLyB9LAorCisgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiWyAiKTsKKyAgICBDbGllbnRNYXA6
Oml0ZXJhdG9yIGVuZCA9IG1fY2xpZW50TWFwLmVuZCgpOworICAgIGZvciAoQ2xpZW50TWFwOjpp
dGVyYXRvciBpdCA9IG1fY2xpZW50TWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAg
ICAgICBXZWJQYWdlUHJveHkqIHdlYlBhZ2UgPSBpdC0+dmFsdWUtPmluc3BlY3RlZFBhZ2UoKTsK
KyAgICAgICAgaWYgKGl0ICE9IG1fY2xpZW50TWFwLmJlZ2luKCkpCisgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
eyBcImlkXCI6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIFwidGl0bGVcIjogXCIiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQod2ViUGFnZS0+cGFnZUxvYWRTdGF0ZSgpLnRpdGxlKCkpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcInVybFwiOiBcIiIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCh3ZWJQYWdlLT5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcImluc3BlY3RvclVybFwiOiBcIiIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIi9NYWluLmh0bWw/cGFnZT0iKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiXCIsIFwiZGV2dG9vbHNGcm9udGVuZFVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIi9NYWluLmh0bWw/d3M9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGJpbmRBZGRyZXNzKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9ydCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIvZGV2dG9vbHMvcGFnZS8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIoaXQtPmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwid2ViU29j
a2V0RGVidWdnZXJVcmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3
czovLyIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChiaW5kQWRkcmVzcygpKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KHBvcnQoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2Uv
Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlwiIH0iKTsKKyAgICB9CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgXSIpOworICAgIENTdHJpbmcgY3N0ciA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7
CisgICAgZGF0YS5hcHBlbmQoY3N0ci5kYXRhKCksIGNzdHIubGVuZ3RoKCkpOworICAgIGNvbnRl
bnRUeXBlID0gImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKaW5kZXggMzk5NTA2OTQ4ZWYuLmJhNzdjMmFj
NzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vz
c0xhdW5jaGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nl
c3NMYXVuY2hlci5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgUHJvY2Vzc1R5
cGUgcHJvY2Vzc1R5cGU7CiAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5p
dGlhbGl6YXRpb25EYXRhOwogCi0jaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9S
TShHVEspCisjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpKQogICAgICAgICBTdHJpbmcgcHJvY2Vzc0NtZFByZWZpeDsKICNlbmRpZgog
ICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3Bl
L1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjZkNDYwOTg2OTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCkBAIC0wLDAg
KzEsMTUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2Jp
bGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorCisjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8
ZmNudGwuaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3BlL3JlbmRlcmVyLWhvc3Qu
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGls
aXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisvLyBG
SVhNRTogTWVyZ2Ugd2l0aCBQcm9jZXNzTGF1bmNoZXJHdGs/CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHZvaWQgY2hpbGRTZXR1cEZ1
bmN0aW9uKGdwb2ludGVyIHVzZXJEYXRhKQoreworICAgIGludCBzb2NrZXQgPSBHUE9JTlRFUl9U
T19JTlQodXNlckRhdGEpOworICAgIGNsb3NlKHNvY2tldCk7Cit9CisKK3ZvaWQgUHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKK3sKKyAgICBHUGlkIHBpZCA9IDA7CisKKyAgICBJUEM6
OkNvbm5lY3Rpb246OlNvY2tldFBhaXIgc29ja2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3Jl
YXRlUGxhdGZvcm1Db25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbk9wdGlvbnM6
OlNldENsb2V4ZWNPblNlcnZlcik7CisKKyAgICBTdHJpbmcgZXhlY3V0YWJsZVBhdGg7CisgICAg
Q1N0cmluZyByZWFsRXhlY3V0YWJsZVBhdGg7CisgICAgc3dpdGNoIChtX2xhdW5jaE9wdGlvbnMu
cHJvY2Vzc1R5cGUpIHsKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Oldl
YjoKKyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2Vzcygp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6
Ok5ldHdvcms6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdv
cmtQcm9jZXNzKCk7CisgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNT
KQorICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U6CisgICAg
ICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpOwor
ICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVhbEV4ZWN1dGFibGVQ
YXRoID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWN1dGFibGVQYXRoKTsKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiB3a1NvY2tldChnX3N0cmR1cF9wcmludGYoIiVkIiwgc29ja2V0UGFpci5j
bGllbnQpKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiB3cGVTb2NrZXQ7CisKKyAgICB1bnNpZ25l
ZCBuYXJncyA9IDQ7IC8vIHNpemUgb2YgdGhlIGFyZ3YgYXJyYXkgZm9yIGdfc3Bhd25fYXN5bmMo
KQorICAgIGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVy
OjpQcm9jZXNzVHlwZTo6V2ViKSB7CisgICAgICAgIHdwZVNvY2tldCA9IEdVbmlxdWVQdHI8Z2No
YXI+KGdfc3RyZHVwX3ByaW50ZigiJWQiLCB3cGVfcmVuZGVyZXJfaG9zdF9jcmVhdGVfY2xpZW50
KCkpKTsKKyAgICAgICAgbmFyZ3MgPSA1OworICAgIH0KKworI2lmIEVOQUJMRShERVZFTE9QRVJf
TU9ERSkKKyAgICBWZWN0b3I8Q1N0cmluZz4gcHJlZml4QXJnczsKKyAgICBpZiAoIW1fbGF1bmNo
T3B0aW9ucy5wcm9jZXNzQ21kUHJlZml4LmlzTnVsbCgpKSB7CisgICAgICAgIFZlY3RvcjxTdHJp
bmc+IHNwbGl0QXJnczsKKyAgICAgICAgbV9sYXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXgu
c3BsaXQoJyAnLCBzcGxpdEFyZ3MpOworICAgICAgICBmb3IgKGF1dG8gaXQgPSBzcGxpdEFyZ3Mu
YmVnaW4oKTsgaXQgIT0gc3BsaXRBcmdzLmVuZCgpOyBpdCsrKQorICAgICAgICAgICAgcHJlZml4
QXJncy5hcHBlbmQoaXQtPnV0ZjgoKSk7CisgICAgICAgIG5hcmdzICs9IHByZWZpeEFyZ3Muc2l6
ZSgpOworICAgIH0KKyNlbmRpZgorCisgICAgY2hhcioqIGFyZ3YgPSBnX25ld2EoY2hhciosIG5h
cmdzKTsKKyAgICB1bnNpZ25lZCBpID0gMDsKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCisg
ICAgLy8gSWYgdGhlcmUncyBhIHByZWZpeCBjb21tYW5kLCBwdXQgaXQgYmVmb3JlIHRoZSByZXN0
IG9mIHRoZSBhcmdzLgorICAgIGZvciAoYXV0byBpdCA9IHByZWZpeEFyZ3MuYmVnaW4oKTsgaXQg
IT0gcHJlZml4QXJncy5lbmQoKTsgaXQrKykKKyAgICAgICAgYXJndltpKytdID0gY29uc3RfY2Fz
dDxjaGFyKj4oaXQtPmRhdGEoKSk7CisjZW5kaWYKKyAgICBhcmd2W2krK10gPSBjb25zdF9jYXN0
PGNoYXIqPihyZWFsRXhlY3V0YWJsZVBhdGguZGF0YSgpKTsKKyAgICBhcmd2W2krK10gPSB3a1Nv
Y2tldC5nZXQoKTsKKyAgICBpZiAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nl
c3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYikKKyAgICAgICAgYXJndltpKytdID0gd3BlU29j
a2V0LmdldCgpOworICAgIGFyZ3ZbaSsrXSA9IG51bGxwdHI7CisKKyAgICBHVW5pcXVlT3V0UHRy
PEdFcnJvcj4gZXJyb3I7CisgICAgaWYgKCFnX3NwYXduX2FzeW5jKDAsIGFyZ3YsIDAsIEdfU1BB
V05fTEVBVkVfREVTQ1JJUFRPUlNfT1BFTiwgY2hpbGRTZXR1cEZ1bmN0aW9uLCBHSU5UX1RPX1BP
SU5URVIoc29ja2V0UGFpci5zZXJ2ZXIpLCAmcGlkLCAmZXJyb3Iub3V0UHRyKCkpKSB7CisgICAg
ICAgIGdfcHJpbnRlcnIoIlVuYWJsZSB0byBmb3JrIGEgbmV3IFdlYlByb2Nlc3M6ICVzLlxuIiwg
ZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisK
KyAgICAvLyBEb24ndCBleHBvc2UgdGhlIHBhcmVudCBzb2NrZXQgdG8gcG90ZW50aWFsIGZ1dHVy
ZSBjaGlsZHJlbi4KKyAgICB3aGlsZSAoZmNudGwoc29ja2V0UGFpci5jbGllbnQsIEZfU0VURkQs
IEZEX0NMT0VYRUMpID09IC0xKQorICAgICAgICBSRUxFQVNFX0FTU0VSVChlcnJubyAhPSBFSU5U
Uik7CisKKyAgICBjbG9zZShzb2NrZXRQYWlyLmNsaWVudCk7CisgICAgbV9wcm9jZXNzSWRlbnRp
ZmllciA9IHBpZDsKKworICAgIC8vIFdlJ3ZlIGZpbmlzaGVkIGxhdW5jaGluZyB0aGUgcHJvY2Vz
cywgbWVzc2FnZSBiYWNrIHRvIHRoZSBtYWluIHJ1biBsb29wLgorICAgIFJlZlB0cjxQcm9jZXNz
TGF1bmNoZXI+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIHNlcnZlclNvY2tldCA9IHNvY2tldFBhaXIuc2VydmVyOworICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcywgcGlkLCBzZXJ2ZXJTb2NrZXRdIHsKKyAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+ZGlkRmluaXNoTGF1bmNoaW5nUHJvY2VzcyhwaWQsIHNlcnZlclNv
Y2tldCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVyOjp0ZXJtaW5hdGVQcm9j
ZXNzKCkKK3sKKyAgICBpZiAobV9pc0xhdW5jaGluZykgeworICAgICAgICBpbnZhbGlkYXRlKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fcHJvY2Vzc0lkZW50aWZpZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIGtpbGwobV9wcm9jZXNzSWRlbnRpZmllciwgU0lHS0lM
TCk7CisgICAgbV9wcm9jZXNzSWRlbnRpZmllciA9IDA7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5j
aGVyOjpwbGF0Zm9ybUludmFsaWRhdGUoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggMWM4
ZWY0NjNjYzIuLjg0N2ZiNWMzMjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJQ
cmVmZXJlbmNlcyYgaW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkgY29uc3Q7CiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBj
cmVhdGVJbnNwZWN0b3JXaW5kb3coKTsKICAgICB2b2lkIHVwZGF0ZUluc3BlY3RvcldpbmRvd1Rp
dGxlKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYXN0ZWJvYXJkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0
ZWJvYXJkUHJveHkuaAppbmRleCA0NGU4MzY1NTNiNS4uOWJiNmQ1NGNhMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTk4LDYgKzk4LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0
IFN0cmluZyYsIHVpbnQ2NF90JiBuZXdDaGFuZ2VDb3VudCk7CiAgICAgdm9pZCBzZXRQYXN0ZWJv
YXJkQnVmZmVyRm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIHVpbnQ2NF90
IHNpemUsIHVpbnQ2NF90JiBuZXdDaGFuZ2VDb3VudCk7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KEdUSykKICAgICB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSwgY29uc3QgV2ViU2VsZWN0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVhZEZyb21DbGlwYm9h
cmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2ViU2VsZWN0aW9uRGF0YSYpOwpAQCAt
MTA1LDcgKzEwNiwxNCBAQCBwcml2YXRlOgogICAgIFdlYkZyYW1lUHJveHkqIG1fcHJpbWFyeVNl
bGVjdGlvbk93bmVyIHsgbnVsbHB0ciB9OwogICAgIFdlYkZyYW1lUHJveHkqIG1fZnJhbWVXcml0
aW5nVG9DbGlwYm9hcmQgeyBudWxscHRyIH07CiAjZW5kaWYgLy8gUExBVEZPUk0oR1RLKQotICAg
IAorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZvaWQgZ2V0UGFzdGVib2FyZFR5cGVzKFZlY3Rv
cjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMpOworICAgIHZvaWQgcmVhZFN0cmluZ0Zyb21QYXN0
ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBXVEY6
OlN0cmluZyYpOworICAgIHZvaWQgd3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdl
YkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CisgICAgdm9pZCB3cml0ZVN0cmluZ1RvUGFz
dGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKTsKKyNl
bmRpZgorCiAgICAgV2ViUHJvY2Vzc1Byb3h5TGlzdCBtX3dlYlByb2Nlc3NQcm94eUxpc3Q7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA3NjZiYzEyZWQzYi4uNDAxMmFkNWEzYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbgpAQCAtNTgsNCArNTgsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFzdGVib2FyZFByb3h5
IHsKICAgICBXcml0ZVRvQ2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgc3RydWN0IFdl
YktpdDo6V2ViU2VsZWN0aW9uRGF0YSBwYXN0ZWJvYXJkQ29udGVudCkKICAgICBSZWFkRnJvbUNs
aXBib2FyZChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJTZWxl
Y3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQogI2VuZGlmCisKKyNpZiBQTEFURk9STShXUEUp
CisgICAgR2V0UGFzdGVib2FyZFR5cGVzKCkgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKQorICAg
IFJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9h
cmRUeXBlKSAtPiAoU3RyaW5nIHN0cmluZykKKyAgICBXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9h
cmQoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50IGNvbnRlbnQpCisgICAgV3Jp
dGVTdHJpbmdUb1Bhc3RlYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgdGV4dCkK
KyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
aW5kZXggNDBkZTNkMWRhMmUuLjhhMTZlMzI2M2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBXZWJQcm9jZXNzUG9v
bDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24pCiAgICAgbm90aWZ5VGhpc1dlYlByb2Nlc3NQb29sV2FzQ3JlYXRlZCgpOwogfQogCi0j
aWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShDT0NP
QSkgJiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4wMzcwZmYyYmExYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTQxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgorCisjaW5jbHVkZSAiVGV4dENoZWNr
ZXJTdGF0ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgVGV4dENo
ZWNrZXJTdGF0ZSB0ZXh0Q2hlY2tlclN0YXRlOworCitjb25zdCBUZXh0Q2hlY2tlclN0YXRlJiBU
ZXh0Q2hlY2tlcjo6c3RhdGUoKQoreworICAgIHJldHVybiB0ZXh0Q2hlY2tlclN0YXRlOworfQor
Cit2b2lkIFRleHRDaGVja2VyOjpzZXRUZXN0aW5nTW9kZShib29sKQoreworfQorCitib29sIFRl
eHRDaGVja2VyOjppc1Rlc3RpbmdNb2RlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxD
aGVja2luZ0FsbG93ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIFRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVj
a2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkU3RhdGVDaGFuZ2VkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBUZXh0Q2hlY2tlcjo6Z3JhbW1hckNoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2ludDY0X3QgVGV4dENoZWNrZXI6OnVuaXF1
ZVNwZWxsRG9jdW1lbnRUYWcoV2ViUGFnZVByb3h5KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y2xvc2VTcGVsbERv
Y3VtZW50V2l0aFRhZyhpbnQ2NF90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgVGV4dENoZWNrZXI6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhpbnQ2NF90LCBTdHJpbmdWaWV3
LCBpbnQzMl90JiwgaW50MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBUZXh0Q2hlY2tlcjo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoaW50NjRfdCwgU3RyaW5nVmlldywg
VmVjdG9yPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+JiwgaW50MzJfdCYsIGludDMyX3QmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OnNwZWxsaW5nVUlJ
c1Nob3dpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIFRleHRDaGVja2VyOjp0b2dnbGVTcGVsbGluZ1VJSXNTaG93aW5nKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjp1cGRhdGVTcGVsbGlu
Z1VJV2l0aE1pc3NwZWxsZWRXb3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6dXBkYXRlU3BlbGxpbmdVSVdp
dGhHcmFtbWFyU3RyaW5nKGludDY0X3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEdyYW1tYXJEZXRh
aWwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6Omdl
dEd1ZXNzZXNGb3JXb3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGlu
dDMyX3QsIFZlY3RvcjxTdHJpbmc+JiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFRleHRDaGVja2VyOjpsZWFybldvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjppZ25vcmVX
b3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxU
ZXh0Q2hlY2tlckNvbXBsZXRpb24+LCBpbnQzMl90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uNWJhZWVlM2MxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApAQCAtMCww
ICsxLDE1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIK
KworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlBhZ2VQcm94eSogV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9yV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGlk
Q2xvc2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtRGlkQ2xvc2VGb3JDcmFzaCgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtSGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQnJpbmdJ
bnNwZWN0ZWRQYWdlVG9Gcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9v
bCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdl
VVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd3BlL2luc3BlY3Rv
ci9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCIpOworfQorCitTdHJpbmcgV2ViSW5zcGVjdG9yUHJv
eHk6Omluc3BlY3RvclRlc3RQYWdlVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJj
ZTovLy9vcmcvd3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCIpOworfQorCitT
dHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvckJhc2VVUkwoKQoreworICAgIHJldHVy
biBTdHJpbmcoInJlc291cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvIik7
Cit9CisKK3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRv
d0hlaWdodCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwor
dW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURldGFjaCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1T
ZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93
V2lkdGgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2Vk
KGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94
eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRhMjAyYWJlYjRmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJv
eHlXUEUuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgorCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK1N0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmlu
ZyYpCit7CisgICAgcmV0dXJuICJNb3ppbGxhLzUuMCAoTGludXg7IHg4Nl82NCBHTlUvTGludXgp
IEFwcGxlV2ViS2l0LzYwMS4xIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAgU2FmYXJp
LzYwMS4xIjsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBTdHJpbmcmLCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9y
bVJlbW92ZVJlY2VudFNlYXJjaGVzKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmVk
aXRvclN0YXRlQ2hhbmdlZChjb25zdCBFZGl0b3JTdGF0ZSYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhkM2QwZWI0NmQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3Bw
CkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRQ
cm94eS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgewordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldFBhc3RlYm9h
cmRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzKQoreworICAgIFBsYXRmb3Jt
UGFzdGVib2FyZCgpLmdldFR5cGVzKHBhc3RlYm9hcmRUeXBlcyk7Cit9CisKK3ZvaWQgV2ViUGFz
dGVib2FyZFByb3h5OjpyZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIFdURjo6U3RyaW5nJiB2YWx1ZSkKK3sKKyAgICB2
YWx1ZSA9IFBsYXRmb3JtUGFzdGVib2FyZCgpLnJlYWRTdHJpbmcoaW5kZXgsIHBhc3RlYm9hcmRU
eXBlKTsKK30KKwordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OndyaXRlV2ViQ29udGVudFRvUGFz
dGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sK
KyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS53cml0ZShjb250ZW50KTsKK30KKwordm9pZCBXZWJQ
YXN0ZWJvYXJkUHJveHk6OndyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9h
cmQoKS53cml0ZShwYXN0ZWJvYXJkVHlwZSwgdGV4dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJl
bmNlc1dQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2Vz
V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmY4MWZjZGEx
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBy
ZWZlcmVuY2VzV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1J
bml0aWFsaXplU3RvcmUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vi
UHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdl
YlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZUJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcm
LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5j
ZXM6OnBsYXRmb3JtVXBkYXRlVUludDMyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgdWludDMy
X3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6
cGxhdGZvcm1VcGRhdGVEb3VibGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBkb3VibGUpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZv
cm1VcGRhdGVGbG9hdFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGZsb2F0KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0U3Ry
aW5nVXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIFN0cmluZyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6
OnBsYXRmb3JtR2V0Qm9vbFVzZXJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29sJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQ
cmVmZXJlbmNlczo6cGxhdGZvcm1HZXRVSW50MzJVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgdWludDMyX3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldERvdWJsZVVzZXJWYWx1ZUZv
cktleShjb25zdCBTdHJpbmcmLCBkb3VibGUmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwZmE1MmRhZjdjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAK
QEAgLTAsMCArMSwxNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9y
b2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisK
KyNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YkNvb2tpZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVS
ZWdpc3RyeS5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1
ZVB0ci5oPgorCisvLyBGSVhNRTogTWVyZ2Ugd2l0aCBXZWJQcm9jZXNzUG9vbEd0az8gQWJzdHJh
Y3QgdGhlIGNvbW1vbiBwYXJ0cz8KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SX1NFUlZFUikKK3N0YXRpYyB2b2lkIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKQorewor
ICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisgICAgaWYgKGluaXRpYWxpemVk
KQorICAgICAgICByZXR1cm47CisKKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgU3RyaW5n
IHNlcnZlckFkZHJlc3MoZ19nZXRlbnYoIldFQktJVF9JTlNQRUNUT1JfU0VSVkVSIikpOworCisg
ICAgaWYgKCFzZXJ2ZXJBZGRyZXNzLmlzTnVsbCgpKSB7CisgICAgICAgIFN0cmluZyBiaW5kQWRk
cmVzcyA9ICIxMjcuMC4wLjEiOworICAgICAgICB1bnNpZ25lZCBzaG9ydCBwb3J0ID0gMjk5OTsK
KworICAgICAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7CisgICAgICAgIHNlcnZlckFkZHJlc3Mu
c3BsaXQoJzonLCByZXN1bHQpOworCisgICAgICAgIGlmIChyZXN1bHQuc2l6ZSgpID09IDIpIHsK
KyAgICAgICAgICAgIGJpbmRBZGRyZXNzID0gcmVzdWx0WzBdOworICAgICAgICAgICAgYm9vbCBv
ayA9IGZhbHNlOworICAgICAgICAgICAgcG9ydCA9IHJlc3VsdFsxXS50b0ludCgmb2spOworICAg
ICAgICAgICAgaWYgKCFvaykgeworICAgICAgICAgICAgICAgIHBvcnQgPSAyOTk5OworICAgICAg
ICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgcGFyc2UgdGhlIHBvcnQuIFVzZSAyOTk5IGlu
c3RlYWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgTE9H
X0VSUk9SKCJDb3VsZG4ndCBwYXJzZSAlcywgd3JvbmcgZm9ybWF0PyBVc2UgMTI3LjAuMC4xOjI5
OTkgaW5zdGVhZC4iLCBzZXJ2ZXJBZGRyZXNzLnV0ZjgoKS5kYXRhKCkpOworCisgICAgICAgIGlm
ICghV2ViSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5saXN0ZW4oYmluZEFkZHJlc3MsIHBv
cnQpKQorICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBzdGFydCBsaXN0ZW5pbmcgb246
IElQIGFkZHJlc3M9JXMsIHBvcnQ9JWQuIiwgYmluZEFkZHJlc3MudXRmOCgpLmRhdGEoKSwgcG9y
dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBMT0coSW5zcGVjdG9yU2VydmVyLCAi
VG8gc3RhcnQgaW5zcGVjdG9yIHNlcnZlciBzZXQgV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVIgdG8g
MTI3LjAuMC4xOjI5OTkgZm9yIGV4YW1wbGUuIik7Cit9CisjZW5kaWYKKworV1RGOjpTdHJpbmcg
V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJl
Y3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdfYnVpbGRf
ZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJhcHBjYWNoZSIsIG51bGxw
dHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbihjYWNoZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQ
b29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBjYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3Vz
ZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAibWVkaWFjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjYWNoZURpcmVj
dG9yeS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZSgpCit7CisgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucmVnaXN0
ZXJTaGFyZWRSZXNvdXJjZUxvYWRPYnNlcnZlcigpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisgICAgaW5p
dEluc3BlY3RvclNlcnZlcigpOworI2VuZGlmCisKKyAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hl
RGlzYWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQgfHwgY2FjaGVNb2RlbCgpID09IENhY2hl
TW9kZWxEb2N1bWVudFZpZXdlcjsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bnZhbGlkYXRlQ29udGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5n
IFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVj
dG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWls
ZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgbnVs
bHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKGRhdGFiYXNlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQ
b29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgpCit7
CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoZ19idWls
ZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgImlu
ZGV4ZWRkYiIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihpbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9
CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0
aCgpIGNvbnN0Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19i
dWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgImljb25kYXRhYmFz
ZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihkYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQ
cm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkK
K3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBzdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5h
bWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIp
KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihzdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5h
bWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgIm1lZGlha2V5cyIsIG51bGxwdHIpKTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbiht
ZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQ
b29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAg
IEdVbmlxdWVQdHI8Y2hhcj4gZGlza0NhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19n
ZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkaXNrQ2FjaGVE
aXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRm
b3JtRGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiBqYXZhU2NyaXB0Q29yZUNvbmZpZ0RpcmVjdG9yeShnX2J1aWxkX2ZpbGVu
YW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIsICJKYXZhU2NyaXB0Q29yZURlYnVnIiwg
bnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKGphdmFTY3JpcHRDb3JlQ29uZmlnRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9u
cygpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJiMzViNjYwNmI2Li44Y2Qz
MWYyM2FhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtOTU0MSw3ICs5NTQxLDcgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlz
aGVsbFNjcmlwdCA9ICJXS0JBU0VfSD0ke1RBUkdFVF9CVUlMRF9ESVJ9LyR7UFJJVkFURV9IRUFE
RVJTX0ZPTERFUl9QQVRIfS9XS0Jhc2UuaFxuXG51bmlmZGVmIC1CIC1EX19BUFBMRV9fIC1VQlVJ
TERJTkdfR1RLX18gLVVVU0VfU09VUCAtbyBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tC
QVNFX0h9XCJcblxuY2FzZSAkPyBpblxuMClcbiAgICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRl
ZlxuICAgIDs7XG4xKVxuICAgIG12IFwiJHtXS0JBU0VfSH1cInsudW5pZmRlZix9XG4gICAgOztc
biopXG4gICAgZXhpdCAxXG5lc2FjXG4iOworCQkJc2hlbGxTY3JpcHQgPSAiV0tCQVNFX0g9JHtU
QVJHRVRfQlVJTERfRElSfS8ke1BSSVZBVEVfSEVBREVSU19GT0xERVJfUEFUSH0vV0tCYXNlLmhc
blxudW5pZmRlZiAtQiAtRF9fQVBQTEVfXyAtVUJVSUxESU5HX0dUS19fIC1VQlVJTERJTkdfV1BF
X18gLVVVU0VfU09VUCAtbyBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9XCJc
blxuY2FzZSAkPyBpblxuMClcbiAgICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZlxuICAgIDs7
XG4xKVxuICAgIG12IFwiJHtXS0JBU0VfSH1cInsudW5pZmRlZix9XG4gICAgOztcbiopXG4gICAg
ZXhpdCAxXG5lc2FjXG4iOwogCQl9OwogCQkzN0U1MzEwMTFCMjM5MTA5MDA3NEYwREYgLyogQ29w
eSBpT1MgU2FuZGJveCBQcm9maWxlcyBmb3IgTWFudWFsIFNhbmRib3hpbmcgKi8gPSB7CiAJCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyUHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKaW5kZXgg
NTc1MDliOTdhNGMuLmUyYmU4MDlkOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyUHJlZml4LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCkBAIC01Nyw3
ICs1Nyw3IEBACiAKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKQogI2RlZmluZSBFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFIDEK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggYzkxYjQ1YTljNTEuLjA4YTY4
ZDA3OTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnJlZG8oKQogICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvKHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJQ
YWdlUHJveHk6OlJlZG8pKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRv
OjpSZXBseShyZXN1bHQpKTsKIH0KIAotI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShD
T0NPQSkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9S
TShXUEUpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2Fy
ZEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAobV9wYWdlLT5oYW5kbGVFZGl0aW5nS2V5Ym9hcmRF
dmVudChldmVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDU3ODFj
ODZkMmM2Li5lZjY2ZTU4ZTZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
QEAgLTE4MDIsNCArMTgwMiwxMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hl
ZExvYWRpbmdJY29uKHVpbnQ2NF90IGxvYWRJZGVudGlmaWVyLCBTaGFyZWRCdQogICAgIH0KIH0K
IAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25z
dCBXZWJDb3JlOjpVUkwmKSBjb25zdAoreworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4g
ZmFsc2U7CisjZWxzZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDIxMmYxMGZkZGUx
Li4zZjAzZTY5MzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjYyLDYg
KzI2Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0
IFdlYkNvcmU6OkxpbmtJY29uJiwgdWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CiAgICAgdm9p
ZCBmaW5pc2hlZExvYWRpbmdJY29uKHVpbnQ2NF90IGxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpT
aGFyZWRCdWZmZXIqKSBmaW5hbDsKIAorICAgIGJvb2wgc2hvdWxkUGFpbnRCcm9rZW5JbWFnZShj
b25zdCBXZWJDb3JlOjpVUkwmKSBjb25zdCBvdmVycmlkZTsKKwogICAgIFdlYkZyYW1lKiBtX2Zy
YW1lOwogICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBtX3BsdWdpblZpZXc7CiAgICAgYm9vbCBtX2hh
c1NlbnRSZXNwb25zZVRvUGx1Z2luVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAppbmRleCA4MjMyOTBkZjQyNC4uMWFhMmQ4YmVlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKQEAgLTM3NSw0ICszNzUsMzEgQEAgUmVmPFNlbGVjdGlvbkRhdGE+
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBw
YXN0ZWIKIAogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKIAorI2lmIFBMQVRGT1JNKFdQRSkKKy8v
IFBhc3RlYm9hcmRTdHJhdGVneQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0VHlw
ZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJv
YXJkUHJveHk6OkdldFBhc3RlYm9hcmRUeXBlcygpLCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFBy
b3h5OjpHZXRQYXN0ZWJvYXJkVHlwZXM6OlJlcGx5KHR5cGVzKSwgMCk7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpCit7CisgICAgU3RyaW5nIHZhbHVlOworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2Fy
ZChpbmRleCwgcGFzdGVib2FyZFR5cGUpLCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpS
ZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQ6OlJlcGx5KHZhbHVlKSwgMCk7CisgICAgcmV0dXJuIHZh
bHVlOworfQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQo
Y29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29u
dGVudCksIDApOworfQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3Rl
Ym9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQor
eworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6V3JpdGVTdHJpbmdUb1Bhc3RlYm9h
cmQocGFzdGVib2FyZFR5cGUsIHRleHQpLCAwKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQ
RSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aAppbmRleCA0MTkzOGVkOWViMS4uYWYwZjFhMzA0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaApAQCAtODksMTAgKzg5LDE4IEBAIHByaXZhdGU6CiAgICAgbG9uZyBzZXRQYXRo
bmFtZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgbG9u
ZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCisK
ICNpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFdlYkNvcmU6OlNlbGVjdGlvbkRhdGEmKSBvdmVycmlk
ZTsKICAgICBSZWY8V2ViQ29yZTo6U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICB2b2lkIGdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykgb3ZlcnJp
ZGU7CisgICAgU3RyaW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpIG92ZXJyaWRlOworICAgIHZvaWQgd3JpdGVUb1Bhc3Rl
Ym9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
d3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWQwMzRiMDI2NzMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJD
b250ZXh0TWVudUNsaWVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViQ29udGV4dE1lbnVDbGllbnQuaCIKKworI2lmIEVOQUJMRShDT05URVhUX01F
TlVTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6bG9va1VwSW5EaWN0aW9uYXJ5
KFdlYkNvcmU6OkZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdl
YkNvbnRleHRNZW51Q2xpZW50Ojppc1NwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3Bl
YWsoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdl
YkNvbnRleHRNZW51Q2xpZW50OjpzdG9wU3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKENPTlRF
WFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmRjYTMwMjRjZWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0
b3JDbGllbnRXUEUuY3BwCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJFZGl0b3JDbGllbnQuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VkaXRv
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL05vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+
CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gVGhlIGlkZWEgZm9yIHRoZSBhcnJheS9t
YXAgYmVsb3cgY29tZXMgZnJvbSBCbGluaydzIEVkaXRpbmdCZWhhdmlvci5jcHAuCisKK3N0YXRp
YyBjb25zdCB1bnNpZ25lZCBDdHJsS2V5ICA9IDEgPDwgMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25l
ZCBBbHRLZXkgICA9IDEgPDwgMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEg
PDwgMjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBNZXRhS2V5ICA9IDEgPDwgMzsKKworLy8gS2V5
cyB3aXRoIHNwZWNpYWwgbWVhbmluZy4gVGhlc2Ugd2lsbCBiZSBkZWxlZ2F0ZWQgdG8gdGhlIGVk
aXRvciB1c2luZworLy8gdGhlIGV4ZWNDb21tYW5kKCkgbWV0aG9kCitzdHJ1Y3QgS2V5RG93bkVu
dHJ5IHsKKyAgICB1bnNpZ25lZCB2aXJ0dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsK
KyAgICBjb25zdCBjaGFyKiBuYW1lOworfTsKKworc3RydWN0IEtleVByZXNzRW50cnkgeworICAg
IHVuc2lnbmVkIGNoYXJDb2RlOworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBj
aGFyKiBuYW1lOworfTsKKworc3RhdGljIGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50cmll
c1tdID0geworICAgIHsgVktfTEVGVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIFNoaWZ0
S2V5LCAgICAgICAgICAgIk1vdmVMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX0xFRlQsICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVdvcmRMZWZ0IiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5IHwg
U2hpZnRLZXksCisgICAgICAgICJNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgMCwg
ICAgICAgICAgICAgICAgICAiTW92ZVJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfUklHSFQsICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUmlnaHRBbmRN
b2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXks
ICAgICAgICAgICAgIk1vdmVXb3JkUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX1JJR0hULCAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRSaWdodEFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAg
ICAgICAgICJNb3ZlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19VUCwgICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlv
biIgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1BSSU9SLCAgU2hpZnRLZXksICAgICAgICAg
ICAiTW92ZVBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICB9LAorICAgIHsgVktf
RE9XTiwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlRG93biIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19ET1dOLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1v
dmVEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQs
ICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAg
ICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFy
YWdyYXBoQmFja3dhcmRBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBWS19ET1dOLCAgIEN0
cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVQYXJhZ3JhcGhGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9u
IiAgfSwKKyAgICB7IFZLX1BSSU9SLCAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VVcCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTkVYVCwgICAwLCAgICAg
ICAgICAgICAgICAgICJNb3ZlUGFnZURvd24iICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19IT01FLCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09m
TGluZSIgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgU2hpZnRLZXksCisg
ICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSwgICAgICAg
ICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCIgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfSE9NRSwgICBDdHJsS2V5IHwgU2hpZnRLZXksCisgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdP
ZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX0VORCwgICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lIiAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBTaGlmdEtleSwgICAg
ICAgICAgICJNb3ZlVG9FbmRPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisgICAg
eyBWS19FTkQsICAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgQ3RybEtleSB8IFNoaWZ0S2V5
LAorICAgICAgICAiTW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIDAsICAgICAgICAg
ICAgICAgICAgIkRlbGV0ZUJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0JBQ0ssICAgU2hpZnRLZXksICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfREVMRVRFLCAwLCAgICAgICAgICAgICAg
ICAgICJEZWxldGVGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19CQUNLLCAgIEN0cmxLZXksICAgICAgICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgQ3RybEtleSwgICAgICAgICAgICAi
RGVsZXRlV29yZEZvcndhcmQiICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0InLCAg
ICAgICAgIEN0cmxLZXksICAgICAgICAgICJUb2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnSScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2ds
ZUl0YWxpYyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdVJywgICAgICAg
ICBDdHJsS2V5LCAgICAgICAgICAiVG9nZ2xlVW5kZXJsaW5lIiAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfRVNDQVBFLCAwLCAgICAgICAgICAgICAgICAgICJDYW5jZWwiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19PRU1fUEVSSU9ELCBD
dHJsS2V5LCAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX1RBQiwgICAgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfVEFCLCAgICBTaGlmdEtleSwg
ICAgICAgICAgICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19SRVRVUk4sIDAsICAgICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQ3RybEtleSwgICAgICAg
ICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfUkVUVVJOLCBBbHRLZXksICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAg
Ikluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JF
VFVSTiwgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIC8vIFRoZXNlIHByb2JhYmx5IG5lZWQgaGFuZGxpbmcgc29tZXdo
ZXJlIGVsc2Ugc28gZG8gbm90IGV4ZWN1dGUgdGhlbS4gVGhlCisgICAgLy8gJ0N1dCcgY29tbWFu
ZCBpcyByZW1vdmluZyB0ZXh0IHNvIGxldCdzIGF2b2lkIGxvc2luZyB0aGUgdXNlciBsb3Npbmcg
ZGF0YQorICAgIC8vIHVudGlsIHdlIGltcGxlbWVudCBjbGlwYm9hcmQgc3VwcG9ydCB3aGVyZXZl
ciBpdCBzaG91bGQgYmUuCisgICAgeyBWS19JTlNFUlQsIEN0cmxLZXksICAgICAgICAgICAgIkNv
cHkiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VS
VCwgU2hpZnRLZXksICAgICAgICAgICAiUGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfREVMRVRFLCBTaGlmdEtleSwgICAgICAgICAgICJDdXQiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQycsICAgICAgICAg
Q3RybEtleSwgICAgICAgICAgIkNvcHkiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7ICdWJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiUGFzdGUiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1YnLCAgICAgICAgIEN0cmxL
ZXkgfCBTaGlmdEtleSwgIlBhc3RlQW5kTWF0Y2hTdHlsZSIgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyAnWCcsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIkN1dCIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdBJywgICAgICAgICBDdHJsS2V5LCAg
ICAgICAgICAiU2VsZWN0QWxsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgJ1onLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJVbmRvIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnWicsICAgICAgICAgQ3RybEtleSB8IFNoaWZ0
S2V5LCAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdZ
JywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfSU5TRVJULCAwLCAgICAgICAgICAgICAgICAgICJP
dmVyV3JpdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMg
Y29uc3QgS2V5UHJlc3NFbnRyeSBrZXlQcmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdcdCcsICAg
MCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgJ1x0JywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNr
dGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIDAsICAg
ICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7ICdccicsICAgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBTaGlmdEtleSwg
ICAgICAgICAgICJJbnNlcnRMaW5lQnJlYWsiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyAnXHInLCAgIEFsdEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRL
ZXksICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsK
Kworc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IEtleWJvYXJkRXZl
bnQmIGV2ZW50KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGludCwgY29u
c3QgY2hhcio+PiBrZXlEb3duQ29tbWFuZHNNYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEhhc2hNYXA8aW50LCBjb25zdCBjaGFyKj4+IGtleVByZXNzQ29tbWFuZHNNYXA7CisKKyAgICBp
ZiAoa2V5RG93bkNvbW1hbmRzTWFwLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlEb3duRW50cmllcyk7IGkrKykK
KyAgICAgICAgICAgIGtleURvd25Db21tYW5kc01hcC5nZXQoKS5zZXQoa2V5RG93bkVudHJpZXNb
aV0ubW9kaWZpZXJzIDw8IDE2IHwga2V5RG93bkVudHJpZXNbaV0udmlydHVhbEtleSwga2V5RG93
bkVudHJpZXNbaV0ubmFtZSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZf
QVJSQVlfTEVOR1RIKGtleVByZXNzRW50cmllcyk7IGkrKykKKyAgICAgICAgICAgIGtleVByZXNz
Q29tbWFuZHNNYXAuZ2V0KCkuc2V0KGtleVByZXNzRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYg
fCBrZXlQcmVzc0VudHJpZXNbaV0uY2hhckNvZGUsIGtleVByZXNzRW50cmllc1tpXS5uYW1lKTsK
KyAgICB9CisKKyAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgIGlmIChldmVudC5zaGlm
dEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LmFs
dEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQWx0S2V5OworICAgIGlmIChldmVudC5jdHJs
S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBDdHJsS2V5OworICAgIGlmIChldmVudC5tZXRh
S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBNZXRhS2V5OworCisgICAgaWYgKGV2ZW50LnR5
cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KSB7CisgICAgICAgIGludCBtYXBLZXkg
PSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC5rZXlDb2RlKCk7CisgICAgICAgIHJldHVybiBtYXBL
ZXkgPyBrZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuZ2V0KG1hcEtleSkgOiBudWxscHRyOworICAg
IH0KKworICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC5jaGFyQ29kZSgp
OworICAgIHJldHVybiBtYXBLZXkgPyBrZXlQcmVzc0NvbW1hbmRzTWFwLmdldCgpLmdldChtYXBL
ZXkpIDogbnVsbHB0cjsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZy
YW1lLCBLZXlib2FyZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBw
bGF0Zm9ybUV2ZW50KQoreworICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2
ZW50KGV2ZW50KTsKKworICAgIGlmICghY29tbWFuZE5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAg
IGZyYW1lLmVkaXRvcigpLmNvbW1hbmQoY29tbWFuZE5hbWUpLmV4ZWN1dGUoKTsKKyAgICAgICAg
ZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IC8vIERvbid0IGluc2VydCBudWxsIG9yIGNvbnRyb2wgY2hhcmFjdGVycyBhcyB0aGV5IGNhbiBy
ZXN1bHQgaW4gdW5leHBlY3RlZCBiZWhhdmlvdXIKKyAgICBpZiAoZXZlbnQuY2hhckNvZGUoKSA8
ICcgJykKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRG9uJ3QgaW5zZXJ0IGFueXRoaW5nIGlm
IGEgbW9kaWZpZXIgaXMgcHJlc3NlZCBhbmQgaXQgaGFzIG5vdCBiZWVuIGhhbmRsZWQgeWV0Cisg
ICAgaWYgKHBsYXRmb3JtRXZlbnQuY3RybEtleSgpIHx8IHBsYXRmb3JtRXZlbnQuYWx0S2V5KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChmcmFtZS5lZGl0b3IoKS5pbnNlcnRUZXh0KHBs
YXRmb3JtRXZlbnQudGV4dCgpLCAmZXZlbnQpKQorICAgICAgICBldmVudC5zZXREZWZhdWx0SGFu
ZGxlZCgpOworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVLZXlEb3duKEZyYW1lJiBmcmFtZSwgS2V5
Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpCit7CisgICAg
U3RyaW5nIGNvbW1hbmROYW1lID0gaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpOworICAgIGlmIChj
b21tYW5kTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHNob3Vs
ZG4ndCBpbnNlcnQgdGV4dCB0aHJvdWdoIHRoZSBlZGl0b3IuIExldCBXZWJDb3JlIGRlY2lkZQor
ICAgIC8vIGhvdyB0byBoYW5kbGUgdGhhdCAoc2F5LCBUYWIsIHdoaWNoIGNvdWxkIGFsc28gYmUg
dXNlZCB0bworICAgIC8vIGNoYW5nZSBmb2N1cykuCisgICAgRWRpdG9yOjpDb21tYW5kIGNvbW1h
bmQgPSBmcmFtZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKTsKKyAgICBpZiAoY29tbWFu
ZC5pc1RleHRJbnNlcnRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29tbWFuZC5leGVj
dXRlKCk7CisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwordm9pZCBXZWJFZGl0
b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogZXZl
bnQpCit7CisgICAgTm9kZSogbm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAg
QVNTRVJUKG5vZGUpOworICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUo
KTsKKyAgICBBU1NFUlQoZnJhbWUpOworCisgICAgLy8gRklYTUU6IFJlb3JkZXIgdGhlIGNoZWNr
cyBpbiBhIG1vcmUgc2Vuc2libGUgd2F5LgorCisgICAgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2
ZW50KiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQtPmtleUV2ZW50KCk7CisgICAgaWYgKCFwbGF0Zm9y
bUV2ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiB0aGlzIHdhcyBhbiBJTUUgZXZl
bnQgZG9uJ3QgZG8gYW55dGhpbmcuCisgICAgaWYgKHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0
dWFsS2V5Q29kZSgpID09IFZLX1BST0NFU1NLRVkpCisgICAgICAgIHJldHVybjsKKworICAgIC8v
IERvbid0IGFsbG93IHRleHQgaW5zZXJ0aW9uIGZvciBub2RlcyB0aGF0IGNhbm5vdCBlZGl0Lgor
ICAgIGlmICghZnJhbWUtPmVkaXRvcigpLmNhbkVkaXQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gVGhpcyBpcyBqdXN0IGEgbm9ybWFsIHRleHQgaW5zZXJ0aW9uLCBzbyB3YWl0IHRvIGV4
ZWN1dGUgdGhlIGluc2VydGlvbgorICAgIC8vIHVudGlsIGEga2V5cHJlc3MgZXZlbnQgaGFwcGVu
cy4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBpbnNlcnRpb24gd2lsbCBub3QKKyAgICAvLyBi
ZSByZWZsZWN0ZWQgaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWVsZCB1bnRpbCB0aGUga2V5dXAg
RE9NIGV2ZW50LgorICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVz
c0V2ZW50KQorICAgICAgICByZXR1cm4gaGFuZGxlS2V5UHJlc3MoKmZyYW1lLCAqZXZlbnQsICpw
bGF0Zm9ybUV2ZW50KTsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5
ZG93bkV2ZW50KQorICAgICAgICByZXR1cm4gaGFuZGxlS2V5RG93bigqZnJhbWUsICpldmVudCwg
KnBsYXRmb3JtRXZlbnQpOworfQorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRN
ZXRob2RLZXlkb3duKFdlYkNvcmU6OktleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCogcGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgp
OworICAgIGlmIChwbGF0Zm9ybUV2ZW50ICYmIHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFs
S2V5Q29kZSgpID09IFZLX1BST0NFU1NLRVkpCisgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVs
dCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVX
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYWI4MzdiMGE0
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlBvcHVwTWVudTo6
c2V0VXBQbGF0Zm9ybURhdGEoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBsYXRmb3JtUG9wdXBN
ZW51RGF0YSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJl
YWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNjBlOTE2Nzk5YjMuLmQzZGY0
NmExODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC03NCwxMCArNzQsMTAgQEAg
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0KFdlYlBhZ2UmIHdlYlAKICAgICAgICAgLy8gRG8gbm90IGRvIGZyYW1lIHN5bmMg
d2hlbiByZW5kZXJpbmcgb2Zmc2NyZWVuIGluIHRoZSB3ZWIgcHJvY2VzcyB0byBlbnN1cmUgdGhh
dCBTd2FwQnVmZmVycyBuZXZlciBibG9ja3MuCiAgICAgICAgIC8vIFJlbmRlcmluZyB0byB0aGUg
YWN0dWFsIHNjcmVlbiB3aWxsIGhhcHBlbiBsYXRlciBhbnl3YXkgc2luY2UgdGhlIFVJIHByb2Nl
c3Mgc2NoZWR1bGVzIGEgcmVkcmF3IGZvciBldmVyeSB1cGRhdGUsCiAgICAgICAgIC8vIHRoZSBj
b21wb3NpdG9yIHdpbGwgdGFrZSBjYXJlIG9mIHN5bmNpbmcgdG8gdmJsYW5rLgotICAgICAgICBt
X2NvbXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGll
bnQsIHNjYWxlZFNpemUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBUaHJlYWRl
ZENvbXBvc2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOworICAgICAg
ICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JD
bGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNpemUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRv
dygpLCBUaHJlYWRlZENvbXBvc2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50Rmxh
Z3MpOwogICAgICAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gbV9zdXJmYWNlLT5z
dXJmYWNlSUQoKTsKICAgICB9IGVsc2UKLSAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRD
b21wb3NpdG9yOjpjcmVhdGUobV9jb21wb3NpdG9yQ2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZh
Y3Rvcik7CisgICAgICAgIG1fY29tcG9zaXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRl
KG1fY29tcG9zaXRvckNsaWVudCwgd2ViUGFnZSwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IpOwog
CiAgICAgZGlkQ2hhbmdlVmlld3BvcnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmluZGV4IDJlNzgwZDkxYmU1Li41ZjA5M2Fj
N2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWEuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVk
ZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgIkRyYXdp
bmdBcmVhV1BFLmgiCiAjZWxzZQogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgogI2VuZGlm
CkBAIC01NSw2ICs1Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0Fy
ZWE6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiAjZW5kaWYKICAgICBj
YXNlIERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZToKICAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFtZXRl
cnMpOworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlV1BFOgor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJlYVdQRT4od2ViUGFnZSwg
cGFyYW1ldGVycyk7CiAjZWxzZQogICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlSW1wbDoKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0FyZWFJbXBsPih3ZWJQYWdlLCBwYXJh
bWV0ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCBjNzIzOTY5MmMzYy4uMDc0NDdiZjAzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciogV2ViUGFnZTo6bm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hCiAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmdldCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JN
KENPQ09BKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRG
T1JNKFdQRSkKIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9h
cmRFdmVudCogZXZ0KQogewogICAgIE5vZGUqIG5vZGUgPSBldnQtPnRhcmdldCgpLT50b05vZGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGFi
OGM3ODBjYjVmLi5hNWNlNjdhYzdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDE5LDcgKzEwMTksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAj
ZW5kaWYKIAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQ
TEFURk9STShXUEUpCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNv
bnN0IFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlMjNkMzQwZDkx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK0NvbXBvc2l0aW5nTWFuYWdlcjo6fkNvbXBvc2l0aW5nTWFuYWdlcigpCit7
CisgICAgQVNTRVJUKG1fY29ubmVjdGlvbkZkID09IC0xKTsKK30KKwordm9pZCBDb21wb3NpdGlu
Z01hbmFnZXI6OmVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZSYgd2ViUGFnZSkKK3sKKyAgICBJ
UEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZTsKKyAgICB3ZWJQYWdlLnNlbmRTeW5jKE1l
c3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6RXN0YWJsaXNoQ29ubmVjdGlvbigpLAor
ICAgICAgICBNZXNzYWdlczo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5l
Y3Rpb246OlJlcGx5KGNvbm5lY3Rpb25IYW5kbGUpKTsKKworICAgIG1fY29ubmVjdGlvbkZkID0g
Y29ubmVjdGlvbkhhbmRsZS5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMjFlMjc5MjIxOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oCkBAIC0wLDAg
KzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFuYWdl
ciBmaW5hbCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdNYW5hZ2VyKTsK
K3B1YmxpYzoKKyAgICBDb21wb3NpdGluZ01hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgfkNvbXBv
c2l0aW5nTWFuYWdlcigpOworCisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2Um
KTsKKyAgICBpbnQgcmVsZWFzZUNvbm5lY3Rpb25GZCgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2Uo
bV9jb25uZWN0aW9uRmQsIC0xKTsgfTsKKworcHJpdmF0ZToKKyAgICBpbnQgbV9jb25uZWN0aW9u
RmQgeyAtMSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNDQ3YWM4Y2IwZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2lu
Z0FyZWFXUEUuY3BwCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
cmF3aW5nQXJlYVdQRS5oIgorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgor
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGlu
Z3MuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitEcmF3aW5nQXJlYVdQRTo6RHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJl
YVR5cGVXUEUsIHdlYlBhZ2UpCit7CisgICAgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygp
LnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIGVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUoMCk7Cit9CisKK0RyYXdpbmdBcmVhV1BFOjp+RHJhd2luZ0FyZWFXUEUoKQor
eworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpsYXllckhvc3REaWRGbHVzaExheWVycygpCit7
CisgICAgbV93ZWJQYWdlLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OkVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoMCwgbV9sYXllclRyZWVIb3N0LT5sYXllclRyZWVDb250
ZXh0KCkpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0TmVlZHNEaXNwbGF5KCkKK3sK
KyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5v
bkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEFT
U0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Tm9uQ29tcG9z
aXRlZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QocmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0Fy
ZWFXUEU6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJikK
K3sKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNj
cm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhzY3JvbGxSZWN0KTsKK30KKwordm9pZCBEcmF3aW5n
QXJlYVdQRTo6cGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkKK3sKKyAgICBpZiAo
bV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnBhZ2VCYWNrZ3JvdW5k
VHJhbnNwYXJlbmN5Q2hhbmdlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJl
cGFpbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgRHJhd2luZ0FyZWFX
UEU6OmZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgcmV0dXJu
IG1fbGF5ZXJUcmVlSG9zdCAmJiBtX2xheWVyVHJlZUhvc3QtPmZvcmNlUmVwYWludEFzeW5jKGNh
bGxiYWNrSUQpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzZXRMYXllclRyZWVTdGF0ZUlz
RnJvemVuKGJvb2wgZnJvemVuKQoreworICAgIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbiA9IGZy
b3plbjsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0UGFpbnRpbmdFbmFibGVkKGJvb2wp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAg
bV93ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZUNvbXBvc2l0
aW5nTW9kZUtleSgpKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6Om1haW5GcmFtZUNvbnRl
bnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIGlmICht
X2xheWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29udGVudHNTaXplQ2hh
bmdlZChzaXplKTsKK30KKworR3JhcGhpY3NMYXllckZhY3RvcnkqIERyYXdpbmdBcmVhV1BFOjpn
cmFwaGljc0xheWVyRmFjdG9yeSgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAg
ICAgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdC0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0Um9vdENvbXBvc2l0
aW5nTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQobV9s
YXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RDb21wb3NpdGluZ0xh
eWVyKGdyYXBoaWNzTGF5ZXIpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY2hlZHVsZUNv
bXBvc2l0aW5nTGF5ZXJGbHVzaCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5zY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBEcmF3
aW5nQXJlYVdQRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpCit7
CisgICAgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKK30KKworI2lmIFVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCitSZWZQdHI8V2ViQ29yZTo6RGlz
cGxheVJlZnJlc2hNb25pdG9yPiBEcmF3aW5nQXJlYVdQRTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hN
b25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKK3sKKyAgICBpZiAobV9sYXllclRy
ZWVIb3N0KQorICAgICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVEaXNwbGF5UmVm
cmVzaE1vbml0b3IoZGlzcGxheUlEKTsKKworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlm
CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSogZnJhbWUsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5
Um9vdExheWVyKQoreworICAgIGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9z
dC0+c2V0Vmlld092ZXJsYXlSb290TGF5ZXIodmlld092ZXJsYXlSb290TGF5ZXIpOworfQorCisj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQordm9pZCBEcmF3aW5nQXJlYVdQ
RTo6ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRl
cyYmKQoreworfQorI2VuZGlmCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVT
RShURVhUVVJFX01BUFBFUikKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRldmljZU9yUGFnZVNjYWxl
RmFjdG9yQ2hhbmdlZCgpCit7Cit9CisjZW5kaWYKKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBk
YXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QsIGJvb2wsIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBzY3JvbGxPZmZzZXQpCit7CisgICAgbV93ZWJQYWdlLnNldERldmljZVNjYWxlRmFjdG9yKGRl
dmljZVNjYWxlRmFjdG9yKTsKKyAgICBtX3dlYlBhZ2Uuc2V0U2l6ZShzaXplKTsKKyAgICBtX3dl
YlBhZ2UubGF5b3V0SWZOZWVkZWQoKTsKKyAgICBtX3dlYlBhZ2Uuc2Nyb2xsTWFpbkZyYW1lSWZO
b3RBdE1heFNjcm9sbFBvc2l0aW9uKHNjcm9sbE9mZnNldCk7CisKKyAgICBBU1NFUlQobV9sYXll
clRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobV93ZWJQYWdl
LnNpemUoKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRpZFVwZGF0ZSgpCit7Cit9CisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoR3Jh
cGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9z
dCk7CisgICAgbV9sYXllclRyZWVIb3N0ID0gTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKG1fd2ViUGFn
ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGlj
c0xheWVyKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNj
aGVkdWxlZExheWVyRmx1c2godHJ1ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hh
bmdlKG1fd2ViUGFnZS5zaXplKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFX
UEUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFX
UEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDk5MTk3YzAyYWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L0RyYXdpbmdBcmVhV1BFLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRy
YXdpbmdBcmVhLmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVdQRSA6IHB1YmxpYyBEcmF3aW5nQXJlYSB7Citw
dWJsaWM6CisgICAgRHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVdQRSgpOworCisgICAgdm9p
ZCBsYXllckhvc3REaWRGbHVzaExheWVycygpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIC8v
IERyYXdpbmdBcmVhCisgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOworCisgICAgdm9p
ZCBwYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lk
IGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOworICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWlu
dDY0X3QgY2FsbGJhY2tJRCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlz
RnJvemVuKGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbjsgfQorICAg
IExheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2xheWVyVHJlZUhvc3QuZ2V0KCk7IH0KKworICAgIHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJv
b2wpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYpIG92ZXJyaWRlOworICAgIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFu
Z2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOworICAg
IHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOworICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSBv
dmVycmlkZTsKKworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklU
T1IpCisgICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlz
cGxheVJlZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBvdmVycmlkZTsK
KyNlbmRpZgorCisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29y
ZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9y
dEF0dHJpYnV0ZXMoV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiYpIG92ZXJyaWRlOworI2Vu
ZGlmCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhUVVJFX01BUFBF
UikKKyAgICB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRlOwor
I2VuZGlmCisKKyAgICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBib29s
LCBmbG9hdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFVwZGF0ZSgpIG92ZXJyaWRlOworCisgICAgdm9pZCBl
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsK
KworICAgIC8vIFdoZW4gdHJ1ZSwgd2UgbWFpbnRhaW4gdGhlIGxheWVyIHRyZWUgaW4gaXRzIGN1
cnJlbnQgc3RhdGUgYnkgbm90IGxlYXZpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbW9kZQor
ICAgIC8vIGFuZCBub3Qgc2NoZWR1bGluZyBsYXllciBmbHVzaGVzLgorICAgIGJvb2wgbV9sYXll
clRyZWVTdGF0ZUlzRnJvemVuIHsgZmFsc2UgfTsKKworICAgIC8vIFRoZSBsYXllciB0cmVlIGhv
c3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgorICAgIFJlZlB0cjxMYXll
clRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5z
cGVjdG9yVUlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJJbnNwZWN0b3JVSVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjc0Yzg0NGJjYmE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHAKQEAgLTAsMCArMSw0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUkuaCIKKworI2luY2x1ZGUgIlJl
bW90ZVdlYkluc3BlY3RvclVJLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYklu
c3BlY3RvclVJOjpjYW5TYXZlKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBX
ZWJJbnNwZWN0b3JVSTo6bG9jYWxpemVkU3RyaW5nc1VSTCgpCit7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NV
UkwoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYklu
c3BlY3RvcldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dl
Ykluc3BlY3RvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmM0ZTBjNjVlMGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3Rvci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RP
UikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViSW5zcGVjdG9yOjpjYW5TYXZlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3I6Omxv
Y2FsaXplZFN0cmluZ3NVUkwoKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BF
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3MWMyNDZiODE4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJQYWdlV1BFLmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldlYlBy
ZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQor
eworfQorCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRGV0YWNoKCkKK3sKK30KKwordm9pZCBXZWJQ
YWdlOjpwbGF0Zm9ybUVkaXRvclN0YXRlKEZyYW1lJiwgRWRpdG9yU3RhdGUmLCBJbmNsdWRlUG9z
dExheW91dERhdGFIaW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgV2ViUGFnZTo6cGxhdGZvcm1QcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJl
bmNlc1N0b3JlJiBzdG9yZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdl
YlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2Fy
ZEV2ZW50JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBVUkwmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcg
V2ViUGFnZTo6Y2FjaGVkUmVzcG9uc2VNSU1FVHlwZUZvclVSTChjb25zdCBVUkwmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFdlYlBh
Z2U6OnBsYXRmb3JtQ2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2Vi
UGFnZTo6Y2FjaGVkU3VnZ2VzdGVkRmlsZW5hbWVGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gV2ViUGFnZTo6Y2FjaGVkUmVzcG9uc2VEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworU3RyaW5n
IFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJv
Y2Vzc01haW5XUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vz
c01haW5XUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYWNh
ODU0ZWY4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd3Bl
L1dlYlByb2Nlc3NNYWluV1BFLmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENv
cHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NNYWluVW5peC5oIgorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgor
I2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxsaWJzb3Vw
L3NvdXAuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJQcm9jZXNzTWFpbiBmaW5hbDogcHVibGljIENoaWxkUHJvY2Vzc01haW5C
YXNlIHsKK3B1YmxpYzoKKyAgICBib29sIHBsYXRmb3JtSW5pdGlhbGl6ZSgpIG92ZXJyaWRlCisg
ICAgeworICAgICAgICAvLyBUT0RPOiBXcmFwIHdpdGggI2lmbmRlZiBOREVCVUcKKyAgICAgICAg
aWYgKGdfZ2V0ZW52KCJXRUJLSVQyX1BBVVNFX1dFQl9QUk9DRVNTX09OX0xBVU5DSCIpKSB7Cisg
ICAgICAgICAgICBnX3ByaW50ZXJyKCJXZWJQcm9jZXNzIFBJRDogJWRcbiIsIGdldHBpZCgpKTsK
KyAgICAgICAgICAgIFdURjo6c2xlZXAoMzApOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgYm9vbCBwYXJzZUNvbW1hbmRMaW5lKGludCBhcmdjLCBjaGFy
KiogYXJndikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEFTU0VSVChhcmdjID09IDMpOworICAg
ICAgICBpZiAoYXJnYyA8IDMpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
aWYgKCFDaGlsZFByb2Nlc3NNYWluQmFzZTo6cGFyc2VDb21tYW5kTGluZShhcmdjLCBhcmd2KSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpbnQgd3BlRmQgPSBhdG9pKGFy
Z3ZbMl0pOworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goCisgICAgICAgICAgICBb
d3BlRmRdIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpczxQbGF0Zm9ybURpc3Bs
YXlXUEU+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKSk7CisgICAgICAgICAgICAg
ICAgZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERp
c3BsYXkoKSkuaW5pdGlhbGl6ZSh3cGVGZCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorfTsKKworaW50IFdlYlByb2Nlc3NNYWluVW5peChpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIENoaWxkUHJvY2Vzc01haW48V2ViUHJvY2Vzcywg
V2ViUHJvY2Vzc01haW4+KGFyZ2MsIGFyZ3YpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dwZS93cGUtd2Via2l0LnBjLmluIGIvU291cmNl
L1dlYktpdDIvd3BlL3dwZS13ZWJraXQucGMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmU5OWMwMjUxODE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvd3BlL3dwZS13ZWJraXQucGMuaW4KQEAgLTAsMCArMSwxMSBAQAorcHJlZml4PUBDTUFLRV9J
TlNUQUxMX1BSRUZJWEAKK2V4ZWNfcHJlZml4PSR7cHJlZml4fQorbGliZGlyPUBMSUJfSU5TVEFM
TF9ESVJACitpbmNsdWRlZGlyPSR7cHJlZml4fS9pbmNsdWRlCisKK05hbWU6IFdlYktpdDIKK0Rl
c2NyaXB0aW9uOiBXUEUtZmxhdm9yZWQgV2ViIGVuZ2luZQorVmVyc2lvbjogQFBST0pFQ1RfVkVS
U0lPTkAKK1JlcXVpcmVzLnByaXZhdGU6IGdsaWItMi4wIGxpYnNvdXAtMi40CitMaWJzOiAtTCR7
bGliZGlyfSAtbFdQRVdlYktpdCAtbFdQRQorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vd3BlLUBX
UEVfQVBJX1ZFUlNJT05AIC1JJHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAvV1BF
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZExpYkdCTS5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9GaW5kTGliR0JNLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5kMjA5MWNiZmI0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kTGliR0JN
LmNtYWtlCkBAIC0wLDAgKzEsNDYgQEAKKyMgLSBUcnkgdG8gZmluZCBnYm0uCisjIE9uY2UgZG9u
ZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgTElCR0JNX0lOQ0xVREVfRElSUyAtIHRoZSBnYm0g
aW5jbHVkZSBkaXJlY3RvcmllcworIyAgTElCR0JNX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8g
dXNlIGdibS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
ZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX0xJQkdCTSBnYm0p
CisKK2ZpbmRfcGF0aChMSUJHQk1fSU5DTFVERV9ESVJTCisgICAgTkFNRVMgZ2JtLmgKKyAgICBI
SU5UUyAke1BDX0xJQkdCTV9JTkNMVURFX0RJUlN9ICR7UENfTElCR0JNX0lOQ1VERURJUn0KKykK
KworZmluZF9saWJyYXJ5KExJQkdCTV9MSUJSQVJJRVMKKyAgICBOQU1FUyBnYm0KKyAgICBISU5U
UyAke1BDX0xJQkdCTV9MSUJSQVJZX0RJUlN9ICR7UENfTElCR0JNX0xJQkRJUn0KKykKKworaW5j
bHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVf
U1RBTkRBUkRfQVJHUyhMSUJHQk0gREVGQVVMVF9NU0cgTElCR0JNX0xJQlJBUklFUykKKworbWFy
a19hc19hZHZhbmNlZChMSUJHQk1fSU5DTFVERV9ESVJTIExJQkdCTV9MSUJSQVJJRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi42MTYxNTRlNjExOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFr
ZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkgdG8g
ZmluZCBXUEUtbWVzYS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBXUEVf
TUVTQV9GT1VORCAtIHN5c3RlbSBoYXMgV1BFLW1lc2EuCisjICBXUEVfTUVTQV9JTkNMVURFX0RJ
UlMgLSB0aGUgV1BFLW1lc2EgaW5jbHVkZSBkaXJlY3RvcmllcworIyAgV1BFX01FU0FfTElCUkFS
SUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BFLW1lc2EuCisjCisjIENvcHlyaWdodCAoQykgMjAx
NiBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisj
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hl
Y2tfbW9kdWxlcyhQQ19XUEVfTUVTQSBRVUlFVCB3cGUtbWVzYSkKKworZmluZF9wYXRoKFdQRV9N
RVNBX0lOQ0xVREVfRElSUworICAgIE5BTUVTIHdwZS1tZXNhL3ZpZXctYmFja2VuZC1leHBvcnRh
YmxlLWRtYS1idWYuaAorICAgIEhJTlRTICR7UENfV1BFX01FU0FfSU5DTFVERURJUn0gJHtQQ19X
UEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGlicmFyeShXUEVfTUVTQV9MSUJSQVJJ
RVMKKyAgICBOQU1FUyBXUEVCYWNrZW5kLW1lc2EKKyAgICBISU5UUyAke1BDX1dQRV9NRVNBX0xJ
QkRJUn0gJHtQQ19XUEVfTUVTQV9MSUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQo
V1BFX01FU0FfSU5DTFVERV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5k
UGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRf
QVJHUyhXUEVfTUVTQSBSRVFVSVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVT
QV9MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21h
a2UgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM3YTkzZDAwNTE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkg
dG8gZmluZCBXUEUuCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFX0ZP
VU5EIC0gc3lzdGVtIGhhcyBXUEUuCisjICBXUEVfSU5DTFVERV9ESVJTIC0gdGhlIFdQRSBpbmNs
dWRlIGRpcmVjdG9yaWVzCisjICBXUEVfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BF
LgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
CisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3Bh
Y2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfV1BFIFFVSUVUIHdwZSkKKwor
ZmluZF9wYXRoKFdQRV9JTkNMVURFX0RJUlMKKyAgICBOQU1FUyB3cGUvbG9hZGVyLmgKKyAgICBI
SU5UUyAke1BDX1dQRV9JTkNMVURFRElSfSAke1BDX1dQRV9JTkNMVURFX0RJUlN9CispCisKK2Zp
bmRfbGlicmFyeShXUEVfTElCUkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2VuZAorICAgIEhJTlRT
ICR7UENfV1BFX0xJQkRJUn0gJHtQQ19XUEVfTElCUkFSWV9ESVJTfQorKQorCittYXJrX2FzX2Fk
dmFuY2VkKFdQRV9JTkNMVURFX0RJUlMgV1BFX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5kUGFj
a2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJH
UyhXUEUgUkVRVUlSRURfVkFSUyBXUEVfSU5DTFVERV9ESVJTIFdQRV9MSUJSQVJJRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOTU1
Y2Y5MWM5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtl
CkBAIC0wLDAgKzEsMTM4IEBACitpbmNsdWRlKEdOVUluc3RhbGxEaXJzKQorCitzZXQoUFJPSkVD
VF9WRVJTSU9OX01BSk9SIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX01JTk9SIDApCitzZXQoUFJP
SkVDVF9WRVJTSU9OX1BBVENIIDIwMTcwNDI3KQorc2V0KFBST0pFQ1RfVkVSU0lPTiAke1BST0pF
Q1RfVkVSU0lPTl9NQUpPUn0uJHtQUk9KRUNUX1ZFUlNJT05fTUlOT1J9LiR7UFJPSkVDVF9WRVJT
SU9OX1BBVENIfSkKK3NldChXUEVfQVBJX1ZFUlNJT04gMC4xKQorCitpZiAoV1RGX0NQVV9YODZf
NjQpCisgICAgc2V0KEVOQUJMRV9GVExfREVGQVVMVCBPTikKK2Vsc2UgKCkKKyAgICBzZXQoRU5B
QkxFX0ZUTF9ERUZBVUxUIE9GRikKK2VuZGlmICgpCisKK1dFQktJVF9PUFRJT05fQkVHSU4oKQor
CitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfM0RfVFJBTlNGT1JNUyBQ
VUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfQ1NTX1JFR0lPTlMgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0IFBVQkxJQyBPTikKK1dFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9EQVRBQkFTRV9QUk9DRVNTIFBSSVZB
VEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZUTF9KSVQgUFJJVkFURSAke0VOQUJMRV9GVExfREVG
QVVMVH0pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR0FNRVBBRCBQ
VUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dFT0xP
Q0FUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBQUklWQVRFIE9GRikK
K1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9DT05UUk9MU19T
Q1JJUFQgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X01FRElBX1NPVVJDRSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9UT1VDSF9FVkVOVFMgUFVCTElDIE9OKQorV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJREVPIFBVQkxJQyBPTikKK1dF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFT19UUkFDSyBQVUJMSUMg
T04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklFV19NT0RFX0NT
U19NRURJQSBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfV0VCX0FOSU1BVElPTlMgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9XRUJfQVVESU8gUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIFBVQkxJQyBPTikKKworV0VCS0lUX09QVElP
Tl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9HTCAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3Ig
R1N0cmVhbWVyIEdMIiBQUklWQVRFIE9GRikKKworV0VCS0lUX09QVElPTl9FTkQoKQorCitzZXQo
RU5BQkxFX1dFQkNPUkUgT04pCitzZXQoRU5BQkxFX1dFQktJVCBPRkYpCitzZXQoRU5BQkxFX1dF
QktJVDIgT04pCitzZXQoRU5BQkxFX0FQSV9URVNUUyAke0RFVkVMT1BFUl9NT0RFfSkKK3NldChF
TkFCTEVfVE9PTFMgT04pCisKK3NldChXVEZfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChKYXZh
U2NyaXB0Q29yZV9MSUJSQVJZX1RZUEUgU1RBVElDKQorc2V0KFdlYkNvcmVfTElCUkFSWV9UWVBF
IFNUQVRJQykKK3NldChXZWJLaXQyX09VVFBVVF9OQU1FIFdQRVdlYktpdCkKK3NldChXZWJLaXQy
X1dlYlByb2Nlc3NfT1VUUFVUX05BTUUgV1BFV2ViUHJvY2VzcykKK3NldChXZWJLaXQyX05ldHdv
cmtQcm9jZXNzX09VVFBVVF9OQU1FIFdQRU5ldHdvcmtQcm9jZXNzKQorc2V0KFdlYktpdDJfRGF0
YWJhc2VQcm9jZXNzX09VVFBVVF9OQU1FIFdQRURhdGFiYXNlUHJvY2VzcykKKworZmluZF9wYWNr
YWdlKElDVSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShUaHJlYWRzIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKFpMSUIgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoR0xJQiAyLjQwLjAgUkVRVUlSRUQg
Q09NUE9ORU5UUyBnaW8gZ2lvLXVuaXggZ29iamVjdCBndGhyZWFkIGdtb2R1bGUpCitmaW5kX3Bh
Y2thZ2UoR251VExTIDMuMC4wIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2UoQ2Fpcm8gMS4xMC4y
IFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVRVUlSRUQpCitmaW5k
X3BhY2thZ2UoRnJlZXR5cGUyIDIuNC4yIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEhhcmZCdXp6
IDAuOS4xOCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShKUEVHIFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKExpYkdjcnlwdCAxLjYuMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJTb3VwIDIuNDIu
MCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYbWwyIDIuOC4wIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoUE5HIFJFUVVJUkVE
KQorZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXZWJQIFJFUVVJ
UkVEKQorCitmaW5kX3BhY2thZ2UoT3BlbkdMRVMyIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEVH
TCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKFdQRUJhY2tlbmQgUkVRVUlSRUQpCisKK3NldChV
U0VfWERHTUlNRSBPTikKKworaWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVfV0VCX0FVRElPKQor
ICAgIHNldChHU1RSRUFNRVJfQ09NUE9ORU5UUyBhcHAgYXVkaW8gcGJ1dGlscykKKyAgICBTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfR1NUUkVBTUVSIFRSVUUpCisgICAgaWYgKEVOQUJMRV9W
SURFTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgdmlkZW8gdGFn
KQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICAgICAgbGlz
dChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgZmZ0KQorICAgICAgICBTRVRfQU5EX0VYUE9T
RV9UT19CVUlMRChVU0VfV0VCQVVESU9fR1NUUkVBTUVSIFRSVUUpCisgICAgZW5kaWYgKCkKKwor
ICAgIGZpbmRfcGFja2FnZShHU3RyZWFtZXIgMS4yLjMgUkVRVUlSRUQgQ09NUE9ORU5UUyAke0dT
VFJFQU1FUl9DT01QT05FTlRTfSkKKworICAgICMgRklYTUU6IFdoYXQgYWJvdXQgTVBFR1RTIHN1
cHBvcnQ/IFVTRV9HU1RSRUFNRVJfTVBFR1RTPworZW5kaWYgKCkKKworaWYgKEVOQUJMRV9NRURJ
QV9TVFJFQU0gT1IgRU5BQkxFX1dFQl9SVEMpCisgICAgZmluZF9wYWNrYWdlKE9wZW5XZWJSVEMp
CisgICAgaWYgKE5PVCBPUEVOV0VCUlRDX0ZPVU5EKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VS
Uk9SICJPcGVuV2ViUlRDIGlzIG5lZWRlZCBmb3IgRU5BQkxFX01FRElBX1NUUkVBTSBhbmQgRU5B
QkxFX1dFQl9SVEMuIikKKyAgICBlbmRpZiAoKQorICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxE
KFVTRV9PUEVOV0VCUlRDIFRSVUUpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKKyAgICBmaW5kX3BhY2thZ2UoQ2Fpcm9HTCAxLjEwLjIgUkVRVUlSRUQgQ09N
UE9ORU5UUyBjYWlyby1lZ2wpCitlbmRpZiAoKQorCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElO
R19XUEVfXz0xKQorYWRkX2RlZmluaXRpb25zKC1EREFUQV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9E
QVRBRElSfSIpCisKK3NldChVU0VfVURJUzg2IDEpCisKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxE
KFVTRV9PUEVOR0xfRVNfMiBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0VHTCBU
UlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF8z
RCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVIgVFJV
RSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9URVhUVVJFX01BUFBFUl9HTCBUUlVFKQor
U0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgVFJVRSkKK1NF
VF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDUyBUUlVFKQorU0VU
X0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEIFRS
VUUpCisKK3NldChGT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0v
Rm9yd2FyZGluZ0hlYWRlcnMpCisKKyMgQnVpbGQgd2l0aCAtZnZpc2liaWxpdHk9aGlkZGVuIHRv
IHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCisjIE5vdCB0byBiZSB1c2Vk
IHdoZW4gYnVpbGRpbmcgdGhlIFdlYktpdFRlc3RSdW5uZXIgbGlicmFyeS4KK2lmIChOT1QgREVW
RUxPUEVSX01PREUpCisgICAgc2V0KENNQUtFX0NfRkxBR1NfUkVMRUFTRSAiJHtDTUFLRV9DX0ZM
QUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4iKQorICAgIHNldChDTUFLRV9DWFhfRkxB
R1NfUkVMRUFTRSAiJHtDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRX0gLWZ2aXNpYmlsaXR5PWhpZGRl
biAtZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW4iKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQppbmRleCAyYzMwMmRiY2RlYi4uOTA3
YTU0NzM4MzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1
Y3QtYXJjaGl2ZQorKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFy
Y2hpdmUKQEAgLTE3MCw3ICsxNzAsNyBAQCBkZWYgZGlyQ29udGFpbnNkd28oZGlyZWN0b3J5KToK
IAogCiBkZWYgYXJjaGl2ZUJ1aWx0UHJvZHVjdChjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgZnVs
bFBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycs
ICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0
aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICBpZiBwbGF0Zm9ybSA9PSAnaW9zJzoKICAg
ICAgICAgY29tYmluZWREaXJlY3RvcnkgPSBvcy5wYXRoLmpvaW4oX3RvcExldmVsQnVpbGREaXJl
Y3RvcnksICdjb21iaW5lZC1tYWMtYW5kLWlvcycpCkBAIC0xOTgsNyArMTk4LDcgQEAgZGVmIGFy
Y2hpdmVCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGZ1bGxQbGF0Zm9ybSk6
CiAKICAgICAgICAgc2h1dGlsLnJtdHJlZSh0aGluRGlyZWN0b3J5KQogCi0gICAgZWxpZiBwbGF0
Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJzoKKyAgICBlbGlmIHBsYXRmb3JtID09
ICdndGsnIG9yIHBsYXRmb3JtID09ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAg
ICAjIE9uIEdUSysvRUZMIHdlIGRvbid0IG5lZWQgdGhlIGludGVybWVkaWF0ZSBzdGVwIG9mIGNy
ZWF0aW5nIGEgdGhpbkRpcmVjdG9yeQogICAgICAgICAjIHRvIGJlIGNvbXByZXNzZWQgaW4gYSBa
SVAgZmlsZSwgYmVjYXVzZSB3ZSBjYW4gY3JlYXRlIHRoZSBaSVAgZGlyZWN0bHkuCiAgICAgICAg
ICMgVGhpcyBpcyBmYXN0ZXIgYW5kIHJlcXVpcmVzIGxlc3MgZGlzayByZXNvdXJjZXMuCkBAIC0y
MzIsNyArMjMyLDcgQEAgZGVmIHVuemlwQXJjaGl2ZShkaXJlY3RvcnlUb0V4dHJhY3RUbywgY29u
ZmlndXJhdGlvbik6CiAKIAogZGVmIGV4dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwg
cGxhdGZvcm0pOgotICAgIGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywg
J2VmbCcsICdpb3MnKQorICAgIGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3Rr
JywgJ2VmbCcsICdpb3MnLCAnd3BlJykKIAogICAgIGFyY2hpdmVGaWxlID0gb3MucGF0aC5qb2lu
KF90b3BMZXZlbEJ1aWxkRGlyZWN0b3J5LCBjb25maWd1cmF0aW9uICsgJy56aXAnKQogCkBAIC0y
NDEsNyArMjQxLDcgQEAgZGVmIGV4dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxh
dGZvcm0pOgogCiAgICAgaWYgcGxhdGZvcm0gaW4gKCdtYWMnLCAnaW9zJyk6CiAgICAgICAgIHJl
dHVybiB1bnppcEFyY2hpdmUoX3RvcExldmVsQnVpbGREaXJlY3RvcnksIGNvbmZpZ3VyYXRpb24p
Ci0gICAgZWxpZiBwbGF0Zm9ybSA9PSAnd2luJyBvciBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0
Zm9ybSA9PSAnZWZsJzoKKyAgICBlbGlmIHBsYXRmb3JtID09ICd3aW4nIG9yIHBsYXRmb3JtID09
ICdndGsnIG9yIHBsYXRmb3JtID09ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAg
ICBwcmludCAnRXh0cmFjdGluZycsIF9jb25maWd1cmF0aW9uQnVpbGREaXJlY3RvcnkKICAgICAg
ICAgcmV0dXJuIHVuemlwQXJjaGl2ZShfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5LCBjb25m
aWd1cmF0aW9uKQogCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJl
c3VsdC1hcmNoaXZlIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2
ZQppbmRleCAzYzJiMGJkN2EzNi4uOTgwZjA3MWMxNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQpAQCAtNDYsNyArNDYsNyBAQCBkZWYgbWFpbigpOgog
ICAgIHJldHVybiBhcmNoaXZlVGVzdFJlc3VsdHMob3B0aW9ucy5jb25maWd1cmF0aW9uLCBvcHRp
b25zLnBsYXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0RpcikKIAogZGVmIGFyY2hpdmVUZXN0UmVz
dWx0cyhjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpOgotICAg
IGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWly
bycsICdpb3MnKQorICAgIGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywg
J2VmbCcsICd3aW5jYWlybycsICdpb3MnLCAnd3BlJykKIAogICAgIHRyeToKICAgICAgICAgb3Mu
dW5saW5rKGFyY2hpdmVGaWxlKQpAQCAtNjYsNyArNjYsNyBAQCBkZWYgYXJjaGl2ZVRlc3RSZXN1
bHRzKGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0Rpcik6CiAgICAg
aWYgcGxhdGZvcm0gaW4gKCdtYWMnLCAnaW9zJyk6CiAgICAgICAgIGlmIHN1YnByb2Nlc3MuY2Fs
bChbImRpdHRvIiwgIi1jIiwgIi1rIiwgIi0tc2VxdWVzdGVyUnNyYyIsICItLXpsaWJDb21wcmVz
c2lvbkxldmVsIiwgIjIiLCBsYXlvdXRUZXN0UmVzdWx0c0RpciwgYXJjaGl2ZUZpbGVdKToKICAg
ICAgICAgICAgIHJldHVybiAxCi0gICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAn
ZWZsJywgJ3dpbmNhaXJvJyk6CisgICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAn
ZWZsJywgJ3dpbmNhaXJvJywgJ3dwZScpOgogICAgICAgICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJ6
aXAiLCAiLXIiLCAiLTIiLCBhcmNoaXZlRmlsZSwgIi4iXSwgY3dkPWxheW91dFRlc3RSZXN1bHRz
RGlyKToKICAgICAgICAgICAgIHJldHVybiAxCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NNYWtlTGlz
dHMudHh0IGIvVG9vbHMvQ01ha2VMaXN0cy50eHQKaW5kZXggYjMwNDliODg0MWQuLjgwZmRiOGM5
NGRlIDEwMDY0NAotLS0gYS9Ub29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxp
c3RzLnR4dApAQCAtMjMsNiArMjMsMTEgQEAgZWxzZWlmICgiJHtQT1JUfSIgU1RSRVFVQUwgIkpT
Q09ubHkiKQogICAgIGlmIChFTkFCTEVfQVBJX1RFU1RTKQogICAgICAgICBhZGRfc3ViZGlyZWN0
b3J5KFRlc3RXZWJLaXRBUEkpCiAgICAgZW5kaWYgKCkKK2Vsc2VpZiAoIiR7UE9SVH0iIFNUUkVR
VUFMICJXUEUiKQorICAgIGlmIChERVZFTE9QRVJfTU9ERSkKKyAgICAgICAgYWRkX3N1YmRpcmVj
dG9yeShJbWFnZURpZmYpCisgICAgICAgIGFkZF9zdWJkaXJlY3RvcnkoV2ViS2l0VGVzdFJ1bm5l
cikKKyAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAogaWYgKFdJTjMyKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3Jt
V1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjBlZTUz
MjhiYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0ltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFr
ZQpAQCAtMCwwICsxIEBACitpbmNsdWRlKENhaXJvLmNtYWtlKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZSBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJl
bmRlcnRyZWUKaW5kZXggNzYxZjQzZjY5ODkuLjE3ZGQ4MjA4YjIxIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQt
ZHVtcHJlbmRlcnRyZWUKQEAgLTY1LDggKzY1LDggQEAgY2hkaXIgRmlsZTo6U3BlYy0+Y2F0ZGly
KCJUb29scyIsICJEdW1wUmVuZGVyVHJlZSIpIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAoaXNB
cHBsZUNvY29hV2ViS2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIkR1
bXBSZW5kZXJUcmVlIiwgJGNsZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAo
aXNHdGsoKSB8fCBpc0FueVdpbmRvd3MoKSkgewotICAgICMgR1RLIGFuZCBXaW5kb3dzIGJ1aWxk
IGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhpbmcgaGVyZS4K
K30gZWxzaWYgKGlzR3RrKCkgfHwgaXNXUEUoKSB8fCBpc0FueVdpbmRvd3MoKSkgeworICAgICMg
R1RLLCBXUEUgYW5kIFdpbmRvd3MgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVl
ZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKICAg
ICBkaWUgIkJ1aWxkaW5nIG5vdCBkZWZpbmVkIGZvciB0aGlzIHBsYXRmb3JtIVxuIjsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKaW5kZXggNzE0MmFlNjY0NzMuLjJmZWVjNjY1Y2ExIDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAt
MTAwLDYgKzEwMCw3IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHRv
IHBhc3MgdG8gYnVpbGQgc3lzdGVtXQogICAtLWFuYWx5emUgICAgICAgICAgICAgICAgICAgICAg
ICAgRW5hYmxlIHN0YXRpYyBhbmF5bHNpcyAoaU9TIGFuZCBNYWMgb25seSkKIAogICAtLWd0ayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIEdUSysgcG9ydAorICAtLXdwZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIFdQRSBwb3J0CiAgIC0td2luY2Fp
cm8gICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB1c2luZyBDYWlybyAocmF0aGVyIHRoYW4g
Q29yZUdyYXBoaWNzKSBvbiBXaW5kb3dzCiAKICAgLS1pbnNwZWN0b3ItZnJvbnRlbmQgICAgICAg
ICAgICAgIENvcHkgV2ViIEluc3BlY3RvciB1c2VyIGludGVyZmFjZSByZXNvdXJjZXMgdG8gdGhl
IGJ1aWxkIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0
ZXN0cnVubmVyIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyCmluZGV4IDI0
MDNmOTM2OGQzLi45NzA3ZjY0NDYzYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXR0ZXN0cnVubmVyCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5l
cgpAQCAtNjEsOCArNjEsOCBAQCBjaGRpciAiVG9vbHMvV2ViS2l0VGVzdFJ1bm5lciIgb3IgZGll
OwogbXkgJHJlc3VsdDsKIGlmIChpc0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAgICRyZXN1bHQg
PSBidWlsZFhDb2RlUHJvamVjdCgiV2ViS2l0VGVzdFJ1bm5lciIsICRjbGVhbiwgWGNvZGVPcHRp
b25zKCksIEBBUkdWKTsKLX0gZWxzaWYgKGlzR3RrKCkpIHsKLSAgICAjIEdUSysgYnVpbGQgZXZl
cnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgorfSBl
bHNpZiAoaXNHdGsoKSB8fCBpc1dQRSgpKSB7CisgICAgIyBHVEsrIGFuZCBXUEUgYnVpbGQgZXZl
cnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAg
ICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKICAgICBkaWUgIldlYktpdFRlc3RSdW5uZXIgaXMgbm90
IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLlxuIjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJr
aXQtbGlicy1qaGJ1aWxkCmluZGV4IGQ5ZGJmZjVkZGU0Li4xMDc5YTllOGFiNSAxMDA3NTUKLS0t
IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZAorKysgYi9Ub29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCkBAIC0yNCw5ICsyNCwxMCBAQCB1c2Ug
R2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFzc190aHJvdWdoKTsKIAogbXkgJHBsYXRmb3JtID0g
IiI7CiAkcGxhdGZvcm0gPSAiZ3RrIiBpZiBpc0d0aygpOworJHBsYXRmb3JtID0gIndwZSIgaWYg
aXNXUEUoKTsKIAogaWYgKCEkcGxhdGZvcm0pIHsKLSAgICBkaWUgIk5vIHBsYXRmb3JtIHNwZWNp
ZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrLlxuIjsKKyAgICBkaWUgIk5v
IHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrIG9y
IC0td3BlLlxuIjsKIH0KIAogbXkgJHdpcGVPbkNoYW5nZSA9ICRFTlZ7SkhCVUlMRF9XSVBFX09O
X0NIQU5HRX0gLy8gMTsKQEAgLTEzMiw3ICsxMzMsNyBAQCBkZWxldGUgJEVOVntBUl9GTEFHU30g
aWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlwdHNEaXIoKSAu
ICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3JtID0gKCAiZ3Rr
IiA9PiAiR1RLKyIgKTsKK215ICVwcmV0dHlQbGF0Zm9ybSA9ICggImd0ayIgPT4gIkdUSysiLCAi
d3BlIiA9PiAiV1BFIiApOwogCiBpZiAoISRmb3JjZSAmJiAhamhidWlsZENvbmZpZ3VyYXRpb25D
aGFuZ2VkKCkpIHsKICAgICBwcmludCAkcHJldHR5UGxhdGZvcm17JHBsYXRmb3JtfSAuICIgcG9y
dCBkZXBlbmRlbmNpZXMgYXJlIGFscmVhZHkgdXAgdG8gZGF0ZVxuIjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJzIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2Via2l0d3BlLWxpYnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmIy
M2ZiZGU2YjgzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0
d3BlLWxpYnMKQEAgLTAsMCArMSwyNCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjIENvcHlyaWdo
dCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9y
YXRpb24KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisKK3VzZSBGaW5kQmluOwordXNlIGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtp
dGRpcnM7CisKK215ICRzY3JpcHRzRGlyID0gcmVsYXRpdmVTY3JpcHRzRGlyKCk7CitzeXN0ZW0o
InBlcmwiLCAiJHNjcmlwdHNEaXIvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQiLCAiLS13cGUi
LCBAQVJHVikgPT0gMCBvciBkaWUgJCE7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggYmM0NjU0NjE3ZDEu
LjZlOGUwZTdmZTU0IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC0xMDcsNiArMTA3LDcgQEAgdXNlIGNv
bnN0YW50IHsKICAgICBNYWMgICAgICA9PiAiTWFjIiwKICAgICBKU0NPbmx5ICA9PiAiSlNDT25s
eSIsCiAgICAgV2luQ2Fpcm8gPT4gIldpbkNhaXJvIiwKKyAgICBXUEUgICAgICA9PiAiV1BFIiwK
ICAgICBVbmtub3duICA9PiAiVW5rbm93biIKIH07CiAKQEAgLTQ0NSw2ICs0NDYsNyBAQCBzdWIg
YXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAgICAgcHVzaChAYXJncywgJy0tMzItYml0Jykg
aWYgKCRhcmNoaXRlY3R1cmUgbmUgIng4Nl82NCIgYW5kICFpc1dpbjY0KCkpOwogICAgIHB1c2go
QGFyZ3MsICctLTY0LWJpdCcpIGlmIChpc1dpbjY0KCkpOwogICAgIHB1c2goQGFyZ3MsICctLWd0
aycpIGlmIGlzR3RrKCk7CisgICAgcHVzaChAYXJncywgJy0td3BlJykgaWYgaXNXUEUoKTsKICAg
ICBwdXNoKEBhcmdzLCAnLS1qc2Mtb25seScpIGlmIGlzSlNDT25seSgpOwogICAgIHB1c2goQGFy
Z3MsICctLXdpbmNhaXJvJykgaWYgaXNXaW5DYWlybygpOwogICAgIHB1c2goQGFyZ3MsICctLWlu
c3BlY3Rvci1mcm9udGVuZCcpIGlmIGlzSW5zcGVjdG9yRnJvbnRlbmQoKTsKQEAgLTY4MCw3ICs2
ODIsNyBAQCBzdWIgZXhlY3V0YWJsZVByb2R1Y3REaXIKICAgICBteSAkcHJvZHVjdERpcmVjdG9y
eSA9IHByb2R1Y3REaXIoKTsKIAogICAgIG15ICRiaW5hcnlEaXJlY3Rvcnk7Ci0gICAgaWYgKGlz
R3RrKCkgfHwgaXNKU0NPbmx5KCkpIHsKKyAgICBpZiAoaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSB8
fCBpc1dQRSgpKSB7CiAgICAgICAgICRiaW5hcnlEaXJlY3RvcnkgPSAiYmluIjsKICAgICB9IGVs
c2lmIChpc0FueVdpbmRvd3MoKSkgewogICAgICAgICAkYmluYXJ5RGlyZWN0b3J5ID0gaXNXaW42
NCgpID8gImJpbjY0IiA6ICJiaW4zMiI7CkBAIC05MzgsNiArOTQwLDkgQEAgc3ViIGJ1aWx0RHls
aWJQYXRoRm9yTmFtZQogICAgICAgICAgICAgcmV0dXJuICIkYmFzZVByb2R1Y3REaXIvJGxpYnJh
cnlOYW1lLmludGVybWVkaWF0ZS8kY29uZmlndXJhdGlvbi8kbGlicmFyeU5hbWUuaW50ZXJtZWRp
YXRlLyRsaWJyYXJ5TmFtZS5saWIiOwogICAgICAgICB9CiAgICAgfQorICAgIGlmIChpc1dQRSgp
KSB7CisgICAgICAgIHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyL2xpYi9saWJXUEVX
ZWJLaXQuc28iOworICAgIH0KIAogICAgIGRpZSAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0sIGNhbid0
IGRldGVybWluZSBidWlsdCBsaWJyYXJ5IGxvY2F0aW9ucy5cblRyeSBgYnVpbGQtd2Via2l0IC0t
aGVscGAgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iOwogfQpAQCAtMTA1Miw3ICsxMDU3LDggQEAg
c3ViIGRldGVybWluZVBvcnROYW1lKCkKICAgICBteSAlYXJnVG9Qb3J0TmFtZSA9ICgKICAgICAg
ICAgZ3RrID0+IEdUSywKICAgICAgICAgJ2pzYy1vbmx5JyA9PiBKU0NPbmx5LAotICAgICAgICB3
aW5jYWlybyA9PiBXaW5DYWlybworICAgICAgICB3aW5jYWlybyA9PiBXaW5DYWlybywKKyAgICAg
ICAgd3BlID0+IFdQRQogICAgICk7CiAKICAgICBmb3IgbXkgJGFyZyAoc29ydCBrZXlzICVhcmdU
b1BvcnROYW1lKSB7CkBAIC0xMDg2LDYgKzEwOTIsNyBAQCBzdWIgZGV0ZXJtaW5lUG9ydE5hbWUo
KQogICAgICAgICAgICAgbXkgJHBvcnRzQ2hvaWNlID0gam9pbiAiXG5cdCIsIHF3KAogICAgICAg
ICAgICAgICAgIC0tZ3RrCiAgICAgICAgICAgICAgICAgLS1qc2Mtb25seQorICAgICAgICAgICAg
ICAgIC0td3BlCiAgICAgICAgICAgICApOwogICAgICAgICAgICAgZGllICJQbGVhc2Ugc3BlY2lm
eSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCB1c2luZyBvbmUgb2YgdGhlIGZvbGxvd2luZyBv
cHRpb25zOiIKICAgICAgICAgICAgICAgICAuICJcblx0JHBvcnRzQ2hvaWNlXG4iOwpAQCAtMTEx
Myw2ICsxMTIwLDExIEBAIHN1YiBpc0pTQ09ubHkoKQogICAgIHJldHVybiBwb3J0TmFtZSgpIGVx
IEpTQ09ubHk7CiB9CiAKK3N1YiBpc1dQRSgpCit7CisgICAgcmV0dXJuIHBvcnROYW1lKCkgZXEg
V1BFOworfQorCiAjIERldGVybWluZSBpZiB0aGlzIGlzIGRlYmlhbiwgdWJ1bnR1LCBsaW5zcGly
ZSwgb3Igc29tZXRoaW5nIHNpbWlsYXIuCiBzdWIgaXNEZWJpYW5CYXNlZCgpCiB7CkBAIC0xNTE2
LDYgKzE1MjgsOCBAQCBzdWIgbGF1bmNoZXJQYXRoKCkKICAgICAgICAgcmV0dXJuICIkcmVsYXRp
dmVTY3JpcHRzUGF0aC9ydW4tbWluaWJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVXZWJL
aXQoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi1zYWZhcmki
OworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVTY3Jp
cHRzUGF0aC9ydW4td3BlIjsKICAgICB9CiB9CiAKQEAgLTE1MjcsNiArMTU0MSw4IEBAIHN1YiBs
YXVuY2hlck5hbWUoKQogICAgICAgICByZXR1cm4gIlNhZmFyaSI7CiAgICAgfSBlbHNpZiAoaXNB
cHBsZVdpbldlYktpdCgpKSB7CiAgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIiOworICAgIH0g
ZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICJXUEVMYXVuY2hlciI7CiAgICAgfQog
fQogCkBAIC0xODI2LDYgKzE4NDIsOCBAQCBzdWIgZ2V0SmhidWlsZFBhdGgoKQogICAgIH0KICAg
ICBpZiAoaXNHdGsoKSkgewogICAgICAgICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRlcGVuZGVuY2ll
c0dUSyIpOworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcHVzaChAamhidWlsZFBh
dGgsICJEZXBlbmRlbmNpZXNXUEUiKTsKICAgICB9IGVsc2UgewogICAgICAgICBkaWUgIkNhbm5v
dCBnZXQgSkhCdWlsZCBwYXRoIGZvciBwbGF0Zm9ybSB0aGF0IGlzbid0IEdUSysuXG4iOwogICAg
IH0KQEAgLTE4NjYsNiArMTg4NCw4IEBAIHN1YiB3cmFwcGVyUHJlZml4SWZOZWVkZWQoKQogICAg
ICAgICBteSBAcHJlZml4ID0gKEZpbGU6OlNwZWMtPmNhdGZpbGUoc291cmNlRGlyKCksICJUb29s
cyIsICJqaGJ1aWxkIiwgImpoYnVpbGQtd3JhcHBlciIpKTsKICAgICAgICAgaWYgKGlzR3RrKCkp
IHsKICAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0tZ3RrIik7CisgICAgICAgIH0gZWxzaWYg
KGlzV1BFKCkpIHsKKyAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0td3BlIik7CiAgICAgICAg
IH0KICAgICAgICAgcHVzaChAcHJlZml4LCAicnVuIik7CiAKQEAgLTIwMjQsNyArMjA0NCw3IEBA
IHN1YiBnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdAogICAgIHB1c2ggQGFyZ3Ms
ICctRFNIT1dfQklORElOR1NfR0VORVJBVElPTl9QUk9HUkVTUz0xJyB1bmxlc3MgKCR3aWxsVXNl
TmluamEgJiYgLXQgU1RET1VUKTsKIAogICAgICMgU29tZSBwb3J0cyBoYXZlIHByb2R1Y3Rpb24g
bW9kZSwgYnV0IGJ1aWxkLXdlYmtpdCBzaG91bGQgYWx3YXlzIHVzZSBkZXZlbG9wZXIgbW9kZS4K
LSAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIgaWYgaXNHdGsoKSB8fCBpc0pT
Q09ubHkoKTsKKyAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIgaWYgaXNHdGso
KSB8fCBpc0pTQ09ubHkoKSB8fCBpc1dQRSgpOwogCiAgICAgIyBEb24ndCB3YXJuIHZhcmlhYmxl
cyB3aGljaCBhcmVuJ3QgdXNlZCBieSBjbWFrZSBwb3J0cy4KICAgICBwdXNoIEBhcmdzLCAiLS1u
by13YXJuLXVudXNlZC1jbGkiOwpAQCAtMjEwMSw2ICsyMTIxLDEwIEBAIHN1YiBidWlsZENNYWtl
UHJvamVjdE9yRXhpdCgkJCRAKQogICAgICAgICBzeXN0ZW0oInBlcmwiLCAiJHNvdXJjZURpci9U
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRndGstbGlicyIpID09IDAgb3IgZGllICQhOwogICAg
IH0KIAorICAgIGlmIChpc1dQRSgpICYmIGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJH
VigiLS11cGRhdGUtd3BlIikpIHsKKyAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRzb3VyY2VEaXIv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMiKSA9PSAwIG9yIGRpZSAkITsKKyAg
ICB9CisKICAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJhdGVCdWlsZFN5c3RlbUZy
b21DTWFrZVByb2plY3QoJHByZWZpeFBhdGgsIEBjbWFrZUFyZ3MpKTsKICAgICBleGl0KCRyZXR1
cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVM
aXN0LnBtCmluZGV4IDJjM2FlMTFhNzMwLi4yMTRlNTYxZGRkOSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgcHJvaGliaXRVbmtu
b3duUG9ydCgpOwogCiBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gIjNkLXJlbmRl
cmluZyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBSZW5kZXJpbmcgc3VwcG9ydCIsCi0gICAgICBkZWZp
bmUgPT4gIkVOQUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR0aHJlZURUcmFu
c2Zvcm1zU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfM0RfVFJBTlNGT1JNUyIs
IGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkgfHwgaXNH
dGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR0aHJlZURUcmFuc2Zvcm1zU3VwcG9ydCB9LAog
CiAgICAgeyBvcHRpb24gPT4gImFjY2VsZXJhdGVkLTJkLWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2ds
ZSBBY2NlbGVyYXRlZCAyRCBDYW52YXMgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkYWNjZWxl
cmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUyIsIGRlZmF1bHQgPT4gaXNXUEUoKSwgdmFsdWUgPT4gXCRhY2NlbGVyYXRl
ZDJEQ2FudmFzU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFsbGlub25lLWJ1aWxkIiwg
ZGVzYyA9PiAiVG9nZ2xlIGFsbC1pbi1vbmUgYnVpbGQiLAogICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfQUxMSU5PTkVfQlVJTEQiLCBkZWZhdWx0ID0+IGlzV2luZG93cygpLCB2YWx1ZSA9PiBcJGFs
bEluT25lQnVpbGQgfSwKQEAgLTE4Myw3ICsxODMsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiIsIGRlZmF1bHQgPT4gaXNH
dGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFnZVJlc29sdXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9w
dGlvbiA9PiAiY3NzLWltYWdlLXNldCIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgaW1hZ2Utc2V0IHN1
cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1NFVCIsIGRlZmF1bHQg
PT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFnZVNldFN1cHBvcnQgfSwKKyAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX0NTU19JTUFHRV9TRVQiLCBkZWZhdWx0ID0+IChpc0d0aygpIHx8IGlzV1BF
KCkpLCB2YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
ImNzcy1yZWdpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBSZWdpb25zIHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX1JFR0lPTlMiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+
IFwkY3NzUmVnaW9uc1N1cHBvcnQgfSwKQEAgLTIwNyw3ICsyMDcsNyBAQCBteSBAZmVhdHVyZXMg
PSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIiwgZGVmYXVsdCA9
PiAwLCB2YWx1ZSA9PiBcJGRhdGFsaXN0RWxlbWVudFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNjID0+ICJUb2dnbGUgRGV2aWNlIE9yaWVudGF0
aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
IiwgZGVmYXVsdCA9PiBpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJGRldmljZU9yaWVudGF0aW9u
U3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIiwg
ZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRkZXZpY2VP
cmllbnRhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJkb200LWV2ZW50cy1jb25z
dHJ1Y3RvciIsIGRlc2MgPT4gIkV4cG9zZSBET000IEV2ZW50cyBjb25zdHJ1Y3RvcnMiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IiLCBkZWZhdWx0ID0+
IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkZG9tNEV2ZW50c0NvbnN0
cnVjdG9yIH0sCkBAIC0yMjUsNyArMjI1LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4g
XCRmb250TG9hZEV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJmdGwtaml0Iiwg
ZGVzYyA9PiAiVG9nZ2xlIEZUTEpJVCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlzSlNDT25s
eSgpKSkgLCB2YWx1ZSA9PiBcJGZ0bEpJVFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlzSlND
T25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3VwcG9ydCB9LAogCiAgICAg
eyBvcHRpb24gPT4gImZ0cGRpciIsIGRlc2MgPT4gIlRvZ2dsZSBGVFAgRGlyZWN0b3J5IHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRQRElSIiwgZGVmYXVsdCA9PiAxLCB2YWx1
ZSA9PiBcJGZ0cERpclN1cHBvcnQgfSwKQEAgLTIzNyw3ICsyMzcsNyBAQCBteSBAZmVhdHVyZXMg
PSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9PiAwLCB2YWx1
ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZ2VvbG9jYXRpb24i
LCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0lP
U1dlYktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGdlb2xvY2F0aW9uU3VwcG9ydCB9LAor
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfR0VPTE9DQVRJT04iLCBkZWZhdWx0ID0+IChpc0FwcGxl
V2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9
PiBcJGdlb2xvY2F0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImhpZ2gtZHBpLWNh
bnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSBIaWdoIERQSSBDYW52YXMgc3VwcG9ydCIsCiAgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9ISUdIX0RQSV9DQU5WQVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlV2Vi
S2l0KCkpLCB2YWx1ZSA9PiBcJGhpZ2hEUElDYW52YXNTdXBwb3J0IH0sCkBAIC0yNDYsNyArMjQ2
LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSUNPTkRBVEFC
QVNFIiwgZGVmYXVsdCA9PiAhaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRpY29uZGF0YWJhc2VT
dXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5kZXhlZC1kYXRhYmFzZSIsIGRlc2MgPT4g
IlRvZ2dsZSBJbmRleGVkIERhdGFiYXNlIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8
IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29j
b2FXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRh
YmFzZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJpbnB1dC1zcGVlY2giLCBkZXNjID0+
ICJUb2dnbGUgSW5wdXQgU3BlZWNoIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
SU5QVVRfU1BFRUNIIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGlucHV0U3BlZWNoU3VwcG9y
dCB9LApAQCAtMzEyLDcgKzMxMiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX01FVEVSX0VMRU1FTlQiLCBkZWZhdWx0ID0+ICFpc0FwcGxlV2luV2ViS2l0KCks
IHZhbHVlID0+IFwkbWV0ZXJFbGVtZW50U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm1o
dG1sIiwgZGVzYyA9PiAiVG9nZ2xlIE1IVE1MIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfTUhUTUwiLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkbWh0bWxTdXBwb3J0
IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4gKGlzR3RrKCkg
fHwgaXNXUEUoKSksIHZhbHVlID0+IFwkbWh0bWxTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9
PiAibW91c2UtY3Vyc29yLXNjYWxlIiwgZGVzYyA9PiAiVG9nZ2xlIFNjYWxlZCBtb3VzZSBjdXJz
b3Igc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUi
LCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbW91c2VDdXJzb3JTY2FsZVN1cHBvcnQgfSwKQEAg
LTMyNCw3ICszMjQsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRoYXJk
d2FyZUNvbmN1cnJlbmN5U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm5ldHNjYXBlLXBs
dWdpbi1hcGkiLCBkZXNjID0+ICJUb2dnbGUgTmV0c2NhcGUgUGx1Z2luIEFQSSBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0ID0+
ICFpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3VwcG9ydCB9LAor
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1bHQgPT4g
KCFpc0lPU1dlYktpdCgpICYmICFpc1dQRSgpKSwgdmFsdWUgPT4gXCRuZXRzY2FwZVBsdWdpbkFQ
SVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJub3NuaWZmIiwgZGVzYyA9PiAiVG9nZ2xl
IHN1cHBvcnQgZm9yICdYLUNvbnRlbnQtVHlwZS1PcHRpb25zOiBub3NuaWZmJyIsCiAgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9OT1NOSUZGIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0
KCkgfHwgaXNBcHBsZVdpbldlYktpdCgpKSwgdmFsdWUgPT4gXCRub3NuaWZmU3VwcG9ydCB9LApA
QCAtMzM2LDcgKzMzNiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQoKSwgdmFsdWUg
PT4gXCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwZXJm
b3JtYW5jZS10aW1lbGluZSIsIGRlc2MgPT4gIlRvZ2dsZSBQZXJmb3JtYW5jZSBUaW1lbGluZSBz
dXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BFUkZPUk1BTkNFX1RJTUVMSU5FIiwg
ZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxpbmVTdXBwb3J0
IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSIsIGRlZmF1
bHQgPT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkcGVyZm9ybWFuY2VUaW1lbGlu
ZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwcm94aW1pdHktZXZlbnRzIiwgZGVzYyA9
PiAiVG9nZ2xlIFByb3hpbWl0eSBFdmVudHMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9QUk9YSU1JVFlfRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHByb3hpbWl0
eUV2ZW50c1N1cHBvcnQgfSwKQEAgLTM2Niw3ICszNjYsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAg
ICAgICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFMTE9DIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9
PiBcJHN5c3RlbU1hbGxvY1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ0b3VjaC1ldmVu
dHMiLCBkZXNjID0+ICJUb2dnbGUgVG91Y2ggRXZlbnRzIHN1cHBvcnQiLAotICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBp
c0d0aygpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNH
dGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJ0b3VjaC1pY29uLWxvYWRpbmciLCBkZXNjID0+ICJUb2dnbGUgVG91Y2gg
SWNvbiBMb2FkaW5nIFN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfSUNP
Tl9MT0FESU5HIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHRvdWNoSWNvbkxvYWRpbmdTdXBw
b3J0IH0sCkBAIC0zNzgsMTYgKzM3OCwxNiBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9WSUJSQVRJT04iLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkdmlicmF0
aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInZpZGVvIiwgZGVzYyA9PiAiVG9nZ2xl
IFZpZGVvIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU8iLCBkZWZhdWx0
ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0
IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVX
ZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gInZpZGVvLXRyYWNrIiwgZGVzYyA9PiAiVG9nZ2xlIFZpZGVv
IFRyYWNrIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBk
ZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkdmlkZW9U
cmFja1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJREVPX1RSQUNLIiwgZGVm
YXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+
IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWItYW5pbWF0aW9u
cyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQW5pbWF0aW9ucyBzdXBwb3J0IiwKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX1dFQl9BTklNQVRJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHdl
YkFuaW1hdGlvbnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViLWF1ZGlvIiwgZGVz
YyA9PiAiVG9nZ2xlIFdlYiBBdWRpbyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCR3ZWJBdWRpb1N1cHBv
cnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gKGlz
R3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAid2ViLXJlcGxheSIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgUmVwbGF5IHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1JFUExBWSIsIGRlZmF1bHQgPT4gaXNB
cHBsZUNvY29hV2ViS2l0KCksIHZhbHVlID0+IFwkd2ViUmVwbGF5U3VwcG9ydCB9LApAQCAtNDAy
LDEwICs0MDIsMTAgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
V0VCX1RJTUlORyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3ZWJUaW1pbmdTdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAid2ViYXNzZW1ibHkiLCBkZXNjID0+ICJUb2dnbGUgV2ViQXNz
ZW1ibHkgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIsIGRl
ZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVl
ID0+IFwkd2ViQXNzZW1ibHlTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJB
U1NFTUJMWSIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5
KCkgfHwgaXNXUEUoKSkpICwgdmFsdWUgPT4gXCR3ZWJBc3NlbWJseVN1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJ3ZWJnbCIsIGRlc2MgPT4gIlRvZ2dsZSBXZWJHTCBzdXBwb3J0IiwKLSAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCisgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9XRUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8
IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAid3JpdGFibGVTdHJlYW1BUEkiLCBkZXNjID0+ICJUb2dnbGUgV3JpdGFibGVT
dHJlYW0gQVBJIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV1JJVEFCTEVfU1RS
RUFNX0FQSSIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3cml0YWJsZVN0cmVhbUFQSVN1cHBv
cnQgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDdjNmRkYzgzOWYzLi41NzJlOGE1ZTc3ZCAxMDA3NTUK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzLnB5CkBAIC00MjQsNyArNDI0LDcgQEAgZGVmIF9zZXRfdXBfZGVyaXZlZF9vcHRpb25z
KHBvcnQsIG9wdGlvbnMpOgogICAgICAgICBvcHRpb25zLnZlcmJvc2UgPSBUcnVlCiAKICAgICAj
IFRoZSBHVEsrIGFuZCBFRkwgcG9ydHMgb25seSBzdXBwb3J0IFdlYktpdDIgc28gdGhleSBhbHdh
eXMgdXNlIFdLVFIuCi0gICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSA9PSAiZ3RrIiBvciBvcHRpb25z
LnBsYXRmb3JtID09ICJlZmwiOgorICAgIGlmIG9wdGlvbnMucGxhdGZvcm0gaW4gWyJlZmwiLCAi
Z3RrIiwgIndwZSJdOgogICAgICAgICBvcHRpb25zLndlYmtpdF90ZXN0X3J1bm5lciA9IFRydWUK
IAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CmluZGV4IDc1ZGVlYzU3Y2Ji
Li5iZTA5N2ZmZWYxZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Zh
Y3RvcnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkKQEAg
LTUzLDYgKzUzLDkgQEAgZGVmIHBsYXRmb3JtX29wdGlvbnModXNlX2dsb2JzPUZhbHNlKToKICAg
ICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZ3RrJywgYWN0aW9uPSdzdG9yZV9jb25zdCcs
IGRlc3Q9J3BsYXRmb3JtJywKICAgICAgICAgICAgIGNvbnN0PSgnZ3RrKicgaWYgdXNlX2dsb2Jz
IGVsc2UgJ2d0aycpLAogICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWd0
ayonIGlmIHVzZV9nbG9icyBlbHNlICdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1ndGsnKSksCisgICAg
ICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLXdwZScsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBk
ZXN0PSdwbGF0Zm9ybScsCisgICAgICAgICAgICBjb25zdD0oJ3dwZSonIGlmIHVzZV9nbG9icyBl
bHNlICd3cGUnKSwKKyAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT13cGUn
KSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLW5vLWluc3RhbGwnLCBhY3Rpb249
J3N0b3JlX2NvbnN0JywKICAgICAgICAgICAgIGNvbnN0PUZhbHNlLCBkZWZhdWx0PVRydWUsIGRl
c3Q9J2luc3RhbGwnLAogICAgICAgICAgICAgaGVscD0nU2tpcCBpbnN0YWxsIHN0ZXAgZm9yIGRl
dmljZSBhbmQgc2ltdWxhdG9yIHRlc3RpbmcnKSwKQEAgLTkzLDYgKzk2LDcgQEAgY2xhc3MgUG9y
dEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAgJ3Rlc3QuVGVzdFBvcnQnLAogICAgICAgICAnd2lu
LldpbkNhaXJvUG9ydCcsCiAgICAgICAgICd3aW4uV2luUG9ydCcsCisgICAgICAgICd3cGUuV1BF
UG9ydCcsCiAgICAgKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC93cGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmIzY2QwODY1YTRlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L3dwZS5weQpAQCAtMCwwICsxLDc5IEBACisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgR29vZ2xl
IG5hbWUgbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
Lm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCitmcm9t
IHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0LmxpbnV4
X2dldF9jcmFzaF9sb2cgaW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCisKKworY2xhc3MgV1BF
UG9ydChQb3J0KToKKyAgICBwb3J0X25hbWUgPSAid3BlIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFdQRVBvcnQsIHNlbGYpLl9faW5p
dF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBpZiBzZWxmLl9zaG91bGRfdXNlX2poYnVp
bGQoKToKKyAgICAgICAgICAgIHNlbGYuX2poYnVpbGRfd3JhcHBlciA9IFtzZWxmLnBhdGhfZnJv
bV93ZWJraXRfYmFzZSgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdyYXBwZXInKSwgJy0t
d3BlJywgJ3J1biddCisgICAgICAgICAgICBzZWxmLnNldF9vcHRpb25fZGVmYXVsdCgnd3JhcHBl
cicsICcgJy5qb2luKHNlbGYuX2poYnVpbGRfd3JhcHBlcikpCisKKyAgICBkZWYgZGVmYXVsdF90
aW1lb3V0X21zKHNlbGYpOgorICAgICAgICByZXR1cm4gNjAwMAorCisgICAgZGVmIF9idWlsdF9l
eGVjdXRhYmxlc19wYXRoKHNlbGYsICpwYXRoKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxk
X3BhdGgoKigoJ2JpbicsKSArIHBhdGgpKQorCisgICAgZGVmIF9idWlsdF9saWJyYXJpZXNfcGF0
aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCooKCdsaWIn
LCkgKyBwYXRoKSkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3JpcHRzKHNlbGYpOgorICAg
ICAgICByZXR1cm4gIi0td3BlIgorCisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihz
ZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52aXJvbm1lbnQgPSBzdXBlcihXUEVQ
b3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUpCisgICAgICAg
IGVudmlyb25tZW50WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScKKyAgICAgICAgZW52
aXJvbm1lbnRbJ1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSddID0gc2VsZi5f
YnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5zbycpCisgICAg
ICAgIGVudmlyb25tZW50WydURVNUX1JVTk5FUl9URVNUX1BMVUdJTl9QQVRIJ10gPSBzZWxmLl9i
dWlsZF9wYXRoKCdsaWInLCAncGx1Z2lucycpCisgICAgICAgIGVudmlyb25tZW50WydXRUJLSVRf
RVhFQ19QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdiaW4nKQorICAgICAgICByZXR1cm4gZW52
aXJvbm1lbnQKKworICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMoc2Vs
Zik6CisgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KKyAgICAgICAgZm9yIGJ1aWxkX3R5cGUg
aW4gc2VsZi5BTExfQlVJTERfVFlQRVM6CisgICAgICAgICAgICBjb25maWd1cmF0aW9ucy5hcHBl
bmQoVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBhcmNoaXRlY3R1cmU9
J3g4NicsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkpCisgICAgICAgIHJldHVybiBjb25maWd1cmF0
aW9ucworCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoc2VsZi5kcml2ZXJfbmFtZSgpKQorCisgICAgZGVm
IF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsdF9l
eGVjdXRhYmxlc19wYXRoKCdJbWFnZURpZmYnKQorCisgICAgZGVmIF9nZXRfY3Jhc2hfbG9nKHNl
bGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgorICAgICAgICBuYW1l
ID0gIldQRVdlYlByb2Nlc3MiIGlmIG5hbWUgPT0gIldlYlByb2Nlc3MiIGVsc2UgbmFtZQorICAg
ICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdlcl90aGFuLCBz
ZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hfbG9n
KHN0ZG91dCwgc3RkZXJyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9y
bVdQRS5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI5Nzg0NzU1ZjM2Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsx
LDYwIEBACitzZXQoVEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgIiR7Q01B
S0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9UZXN0V2ViS2l0QVBJIikKK3NldChURVNUV0VC
S0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWV9XVEYgIiR7VEVTVFdFQktJVEFQSV9SVU5U
SU1FX09VVFBVVF9ESVJFQ1RPUll9L1dURiIpCisKKyMgVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVz
ZSBpdCBpcyBwb3NzaWJsZSB0byBidWlsZCBUZXN0V2ViS2l0QVBJIHdpdGggV2ViS2l0MgorIyBk
aXNhYmxlZCBhbmQgdGhpcyB0cmlnZ2VycyB0aGUgaW5jbHVzaW9uIG9mIHRoZSBXZWJLaXQyIGhl
YWRlcnMuCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XRUJLSVQyX18pCisKK2FkZF9jdXN0
b21fdGFyZ2V0KFRlc3RXZWJLaXRBUEktZm9yd2FyZGluZy1oZWFkZXJzCisgICAgQ09NTUFORCAk
e1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJk
aW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtURVNUV0VCS0lUQVBJX0RJUn0gLS1vdXRw
dXQgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSAtLXBsYXRmb3JtIHdwZSAtLXBsYXRmb3JtIHNv
dXAKKyAgICBERVBFTkRTIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCispCisKK3NldChG
b3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRSBUZXN0V2ViS2l0QVBJLWZvcndh
cmRpbmctaGVhZGVycykKKworaW5jbHVkZV9kaXJlY3RvcmllcygKKyAgICAke0ZPUldBUkRJTkdf
SEVBREVSU19ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS9KYXZhU2NyaXB0Q29y
ZQorKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTQorICAgICR7R0xJQl9JTkNMVURFX0RJ
UlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKykKKworc2V0KHRlc3RfbWFpbl9TT1VS
Q0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL21haW4uY3BwCispCisKK3NldChidW5k
bGVfaGFybmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL0luamVjdGVk
QnVuZGxlQ29udHJvbGxlcldQRS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS93cGUvUGxh
dGZvcm1VdGlsaXRpZXNXUEUuY3BwCispCisKKyMgVGVzdFdURgorCitsaXN0KEFQUEVORCBUZXN0
V1RGX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9HVW5p
cXVlUHRyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9nbGliL1dvcmtR
dWV1ZUdMaWIuY3BwCispCisKKyMgVGVzdFdlYkNvcmUKKworYWRkX2V4ZWN1dGFibGUoVGVzdFdl
YkNvcmUKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzQ29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJD
b3JlL0hUTUxQYXJzZXJJZGlvbXMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMv
V2ViQ29yZS9MYXlvdXRVbml0LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvVVJMLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyVGVzdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3Jl
L0ZpbGVTeXN0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9Q
dWJsaWNTdWZmaXguY3BwCispCisKK3RhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0V2ViQ29yZSAk
e3Rlc3Rfd2ViY29yZV9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhUZXN0V2ViQ29yZSAk
e0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKworYWRkX3Rlc3QoVGVz
dFdlYkNvcmUgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vV2ViQ29y
ZS9UZXN0V2ViQ29yZSkKK3NldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RXZWJDb3JlIFBST1BFUlRJ
RVMgVElNRU9VVCA2MCkKK3NldF90YXJnZXRfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9QRVJU
SUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQ
VVRfRElSRUNUT1JZfS9XZWJDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93
cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmZkMjEyMWJkN2EyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUNvbnRyb2xs
ZXIuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2b2lkIEluamVjdGVkQnVuZGxl
Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZv
cm1VdGlsaXRpZXNXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1VdGls
aXRpZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMjFj
MWVhYTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRm
b3JtVXRpbGl0aWVzV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworbmFtZXNwYWNlIFV0aWwgeworCit2b2lkIHNsZWVwKGRvdWJsZSBzZWNvbmRzKQor
eworICAgIGdfdXNsZWVwKHNlY29uZHMgKiAxMDAwMDAwKTsKK30KKworc3RhdGljIGNoYXIqIGdl
dEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoY29uc3QgY2hhciogdmFyaWFi
bGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYodmFyaWFibGVOYW1l
KTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIGdfcHJpbnRlcnIoIiVzIGVudmlyb25tZW50
IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAgICAgZXhpdCgxKTsK
KyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBnX2ZpbGVuYW1lX3Rv
X3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKworV0tTdHJpbmdSZWYg
Y3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGluamVj
dGVkQnVuZGxlUGF0aChnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KCJU
RVNUX1dFQktJVF9BUElfV0VCS0lUMl9JTkpFQ1RFRF9CVU5ETEVfUEFUSCIpKTsKKyAgICBHVW5p
cXVlUHRyPGNoYXI+IGluamVjdGVkQnVuZGxlRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShpbmpl
Y3RlZEJ1bmRsZVBhdGguZ2V0KCksICJsaWJUZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGUuc28i
LCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGlu
amVjdGVkQnVuZGxlRmlsZW5hbWUuZ2V0KCkpOworfQorCitXS1VSTFJlZiBjcmVhdGVVUkxGb3JS
ZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSwgY29uc3QgY2hhciogZXh0ZW5zaW9uKQorewor
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGVzdFJlc291cmNlc1BhdGgoZ2V0RmlsZW5hbWVGcm9tRW52
aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfUkVTT1VSQ0VT
X1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUJhc2VuYW1lKGdfc3RyZHVw
X3ByaW50ZigiJXMuJXMiLCByZXNvdXJjZSwgZXh0ZW5zaW9uKSk7CisgICAgR1VuaXF1ZVB0cjxj
aGFyPiByZXNvdXJjZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUodGVzdFJlc291cmNlc1BhdGgu
Z2V0KCksIHJlc291cmNlQmFzZW5hbWUuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBHUmVmUHRyPEdG
aWxlPiByZXNvdXJjZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChyZXNvdXJj
ZUZpbGVuYW1lLmdldCgpKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZVVSSShnX2Zp
bGVfZ2V0X3VyaShyZXNvdXJjZUZpbGUuZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tVUkxDcmVhdGVX
aXRoVVRGOENTdHJpbmcocmVzb3VyY2VVUkkuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBV
dGlsCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL3dwZS9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjU2OGI2YzMyZAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3BwCkBAIC0wLDAg
KzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RzQ29udHJvbGxlci5oIgorCitp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIFRlc3RXZWJLaXRB
UEk6OlRlc3RzQ29udHJvbGxlcjo6c2luZ2xldG9uKCkucnVuKGFyZ2MsIGFyZ3YpID8gRVhJVF9T
VUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNw
cAppbmRleCA1ZjM5NWJlNzM1ZS4uZDA3OTA0YjMzZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQogICAgIHJldHVybiBXS0FjY2Vzc2li
aWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CiB9CiAKLSNpZiAhUExBVEZPUk0o
R1RLKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiBSZWY8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKIHsK
ICAgICBXS0J1bmRsZVBhZ2VSZWYgcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5w
YWdlKCktPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCBlY2RmNWEw
ZjcyZi4uZDVhZWViYmNjZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTcz
LDcgKzczLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0
cjxOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7Ci0jZWxz
ZQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCiAgICAgUmVmUHRyPEFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7
CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCAwMjY0MGJl
NzYxOC4uMjU4MTRlNGVlOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApAQCAt
NzgsNyArNzgsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dEFyZWEoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgCiAvLyBVbnN1cHBvcnRlZCBtZXRo
b2RzIG9uIHZhcmlvdXMgcGxhdGZvcm1zLiBBcyB0aGV5J3JlIGltcGxlbWVudGVkIG9uIG90aGVy
IHBsYXRmb3JtcyB0aGlzIGxpc3Qgc2hvdWxkIGJlIG1vZGlmaWVkLgotI2lmICFQTEFURk9STShH
VEspIHx8ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaWYgKCFQTEFURk9STShHVEspICYmICFQTEFU
Rk9STShXUEUpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQogSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkgeyByZXR1
cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lQXRPZmZzZXQoaW50KSB7
IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IGQxMGVl
OGJiZDFhLi40MzVkZDdkYjhhYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTMx
Nyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VUlFbGVtZW50c1dpdGhBdHRyaWJ1
dGUoSlNTdHJpbmdSZWYsIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYp
IGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQor
I2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAg
ICB2b2lkIGdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
PiYpOwogICAgIHZvaWQgZ2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiA+JiwgdW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwCmluZGV4IGM3MWY0Y2Y2NzYwLi43NjhmNGQxNDYxMyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CkBAIC05OCw3ICs5OCw3IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgICwgbV9kYXRh
YmFzZU1heFF1b3RhKC0xKQogICAgICwgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQoZmFsc2UpCiAg
ICAgLCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24oYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiIikpKQotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkKICAgICAsIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoUnVuTG9vcDo6
bWFpbigpLCB0aGlzLCAmVGVzdFJ1bm5lcjo6d2FpdFRvRHVtcFdhdGNoZG9nVGltZXJGaXJlZCkK
ICNlbmRpZgogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAppbmRleCBkNjM5MmU5OWNmZi4uNzA1MTI5ZDliYjIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0z
OCw3ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPENvcmVG
b3VuZGF0aW9uL0NGUnVuTG9vcC5oPgogdHlwZWRlZiBSZXRhaW5QdHI8Q0ZSdW5Mb29wVGltZXJS
ZWY+IFBsYXRmb3JtVGltZXJSZWY7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogbmFtZXNw
YWNlIFdUUiB7CiBjbGFzcyBUZXN0UnVubmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXUEUuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5lOTRjMmFhYjcwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcApAQCAtMCww
ICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisK
KyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYg
aWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9y
bU5hbWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
cm9vdEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsKK30KKworUmVmPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Y3JlYXRlKG51bGxwdHIpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjph
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCisjZW5kaWYgLy8g
SEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDY0OTE1MGE1
NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcApAQCAtMCwwICsxLDk1OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKworQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChQbGF0Zm9ybVVJRWxlbWVudCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Pj4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Pj4mLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuQ291bnQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVtZW50QXRQ
b2ludChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleE9mQ2hpbGQo
QWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4KHVu
c2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgodW5z
aWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVuc2ln
bmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
b3dBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit1bnNpZ25lZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0SW5k
ZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2VkVUlFbGVt
ZW50cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJp
YnV0ZXNPZkRvY3VtZW50TGlua3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1Jl
ZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitk
b3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUoSlNTdHJp
bmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAu
MDsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBcnJh
eUF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVlUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpTU3Ry
aW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xBdHRy
aWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYW1ldGVyaXplZEF0dHJp
YnV0ZU5hbWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cm9sZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1YnJv
bGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlRGVz
Y3JpcHRpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
b21wdXRlZFJvbGVTdHJpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0aXRsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmRlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aGVscFRleHQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp4KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2Rv
dWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3
aWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCitk
b3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpjbGlja1BvaW50WCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2ludFkoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjptaW5WYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4w
OworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24oKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNJbmNyZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRGVj
cmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzRm9jdXNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxl
Y3RlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZE9wdGlvbkFjdGl2
ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNvbnN0Cit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0luZGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGllcmFyY2hp
Y2FsTGV2ZWwoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
cGVhaygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEcm9wRWZmZWN0cygp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRleChpbnQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9zaXRpb24oaW50
LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvdW5k
c0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5n
Rm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0
cmlidXRlZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWduZWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVkaWNhdGUoSlND
b250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJlZiwgSlNT
dHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwgYm9vbCwg
Ym9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0
VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmLCBK
U1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJzKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29s
dW1ucygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJp
YnV0ZXNPZlJvd3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphdHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpyb3dDb3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aW5kZXhJblRhYmxlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cm93SW5kZXhSYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnbmVkLCB1bnNp
Z25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UodW5zaWduZWQsIHVu
c2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZWNyZW1lbnQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2hvd01lbnUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5k
ZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2ln
bmVkIGluZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xlYXJTZWxlY3RlZENoaWxkcmVuKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZygpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50VVJJKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTVmFsdWVSZWYgZnVuY3Rp
b25DYWxsYmFjaykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0
ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmlz
aWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4oKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0lnbm9yZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2luZ2xl
TGluZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aUxpbmUoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0YWtlRm9jdXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRTZWxlY3Rpb24oKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cmVtb3ZlU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitSZWZQ
dHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
bGluZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIq
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpwcmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFRleHRNYXJr
ZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXIqLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JUZXh0TWFy
a2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yVGV4dE1h
cmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvckJvdW5k
cyhpbnQsIGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBpbnQsIGludCwg
aW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
dGV4dE1hcmtlckZvclBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRleHRNYXJrZXIo
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVm
LCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlu
ZGV4Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc1RleHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvcklu
ZGV4KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnN0YXJ0VGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkVmlzaWJsZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9s
bFRvR2xvYmFsUG9pbnQoaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlV2l0aFN1YkZv
Y3VzKGludCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3VwcG9ydGVk
QWN0aW9ucygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnBhdGhEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNjcmlwdHNEZXNj
cmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNsYXNzTGlzdCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBu
YW1lc3BhY2UgIFdURgorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250
c1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY3Rp
dmF0ZUZvbnRzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YzNjZjcyMWIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApAQCAtMCwwICsxLDE0NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCisjaW5jbHVkZSA8Zm9u
dGNvbmZpZy9mb250Y29uZmlnLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdUUiB7CisK
K0NTdHJpbmcgdG9wTGV2ZWxQYXRoKCkKK3sKKyAgICBpZiAoY29uc3QgY2hhciogdG9wTGV2ZWxE
aXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX1RPUF9MRVZFTCIpKQorICAgICAgICByZXR1cm4g
dG9wTGV2ZWxEaXJlY3Rvcnk7CisKKyAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUg
d2Fzbid0IHByb3ZpZGVkIHRoZW4gYXNzdW1lIHdlIHdlcmUgYnVpbHQgaW50bworICAgIC8vIFdl
YktpdEJ1aWxkL0RlYnVnIG9yIFdlYktpdEJ1aWxkL1JlbGVhc2UuIE9idmlvdXNseSB0aGlzIHdp
bGwgZmFpbCBpZiB0aGUgYnVpbGQKKyAgICAvLyBkaXJlY3RvcnkgaXMgbm9uLXN0YW5kYXJkLCBi
dXQgd2UgY2FuJ3QgZG8gbXVjaCBtb3JlIGFib3V0IHRoaXMuCisgICAgR1VuaXF1ZVB0cjxjaGFy
PiBwYXJlbnRQYXRoKGdfcGF0aF9nZXRfZGlybmFtZShnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgo
KS5kYXRhKCkpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGxheW91dFRlc3RzUGF0aChnX2J1aWxk
X2ZpbGVuYW1lKHBhcmVudFBhdGguZ2V0KCksICIuLiIsICIuLiIsICIuLiIsIG51bGxwdHIpKTsK
KyAgICBHVW5pcXVlUHRyPGNoYXI+IGFic29sdXRlVG9wTGV2ZWxQYXRoKHJlYWxwYXRoKGxheW91
dFRlc3RzUGF0aC5nZXQoKSwgMCkpOworICAgIHJldHVybiBhYnNvbHV0ZVRvcExldmVsUGF0aC5n
ZXQoKTsKK30KKworQ1N0cmluZyBnZXRPdXRwdXREaXIoKQoreworICAgIGNvbnN0IGNoYXIqIHdl
YmtpdE91dHB1dERpciA9IGdfZ2V0ZW52KCJXRUJLSVRfT1VUUFVURElSIik7CisgICAgaWYgKHdl
YmtpdE91dHB1dERpcikKKyAgICAgICAgcmV0dXJuIHdlYmtpdE91dHB1dERpcjsKKworICAgIEdV
bmlxdWVQdHI8Y2hhcj4gb3V0cHV0RGlyKGdfYnVpbGRfZmlsZW5hbWUodG9wTGV2ZWxQYXRoKCku
ZGF0YSgpLCAiV2ViS2l0QnVpbGQiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIG91dHB1dERpci5n
ZXQoKTsKK30KKworc3RhdGljIENTdHJpbmcgZ2V0Rm9udHNQYXRoKCkKK3sKKyAgICBDU3RyaW5n
IHdlYmtpdE91dHB1dERpciA9IGdldE91dHB1dERpcigpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4g
Zm9udHNQYXRoKGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwgIkRlcGVu
ZGVuY2llc1dQRSIsICJSb290IiwgIndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgbnVsbHB0cikpOwor
ICAgIGlmIChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0PEdGaWxlVGVz
dD4oR19GSUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfRElSKSkpCisgICAgICAgIHJl
dHVybiBmb250c1BhdGguZ2V0KCk7CisKKyAgICAvLyBUcnkgYWx0ZXJuYXRpdmUgZm9udHMgcGF0
aC4KKyAgICBmb250c1BhdGgucmVzZXQoZ19idWlsZF9maWxlbmFtZSh3ZWJraXRPdXRwdXREaXIu
ZGF0YSgpLCAid2Via2l0Z3RrLXRlc3QtZm9udHMiLCBOVUxMKSk7CisgICAgaWYgKGdfZmlsZV90
ZXN0KGZvbnRzUGF0aC5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVTVF9F
WElTVFMgfCBHX0ZJTEVfVEVTVF9JU19ESVIpKSkKKyAgICAgICAgcmV0dXJuIGZvbnRzUGF0aC5n
ZXQoKTsKKworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisKK3ZvaWQgYWN0aXZhdGVGb250cygp
Cit7CisgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVRfU0tJUF9XRUJLSVRURVNUUlVOTkVSX0ZPTlRD
T05GSUdfSU5JVElBTElaQVRJT04iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmNJbml0KCk7
CisKKyAgICAvLyBJZiBhIHRlc3QgcmVzdWx0ZWQgYSBmb250IGJlaW5nIGFkZGVkIG9yIHJlbW92
ZWQgdmlhIHRoZSBAZm9udC1mYWNlIHJ1bGUsIHRoZW4KKyAgICAvLyB3ZSB3YW50IHRvIHJlc2V0
IHRoZSBGb250Q29uZmlnIGNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBpdCBmcm9tIGFmZmVjdGlu
ZyBvdGhlciB0ZXN0cy4KKyAgICBzdGF0aWMgaW50IG51bUZvbnRzID0gMDsKKyAgICBGY0ZvbnRT
ZXQqIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGljYXRpb24pOwor
ICAgIGlmIChhcHBGb250U2V0ICYmIG51bUZvbnRzICYmIGFwcEZvbnRTZXQtPm5mb250ID09IG51
bUZvbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBMb2FkIG91ciBjb25maWd1cmF0aW9u
IGZpbGUsIHdoaWNoIHNldHMgdXAgcHJvcGVyIGFsaWFzZXMgZm9yIGZhbWlseQorICAgIC8vIG5h
bWVzIGxpa2Ugc2Fucywgc2VyaWYgYW5kIG1vbm9zcGFjZS4KKyAgICBGY0NvbmZpZyogY29uZmln
ID0gRmNDb25maWdDcmVhdGUoKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250Q29uZmlnRmls
ZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgImZvbnRzLmNvbmYiLCBudWxs
cHRyKSk7CisgICAgaWYgKCFnX2ZpbGVfdGVzdChmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCksIEdf
RklMRV9URVNUX0lTX1JFR1VMQVIpKQorICAgICAgICBnX2Vycm9yKCJDYW5ub3QgZmluZCBmb250
cy5jb25mIGF0ICVzXG4iLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworICAgIGlmICghRmND
b25maWdQYXJzZUFuZExvYWQoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgqPihmb250
Q29uZmlnRmlsZW5hbWUuZ2V0KCkpLCB0cnVlKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGRuJ3Qg
bG9hZCBmb250IGNvbmZpZ3VyYXRpb24gZmlsZSBmcm9tOiAlcyIsIGZvbnRDb25maWdGaWxlbmFt
ZS5nZXQoKSk7CisKKyAgICBDU3RyaW5nIGZvbnRzUGF0aCA9IGdldEZvbnRzUGF0aCgpOworICAg
IGlmIChmb250c1BhdGguaXNOdWxsKCkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2Nh
dGUgdGVzdCBmb250cyBhdCAlcy4gSXMgV0VCS0lUX1RPUF9MRVZFTCBzZXQ/IiwgZm9udHNQYXRo
LmRhdGEoKSk7CisKKyAgICBHVW5pcXVlUHRyPEdEaXI+IGZvbnRzRGlyZWN0b3J5KGdfZGlyX29w
ZW4oZm9udHNQYXRoLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAgIHdoaWxlIChjb25zdCBjaGFy
KiBkaXJlY3RvcnlFbnRyeSA9IGdfZGlyX3JlYWRfbmFtZShmb250c0RpcmVjdG9yeS5nZXQoKSkp
IHsKKyAgICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLnR0ZiIp
ICYmICFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLm90ZiIpKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRQYXRoKGdfYnVpbGRf
ZmlsZW5hbWUoZm9udHNQYXRoLmRhdGEoKSwgZGlyZWN0b3J5RW50cnksIG51bGxwdHIpKTsKKyAg
ICAgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBGY0NoYXI4Kj4oZm9udFBhdGguZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3Io
IkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFBhdGguZ2V0KCkpOworICAgIH0KKwor
ICAgIC8vIEFoZW0gaXMgdXNlZCBieSBtYW55IGxheW91dCB0ZXN0cy4KKyAgICBHVW5pcXVlUHRy
PGdjaGFyPiBhaGVtRm9udEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIs
ICJBSEVNX19fXy5UVEYiLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRG
aWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oYWhlbUZvbnRGaWxlbmFtZS5n
ZXQoKSkpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVzISIsIGFo
ZW1Gb250RmlsZW5hbWUuZ2V0KCkpOyAKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBmb250Rmls
ZW5hbWVzW10gPSB7CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMTAwLnR0ZiIsCisgICAg
ICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRX
YXRjaGVyMzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNDAwLnR0ZiIsCisg
ICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNTAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWln
aHRXYXRjaGVyNjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0ZiIs
CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRX
ZWlnaHRXYXRjaGVyOTAwLnR0ZiIsCisgICAgICAgIDAKKyAgICB9OworCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGZvbnRGaWxlbmFtZXNbaV07ICsraSkgeworICAgICAgICBHVW5pcXVlUHRyPGdj
aGFyPiBmb250RmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgIi4uIiwg
Ii4uIiwgImZvbnRzIiwgZm9udEZpbGVuYW1lc1tpXSwgbnVsbHB0cikpOworICAgICAgICBpZiAo
IUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgq
Pihmb250RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBs
b2FkIGZvbnQgYXQgJXMhIiwgZm9udEZpbGVuYW1lLmdldCgpKTsgCisgICAgfQorCisgICAgLy8g
QSBmb250IHdpdGggbm8gdmFsaWQgRm9udGNvbmZpZyBlbmNvZGluZyB0byB0ZXN0IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ1MgorICAgIEdVbmlxdWVQdHI8Z2No
YXI+IGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05U
U19DT05GX0RJUiwgIkZvbnRXaXRoTm9WYWxpZEVuY29kaW5nLmZvbiIsIG51bGxwdHIpKTsKKyAg
ICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZj
Q2hhcjgqPihmb250V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lLmdldCgpKSkpCisgICAgICAg
IGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFdpdGhOb1ZhbGlkRW5j
b2RpbmdGaWxlbmFtZS5nZXQoKSk7IAorCisgICAgaWYgKCFGY0NvbmZpZ1NldEN1cnJlbnQoY29u
ZmlnKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IHNldCB0aGUgY3VycmVudCBmb250IGNv
bmZpZ3VyYXRpb24hIik7CisKKyAgICBudW1Gb250cyA9IEZjQ29uZmlnR2V0Rm9udHMoY29uZmln
LCBGY1NldEFwcGxpY2F0aW9uKS0+bmZvbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvSW5qZWN0
ZWRCdW5kbGVXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93
cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4yNDA4MWZmM2EyOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcApAQCAtMCwwICsx
LDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgorCituYW1l
c3BhY2UgV1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1Jbml0aWFsaXplKFdL
VHlwZVJlZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZjE0ZmZkZDA1NgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3Bl
L1Rlc3RSdW5uZXJXUEUuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlRlc3RSdW5uZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5nUmVmKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1
bm5lcjo6aW5zcGVjdG9yVGVzdFN0dWJVUkwoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiIik7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW52YWxpZGF0ZVdh
aXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkKK3sKKyAgICBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVy
LnN0b3AoKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQorewor
fQorCit2b2lkIFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcklm
TmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuaXNBY3RpdmUo
KSkKKyAgICAgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydE9uZVNob3QobV90aW1l
b3V0IC8gMTAwMC4wKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi40YTg2MmQ2OWFmYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NyBAQAorZmluZF9wYWNrYWdlKExp
YkdCTSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1lc2EgUkVRVUlSRUQpCisK
K2FkZF9jdXN0b21fdGFyZ2V0KFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzCisg
ICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5l
cmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtXRUJLSVRfVEVTVFJV
Tk5FUl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3
cGUKKykKKworc2V0KEZvcndhcmRpbmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5lcl9OQU1FIFdl
YktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzKQorCitsaXN0KEFQUEVORCBXZWJLaXRU
ZXN0UnVubmVyX1NPVVJDRVMKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vY2Fpcm8vVGVz
dEludm9jYXRpb25DYWlyby5jcHAKKworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUv
RXZlbnRTZW5kZXJQcm94eVdQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3Bl
L0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dw
ZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dw
ZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3Bl
L21haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5DTFVERV9ESVJF
Q1RPUklFUworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9JbmplY3RlZEJ1bmRsZS93cGUK
KyAgICAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtDQUlST19JTkNMVURFX0RJUlN9
CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0xJQkdCTV9JTkNMVURFX0RJUlN9Cisg
ICAgJHtXUEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RS
dW5uZXJfTElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJB
UklFU30KKyAgICAke0xJQkdCTV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTUVTQV9MSUJSQVJJRVN9
CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9TT1VSQ0VT
CisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVE
QlVORExFX0RJUn0vd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwCisgICAgJHtXRUJL
SVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNw
cAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvSW5qZWN0
ZWRCdW5kbGVXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9E
SVJ9L3dwZS9UZXN0UnVubmVyV1BFLmNwcAorKQorCithZGRfZGVmaW5pdGlvbnMoCisgICAgLURG
T05UU19DT05GX0RJUj0iJHtUT09MU19ESVJ9L1dlYktpdFRlc3RSdW5uZXIvZ3RrL2ZvbnRzIgor
ICAgIC1EVE9QX0xFVkVMX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKykKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IDBmMTU4NjEzZDJhLi44N2U4ZjdkYTYw
NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC01MCw2ICs1
MCwxMSBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdldDsKIHR5cGVkZWYgV0tW
aWV3UmVmIFBsYXRmb3JtV0tWaWV3OwogdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2luZG93
OwogdHlwZWRlZiBjYWlyb19zdXJmYWNlX3QgKlBsYXRmb3JtSW1hZ2U7CisjZWxpZiBQTEFURk9S
TShXUEUpCitjbGFzcyBIZWFkbGVzc1ZpZXdCYWNrZW5kOwordHlwZWRlZiBXS1ZpZXdSZWYgUGxh
dGZvcm1XS1ZpZXc7Cit0eXBlZGVmIEhlYWRsZXNzVmlld0JhY2tlbmQqIFBsYXRmb3JtV2luZG93
OwordHlwZWRlZiBjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtSW1hZ2U7CiAjZW5kaWYKIAogbmFt
ZXNwYWNlIFdUUiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDgyMTZkYTRjNjc3Li43NTkxNDBjZjI0YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKQEAgLTc2Nyw3ICs3NjcsNyBAQCBib29sIFRlc3RDb250cm9sbGVy
OjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25z
KQogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBkb2luZyB0aGlzLCBpdCBzaG91bGQgcHJvYmFibHkg
YmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAgdG9vLgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0Nv
bnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBM
QVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIFdLVGV4dENoZWNrZXJDb250aW51
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTFlZTBmYzJlNTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5
V1BFLmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXZlbnRT
ZW5kZXJQcm94eS5oIgorCituYW1lc3BhY2UgV1RSIHsKKworRXZlbnRTZW5kZXJQcm94eTo6RXZl
bnRTZW5kZXJQcm94eShUZXN0Q29udHJvbGxlciogdGVzdENvbnRyb2xsZXIpCisgICAgOiBtX3Rl
c3RDb250cm9sbGVyKHRlc3RDb250cm9sbGVyKQorICAgICwgbV90aW1lKDApCisgICAgLCBtX2xl
ZnRNb3VzZUJ1dHRvbkRvd24oZmFsc2UpCisgICAgLCBtX2NsaWNrQ291bnQoMCkKKyAgICAsIG1f
Y2xpY2tUaW1lKDApCisgICAgLCBtX2NsaWNrQnV0dG9uKGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1
dHRvbikKK3sKK30KKworRXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkoKQorewor
fQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRG93bih1bnNpZ25lZCwgV0tFdmVudE1v
ZGlmaWVycykKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVVwKHVuc2lnbmVk
LCBXS0V2ZW50TW9kaWZpZXJzKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNl
TW92ZVRvKGRvdWJsZSwgZG91YmxlKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1v
dXNlU2Nyb2xsQnkoaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQsIGludCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShp
bnQsIGludCwgYm9vbCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9yd2Fy
ZChpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1Jl
ZiwgV0tFdmVudE1vZGlmaWVycywgdW5zaWduZWQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6YWRkVG91Y2hQb2ludChpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclBy
b3h5Ojp1cGRhdGVUb3VjaFBvaW50KGludCwgaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRT
ZW5kZXJQcm94eTo6c2V0VG91Y2hNb2RpZmllcihXS0V2ZW50TW9kaWZpZXJzLCBib29sKQorewor
fQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNldFRvdWNoUG9pbnRSYWRpdXMoaW50LCBpbnQp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hTdGFydCgpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hNb3ZlKCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRl
clByb3h5Ojp0b3VjaEVuZCgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hD
YW5jZWwoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNsZWFyVG91Y2hQb2ludHMo
KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBvaW50KGludCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50KGludCkKK3sK
K30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi41NjBiNDBhM2VmYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCkBAIC0wLDAgKzEsMjUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisKKyNpbmNsdWRl
IDxjYXNzZXJ0PgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKy8v
IEZJWE1FOiBEZXBsb3kgZ29vZCBwcmFjdGljZXMgYW5kIGNsZWFuIHVwIEdCTSByZXNvdXJjZXMg
YXQgcHJvY2VzcyBleGl0Lgorc3RhdGljIEVHTERpc3BsYXkgZ2V0RUdMRGlzcGxheSgpCit7Cisg
ICAgc3RhdGljIEVHTERpc3BsYXkgc19kaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7CisgICAgaWYg
KHNfZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgeworICAgICAgICBpbnQgZmQgPSBvcGVuKCIv
ZGV2L2RyaS9yZW5kZXJEMTI4IiwgT19SRFdSIHwgT19DTE9FWEVDIHwgT19OT0NUVFkgfCBPX05P
TkJMT0NLKTsKKyAgICAgICAgaWYgKGZkIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9f
RElTUExBWTsKKworICAgICAgICBzdHJ1Y3QgZ2JtX2RldmljZSogZGV2aWNlID0gZ2JtX2NyZWF0
ZV9kZXZpY2UoZmQpOworICAgICAgICBpZiAoIWRldmljZSkKKyAgICAgICAgICAgIHJldHVybiBF
R0xfTk9fRElTUExBWTsKKworICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBlZ2xHZXREaXNw
bGF5KGRldmljZSk7CisgICAgICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAg
ICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIGlmICghZWdsSW5pdGlh
bGl6ZShkaXNwbGF5LCBudWxscHRyLCBudWxscHRyKSkKKyAgICAgICAgICAgIHJldHVybiBFR0xf
Tk9fRElTUExBWTsKKworICAgICAgICBpZiAoIWVnbEJpbmRBUEkoRUdMX09QRU5HTF9FU19BUEkp
KQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIHNfZGlzcGxh
eSA9IGRpc3BsYXk7CisgICAgfQorCisgICAgcmV0dXJuIHNfZGlzcGxheTsKK30KKworSGVhZGxl
c3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFja2VuZCgpCit7CisgICAgbV9lZ2wuZGlzcGxh
eSA9IGdldEVHTERpc3BsYXkoKTsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29uZmlnQXR0
cmlidXRlc1sxM10gPSB7CisgICAgICAgIEVHTF9TVVJGQUNFX1RZUEUsIEVHTF9XSU5ET1dfQklU
LAorICAgICAgICBFR0xfUkVEX1NJWkUsIDEsCisgICAgICAgIEVHTF9HUkVFTl9TSVpFLCAxLAor
ICAgICAgICBFR0xfQkxVRV9TSVpFLCAxLAorICAgICAgICBFR0xfQUxQSEFfU0laRSwgMSwKKyAg
ICAgICAgRUdMX1JFTkRFUkFCTEVfVFlQRSwgRUdMX09QRU5HTF9FUzJfQklULAorICAgICAgICBF
R0xfTk9ORQorICAgIH07CisKKyAgICBFR0xpbnQgbnVtQ29uZmlnczsKKyAgICBFR0xCb29sZWFu
IHJldCA9IGVnbENob29zZUNvbmZpZyhtX2VnbC5kaXNwbGF5LCBjb25maWdBdHRyaWJ1dGVzLCAm
bV9lZ2wuY29uZmlnLCAxLCAmbnVtQ29uZmlncyk7CisgICAgaWYgKCFyZXQgfHwgIW51bUNvbmZp
Z3MpCisgICAgICAgIHJldHVybjsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29udGV4dEF0
dHJpYnV0ZXNbM10gPSB7CisgICAgICAgIEVHTF9DT05URVhUX0NMSUVOVF9WRVJTSU9OLCAyLAor
ICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAgICBtX2VnbC5jb250ZXh0ID0gZWdsQ3JlYXRl
Q29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb25maWcsIEVHTF9OT19DT05URVhULCBjb250
ZXh0QXR0cmlidXRlcyk7CisgICAgaWYgKG1fZWdsLmNvbnRleHQgPT0gRUdMX05PX0NPTlRFWFQp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxh
eSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0KSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9lZ2wuY3JlYXRlSW1hZ2UgPSByZWludGVycHJldF9jYXN0PFBG
TkVHTENSRUFURUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbENyZWF0ZUltYWdl
S0hSIikpOworICAgIG1fZWdsLmRlc3Ryb3lJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdM
REVTVFJPWUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbERlc3Ryb3lJbWFnZUtI
UiIpKTsKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRleHR1cmUyRE9FUyA9IHJlaW50ZXJwcmV0X2Nh
c3Q8UEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0M+KGVnbEdldFByb2NBZGRyZXNz
KCJnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTIikpOworCisgICAgbV9leHBvcnRhYmxlID0g
d3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jcmVhdGUoJnNfZXhwb3J0
YWJsZUNsaWVudCwgdGhpcyk7CisKKyAgICBtX3VwZGF0ZVNvdXJjZSA9IGdfdGltZW91dF9zb3Vy
Y2VfbmV3KG1fZnJhbWVSYXRlIC8gMTAwMCk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1f
dXBkYXRlU291cmNlLAorICAgICAgICBbXShncG9pbnRlciBkYXRhKSAtPiBnYm9vbGVhbiB7Cisg
ICAgICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tl
bmQqPihkYXRhKTsKKyAgICAgICAgICAgIGJhY2tlbmQucGVyZm9ybVVwZGF0ZSgpOworICAgICAg
ICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgIH0sIHRoaXMsIG51bGxwdHIpOworICAgIGdfc291
cmNlX2F0dGFjaChtX3VwZGF0ZVNvdXJjZSwgZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpKTsKK30K
KworSGVhZGxlc3NWaWV3QmFja2VuZDo6fkhlYWRsZXNzVmlld0JhY2tlbmQoKQoreworICAgIGlm
IChtX3VwZGF0ZVNvdXJjZSkKKyAgICAgICAgZ19zb3VyY2VfZGVzdHJveShtX3VwZGF0ZVNvdXJj
ZSk7CisKKyAgICBpZiAoYXV0byBpbWFnZSA9IHN0ZDo6Z2V0PDA+KG1fcGVuZGluZ0ltYWdlLnNl
Y29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7
CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCkp
CisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7CisKKyAg
ICBmb3IgKGF1dG8gaXQgOiBtX2V4cG9ydE1hcCkgeworICAgICAgICBpbnQgZmQgPSBpdC5zZWNv
bmQ7CisgICAgICAgIGlmIChmZCA+PSAwKQorICAgICAgICAgICAgY2xvc2UoZmQpOworICAgIH0K
KworICAgIGlmIChtX2VnbC5jb250ZXh0KQorICAgICAgICBlZ2xEZXN0cm95Q29udGV4dChtX2Vn
bC5kaXNwbGF5LCBtX2VnbC5jb250ZXh0KTsKK30KKworc3RydWN0IHdwZV92aWV3X2JhY2tlbmQq
IEhlYWRsZXNzVmlld0JhY2tlbmQ6OmJhY2tlbmQoKSBjb25zdAoreworICAgIHJldHVybiB3cGVf
bWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2dldF92aWV3X2JhY2tlbmQobV9l
eHBvcnRhYmxlKTsKK30KKworY2Fpcm9fc3VyZmFjZV90KiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpj
cmVhdGVTbmFwc2hvdCgpCit7CisgICAgcGVyZm9ybVVwZGF0ZSgpOworCisgICAgRUdMSW1hZ2VL
SFIgaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisgICAgaWYgKCFp
bWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB1aW50MzJfdCB3aWR0aCA9IHN0
ZDo6Z2V0PDE+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKyAgICB1aW50MzJfdCBoZWlnaHQgPSBz
dGQ6OmdldDwyPihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisKKyAgICB1aW50OF90KiBidWZmZXIg
PSBuZXcgdWludDhfdFs0ICogd2lkdGggKiBoZWlnaHRdOworICAgIGJvb2wgc3VjY2Vzc2Z1bFNu
YXBzaG90ID0gZmFsc2U7CisKKyAgICBtYWtlQ3VycmVudCgpOworCisgICAgR0x1aW50IGltYWdl
VGV4dHVyZTsKKyAgICBnbEdlblRleHR1cmVzKDEsICZpbWFnZVRleHR1cmUpOworICAgIGdsQmlu
ZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgaW1hZ2VUZXh0dXJlKTsKKyAgICBnbFRleFBhcmFtZXRl
cmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAg
IGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdM
X0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
V1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsVGV4SW1h
Z2UyRChHTF9URVhUVVJFXzJELCAwLCBHTF9CR1JBX0VYVCwgd2lkdGgsIGhlaWdodCwgMCwgR0xf
QkdSQV9FWFQsIEdMX1VOU0lHTkVEX0JZVEUsIG51bGxwdHIpOworCisgICAgbV9lZ2wuaW1hZ2VU
YXJnZXRUZXh0dXJlMkRPRVMoR0xfVEVYVFVSRV8yRCwgaW1hZ2UpOworICAgIGdsQmluZFRleHR1
cmUoR0xfVEVYVFVSRV8yRCwgMCk7CisKKyAgICBHTHVpbnQgaW1hZ2VGcmFtZWJ1ZmZlcjsKKyAg
ICBnbEdlbkZyYW1lYnVmZmVycygxLCAmaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xCaW5kRnJh
bWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGltYWdlRnJhbWVidWZmZXIpOworICAgIGdsRnJhbWVi
dWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9U
RVhUVVJFXzJELCBpbWFnZVRleHR1cmUsIDApOworCisgICAgZ2xGbHVzaCgpOworICAgIGlmIChn
bENoZWNrRnJhbWVidWZmZXJTdGF0dXMoR0xfRlJBTUVCVUZGRVIpID09IEdMX0ZSQU1FQlVGRkVS
X0NPTVBMRVRFKSB7CisgICAgICAgIGdsUmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBH
TF9CR1JBX0VYVCwgR0xfVU5TSUdORURfQllURSwgYnVmZmVyKTsKKyAgICAgICAgc3VjY2Vzc2Z1
bFNuYXBzaG90ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFN
RUJVRkZFUiwgMCk7CisgICAgZ2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJmltYWdlRnJhbWVidWZm
ZXIpOworICAgIGdsRGVsZXRlVGV4dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisKKyAgICBpZiAo
IXN1Y2Nlc3NmdWxTbmFwc2hvdCkgeworICAgICAgICBkZWxldGVbXSBidWZmZXI7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VTdXJm
YWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyLAorICAgICAg
ICBDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0LCBjYWlyb19mb3JtYXRfc3RyaWRl
X2Zvcl93aWR0aChDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCkpOworICAgIGNhaXJvX3N1cmZh
Y2VfbWFya19kaXJ0eShpbWFnZVN1cmZhY2UpOworCisgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0
YV9rZXlfdCBidWZmZXJLZXk7CisgICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKGltYWdl
U3VyZmFjZSwgJmJ1ZmZlcktleSwgYnVmZmVyLAorICAgICAgICBbXSh2b2lkKiBkYXRhKSB7Cisg
ICAgICAgICAgICBhdXRvKiBidWZmZXIgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGF0YSk7Cisg
ICAgICAgICAgICBkZWxldGVbXSBidWZmZXI7CisgICAgICAgIH0pOworCisgICAgcmV0dXJuIGlt
YWdlU3VyZmFjZTsKK30KKworYm9vbCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjptYWtlQ3VycmVudCgp
Cit7CisgICAgcmV0dXJuIGVnbE1ha2VDdXJyZW50KG1fZWdsLmRpc3BsYXksIEVHTF9OT19TVVJG
QUNFLCBFR0xfTk9fU1VSRkFDRSwgbV9lZ2wuY29udGV4dCk7Cit9CisKK3ZvaWQgSGVhZGxlc3NW
aWV3QmFja2VuZDo6cGVyZm9ybVVwZGF0ZSgpCit7CisgICAgaWYgKCFtX3BlbmRpbmdJbWFnZS5m
aXJzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9y
dGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9mcmFtZV9jb21wbGV0ZShtX2V4cG9ydGFibGUpOworICAg
IGlmIChtX2xvY2tlZEltYWdlLmZpcnN0KSB7CisgICAgICAgIHdwZV9tZXNhX3ZpZXdfYmFja2Vu
ZF9leHBvcnRhYmxlX2RtYV9idWZfZGlzcGF0Y2hfcmVsZWFzZV9idWZmZXIobV9leHBvcnRhYmxl
LCBtX2xvY2tlZEltYWdlLmZpcnN0KTsKKyAgICAgICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWds
LmRpc3BsYXksIHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSk7CisgICAgfQorCisg
ICAgbV9sb2NrZWRJbWFnZSA9IG1fcGVuZGluZ0ltYWdlOworICAgIG1fcGVuZGluZ0ltYWdlID0g
c3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWlu
dDMyX3Q+PiB7IH07Cit9CisKK3N0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJs
ZV9kbWFfYnVmX2NsaWVudCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpzX2V4cG9ydGFibGVDbGllbnQg
PSB7CisgICAgLy8gZXhwb3J0X2RtYV9idWYKKyAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3Bl
X21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kYXRhKiBpbWFnZURhdGEpCisg
ICAgeworICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0Jh
Y2tlbmQqPihkYXRhKTsKKworICAgICAgICBhdXRvIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5l
bmQoKTsKKyAgICAgICAgaWYgKGltYWdlRGF0YS0+ZmQgPj0gMCkgeworICAgICAgICAgICAgYXNz
ZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSkgPT0gYmFja2Vu
ZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisKKyAgICAgICAgICAgIGl0ID0gYmFja2VuZC5tX2V4cG9y
dE1hcC5pbnNlcnQoeyBpbWFnZURhdGEtPmhhbmRsZSwgaW1hZ2VEYXRhLT5mZCB9KS5maXJzdDsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydChiYWNrZW5kLm1fZXhwb3J0TWFw
LmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOwor
ICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5k
bGUpOworICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0KGl0ICE9IGJhY2tlbmQubV9leHBvcnRN
YXAuZW5kKCkpOworICAgICAgICB1aW50MzJfdCBoYW5kbGUgPSBpdC0+Zmlyc3Q7CisgICAgICAg
IGludDMyX3QgZmQgPSBpdC0+c2Vjb25kOworCisgICAgICAgIGJhY2tlbmQubWFrZUN1cnJlbnQo
KTsKKworICAgICAgICBFR0xpbnQgYXR0cmlidXRlc1tdID0geworICAgICAgICAgICAgRUdMX1dJ
RFRILCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+d2lkdGgpLAorICAgICAgICAgICAg
RUdMX0hFSUdIVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPmhlaWdodCksCisgICAg
ICAgICAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19FWFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1h
Z2VEYXRhLT5mb3JtYXQpLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VYVCwg
ZmQsCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfT0ZGU0VUX0VYVCwgMCwKKyAgICAg
ICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9QSVRDSF9FWFQsIHN0YXRpY19jYXN0PEVHTGludD4o
aW1hZ2VEYXRhLT5zdHJpZGUpLAorICAgICAgICAgICAgRUdMX05PTkUsCisgICAgICAgIH07Cisg
ICAgICAgIEVHTEltYWdlS0hSIGltYWdlID0gYmFja2VuZC5tX2VnbC5jcmVhdGVJbWFnZShiYWNr
ZW5kLm1fZWdsLmRpc3BsYXksIEVHTF9OT19DT05URVhULCBFR0xfTElOVVhfRE1BX0JVRl9FWFQs
IG51bGxwdHIsIGF0dHJpYnV0ZXMpOworICAgICAgICBiYWNrZW5kLm1fcGVuZGluZ0ltYWdlID0g
eyBpbWFnZURhdGEtPmhhbmRsZSwgc3RkOjptYWtlX3R1cGxlKGltYWdlLCBpbWFnZURhdGEtPndp
ZHRoLCBpbWFnZURhdGEtPmhlaWdodCkgfTsKKyAgICB9LAorfTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uNjIxODYxMjFhOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKQEAgLTAsMCArMSw3
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGdibS5oPgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNp
bmNsdWRlIDxFR0wvZWdsZXh0Lmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjaW5jbHVkZSA8
R0xFUzIvZ2wyZXh0Lmg+CisjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDxnbGliLmg+Cisj
aW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx3cGUtbWVzYS92aWV3LWJhY2tlbmQt
ZXhwb3J0YWJsZS1kbWEtYnVmLmg+CisKK2NsYXNzIEhlYWRsZXNzVmlld0JhY2tlbmQgeworcHVi
bGljOgorICAgIEhlYWRsZXNzVmlld0JhY2tlbmQoKTsKKyAgICB+SGVhZGxlc3NWaWV3QmFja2Vu
ZCgpOworCisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQoKSBjb25zdDsKKwor
ICAgIGNhaXJvX3N1cmZhY2VfdCogY3JlYXRlU25hcHNob3QoKTsKKworcHJpdmF0ZToKKyAgICBi
b29sIG1ha2VDdXJyZW50KCk7CisgICAgdm9pZCBwZXJmb3JtVXBkYXRlKCk7CisKKyAgICBzdGF0
aWMgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50
IHNfZXhwb3J0YWJsZUNsaWVudDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIEVHTERpc3BsYXkg
ZGlzcGxheTsKKyAgICAgICAgRUdMQ29uZmlnIGNvbmZpZzsKKyAgICAgICAgRUdMQ29udGV4dCBj
b250ZXh0OworCisgICAgICAgIFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQyBjcmVhdGVJbWFnZTsK
KyAgICAgICAgUEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQyBkZXN0cm95SW1hZ2U7CisgICAgICAg
IFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJFMkRPRVNQUk9DIGltYWdlVGFyZ2V0VGV4dHVyZTJE
T0VTOworICAgIH0gbV9lZ2w7CisKKyAgICBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4
cG9ydGFibGVfZG1hX2J1ZiogbV9leHBvcnRhYmxlOworCisgICAgc3RkOjp1bm9yZGVyZWRfbWFw
PHVpbnQzMl90LCBpbnQzMl90PiBtX2V4cG9ydE1hcDsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3Qs
IHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fcGVuZGluZ0lt
YWdlIHsgfTsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIs
IHVpbnQzMl90LCB1aW50MzJfdD4+IG1fbG9ja2VkSW1hZ2UgeyB9OworCisgICAgR1NvdXJjZSog
bV91cGRhdGVTb3VyY2U7CisgICAgZ2ludDY0IG1fZnJhbWVSYXRlIHsgR19VU0VDX1BFUl9TRUMg
LyA2MCB9OworfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRm
b3JtV2ViVmlld1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdl
YlZpZXdXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MTY4
YTkzNGMxMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Bs
YXRmb3JtV2ViVmlld1dQRS5jcHAKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorCisjaW5jbHVkZSAiSGVhZGxlc3NWaWV3QmFja2Vu
ZC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0ltYWdlQ2Fpcm8uaD4KKyNpbmNsdWRlIDxjYWlyby5o
PgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1X
ZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVGVzdE9w
dGlvbnMmIG9wdGlvbnMpCisgICAgOiBtX3dpbmRvd0lzS2V5KHRydWUpCisgICAgLCBtX29wdGlv
bnMob3B0aW9ucykKK3sKKyAgICBtX3dpbmRvdyA9IG5ldyBIZWFkbGVzc1ZpZXdCYWNrZW5kOwor
ICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChtX3dpbmRvdy0+YmFja2Vu
ZCgpLCBjb25maWd1cmF0aW9uKTsKK30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJW
aWV3KCkKK3sKKyAgICBkZWxldGUgbV93aW5kb3c7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3
OjpyZXNpemVUbyh1bnNpZ25lZCwgdW5zaWduZWQsIFdlYlZpZXdTaXppbmdNb2RlKQoreworfQor
CitXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdlKCkKK3sKKyAgICByZXR1cm4gV0tWaWV3
R2V0UGFnZShtX3ZpZXcpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQorewor
fQorCitXS1JlY3QgUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dGcmFtZSgpCit7CisgICAgcmV0dXJu
IFdLUmVjdCB7IDAsIDAsIDEsIDEgfTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNldFdp
bmRvd0ZyYW1lKFdLUmVjdCwgV2ViVmlld1NpemluZ01vZGUpCit7Cit9CisKK3ZvaWQgUGxhdGZv
cm1XZWJWaWV3OjpkaWRJbml0aWFsaXplQ2xpZW50cygpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1X
ZWJWaWV3OjphZGRDaHJvbWVJbnB1dEZpZWxkKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZp
ZXc6OnJlbW92ZUNocm9tZUlucHV0RmllbGQoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmll
dzo6YWRkVG9XaW5kb3coKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVtb3ZlRnJv
bVdpbmRvdygpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dJc0tleShi
b29sIHdpbmRvd0lzS2V5KQoreworICAgIG1fd2luZG93SXNLZXkgPSB3aW5kb3dJc0tleTsKK30K
Kwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6Om1ha2VXZWJWaWV3Rmlyc3RSZXNwb25kZXIoKQorewor
fQorCitjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJbWFn
ZSgpCit7CisgICAgeworICAgICAgICBzdHJ1Y3QgVGltZW91dFRpbWVyIHsKKyAgICAgICAgICAg
IFRpbWVvdXRUaW1lcigpCisgICAgICAgICAgICAgICAgOiB0aW1lcihSdW5Mb29wOjptYWluKCks
IHRoaXMsICZUaW1lb3V0VGltZXI6OmZpcmVkKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIHRpbWVyLnN0YXJ0T25lU2hvdCgxLjAgLyA2MCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIHZvaWQgZmlyZWQoKSB7IFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7IH0KKyAgICAgICAg
ICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVvdXRUaW1lcj4gdGltZXI7CisgICAgICAgIH0gdGltZW91
dFRpbWVyOworCisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5ydW4oKTsKKyAgICB9CisKKyAgICBj
YWlyb19zdXJmYWNlX3QqIGltYWdlU3VyZmFjZSA9IG1fd2luZG93LT5jcmVhdGVTbmFwc2hvdCgp
OworICAgIHJldHVybiBpbWFnZVN1cmZhY2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpj
aGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0KQoreworfQorCit2b2lkIFBsYXRmb3JtV2Vi
Vmlldzo6c2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKQoreworfQorCitib29sIFBs
YXRmb3JtV2ViVmlldzo6dmlld1N1cHBvcnRzT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb3Jj
ZVdpbmRvd0ZyYW1lc0NoYW5nZWQoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGNjM2RlZGU5ODYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAK
QEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RDb250cm9sbGVy
LmgiCisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgeworCit2b2lkIFRl
c3RDb250cm9sbGVyOjpub3RpZnlEb25lKCkKK3sKKyAgICBSdW5Mb29wOjptYWluKCkuc3RvcCgp
OworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRIaWRkZW4oYm9vbCkKK3sKK30KKwordm9p
ZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworV0tQcmVmZXJl
bmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygpCit7CisgICAgcmV0
dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdlR3JvdXAuZ2V0KCkpOworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorCit2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCkKK3sKK30KKworc3RhdGljIEdN
YWluQ29udGV4dCogdGhyZWFkRGVmYXVsdENvbnRleHQoKQoreworICAgIGlmIChHTWFpbkNvbnRl
eHQqIGNvbnRleHQgPSBnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSkKKyAgICAg
ICAgcmV0dXJuIGNvbnRleHQ7CisgICAgcmV0dXJuIGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKTsK
K30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBjb25kaXRp
b24sIGRvdWJsZSB0aW1lb3V0KQoreworICAgIHN0cnVjdCBUaW1lb3V0VGltZXIgeworICAgICAg
ICBUaW1lb3V0VGltZXIoKQorICAgICAgICAgICAgOiB0aW1lcihSdW5Mb29wOjptYWluKCksIHRo
aXMsICZUaW1lb3V0VGltZXI6OmZpcmVkKQorICAgICAgICB7IH0KKworICAgICAgICB2b2lkIGZp
cmVkKCkgeyBSdW5Mb29wOjptYWluKCkuc3RvcCgpOyB9CisgICAgICAgIFJ1bkxvb3A6OlRpbWVy
PFRpbWVvdXRUaW1lcj4gdGltZXI7CisgICAgfSB0aW1lb3V0VGltZXI7CisKKyAgICB0aW1lb3V0
VGltZXIudGltZXIuc2V0UHJpb3JpdHkoR19QUklPUklUWV9ERUZBVUxUX0lETEUpOworICAgIGlm
ICh0aW1lb3V0ID49IDApCisgICAgICAgIHRpbWVvdXRUaW1lci50aW1lci5zdGFydE9uZVNob3Qo
dGltZW91dCk7CisKKyAgICBSdW5Mb29wOjptYWluKCkucnVuKCk7CisKKyAgICB0aW1lb3V0VGlt
ZXIudGltZXIuc3RvcCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURpZENv
bW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYpCit7Cit9CisKK3N0YXRpYyBj
aGFyKiBnZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKGNvbnN0IGNoYXIqIHZhcmlh
YmxlTmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZhcmlhYmxlTmFt
ZSk7CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIGVudmly
b25tZW50IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAgICAgZXhp
dCgwKTsKKyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBnX2ZpbGVu
YW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKwordm9pZCBU
ZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7CisgICAgR1Vu
aXF1ZVB0cjxjaGFyPiBwYXRoKGdldEVudmlyb25tZW50VmFyaWFibGVBc1VURjhTdHJpbmcoIlRF
U1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSIpKTsKKyAgICBtX2luamVjdGVkQnVu
ZGxlUGF0aC5hZG9wdChXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhwYXRoLmdldCgpKSk7
Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemVUZXN0UGx1Z2luRGlyZWN0b3J5
KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3
KikKK3sKK30KKworV0tDb250ZXh0UmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbnRleHQo
KQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcoKQoreworICAgIHJldHVybiBudWxscHRy
OworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpZXdGb3JUZXN0
KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkKK3sKK30KKwordm9pZCBU
ZXN0Q29udHJvbGxlcjo6dXBkYXRlUGxhdGZvcm1TcGVjaWZpY1Rlc3RPcHRpb25zRm9yVGVzdChU
ZXN0T3B0aW9ucyYsIGNvbnN0IHN0ZDo6c3RyaW5nJikgY29uc3QKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9tYWluLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42Y2YyYjdmZjMyMQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKworaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KQoreworICAgIFdUUjo6VGVzdENvbnRyb2xsZXIgY29udHJvbGxlcihh
cmdjLCBjb25zdF9jYXN0PGNvbnN0IGNoYXIqKj4oYXJndikpOworICAgIHJldHVybiAwOworfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIgYi9Ub29scy9qaGJ1aWxk
L2poYnVpbGQtd3JhcHBlcgppbmRleCBmNmM0MDNkMzFiMC4uZTNlZWNkZmNlODcgMTAwNzU1Ci0t
LSBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCisrKyBiL1Rvb2xzL2poYnVpbGQvamhi
dWlsZC13cmFwcGVyCkBAIC0zMSw2ICszMSw4IEBAIGRlZiBkZXRlcm1pbmVfcGxhdGZvcm0oKToK
ICAgICAgICAgcmV0dXJuICJlZmwiOwogICAgIGlmICctLWd0aycgaW4gc3lzLmFyZ3Y6CiAgICAg
ICAgIHJldHVybiAiZ3RrIjsKKyAgICBpZiAnLS13cGUnIGluIHN5cy5hcmd2OgorICAgICAgICBy
ZXR1cm4gIndwZSIKICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBwbGF0Zm9ybSBzcGVjaWZpZWQg
Zm9yIGpoYnVpbGQtd3JhcHBlci4nKQogCiB0cnk6CmRpZmYgLS1naXQgYS9Ub29scy93cGUvZ2Vu
ZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSBiL1Rvb2xzL3dwZS9nZW5lcmF0
ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAwMDAwLi43OGYxNDEwNjk4MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dw
ZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5CkBAIC0wLDAgKzEsNzYg
QEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGdsb2IKK2ltcG9ydCBvcworaW1wb3J0IHN5
cworCitDT01QUkVTU0lCTEVfRVhURU5TSU9OUyA9IFsnLmh0bWwnLCAnLmpzJywgJy5jc3MnLCAn
LnN2ZyddCitCQVNFX0RJUiA9ICdXZWJJbnNwZWN0b3JVSS8nCisKKworZGVmIGdldF9maWxlbmFt
ZXMoYXJncyk6CisgICAgZmlsZW5hbWVzID0gW10KKworICAgIGZvciBwYXR0ZXJuIGluIGFyZ3M6
CisgICAgICAgIHBhdGhzID0gZ2xvYi5nbG9iKHBhdHRlcm4pCisgICAgICAgIGZvciBmaWxlbmFt
ZSBpbiBwYXRoczoKKyAgICAgICAgICAgIGJhc2VfZGlyX2luZGV4ID0gZmlsZW5hbWUucmZpbmQo
QkFTRV9ESVIpCisgICAgICAgICAgICBpZiBiYXNlX2Rpcl9pbmRleCAhPSAtMToKKyAgICAgICAg
ICAgICAgICBuYW1lID0gZmlsZW5hbWVbYmFzZV9kaXJfaW5kZXggKyBsZW4oQkFTRV9ESVIpOl0K
KyAgICAgICAgICAgICAgICAjIFRoZSByZXN1bHQgc2hvdWxkIHVzZSBmb3J3YXJkIHNsYXNoZXMs
IHRodXMgbWFrZSBzdXJlIGFueSBvcy1zcGVjaWZpYworICAgICAgICAgICAgICAgICMgc2VwYXJh
dG9yLCBhZGRlZCBieSB0aGUgZ2xvYi5nbG9iKCkgY2FsbCwgaXMgcHJvcGVybHkgcmVwbGFjZWQK
KyAgICAgICAgICAgICAgICBpZiBvcy5zZXAgIT0gJy8nOgorICAgICAgICAgICAgICAgICAgICBu
YW1lID0gbmFtZS5yZXBsYWNlKG9zLnNlcCwgJy8nKQorICAgICAgICAgICAgICAgIGZpbGVuYW1l
cy5hcHBlbmQobmFtZSkKKyAgICByZXR1cm4gZmlsZW5hbWVzCisKKworZGVmIGlzX2NvbXByZXNz
aWJsZShmaWxlbmFtZSk6CisgICAgcmV0dXJuIG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpWzFd
IGluIENPTVBSRVNTSUJMRV9FWFRFTlNJT05TCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9f
IjoKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0nR2Vu
ZXJhdGUgYSBHUmVzb3VyY2VzIGZpbGUgZm9yIHRoZSBpbnNwZWN0b3IuJykKKyAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCctLW91dHB1dCcsIG5hcmdzPSc/JywgdHlwZT1hcmdwYXJzZS5GaWxlVHlw
ZSgndycpLCBkZWZhdWx0PXN5cy5zdGRvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSd0aGUgb3V0cHV0IGZpbGUnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2ZpbGVuYW1lcycs
IG1ldGF2YXI9J0ZJTEVTJywgbmFyZ3M9JysnLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0ndGhlIGxpc3Qgb2YgZmlsZXMgdG8gaW5jbHVkZScpCisKKyAgICBhcmdzID0gcGFyc2VyLnBh
cnNlX2FyZ3Moc3lzLmFyZ3ZbMTpdKQorCisgICAgYXJncy5vdXRwdXQud3JpdGUoXAorICAgICIi
Ijw/eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVURi04Pz4KKyAgICA8Z3Jlc291cmNlcz4KKyAg
ICAgICAgPGdyZXNvdXJjZSBwcmVmaXg9Ii9vcmcvd3BlL2luc3BlY3RvciI+CisiIiIpCisKKyAg
ICBmb3IgZmlsZW5hbWUgaW4gZ2V0X2ZpbGVuYW1lcyhhcmdzLmZpbGVuYW1lcyk6CisgICAgICAg
IGxpbmUgPSAnICAgICAgICAgICAgPGZpbGUnCisgICAgICAgIGlmIGlzX2NvbXByZXNzaWJsZShm
aWxlbmFtZSk6CisgICAgICAgICAgICBsaW5lICs9ICcgY29tcHJlc3NlZD0idHJ1ZSInCisgICAg
ICAgIGlmICdJbWFnZXMvZ3RrLycgaW4gZmlsZW5hbWU6CisgICAgICAgICAgICBsaW5lICs9ICcg
YWxpYXM9IiVzIicgJSBmaWxlbmFtZS5yZXBsYWNlKCdndGsvJywgJycpCisgICAgICAgIGxpbmUg
Kz0gJz4lczwvZmlsZT5cbicgJSBmaWxlbmFtZQorCisgICAgICAgIGFyZ3Mub3V0cHV0LndyaXRl
KGxpbmUpCisKKyAgICBhcmdzLm91dHB1dC53cml0ZShcCisgICAgIiIiICAgIDwvZ3Jlc291cmNl
PgorPC9ncmVzb3VyY2VzPgorIiIiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9k
dWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjJlZDc1NjI2NGEyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3Bl
L2poYnVpbGQubW9kdWxlcwpAQCAtMCwwICsxLDI0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+
Cis8IURPQ1RZUEUgbW9kdWxlc2V0IFNZU1RFTSAibW9kdWxlc2V0LmR0ZCI+Cis8P3htbC1zdHls
ZXNoZWV0IHR5cGU9InRleHQveHNsIiBocmVmPSJtb2R1bGVzZXQueHNsIj8+Cis8bW9kdWxlc2V0
PgorCisgIDxtZXRhbW9kdWxlIGlkPSJ3ZWJraXR3cGUtdGVzdGluZy1kZXBlbmRlbmNpZXMiPgor
ICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0ibGlic291cCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJjYWlybyIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJmb250cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJkaWN0cyIvPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZy
ZWV0eXBlNiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgorICAgICAgPGRlcCBw
YWNrYWdlPSJ4a2Jjb21tb24iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id2F5bGFuZCIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBs
dWdpbnMtYmFzZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1nb29kIi8+Cisg
ICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhZCIvPgorICAgICAgPGRlcCBwYWNrYWdl
PSJnc3QtbGliYXYiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlIi8+CisgICAgICA8ZGVwIHBh
Y2thZ2U9IndwZS1tZXNhIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvbWV0YW1vZHVsZT4K
KworICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJlLm9yZy1taXJy
b3IiCisgICAgICBocmVmPSJodHRwOi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJjZXMucmVkaGF0
LmNvbS8iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRwLmdub21lLm9y
ZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5
cGU9InRhcmJhbGwiIG5hbWU9ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgaHJlZj0iaHR0cDov
L2NhaXJvZ3JhcGhpY3Mub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9
ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3Jn
Ii8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9IndheWxhbmQuZnJlZWRlc2t0
b3Aub3JnIgorICAgICAgaHJlZj0iaHR0cDovL3dheWxhbmQuZnJlZWRlc2t0b3Aub3JnIi8+Cisg
IDxyZXBvc2l0b3J5IHR5cGU9ImdpdCIgbmFtZT0iZ2l0aHViLmNvbSIKKyAgICAgIGhyZWY9Imdp
dDovL2dpdGh1Yi5jb20iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZ3N0
cmVhbWVyIgorICAgICAgaHJlZj0iaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvc3Jj
LyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJ4a2Jjb21tb24ub3JnIgor
ICAgICAgaHJlZj0iaHR0cDovL3hrYmNvbW1vbi5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0i
dGFyYmFsbCIgbmFtZT0ic2F2YW5uYWguZ251Lm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9kb3du
bG9hZC5zYXZhbm5haC5nbnUub3JnL3JlbGVhc2VzLyIvPgorCisgIDxhdXRvdG9vbHMgaWQ9Imxp
YmZmaSIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0ibGliZmZp
L2xpYmZmaS0zLjAuMTAudGFyLmd6IiB2ZXJzaW9uPSIzLjAuMTAiCisgICAgICAgICAgICAgcmVw
bz0ic291cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgICAgICAgIGhhc2g9InNoYTI1NjpmMDFl
YjkwMjdlOWViNTZhZWFlZWY2MzY2NDk4Nzc3NTZkNDc1ZDcxNGVmOGI0N2Y2MjdmNjViYzVmM2I0
OTJmIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIiCisgICAgICAg
ICAgICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSIt
LWRpc2FibGUtZHRyYWNlIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdl
PSJsaWJmZmkiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1
Yi9HTk9NRS9zb3VyY2VzL2dsaWIvMi40NC9nbGliLTIuNDQuMS50YXIueHoiIHZlcnNpb249IjIu
NDQuMSIKKyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNo
PSJzaGEyNTY6ODgxMWRlYWNhZjhhNTAzZDBhOWI3MDE3NzdlYTA3OWNhNmE0Mjc3YmUxMGUzZDcz
MGQyMTEyNzM1ZDVlY2EwNyI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi13YXJuaW5nLWZpeC5w
YXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnZGF0ZS1zdXBwcmVzcy1zdHJp
bmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5j
aD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYi1uZXR3b3JraW5nIj4K
KyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgPC9k
ZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9nbGli
LW5ldHdvcmtpbmcvMi40Mi9nbGliLW5ldHdvcmtpbmctMi40Mi4wLnRhci54eiIgdmVyc2lvbj0i
Mi40Mi4wIgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhh
c2g9InNoYTI1NjozMDRkZDllNGMwY2VkNjkwOTQzMDBlMGI5ZTY2Y2QyZWFhZTcxNjFiOWZjMzE4
NjUzNmQxMTQ1ODY3N2Q4MjBkIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImxpYnNvdXAiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1nbm9tZSAtLWRp
c2FibGUtaW50cm9zcGVjdGlvbiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0iZ2xpYi1uZXR3b3JraW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5j
aCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNDgvbGlic291cC0yLjQ4LjAu
dGFyLnh6IiB2ZXJzaW9uPSIyLjQ4LjAiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3Jn
IgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmVhMzRkZDY0ZmU0NDM0MzQ0NWRhZjZkZDY5MGQw
NjkxZTlkOTczNDY4ZGU0NDg3OGRhOTczNzFjMTZkODk3ODQiLz4KKyAgPC9hdXRvdG9vbHM+CisK
KyAgPGF1dG90b29scyBpZD0iZm9udHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIK
KyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0
aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZm9udHMuZ2l0IiBjaGVj
a291dGRpcj0id2Via2l0Z3RrLXRlc3QtZm9udHMiIHRhZz0iMC4wLjUiLz4KKyAgPC9hdXRvdG9v
bHM+CisKKyAgPGF1dG90b29scyBpZD0iZGljdHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRz
PSJubyIKKyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVw
bz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZGljdHMuZ2l0
IiBjaGVja291dGRpcj0id2Via2l0Z3RrLXRlc3QtZGljdHMiIHRhZz0iMC4wLjEiLz4KKyAgPC9h
dXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZnJlZXR5cGU2IiBhdXRvZ2VuLXNoPSJjb25m
aWd1cmUiPgorICAgIDxicmFuY2ggbW9kdWxlPSJmcmVldHlwZS9mcmVldHlwZS0yLjQuMTEudGFy
LmJ6MiIgdmVyc2lvbj0iMi40LjExIgorICAgICAgICAgICAgcmVwbz0ic2F2YW5uYWguZ251Lm9y
ZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjplZjlkMGJjYjY0NjQ3ZDllNTEyNWRjNzUzNGQ3
Y2EzNzFjOTgzMTBmZWM4NzY3N2M0MTBmMzk3ZjcxZmZiZTNmIgorICAgICAgICAgICAgbWQ1c3Vt
PSJiOTM0MzU0ODg5NDI0ODZjOGQwY2EyMmU4Zjc2ODAzNCI+CisgICAgICA8cGF0Y2ggZmlsZT0i
ZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2giIHN0cmlwPSIx
Ii8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZv
bnRjb25maWciIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAg
PGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9mb250Y29uZmlnLTIu
MTEuMS50YXIuZ3oiIHZlcnNpb249IjIuMTEuMSIKKyAgICAgICAgICAgIHJlcG89ImZyZWVkZXNr
dG9wLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjpiNmIwNjZjN2RjZTNmNDM2ZmRjMGRm
YmFlOWQzNjEyMmIzODA5NGY0ZjUzYmQ4ZGZmZDQ1ZTE5NWIwNTQwZDhkIgorICAgICAgICAgICAg
bWQ1c3VtPSJlNzVlMzAzYjRmNzc1NmMyYjE2MjAzYTU3YWM4N2ViYSI+CisgICAgPC9icmFuY2g+
CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBhdXRvZ2VuLXNo
PSJjb25maWd1cmUiCisgICAgICAgIGF1dG9nZW5hcmdzPSItLXdpdGgtY2Fpcm89bm8gLS13aXRo
LWdsaWI9bm8gLS13aXRoLWZyZWV0eXBlPXllcyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJy
YW5jaCBtb2R1bGU9InNvZnR3YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMS4zLjMudGFy
LmJ6MiIKKyAgICAgICAgICAgIHZlcnNpb249IjEuMy4zIgorICAgICAgICAgICAgY2hlY2tvdXRk
aXI9ImhhcmZidXp6LTEuMy4zIgorICAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0b3Aub3JnIgor
ICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjI2MjA5ODcxMTVhNDEyMmI0NzMyMTYxMGRjY2JjYzE4
ZjdmMTIxMTE1ZmQ3Yjg4ZGM4YTY5NWM4YjY2Y2IzYzkiCisgICAgICAgICAgICBtZDVzdW09Ijk3
YWUxNWE3MmE5M2YxZjI3MzI0YTJiOGQ5YmQzYjFkIj4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRv
dG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0icGl4bWFuIgorICAgICAgICAgICAgIGF1dG9nZW4t
c2g9ImNvbmZpZ3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1lbmFibGUtZ3RrPW5v
Ij4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvcGl4bWFuLTAuMzIuNi50YXIuZ3oiIHZl
cnNpb249IjAuMzIuNiIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAg
ICAgICAgICAgaGFzaD0ic2hhMjU2OjNkZmVkMTNiODA2MGVhZGFiZjBhNDk0NWM3MDQ1Yjc3OTNj
YzdlM2U5MTBlNzQ4YThiYjBmMGRjM2U3OTQ5MDQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1
dG90b29scyBpZD0iY2Fpcm8iIGF1dG9nZW5hcmdzPSItLWVuYWJsZS1lZ2w9eWVzIC0tZW5hYmxl
LWdsZXN2MiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIv
PgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9
InBpeG1hbiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJyZWxl
YXNlcy9jYWlyby0xLjE0LjgudGFyLnh6IiB2ZXJzaW9uPSIxLjE0LjgiCisgICAgICAgICAgICBy
ZXBvPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTE6YzZmN2I5OTk4
NmY5M2M5ZGY3ODY1M2MzZTZhM2I1MDQzZjY1MTQ1ZSI+CisgICAgICA8cGF0Y2ggZmlsZT0iY2Fp
cm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoIiBzdHJpcD0iMSIvPgor
ICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJ4a2Jjb21t
b24iPgorICAgIDxicmFuY2ggbW9kdWxlPSJkb3dubG9hZC9saWJ4a2Jjb21tb24tMC41LjAudGFy
Lnh6IiB2ZXJzaW9uPSIwLjUuMCIKKyAgICAgICAgICAgIHJlcG89InhrYmNvbW1vbi5vcmciCisg
ICAgICAgICAgICBoYXNoPSJzaGExOjcxMjc5OTNiZmI2OWUxM2NkZmYyNWZiOGIzYzhmMjZjZTZi
ZTViZmEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0id2F5bGFuZCIgYXV0
b2dlbmFyZ3M9Ii0tZGlzYWJsZS1kb2N1bWVudGF0aW9uIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0i
cmVsZWFzZXMvd2F5bGFuZC0xLjkuMC50YXIueHoiIHZlcnNpb249IjEuOS4wIgorICAgICAgICAg
ICAgcmVwbz0id2F5bGFuZC5mcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6OWM4NzcwNzIwYWEwMDM0NDc5NzM1ZjU4YTRkYzRjYTliMTcyZWNmZWRlMjhmNTEzNDMxMmUx
MzViNzMwMWVmYSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJvcmMiIGF1
dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAg
ICA8YnJhbmNoIG1vZHVsZT0ib3JjL29yYy0wLjQuMTcudGFyLmd6IiB2ZXJzaW9uPSIwLjQuMTci
CisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6
NGZjN2NjYTQ4YzU5ZmZmMjNhZmVlNzhmYjY0MmNkYmRlMDAxZjU2NDAxYzhmNDdiOTVhMTY1Nzhk
MWQ1ZDdlOCIKKyAgICAgICAgICAgIG1kNXN1bT0iYWYxYmYzZGFiOWU2OWYzYzM2ZjM4OTI4NWUy
YTEyYTEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0cmVhbWVyIiBh
dXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyI+Cisg
ICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ib3JjIi8+CisgICAgPC9kZXBl
bmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJz
aW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVy
IgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjVhMzcyMmZiOTMwMmRkOTc3YzE3Y2VkNDI0MDI5
M2RjNzc3Y2I3MTZkYzk4YzhjY2E2M2Q3NWMyN2U1ZTMxMDciCisgICAgICAgICAgICBtZDVzdW09
IjcxMWFkYTc5YjYzZTQ3YWM5NmFkYjRlNTQ0NGRjOTA4Ij4KKyAgICAgIDxwYXRjaCBmaWxlPSJn
c3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRo
ZS0ucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisg
IDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWJhc2UiCisgICAgICAgICAgICAgYXV0b2dlbi1z
aD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBs
ZXMgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBh
Y2thZ2U9ImdzdHJlYW1lciIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9k
dWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIueHoi
IHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAg
ICAgaGFzaD0ic2hhMjU2OjE1YTlkZTk4NWNkMjY1YzM0NGUzNTlmNWIxOTM0N2RmNDAyMWI3NjEx
ZWQyYzJkOTE5MTdjYjkwMGYyZmFkNmYiCisgICAgICAgICAgICBtZDVzdW09IjU0MjFlZGZlYjc0
NzlkNWY1Nzc2ZTkxN2JhMzBlMjRlIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMg
aWQ9ImdzdC1wbHVnaW5zLWdvb2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9
Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3RrLWRvYyI+Cisg
ICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIv
PgorICAgIDwvZGVwZW5kZW5jaWVzPgorCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5z
LWdvb2QvZ3N0LXBsdWdpbnMtZ29vZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjEi
CisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6
MjEwM2UxNzkyMWQ2Nzg5NGU4MmVhZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYyNWJmYmM4M2Zm
ZWFkMDk3MiIKKyAgICAgICAgICAgIG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4YTY0YzMxMmRl
MDNkNDciPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0
LWRlY29kZS10aW1lLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1w
bHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29m
LWZvci1mci5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtYmFkIiBhdXRvZ2VuLXNoPSJjb25maWd1
cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1kb2MgLS1k
aXNhYmxlLWludHJvc3BlY3Rpb24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBh
Y2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJh
bmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3ZlcnNpb259LnRh
ci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAg
ICAgICAgICBoYXNoPSJzaGEyNTY6MGJiZDU4ZjM2MzczNGZjMGM0YTYyMGIyZDZmYjAxZDQyN2Zk
YWZkYmRhN2I5MGI0ZTE1ZDAzYjc1MWNhNDBmNSIKKyAgICAgICAgICAgIG1kNXN1bT0iZTUwOGRh
MmE4YTVjM2QxMjI2NGZlMzQxNWJlMmY0NTEiPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVn
aW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIiBzdHJpcD0iMSIv
PgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0
ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2giIHN0cmlwPSIxIi8+
CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1s
aWJhdiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRoLWxpYmF2LWV4
dHJhLWNvbmZpZ3VyZT0nLS1kaXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9jIj4KKyAgICA8
ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+Cisg
ICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJhdi9nc3QtbGli
YXYtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0i
Z3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjQ0YTQ5MTA4YzM1MzFiNWFjNGYz
NDZhMjI0N2NkN2ZiYWZiMGU4YWIzOTQzOTRjYjZkNzVhNzAzMDBiMzg5MzMiCisgICAgICAgICAg
ICBtZDVzdW09Ijg1ZjFhMDQ3NjA2Y2E5ZTA4NDkzZDdiNmI0MmRmNDYyIi8+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxjbWFrZSBpZD0id3BlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20i
IG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLmdpdCIKKyAgICAgICAg
ICAgIHRhZz0iNWUyYTI5ZDJjY2M2MzdmNzEyMmJhNzJjMWQ2MmVmNjY5YjQyZjA1YyIgLz4KKyAg
PC9jbWFrZT4KKworICA8Y21ha2UgaWQ9IndwZS1tZXNhIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiIC8+
CisgICAgICA8ZGVwIHBhY2thZ2U9IndheWxhbmQiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9Inhr
YmNvbW1vbiIgLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1
Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLW1lc2EuZ2l0
IgorICAgICAgICAgICAgdGFnPSI5OTQ1NzUzZjkzMzdmZDY3YWYwOTgyMThiNzgxOTMzN2FiYTIx
MTQxIiAvPgorICA8L2NtYWtlPgorPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9Ub29scy93cGUv
amhidWlsZHJjIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZTJmYTg4ZDcyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUv
amhidWlsZHJjCkBAIC0wLDAgKzEsMjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCitz
eXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyks
ICIuLi9qaGJ1aWxkIikgKQoraW1wb3J0IGpoYnVpbGRyY19jb21tb24KK2poYnVpbGRyY19jb21t
b24uaW5pdChnbG9iYWxzKCksICJ3cGUiKQorIyBFbmFibGUgYnVpbGRkaXIgIT0gc3JjZGlyIGJ1
aWxkcy4KK2J1aWxkcm9vdCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoY2hlY2tvdXRy
b290KSwgIkJ1aWxkIikKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVnbC1k
ZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2Nh
aXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDQ2ZGY0NWI2ZjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZh
Y2UucGF0Y2gKQEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gYTRlMGRhZjE4YmY4MjUyNDYzZjY2ZDc1
ZWVmNDk5Y2ZmZmEzMjU2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFphbiBEb2Jl
cnNlayA8emRvYmVyc2VrQGlnYWxpYS5jb20+CitEYXRlOiBNb24sIDE3IE5vdiAyMDE0IDAxOjIz
OjE1IC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9m
b3JfZWdsX3N1cmZhY2UoKS4KKworLS0tCisgc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgfCA2NiAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgc3JjL2Nh
aXJvLWdsLmggICAgICAgICAgfCAgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlv
bnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZWdsLWNvbnRl
eHQuYyBiL3NyYy9jYWlyby1lZ2wtY29udGV4dC5jCitpbmRleCBiZjcwNGM2Li5iZTJiY2Y5IDEw
MDY0NAorLS0tIGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMKKysrKyBiL3NyYy9jYWlyby1lZ2wt
Y29udGV4dC5jCitAQCAtNDgsNyArNDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fZWdsX2Nv
bnRleHQgeworICAgICBFR0xEaXNwbGF5IGRpc3BsYXk7CisgICAgIEVHTENvbnRleHQgY29udGV4
dDsKKyAKKy0gICAgRUdMU3VyZmFjZSBkdW1teV9zdXJmYWNlOworKyAgICBFR0xTdXJmYWNlIHN1
cmZhY2U7CisrICAgIGNhaXJvX2Jvb2xfdCBpc19kdW1teV9zdXJmYWNlOworIAorICAgICBFR0xD
b250ZXh0IHByZXZpb3VzX2NvbnRleHQ7CisgICAgIEVHTFN1cmZhY2UgcHJldmlvdXNfc3VyZmFj
ZTsKK0BAIC03NCw3ICs3NSw3IEBAIF9lZ2xfZ2V0X2N1cnJlbnRfc3VyZmFjZSAoY2Fpcm9fZWds
X2NvbnRleHRfdCAqY3R4KQorIHsKKyAgICAgaWYgKGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCA9
PSBOVUxMIHx8CisgICAgICAgICBfY2Fpcm9fZ2xfc3VyZmFjZV9pc190ZXh0dXJlIChjdHgtPmJh
c2UuY3VycmVudF90YXJnZXQpKSB7CistCXJldHVybiAgY3R4LT5kdW1teV9zdXJmYWNlOworKwly
ZXR1cm4gIGN0eC0+c3VyZmFjZTsKKyAgICAgfQorIAorICAgICByZXR1cm4gKChjYWlyb19lZ2xf
c3VyZmFjZV90ICopIGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCktPmVnbDsKK0BAIC0xNTEsOCAr
MTUyLDggQEAgX2VnbF9kZXN0cm95ICh2b2lkICphYnN0cmFjdF9jdHgpCisgCisgICAgIGVnbE1h
a2VDdXJyZW50IChjdHgtPmRpc3BsYXksCisgCQkgICAgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19T
VVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CistICAgIGlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0g
RUdMX05PX1NVUkZBQ0UpCistICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNwbGF5
LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKyAgICBpZiAoY3R4LT5pc19kdW1teV9zdXJmYWNlICYm
IGN0eC0+c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkKKysgICAgICAgIGVnbERlc3Ryb3lTdXJm
YWNlIChjdHgtPmRpc3BsYXksIGN0eC0+c3VyZmFjZSk7CisgfQorIAorIHN0YXRpYyBjYWlyb19i
b29sX3QKK0BAIC0yMTgsMTMgKzIxOSwxNCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdM
RGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsKQorIAllZ2xRdWVyeUNvbnRleHQgKGRweSwgZWds
LCBFR0xfQ09ORklHX0lELCAmY29uZmlnX2F0dHJpYnNbMV0pOworIAllZ2xDaG9vc2VDb25maWcg
KGRweSwgY29uZmlnX2F0dHJpYnMsICZjb25maWcsIDEsICZudW1Db25maWdzKTsKKyAKKy0JY3R4
LT5kdW1teV9zdXJmYWNlID0gZWdsQ3JlYXRlUGJ1ZmZlclN1cmZhY2UgKGRweSwgY29uZmlnLCBh
dHRyaWJzKTsKKy0JaWYgKGN0eC0+ZHVtbXlfc3VyZmFjZSA9PSBOVUxMKSB7CisrCWN0eC0+aXNf
ZHVtbXlfc3VyZmFjZSA9IFRSVUU7CisrCWN0eC0+c3VyZmFjZSA9IGVnbENyZWF0ZVBidWZmZXJT
dXJmYWNlIChkcHksIGNvbmZpZywgYXR0cmlicyk7CisrCWlmIChjdHgtPnN1cmZhY2UgPT0gTlVM
TCkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9j
cmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CisgCistCWlmICgh
ZWdsTWFrZUN1cnJlbnQgKGRweSwgY3R4LT5kdW1teV9zdXJmYWNlLCBjdHgtPmR1bW15X3N1cmZh
Y2UsIGVnbCkpIHsKKysJaWYgKCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBjdHgtPnN1cmZhY2UsIGN0
eC0+c3VyZmFjZSwgZWdsKSkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fp
cm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOwor
IAl9CitAQCAtMjM4LDggKzI0MCw1NCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlz
cGxheSBkcHksIEVHTENvbnRleHQgZWdsKQorIAorICAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29u
dGV4dF9pbml0ICgmY3R4LT5iYXNlKTsKKyAgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7Cist
CWlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistCSAgICBlZ2xEZXN0
cm95U3VyZmFjZSAoZHB5LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKwlpZiAoY3R4LT5zdXJmYWNl
ICE9IEVHTF9OT19TVVJGQUNFKQorKwkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4LT5z
dXJmYWNlKTsKKysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0
ZV9pbl9lcnJvciAoc3RhdHVzKTsKKysgICAgfQorKworKyAgICBlZ2xNYWtlQ3VycmVudCAoZHB5
LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsKKysKKysg
ICAgcmV0dXJuICZjdHgtPmJhc2UuYmFzZTsKKyt9CisrCisrY2Fpcm9fZGV2aWNlX3QgKgorK2Nh
aXJvX2VnbF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVH
TENvbnRleHQgZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpCisreworKyAgICBjYWlyb19lZ2xfY29u
dGV4dF90ICpjdHg7CisrICAgIGNhaXJvX3N0YXR1c190IHN0YXR1czsKKysKKysgICAgY3R4ID0g
Y2FsbG9jICgxLCBzaXplb2YgKGNhaXJvX2VnbF9jb250ZXh0X3QpKTsKKysgICAgaWYgKHVubGlr
ZWx5IChjdHggPT0gTlVMTCkpCisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5f
ZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworKworKyAgICBjdHgtPmRpc3BsYXkgPSBk
cHk7CisrICAgIGN0eC0+Y29udGV4dCA9IGVnbDsKKysgICAgY3R4LT5zdXJmYWNlID0gc3VyZmFj
ZTsKKysKKysgICAgY3R4LT5iYXNlLmFjcXVpcmUgPSBfZWdsX2FjcXVpcmU7CisrICAgIGN0eC0+
YmFzZS5yZWxlYXNlID0gX2VnbF9yZWxlYXNlOworKyAgICBjdHgtPmJhc2UubWFrZV9jdXJyZW50
ID0gX2VnbF9tYWtlX2N1cnJlbnQ7CisrICAgIGN0eC0+YmFzZS5zd2FwX2J1ZmZlcnMgPSBfZWds
X3N3YXBfYnVmZmVyczsKKysgICAgY3R4LT5iYXNlLmRlc3Ryb3kgPSBfZWdsX2Rlc3Ryb3k7Cisr
CisrICAgIC8qIFdlIGFyZSBhYm91dCB0aGUgY2hhbmdlIHRoZSBjdXJyZW50IHN0YXRlIG9mIEVH
TCwgc28gd2Ugc2hvdWxkCisrICAgICAqIHF1ZXJ5IHRoZSBwcmUtZXhpc3Rpbmcgc3VyZmFjZSBu
b3cgaW5zdGVhZCBvZiBsYXRlci4gKi8KKysgICAgX2VnbF9xdWVyeV9jdXJyZW50X3N0YXRlIChj
dHgpOworKworKwlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHksIHN1cmZhY2UsIHN1cmZhY2UsIGVn
bCkpIHsKKysJICAgIGZyZWUgKGN0eCk7CisrCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRf
Y3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKysJfQorKworKyAgICBz
dGF0dXMgPSBfY2Fpcm9fZ2xfZGlzcGF0Y2hfaW5pdCAoJmN0eC0+YmFzZS5kaXNwYXRjaCwgZWds
R2V0UHJvY0FkZHJlc3MpOworKyAgICBpZiAodW5saWtlbHkgKHN0YXR1cykpIHsKKysJZnJlZSAo
Y3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVz
KTsKKysgICAgfQorKworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9pbml0ICgmY3R4
LT5iYXNlKTsKKysgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CisgCWZyZWUgKGN0eCk7Cisg
CXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisgICAg
IH0KK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZ2wuaCBiL3NyYy9jYWlyby1nbC5oCitpbmRleCA5
ZmQ3NjA4Li5hOTRmNTgxIDEwMDY0NAorLS0tIGEvc3JjL2NhaXJvLWdsLmgKKysrKyBiL3NyYy9j
YWlyby1nbC5oCitAQCAtMTMyLDYgKzEzMiw5IEBAIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zv
cl9kYyAoY2Fpcm9fZGV2aWNlX3QJCSpkZXZpY2UsCisgY2Fpcm9fcHVibGljIGNhaXJvX2Rldmlj
ZV90ICoKKyBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRl
eHQgZWdsKTsKKyAKKytjYWlyb19wdWJsaWMgY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2VnbF9k
ZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQg
ZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpOworKworIGNhaXJvX3B1YmxpYyBjYWlyb19zdXJmYWNl
X3QgKgorIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9lZ2wgKGNhaXJvX2RldmljZV90CSpk
ZXZpY2UsCisgCQkJCSBFR0xTdXJmYWNlCSBlZ2wsCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0
Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5k
LWlkZW50aWZpZXIucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVx
dWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2gKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZTBhNTQxZGJjCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3Bh
Y2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAK
K0Zyb20gNzA2OWQ3MTdlOTgyYWRjZjhlMWQzMDBjYmQxMGVlYzYzMjJhNjVjOSBNb24gU2VwIDE3
IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFraXJhIFRBR09IIDxha2lyYUB0YWdvaC5vcmc+CitEYXRl
OiBTdW4sIDIyIEFwciAyMDEyIDIxOjQwOjQ0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEMrKzEx
IHJlcXVpcmVzIGEgc3BhY2UgYmV0d2VlbiBsaXRlcmFsIGFuZCBpZGVudGlmaWVyCisKK1JlcG9y
dGVkIGJ5IEJ1Z2FuaW5pCistLS0KKyBmb250Y29uZmlnL2ZvbnRjb25maWcuaCB8IDYgKysrLS0t
CisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlm
ZiAtLWdpdCBhL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oIGIvZm9udGNvbmZpZy9mb250Y29uZmln
LmgKK2luZGV4IDBlMmNhNTAuLmIyN2NjYjUgMTAwNjQ0CistLS0gYS9mb250Y29uZmlnL2ZvbnRj
b25maWcuaAorKysrIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK0BAIC0xMTIsOSArMTEyLDkg
QEAgdHlwZWRlZiBpbnQJCUZjQm9vbDsKKyAjZGVmaW5lIEZDX0RFQ09SQVRJVkUJICAgICJkZWNv
cmF0aXZlIgkvKiBCb29sIC0gdHJ1ZSBpZiBzdHlsZSBpcyBhIGRlY29yYXRpdmUgdmFyaWFudCAq
LworICNkZWZpbmUgRkNfTENEX0ZJTFRFUgkgICAgImxjZGZpbHRlciIJCS8qIEludCAqLworIAor
LSNkZWZpbmUgRkNfQ0FDSEVfU1VGRklYCQkgICAgIi5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgor
LSNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVS
U0lPTgorLSNkZWZpbmUgRkNfVVNFUl9DQUNIRV9GSUxFCSAgICAiLmZvbnRzLmNhY2hlLSJGQ19D
QUNIRV9WRVJTSU9OCisrI2RlZmluZSBGQ19DQUNIRV9TVUZGSVgJCSAgICAiLmNhY2hlLSIgRkNf
Q0FDSEVfVkVSU0lPTgorKyNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNo
ZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKysjZGVmaW5lIEZDX1VTRVJfQ0FDSEVfRklMRQkgICAgIi5m
b250cy5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKyAKKyAvKiBBZGp1c3Qgb3V0bGluZSByYXN0
ZXJpemVyICovCisgI2RlZmluZSBGQ19DSEFSX1dJRFRICSAgICAiY2hhcndpZHRoIgkvKiBJbnQg
Ki8KKy0tIAorMS44LjMuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlw
ZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRj
aGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZmZlNzZiNGVmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9u
dC1oZWlnaHQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gZTA0NjkzNzJiZTM4NzBh
NWFkNjBiMmM0NTg2ZTljMjgxMzU3YmQyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206
IFdlcm5lciBMZW1iZXJnIDx3bEBnbnUub3JnPgorRGF0ZTogVHVlLCAyMiBKYW4gMjAxMyAxMDow
NzowNyArMDAwMAorU3ViamVjdDogW3RydWV0eXBlXSBGaXggZm9udCBoZWlnaHQuCisKKyogc3Jj
L3RydWV0eXBlL3R0b2Jqcy5jICh0dF9zaXplX3Jlc2V0KTogVGhlIFdpbmRvd3MgcmVuZGVyaW5n
CitlbmdpbmUgdXNlcyByb3VuZGVkIHZhbHVlcyBvZiB0aGUgYXNjZW5kZXIgYW5kIGRlc2NlbmRl
ciB0byBjb21wdXRlCit0aGUgVHJ1ZVR5cGUgZm9udCBoZWlnaHQuCistLS0KK2RpZmYgLS1naXQg
YS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKK2luZGV4IGM2
MWIyMTguLjU5MGI2NmMgMTAwNjQ0CistLS0gYS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKKysrKyBi
L3NyYy90cnVldHlwZS90dG9ianMuYworQEAgLTQsNyArNCw3IEBACisgLyogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKi8KKyAvKiAgICBPYmplY3RzIG1hbmFnZXIgKGJvZHkpLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCistLyog
IENvcHlyaWdodCAxOTk2LTIwMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKi8KKysvKiAgQ29weXJpZ2h0IDE5OTYtMjAxMyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICBEYXZpZCBUdXJu
ZXIsIFJvYmVydCBXaWxoZWxtLCBhbmQgV2VybmVyIExlbWJlcmcuICAgICAgICAgICAgICAgICAg
ICAgICovCisgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEZyZWVUeXBlIHByb2plY3QsIGFuZCBtYXkgb25seSBiZSB1c2VkLCAgICAgICAqLworQEAg
LTExNzcsMTEgKzExNzcsMTIgQEAKKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4KCBm
YWNlLT5yb290LmFzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNz
LT5kZXNjZW5kZXIgPQorICAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJv
b3QuZGVzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKy0gICAgICBtZXRyaWNzLT5oZWln
aHQgPQorLSAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuaGVpZ2h0
LCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5tYXhfYWR2YW5jZSA9Cisg
ICAgICAgICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5tYXhfYWR2YW5jZV93
aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLT54X3NjYWxl
ICkgKTsKKysKKysgICAgICAvKiB0aGUgaGVpZ2h0IGlzIGRlcml2ZWQgZnJvbSByb3VuZGVkIHZh
bHVlcyAqLworKyAgICAgIG1ldHJpY3MtPmhlaWdodCA9IG1ldHJpY3MtPmFzY2VuZGVyIC0gbWV0
cmljcy0+ZGVzY2VuZGVyOworICAgICB9CisgCisgICAgIC8qIGNvbXB1dGUgbmV3IHRyYW5zZm9y
bWF0aW9uICovCistLQorY2dpdCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNo
ZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2ggYi9U
b29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2Fy
bmluZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTBjYjk1
MWExOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVz
cy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaApAQCAtMCwwICsxLDI5IEBACitG
cm9tIDNhN2VmZDU5OGQzOTM2NmMyYzlkZTBkZWYyZmRmYjM1ZTVlOWYyYTEgTW9uIFNlcCAxNyAw
MDowMDowMCAyMDAxCitGcm9tOiBjb3lwdSA8Y295cHVAc2RmLm9yZz4KK0RhdGU6IE1vbiwgOCBG
ZWIgMjAxNiAwMDowNjowNiArMDIwMAorU3ViamVjdDogW1BBVENIIDEvMV0gZ2RhdGU6IFN1cHBy
ZXNzIHN0cmluZyBmb3JtYXQgbGl0ZXJhbCB3YXJuaW5nCisKK05ld2VyIHZlcnNpb25zIG9mIEdD
QyBlbWl0IGFuIGVycm9yIGhlcmUsIGJ1dCB3ZSBrbm93IGl0J3Mgc2FmZS4KK2h0dHBzOi8vYnVn
emlsbGEuZ25vbWUub3JnLzc2MTU1MAorLS0tCisgZ2xpYi9nZGF0ZS5jIHwgMyArKysKKyAxIGZp
bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nbGliL2dkYXRlLmMg
Yi9nbGliL2dkYXRlLmMKK2luZGV4IDRhZWNlMDIuLmNkYzczNWMgMTAwNjQ0CistLS0gYS9nbGli
L2dkYXRlLmMKKysrKyBiL2dsaWIvZ2RhdGUuYworQEAgLTI0OTQsNyArMjQ5NCwxMCBAQCBnX2Rh
dGVfc3RyZnRpbWUgKGdjaGFyICAgICAgICpzLAorICAgICAgICAqIHJlY29nbml6ZSB3aGV0aGVy
IHN0cmZ0aW1lIGFjdHVhbGx5IGZhaWxlZCBvciBqdXN0IHJldHVybmVkICIiLgorICAgICAgICAq
LworICAgICAgIHRtcGJ1ZlswXSA9ICdcMSc7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1u
b25saXRlcmFsIgorICAgICAgIHRtcGxlbiA9IHN0cmZ0aW1lICh0bXBidWYsIHRtcGJ1ZnNpemUs
IGxvY2FsZV9mb3JtYXQsICZ0bSk7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AK
KyAKKyAgICAgICBpZiAodG1wbGVuID09IDAgJiYgdG1wYnVmWzBdICE9ICdcMCcpCisgICAgICAg
ICB7CistLSAKKzIuNy4wCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2Fy
bmluZy1maXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNo
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZmFmNGQxMWYyYwotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2gK
QEAgLTAsMCArMSwzNCBAQAorRnJvbSA5ZjkwZWU1ZWVjY2Q0N2YzOWM3YTAzZGNkNzg2YjEyNWEx
OWMxOTVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFlbCBDYXRhbnphcm8g
PG1jYXRhbnphcm9AZ25vbWUub3JnPgorRGF0ZTogU2F0LCAxMyBKdW4gMjAxNSAyMjo1MjozMyAt
MDUwMAorU3ViamVjdDogW1BBVENIXSBnZW5tYXJzaGFsOiBzaWxlbmNlIHJlZ2lzdGVyIHN0b3Jh
Z2UgY2xhc3Mgd2FybmluZ3MKKworVXNpbmcgdGhlIHJlZ2lzdGVyIGtleXdvcmQgdHJpZ2dlcnMg
d2FybmluZ3Mgb24gbm90ZXdvcnRoeSBjb21waWxlcnMKKyhjbGFuZyksIHNpbmNlIGl0J3MgZGVw
cmVjYXRlZCBpbiBDKysgYW5kIGF0IGRhbmdlciBvZiBiZWluZyByZW1vdmVkCitmcm9tIHRoZSBs
YW5ndWFnZS4gVGhlcmUgaXMgbm8gcmVhc29uIHRvIHVzZSBpdCBzaW5jZSBpdCBpc24ndCAxOTgw
Cithbnltb3JlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzUwOTE4CistLS0KKyBnb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jIHwgNiArKystLS0KKyAxIGZp
bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0
IGEvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYyBiL2dvYmplY3QvZ2xpYi1nZW5tYXJzaGFsLmMK
K2luZGV4IGJlNDE1MWEuLmNhNzhhNmYgMTAwNjQ0CistLS0gYS9nb2JqZWN0L2dsaWItZ2VubWFy
c2hhbC5jCisrKysgYi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitAQCAtNDEyLDkgKzQxMiw5
IEBAIGdlbmVyYXRlX21hcnNoYWwgKGNvbnN0IGdjaGFyICpzaWduYW1lLAorICAgICAgIGdfZnBy
aW50ZiAoZm91dCwgIiVzJXMgZGF0YTIpO1xuIiwgaW5kZW50IChpbmQpLCBwYWQgKCJncG9pbnRl
ciIpKTsKKyAKKyAgICAgICAvKiBjZmlsZSBtYXJzaGFsIHZhcmlhYmxlcyAqLworLSAgICAgIGdf
ZnByaW50ZiAoZm91dCwgIiAgcmVnaXN0ZXIgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwg
c2lnbmFtZSk7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBHQ0Nsb3N1cmUg
KmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4iKTsKKy0gICAgICBnX2ZwcmludGYgKGZvdXQs
ICIgIHJlZ2lzdGVyIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIpOworKyAgICAgIGdfZnByaW50
ZiAoZm91dCwgIiAgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFtZSk7CisrICAg
ICAgZ19mcHJpbnRmIChmb3V0LCAiICBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1
cmU7XG4iKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIGdwb2ludGVyIGRhdGExLCBkYXRh
MjtcbiIpOworICAgICAgIGlmIChzaWctPnJhcmctPnNldHRlcikKKyAJZ19mcHJpbnRmIChmb3V0
LCAiICAlcyB2X3JldHVybjtcbiIsIHNpZy0+cmFyZy0+Y3R5cGUpOworIAorLS0gCisyLjQuMgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVz
L2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5T
U0wtMS4xLjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVk
MTA2NGVkNWU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdp
bnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKQEAgLTAsMCArMSwy
MzYgQEAKK0Zyb20gZTkzODkzMzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0NDg2YiBNb24g
U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJlZGhhdC5jb20+
CitEYXRlOiBXZWQsIDI2IE9jdCAyMDE2IDE0OjUxOjAxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hd
IGR0bHM6IHBvcnQgdG8gT3BlblNTTCAxLjEuMAorCitDaGFuZ2VzIGFyZToKKworLSBVc2UgdGhl
IHdyYXBwZXIgZnVuY3Rpb25zIHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4gIFRvIHByZXNl
cnZlCisgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBkZWZpbml0aW9u
cworCistIFJlbW92ZSB0aGUgdXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wtPmQxLT5zZW50
X21lc3NhZ2VzKSIsIHNpbmNlCisgIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50CisKKy0gVXNlIFJT
QV9nZW5lcmF0ZV9rZXlfZXggaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0FfZ2VuZXJhdGVf
a2V5CisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM1NDAK
Ky0tLQorIGV4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysrKysKKyBleHQv
ZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDkg
ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUu
YyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCA5NWZiYjgzLi5jMWM5NjAy
IDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9k
dGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMTk5LDcgKzE5OSwyMiBAQCBpbml0X2dlbmVy
YXRlZCAoR3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKKyAgICAgcHJpdi0+cHJpdmF0ZV9rZXkg
PSBOVUxMOworICAgICByZXR1cm47CisgICB9CisrCisrICAvKiBYWFg6IFJTQV9nZW5lcmF0ZV9r
ZXkgaXMgYWN0dWFsbHkgZGVwcmVjYXRlZCBpbiAwLjkuOCAqLworKyNpZiBPUEVOU1NMX1ZFUlNJ
T05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9rZXkgKDIwNDgs
IFJTQV9GNCwgTlVMTCwgTlVMTCk7CisrI2Vsc2UKKysgIHJzYSA9IFJTQV9uZXcgKCk7CisrICBp
ZiAocnNhICE9IE5VTEwpIHsKKysgICAgQklHTlVNICplID0gQk5fbmV3ICgpOworKyAgICBpZiAo
ZSAhPSBOVUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCisrICAgICAgICAmJiBSU0FfZ2Vu
ZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisrICAgICAgUlNBX2ZyZWUgKHJz
YSk7CisrICAgICAgcnNhID0gTlVMTDsKKysgICAgfQorKyAgICBCTl9mcmVlIChlKTsKKysgIH0K
KysjZW5kaWYKKyAKKyAgIGlmICghcnNhKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoc2Vs
ZiwgImZhaWxlZCB0byBnZW5lcmF0ZSBSU0EiKTsKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3Rk
dGxzY29ubmVjdGlvbi5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYworaW5kZXggMzZm
NmQ2My4uNzI4ZjVhNyAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMK
KysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKK0BAIC00Miw2ICs0Miw4IEBACisg
I2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+CisgCisr
I2luY2x1ZGUgPHN0cmluZy5oPgorKworIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgKGdzdF9k
dGxzX2Nvbm5lY3Rpb25fZGVidWcpOworICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIGdzdF9kdGxz
X2Nvbm5lY3Rpb25fZGVidWcKKyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0RHRsc0Nvbm5l
Y3Rpb24sIGdzdF9kdGxzX2Nvbm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCitAQCAtMjE2LDYgKzIx
OCwzOCBAQCBnc3RfZHRsc19jb25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICogZ29iamVjdCkK
KyAgIEdfT0JKRUNUX0NMQVNTIChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9jbGFzcyktPmZp
bmFsaXplIChnb2JqZWN0KTsKKyB9CisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAw
eDEwMTAwMDAxTAorK3N0YXRpYyB2b2lkCisrQklPX3NldF9kYXRhIChCSU8gKiBiaW8sIHZvaWQg
KnB0cikKKyt7CisrICBiaW8tPnB0ciA9IHB0cjsKKyt9CisrCisrc3RhdGljIHZvaWQgKgorK0JJ
T19nZXRfZGF0YSAoQklPICogYmlvKQorK3sKKysgIHJldHVybiBiaW8tPnB0cjsKKyt9CisrCisr
c3RhdGljIHZvaWQKKytCSU9fc2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBzaHV0ZG93bikK
Kyt7CisrICBiaW8tPnNodXRkb3duID0gc2h1dGRvd247CisrfQorKworK3N0YXRpYyB2b2lkCisr
QklPX3NldF9pbml0IChCSU8gKiBiaW8sIGludCBpbml0KQorK3sKKysgIGJpby0+aW5pdCA9IGlu
aXQ7CisrfQorKworK3N0YXRpYyBYNTA5ICoKKytYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKFg1
MDlfU1RPUkVfQ1RYICogY3R4KQorK3sKKysgIHJldHVybiBjdHgtPmNlcnQ7CisrfQorKyNlbmRp
ZgorKworIHN0YXRpYyB2b2lkCisgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJvcGVydHkgKEdP
YmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVl
LCBHUGFyYW1TcGVjICogcHNwZWMpCitAQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9kdGxzX2Nvbm5l
Y3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAg
ICAgIHByaXYtPmJpbyA9IEJJT19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKCkpOwor
ICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmJpbyk7CisgCistICAgICAgcHJpdi0+Ymlv
LT5wdHIgPSBzZWxmOworKyAgICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBzZWxmKTsKKyAg
ICAgICBTU0xfc2V0X2JpbyAocHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJpbyk7CisgCisg
ICAgICAgU1NMX3NldF92ZXJpZnkgKHByaXYtPnNzbCwKK0BAIC01NzMsNiArNjA3LDcgQEAgbG9n
X3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICogc3RyKQorICAg
c3RhdGVzIHw9ICghICFTU0xfd2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7CisgICBzdGF0
ZXMgfD0gKCEgIVNTTF93YW50X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOworIAorKyNpZiBPUEVO
U1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxm
LCAiJXM6IHJvbGU9JXMgYnVmPSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAorICAgICAgIHN0ciwK
KyAgICAgICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorQEAgLTU4MSw2
ICs2MTYsMTUgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdj
aGFyICogc3RyKQorICAgICAgIHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAorICAgICAgIHByaXYt
PmJpb19idWZmZXJfbGVuLAorICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAocHJpdi0+c3Ns
KSwgU1NMX3N0YXRlX3N0cmluZ19sb25nIChwcml2LT5zc2wpKTsKKysjZWxzZQorKyAgR1NUX0xP
R19PQkpFQ1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwleCAlcyIsCisr
ICAgICAgc3RyLAorKyAgICAgIHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDogInNlcnZlciIs
CisrICAgICAgcHJpdi0+YmlvX2J1ZmZlciwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX29mZnNl
dCwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKysgICAgICBzdGF0ZXMsIFNTTF9nZXRf
c3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+c3NsKSk7Cisr
I2VuZGlmCisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNzM3LDcgKzc4MSw3IEBAIG9wZW5zc2xf
dmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlf
Y3R4KQorICAgc2VsZiA9IFNTTF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9uX2V4X2luZGV4
KTsKKyAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNUSU9OIChzZWxm
KSwgRkFMU0UpOworIAorLSAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4NTA5X2N0eC0+
Y2VydCk7CisrICBwZW0gPSBfZ3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RPUkVfQ1RYX2dl
dDBfY2VydCAoeDUwOV9jdHgpKTsKKyAKKyAgIGlmICghcGVtKSB7CisgICAgIEdTVF9XQVJOSU5H
X09CSkVDVCAoc2VsZiwKK0BAIC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJh
Y2sgKGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAgICAg
Z2ludCBsZW47CisgCisgICAgICAgbGVuID0KKy0gICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4
IChiaW8sIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAxLAorKyAgICAg
ICAgICBYNTA5X05BTUVfcHJpbnRfZXggKGJpbywKKysgICAgICAgICAgWDUwOV9nZXRfc3ViamVj
dF9uYW1lIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEsCisgICAgICAg
ICAgIFhOX0ZMQUdfTVVMVElMSU5FKTsKKyAgICAgICBCSU9fcmVhZCAoYmlvLCBidWZmZXIsIGxl
bik7CisgICAgICAgYnVmZmVyW2xlbl0gPSAnXDAnOworQEAgLTc3Nyw2ICs4MjIsNyBAQCBvcGVu
c3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFggKiB4
NTA5X2N0eCkKKyAgICAgIyMjIyMjIyMgICMjIyMgICMjIyMjIyMKKyAqLworIAorKyNpZiBPUEVO
U1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyBzdGF0aWMgQklPX01FVEhPRCBjdXN0
b21fYmlvX21ldGhvZHMgPSB7CisgICBCSU9fVFlQRV9CSU8sCisgICAic3RyZWFtIiwKK0BAIC03
OTUsMTEgKzg0MSwzNCBAQCBCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQorIHsKKyAg
IHJldHVybiAmY3VzdG9tX2Jpb19tZXRob2RzOworIH0KKysjZWxzZQorK3N0YXRpYyBCSU9fTUVU
SE9EICpjdXN0b21fYmlvX21ldGhvZHM7CisrCisrc3RhdGljIEJJT19NRVRIT0QgKgorK0JJT19z
X2dzdF9kdGxzX2Nvbm5lY3Rpb24gKHZvaWQpCisreworKyAgaWYgKGN1c3RvbV9iaW9fbWV0aG9k
cyAhPSBOVUxMKQorKyAgICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworKworKyAgY3VzdG9t
X2Jpb19tZXRob2RzID0gQklPX21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJlYW0iKTsKKysg
IGlmIChjdXN0b21fYmlvX21ldGhvZHMgPT0gTlVMTAorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRf
d3JpdGUgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKKysgICAgICB8fCAh
QklPX21ldGhfc2V0X3JlYWQgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9yZWFkKQor
KyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0
aG9kX2N0cmwpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3RvbV9iaW9fbWV0
aG9kcywgYmlvX21ldGhvZF9uZXcpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9kZXN0cm95IChj
dXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfZnJlZSkpIHsKKysgICAgQklPX21ldGhfZnJl
ZSAoY3VzdG9tX2Jpb19tZXRob2RzKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICBy
ZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworK30KKysjZW5kaWYKKyAKKyBzdGF0aWMgaW50Cisg
YmlvX21ldGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgc2l6ZSkK
KyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJp
by0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElP
TiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiQklP
OiB3cml0aW5nICVkIiwgc2l6ZSk7CisgCitAQCAtODI0LDcgKzg5Myw3IEBAIGJpb19tZXRob2Rf
d3JpdGUgKEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgc3RhdGljIGlu
dAorIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6
ZSkKKyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04g
KGJpby0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVD
VElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAgIEdzdER0bHNDb25uZWN0aW9uUHJpdmF0ZSAq
cHJpdiA9IHNlbGYtPnByaXY7CisgICBndWludCBpbnRlcm5hbF9zaXplOworICAgZ2ludCBjb3B5
X3NpemU7CitAQCAtODY4LDcgKzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBj
aGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyBzdGF0aWMgbG9uZworIGJpb19tZXRob2RfY3Ry
bCAoQklPICogYmlvLCBpbnQgY21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCisgeworLSAgR3N0
RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7Cisr
ICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRf
ZGF0YSAoYmlvKSk7CisgICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5w
cml2OworIAorICAgc3dpdGNoIChjbWQpIHsKK0BAIC05MTYsOCArOTg1LDggQEAgYmlvX21ldGhv
ZF9uZXcgKEJJTyAqIGJpbykKKyB7CisgICBHU1RfTE9HX09CSkVDVCAoTlVMTCwgIkJJTzogbmV3
Iik7CisgCistICBiaW8tPnNodXRkb3duID0gMDsKKy0gIGJpby0+aW5pdCA9IDE7CisrICBCSU9f
c2V0X3NodXRkb3duIChiaW8sIDApOworKyAgQklPX3NldF9pbml0IChiaW8sIDEpOworIAorICAg
cmV0dXJuIDE7CisgfQorQEAgLTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2ZyZWUgKEJJTyAq
IGJpbykKKyAgICAgcmV0dXJuIDA7CisgICB9CisgCistICBHU1RfTE9HX09CSkVDVCAoR1NUX0RU
TFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpLCAiQklPIGZyZWUiKTsKKysgIEdTVF9MT0dfT0JKRUNU
IChHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklPIGZyZWUiKTsK
KyAgIHJldHVybiAwOworIH0KKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9w
YXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hl
Y2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9n
ZW5lcmF0ZV9rLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5j
NjY4NzczNzBjNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVn
aW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dl
bmVyYXRlX2sucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSAzYTA2OTE5M2UyNTM2NGViZGFj
YWM4NmY0YjAzMDIyYzE1MWVhMjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9V
VEYtOD9xP1NlYmFzdGlhbj0yMERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNv
bT4KK0RhdGU6IE1vbiwgMTQgTm92IDIwMTYgMTE6MzI6MTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRD
SF0gZHRsc2NlcnRpZmljYXRlOiBGaXggZXJyb3IgY2hlY2tpbmcgaW4gUlNBX2dlbmVyYXRlX2tl
eV9leCgpCisgdXNhZ2UKKworV2FzIGJyb2tlbiBkdXJpbmcgdGhlIHBvcnQgZm9yIE9wZW5TU0wg
MS4xLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MzI4
CistLS0KKyBleHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyB8IDcgKysrKy0tLQorIDEgZmls
ZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg
YS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZp
Y2F0ZS5jCitpbmRleCBjMWM5NjAyLi5jMmQ5YmIyIDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0
ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitA
QCAtMjA3LDEyICsyMDcsMTMgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0ZSAq
IHNlbGYpCisgICByc2EgPSBSU0FfbmV3ICgpOworICAgaWYgKHJzYSAhPSBOVUxMKSB7CisgICAg
IEJJR05VTSAqZSA9IEJOX25ldyAoKTsKKy0gICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRfd29y
ZCAoZSwgUlNBX0Y0KQorLSAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAyMDQ4
LCBlLCBOVUxMKSkgeworKyAgICBpZiAoZSA9PSBOVUxMIHx8ICFCTl9zZXRfd29yZCAoZSwgUlNB
X0Y0KQorKyAgICAgICAgfHwgIVJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVM
TCkpIHsKKyAgICAgICBSU0FfZnJlZSAocnNhKTsKKyAgICAgICByc2EgPSBOVUxMOworICAgICB9
CistICAgIEJOX2ZyZWUgKGUpOworKyAgICBpZiAoZSkKKysgICAgICBCTl9mcmVlIChlKTsKKyAg
IH0KKyAjZW5kaWYKKyAKKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1m
aXJzdC1tb29mLWZvci1mci5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5w
YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2E2MGRiNDc3MmIK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJl
dmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gK
QEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJiZmE0NTZmMWVk
NGU1ZGI0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhhYmllciBSb2RyaWd1ZXog
Q2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorRGF0ZTogVGh1LCA3IEFwciAyMDE2IDEzOjU3
OjE2ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhwb3NlIHN0cmVh
bXMgd2l0aCBmaXJzdCBtb29mIGZvcgorIGZyYWdtZW50ZWQgZm9ybWF0IgorCitUaGlzIHJldmVy
dHMgY29tbWl0IGQ4YmI2Njg3ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2YWQuCistLS0K
KyBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxIC0KKyAy
IGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQorCitkaWZm
IC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworaW5k
ZXggMzliZTE2My4uOTYzNmI0YiAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCisr
KysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTYwOSw3ICs2MDksNiBAQCBnc3RfcXRkZW11
eF9pbml0IChHc3RRVERlbXV4ICogcXRkZW11eCkKKyAgIHF0ZGVtdXgtPnN0YXRlID0gUVRERU1V
WF9TVEFURV9JTklUSUFMOworICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7CisgICBxdGRl
bXV4LT5wb3N0ZWRfcmVkaXJlY3QgPSBGQUxTRTsKKy0gIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmln
dXJlID0gRkFMU0U7CisgICBxdGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OworICAgcXRkZW11eC0+
dG9kcm9wID0gMDsKKyAgIHF0ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9uZXcgKCk7CitA
QCAtMjA0OSw3ICsyMDQ4LDYgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRl
bXV4LCBnYm9vbGVhbiBoYXJkKQorICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRkZW11eC0+bWVk
aWFfY2FwcywgTlVMTCk7CisgICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7CisgICAgIHF0ZGVt
dXgtPmdvdF9tb292ID0gRkFMU0U7CistICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0g
RkFMU0U7CisgICB9IGVsc2UgaWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7CisgICAgIGdzdF9mbG93
X2NvbWJpbmVyX3Jlc2V0IChxdGRlbXV4LT5mbG93Y29tYmluZXIpOworICAgICBmb3IgKG4gPSAw
OyBuIDwgcXRkZW11eC0+bl9zdHJlYW1zOyBuKyspCitAQCAtNjEwNCw3ICs2MTAyLDYgQEAgZ3N0
X3F0ZGVtdXhfcHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZv
cmNlKQorICAgICAgICAgICAgICZmb3VyY2MpOworICAgICAgICAgaWYgKGZvdXJjYyA9PSBGT1VS
Q0NfbW9vdikgeworICAgICAgICAgICBnaW50IG47CistICAgICAgICAgIGdib29sZWFuIGdvdF9z
YW1wbGVzID0gRkFMU0U7CisgCisgICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdtZW50ZWQgc2V0
dXAgd2UgY291bGQgdHJ5IHRvIHNjYW4gZm9yIG1vcmUKKyAgICAgICAgICAgICogYW5kIGVuZCB1
cCBhdCB0aGUgdGhlIG1vb3YgKGFmdGVyIG1kYXQpIGFnYWluICovCitAQCAtNjEzNiwyNyArNjEz
MywxOSBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwg
Z2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAgKGRlbXV4LCBk
ZW11eC0+bW9vdl9ub2RlKTsKKyAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3RyZWUgKGRlbXV4
KTsKKyAgICAgICAgICAgICBxdGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgpOworKyAgICAg
ICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KQorKyAgICAgICAgICAgICAgcXRkZW11eF9leHBv
c2Vfc3RyZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAgIGVsc2UgeworIAorLSAgICAgICAgICAg
IGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAgICAgICAgICAg
IFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAg
ICAgZ290X3NhbXBsZXMgfD0gc3RyZWFtLT5zdGJsX2luZGV4ID49IDA7CistICAgICAgICAgICAg
fQorLSAgICAgICAgICAgIGlmICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3NhbXBsZXMpIHsK
Ky0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KSB7CistICAgICAgICAgICAgICAg
IHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKy0gICAgICAgICAgICAgIH0gZWxzZSB7
CistICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKysp
IHsKKy0gICAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3Ry
ZWFtc1tuXTsKKy0gICAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFt
IChkZW11eCwgc3RyZWFtKTsKKy0gICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgZm9y
IChuID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworKyAgICAgICAgICAgICAgICBR
dERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKysKKysgICAgICAgICAg
ICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7CisgICAg
ICAgICAgICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRp
bmdfc2VnbWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmln
dXJlID0gRkFMU0U7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgIGRlbXV4
LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IFRSVUU7CisgICAgICAgICAgICAgfQorIAorICAgICAgICAg
ICAgIGRlbXV4LT5nb3RfbW9vdiA9IFRSVUU7CisrICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hl
Y2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKKyAKKyAgICAgICAgICAgICAvKiBmcmFn
bWVudGVkIHN0cmVhbXMgaGVhZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0b21zICovCisg
ICAgICAgICAgICAgaWYgKCFkZW11eC0+ZnJhZ21lbnRlZCkgeworQEAgLTYxNzUsNyArNjE2NCw2
IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9v
bGVhbiBmb3JjZSkKKyAgICAgICAgICAgICBndWludDY0IGRpc3QgPSAwOworICAgICAgICAgICAg
IEdzdENsb2NrVGltZSBwcmV2X3B0czsKKyAgICAgICAgICAgICBndWludDY0IHByZXZfb2Zmc2V0
OworLSAgICAgICAgICAgIGdpbnQgbjsKKyAKKyAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNU
IChkZW11eCwgIlBhcnNpbmcgW21vb2ZdIik7CisgCitAQCAtNjIwOSwyNSArNjE5NywxNSBAQCBn
c3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4g
Zm9yY2UpCisgICAgICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKyAgICAgICAgICAg
ICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgLyogaW4gTVNTIHdl
IG5lZWQgdG8gZXhwb3NlIHRoZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0
IGdldCBhIG1vb3YgCistICAgICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBmb3JtYXQgbmVl
ZCB0byBiZSBleHBvc2VkIGlmIGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBkYXRhICovCist
ICAgICAgICAgICAgaWYgKGRlbXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGluZ19jb25maWd1
cmUpIHsKKy0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKKy0gICAgICAgICAg
ICAgICAgaWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CistICAgICAgICAgICAgICAg
ICAgR3N0U2VnbWVudCBzZWdtZW50OworLSAgICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2lu
aXQgKCZzZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworLSAgICAgICAgICAgICAgICAgIEdTVF9E
RUJVR19PQkpFQ1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworLSAgICAgICAg
ICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21l
bnQgKCZzZWdtZW50KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBxdGRl
bXV4X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAg
ICAgICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7Cist
ICAgICAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNb
bl07CistICAgICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVt
dXgsIHN0cmVhbSk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvKiBpbiBNU1Mg
d2UgbmVlZCB0byBleHBvc2UgdGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29u
J3QgZ2V0IGEgbW9vdiAqLworKyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21vZGUgJiYgIWRl
bXV4LT5leHBvc2VkKSB7CisrICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25ld3Nl
Z21lbnQpIHsKKysgICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OworKyAgICAgICAg
ICAgICAgICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKKysg
ICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVuZGluZ19uZXdz
ZWdtZW50Iik7CisrICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBn
c3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKyAgICAgICAgICAgICAgIH0KKy0gICAg
ICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7
CistICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKKysgICAg
ICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKyAgICAgICAgICAgICB9
CisgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVt
dXgsICJEaXNjYXJkaW5nIFttb29mXSIpOworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11
eC5oIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK2luZGV4IDYwNjEyMTUuLmVjZjBjNjMgMTAwNjQ0
CistLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgK
K0BAIC04OSw3ICs4OSw2IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBnYm9vbGVhbiBwb3N0
ZWRfcmVkaXJlY3Q7CisgCisgICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLworLSAgZ2Jvb2xl
YW4gcGVuZGluZ19jb25maWd1cmU7CisgICBndWludCBuZWVkZWRieXRlczsKKyAgIGd1aW50IHRv
ZHJvcDsKKyAgIEdzdEFkYXB0ZXIgKmFkYXB0ZXI7CistLSAKKzIuOC4wLnJjMworCmRpZmYgLS1n
aXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNv
ZGUtdGltZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRo
ZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4xZTlkZDk3Zjc5MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVz
L2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCkBAIC0wLDAg
KzEsMTQ2IEBACitGcm9tIDQ2ZDNlMGZhYTkyMjY0MzA5NGE1ZTQ2YTMyZTRmODJmNzc0YWU3NzIg
TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/RW5yaXF1ZT0yME9jYT1D
Mz1CMWE9MjBHb256PUMzPUExbGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KK0RhdGU6IFR1ZSwg
MTAgTm92IDIwMTUgMTM6MDk6MDAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIHRoZSB0ZmR0
IGRlY29kZSB0aW1lIHdoZW4gaXQncyBzaWduaWZpY2FudGx5IGRpZmZlcmVudAorIHRoYW4gdGhl
IHRpbWUgaW4gdGhlIGxhc3Qgc2FtcGxlIGlmIGFsd2F5cy1ob25vci10ZmR0IGlzIGVuYWJsZWQK
KworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDIzMAorLS0t
CisgZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrCisgZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAgMSArCisg
MiBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nc3QvaXNv
bXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA4ODA1OTVlLi5kOGI1
NGYwIDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQv
cXRkZW11eC5jCitAQCAtNTM1LDYgKzUzNSwxMSBAQCBzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9h
cHBlbmRfcHJvdGVjdGlvbl9zeXN0ZW1faWQgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICBj
b25zdCBnY2hhciAqIGlkKTsKKyBzdGF0aWMgdm9pZCBxdGRlbXV4X2dzdF9zdHJ1Y3R1cmVfZnJl
ZSAoR3N0U3RydWN0dXJlICogZ3N0c3RydWN0dXJlKTsKKyAKKytzdGF0aWMgdm9pZCBnc3RfcXRk
ZW11eF9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisrICAg
IGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Cisrc3RhdGljIHZvaWQg
Z3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lk
LAorKyAgICBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworKworIHN0YXRpYyB2
b2lkCisgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3MpCisg
eworQEAgLTU0Niw4ICs1NTEsMjEgQEAgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11
eENsYXNzICoga2xhc3MpCisgCisgICBwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVla19w
YXJlbnQgKGtsYXNzKTsKKyAKKysgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IGdzdF9x
dGRlbXV4X3NldF9wcm9wZXJ0eTsKKysgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IGdz
dF9xdGRlbXV4X2dldF9wcm9wZXJ0eTsKKysKKyAgIGdvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBn
c3RfcXRkZW11eF9kaXNwb3NlOworIAorKyAvKioKKysgICAqIEdzdFF0RGVtdXg6OmFsd2F5cy1o
b25vci10ZmR0OgorKyAgICoKKysgICAqIFJlcXVlc3RzIHRoZSBkZW11eGVyIHRvIHJlc3BlY3Qg
d2hhdCB0aGUgVEZEVCBhdG9tIHNheXMgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24g
dGltZXN0YW1wcy4gRGVmYXVsdHMgdG8gRkFMU0UuCisrICAgKi8KKysgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkgKGdvYmplY3RfY2xhc3MsIFBST1BfQUxXQVlTX0hPTk9SX1RGRFQs
CisrICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4gKCJhbHdheXMtaG9ub3ItdGZkdCIsICJBbHdh
eXMgaG9ub3IgVEZEVCIsCisrICAgICAgICAgICJXaGVuIGVuYWJsZWQsIFRGRFQgYXRvbSB3aWxs
IGFsd2F5cyBiZSByZXNwZWN0ZWQgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24gdGlt
ZXN0YW1wcyIsCisrICAgICAgICAgIEZBTFNFLCBHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1f
U1RBVElDX1NUUklOR1MpKTsKKysKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmNoYW5nZV9zdGF0ZSA9
IEdTVF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpOworICNpZiAwCisg
ICBnc3RlbGVtZW50X2NsYXNzLT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0
ZGVtdXhfc2V0X2luZGV4KTsKK0BAIC02MTEsNiArNjI5LDcgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAo
R3N0UVREZW11eCAqIHF0ZGVtdXgpCisgICBxdGRlbXV4LT5jZW5jX2F1eF9pbmZvX3NpemVzID0g
TlVMTDsKKyAgIHF0ZGVtdXgtPmNlbmNfYXV4X3NhbXBsZV9jb3VudCA9IDA7CisgICBxdGRlbXV4
LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMgPSBOVUxMOworKyAgcXRkZW11eC0+YWx3YXlzX2hvbm9y
X3RmZHQgPSBGQUxTRTsKKyAgIGdfcXVldWVfaW5pdCAoJnF0ZGVtdXgtPnByb3RlY3Rpb25fZXZl
bnRfcXVldWUpOworICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNlZ21lbnQsIEdTVF9G
T1JNQVRfVElNRSk7CisgICBxdGRlbXV4LT5mbG93Y29tYmluZXIgPSBnc3RfZmxvd19jb21iaW5l
cl9uZXcgKCk7CitAQCAtNjM5LDYgKzY1OCw0MiBAQCBnc3RfcXRkZW11eF9kaXNwb3NlIChHT2Jq
ZWN0ICogb2JqZWN0KQorIH0KKyAKKyBzdGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4X3NldF9wcm9w
ZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgY29uc3QgR1ZhbHVl
ICogdmFsdWUsIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4ICpxdGRlbXV4
ID0gR1NUX1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQpIHsKKysgICAg
Y2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1RfTE9DSyAocXRk
ZW11eCk7CisrICAgICAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBnX3ZhbHVlX2dldF9i
b29sZWFuICh2YWx1ZSk7CisrICAgICAgR1NUX09CSkVDVF9VTkxPQ0sgKHF0ZGVtdXgpOworKyAg
ICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q
Uk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJlYWs7CisrICB9
CisrfQorKworK3N0YXRpYyB2b2lkCisrZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0
ICogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUgKiB2YWx1ZSwKKysgICAgR1BhcmFtU3Bl
YyAqIHBzcGVjKQorK3sKKysgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1VWCAob2Jq
ZWN0KTsKKysKKysgIHN3aXRjaCAocHJvcF9pZCkgeworKyAgICBjYXNlIFBST1BfQUxXQVlTX0hP
Tk9SX1RGRFQ6CisrICAgICAgR1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsKKysgICAgICBnX3Zh
bHVlX3NldF9ib29sZWFuICh2YWx1ZSwgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQpOworKyAg
ICAgIEdTVF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAgZGVm
YXVsdDoKKysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwg
cHJvcF9pZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMgdm9p
ZAorIGdzdF9xdGRlbXV4X3Bvc3Rfbm9fcGxheWFibGVfc3RyZWFtX2Vycm9yIChHc3RRVERlbXV4
ICogcXRkZW11eCkKKyB7CisgICBpZiAocXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0KSB7CitAQCAt
Mjk5NSw2ICszMDUwLDE2IEBAIHF0ZGVtdXhfcGFyc2VfdHJ1biAoR3N0UVREZW11eCAqIHF0ZGVt
dXgsIEdzdEJ5dGVSZWFkZXIgKiB0cnVuLAorICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3Ry
ZWFtLT5uX3NhbXBsZXMgLSAxXS50aW1lc3RhbXAgKworICAgICAgICAgICBzdHJlYW0tPnNhbXBs
ZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbjsKKyAKKysgICAgICAvKiBJZiB3ZSdy
ZSBhbHdheXMgaG9ub3JpbmcgVEZEVCBhbmQgdGhlcmUncyBhIHNpZ25pZmljYXRpdmUgZGlmZmVy
ZW5jZQorKyAgICAgICAqIGJldHdlZW4gdGhlIGRlY29kZV90cyBhbmQgdGhlIHRpbWVzdGFtcCwg
cHJlZmVyIGRlY29kZV90cyAqLworKyAgICAgIGlmIChxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZk
dCA9PSBUUlVFCisrICAgICAgICAgICYmIGFicyAoZGVjb2RlX3RzIC0gdGltZXN0YW1wKSA+Cisr
ICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLmR1cmF0aW9u
KSB7CisrICAgICAgICBHU1RfSU5GT19PQkpFQ1QgKHF0ZGVtdXgsCisrICAgICAgICAgICAgImRl
Y29kZV90cyBpcyBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIHRpbWVzdGFtcCwgdXNpbmcg
ZGVjb2RlX3RzIik7CisrICAgICAgICB0aW1lc3RhbXAgPSBkZWNvZGVfdHM7CisrICAgICAgfQor
KworICAgICAgIGdzdF90cyA9IFFUU1RSRUFNVElNRV9UT19HU1RUSU1FIChzdHJlYW0sIHRpbWVz
dGFtcCk7CisgICAgICAgR1NUX0lORk9fT0JKRUNUIChxdGRlbXV4LCAiZmlyc3Qgc2FtcGxlIHRz
ICUiIEdTVF9USU1FX0ZPUk1BVAorICAgICAgICAgICAiIChleHRlbmRzIHByZXZpb3VzIHNhbXBs
ZXMpIiwgR1NUX1RJTUVfQVJHUyAoZ3N0X3RzKSk7CitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9x
dGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAoraW5kZXggNTNiZDA3MS4uZWNmMGM2MyAx
MDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5oCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVt
dXguaAorQEAgLTE1NCwxMiArMTU0LDIwIEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBndWlu
dDggKmNlbmNfYXV4X2luZm9fc2l6ZXM7CisgICBndWludDMyIGNlbmNfYXV4X3NhbXBsZV9jb3Vu
dDsKKyAKKysgIGdib29sZWFuIGFsd2F5c19ob25vcl90ZmR0OworIH07CisgCisgc3RydWN0IF9H
c3RRVERlbXV4Q2xhc3MgeworICAgR3N0RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKKyB9Owor
IAorKy8qIHByb3BzICovCisrZW51bQorK3sKKysgIFBST1BfMCwKKysgIFBST1BfQUxXQVlTX0hP
Tk9SX1RGRFQKKyt9OworKworIEdUeXBlIGdzdF9xdGRlbXV4X2dldF90eXBlICh2b2lkKTsKKyAK
KyBHX0VORF9ERUNMUworLS0gCisyLjYuMQorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hl
cy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlm
LXRoZS0ucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1w
dXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0NDZiZDU0NGMzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZl
bnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gNWU0M2Vl
NTk4OWQ3YjUxZGNiMzE0NWJkOTk3NTI1MjQ3YTNkNjJkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw
MDEKK0Zyb206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNlYmFzdGlhbkBj
ZW50cmljdWxhci5jb20+CitEYXRlOiBXZWQsIDExIE1heSAyMDE2IDE1OjA2OjM5ICswMzAwCitT
dWJqZWN0OiBbUEFUQ0hdIHR5cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50IGRvd25zdHJl
YW0gaWYgdGhlIHNpbmtwYWQgaXMKKyBub3QgaW4gUFVMTCBtb2RlCisKK1RoZSBvdGhlciBzaWdu
YWwgaGFuZGxlcnMgb2YgdGhlIHR5cGUtZm91bmQgc2lnbmFsIG1pZ2h0IGhhdmUgcmVhY3RpdmF0
ZWQKK3R5cGVmaW5kIGluIFBVTEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQUyBldmVudCBh
dCB0aGF0IHBvaW50IHdvdWxkIGNhdXNlCitkZWFkbG9ja3MgYW5kIGlzIGluIGdlbmVyYWwgdW5l
eHBlY3RlZCBieSBlbGVtZW50cyB0aGF0IGFyZSBpbiBQVUxMIG1vZGUuCisKK2h0dHBzOi8vYnVn
emlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDYKKy0tLQorIHBsdWdpbnMvZWxl
bWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBp
bnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5k
ZWxlbWVudC5jIGIvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYworaW5kZXgg
YzY4NjQxMi4uNDUzZmY3NSAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZp
bmRlbGVtZW50LmMKKysrKyBiL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMK
K0BAIC0xNzksNiArMTc5LDEwIEBAIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUgKEdz
dFR5cGVGaW5kRWxlbWVudCAqIHR5cGVmaW5kLAorICAgR1NUX0lORk9fT0JKRUNUICh0eXBlZmlu
ZCwgImZvdW5kIGNhcHMgJSIgR1NUX1BUUl9GT1JNQVQgIiwgcHJvYmFiaWxpdHk9JXUiLAorICAg
ICAgIGNhcHMsIHByb2JhYmlsaXR5KTsKKyAKKysgIC8qIERvIG5vdGhpbmcgaWYgZG93bnN0cmVh
bSBpcyBwdWxsaW5nIGZyb20gdXMgKi8KKysgIGlmIChHU1RfUEFEX01PREUgKHR5cGVmaW5kLT5z
cmMpID09IEdTVF9QQURfTU9ERV9QVUxMKQorKyAgICByZXR1cm47CisrCisgICBHU1RfT0JKRUNU
X0xPQ0sgKHR5cGVmaW5kKTsKKyAKKyAgIC8qIE5vdyBhY3R1YWxseSBzZW5kIHRoZSBDQVBTIGV2
ZW50IGRvd25zdHJlYW0uCistLSAKKzIuOC4xCg==
</data>
<flag name="commit-queue"
          id="329556"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>308388</attachid>
            <date>2017-04-27 07:52:01 -0700</date>
            <delta_ts>2017-04-27 13:41:37 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews113 for mac-elcapitan</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>1916779</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
ZWat88ZNOneD0+WqHlR5YLxL804x8I8szvrL0G4PfHtUm/W63WTwEovoOA0O2eU+1lNFf2sGxTFf
eePNqozOyWvIj+1J0fTaDfMe56dusC0X9uHmRuPaq7SY9py4yZSVl7y7ruR8rLeNNF+f3rb5/jB3
HIuxWa9IbnZ6HJ8VZ6T7/XRSOv7qpbhjj/jdmSI81r1HWXcXqmVreW2MuzORvq43Sta/8lHceklT
+93cuPbFt23+6hR31yk8bAusXK09Cn1nYnv2sN3AkrZsNk28bIieRxtTn7/kKylUes42LV6G/mhx
a8X70PecNl1uj0O/NsS+y/50uOuvDo55aU/8KHQ25MC3L5dxIs/y3ptzqi3eRkWkdMre22gbK6N7
loWe2vMv7mXhzUbSwLHRRRb4oRNW0XWGwzC09y3XPbXs4bRZcy746Unf2yrOxdBZ3V57V220dTap
dpqMx4P2iXXzZFEox8lSm+zmtXV71Ihldtq97OXzvFG832zpPj3bCd/el/fJ9CPor3MtvXeKU/c8
HveF2eTF4Hyzd+riEpTzmtqdGbq3mi3KgXIx5hdzlR5GrqXclqN+7xp9ZM3VMZ2Pw82kt9xartwp
399fp85iYb2kfNr1a6ulpQWedVbzMpOuUitoppLR2WehumkPbzwX3txT8vFZPhu9LSs6bqNUePf8
ela6V7+hBrVOez0IOqm71HFRsea5u5gHHms5QbFpHUfb64eWr3Q1WqrlYT951bzR1ps0wqS1nbxd
7WbTr3UC42Dot1fhhnrItH5vKC+a98z7cPay09srjvme3SZunJ3Zq9zaWsuuI38ylN/3fuWn/wJQ
SwMEFAACAAgAwyybSu0rE3nvCQAAOxIAABUAHABfd3B0X2NlcnRzLzAzRTBCMi5wZW1VVAkAAy3m
AVkt5gFZdXgLAAEE9QEAAAQUAAAAnVZrk6LIEv3ur/Dj3XBnLd6QEfuhALW1xfZt67cCCsUHtIrP
X38zmd0eZ9vZG3GJiQmbojKzTp46Jz15KNIkjUQhoVLFxxeF+P6Lnqk8HNM8g6pW/Q+7qr99Lozk
IRXbau+0C+UBqqqhKxqjbzTJwsfv0mUmitNBVvl2mR/SYrWD6nElVMOc4R/DEW9k0eH2UWCWz03t
4/FEUb3enxcZfvvYiiLJD7tvhTwWxx+1iW0ap8Xt8wU9vbyouhK/llDlH4eqalUVFTQbmFFVmWJV
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
ZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAkAA93zAVlc5gFZdXgLAAEE9QEAAAQUAAAAQ291bGQg
bm90IGdlbmVyYXRlIGEga2V5IHBhaXIsIHN0YXR1cyAtNDMwNApQSwMEFAACAAgAjzSbSjA7uLFL
AAAAaAAAADwAHABjcnlwdG8vc3VidGxlL3JzYS1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0
ZXJzLXN0ZGVyci50eHRVVAkAA97zAVle5gFZdXgLAAEE9QEAAAQUAAAAbcuxDYAwDETRniluHxpW
sGRLsYA4ci5EbA8NHfV/f0u/hIbd7o7pLDEIUXV6VDmgQoGkoQbRR2uRNF3Wj+OMN7JIBWegpZ/W
f4YHUEsDBAoAAAAAANMsm0oAAAAAAAAAAAAAAAAPABwAY3J5cHRvL3dvcmtlcnMvVVQJAANN5gFZ
MfgBWXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADTLJtKAAAAAAAAAAAAAAAAFgAcAGNyeXB0by93
b3JrZXJzL3N1YnRsZS9VVAkAA03mAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAgAAAIU0m0ol
4NMILAAAACwAAAAxABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktc3Rk
ZXJyLnR4dFVUCQADyfMBWU3mAVl1eAsAAQT1AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBr
ZXkgcGFpciwgc3RhdHVzIC00MzA0ClBLAwQKAAAAAADSLJtKAAAAAAAAAAAAAAAADQAcAGRpc3Bs
YXlsaXN0cy9VVAkAA0zmAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIU0m0qjV/3oUAAA
AI4AAAAyABwAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zvcm1zLXN0ZGVyci50
eHRVVAkAA8rzAVlM5gFZdXgLAAEE9QEAAAQUAAAAcy9KLMjITC52zs8rSa0osbJKTy1xDvHV0FTI
LFbIyy9RqEwtUUjOzy1ILMlMyklVKM8syVAoSk3OL0rJzEsHyoC1FetxuaMbVIxmEDGGAABQSwME
FAACAAgAhTSbSvKWldVHAAAASQAAACkAHABkaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qt
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
ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLXN0ZGVyci50eHRVVAkAA/rzAVl85gFZdXgL
AAEE9QEAAAQUAAAA7dbNattAEADgu59i8KEk0Hj9o9iOQCf/QGhwgmTXva52R9ZSWWN2V7QmBPwa
gfbl/CSV1KSEtqGF+lDsvUhomR3NzH4ITcLwNvRhylWGEizBCi3Y7QZBScytShRqoAQ0Giq0QOAW
FuENJGW8zxh7T1mxRsPG3HI2WUZsifE7ZdkN31Jh52isYSiVVfmKbbixGBPXko3D+ZR/xGmZBT4p
mwJqTRom9XVMa67yYBaNSBCv174vwYgkBt1+G5rzFOsaYL/78iLZfvcVBBWZzPe7RwsxAm0wLzuL
UfDCINgUddmbgZzAFCKtk7SasDCor/OEgvtZVPYXHK6/tzCLqvsdt2lwoHyLXKLOtmVQPZ2g/XmQ
XLUTr+0NeacN9z/N8e42uv7w6xyhOXsxBCh3SKVRWNLb5sNDq9F4tdqotlA9jUgjq7bzjWJVefWZ
tdbrs8veOfhgLLdKQEyUwVO471dxvm/S6qBC3GRc1J2dCcqNheV86vuR1WV38Oa8MXFCj0rooDNw
Qg8h9DmdYT+GcpGQvpCar1ZVaf/M9vd5/xfBf+r/IKz/5iWvWe95Pbxy1p31k7DudYbOurN+9NZR
9ody6DnrzvrxW4/FoJ+gs+6sn8B3veOJrnTWnfUT+F/v9r1LfmTWvwFQSwMEFAACAAgAqDSbSsxZ
KrHjAAAAdwEAACwAHABlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtbm9zY3JpcHQtc3RkZXJyLnR4
dFVUCQADC/QBWY3mAVl1eAsAAQT1AQAABBQAAAB1j0FLw0AQhe/9FXOSRKQDgghLCRRtLhaVpDTn
yWY2LqSZsDsR+u9NbEQRepz33vdmZlcUb4WBnHzHDagABfvhPxniWAeOMgbL4CSAmwIGEY/SjSeO
+ExKuKtKrLh+8Yp7OsuoB44akRuvvm/xpyAi1bwe+nZ1FS+/g/P0JIGxE2o44HIMWod7bsmeJ397
0dZ2GJKH+8cUDEQl9RYKdu8aNkuHMf+RDK5axtjApJxY6aNCdciNKTVMT8DN3S+WBzrxrFxiR7Yq
fxa+SsNwm82BqI0xbuyteuk3tUgHyUKnWbr6AlBLAwQUAAIACACnNJtK8TqfnOIAAAB7AQAAMgAc
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
m0oMuE4acwEAAPAEAAA2ABwAZmFzdC9kb20vRmlsZUxpc3QtaXRlcmF0b3ItdXNpbmctb3Blbi1w
YW5lbC1zdGRlcnIudHh0VVQJAAMK9AFZjOYBWXV4CwABBPUBAAAEFAAAAO2SwUrDQBCG732KoQdR
kG6xVtuFnGoLolRJWut1s5k0C8lO2Z2gRYS+hqAv1ycxiQqieNGLiJeFGf75d76ZGYfhRShhokyO
CTDBEhl4vUIwCVo2qUEHlIJDT6XTCIphHp5DWumlEOKK8rJAL04UKzFeRGKB8Zlhca7WVPIMPXuR
Ks8ioUJwFXb4luHGcAboHDkYN+8JFcrYYBqNSJNqci8pGFGCwcFRF9qzDJtvYbt5fHPabp5AU5kn
drt5YIgRaIW2IolRq9IjcIauYvFgCXyps8ah04a5R3dqUwruplHFE/yIZx+m0aQyuFScBd+3mNsE
Xb42dtkMIOjeHqcqHsSDw2G314W7D6O6vIhOrz+PCtrTd6hQVSTGoWZy6/b9fafV+rLBqNlwHY3I
oajL1cqImqxZS6codvu9PZDgWbHREBPl8CqXstZJ6bN6HSGucqWxTu1qsp5hMZtIGbGr6GBnrzX+
v7vffnfDfr/XG/6xu3sGUEsDBAoAAAAAAPssm0oAAAAAAAAAAAAAAAAaABwAZmFzdC9kb20vTXV0
YXRpb25PYnNlcnZlci9VVAkAA5rmAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALA0m0pL
G4E1pwAAANIAAAA/ABwAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRhYmFzZS1jYWxsYmFj
ay1kZWxpdmVyeS1zdGRlcnIudHh0VVQJAAMb9AFZmuYBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE
4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwA
kxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QT
Vi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBAoAAAAAAAot
m0oAAAAAAAAAAAAAAAAQABwAZmFzdC9kb20vV2luZG93L1VUCQADtOYBWTH4AVl1eAsAAQT1AQAA
BBQAAABQSwMEFAACAAgAvDSbSkK7zYKCAQAAegUAADoAHABmYXN0L2RvbS9XaW5kb3cvd2luZG93
LXBvc3RtZXNzYWdlLWNsb25lLWZyYW1lcy1zdGRlcnIudHh0VVQJAAMz9AFZtOYBWXV4CwABBPUB
AAAEFAAAAO1STWvbQBC9+1cMPgQbGq9psZMs6OQPMA1OkOw419XuyFqQdsTuiNSEgP9Gof1z/iWV
1B5C2t58anpZmMeb2Xlv3iKO72IJS2ULNMAEe2TgQ4VgDTq2mUUPlIHHQLXXCIphG99C1vClEOKB
irrEIOaKlVjsErHD9LNlcasOVPMGAweRqcDCUCl21hl6Es0Xl23/ZV0VpMwo57KAJ8s5oPfkYdG9
cyqVddE6mZEm1WE/IZiRwejjdAz9TY7dJnA6fvvT1NPxO2iqC+NOx68MKQJV6BqhKWpVBwTO0TdS
AziCUOu8mzbqwzagX7mMoud10siNzi33A6yTZYPdK86js07dOoO+OFi37yyLxl+uslTf6KtpNknH
8PzG3Pu7ZPX4u7nQX78yBJoOYz1qJn/ov7yMer2/7px0MWmrGXkUbbuqrGjFdoccleVg8mkIEgIr
thpSogJ+0aVseVKGvD1ajFWhNLbQQJMLDLvNUsqEfaMOLoa9xf/wvovwXuN0gvofC+8PUEsDBAoA
AAAAAAotm0oAAAAAAAAAAAAAAAAMABwAZmFzdC9ldmVudHMvVVQJAAO05gFZMfgBWXV4CwABBPUB
AAAEFAAAAFBLAwQUAAIACAC9NJtKSRxpxowBAAAECgAAPQAcAGZhc3QvZXZlbnRzL2RhdGEtdHJh
bnNmZXItZmlsZXMtYXR0cmlidXRlLWlkZW50aXR5LXN0ZGVyci50eHRVVAkAAzX0AVm05gFZdXgL
AAEE9QEAAAQUAAAA7ZLPattAEMbvforBh5JA8apJrMCCTv4DocEJkl3nulqNrAV5x+yO2pgQ8GsU
2pfzk3SlJhBSesohtOiysB8z3+4385ul6U0qYa5MjQUwwQYZeL9DMAVaNqVBB1SCQ0+N0wiKYZVe
QxnqpRDiC9XNFr2YKlZits7EGvPPhsW12lPDS/TsRak8C/wa7LzgoIz4nuGb4QrQOXIw684pbZWx
ySKbkCbVab8lmFCByVkcwXBZYfcyHA8/np2Oh5+gqakLezx8Z8gRaIc2hMlRq8YjcIUuxPFgCXyj
q85hNISVR3dlS0oeFlmIlLw10kdYZPPgcau4St7ksrIFunpv7KYbQxLdX5ao409xFOdnETy8Gtjt
TXZ19+fAYLh4ERhCR2Ecaia3Hz4+jgaDv/4x61bd3ibkULTtamdEG65bzmi7PRmfn4IEz4qNhpyo
hqdyKds6KX3VLiXFXa00ttKJJusZ1su5lBm7kA4+nA5mPYD/EIDjc33RA9gD+F4ARtGFwh7AHsD3
AzCKx/8ZgL8AUEsDBAoAAAAAAAMtm0oAAAAAAAAAAAAAAAALABwAZmFzdC9maWxlcy9VVAkAA6bm
AVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALU0m0pYP4j7eQEAAFgFAAAlABwAZmFzdC9m
aWxlcy9yZWFkLWJsb2ItYXN5bmMtc3RkZXJyLnR4dFVUCQADJvQBWabmAVl1eAsAAQT1AQAABBQA
AADtUsFqGzEQvfsrHj6UBFrLxNQJgj05NoQGJ+zada5a7WxWsNYYaZbGhIB/o9D+nL8ku9sWQkNv
OYVeBBrNPL335s3T9CbVWBhXUwFh3JNA9juCK8iLKx0FcIlAkZtgCUawTq9Rtv1aKfWV62ZLUV0a
MWq+ydSG8i9O1LXZcyMrihJVaaKobiCqPzBRefaf6MFFaX/BNycVKAQOmPfnJW+N88kym7Fl09d+
lTDjgpKz6RjDVUU9DRwPP16iHQ8/YbmpC388fBfkBN6Rb9XlZE0TCVJRaPVFeEZsbNWjjIZYRwpX
vuTkcZm1GpM31fgRy2zRvt8aqZK3g1z7gkK9d/6+NykZP5yX+cX03E6m0/EYj3/ZeXuTXd29thPD
5Qsr0E4ULpAVDvvh09NoMPgn4azn1d1mHKina3ZOdUr71Y2225PPk1NoRDHiLHLmGr/bte76tI5V
t66UdrWx1JVOLPso2KwWWmcSWnX4cDqY/8/qO83q5OzinWX1GVBLAwQUAAIACAC1NJtKCNiGVXoB
AABYBQAAJQAcAGZhc3QvZmlsZXMvcmVhZC1maWxlLWFzeW5jLXN0ZGVyci50eHRVVAkAAyb0AVmm
5gFZdXgLAAEE9QEAAAQUAAAA7VLBahsxEL37Kx4+lARay0nTJAj25NgQEpywa9e9arWzWcFaY6RZ
GhMC/o1C+nP+ku5uWwgJveUUehFoNPP03ps3TdObVGNmXE0FhHFHAtluCK4gL650FMAlAkVugiUY
wTK9Rtn2a6XUV66bNUV1YcSo6SpTK8qvnKhrs+VGFhQlqtJEUd1AVH9hovLsP9G9i9L+gu9OKlAI
HDDtzwteG+eTeTZhy6av/S5hwgUlx6djDBcV9TSw3z09R9vvfsJyUxd+v/shyAm8Id+qy8maJhKk
otDqi/CM2NiqRxkNsYwULn3JycM8azUmb6rxI+bZrH2/NVIlbwe59AWFeuv8XW9SMr4/K/Pz06Pi
ZGzOxnh4YeftTXb57bWdGM6fWYF2onCBrHDYDh8fR4PBPwlnPa/uNuFAPV2zcapT2q9utF4ffPl8
CI0oRpxFzlzjT7vWXZ/WserWldKmNpa60oFlHwWrxUzrTEKrDh8OB9P/WX2nWT05P35nWf0FUEsD
BAoAAAAAAAMtm0oAAAAAAAAAAAAAAAATABwAZmFzdC9maWxlcy93b3JrZXJzL1VUCQADpeYBWTH4
AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAtDSbSuQZO8h5AQAAWAUAADQAHABmYXN0L2ZpbGVz
L3dvcmtlcnMvd29ya2VyLXJlYWQtYmxvYi1hc3luYy1zdGRlcnIudHh0VVQJAAMj9AFZo+YBWXV4
CwABBPUBAAAEFAAAAO1SwWobMRC9+ysePoQEWsukOE0Ee3JsCA1O2LXjXLXa2axgrTHSLI0JAf9G
ofk5f0l3ty2Elt5yCr0INJp5eu/Nm6XpTaoxN66mAsJ4IIHstgRXkBdXOgrgEoEiN8ESjGCVXqNs
+7VS6o7rZkNRXRoxarbO1JryL07UtdlxI0uKElVpoqhuIKrfMFF59h/p0UVpf8FXJxUoBA6Y9ecl
b4zzySKbsmXT136WMOWCktOzMYbLinoaOOy/v0Y77F9guakLf9h/E+QE3pJv1eVkTRMJUlFo9UV4
Rmxs1aOMhlhFCle+5ORpkbUakzfV+AGLbN6+3xqpkreDXPmCQr1z/qE3KRk/fi7z/MycT/JiMsbT
H3be3mRX93/bieHilRVoJwoXyAqH3fD5eTQY/JNw1vPqblMO1NM1W6c6pf3qRpvN8eTTCTSiGHEW
OXONX+1ad31ax6pbV0rb2ljqSseWfRSsl3OtMwmtOhydDGb/s/pOs2ovxu8sqz8AUEsDBBQAAgAI
ALQ0m0pLhHMheQEAAFgFAAAzABwAZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWJsb2It
c3luYy1zdGRlcnIudHh0VVQJAAMj9AFZo+YBWXV4CwABBPUBAAAEFAAAAO1SwWobMRC9+ysePpQE
WsvEbRIEe3JsCA1O2LXjXLXa2axgrTHSLI0JAf9Gof05f0l3NymElt5yCr0INJp5eu/Nm6Xpdaox
N66mAsK4J4HstgRXkBdXOgrgEoEiN8ESjGCVXqFs+7VS6pbrZkNRXRgxarbO1Jryr07UldlxI0uK
ElVpoqhuIKrfMFF59p/owUVpf8E3JxUoBA6Y9ecFb4zzySKbsmXT155LmHJBycnpGMNlRT0NHPY/
XqMd9j9huakLf9h/F+QE3pJv1eVkTRMJUlFo9UV4Rmxs1aOMhlhFCpe+5ORxkbUakzfV+BGLbN6+
3xipkreDXPmCQr1z/r43KRk/nJV5fmqKz+N8MsbjH3beXGeXd3/bieHilRVoJwoXyAqH3fDpaTQY
/JNw1vPqblMO1NM1W6c6pf3qRpvN0ZfJMTSiGHEWOXONl3atuz6tY9WtK6VtbSx1pSPLPgrWy7nW
mYRWHT4cD2b/s/pOs3oyOX9nWf0FUEsDBBQAAgAIALQ0m0q9sjKweAEAAFgFAAA0ABwAZmFzdC9m
aWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWZpbGUtYXN5bmMtc3RkZXJyLnR4dFVUCQADJPQBWaTm
AVl1eAsAAQT1AQAABBQAAADtUsFqGzEQvfsrHj6UBFrLSdsYBHtybAgJTti141y12tmsYK0x0iyN
CQH/RqH5OX9Jd7cthJbccgq9CDSaeXrvzZul6XWqMTeupgLCuCeB7LYEV5AXVzoK4BKBIjfBEoxg
lV6hbPu1UuqW62ZDUZ0bMWq2ztSa8ksn6srsuJElRYmqNFFUNxDVH5ioPPtP9OCitL/gm5MKFAIH
zPrznDfG+WSRTdmy6Wu/SphyQcnp2RjDZUU9DRz2P16iHfbPsNzUhT/svwtyAm/Jt+pysqaJBKko
tPoiPCM2tupRRkOsIoULX3LyuMhajcmbavyIRTZv32+MVMnbQa58QaHeOX/fm5SMHyZlnk/GX05o
YsZ4/MvOm+vs4u5fOzFcvLAC7UThAlnhsBs+PY0Gg1cJZz2v7jblQD1ds3WqU9qvbrTZHH39fAyN
KEacRc5c43e71l2f1rHq1pXStjaWutKRZR8F6+Vc60xCqw4fjgez/1l9r1k9Ld9ZVn8CUEsDBBQA
AgAIALU0m0p1lVnVdgEAAFgFAAAzABwAZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWZp
bGUtc3luYy1zdGRlcnIudHh0VVQJAAMl9AFZpeYBWXV4CwABBPUBAAAEFAAAAO1SwUoDMRC99yuG
HsSCNrVitYE91RZEqbLbWq/ZZNYNbDMlmUWLCP0NQX+uX+LuqiCKN0/iJZDJzMt7b944ji9jCRNl
CzTABLfIwOsVgjXo2GYWPVAGHgOVXiMohnl8AVnVL4UQ11SUSwziVLES40UiFpieWxYXak0lzzBw
EJkKLOqBID5ggnDk9vHeBq5+gTvLOaD35GHcnKe0VNZF02REmlRTeyvBiAxG/UEP2rMcGxqw3Tx/
RttuXkBTWRi33TwxpAi0QlepS1GrMiBwjr7SF8ARhFLnDUq3DfOA/sxlFD1Mk0pj9Ksa92CaTKr3
K8V59HuQc2fQF2vrbhuTot79cZamg6EZDg/6PXj4YufVZXJ2891OaE8/WQHVhLEeNZNftx8fu63W
j4SThld9G5HHhq5aWVErbVbXXS53jw47ICGwYqshJSrgvV3Kuk/KkNfrinFVKI11aVeTCwyL2UTK
hH2lDnY6rfF/Vv9mVtMTY/5YVl8BUEsDBAoAAAAAABYtm0oAAAAAAAAAAAAAAAALABwAZmFzdC9m
b3Jtcy9VVAkAA8zmAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALk0m0ouX9jvewEAAPg5
AAAzABwAZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXBhdHRlcm5NaXNtYXRjaC1zdGRlcnIudHh0
VVQJAAMt9AFZp+YBWXV4CwABBPUBAAAEFAAAAO3YTUsDMRAG4Lu/Yk62grjehCCC1gpWirJbLIIi
Y3baBnaTNZmt7b83fhwKXvTm4b2EfM1u5jkkIeOyvC0NlbLsG47jTRclJRe8oYfzsiQb2s41QgvO
ZU1vTlc0uPZrblxN8SuIZCeq9y2rXeW5HUfxupIkabBX3IembyUVl6xcjOdVMZeXG6dFFfpopZjw
misbXaejEKXYcozFjzUd2a4bnhwfkKGktTG9d6+9PHcaTyfVyJiHHGXMxVbFhlruWFWiP6OdsZ9p
mrvo1qxizHeqQxt8UprProypNDq/pP3Dr+ZMNjriJJX45NStnW4Pd78+7Rt1jfMyzb8/2BuDFrSg
BS1oQQta0IIWtKAFLWhBC1rQgha0oP0F7SOxkviawiLjfiYHWMACFrCABez/hm1druTl5Kxa51k/
6k+0CJHsiiPb3E+24YS7ArjBDW5wgxvc4AY3uMENbnCDG6/NoAUtaPF+h4MN3ODGjgxa0IIW9wgc
bOAG99+53wFQSwMECgAAAAAABi2bSgAAAAAAAAAAAAAAABAAHABmYXN0L2Zvcm1zL2ZpbGUvVVQJ
AAOs5gFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAC2NJtKrcpjIjMDAACMbwAAMgAcAGZh
c3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LWNoYW5nZS1ldmVudC1zdGRlcnIudHh0VVQJAAMo9AFZ
puYBWXV4CwABBPUBAAAEFAAAAO3dQWvbMBQH8Hs/xSOH0cKIbVm2G0NObQplJS1Ju+4qy1JjSKxg
K6xJKfRrDLYvl08yx8uhbJQdGpA3/peQGEex7B9+ek+2M5pMricpXYhirnKyhh6UJbteKipyVdpC
F6oio6lStVlVUpGwdDe5It2sn3qe99nMVwtVe+fCCm90P/XuVfapsN6VWJuVvVW1rT0tautpUy2a
t83Xmrembx8tfS3sjFRVmYpG7eu5WYiiHI6nZ0Ya0S77tYjOTK6GLPapdztT7Y/T9uX7vqHtyw+S
ZjXPy+3LN0uZIrNUZdOdTEmxqhXZmaqaDtVUGqpXctY20O/RXa2qy1Kb4dN42nRqeIBOfaTx9KL5
fCPsbPjehu7KXFXzdVE+tPti6D8mOstikfNAMp+efttrN9fTyy9/7jXqjV91m5pv5EWlpDXVuvf8
3D86enMzp+0h3306M5VqN08sC2/Xv/YI9ReL4yg8oZRqK2whKTNmTvvV03S3XprWs92hmajlXEi1
W3QsTVlbur+9SNOprZre0YeToxEg/oMQQ8ZPAfHdEDNRHQbivqFOQNxvy/shvmroLYhKxlwDIiB2
AGIsABEQXUMU0SDPAREQOwBRh4CIZMVtspL4kZ/4GCMConOIPBA5B0RAdF2+aUJzIAEREDsAMRsA
IpIVx8nKIB8MggwQAdE9RIE6IiC6hpgELGSnOCMCYgcg+grJCpIV58nKaaQZLnoAROd1xCQIWAKI
gOgcIgt8FLQBsQMQQ0zxIVlxnqzsIEqEZkB0njUHzI8ws4LQ7Do0NxADjYI2IHYAIvNxRgRE53VE
JTnHGBEQXUMc6CjTKGgjWXF+q4DmKkH5BhCdZ81+6OeYa0Zodj5GlEmUIDQDYhcghpjiQ2h2PkaU
CdcRIAKi6ym+OAhlAIgHgLg5FMRNhyBuDgVx81eIjAc4IwKie4iB1DEgIllxPcUX8ihGHREQOwCR
xyjfIFlxXtAOuRAo3wBiFyDmuJ0UEJ3XEXPOQowRAdE5xKw5IWKMiGTF+c1TjA1wGRggdgGiwNPA
EJo78OhinuN6REB0P9cc+XGGKT6E5i48Q1vgn6cA0T1ExqP/raD9E1BLAwQUAAIACAC3NJtKnJXa
uXIBAAASBQAAKwAcAGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LXJlc2V0LXN0ZGVyci50eHRV
VAkAAyr0AVmn5gFZdXgLAAEE9QEAAAQUAAAA7ZLNSgNBDMfvfYrQgyhIp35VHNhTbUGUKrut9To7
m3UHdidlJosWEfoagr5cn8TZtQdRPOlF8TIkf5JMfklGcXwZSxgrU2IGTHCLDLxcIJgMLZvcoAPK
waGn2mkExTCLLyAP8VIIcU1lXaEXp4qVGM0TMcf03LC4UEuqeYqevciVZ5GTq4IZ0oJJPb5nuDNc
ADpHDkbte0qVMjaaJEPSpFrtTYIhZRjtD/rQnRbYfg7r1fOm0Hr1AprqMrPr1RNDikALtAEnRa1q
j8AFugDkwRL4WhdtgV4XZh7dmc0pepgkASr6AahdmCTj4F8pLqLvFprZDF25NPa2nUXUvz/O03Sg
TgZ7Byd9ePgwtavL5Ozm89SgO3mHDSEjMw41k1t2Hx97nc6XbSbtyhtvSA7b9tTCiIav3VCvqraP
DnZAgmfFRkNKVMImXMomTkpfNKuJcVEqjY20rcl6hvl0LGXCLtDB1k5n9H+Iv/EQD4/0HzvEV1BL
AwQUAAIACAC3NJtKflou3HEBAAASBQAAPAAcAGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LXJl
c2V0LXVzaW5nLW9wZW4tcGFuZWwtc3RkZXJyLnR4dFVUCQADKfQBWafmAVl1eAsAAQT1AQAABBQA
AADtksFKA0EMhu99itCDKEinKFYc2FNtQSyt7LbW6+xs1h3YnZSZLFpE6GsI+nJ9EmfXHkTxpBfF
y5D8JJl8SUZxPIsljJUpMQMmuEUGXq8QTIaWTW7QAeXg0FPtNIJiWMQTyEO8FEJcU1lX6MW5YiVG
y0QsMb00LCZqTTXP0bMXufIscnJVMENaMKnH9wx3hgtA58jBqH3PqVLGRtNkSJpUq71JMKQMo6NB
H7rzAtvPYbt53hXabl5AU11mdrt5YkgRaIU24KSoVe0RuEAXgDxYAl/roi3Q68LCo7uwOUUP0yRA
RT8AdQjTZBz8K8VF9N1CC5uhK9fG3raziPr3p3maDhTqQT/tw8OHqV3Nkoubz1OD7vQdNoSMzDjU
TG7dfXzsdTpftpm0K2+8ITls21MrIxq+dkO9qto/OT4ACZ4VGw0pUQm7cCmbOCl90awmxlWpNDbS
vibrGZbzsZQJu0AHewed0f8h/sZDPD05+2OH+ApQSwMEFAACAAgAuDSbSsaGnutxAQAAEgUAAC8A
HABmYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFuZ2Utc3RkZXJyLnR4dFVUCQADK/QB
WajmAVl1eAsAAQT1AQAABBQAAADtks1KA0EMx+99itCDKEinKGod2FM/QJQqu631Ojub7Q7sTspM
Fi0i9DUEfbk+ibOrB1E86UXxMiR/kkx+ScZxfBlLmChTYgZMsEQGXq8QTIaWTW7QAeXg0FPtNIJi
mMcXkId4KYS4prKu0IuRYiXGi0QsMD03LC7UmmqeoWcvcuVZ5OSqYIa0YFKP7xhuDReAzpGDcfuO
qFLGRtNkSJpUq71KMKQMo4PjPnRnBbafw3bz9FZou3kGTXWZ2e3mkSFFoBXagJOiVrVH4AJdAPJg
CXyti7ZArwtzj+7M5hTdT5MAFf0A1D5Mk0nwrxQX0XcLzW2Grlwbu2xnEfXvTvI0PT7NTtUA+3D/
YWpXl8nZzeepQXf6DhtCRmYcaia37j489DqdL9tM2pU33pActu2plRENX7uhXlXtHh3ugQTPio2G
lKiEt3ApmzgpfdGsJsZVqTQ20q4m6xkWs4mUCbtABzt7nfH/If7GQ8TDwR87xBdQSwMEFAACAAgA
tzSbSqY38H9yAQAAEgUAAEAAHABmYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFuZ2Ut
dXNpbmctb3Blbi1wYW5lbC1zdGRlcnIudHh0VVQJAAMq9AFZqOYBWXV4CwABBPUBAAAEFAAAAO2S
zUoDQQzH732K0IMoSKdUtDKwp36AKFV2W+t1djbbHdidlJksWkToawj6cn0SZ1cPonjSi+JlSP4k
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
AQmeFRsNKVEJu3IpmzopfdGsJsZVqTQ2qWNN1jMs51MpE3bBHRyddCYHEL8iiKOz0QHEvUFMlXsf
EHdCnwLEXS/7g/hM6C0Q9WiA5wcQDyB+PIjniN8MxCdQSwMEFAACAAgAujSbSlT3baapAQAA/AoA
ADwAHABmYXN0L2Zvcm1zL2ZpbGUvc2VsZWN0ZWQtZmlsZXMtZnJvbS1oaXN0b3J5LXN0YXRlLXN0
ZGVyci50eHRVVAkAAzD0AVms5gFZdXgLAAEE9QEAAAQUAAAA7ZLRatswFIbv8xSHXIwWRuSotGEC
X6UJlJW02MmyW9k+rgW2j5GOWUMp5DUG28vlSSp7pWzdepdBu+VGSL+ODuf/9c2i6CpSMNemxAyY
4AYZeNMgmAxrNrlBC5SDRUetTRE0wyq6hNzXKyHEJyrbCp0416zFbB2LNSYfDYtLvaGWl+jYiVw7
FjnZym/9M8FebTQX437XSeMR3zJ8MVwAWksWZv16TpU2dbiIp5SS7rUfEkwpw1CeBTBcFtgPA7vt
t1/a7bbfIaW2zOrd9itDgkAN1t5kgqluHQIXaL1NBzWBa9OibzMawsqhvahzCu8Wsbca/gWr72ER
z/3h2l+F+268qjO05cbUN31iYXA7yZNkEpzJU4kB3D3L9voqvvj8e7YwXPwUC/gXmbGYMtnN8P5+
NBi8OHbcg9KdpmSxH1c3RnR++38cVdXR6ckxKHCs2aSQEJXwWK5UV6eUK7qvi7ApdYqddJRS7RjW
y7lSMVvvDt4dD2YHfP8bfMdZ8OGA797wlU/Ry/3iK18dvs+s7g/fPzR+CV8pEzk54HvA963iOzkZ
/2P4PgBQSwMEFAACAAgAFi2bSgtIydCaAAAAzwAAADMAHABmYXN0L2Zvcm1zL2Zvcm0tYXNzb2Np
YXRlZC1lbGVtZW50LWNyYXNoLXN0ZGVyci50eHRVVAkAA8zmAVnM5gFZdXgLAAEE9QEAAAQUAAAA
fY2xCsIwFEV3v+LNhZakTWzJVtBBcCqiQ+kQmmcb0Bd9SRH/XpHOrpdzzi2FrHOh8rIGoY0SRqlC
lhJ2y/3RITnkEyP21VY0RmvZVHqALMsg79tzGyOmDmNYeMRjsM7T1OFzwZjg6snHeR0vPs175sBm
gJeNEJESpACWwFNMlkaEcIX/xTTb9LPtjdG693qBroDDRIG/aLH5AFBLAwQKAAAAAABBLZtKAAAA
AAAAAAAAAAAADAAcAGZhc3QvZnJhbWVzL1VUCQADGecBWTH4AVl1eAsAAQT1AQAABBQAAABQSwME
FAACAAgA8jSbSksbgTWnAAAA0gAAAC8AHABmYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXN0
b3JhZ2Utc3RkZXJyLnR4dFVUCQADmPQBWRnnAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH
9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G
5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz
3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQKAAAAAAANLZtKAAAA
AAAAAAAAAAAADQAcAGZhc3QvaGlzdG9yeS9VVAkAA7nmAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAMA0m0pLG4E1pwAAANIAAABAABwAZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0
YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGItc3RkZXJyLnR4dFVUCQADN/QBWbnmAVl1eAsAAQT1AQAA
BBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQ
EkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXh
PoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrF
G1BLAwQKAAAAAAAWLZtKAAAAAAAAAAAAAAAADAAcAGZhc3QvaW1hZ2VzL1VUCQADy+YBWTH4AVl1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgAyjSbSiGPvTgyAAAAMwAAACwAHABmYXN0L2ltYWdlcy9w
ZGYtYXMtaW1hZ2UtY3JvcC1ib3gtc3RkZXJyLnR4dFVUCQADS/QBWcvmAVl1eAsAAQT1AQAABBQA
AABzy0ksSXVJTc5PSbVSSAHRmXnpCqlFRflFVgqZecn5RUWpySUKKYkliQrJGanJ2XpcAFBLAwQK
AAAAAAAsLZtKAAAAAAAAAAAAAAAACgAcAGZhc3QvdGV4dC9VVAkAA/PmAVkx+AFZdXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIAN00m0r+ns1CeQEAAIgJAAAjABwAZmFzdC90ZXh0L2Vtb2ppLWdlbmRl
ci0yLXN0ZGVyci50eHRVVAkAA3H0AVnz5gFZdXgLAAEE9QEAAAQUAAAA7ZRNTsMwEIXX5BRWllWC
Jm5iuxFUglYVqy5oWFVdOIlTIjU/ShypUEXiBqy5CefhAlwBG0oFUiU2kegi3s3Y8+Z5PtkYHGqD
a2OKgPhD5nv0HMBD0yYrb0UeiyqohFhih7nMJyMgACs0KSoRiK300WAwQHd5xstSxMh8e3l6f302
0cUkmBW52oYtTQQPgXoiiWC8y3km0CVaBIsiX8vUDib2rVg3G15ZqE4f9Z4DoAzoZaGMyyrdqiRs
VRSLOqrSUhaVyuxbTA+5QzMcO0NCVDMuVXXYSFF/np9d8zqNbnh9/+OkSyigpY6ThHoMQteF1Xgn
H0rtJWskDzcCxWkkLRQVTS61Q8sQuZLWumPjDCNfqy9UJl+jvRSGENPkmHSkXKty7cmcL/Qd5moo
V99ezfbL7G85j0bcZX/JHRmr2RqtMW5bAx/jrIJOOWPujfCo53xqnF3WLWeifBK353xqnEnH/zaO
mBPynvOpcWZe1+8ZOyPWc/5Hzh9QSwMECgAAAAAAOC2bSgAAAAAAAAAAAAAAAA0AHABmYXN0L3dv
cmtlcnMvVVQJAAML5wFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADrNJtKPnicZIwBAADQ
BQAAMwAcAGZhc3Qvd29ya2Vycy93b3JrZXItY29weS1zaGFyZWQtYmxvYi11cmwtc3RkZXJyLnR4
dFVUCQADifQBWQvnAVl1eAsAAQT1AQAABBQAAADtksFq20AQhu9+isGH4kDsdRrXpQs6OTaEBidI
dtzrajWylq52xO6IVISAXyOQvpyfpJKaQ0gpPeVSctllf2ZmZ775l3F8HUtYKWMxAybYIwM3FYLJ
0LHJDXqgHDwGqr1GUAzb+AryNl4KIW7J1iUGcaFYieUuETtMvxoWV6qhmjcYOIhcBRZ35L+jD8/3
WFPVjEOhPGbj1FI6rr0Nk4JLC3eGC0DvycOyPy+oVMZF62RBmlSv/ZZgQRlGH+dTGG4K7HuC4+Hp
n18cDz9BU20zdzw8MqQIVKFr509RqzogcIG+JRDAEYRaF33pyRC2Af2lyym6XycthejtKJzCOlm1
1W8UF9Eb1d+6DL1tjNv3TKPpj8/5l3maTWdzdTaF+1f0b66Ty29/0ofh+gUkaDMy41Ez+Wb48DAZ
DP7afdI7qnstyKPo0lVlRDd2v+lJWY4+nZ+AhMCKjYaUyMJzuJRdnJSh6BYZY2WVxk4aaXKBYbdZ
SZmwb6eDDyeD5bvP333+yudn83Q2+898/gtQSwMECgAAAAAALi2bSgAAAAAAAAAAAAAAAAkAHABm
YXN0L3hzbC9VVAkAA/jmAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAN00m0pO+yD4iAAA
AOcAAAAlABwAZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUCQADcvQBWfTm
AVl1eAsAAQT1AQAABBQAAACljrEOwjAMRPd+hX+geGDLDBNsIDq7rSsiOXHlOFL5ewLlD1hOJ9/J
7yZNaxTyqBnYTC3AEoW/EhDxoVITFzyRE56HGw48XqLjlV5a/c7FCy5UHLciaFy02tTq29P6WadD
u4LEzHAEFk6cHWJa1bxrSdgtBKiZxgZ1BVGaf/D/0P3+nOfPhu4NUEsDBBQAAgAIAN00m0r9oi5k
jwAAAO4AAAAnABwAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQJAANy
9AFZ9eYBWXV4CwABBPUBAAAEFAAAAJ2OMQ7CMAxF957CFyge2DLDBBuIzm7rikhOXDmOVG5PoJyA
5cv/f9t6k6Y1CnnUDGymFmCJwl8JiPhQqYkLnsgJz8MNBx4v0fFKL61+5+IFFyqOWxE0LlptauvN
eT/S3Me0qnlfLR5aBhIzwxFYOHF22NuuNWEfIUDNNDYAVxCl+QfyJ0bWUqfn50W7E+neUEsDBBQA
AgAIAOA0m0rPj2YOUAAAAKAAAAAkABwAZmFzdC94c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIu
dHh0VVQJAANz9AFZ9eYBWXV4CwABBPUBAAAEFAAAAK3MsQ3AIAwF0Z4p/gZR2myDwAhLNkaWiTJ+
yA5prrtXTCdLDrYBcje/0FgIEB6EEySkNAK2Yq5IPO4sXLG7CM0cStGt7ssslb+wp4fK8ZEvUEsD
BBQAAgAIAOE0m0qBSnetSwAAAKwAAAA0ABwAZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJh
Z21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUCQADdvQBWfjmAVl1eAsAAQT1AQAABBQAAAC1zLENgDAM
RNE+U9wKtGzjwAVZcmxkLOZHomAD6q/3t5inmpSGg5mRK4YaAVMnFtA46YVbUqUbW3LnUNdXxMBh
0cW+juJVbfvl+gBQSwMEFAACAAgA3DabSqbzG/G4AQAAhQMAABEAHABmdWxsX3Jlc3VsdHMuanNv
blVUCQADMPgBWTH4AVl1eAsAAQT1AQAABBQAAAClkV1v0zAUhv9K5SuQ4qUrGdXCVaQGNK1jaOkY
XEWuc7JYdWzLPmatpv53bIdNSICG4O7ofL3PeU+1WrU3dXO73jSvHgmCQ0fKRzJCJ1gM0DK+ew6o
UHTLVEcdHiScDDjKWLNgtEVSkvfr6vIryQjsDXCELqQ+VU0TMoyjZ6GZbOovm1lKHo8ZGXUHVtEk
R7lWaLWcABjXjvZeSsctwD+00K1H1MpNrO5X2Jv6Q7i8ubj++DJxghVBTigpFPyG5o/FFzn+xrSL
q/r69tm3CDMgmvSXp5cxYzjjA8S4mBfUgtPecqAPAgfqpH6gIwv/e8qfmMH8z/MShdsJY2Lrm2J5
lhHlx9bCfZBwIpxMytOMaBzAttwyN0AEjUYqBGu9SSI9kw6m0VGEOXVPynlGJDtoj206r+2EDer5
Zy39CC5fMWR5fdfkd7C9FJivU+8mOZGRb2CjOimLaathzkXlolieLzJixB7kj72g2Fb+BNExDP6R
+dvyrKiuZlrNKmOFnC2W2WwxP12G7QNzrbGAeAiLkQ+kROvDaC/2cVdy4nwS7iXbHUIiIz4AtJOv
DKMzbS9ibxw9vn73HVBLAwQKAAAAAAAwLZtKAAAAAAAAAAAAAAAABQAcAGh0dHAvVVQJAAP85gFZ
MfgBWXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADiNJtKAAAAAAAAAAAAAAAACwAcAGh0dHAvdGVz
dHMvVVQJAAN49AFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADiNJtKAAAAAAAAAAAAAAAA
FAAcAGh0dHAvdGVzdHMvYXBwY2FjaGUvVVQJAAN49AFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACADiNJtKwk3IHXQAAACbAAAAQwAcAGh0dHAvdGVzdHMvYXBwY2FjaGUvNDA0LXJlc291cmNl
LXdpdGgtc2xvdy1tYWluLXJlc291cmNlLWFjdHVhbC50eHRVVAkAA3j0AVl49AFZdXgLAAEE9QEA
AAQUAAAAJYzREcIwDEP/O4UmYIkeEwQGMMEhPtKYs1O6Pk750Z2kJ92qOAb7CK00QNioS4ng77P2
QdJ9FuIu/YUijXFIa+gagJHXYBkP08PZwF/ukHJmW2xh7LpbZryZP46m9Jw/VEbQk2IzNWjOu/ll
Sfd1vaa0/ABQSwMEFAACAAgA4jSbSibl06tBAQAASgIAAEEAHABodHRwL3Rlc3RzL2FwcGNhY2hl
LzQwNC1yZXNvdXJjZS13aXRoLXNsb3ctbWFpbi1yZXNvdXJjZS1kaWZmLnR4dFVUCQADePQBWXj0
AVl1eAsAAQT1AQAABBQAAADFkM9uwjAMxu88he8lpDCkTZxgUO2wPxy6jbNJXRotNFXsDPb2S9jQ
HmHKIcrnL59/tlIK9Lt38UisNyioq12td7R/tPJ73UfrGr2hfTxoh18+ihJiUYE4OmHdiQw6K6xx
GAyajvS8nOe6j8GQOlnpFDt/Uke0/Z9O54GMUDORs4yKovg3EDQS0V0wlktQ0/ENFNPxDJbLkVpv
X+rtUwXPVV2vHqoFrIbBWYNifQ/r3APi0KAQtGgdNWPYk8HIBBlnofV0djsp05ku7sqy/CO7dmfd
eGLVe0kLsSwZA4yProGkpTRoSdKHZjKC184yXCYE6VAA4Yi9bZPw8za+lzQZ54Jltv0B2gQFJ+vc
Jc0E5C55CfbBn5gC0Cf1YNuLlrcCVy74IBoYnMcm52AryZ1dFIIP4I2JgRNT/bZep92MvgFQSwME
FAACAAgA4jSbSijTFXbYAAAAJwEAAEUAHABodHRwL3Rlc3RzL2FwcGNhY2hlLzQwNC1yZXNvdXJj
ZS13aXRoLXNsb3ctbWFpbi1yZXNvdXJjZS1leHBlY3RlZC50eHRVVAkAA3j0AVl49AFZdXgLAAEE
9QEAAAQUAAAANVDNasMwDL7nKfQAa5L2spFbCWGXrT1kewDVlhcx1zaWsvbxp3QMgUDfHx8az6f5
/DbB+zTPx9dpgGMpkR0q5wQjuoVgLR6VICBH8k9wIYerECyqZei6/eG57W32w0vf9x2W4jZXV0ny
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
VclVFOGv+BDuOd/DoopKDV0zFjEay+jrv2siXqJpOA+v3UsIrWX4VZ5vYF+z3wZ1d054SgIdQ/IM
cn+FSOtgfpwvWktAKfehMObpC/xAPoDeWMqPl/4moL8X5tNN9CvEEzgruscKR9vfdtFvJP4HVe7n
c01ZGt2TuN5HgBNwZqAI8Ctc3mumZKTtjPSIjHBVJTjJSTSfzPU8r0UCWUtVHkio4EGBNV34cehq
asxCdVCg67SrYusL0eXpjLm5j43rGz2yl5aeiL7OoO6XoKMc0EzpBc2ngGN/cbmZgl9hftORgoxv
y/yljGW1HhSE0n25ufvl590vP27RT9vd7tPftiv0qaqAy809Cd1pt6G6SnW+ZRgCBFfHmCS4lgRp
DwOQptc/hBP4M10tJpPJ0dneoTJKOZFByVVADlQq7VkAdM1SSG2gStiYKFiQhk5JwAh4x/+0PdWC
/OXGTTvZPxwKmcNtJ30zFG/G4PodMZiOu/9LTvXdSyrHuxiItKQZDNj3xCoi9QSVUhNCBmEAOmbM
+C8RWOaW4y2BI/IEFzGamTENbeQjgR4JqSQC92kKRLYD0VJECLjf8kR/STuJwp9zz+wd7rked8/u
X3d3AMw/g4zej+EdyGzzrxb/B1BLAwQKAAAAAAAyLZtKAAAAAAAAAAAAAAAALwAcAGh0dHAvdGVz
dHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvVVQJAAP/5gFZMfgBWXV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACADkNJtK3Jhv7zYAAAA6AAAAUQAcAGh0dHAvdGVzdHMvY29udGVu
dGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtc3Rk
ZXJyLnR4dFVUCQADe/QBWf/mAVl1eAsAAQT1AQAABBQAAAArzUtJTcvMS02xUvAKVnANCvIPUgip
LEh1LSrKL7JSKIVJK2QWK+Tllygk5inkJ2WlJpdwAQBQSwMEFAACAAgA4zSbStyYb+82AAAAOgAA
AGoAHABodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVy
ZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0YS1yZWZlcmVyLWFsd2F5cy1zdGRlcnIudHh0VVQJ
AAN59AFZ/OYBWXV4CwABBPUBAAAEFAAAACvNS0lNy8xLTbFS8ApWcA0K8g9SCKksSHUtKsovslIo
hUkrZBYr5OWXKCTmKeQnZaUml3ABAFBLAwQUAAIACADjNJtK3Jhv7zYAAAA6AAAAawAcAGh0dHAv
dGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXIt
c3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXItZGVmYXVsdC1zdGRlcnIudHh0VVQJAAN59AFZ/eYB
WXV4CwABBPUBAAAEFAAAACvNS0lNy8xLTbFS8ApWcA0K8g9SCKksSHUtKsovslIohUkrZBYr5OWX
KCTmKeQnZaUml3ABAFBLAwQUAAIACADjNJtK3Jhv7zYAAAA6AAAAaQAcAGh0dHAvdGVzdHMvY29u
dGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQt
d2l0aC1tZXRhLXJlZmVyZXItbmV2ZXItc3RkZXJyLnR4dFVUCQADefQBWf3mAVl1eAsAAQT1AQAA
BBQAAAArzUtJTcvMS02xUvAKVnANCvIPUgipLEh1LSrKL7JSKIVJK2QWK+Tllygk5inkJ2WlJpdw
AQBQSwMEFAACAAgA4zSbStyYb+82AAAAOgAAAG8AHABodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3Np
dGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0YS1y
ZWZlcmVyLW5vLXJlZmVycmVyLXN0ZGVyci50eHRVVAkAA3r0AVn+5gFZdXgLAAEE9QEAAAQUAAAA
K81LSU3LzEtNsVLwClZwDQryD1IIqSxIdS0qyi+yUiiFSStkFivk5ZcoJOYp5CdlpSaXcAEAUEsD
BBQAAgAIAOM0m0rcmG/vNgAAADoAAAB+ABwAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25h
dHRhY2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJl
ci1uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS1zdGRlcnIudHh0VVQJAAN69AFZ/uYBWXV4CwAB
BPUBAAAEFAAAACvNS0lNy8xLTbFS8ApWcA0K8g9SCKksSHUtKsovslIohUkrZBYr5OWXKCTmKeQn
ZaUml3ABAFBLAwQUAAIACADjNJtK3Jhv7zYAAAA6AAAAagAcAGh0dHAvdGVzdHMvY29udGVudGRp
c3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0aC1t
ZXRhLXJlZmVyZXItb3JpZ2luLXN0ZGVyci50eHRVVAkAA3r0AVn+5gFZdXgLAAEE9QEAAAQUAAAA
K81LSU3LzEtNsVLwClZwDQryD1IIqSxIdS0qyi+yUiiFSStkFivk5ZcoJOYp5CdlpSaXcAEAUEsD
BBQAAgAIAOM0m0rcmG/vNgAAADoAAABuABwAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25h
dHRhY2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJl
ci11bnNhZmUtdXJsLXN0ZGVyci50eHRVVAkAA3r0AVn/5gFZdXgLAAEE9QEAAAQUAAAAK81LSU3L
zEtNsVLwClZwDQryD1IIqSxIdS0qyi+yUiiFSStkFivk5ZcoJOYp5CdlpSaXcAEAUEsDBAoAAAAA
ADctm0oAAAAAAAAAAAAAAAARABwAaHR0cC90ZXN0cy9sb2NhbC9VVAkAAwnnAVkx+AFZdXgLAAEE
9QEAAAQUAAAAUEsDBAoAAAAAADctm0oAAAAAAAAAAAAAAAAWABwAaHR0cC90ZXN0cy9sb2NhbC9i
bG9iL1VUCQADCucBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA6TSbSqF55Hd6AQAAdAUA
ADEAHABodHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2VuZC1oeWJyaWQtYmxvYi1zdGRlcnIudHh0VVQJ
AAOG9AFZCucBWXV4CwABBPUBAAAEFAAAAO1SwWrbQBC9+ysePoQEitekxC0LOjk2hAYnSHbd62o1
ihbkHbE7ojEh4N8otD/nL4mkthBaesupyWXZHd68nffmLdL0JtVYGldTAWHckUD2DcEV5MWVjgK4
RKDIbbAEI9ik1yg7vFZKfea63VFUl0aMWmwztaX8kxN1bfbcypqiRFWJNEqGa83W1Oo3WVSePd27
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
VMeHu9vvG8Hubn+AUKs0zu5uvxmICFROWZl1RAJXBYFZkC7zLiBTUKzEog7SbsFVQfosS9TwehKW
uQ+fl/tbmITV9wWaxfAZba+ymHS6ltm8rmpof/ES7HTR6Xe8yIbrB/VfnIdnH/+uH1qTjeSh7BFL
TcIovW7d3LQPDqwPKl0tqbBO0aA1moXWjKJ30lhhfX+qXydKk1V1x1xaVXr1tW4vl4d95wgCKAwa
KSBSKoXfzYOgahcExaK6wFPKUxR1ZYdCZYWB2eU4CEKjy+rgzdHBiNX8YzW2iz2f1Tyl5k/TwsI8
L2/bXCYv13Mf6jXsPFLBk4a29NliyR34rhBsiS293JJju13i2YwtNTEuCd/2eI5jSw1Y6ri+0+dx
aQdLS/VVpik2o2kj2Ot62jjxDqIe9No2PqGwBwmbYlONmhrYHTbFpho05feFQDbFpho15Sf8bM7P
5k2s8xLX4x1wttSQpcjj56cdLN0XfJwofRxrnM+r074Y1uNxX1fZ4znsQG57gG37DD2MesT+2N/e
/GHCexI8lzaxZ+p5wmdLbKkZS3EvZks8L+5pXiz9CYf9sb/9+HMcj5D/Y8P+9uTPHfjY4XcA7G9f
458nuhGvJXgt0cxaAvl9Jltqao+D7P/M0k9QSwMECgAAAAAAYC2bSgAAAAAAAAAAAAAAACoAHABo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAkAA1TnAVkx+AFZdXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIAA01m0pjqqxsggAAAKgAAABAABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADyvQB
WVPnAVl1eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZ
zXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpo
JTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAA41m0pjqqxsggAA
AKgAAABSABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVu
YWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUCQADy/QBWVTnAVl1eAsAAQT1AQAA
BBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh
3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21c
J5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAAM1m0qviBzXrQAAAKQBAAA6ABwAaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQAD
tvQBWTbnAVl1eAsAAQT1AQAABBQAAADdj80KwjAQhO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap
+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEBKZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1
N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta
/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQUAAIACAADNZtKSxuBNacAAADSAAAAMgAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdlYnNxbC1zdGRlcnIudHh0VVQJAAO29AFZ
NucBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW
0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeq
Du3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPL
WEekA/U3FD+8CsscysUbUEsDBBQAAgAIABk1m0pLG4E1pwAAANIAAAA/ABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9zdG9yYWdlLWJsb2NraW5nLWxvb3NlbmVkLXdlYnNxbC1zdGRlcnIudHh0VVQJAAPi
9AFZZecBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv4
8/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJR
VdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WO
KAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIABo1m0pLG4E1pwAAANIAAABDABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9zdG9yYWdlLWJsb2NraW5nLXN0cmVuZ3RoZW5lZC13ZWJzcWwtc3RkZXJyLnR4
dFVUCQAD4/QBWWbnAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pyk
Wwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpx
yCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/3
8HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACAAmNZtKYEtmEJEAAAD7AQAARQAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4t
c3RkZXJyLnR4dFVUCQAD9/QBWX3nAVl1eAsAAQT1AQAABBQAAADtjjEOgzAMRXdO4QuEBJZWmWHo
0p4BBVMimSSynQpuXzr0Bh2rv76v90LeSqRJY06AzJk9LJEQVtXire36S+vOdf7qnLOCoXLUw+4i
Zhjvt3Ewu5CZc6gbJjVf4MHxGVO7bwQUE0IPSPghQPQglBVRm/PpX8hyuj3kRAd0rYMFJ62MAhMj
SC0ls+LchH/oj0PfUEsDBAoAAAAAAEUtm0oAAAAAAAAAAAAAAAATABwAaHR0cC90ZXN0cy9zdG9y
YWdlL1VUCQADIucBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA9jSbSksbgTWnAAAA0gAA
AEUAHABodHRwL3Rlc3RzL3N0b3JhZ2UvY2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29ycmVjdC1j
b250ZXh0LXN0ZGVyci50eHRVVAkAA6D0AVki5wFZdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+x
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
cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZy1zdGRlcnIudHh0VVQJAAMD9QFZg+cBWXV4
CwABBPUBAAAEFAAAAF2OsQrCMBRF937FG9vFIIpCNm07iIrYgB0lTd4QSPtC+lL8fGvp5HjhnMOt
m+bRSDgxYx8YmEDbSQ8GQYOhPnhktGBSHClm4kU+9TiKSrMWdatEi93VsVCUosHfKimiuJNNfsbc
YPGD1nZixDhhFOp5c4yX6lwuwY0JId9tjwVI6Ig8rAEpZ0QtipR/jpTrwTy5gQ/7NxfZF1BLAwQU
AAIACAA3NZtKHdGPJqMAAABPAgAARgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjExLXN0ZGVyci50eHRVVAkAAxr1AVmX5wFZdXgLAAEE
9QEAAAQUAAAA7Y+xCsIwFEX3fsUb28UgikI2bTuIitiCHSVN3hBI+0L6Uvx8a+nkFzg4Xjjncm9Z
VbdKwoEZO8/ABMqMqtcICjR13iGjAR3DQCERD3Kxw0EUipUom1o02J4ti5pi0PhJOQUUVzLRTZjt
Db7QmFYMGEYMor5fLOOpOOZz4Up7n27W+wwktEQOlgIpJ6SeFSm/HCmXgWm0Pe+2T86S8n/iR068
AVBLAwQUAAIACAA6NZtKRmgb25kAAADFAAAAQwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50LXN0ZGVyci50eHRVVAkAAyD1AVmd5wFZdXgL
AAEE9QEAAAQUAAAAXY6xCsIwFEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b
5tFIODFjHxiYQNtJDwZBg6E+eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg
8YPWdmLEOGEU6nlzjJfqXC7BjQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQA
AgAIADo1m0pGaBvbmQAAAMUAAABEABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiaW5kZXhfY291bnQyLXN0ZGVyci50eHRVVAkAAx/1AVmc5wFZdXgLAAEE9QEA
AAQUAAAAXY6xCsIwFEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b5tFIODFj
HxiYQNtJDwZBg6E+eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg8YPWdmLE
OGEU6nlzjJfqXC7BjQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQAAgAIADo1
m0pGaBvbmQAAAMUAAABEABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiaW5kZXhfY291bnQzLXN0ZGVyci50eHRVVAkAAx/1AVmc5wFZdXgLAAEE9QEAAAQUAAAA
XY6xCsIwFEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b5tFIODFjHxiYQNtJ
DwZBg6E+eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg8YPWdmLEOGEU6nlz
jJfqXC7BjQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQAAgAIAEg1m0pGaBvb
mQAAAMUAAABJABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfY291bnQtc3RkZXJyLnR4dFVUCQADN/UBWbPnAVl1eAsAAQT1AQAABBQAAABd
jrEKwjAURfd+xRvbxSCKQjZtO4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kP
BkGDoT54ZLRgUhwpZuJFPvU4ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOM
l+pcLsGNCSHfbY8FSOiIPKwBKWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgARzWbSkZoG9uZ
AAAAxQAAAEoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9jb3VudDItc3RkZXJyLnR4dFVUCQADNvUBWbLnAVl1eAsAAQT1AQAABBQAAABd
jrEKwjAURfd+xRvbxSCKQjZtO4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kP
BkGDoT54ZLRgUhwpZuJFPvU4ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOM
l+pcLsGNCSHfbY8FSOiIPKwBKWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgARzWbSjA9hTef
AAAAigEAAEoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9jb3VudDMtc3RkZXJyLnR4dFVUCQADNvUBWbLnAVl1eAsAAQT1AQAABBQAAADd
j7EKwjAURfd+xRvbxSCKQja1HURFbMCOkiZvCKR9IX0pfr61dPITHC+ce7i3qut7LeHAjF1gYAJt
R90bBA2GuuCR0YJJcaCYiSf51OEgSs1aVI0SDbYXx0JRiga/6UQRxY1s8hPmeotvtLYVA8YRo1CP
q2M8l8fTLFyZEPLNel+AhJbIwyKQckLUXJHypyPlMjBPrufd9sVFVv3DiQ9QSwMEFAACAAgASjWb
SkZoG9uZAAAAxQAAAEsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJvYmplY3RzdG9yZV9kZWxldGU1LXN0ZGVyci50eHRVVAkAAzz1AVm45wFZdXgLAAEE9QEA
AAQUAAAAXY6xCsIwFEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b5tFIODFj
HxiYQNtJDwZBg6E+eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg8YPWdmLE
OGEU6nlzjJfqXC7BjQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQAAgAIAFE1
m0pGaBvbmQAAAMUAAABOABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0ZS1zdGRlcnIudHh0VVQJAANK9QFZxecBWXV4CwAB
BPUBAAAEFAAAAF2OsQrCMBRF937FG9vFIIpCNm07iIrYgB0lTd4QSPtC+lL8fGvp5HjhnMOtm+bR
SDgxYx8YmEDbSQ8GQYOhPnhktGBSHClm4kU+9TiKSrMWdatEi93VsVCUosHfKimiuJNNfsbcYPGD
1nZixDhhFOp5c4yX6lwuwY0JId9tjwVI6Ig8rAEpZ0QtipR/jpTrwTy5gQ/7NxfZF1BLAwQUAAIA
CABwNZtKMD2FN58AAACKAQAAWAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL3RyYW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLXN0ZGVyci50eHRVVAkA
A4P1AVn85wFZdXgLAAEE9QEAAAQUAAAA3Y+xCsIwFEX3fsUb28UgikI2tR1ERWzAjpImbwikfSF9
KX6+tXTyExwvnHu4t6rrey3hwIxdYGACbUfdGwQNhrrgkdGCSXGgmIkn+dThIErNWlSNEg22F8dC
UYoGv+lEEcWNbPIT5nqLb7S2FQPGEaNQj6tjPJfH0yxcmRDyzXpfgISWyMMikHJC1FyR8qcj5TIw
T67n3fbFRVb9w4kPUEsDBBQAAgAIAHI1m0pGaBvbmQAAAMUAAABGABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvd3JpdGVyLXN0YXJ2YXRpb24tc3RkZXJyLnR4dFVU
CQADiPUBWQHoAVl1eAsAAQT1AQAABBQAAABdjrEKwjAURfd+xRvbxSCKQjZtO4iK2IAdJU3eEEj7
QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kPBkGDoT54ZLRgUhwpZuJFPvU4ikqzFnWrRIvd1bFQ
lKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOMl+pcLsGNCSHfbY8FSOiIPKwBKWdELYqUf46U68E8
uYEP+zcX2RdQSwMECgAAAAAAeC2bSgAAAAAAAAAAAAAAAC0AHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9VVAkAA4PnAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAAJwtm0oAAAAAAAAAAAAAAAA5ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvVVQJAAPH5wFZMfgBWXV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACAAsNZtKjzQacEQAAACgCQAAXAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L2ZhaWx1cmVzX1JTQS1PQUVQLndvcmtlci1zdGRl
cnIudHh0VVQJAAMD9QFZg+cBWXV4CwABBPUBAAAEFAAAAHPOL81JUcjLL1FIT81LLUosSVVIVMhO
rVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2VO2o2lG1o2pH1Y6qHVVLc7UAUEsDBBQAAgAIADA1
m0pUAsmyNgAAAMACAABlABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlw
dG9BUEkvZ2VuZXJhdGVLZXkvZmFpbHVyZXNfUlNBU1NBLVBLQ1MxLXYxXzUud29ya2VyLXN0ZGVy
ci50eHRVVAkAAwz1AVmM5wFZdXgLAAEE9QEAAAQUAAAAc84vzUlRyMsvUUhPzUstSixJVUhUyE6t
VChIzCzSUSguSSwpLVbQNTE2MOFyHlU7qnaQqQUAUEsDBBQAAgAIAE81m0qPNBpwRAAAAKAJAABa
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVL
ZXkvdGVzdF9mYWlsdXJlc19SU0EtT0FFUC1zdGRlcnIudHh0VVQJAANF9QFZw+cBWXV4CwABBPUB
AAAEFAAAAHPOL81JUcjLL1FIT81LLUosSVVIVMhOrVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2
VO2o2lG1o2pH1Y6qHVVLc7UAUEsDBBQAAgAIAFE1m0pUAsmyNgAAAMACAABjABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWls
dXJlc19SU0FTU0EtUEtDUzEtdjFfNS1zdGRlcnIudHh0VVQJAANK9QFZx+cBWXV4CwABBPUBAAAE
FAAAAHPOL81JUcjLL1FIT81LLUosSVVIVMhOrVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2kKkF
AFBLAwQKAAAAAACGLZtKAAAAAAAAAAAAAAAAJgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvVVQJAAOb5wFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACALZtKAAAA
AAAAAAAAAAAAKgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VU
CQADkOcBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAhy2bSgAAAAAAAAAAAAAAAC8AHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL1VUCQADnucBWTH4
AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAMDWbSiWyd34EAgAAvQwAAEkAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLmFueS1zdGRl
cnIudHh0VVQJAAML9QFZkOcBWXV4CwABBPUBAAAEFAAAAO3WTWvbQBAG4Ht/hS7Jbez9/giYYlIn
LbR1wO05zO7M2qaKZSyVNv++ckJTHFKa1JS2OEjoIIl5Vw/DrE6n72fTt5Pq3WQ2G59PTqrpZjlf
rqpF161PhsO6yVgvmrY7CUGIatlWq6arsK6bL0xVuq7GOXPbwmmz6jZNDePtE7itMXhxer/4GXd5
UY0v3lQZV9tKdYP0PUsqPxD9IW+yhmX77hDXy+GG2+bzps8Zrjdc6uV80Q3W1y+75hOvRsJYDlZY
MIZif7EEybCBpHyKyiV2yR5f4ddLnPNIHDc3SxttI4/0+Eid9eddcH9nG318832XV9wtGmpH55MP
gz/L8vfMd7LkY82txKi0jlBkCmC0z4BkI2AhKkyJ2MVfmN8F35rLAzLf6fNHmwvtlHQYQbIgMOwJ
oicNhrCgitZIZZ7W5wdj3u6gR2P0Y9FL1CFmncBlmcAIQsCkHTgy7IJkRZ4eRm8fVN9mH5L6j7Cn
qCN5tkE40DExmFA0JEaCTKhIGpb2Z+OlfXC+HJL6b++jNkQn0Ulwqpc3KUlIBR2g1zYJ7Nkp7reP
Xkxnz+j3Or1EydJbCCILMJgzpOg9iOCU9iF6dLwf+uvJ+NXg/3MhnYPVAaQxBkxmB0krDYqYnaLi
C5s9m/Hjcy/umjshScTIgFYqMC74fupygZISUpJRsw//2I/0N1BLAwQUAAIACAAyNZtKhx3gZdkC
AACYEgAAUwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMv
Y29ycy1wcmVmbGlnaHQtc3RhdHVzLmFueS1zdGRlcnIudHh0VVQJAAMQ9QFZlucBWXV4CwABBPUB
AAAEFAAAAM2Yz2okNxCH73mKPvlWHqn0r2Qwy7I4IZBkF/wApkoqrU0mnsE9Jpu3Tw0hew4IguiL
aBqhjyr99Kk/ff7t8fMvD9uvD4+PH396uNt+1Et73j5++Xlr/Pp6umzHE/ft+XI53x0OHsuts8ff
ETl3GNdvD3x+Obzpfnp/a7ofzm86ji9fny+3578+XE6/6+t9CilwHgQRA0NkGsDNJygtJj+EZES+
+YO/PfFXvXc3fDye/nx6Vu76tt9/g3GyieH7vDffR0/7hS/v+31w7nb78u/bzdZyPr3uur3s2xVg
f2+2sH28H3/49D/QEiF2Dh045QBxYAVBX2D0jDURqyDN0fqFaAcrBa8ZMnsHkUoGca6Aoq9VY3U+
5DlaXIg2sh+K7AC1WTu3jECMA7LrUmypUlKYow0L0XpkZmtg6K4JxJoaVHIItdcco3Ls0c3RxoVo
pQ3MNVrrBtu80UIJOFholaTD5+wYtc/RpoVok/gaEQWcBISYagTSXCF0ySEg1d7THG1eiFZTEQmN
ofoc7RgqCpKcAMfWK9UikeIcbVkppUqr3nkCctU6WQMBl46gFlE511KkT+5bWqmTNbGLVkxVa+fI
bUDFOsAOXiLhFGqboo1L2UUznlFat/M2qdkFOahmFVDqGFV8QhGao13JLkwVXYrZQ4lodmGEQMMb
fKjIvlJu5Odol7ILySk5VvDNWW1tCCLNQaOmybp7oGtztCvZRbcCNkcEI5UCsbDZRZYCXqzggatI
lznalewiOSueaSLoEKttN8W4VhtcsWWgVZjL5L5dyS58GA1dFugWS2aOPQF1Mm7tWiL5gDxlF2mp
lOoulKqtAdZgNz6nDqSogr0mF1IcHPwc7UopZfpgMswFEqL+c6WnqycTDq1NNbJM0q6UUq3VYpe+
bAFF7Xrjs05uJUC3eI6WV9I4ztGulFLopOU6vGmUmCfXMK7/LgL4LqgZRXOc3Lf/NaX+BlBLAwQU
AAIACAAzNZtKkBTzZJkBAADeBQAATAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQuYW55LXN0ZGVyci50eHRVVAkAAxL1AVmZ5wFZ
dXgLAAEE9QEAAAQUAAAAzdRLaxsxEADge3+FTr2NV8+VZAhlcbdNIS9qlx7LSBplTbde16vQ+N93
NzkVDMmhBKOLkEZoPkaa1e3N+vaqZdftet18bpfsE5XYsebuC4u42w2F9QMm1pWyX1aVkHbBpyGW
znFe5Tm2wv22OtA4PBwijdX+QLnf3ndlsT9+KMNP2l2Qq00dtQErsgGtrQKfswdBhKiEUFbZ97/w
8Qfe0wVfsGsq3ZDYx/aq3bRsO7I5Dez74Q8lFo6sidNFI6yGXTkMPTTzDjwfGhfvVm8g0tkmUVsP
inQCTRPGWxQgbUARXQ4upBOiu2+bs+Q4nn0KMoBXGkFLiRDQe0ia61oIVNa5U5xms7o8SxA6ycnE
CJgTgQ5KQpDGgVEUpPaKUOcToJv2+3nWR+NUiJoDRe2mD0QenLHTrDaCO4NSiH/q85V+P9BYWEeY
6MDylvrEHqFMa/C8Jl7rvHwKfyMn2cB5nIplatRzo/AQTEKQUmfFveex9i865/xpV2Bz3NNZKp1H
IqcMpCwmpfEanJJxeqa29rr2NuT/1Tz+AlBLAwQUAAIACAA2NZtKuBsuDsgCAAC/EwAAVQAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1yZWRpcmVj
dC1wcmVmbGlnaHQuYW55LXN0ZGVyci50eHRVVAkAAxj1AVme5wFZdXgLAAEE9QEAAAQUAAAA7Zfb
ihs5EIbv8xR9E9+VrfNhwCxmmBwgJ3YeIJRKpdis1z1x95Dk7VOdkHhhjAnEF7s7Ro3UqNVN8fX/
q0rXb9/cvn11072+ub1dPb+56p7xSOtu9e5lR7jb9WO37bF263G8u1ostIlzJU1fpaTUok1rF3i3
Wex56O/3xMPibs9tu/mwHud3X/74Gz+/xw+8VLOx/4t3y2o9Fmc8FO8iOMUBEjkFqAmTVly1NbM9
182eaXw/jDjeD0ur9GzbE46bfrecAnlqV0/NM7l+hiMzU0Ay9S0kGSUo6anfDzLM59L9DFHu/xnk
jPr73bjU8+5P/njPw9itGSvvu7bhbe0+wydL3WboJha43fafuHblS7ci+dQA1/1u3PdbWE1P4MW3
N4f5k+tzY/0BZaL6nWU2NTIVhpRSBleQINnUwCqKMlaDHGeHH/DrVKfZ7bofxt+h+l+jWYMNhbMG
i8qBi6ZBVpHAptJswJaknYOm/h/SPGn5FKynigLWFguu+SxgjQVMiY0v5Csdw2kuln8oUtsImXMF
g1Esb1SBYh1CysG5hKYWVidFai6WP9BENBS1Ycg1eHDBJUhYNCitnQ9N6Wr1OWg+Oss767RKLgAX
liwfvQGcNlRTsASiEpqjIzjtxfIPReqyV7lyElWymyomqZ1sMGC8ELbJ5NROZ3l7sfyBpkdsVBqC
ti2Aq22qP7MDblUHSqijUeeg+egsXylH9ERgMrFYHgMU5WVXNdUacr4a0kdwxovlj4jUB69cIHCZ
RKQoQEsjLRWTlSyf0LpIJ0UaL5Y/0EzNae/ZQJPaU5RZmxyYtAeOTpHyyDmmc9B8dJb3vihXPEIo
UWSqSoFsSwNHHH30aA2GIzjTxfIPRaobUTYcoLoqWd5oBFQmgWeHrGvyKdaTIk0Xyx9oss4pNBNF
mTnJkbNpKFpXUCrorL0cSJU7B81/geW/AlBLAwQKAAAAAACHLZtKAAAAAAAAAAAAAAAALgAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9VVAkAA57nAVkx+AFZ
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIADU1m0rNDyDfmwAAAMYAAABIABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL3BhcnNpbmctbm9zbmlmZi1zdGRlcnIu
dHh0VVQJAAMV9QFZm+cBWXV4CwABBPUBAAAEFAAAADWNsQrCMBQAd7/ibZnadCzZpAYRrB3q4BrT
VxMISch7tfj3FrHrcdx1w20crhp6PY7Hs1Zw8hPExBCSmYBs8ZnBMAjHnJWUIVkTXCJWbds0cka2
TsZE0c+zLEhpKRZpJ9WSMxZrCGtDngQ80ZqFcDvEPd5feg38yUhgCv7eJoS04gSrwwjiUXUpMkau
7pul4N8W4Ale/o2xPnwBUEsDBBQAAgAIADU1m0o8sAPHrAAAAOoCAAA/ABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL3NjcmlwdC1zdGRlcnIudHh0VVQJAAMV
9QFZnecBWXV4CwABBPUBAAAEFAAAANWQsQ6CQBBEe79iOyo4SkJijEFiTEQKLGzPY/HOXO4Iuwj8
vWj0EyioZzLvZbLyUpXnHIq8qvbHPIWDqcF5ButlDaQ60zJIhkAzt6kQ1itptSdOkySORYOstHCe
nGka0SH5vlNI4klRO+14anEbwB2V7AnnWfdfLE5FDp+YQHb4BUpr/YA1DBodBLcw847RcXidWyn8
EAEYgod5oYs22eLqoxhXab/myxdzfwNQSwMEFAACAAgANTWbSlI4H++uAAAA9gIAAEMAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvc3R5bGVzaGVldC1zdGRl
cnIudHh0VVQJAAMW9QFZnucBWXV4CwABBPUBAAAEFAAAANWQuwrCQBBFe7/idql0LSUgIjGIYEyx
FrbrOnEDy2zITNT8vQ/8BQv7y7mHU9QHW+9LVKW1622ZY9NewEnRuV4IomMkCUQKp8iCapcbE5N3
MSTRfLGYz01D6oPhJNw2jelJ0tB7EuNFZt2Y4UzeDS8YJ0ZhLapdVULHjgSup8+bizHd6YJ7IEZ2
mhaJlVinx9cqxxedoRVc2xvxbFL83Hv1Nlw+/lv/z+ObH+V/AlBLAwQKAAAAAAC9LZtKAAAAAAAA
AAAAAAAALQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL1VU
CQADBegBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAcTWbSrNmUXSbAAAA0AAAAFwAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1l
bmRvZnN0cmVhbS1pbnZhbGlkZXJyb3Itc3RkZXJyLnR4dFVUCQADhfUBWQXoAVl1eAsAAQT1AQAA
BBQAAAB9jbEKgzAURfd+xZsFJcag0U1oh0InKe0gDsE8NdAm7XuR0r9vKc5dL+ecK0VepUKlsgJR
NqpoCpnVWsF+vT869BbpTIi9zLVQTalrXaoBkiSBtG8vLTPGDjmsNOIpGOv83OFzRY4wOe942car
i8uBKFAzwMswMPoIMYDx4DxH40eEMMH/YlxM/NnmRmjse7tAm8Fx9oG+aLb7AFBLAwQKAAAAAACC
LptKAAAAAAAAAAAAAAAAAwAcAGpzL1VUCQADc+kBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMECgAA
AAAACC6bSgAAAAAAAAAAAAAAAAcAHABqcy9kb20vVVQJAAOP6AFZMfgBWXV4CwABBPUBAAAEFAAA
AFBLAwQUAAIACACHNZtKSxuBNacAAADSAAAANQAcAGpzL2RvbS9jYWxsYmFjay1mdW5jdGlvbi13
aXRoLWhhbmRsZS1ldmVudC1zdGRlcnIudHh0VVQJAAOu9QFZM+gBWXV4CwABBPUBAAAEFAAAADXM
zQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASe
nOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90Paz
tGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQA
AgAIALc1m0pLG4E1pwAAANIAAAAwABwAanMvZG9tL2V4Y2VwdGlvbnMtdGhyb3duLWluLWNhbGxi
YWNrcy1zdGRlcnIudHh0VVQJAAMJ9gFZj+gBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2
oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78bl
PEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPd
lqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIABQ2m0o2qq0I
VAEAANIPAAAcABwAanMvcmVnZXhwLXVuaWNvZGUtc3RkZXJyLnR4dFVUCQADuPYBWXPpAVl1eAsA
AQT1AQAABBQAAADtlb1OwzAUhWfyFFbGKq1uXDdxI4gErSqmDrRMVQcncSAS+ZHjSIEqA2/AY/B4
PAJ2Vf6k7niwt3t879Hx/QZj8MMxkDEOEQQRoRGBiU+maNmVzR2vMi62gvMd9imQKKBzGpA9WtSC
b3kvIzQajdB9VbKm4Rly04+391cXXS62q7pSt9CHeYKzKYEkzCA+VKzk6EqNd6LgwkNt8aJrfzqB
4/FQyaQoeqVBr6qMt6koGlkLpZxcl9/aX3+q/JlU00kneXvsX92wtkhvWfv4u5NyQDtd53k4o5AQ
Avv4IJ8bHaXsJEueOMqKVHoorbtK6oCewytlrX1j5wKjSLtvlFI9oJMVhgSH+TnrVKVW4zqTu97o
N6zVHq6/srrDz0qcwYmHwcFnocwsFPOgUAvFOCgzsFDMg2L/FAOh2D/FQCihhWIelLmFYhyUAFso
5kEhFsp/QvkEUEsDBAoAAAAAABIum0oAAAAAAAAAAAAAAAAGABwAbWVkaWEvVVQJAAOj6AFZMfgB
WXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACsNZtKAAAAAAAAAAAAAAAAHAAcAG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9VVAkAA/T1AVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAKw1
m0oAAAAAAAAAAAAAAAA2ABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUt
bWVkaWEtY29udHJvbHMvVVQJAAP09QFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACsNZtK
LQXnTaQAAADQAAAAaQAcAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1l
ZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtYWN0
dWFsLnR4dFVUCQAD9PUBWfT1AVl1eAsAAQT1AQAABBQAAAAdzE0KwjAQhuF9TvHRtXgAd/5UKCgt
NBeI7VQD04x0JpTc3uDmXT2893P3OMHHlWZINuwhWkxvLLIhicWl3CQRTPAiTIGZZudJ/8Y+hK4f
u8Qx0ZPmGK6SbBNWTLJ+s9WnWmHSo3N9guZpItUDimTskRlKhFC7RVLIgmY4j2ODtarwpioXYZa9
fl4FjW9Hj2v/HB6tb5v6dG7gUIaQlS7ZTJJzP1BLAwQUAAIACACsNZtKdYPXsOYBAADvCgAAZwAc
AG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL2lv
cy1pbmxpbmUtbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtZGlmZi50eHRVVAkAA/T1AVn0
9QFZdXgLAAEE9QEAAAQUAAAA7ZZPa+MwEMXv/hSDTy2ObGfb7GFP+VsI2xCDw5Y9yvbYEZElI41I
8u1XdnLpaQubwhaCQcby6PnN+2EYxhgkv7R0LdpkyYknq7c8ecPip6Drbe6ErJIlFq5JJD9rR4zQ
EjNonSSbtFgJnrS6QqPY8MBKrchoaROhLRNKCoUffsMKR6SVZZbOEi3DU4clYRXTiYIoiv5zu7wk
x+VgdjoFNh49QTQePcN0GkQvs/XrD9gJrwDeFxy5IKEaqLUBpUnU56VWCKShQCi5lFgFsPPm+yLa
I6y3+Xowsek9LK4WoNRt53xEcPEQBxDAVoF1ZYnWjsCHAEchJVhE4H41Ai3oGsJsluch+DAtb9BX
1lpKffRKxRnC3SrfwWK7yV5Xu1UYD/1MRs8TiL5fGoL+ynzIGXcW50MQAes1oUFaXF3lvamHS0wx
SmxR0WN8xOIgaMPtIdPWx6DVb991yVuEcPytO4VXIdMU/OGvagUvD43RTlULLbV5jA0IC+m/aTQ3
0ChuoMF7jaOgvVCQxmk67tGlHw16j6LZUy8RTtI+VwhYfhDd3H/mhsjSO7LPQ8YCNhOm83/aDYk9
3Yl9KrFMZHdaX4bWi5PSlgZR3aF9EWjDueuQU3t8fgwx1s8uvoSMw57quxHGb/wBUEsDBBQAAgAI
AKw1m0oxs5PxPwEAAA4JAABrABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxp
bmUtbWVkaWEtY29udHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxl
cy1leHBlY3RlZC50eHRVVAkAA/T1AVn09QFZdXgLAAEE9QEAAAQUAAAA7ZbBasMwDIbvfgqRUwsj
pBt7gDa0UFhpILns6KRqIuLYwbLJ8vZzul522qAt9JCLL5Y+gT4Ef4HsSNfgGoT9Md9rRRoPeCKZ
Gu2sUQyV6Xrv8ATsRoUcC3HUwL6qkPkFRuNhIKWAEUGG1xIymDNE2TrPI+hClawxVJ6NUmYInHKE
qNjmBaTHQ/axLbZRYAqRKTlm0jNuvHNGi6kfanTpdX4+jV+Ul88YFXao3TIesGzJHSS3mWFyZPQn
lFjJDiFavfZf0Q/H1qVc/AkrZdXW1nh9So0ydhlbIIbkJkR9O6K8HSEnxECuIQ1JnCSrSVHyzx03
SHXjJkL0nkwrFXlL/SbMuJ+qZFb1GFVrsn24rPuZeptNPcZURtls6ekt7bxSXFlEPct6dlmXtmtU
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
LWNvbnRyb2xzL1VUCQADbugBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAmzWbSon8k55T
AQAAxAUAAHUAHABtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5
bGVzLWFjdHVhbC50eHRVVAkAA9b1AVlu6AFZdXgLAAEE9QEAAAQUAAAAvZTRa4MwEMbf81ccedpg
yJSudo9daWHQUpnCnlN7alg0kktw/veLXUf7ttZCXyTgfd/9vku4DMnKpgRbIWxEvk1XTinKDWKz
wb0UC91YoxVBruvWWdwD2V4hBYxtGyCX50j0BL120EmlgBBB+K+RSKAL4Mk8TTnUvkqU6CsLrZTu
vM+uB54t0wwW202yXmZL7j0Z+8BONvs3Z61u2CCGEu3i2Dwdej/sDj8DVFhjYx8Dq1vYYS5qBB7G
7Tdnq/n7+n+dwsICVdopT4MQeWkAn4Lg2R8u9KhQltW5Szj9c3kZXFiiRJ8IRzg+UjREukx3iCQJ
eDy7XHTMMMii6SBjK206YW69hSuRwygexRz+Ms+laf2sxzPPRjGPQ54ckBOZ3Bd3MrllwpkR+Rfd
lzh+vWXAp2V252cRhuOwT82Oq7XwCfz+MOQ3pq+wxqG/iPO1ydgPUEsDBBQAAgAIAJs1m0pJcxDq
DwEAABMDAABzABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4t
bWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0
eWxlcy1kaWZmLnR4dFVUCQAD1vUBWdb1AVl1eAsAAQT1AQAABBQAAADVkUFPg0AQhe/8igknDQ5r
m1g90lpNjB4aSeS8wBRIFpYws7H997LQxCuNJy+7O5m8772ZRURQX9a4lljttWj1kqUqo/y9kcu1
c40p1Z5yVymjz9YJCrHgQOyMsGqpbLRqbUlDh1OBhe1ksGbs6cIyHp0xXAxE1/YxdyK2Y2Q5G2Kk
U0+FUBnLSYIoiv5RdF2I02YKniSAm7sniPyRJAEE8EnfTVfuJkkAh22aQkXybNvejeOmHnEzA2My
1FInt7HYHnIqdEsQrh77UxjgMqGho0DDEK6vUdXUVPWsW228Lnrdvn0sdOPaOlOOccF7xpBphvvx
sRRyMf/F+Agz5sFjxhUexg8+aMf0hy2u/Vw/UEsDBBQAAgAIAJs1m0qxSb2YKgEAAKYFAAB3ABwA
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy1leHBlY3Rl
ZC50eHRVVAkAA9b1AVlu6AFZdXgLAAEE9QEAAAQUAAAAvZRBasMwEEX3OsWgVQslYGOadJmEZNUQ
U/sCijK2RWXJaCRc375KE0iXrQLeaKP5M09fw6+RvDIt+A7hIOSx2getSTpEc8CzEltrvLOaQNp+
CB7PQH7SSAvGjgYoSIlELzDZAKPSGggRRDydQgLbAC/XVcWhj1WixVjZWK3tGPucJuD1rqphezyU
77t6x2NPxj5wVOa8Cd5bwy5iaNFvb8Ory+yn08/lAjX2aPzzwtsBTihFj8Cz5fDF/6jT2HhQBDz/
h6hD1XZXWfZ6kbFSi6kUgTAdOk+AXq6SoPMr9N66UbiZfc4eM3qt3BC9TmdeJTGnIRfX3VDlvLhF
8YjDtRPyk+YlXr49YvA9rmZeiyxLw74Pu4VnE18Q88NRzMRY4V3A+BG/g5Gxb1BLAwQUAAIACACb
NZtKvJqgElYIAADuHgAAewAcAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxs
c2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0
dG9ucy1zdHlsZXMtcHJldHR5LWRpZmYuaHRtbFVUCQAD1vUBWW7oAVl1eAsAAQT1AQAABBQAAADF
WWlz3MYR/c5fgSLLZuIigD1Iag9qUxKPiitOShW6rI+pAWawGHGAgTEDcqnE/z09FxbAArurMp1Y
ZS2AuV53v+7XgG5SmbHVyU1KEIafjEjkxSkqBZHvzyuZ+LNzeCzkKyOrkwWj+dOFt3imgkqCvX+f
ePCfJBvpYxLzEknK84WX85ws9VDES0xKP+JS8mzhjYuNh+Ga4OXJbydmO7tJzBkvF97ZaDrXY8ED
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
LsaSUT9i5OEhP/dDAL4o2WFYdRJmjYc9o/wewIqzPXl0BiM0JwLsDKlGmIat/WWOwBqkrA24OT6h
87SdoTjm4sAaEOAe3NEOMrLM6GPpApQFmFP5lFEtTGJmkZmXyIQ6bv/sWGQ10gK3nYB18sg3loGP
GhSFymGfhjQYQ+8Z8c9nildMlbwzVK/7VNf02f8HUEsDBAoAAAAAANo2m0oAAAAAAAAAAAAAAAAI
ABwAcmV0cmllcy9VVAkAAyz4AVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANo2m0oAAAAA
AAAAAAAAAAAOABwAcmV0cmllcy9tZWRpYS9VVAkAAyz4AVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAANo2m0oAAAAAAAAAAAAAAAAkABwAcmV0cmllcy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvVVQJAAMs+AFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADaNptKAAAAAAAAAAAA
AAAARAAcAHJldHJpZXMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3Jl
ZW4tbWVkaWEtY29udHJvbHMvVVQJAAMs+AFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADa
NptKOm32PFIBAADFBQAAfQAcAHJldHJpZXMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy1idXR0b25zLXN0eWxlcy1hY3R1YWwudHh0VVQJAAMs+AFZLPgBWXV4CwABBPUBAAAEFAAA
AL2UUWuDMBSF3/MrLj5tMASLa7vHrrQwaKlMYc+pvWpYTCQ3wfrvF11Z97bOgi8ieE/Od27kZEhW
qBJshbDn+SHdOikpN4hqjyfB11pZoyVBruvGWTwB2U4ihYwdFJDLcyR6gk47aIWUQIjA/dMIJNAF
BMkqTQOo/RQv0U8WWkrd+nOOHQTZJs1gfdgnu022CfyZjL1jK9Tp1VmrFevFUKJdX8zT3vvhOHwM
UWKNyj6GVjdwxJzXCEG0aM7BjTqJhQVBEMwG0Xb1tvtbVKEoKwtUaSd9CIRo3pxD+OAEz/6FsUTy
LuGOcHyG2e04Q4YrzGL5AxP3NLeZXzINq5j33myrTcvNxNcQzf6h+sUcfTOvhGn87sczL0cxj0OO
B+REJNPixvE9G84Mzz9pWuLFyz0LvrbZxL9FFI3DvppdurXwCXyfGPKV6Sescegv4ndvMvYFUEsD
BBQAAgAIANo2m0oqJwmUJQEAAKMDAAB7ABwAcmV0cmllcy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1l
ZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5bGVzLWRpZmYudHh0VVQJAAMs+AFZLPgBWXV4CwABBPUB
AAAEFAAAANWRTU/DMAyG7/0V1k6gkkadgHHsxpiE4DBRiZ3T1tsipU0VO9r270mzAddVnLjkQ9Zj
+XkthAD5aY1vkeRSsZIvm1JusHrTfLkWXptGLrHyO2nUyXoWjMTCIXnDJB2y04FusdFKtrZB14n4
EbXt2FkTaqq2JLbeGKod4ti6qDyz7UgQnwySwGOPNWOT8ZGTNE3/oYKq2SsTBYoCxOwuzyGNZ1Ek
8IEH3TWLiCSwnpcl7JCfbdv7oF0OLW7ODTM02GLHtxnbHiqsVYswyWf9cXItaHDLoAkm00iJ66g9
6t3+zOWPA5eu5q/vV3O0t940YWAY6Aw2iuAhPBIIY4cdrZUn/EMA0xEqPwHMnkaIROpXY2AvGvfR
Y3SM0xhj8F9Zd1Due/1fUEsDBBQAAgAIANo2m0qxSb2YKgEAAKYFAAB/ABwAcmV0cmllcy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9t
YWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5bGVzLWV4cGVjdGVkLnR4
dFVUCQADLPgBWSz4AVl1eAsAAQT1AQAABBQAAAC9lEFqwzAQRfc6xaBVCyVgY5p0mYRk1RBT+wKK
MrZFZcloJFzfvkoTSJetAt5oo/kzT1/Dr5G8Mi34DuEg5LHaB61JOkRzwLMSW2u8s5pA2n4IHs9A
ftJIC8aOBihIiUQvMNkAo9IaCBFEPJ1CAtsAL9dVxaGPVaLFWNlYre0Y+5wm4PWuqmF7PJTvu3rH
Y0/GPnBU5rwJ3lvDLmJo0W9vw6vL7KfTz+UCNfZo/PPC2wFOKEWPwLPl8MX/qNPYeFAEPP+HqEPV
dldZ9nqRsVKLqRSBMB06T4BerpKg8yv03rpRuJl9zh4zeq3cEL1OZ14lMachF9fdUOW8uEXxiMO1
E/KT5iVevj1i8D2uZl6LLEvDvg+7hWcTXxDzw1HMxFjhXcD4Eb+DkbFvUEsDBBQAAgAIANo2m0oF
dQtNgwgAACUiAACDABwAcmV0cmllcy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3Mt
ZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xz
LWJ1dHRvbnMtc3R5bGVzLXByZXR0eS1kaWZmLmh0bWxVVAkAAyz4AVks+AFZdXgLAAEE9QEAAAQU
AAAA3Vppb9y4Gf7uXyHY6LpdWJrbmcOZIvGBFt0WQb1oPhaURI0YU6KWpOxxdvvf+/LSSBppZhZJ
ttjGiEXxfM/nfSj4JpUZXZ/dpBjF8MiwRF6UIi6wfHtZysSfX0K3kK8Ur8+WlORPV97ymQgicez9
fObBP4m30o9xxDiShOVLL2c5XumhkPEYcz9kUrJs6Y2KrRdDG8ers/+cme3sJhGjjC+9i+FkoceC
B0LxHUkSOx6i6GnDWZnHvpuazNVP/SBzgmCUxN5FHMdmLGG59BOUEfq69DKWM1GgyAqYIb4hIPII
Z97QdBUMlNN6cExBo2esBUpHLUknk0nH/gLlwheYk6Q2KMhnrM+oH+pTnMilNwxmrj8moqAINiE5
WMZK+EJimcLi4fAPVj4UxyTfVCuNbNY1qtX0jhWX5CkIJavpKXvGvKXRbDZb9RkbY2OGQPnkBzhL
2MUJZQjU4GSTyqbn1KxbUB+BLu4oBqYnElQctlSWKKTYjzClDS19vW/DSi8paOdrH6pQe+Go2En2
iCPlu96g0YubIdMOFxuzzu4QUMNia0643xbgXtgfVMNXXqAebQ17xRMkxuGr+u1pUd9TFj19QFwG
oOoyIVxIP0oJjXsNq457hPVXhzbjOAPXXh05z57hzG8Czg/VlEbYzVzUQbRIEiHqI0o2kBuSdajF
sYr0v6A8ptiZw+6jTKjeU2wcuovnqORCuUaJ3c5AFIJ3SucxOLMKHJM8WrxDUjTifD8cNhy/rlqB
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
VAkAA4vpAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPo1m0od0Y8mowAAAE8CAAApABwA
c3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLXN0ZGVyci50eHRVVAkAA4j2AVkM6QFZdXgL
AAEE9QEAAAQUAAAA7Y+xCsIwFEX3fsUb28UgikI2bTuIitiCHSVN3hBI+0L6Uvx8a+nkFzg4Xjjn
cm9ZVbdKwoEZO8/ABMqMqtcICjR13iGjAR3DQCERD3Kxw0EUipUom1o02J4ti5pi0PhJOQUUVzLR
TZjtDb7QmFYMGEYMor5fLOOpOOZz4Up7n27W+wwktEQOlgIpJ6SeFSm/HCmXgWm0Pe+2T86S8n/i
R068AVBLAwQUAAIACAD6NZtKHdGPJqMAAABPAgAAMQAcAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4
LWJhc2ljcy13b3JrZXJzLXN0ZGVyci50eHRVVAkAA4f2AVkL6QFZdXgLAAEE9QEAAAQUAAAA7Y+x
CsIwFEX3fsUb28UgikI2bTuIitiCHSVN3hBI+0L6Uvx8a+nkFzg4Xjjncm9ZVbdKwoEZO8/ABMqM
qtcICjR13iGjAR3DQCERD3Kxw0EUipUom1o02J4ti5pi0PhJOQUUVzLRTZjtDb7QmFYMGEYMor5f
LOOpOOZz4Up7n27W+wwktEQOlgIpJ6SeFSm/HCmXgWm0Pe+2T86S8n/iR068AVBLAwQUAAIACAD7
NZtKbU2yna8AAAABCgAAKAAcAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50LXN0ZGVyci50
eHRVVAkAA4n2AVkN6QFZdXgLAAEE9QEAAAQUAAAA7c/BCoJAEAbgu08xR720RFGwt0oPUREp5DHW
3TkI6sg6Kz1+Jp469QBzHPj/n/myPL/nGg7M2PYMTGDcaDqLYMBS2zfI6MAGP5CP1JOa0OKgUsNG
ZWWhSqwuNauCgrf4vU7kUd3IhWaK1Z3DNzpXqQH9iF4Vj2vNeE6Pp3lwZfs+3qz3CWioiBpYBrSe
IsVc0fqno/XyYBzqjnfbFydRJghBCEIQghCEIAQhiL8RH1BLAwQUAAIACAAANptK1sOmDqQAAAAU
AwAALQAcAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnktc3RkZXJyLnR4dFVUCQAD
kPYBWRXpAVl1eAsAAQT1AQAABBQAAADtj7EKwjAURfd+xRvbxSCKQjZtO4iK2IIdJU3eEEj7QvpS
/Hxr6eTs6Hjh3sM9ZVXdKgkHZuw8AxMoM6peIyjQ1HmHjAZ0DAOFRDzIxQ4HUShWomxq0WB7tixq
ikHjJ+UUUFzJRDfVbG/whca0YsAwYhD1/WIZT8Uxn4Er7X26We8zkNASOVgAUk6Vep5I+bWRcjmY
RtvzbvvkLCn/En+J30m8AVBLAwQUAAIACAABNptKRmgb25kAAADFAAAALQAcAHN0b3JhZ2UvaW5k
ZXhlZGRiL2luZGV4LXBvcHVsYXRpb24tc3RkZXJyLnR4dFVUCQADkfYBWRXpAVl1eAsAAQT1AQAA
BBQAAABdjrEKwjAURfd+xRvbxSCKQjZtO4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMf
GJhA20kPBkGDoT54ZLRgUhwpZuJFPvU4ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4
YRTqeXOMl+pcLsGNCSHfbY8FSOiIPKwBKWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgABDab
SnW5v/zlBQAAMTIAAEUAHABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4taW4tdXBn
cmFkZW5lZWRlZC1wcml2YXRlLXN0ZGVyci50eHRVVAkAA5j2AVkd6QFZdXgLAAEE9QEAAAQUAAAA
7VpLc6M4EL7n5J+go101qeJlwL45eFKbw45Tk8zeMcgJO7bwAoknl/3t2wIDAiSBHZx4ap1UqmK5
3+qvW2q4m9/cul4SRm/TqY/XOMFzN3GXbozRNRpc3c1vnJAQ7CVBSB7DBxy94khEKfn2Bwn+ecFA
k69Op42l4QgNlV/WarUaK9ZK1U1lBJzDjRuQEeIIeHaJv8bzVFk72f7zYosjlzoTg12PzzjCyIU/
VR8r8GtNNLTFxA/I09Vhou7D7Rb7yCUozJe/IBLuUCLT0Wa18xJFmCSFJgkDkKzCaLPnyKJS8KV7
MPSXXM5su25c7yeY9ACpIIumH/jzJj2z+d46jHGDkRfNf1szQEkzQJSDuSWFDiAEj8n85jsGuXEy
nUbZP0642VJKn0MSkqqUhxfPw3EMplwjLwsmAn0xjWIQI9VQLN0YG7o9ge00qMBClB/EWzfxnr++
UiYIOeuNoqvKiJIXcINEISLn6HcsgNBwALExLNPUdM1SjBEbcpb4KKRZaZw5nKzk0syewGYr9snB
xuo4GdhoRpVQYyOrLWHPRbijwWVRlHIq8KOaE2M8ppwyGC5q7P3siqFZ2idGTPGWUr/jxI2SvzI4
OmDEE36MXBK7WV42GMqchcIUYTfBIt4UZNcsvFVFM4R7t8RPAWHY76pbweEIyGv4s4z9jPgM+2Ow
wdFwdPUn3kBpAD5WWlObJEChRMFtEEEJ7CVNVHVcpom4QC/YytStPJfmMB/AAoduH2hDfr42QLsg
eS6KM1uZNcNGXmESKusmzTUPU5AtTX8Cfpi+NbrqnmJZO2IWUjNrecTtMj+2T5Hr428Y+9jv0l0M
Q4Gihnec9SO6TulfhoPF8m8ITlZ3rqG7oMGo4VmD8nPa14c1obr/+/VCQAmiSogNRekQuwXJ/BWF
jBvsqsgcJm0G6b5SCXBTdCNoLfsujjWHVlAy8w7QYBAUPV6euj7dELR4yMF/N0eqpqvGWNfGE9vS
VW0vjpVVcQ5EfMM7RmxRdmUsX38FMa0+TbuZlel0FwUJy/tAa4m05kKRvBcF5sBdQkPPXa+X4MVI
3glBp8PLNkERd/rPzAo3TwWLlgpx0d+KprEgzjqA0tcvfMPNJkiqhXMXrNdOui5vCO/X21or6lZU
0N74siWPMlclEG/4LLtN5jDnMomgLiEWojJjKtArxeFtQIL4uSsQudZ0CeJBCORpqZ5ANV03jz5K
SvDMy54GIjkA4Fo9ENAsotkyjFqgsgoo1HMon9+xthYV5qDFOeNRZ/bTg9kqwVHlDOnsszU/Hx59
fEsk+8Y/ilZIQKe7XAMY2mpMQVhLFK4loGrm+/RKDh9fMUrquy5IxQyXf9ANgogL73VMdeOaJcUa
j6OJNd22bR7WMIGVF9xaDbqj8mD3+Qpr5UQiiuPsxLTlpVAi7j2+99YnD+E9r6pyoklXRccnzG0U
WxppEibB6q3M2XixqudomZ+2rcEdVywsLTJupcH3NH9pOdTMWhV3HeAISiJtIZW4FL2mtIVPw5kn
sIA3de0L2o9bIJ+EJAcMTU4Jq1MkqF/vpNXOO2Tyb2LY9qhaSMaNMQp9zlFJW4uyCZtdo2zfZ2B1
qJyq6I37tsTp+t2+Sdf1ZCMgYVPlJlGXo+/sZMiSH5/Bglx1TR/bMKUhrHY4A+pRyziYK+U2CjfZ
dbLZNQ1F1xoNnBvq9mYtgHCjT9vGlahBd9NclN4MH9/ziWtuT+q1v8hwybWpckgylBNcSNIpSct9
JKVpXDXqnNLnxWddli6Ti//h5OIyjfjsaUTnpjvRDc3o3tyzsvqZ846PqlWNqUhbUI5v1Bl/a4uW
1QOpqCG73bpljk7dTrWJ2d+BqusV5zfMuXN4HwCO3fZv+D7AsWOK4x6JdXwT4IAnZ5eXBnp7aeDs
pusHzsDP4oj8vkedlwP25dHg5TB+eTTY56PBdz9aY7tYuK2NGukbNa1zT800PmTuqanmMVcw4Rtq
eagdl3h4vT6GupIG+/gNjvuit33oJ6ICn/8DUEsDBBQAAgAIAAQ2m0rjB5w29AUAAN41AAA9ABwA
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLWluLXVwZ3JhZGVuZWVkZWQtc3RkZXJy
LnR4dFVUCQADmPYBWR7pAVl1eAsAAQT1AQAABBQAAADtW0tzqzYU3nvln6DdtWduZgQIg71znJup
Zzrlts7tHoMc02DhAkmaTX97JTCYhySgxonTOjNegHUeOo/vHB05y7vbFQ5fcDibuZ577xEv2v5k
E9f3yOPvOIy8gCy2NnnED6FNItuJ6QtwA4aDH8T78xkv727v7Nhe2xFeBITg5PsmVoyefhQEDQ3p
SDOn2nRiDkY72yNjUGPcxG7AofDIS/CErT0ObabRnLgF/R+8HQ5H48GysPfaJr5j4lJJCz+IcFlZ
BE0o377D5XIfBruF72ES1w2AoKbK9UlYuP9ek5S+UQexExpYjYru1IzJuA+3BHtM7m5/w5RPFC9s
4mDfxy6PM39lEqmfgF/BCrPZPo2Z3EqJXe69kC4fwb+MzWajQ2MDEYRjibsCiZETZhLaLUsznD3n
ikRU3YctDjGw6UfRdKhDRdFVcNCY7eSeignCNxrB2MdxziPb6DE2H4I81rkrJd9yNK69Go2LxlK0
CRxTysYtJ8L6sYxuTI+W6cbqe7DfU2/bBORe/ApI8ApimYwmrRfPYUizNZckIaBLNkG4O1CkVsnp
Eh+M3DUfqpO1t7bzRFVa0VDAg9WvP3sxW1V8O5s94tgKv0WU0KfInnFYkk1ABWT4RyUJyOuCQPKK
PoGN52PwZfgFUGVdL3qSl5a7usqF+HMY2NUIeQ79uzEIYRKEojTINMll0IVWETZms/CAH8Fuz1a6
nCUBKXNZPTsOjiKqyg1wUn+Cl7R8Ai8qFWEdIsYwZ0VNt7djZ/vtJQf5Av5oChyXMp5BnGhzCfwV
chiMhtQ2yJhMVE01IKqjvsTQjXY2EjuLULhWJnvKdxOaZ8/3ooyz5TuLqGO2Fy2rrlnNEaQ+M24p
HxklpH8KNKCuU8oTkUCaxVZFej9ORaqhfqDBobOWFnlqszAWtekNnWGI7RjLWvxyd6hAFQldv8aP
HimQL0mbClClEhX3tl2jAFWtIpy0w9Sj7MIDVW/BjMYqzDEqwasXb3NELcKpikxwbJrBEeyYhx3M
MmM9cae0h5q4xnjQ3rGcnrH8nPVQtdLwY/8Y2i7+BWMXu21KAkKQIhF+5by/vN6zY+EqHG2SXLDW
f1BXpdB1QwsUGI5rdq6t/JgK+G517JSzSaPtLJLuV2QyrrHLLLOkbVJIc2HJwHXWNaM1+F1yUK6v
FcBmVgVqBALA5MWp7TKHAGuVQdHyDiiqpiBdU6Y6MhWE5IXzu0iJjhYBI8f2/TVVeNw4HFrwPCuA
70X/UVCi5okoRmZpcY5sebmwSDoE6TdVgt3Oi8sg9er5/iJ5Ly8Fp8ttzMuqFqXMqn3ZEEfpVmVz
p+qeZefPLKW4RKK0ki/upm4ho7hs21ijUyrxpJRbN1XTJmfoqxa8MKilFieSuVoPBWuscL4OwoaY
33gsZ7OcvLzOpGKVQnfCadPYZg6n9vkmxmGpDUyNkrRuw5N6nljiN343WVqCs+NaE1jkCyuBwtWE
ipq7LjsK08cXDOKq1wWh2O7eoghTXLWkucaj4NxkmKbJyzVM6Jtn3ONp5/98bdNbwfu8s/YzTZhK
Mj5g4AFNqaVJEHubt2PMRtamGqPH+DRNVXpMTUCGNn7iwUXPRZMhe0ndvAQc+fPXcE7qxTycaOpX
cBhkUDcLl3QYR5wz2s8RN261wJULYuF60pwi0xyX81uXzDUPKswbo6XLmKvc4tYumQ2mo7DgSS+r
y6x39tsaJ++Xh0JdlUNTRFZYuRHbpv2dny275C001SATXZF3yff9QlM3F2wBXtRqtYkGoiLdTnIO
v2kyZpfZld8FWCkIcHUqNUoInuFQsmKD04YzSbKmdtyoUkovHC4aA69jiOsY4jqGeJ8xROtKO9WQ
itpX9BRLP3LQ8V4AVRuH/Md/A9dnDVWnk/66qJZ0nzHmLuEGnfba5kXfoJ9l8nm9k7/eyXeYT19E
63rafeK18b02vtf7t+v9GxffTr6/Ev60qP5fCJ1XF0tdsK/MCTVFbR5aqhPUcfyoKpOagw7Sh9Iv
um1NyKa3PZ99UHuwVKfj4z9QSwMEFAACAAgABTabSkBef/56BAAAtRgAAEEAHABzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLXByaXZhdGUtc3RkZXJyLnR4dFVU
CQADmfYBWR7pAVl1eAsAAQT1AQAABBQAAADVWEtz4jgQvnPKT/ARqjZV8gMbuCVmUsthh9SS2bts
i6AdI7OyE2Yu+9tXsrGR0MMQSO1uUhwsd7da3f193dZi/rhC9B3R2SzD2RMmuNz8CkmWY/L6B6Il
Lki8geQVvVBISphWbMG5d+4G3wj+6w0t5o9zWMEEliguCEH1+z5TXJ/93ABEfjAO/MnUn4aTwXAL
MRk5iuE+cwONBibvxXe03CEKuUcPJBP8f8FbRIejweJ49mKHyPzxd8TslFUMSYryHGU6y3rJOiT/
I3uZkrRnRDIW2TgvSiQnJwATYE93qrXyRIttnGNEKjXhAfA9uz+1iezjnjT6vT6Yi67H1FAsXz8K
R9eUobA6m+2aGHZatdwTpiwaQ/AjWq/XYxCtQQDAyOJ+Ydm0NiaGP+UnVIzoTvS3sjYcSW6BFIya
WntiOxb0J0suylGFWvm2FI9peym6MtBKWt5qPOxx0PXD2kFz5DacZNC83qxf7PDcZatkfr1sEEUO
ZD/XHwP2H00955DWwWWmnovdjiUeEqdL6C8OKfZOZdujz+v4jVJWyN1OFgUmsi7o9qDRRKXTq3Mw
zBI9a9eyjzD9zlxasVJAdoqfq/KfUqKuD9oS1dZg60m3BxNciqw6m9EDvRbbHZfMNCIFka2s3tIU
lSVz5d5Jm2A6700bc3ApNcMxCLjBzlSGyx2s0s2X9458BMD5LhhJcOMdwHS4ujsIAHKGdyw2QRSG
nu9FIFCboiXQvXGO6jibmpRC3zcC2wRMPh1s4h6fBjZeUUeoiZH1Es79Btzx4IooqjUB+3PDaTAe
W7sGK/7lifptshJ4kfcvRgykifXcZQVpZZp3e0YOimCFbLOyPHa4wAuMuUvQKyaC+kJOxW9oyyDO
NMRVVevDo8g148RNysR1x8cyMRP0UmSm8+j56I7wwDyIefrYbk47grJ87XG16chZZGYvmDjHudA5
8iavtRRxkCVhNmXnCLNoNDi/xJp2JI2B8nM7Cyld5tvulcIMfUUoQ9k53SUIACM1tNesf6DrCPNy
jYNl8icLTsM796y7OHfqgKtIXjUC91pfkqZyTPXU707aFlKfQ34GpA6qmlbg0RMZy/eJKmsglZYj
FQUDnegyCTOeEGe5auGxmDuu57vB2PfG00nku97BnGhLOhwz8RXtBbOMcPpVvvzAJcen6rewMpvt
Ka5E3RVHm5WVGI08mwJzYZacYQrzPGGnGPXei8S6ajPQXHz7ypS0dVuIaJGEuw7Q0eqSNN/Dt4Vv
sd3iSqaWPc7zuF63U+b1+/ZyxakXEtqVlz111BzVdgVxembb91YLc62SCeoWYSMqG6UOvVYcNvd2
5wJR6805QbwIgbpd5BnN8/3wmvscE5511aMgUgMArdd3BpklfUgK2gOVNeZQb6H83xv8TqIijCKa
KYgf5vB9/bCuEJWmrPhQre0EdeGAY0jleTfl1s9w9Tr39NxlVexat8VBsl49lms05d1XZg7lGjea
emFgPJD1Olg2vYU/E1SvLw5kebqPG56/T3O3emGc/gFQSwMEFAACAAgABTabSix0kqFrBAAAVRgA
ADkAHABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLXN0ZGVy
ci50eHRVVAkAA5n2AVke6QFZdXgLAAEE9QEAAAQUAAAAzVhLb+M2EL775J/A21pAA1Bv27dE3qAG
ijqts73rQcdsZMqllKR76W9fUrJkynzITrxoAuQgeV78Zr6ZEZeLuzWir4jO5xnO7jHB5fbXmGQ5
Jk9/IVrigkTbmDyhRxqTMk4r9gLcgPHoG8H/vKDl4m4RV3ESlygqCEH170OmuD77tz0Yup7vudOZ
Owumo8kuxsQCkuEhcyOFBiavxTNa7RGNeUS3JBPif8Q7RCfWaHk8e7FHZHH3J2J2yiqKSYryHGUq
y2rJGhLBXiaB8oBIxiKP8qJE/cN7cArNcKZKK/e02EU5RqSSAfWg65jjqU1k74+k0R+MQZ/UAVMT
sTzcMLA+U5oFL/P5vslJF0Xt9x5TJj6B/4abzcaH4QZ6EFoGOArDIWpjBt0tpwVqn7tAShbu4xZR
BGL2b7s+9KFt+w44RMxPcs/cFPQ7qxCUo6qz0R70mPvHoqslpaThV0XE0quJJYJluwG0mObgkWtn
10HGD2dHZC4z9VDs9yzbMQFdFn8BpHgDlcnHUNTRC6WMDZ0ngwIT2RR0d9BoUOn06hxMskTdWmvZ
uzh9ZiGtWSmg0fqP33DFpcS38/kTqlb0a8kUc9aJWwtLsimYg7a/ME8addkRqF+xJ7DBOQJfxl8A
CzbD5bN5FCzkkIX6S3kzkRRVCf1vsAhhXYQ6GrSRdD6Y4EpsG/M5PfSPYrfnkplCpCB9K+uXNEVl
yUK5AWmTT/DajDuAy97Q9KHHDXamGHT7uEq3X1+7Jir0H9eGVo/xvMXpDle3P4HDYDJm2HhhEDiu
E0JP7qoGoAdxDmucdV1YGkNX4vsUTn8630UfP43vvKKObBeRdRI+czTU5+D2+Mg1IfuzYQh9n2l+
sBMYWbw68X6dpHpO6PyPgMM0MQ55hhmtdGv1wOZFUVwh00re375s6Hja1CfoCRNBfdlPxXs3LU29
nHozLhdNZVzYU49xCg/MTcRB4xPmWJXgDVfbrqOK7dTxpuC4lIJjs+MZThFnRhJkM7ZDBVlojc5P
rGJn7D+3gEij4dv+icYZ+h2hDGXnjATPg6wToTfF+8+3e144uIRPh5oLq+Rvlqqmdd2wAQXGloSz
JPmh7X3Q+oo0dayr7uFw0rashwJyM9gbwrJpKVkDyBg+1WRZTWNp+6SkoGkNqkzGGU8IWK1bsi4X
wHZc2/Nde+Z7U9vzzKPlQRfEhYiASRrnecICtgavOyJVZjUNLrp+FfS0VS7EyuwJd9zvGuqKNJ/h
16VKsdvhqk/jN5znUf3e3Cw/7neQl6dR9Jgl/ThQR81RTTcfp2c2faG1lFIq6WhlFr4sXIFRSrPn
oHERlVRe+suN47rBR+6DdMRUlYFELUUlK6Mea2RW9DYp6EDNbzDnbMvJzze7T1AR5rdikeGHOXzX
3m4qRHuLUgNKvdyM37EVaFJ53k228fNXvie8WFpcEIt9r4bDmWs7J2uNdDcczpzA057SeMfcN72L
vyeofr88tMJTP3Zwvp/mwlYqg8MZx6MfUEsDBBQAAgAIAAU2m0p7mnWVJwUAAM07AABRABwAc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1hc2NlbmRp
bmctcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAOZ9gFZH+kBWXV4CwABBPUBAAAEFAAAAO1bS3ObOhTe
e9WfwNKeaWfEw4C9i3Ez9eJeZ27Su8cgx0ywcAVJmk1/+xVgQAIhbMfE7q2aycL46OjoPL5z9JEu
5rN7iF8gnk79wL8NUBBvvrnIDwP0+C/EcRAhZ+OiR/iAXRS7XkIeKF+UT4PvKPjxDBfz2dxN3JUb
QydCCGbfd6lK15Nf1QCWbowN3Z7oE9MeDLdugEZKQ3GXugFnRYBeoie43EHsphbdIJ+y/yHYQjwc
DRbV2aMdRPPZP5DoiRPHRR4MQ+jzNPMlM5f0qM9vOPkOIp94wgmjGLLONIANxOHxuFpucbR1wgCi
pBkgA+ia2J5MhX+6Jfn6Thvak6RD1ZBON90yR+9JG+rpdLrLfViuyuRuA0y8MQQ/rfV6PQbWGhgA
jATmR4JNM2W0+730hA0lvBP9ajwbjhizgAdGea7dkh0j/EaCC0OYwEK+SMUqbA9RmQZcScG3HAs7
DFR1MzOw3XObFBTgPNusW2z/uYxWTOx62EAMFZf8qvoYkB9roin7sA6OU3UX7XYk8C5SyoB+VlD0
qiSiPbqsdp4xJolc7iRYQETWEd7uV+ReKddlMRj6Kz7KZrIz13siJt2TVIBiSJ435XtJUVUHRYpy
c7CwpNyDCC5pVJ1O8R5eo+0ulfQ5IhFitdw/ex6MY2LKF8XLnam85G1HCWKmeY2BkSosVflBvHMT
b/P1pQQfquB0FYyYcks7QNvhsu5AFZAy/ER8Y1imqemaBYxmExM4utPPVubntibVgO8zFZsN7N6L
jd6jt2JLM6oqNdqz2irF/pa6S51LV1G2EpB/qjkxxmNh1yDJv6wtP09UDM3SLugx4K2E544TFydt
82nHyIGhm0DRbMuOHSrQjNbYreBjgKjlCzYUf8EtKXGygn7aXHXyKPKeceIsaaKq4ypN2gF6SSPT
YfBcmUN9IBY4afjIbkoxgpJ4vQbJpgRnGpk1w1aquVCpcDPNNQ+mRbYy/Qk5h+lbo8HhKZa3I2YM
ZD8Xs1Cjy3zfPWLXh39D6EP/kO5iGICAGnzlPD+h65w8udbXetF2GySsy16DMHSy52JXeUWgu3bW
/V6sXqI8N9sy1qufgRlsGl82SojnKNHFpe4x0ZRWACh3UQveeAJhWpJj97Cj+9yJzDnEMcrQc8Nw
RawYdXIK3F1YtNZ03XzPza4FwBxeRjCnKYUGdRe1VARHZolvVhHuKJ41yfQlKrDy+lpAzSsUKHHw
MD3MftK+WScQM3jr7DOwwNKLDdjn09SSXofxbsfM+h82sV+5TX8iqXkRdur8WNLTXZDZ4wI3G2AL
PY2iJFi/VXkXL9f1PKtyzLa1fArk4UqKrczSEoSr3fgynKGUzmtT1z4r+5mduLxV5NTJm4V3iri1
J4Zts/SlMQZiYG3zQbdQNxi0+K6BA7YxaAOAw3Yu0yKPSvG2oMZ4L/NS5NpE22O35wyx6T6999S6
Dv++Ngsj7ym/rR3Zmqnht/H+wiYVqrXaJ3wPwqreum8rmD1f7Of92j7ANA7fJ3exfCfz4e9kzpn5
2uT0y8E1cjR9tCf/Sog320px80Ti7dRgHUrYSfLs9yfPru7mLKk8SeVJKk9SeZLKq0Pd2WgzSQdJ
OkjSQZIOknTQ70IHWRNVAx9AB1kTYGmSDpJ0kKSD/n900OX+DkvSQZIOknSQpIMkHSTpIEkHXQsd
xJwkTqJdYQjdsrKn9AVBz99Li28rWv5S+Yh7h6aawr8pa/43wp6lr9E7/dvU+/1SEGfR/fKI2P0H
UEsDBBQAAgAIAAU2m0p3r8L3PAUAAA89AABJABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1hc2NlbmRpbmctc3RkZXJyLnR4dFVUCQADmfYBWR/p
AVl1eAsAAQT1AQAABBQAAADtW01vozgYvufUn+DbJNKM5AABkluTTrWRVpvuprN3AiZBJSYLtN1e
9revDQEM2CbJJG1mxpV6CPH74ffj8euHdn43XaL4BcWTiRd49wEOks1vDvbCAK//RnESRHi2cfAa
PcYOThw3JQ/AF3DT+4aDf57R/G5656TOyknQLMIYZd93qaLy5HdoQEs3RoZuj/Wxaff6WyfAA9BS
3KWux5EI8Ev0hBY7FDvUo1vsMf4/BlsU9we9ebX3aIfw3fQvRPQk6czBLgpD5PE081dmIfmB9Hmt
pD0g7JHIzsIoQfXkGNCG8nS7XC33cbSdhQHCaTvhBtQ1uT+ZCu90T3L5Th/ERdehqs+Wr26Zg2sq
Q8bKZLLLc1J6kdm9D2KyvA//tXzfH0HLhwaEA0k4IskmMmUS2Q1tW1R8Lh1JiLuPGxQj4JDfoT6C
IzgcjjSw95ju5J6YieI3UiEoRGmpo9holfvHqKwl7krJtxyPW4/6AzZYQ92EAyLZueXM2HkiM7LG
VWSOU/UQ7XYk2w4GZRY/Axy9glRmo8vr2XMck24oLUkEyBI/ird7iTwqpVyWg7634kN/tnbquE/E
pSUpBdRb/vl7kNJV7NPJZI3SRfw1IYIhOSkKDXPsR8RAgS/EkkC8bQhkj8gn4AchAp9uPgHirBck
T/Kj6q7tMlN/LgWTliAvof91FiHMilDUBoUnpQ2ycMHCxmQS7/Ej2u7oSo+zJMJ1Lctn10VJQlz5
Atw8n+AlP45BkNQO9RE0qMJSFQndzkndzdeXEkQZ/NGHcFDreApxos1l8Mf0MOjfkNgYlmlqumZB
o42qkkB3xtnK4ixC4dYxdKZ+t6F98X5nbVys32lFVd3ORlZb0TNH0Po0uLV+pJKQ/AyhBUcjIvmd
SCDt4kXD+nmSamiW9oEBh+5KesiTmMWpaOzvmLxi5KRIdmWoT19DqBnC1K/QOsCM+LyeilMnLUG9
NK1Jh4u8Mo7E1MpP5gMxM6NBoydMVZXgNUg3JaKycKoZNqiGUlCBHc2wi2hnrExvTGYo07MGvcMT
y5kZ65+LgLSOhm+7dex46A+EPOQdciQYBiRIhF45z69v9jzy4Dp56G7KutF2G6T1BL4GYTjLnssT
5xZl12VZ9y7i9QLnnSLqH7e5h9ps1PqylVBeoGR3uGbEZLNmAaJcIQF2uPLFx7lLwOVB5sMh0QB9
1wnDFXFy0MnRcK3UYVrTdfN7brYCDJ3xyqC2m3JRrxkiQRtw1izi21UUd3SMT8p7gQu4vj4UakSF
QSIOJNPN7Cf0Wz9FcQ3y86BkMH3zoYP5+TQJyuswHvOYO8K7TfpX7tOvSBL/JGzahe6QNRsfcKWB
tjTSOEoD/62qu2ThN+usqjHb1sggKsAViq010RKEK2v8NZy5mK1rU9c+g/21gYRcuOTU4b8O7wxx
bY8N2x7U63YE5cAqikH3om4wEMSuhQO20RMBwGGWy7LIs1LQ6A3Gf5G3Itcn1h9bXDPEpyW9ejVO
Hf6VcRpG7lN+YTzyaGYm3tb7G5t0qCb0T/oeqK5667ytUPZ8vh/yG3agaRxuJw+xeif17u+kzln5
2vj0y8Gpcpc8VC9xPHlXwrjZFsXNK2bcLnJ7Uhye4vAUh6c4PMXhKQ5PcXjn48sUD6R4IMUDKR5I
8UA/Cg9kjYcafAceyBpDS1M8kOKBFA+keCDFAykeSPFAigdSPJDigRQP9BPxQMK/2Gr/91pz30ka
7Qq32VMte8reI/T8vbX8UqPlL52PuJ5oQ/NX3MFxq8+2rYvfNiXBkN02+Qn9H1BLAwQUAAIACAAF
NptKrwIBXQkFAADWLgAAUgAcAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVuZGluZy12
ZXJzaW9uLWNoYW5nZXMtZGVzY2VuZGluZy1wcml2YXRlLXN0ZGVyci50eHRVVAkAA5r2AVkf6QFZ
dXgLAAEE9QEAAAQUAAAA7VpNc6M4EL37ND+Bo101UyVA5sO3GG9qfNh1apPZOwY5poKFR5Bkc9nf
vgIMCJCETezYqXimcjBudbdar1+3Gs9n03tEXhCZTPzAvw1wEK9/utgPA/z4DyJxEGFn7eJH9EBc
HLteQh8oP5Rvg184+P2M5rPpzE3cpRsjJ8IYZd93qUrX0z8VAlOHY6hbtm4b1mC4cQM8UlqKu9QN
OCsC/BI9ocUWETf16Ab7jP8PwQaR4Wgwr/YebRGeTf9GVE+cOC72UBgin6eZL5mF5Avr81sguEPY
pyflhFGM6ocNgQXk8PG4Wm5JtHHCAOGkDSAIdE3uT6bC7+9Jvr7TBzGIO1QN2XTQTWP0HlgzTyeT
bR7DclUmdxsQGo0h+NdcrVZjYK4ABGAkcT+SGM2UseH30h22lPB29F/r2XBUcwt4YJRj7ZZajMgb
PVwUogQV8gUUq2N7iEoYcCUl33I87HBQ1Y3MQXHk1ilpoVlmrFts97k8rZj69bBGBCku/VP1MaD/
TVtTdsc6OEzVXbTd0oN3sVIe6HcFR69KIrPR5bXzTAgFcmlJsoCKrCKy2a3Io1Kuy85g6C/5VSCT
nbreE3XpnkIByUvGrC1/EoiqOiggysVg4UlpgwouWFadTMiOXqPNNpX0OSIRrmu5f/Y8FMfUlR+K
lwdTecnLohLEteI6BjBVWKryg3jrJt76j5eSfJiE01UwqqVbWgFEm8uqA5NAyvAbjQ00DUPTNRPA
dpGVBLozzmYWZ1GRatH3kZLNAtbJk421cbJkSxFVpRobWW2Zcr8g79LgslmUrQT0n2rYcDyWVg0K
/kVj+XFOBWqmdsaIAW8p3XecuCQR9c8dLQdBboJkvXe97VCBBoVnt0SPAWaWz+tH0bfF+BNtKDXQ
day2trV3tRNHgYmqjiuYiAl6wTLTfvRcucN8oB446fFRa0rRgtLzeg2SdUnOLDNr0FKqvlCpeDPF
mofSJFsavk33YfjmaLA/xPJyVGsD65+LXqhVZX5tH4nro78Q8pG/T3WBEFBSQ6+c5z2qTu/OtbnW
izabIKmH7DUIQyd7Lg+VVxx0l2XdP4nXC5xjU4RYr7mHWmPT+rKVQrxAyS4uzYjJurSCQLmLBLzh
SYRZSY7fw47qcydzZ5/AKEPPDcMl9WLUOfPgWqmztabrxntudgICc3iIqO2mFBo0QyTICI7Mgtws
I9KRPCuK9AUuuPLySkAjKgwpcfgw3cyu075ZJYjU+NbZIbDg0rM12MfTJIDXfnPBQ3r9D+vYL9yn
rzh0Pct06vhccqK7YM3GGW42wJJGGkdJsHqrcBcvVk2cVRizLC3vAnm8knJrbWlJwpU1vgynKWVx
bejad2XXs9OQC0X6dt51emcGt5YNLas+voRjICdWUQy6hbrJQBC7Fg9YcCAigP0sl7DIT6V4W9CY
eC/yVOT6xPpjiTFDfbpP7z2NqsO/r03DyHvKb2sHlmam+W29v7BohmpC/6TvQeqqN+7bEmXP57t+
v2EHGHB/O3mIr+9kPvydzDGRr9n9Lwd9152yqJ6iPPkXMnizTAFvvjPq1+nWZ5lu9Ry6XtyN+JDi
uO/k9zrKu47yrqO86yjva4zyZPcF01Y18AH3BdMGptbnvnC0md/1wnFRPwLrN2K8zuc+w3zu+GXn
0EvCp+5imyCPk2gr+x2h4OeyB0sLjbIXn+wpy+t6Pm+SFxktHxYdUC401Tiz6ZOF+n9QSwMEFAAC
AAgABTabSg1q5coRBQAALSwAAEoAHABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRp
bmctdmVyc2lvbi1jaGFuZ2VzLWRlc2NlbmRpbmctc3RkZXJyLnR4dFVUCQADmvYBWSDpAVl1eAsA
AQT1AQAABBQAAADtWktz4jgQvnPiJ+g2UDWpkh/YhluASS1VW0tmyezd2DK4YiTGdpLNZX/7tm38
lsQjkGRqmNQcEOqHvu7+pO5iNh0vSPhMwtGIbQmdjv8mP59IFE9s6pAgIG7nB/VhZTYdT+3YXtoR
Ee1EN6jbmf1++u5sJ2bh62jkkoDEJBfLv54wSokT+4w+sNw0f6fkW45TraVeH/Xwv6bneQNseopm
4D5I9ja2T/uIo2BtUzcg09TY/m27z/MtCe3kMBH49bAmIUE2/Fe0AYY/c6giwMr16apznKp7tt0C
pDZFLF/+iih7QbHMxj6vJ09hSGhcWJIIwBaPhZudRIZKIZfGoOcuuZJZuMa28wguLSAVSGfx/U8/
TnZVV0ejFYnn4bcIBAM/WucaZtRjYMDN490VibcNoXQJPiHPDwj60v2CwFnXjx4lJ3V9d9p2uZJ/
TsAi0hLkBfS/vUmI0yQUlUHuSWEDNs6rxTYahbuqY5ttstPlbGG0rmXx5DgkisCVG+Rk8URgL0oC
6UdI0bGp6QNds4aQUXqisFAF0G3t2Fl/e06EIOrV02BNwf1axSfEIDpcShqVGka9LmCjm4ahaqqJ
9X6LiyRA78XZTHEWcdfuU+nmmerdwtbF671q42L1nmRUWe1VZNUlxFxU+gm4tXpMJDH8U7CJBwOQ
fCMTSKt43rB+nqDqqql+IODYSQEXqgHMwvifrJon4MSKPIQ2jewsrVsCZcoDr4XEjolINq3Rmyo7
KFjVeWnt02f2WIJ4S92Kmgd/Q8KeOGWWZOXTyv4ZPeTmaEpJHxdZZhzJqaWHlQ9gZpKAltwwZVai
Fz9eF4xapVNVt5BTuIRKsksi7JCkMpaGOxxgxXDNfufwwGanrSykbnIAaV0NP7ar0HbJX4S4xD3k
StB1DExEXjjrkrRkkmy480PA+CzFqSiDsjiPv7hqAO7UFPZKX2uyOubIOmyz8eN6AF/8IJik6/LA
OXna7bOsuRfxek6zShHVj9M8Q+1t1PqyFVAeUOLgtxRK35o5iXKFBNzhyDcf5y6Qy73Mh0PQQD3H
DoIlONmXEzYY41qp07SqacbJNC3m0AkvDWqnKTZ1mhAJyoCzZx7eLlm4p2I8SO85zen687FQA5UK
E3EoOTnM7oV+68UkrFF+BkpK090PfZifT5Mgve58Ci+/PxLQAUXhg+aIHuHdXvqf3KeDweUTVoOA
JKraVKQNDUtOnhJ1b+Gwk6/Iz8UlF+ohazY+oKXBlhRpymLfey3zLpp7zTwrc8yyVHiICngl4daa
aEHCpTX+Hs67uJrXhqZ+Rbu2ASAXbjn18V+n917luEPdsvr1vB1gObGKMNi/aT8ZCLBr8YDF7RyP
sFykRRaVfPhc+DNJhnTuPCtFrk9VfyxxzoBPi6T1atw6/JZxHDDnMWsYj7yaKy/exPN6TkOFqkL/
WqG4zyo5RaCuemO/Lkm6Pts98ht2sKEfbieDuJY5Ul/qmOtQ9XvmEVwtdyHbTAKfm1c61lS5P5nP
p3uSye/1QdbPSFX1qlmpmUb/0pmvDk9vDk6e/VzwUr3E9eR+kombZQp485ITt/O/Yq4zvOsM7zrD
u87wrjO86wzvOsM7Z6NgDhUVv0OjYA6xqZ7SKJxt2HftNN6l0ziUX06bLV4Hc7/CYO78186xT/e3
xPoiv9vC2Ml/t/WW12kUs62syxH8ArPRUqQ6qtysZcMi+UWhZpOeIyhfVYwznuCXOe8Rjv4PUEsD
BBQAAgAIAAU2m0redXf/5gQAAAErAABMABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1w
ZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1zYW1lLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADmvYBWSDp
AVl1eAsAAQT1AQAABBQAAADtWk1zozgQvfuUn6AjVE2q+DJg3xK8qc1hxqlNZu4YyTEVLHmBJJPL
/PaVwIAASdhee+KpclI5BHerW0+vn5pO7me3jyh9Q+l0SjYIz27/Qf++oiwPQhyhJEFwdP+7LO7C
KCfpx3QKUYJyNAvzcBFmCFyDK/ZxQDBGUR4T/ESqxcSWik+/45gGpjbV0+m090jTgWb89JbL5djw
lqbtGjr11NZhjHUgWGAVYpigWRFs2Gz7+3yD0pBtJqN5Pa1QikBIf0x7bNBvb2IBihOM8fNov6Ue
yGaDIAgxINXjLwCTd5CrYgxlHbymKcJ5HUnhQE2WJF1vPUpUar/iDDS4EHqWx3UbRi80pUdKBRWa
MIazvj13+FFCMtRzFKH5a5ABRsEAGQerTOoY1HDOs3w6Tbd0J+sNs4QCE4Lbqzy+RhHKMprKNYhK
MAGNlzEU4wyYjuHZztix/Qk9ToctWC8F42wT5tHqrzfmRCHnd2PYpqG3yo1VpGxzRbVyBQS0K4qN
47muZVue4ei90lYAPYizV+As8ORXbtI8UrH5hn/yYuNjnKzYGKOaUuORtRb0zGV1x8Dlq6jwNOiX
6U6c8Zh5qspw3nE/zqk4lmd9ImJGtFDuO8vDNP9RlmNAk3hGT2mIs7DkZc+h4SwVphSFOZL5FkV2
zZe3aViO9OwW6DnGnPt9+ygEHjF+Iy8N9jcYcu5P8Rqlmj76itZUGqgfv1o/mgIgoghwF6dUAo9C
E9McNzSRC/ScV6bd5LlJh/uFZhCw46PRAKyeXYH3OF/V4swrs+X4IKpTAo1uMq5FiBXZwoUTug8X
evpod4qV1xH3oEizwyPhLfN985yGEH1DCCK4y+3iOAYVNfQueH7ArdNKeXtw9Qk37Gj5OobANyLr
dZy3IXuPkyQonquhiqqDHopsw5NkPcclN2WMjbp7aDU2vQ97JSQCSl5uvQWVXVoloEIniW5ECmPe
UpC3NnD7PKjS2QUYoEVhkixoFrpat2kwYZS2Wlu27R4su3IBC0SMaO2mNhp1IZJUhMBmnt4sSDpQ
PEvK9DmutPL8roAOKpwoCfSQbWbbad8sc5S29DbYMrDS0k9rsI+3koRedzGOs9XfDHSKorSv2aPX
/20d+5nntDO4YsHqCJBiqb4U2RPXV4unYrn/o2EH35bnpSUnehdsxfiENxvDVyKNSR4vPxreZfNl
l2cNx3zfKrtAka4wbW251iLcRBPbCJpSnteubX0B256dQi41ObTzbsu7xm134vi+3ubt2FALqwyD
YaNhMZBg19MB3xnJBGC3yDUtylOpprd1PgEbtsF5WYrCnPh8fDlnaE6P7L2nc+uI39duExK9lG9r
e17NXPPLMm9zmlaoJc2vdxQPZSUXCLSXXocfC1Q8v9/2+504huvsHqeEuMUcZS5tzB1a9QNjCeEq
dylZB0ks5JVj2JY6nzLnwzMp/QdzUL3aKJfSeFbanqufmvnW5PCXg0P9TnmpnuJ6gmcyePM9ppsH
Dt52HaAd/1Avw7M/ZXh2dm/Ol1HeZZR3GeVdRnmXUV5X6o42NruMgy7joDMcBx1f5Q5oGnvdVv0v
MEdrKW3T2qel/NM7NL4fJpuWHHgTu5xyqEYh3sQqRxQ7DzWoh+n2in4b/eqoOZ14PFPvZN/xjPRv
M8J/epTitN8y+1lfzqCB4z9QSwMEFAACAAgABjabSiKL+EwdBQAAKTAAAEQAHABzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLXNhbWUtc3RkZXJyLnR4
dFVUCQADm/YBWSDpAVl1eAsAAQT1AQAABBQAAADtWktz4jgQvnPiJ+g2UDVTJT+wDbcAk1qqtpbs
kpm7sWVwxciM7SSby/72bdngpyQegQkz5VTlgFE/9HX3p1ab2XS8INELiUYj107spR2TSUgpcRI/
pA+Euj5dTYIwJugLUnRsavpA16yhji3c+Ub9H89kNh1PG5KjkcPVch+Fm0ngE5qAvm5dp6Z2ZjJ/
UhXu+Z5k8gd96G1sn/ZRQ+lBVb2SJk0zjX6Ho8OnL+ETmW9JZDNFd9R9jGwa26naR39Dol6/DEO4
JXQ6/oeAnjiZ2NQhQUBcnmb+SubZr6SvTcPfNw3FWwoljtz7EVgSy65t6gZk/znfUgwmH9ckIsiG
f0Ub4AFWlIGKtlkmsN3dg5kweoMok4AkuY59ThbxewzzfOCulHzL8bjxqNdHPfyv6XneAJueohm4
L4Vrt+XU2GWQGZjDApnTVD2E2y0E2KYoj+JnRMNXlMhsHPJ68hxFkNG5JYkALPHCaLOTyFDJ5bLE
c5dcySxcY9t5ApcWkAqks/j7Tz9hq8pPR6MVSebR1xgEAz9e7zXMqBeCgT1HgCWBeNMQSh/BJ+T5
AUGfup8QOOv68ZNkp67vTpsul/LPYYTQEOQF9L+DSYjTJBSVwd6T3AYsnJdLfzSKdhwQbrZspctZ
EtKqlsWz45A4Ble+ICeLJwJ7MQukH5c5EjJKZwpzVQDd1k6c9deXnAiL3WBNwf1KxTOaEm0upbBS
DaNeF7DRTcNQNdXEepMZJUAfxNlMcRYxaeMouVC9W9i6er2XbVyt3llGFdVeRlZdQsxFpc/ArdQj
k8Twp2ATDwYg+U4mkFbxvGb9MkHVVVP9QMCxkwIuVAOYRcn3rJon4MSKlI76A91TROyEiGSbHZSC
VV0Y+iVZ+bQkPquG4txuSZAvdWvS5iLLjBM5tfCz9AHMTBho7IQpshK9+sk6Z9Qynaq6hYrGEhVk
xyLsEFYZS8MdQg9luGa/c3xgs92WHqRucgBpHA3ftqvIdslfhLjEPeZI0HUMTEReOc9vr/c88eCq
ALhTk9srfK3I6pgj64SbjZ9UA/jqB8EkfS4PnLNPu0OWNfcqXs9pVimi+nHqe6j0Ro0vGwHlASW7
h9URk/WaexLlCgm4w5EvPs1dIJcHmQ/HoIF6jh0ES3CyLydsMMa1UqVpVdOM99xOBRw64aVBZTf5
ok4dIkEZcNbMo7tlGB2oGA/Se073dH17LFRDpcREHEpmm9l16HdeQqIK5WegpDTd/dDG/HKaBOl1
71Po/P5goAOKwobmhDvCT+v0b9yno8HlE1aNgCSqmlSkDQ1LTp4Sde/hsLOPyNvikivdISs2PuBK
gy0p0jRMfO+tyLt47tXzrMgxy1KhERXwCuPWimhOwoU1/hpOX1zOa0NTP6PdtQEgFy45t/mv0ntp
+GwNdcvqV/N2gOXEKsLg8KLDZCDArsEDlt4REcBxlvO0yKKyH4XXpvbzrBS5PpX9scQ5Az4t2NWr
durwr4zjIHSesgvjiUdzqeNtvIOxoEJVoX/SdzlV1Rv7bUnS57Ndk1+zgw39eDsZxO17pZ/+XumS
ma8Oz78cnCt3zUP1GseTeyMTN8tkvHnDE7er3J7aGV47w2tneO0Mr53htTO8doZ3uXlZOwdq50A3
OAe6PMud0Sk2Wqz8NzMX6yM1RT2lj/zV2zLh+4Hm7x2vvLrcjofbCjGZQy0btMimMeZQzaYkR89V
QEIxPtDRK4+NpNuTjY1++w1WjpvdHrviL/4HUEsDBBQAAgAIAAY2m0qFpLHbQQQAAB4dAAA7ABwA
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZXJzaXN0ZW5jZS1wcml2YXRlLXN0ZGVyci50
eHRVVAkAA5v2AVkh6QFZdXgLAAEE9QEAAAQUAAAA7VnLbts4FN1nlU/Q0gImAPWybO8SuUG9mDoY
p91T0nXMVqI0lBK3m/n2oayHKVOU7ERAAzQJsjDD+77nkLxeLe82wF6ALRZJCnR59w/8+wxZ7mEa
QBRBePWVEr6yWt4tcY59nIFqp3ajXV+t/lx9YbXfSyiFICcJfQAaEvrkRUkGfLdhI9eyHduazW00
Q7Klo+RiEXRquWdJ7EUEaF5YP9Vpmf3+HFSEr/eklB/0YRJjQnWtI5EDqiaCJstyp3pXMQh9SX7A
OgWGC0W3NHxkmGb4oPaRxMAm+kdZ3mdZ1C4kPYL3hHFcCikMCi8lJV1e/SetTXRtgn662+3WQe4W
oQDpJYzvucWE/SrRXiwck/2YtDij0lTm5prrs93p1LRMF9m6RDA9zg34ZljuwTcVIUk90ZPeHaZh
BPXnpkoZj+FxBww0zP8My0H8d4ZmWlo299Vlqh6SNOWNjKnWlPMvjSZ7Le+zMeS198wYb8XGUo8A
37JNWHyUoI1UK7Omj3gzhr6qFekdDn5w3za8I+AgifiPMZ3bjoP62jgk4fpEfJyq2KZr/saMocDv
jTvLMcu/AcsKDuFOPIEA4gEeY4BzUMnKXGYg01bWzocnQgXxVbsUr+WtvyHm1MDlRG2yNRVrVF3R
cAHfthavFIsFq+4WSZxGkJdsd/RR+MBz4RUJ405o9UnCM7Qn+U57KXMoJssy7Zl2pHftyFRFdQMo
2tqfhnOHN3fo6lfnF7UkTWHh4OZJ5ToiTejX9InhEL4AhBByyrvRgrL7mgBI1orBthGnEdh3rL/p
RBkFmIbhHIG5EgINSZbiPNh9emnOUQFPloFOsl3iYO1/56UqeeeGny7atS7lWdop7aj8aRw/Bt1y
wkboDO1rWvaxqruH3Qnqth5yyApR6wSVVUvFGshMz6VH3qsglZojJQEFLXRVEodFQbT1pgbraqkZ
pmXYjmU685lrGWalTtTVCo6r+AJ7QW1DTH0in36SrGAL2W9hZbHYM5KLspsC+70Y4aT2oErMhVXS
JgGOIp9HofefFdym19VtCtL1xu/MlnSXCREtrc0NHzUkv6blJXtc+CZxTPI2texJFHmH9X4Cf7vd
Qa449aKFdumfA31Uhtr3rjmNuTiThmDeKaSCes9mJSpLoQa9vTi8J5Rku3OB2OnNOUm8CIFdVtp3
NNOypm95u6vw3NU9EiI7ANDp9bViz5rd+gkbgMqWFFCvofz+riEnWRGuIh13siKYzXMQQJbdbnNg
rTufV3VrfZ97/QVHmre4c8NEynr3zm3aqmP8y4fD+qoioBM7yDXPt1MOQcadCSg6uoT356LOPDLl
A+pjnPXep4xDs56Pic0IE5sxpsHnYq6mu1dfkN7dkTDeZEJ60leHx0QfbW7B30MXzi3+pHOp1ZRZ
nqR1tyrPJ/l7rot3i4Ohg0UxkOL9OphVc2pfmB/TmP5O0/8DUEsDBBQAAgAIAAY2m0rPHwk3EwQA
AFQaAAAzABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZXJzaXN0ZW5jZS1zdGRlcnIu
dHh0VVQJAAOb9gFZIekBWXV4CwABBPUBAAAEFAAAAO1YTW/jNhC9++SfwKMFNAD1ZTm+JfIGNVBU
6TrbOyXRNndlUqWUpPvvS0m2LImkZCcCNsVugByicN7MvJl5/Fiv7jeYv2C+XMYoRyHKsM8oxVFO
GH3ENCZ05ycsw+AGmA70bMd17MWtAxdw8oWSf57xenW/kiyXy0iJ8sDZwU8IprnAm3YxbWuy7oun
hIjfHkllPxjD7IAINYAEOgg1ayDZtjc3JgoMQl/YNxykmKMC6I7GTxzRDJWwT+SA+cxo0sBSTFf3
n7HAyXIf0QgnCY5VyOqVRWSj4+kpYj2JPRAuPOlt94jGCT79XVOUCZdPe8wxQOLXtF3oQtN0LZBW
nVVk9yDcMP69Crr4cO6AJ9ZK/YheFWxqgJnjzeeWbXnQkXk/LlaxI32aCSz4r7fdbl3obU3bg4Zg
Sser1Kjj8OIu4KLm5TqoR5amoryIgrqGvwHKXkHe52Moav+ZczEftaceA7Fky/jhbEFrqxazVgiN
ySwOdf1H71H0TcS2ER2BS0sofkzoQdcVlpu//iB5YdRctlzucB7wT5nASUi2PwGu6ZYJbk5a1Nv6
MYmDjvdxiupYnvUDCYdRSbgWRnDG878xzwpdFEHscGPwB7SZY5Rjna2szya0HG3pQ7wjtGG+bpfi
rVqs6Zeut5POqoTn2Bm1nIhlQVNcl0t+VFl2SBOcC5Vsxdn4Q7jxC9JEII2uBK8k34OXiscmYbbl
LMB52wJnsSsqHOFiMsJ5fCsUdR57xuTywlbZNj6UYSoI6WTK6Jd0x1GM/8Q4xrFQzRsQVR1YJ0Cy
Vg6OA4US4VfF94+3E9WJxiRLUR7tP73U54PGTNkm7LBdzUIQfhWlqqTrRmxQYGpIPEsrpRXHeOrA
z0m3gnAgvAA9oFUf67p7OJzo1NZDAdkxbG3CMrRUrAFmeg5z8lqNsJx0UjLQSIOqkiguCgKCzWlY
1ytgWrbpuLZ56zoL03H6t5ZHXRBXMgJmEUqSUARs9Guz8OmrKqsROH/8LmhZq1w0O7O1uJ79WlAD
Wh3Uxx0VdjiQvD3GryRJ/PJ7v1i+3+/gXHajaE2W9M+BPqpS7bsbdXMuLwoDI6U00o1V/+Lrwm1M
lBL2EjauGiWVl/bhxrLt+XtujLrBVLWBNFqKTlZGPdWsCfhdyPhAz29JMbOnmfx4e3eHlcb+rTjI
FMlsnqMIZ9ndNse8dVCqSCkPN9P3nQqkxxfv1rSgtt69jzht6AP6HuLy+/qoJB0/0LMu91O9iIx7
F9d09AOh4or2e1FnkZn25rH+9bb1f3jb6nlj+fVSMsJLyQh1unjmTnL35pPOh9sSxrvOS/fg4+Yx
M0a77NumdeVl/2fal5oPGyztYArqhhO05s6VoVrmvHcHlB/iu9NzjHV6PcyPyvc/UEsDBBQAAgAI
AAY2m0r5q5z7gQUAAPssAAA/ABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1yZXZlcnQt
b24tYWJvcnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAOc9gFZIekBWXV4CwABBPUBAAAEFAAAAO1a
S3OjOBC+55SfwNGu2lSJh8H2zcFJrQ87Tm0ye5dBTtixhVeQeOayv30lMCDQA/BjJ1PlSc3BoH6o
1d+n7rYX8/tnRD4QmU5DmMIVTJAfY4yCNIrxE8JhhF/9TZwg484wHeDZzsixxxMHjMHNVxz9844W
8/u5IDmdBlItjyTe+psI4ZTqu23qtK2bhc6fTEV4vCe5fKsPgy2M8NAQlLaqGnCabNtzhzcSHRH+
iL+h5Q4RyBTNcPhCIE5gpvYl2iIyGPJhiHcIz+//RFRPkvoQB2izQaFMs3wl8+zs+tQhijUbe4wI
tcT5ErAoCkpkvvwrPBsMjQH47q3X6xHw1gAEYJhv9JFajMkPmkBog1JUrC/iUKXGS1ymmnSl5q3E
wxYHTdvNHFRH7g3icIPmmbH2ZYfPZR4l1K+XN0SQAel/0x4B+udNLGOXw++mn6qneLejZw2xUR7o
bwaO90aqs9Hmtf9OCAVLaUkjQJesY7I9SORRKeXyHAxXUsn8uO5h8I269ExTQRfNMArn4vqLpKhp
gyJFpTlYeFLaoAuXPASnU3LAYrzdsZWhZEmM61qe34MAJQl15c4I8mAa1F7CohglPPfR43SYwlJV
GCU7mAZvDx8lwXGAs00wrMGN0YVqcxmVcAAyBrc0No7nupZtecARGU8T6NY4e1mcVYwmXBFnAtsY
jC8ONt7GxcDGMqqCGh9Za0XPXIU7FlweRZkkoP9Md+KMRkxSB8NlQ/w8p+JYnvUTIwaClXbfSQpJ
+lcOR5868Yq4O7OlrCEIpkglK5Y2JrAc5dmt0GuEOfFF/SiOLWP+QFtKDVSO1yZaO6mcOEuamOao
ShM1QS95ZupGz5U73Afqgc+Oj1ozijKXntc+St9KcuaZ2XLGRlV7GhVvslwLEAPZyg0ndB9u6A1v
uqdYfh1xDzI3G3kkvWW+7l4JDNEXhEIUdrldHAdQUkN7yfMjbh2uJs9wsFz9TYOT884dvV2M26Gw
M2GlsOKQAWWqVGlWc8IBoIP2Jc4zR5VP7e4ERSK1OWSHoHaDiqoFeLRERtMDiWsVpFJwpCCgoAXZ
ScKQHYixfC7gsZgbpmWbzsi2RpOxZ5vWQR2vq7Y5quIL2nNqS2LSiTx8jxKGT9Fv7sl0uidRyss+
M7RpWYnSyJMqMD1PyRgEcLNZ0V0M9XcFtenLsk1Bc/75M7MmLTPBo6W2uLwBSlpd4rznPi984+02
SuvUso82Gz97rqfM0+22ckXTixrahZcteZRvVTfmaO5Z128VMJcKqaCuWaxEZS5UoleLw8cIR8lb
VyBKvekSxF4IlFmp12iWbbunzIxUeJZlj4BICQCkXt8q1izJbBWTFqisIwb1Asqfr/BrRIUrRSRV
ENvMob+erVNEalWWf8jWooI6vsARxq/exLSA8ry1Y9y66i38sULZ88WBgBp2gGd1t5PPRM87E1Bk
dA7v39k5050pG6jFdbr9K0y3NbOe68TmHBObzzB/sEYuOHb+0HWOcNqcom87wKO5KyVxdU6nPuKU
UvM6VblOVT7DVAWyslB4GmFaMWG4mRVv631Xh1rylLYr86nouigK8q83D+FKVMkKG07J1S7wE4lf
Ca0KK3RcsgdWeqfvYPJjUQO9qa5LEziTySjYG6rXqpmYyfTsAC9DoVX3KN1zh9D36R1lNhrj/bED
jr7/fpWbYtaGv2KN0KLK6aRzJzSxR306rqoT6tEn93DGdoGisy53L2lVHwiJibRRZZxCP1fN6rVL
GbZPA37aF+WnNcWfDuzXXvB/7AXP0LP3a3auHUy3n+2UP9Q5W39jm1bP/qYnoykJTPx5YaN5ineN
QSP7Hq916mm5Ts/5pWW6V0fbHb34HFmzPV31VCOOwx5vtS96BPA/UEsDBBQAAgAIAAY2m0o7uumO
fAUAAJEuAAA3ABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1yZXZlcnQtb24tYWJvcnQt
c3RkZXJyLnR4dFVUCQADnPYBWSLpAVl1eAsAAQT1AQAABBQAAADtWktv6jgU3nfFT/DugjSVnDew
o9DqIo2GztA7+5AYmtvgME7azt3Mbx87IU/bCYHQUolKXRB8Hj7nfMfnc5jP7paIvCEyHgc7hGd3
f6F/XlEYTW3sIN9H7s0P7NEn89ndzI7slR0i2UpwC3o386+jz92vnwYYIyfyAvyIsOvhzdQPQkRX
Kzq0NN3QteFIh0PIW8olx2NHqOWBBNup7yEcMetVnZpa70+swj3ek0S+0Yf+1vbwAAgC2aCqX9Ck
aZY5ECXDw2/BC1rsELGZogl2n4iNQztW++RtEekPOk+zfEtBjSMPHqGW5LLPNnZ9lH7OthRSk0/P
iCBg039FM6ABFcVQwS6pBLa7B2omIL9olpGPokxHWpN5/p6CrB6EK2u+FXjMPeoPQB/+a63XawNa
a0Uz4aA2XPstx8a6iYxhjfLItFP1GOx2NME2BlkWfwM4eAdRnY0mr6evhNCKzizVCNAl64Bs9xJJ
VDK5pPDclVAySded7bxQl5a0FNDN8s/fvYitKj4djzcoWpD7kAr6XvicapjjdUANpD2CWpKI84ZA
/Ih+AmvPR+Bb7xugzrpe+FKzU9dzZ7zLhfpzWEPgBEUJ/a+xCGFchDIYpJ5kNujCRRH64zHZ94Bg
u2MrXcGSAJe1LF8dB4UhdeUWOEk+AbUXskR6YbFH0orSmcJMFQ3dzo6c5/u3rBHmu4GaAgclxLM2
Jdtc3MIKGAb9Ho2NbpmmqqkW1PnOWBPoxjhbcZxlnZQ7SjrC+xAOz473oo2z4Z1VVI72YmTVFc25
DPosuCU8MklI/xRoQcOgkid2gloULyrWu0mqrlrqJwYcOnHApWpozEj0d4LmKXVigwpHfcP0RJAd
IZksP0EpUNWlqV+hjYcL4vNyKo6dliT1UrVWO1wkldGyp+Z+Fj5QM1MWNHbC5FUJ3r3oOeuoxXaq
6kOQD5Ygb3Ysww5iyFiZ7ojOUKZrDW4OT2yy28KD2E1BQLij4cduQ2wX/YGQi9xDjgRdh7QToXfB
88ubPVseXIXxP8bCYvWTpippXbf0gAK9ARdnbiW3Yu9P5ni+6ZITOoQHaF/gpI5l1d3sjpOWdZND
mgtLhzCvmktWQ2Rq6Ba/VtJY0j7JCUhagyiTtssSAhbLFKzzGVBUTdENTRkZ+lDR9fqj5VHmRMuI
gL5j+/6KOjyo783U5lSUWUmDm3ZfBSVpkYliZZYWZ9jPGuoCJ1S6W6gE260XlWH87vn+NH5e3yxP
t9uIy6oXJWRxXzbUUbLVutuL6p7rGFoKKaGQDFb1i9u5W0CUUO0h0WgFJZGV8nCjapp5yp2ODJii
MuCgJahkodc9yZoFmawC0lDza49hNsXk5Z3dlagUzm/BIMM2s+e1k3WESGlQSoISDze906YC7nrU
GikqlOa79pq1rHpr/1qh+Pl830kqdqClHm4nubPslotLKvrBw5SifWd5pjuTMo/r7fOXuH2uuWO5
3pR0cVNyCcRdNUx4LHFvQ8A7KMqDG0za248e6y7u/LveXXzo3cWl3BbYbHLjnnqYDjXY9ifpt2WO
c8C4dwrFiX1KGQ5FQfLGcR+uUFasdsUpsdo5fiTBhtDBLUfHOfmm1Lt6kpGkRQ70qrpDCNdEJCNp
sEL95+l3ORsTOnhAnNpwMZGNyj3zUIdHnyVfpa1PmsCSruEonxj7BzOLkWa0YTA5s2jBO1s4o5lQ
wlSz3Quo3z0hARESP9YA6Oec/F2n/kEzu/60F76nkcxTwH6WF/wQOukL/uur7C9B0I7mHtd34B/8
Dryr5nclieIfDWU/E+qMQmqK2pJCHs3IwijYVS5QqfXm21zV1D/kNldVzGNmLum5yv9q9MyrOwt1
N0GTO1rC+t7XXu0Xn7W1/wFQSwMEFAACAAgABjabSltTcp0KBAAA6BkAAEUAHABzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLXR3by1vcGVucy1uby12ZXJzaW9ucy1wcml2YXRlLXN0ZGVyci50
eHRVVAkAA5z2AVki6QFZdXgLAAEE9QEAAAQUAAAA5VlNc5tIEL3r5J/AUVQlVcOHQNLNRnGtDhu5
1s7eR0PLogIDGbCdXPLbdwCBBpgZfViqZCt2+SDU/brp7vemwcvF3SOwV2DzeYgLvMY5BCmlQIoo
pQ9Aw4g+B3Gag/HRsFzkO+7EdaYzF03R6AuNvr3AcnG3GHjO50SKcs/SJIgjoAXHu+ljOvZoqcun
ggjPz6T2P5jDOMERNY0B6EGosYDkOL5njiQYEX1Nv8IqA4ZLoFsaPjFMc1zBPkUJsLEpliHNgC7u
/gGOkxcBpgTiGEIZstyyzOyPw1O3MNUU/j5iPJKQCym7PACR5fJzcG1sGmP03d9sNhPkbxAiyKxv
9J5HTNkPPuAQQwGNfVOH/eg+pS0VpJaabyUZHkjQcrwqQXXltpiGMSyqYIfNdp/bOc95Xk9bYGBg
/mc5E8R//ZltZLU8jE6DekizjPcaU6Nt6AeDpm9GoYtxKOvghTFO5jaSxoGbbFKW7DzqqrR+9QyG
a6ln3a47TL7ylB75KOiqGUbhYmh/lRG1HNSMqHQGm0zaGNxwJVJwPmc7LqZJVlqGEpOUdlEeXwiB
POepfDRIXUyDx8vLKka5qM28nW4J2EKFUZ7hgmw/vbYCLBDOsZDZoVspF6qbq6REIJAxvuG1cX3P
sx3bR+6FkWTGZ3HWrzqm0sbBYXgh2k7R9Oq0FWNcjbblbO5JK1bWXiN1p1TMLo1EnlaIiP9Y3syd
TJB5kU5xIq56gS7TV9f27V9Yc0TKmqth8gKz4t9aGgKexDMI5/eBFZABLkDlO1wDLWS7yi6v4Tmi
gvuy24pzV76/IeHiwv1EtGE0jTyvxBk9Tpz3OQofeC2CsmA8CaNZwnmF3qJi20qzqMu2OzX2m7Gx
17qyuwRKAqy9cDbhNAh9c3R8U+vDSLhQpdnrnPSM+ZI9MxzCZ4AQwmPOFtdFXIjgTXL9XcvkRYhp
WZM9MU8/ATsF3MG08fa5dnxdJPElaZJERbeBb1EcB9V1feNIM3aHIjvhVbJe0ZopKv6Q/j10lqzB
l4OGygqle5DsV0y3MTYCKnVS6AbRGIuWkrzHpv70edClc0xhjDHBcbzmWZh63ebBpFG6am07jvee
J22FnAayiejcTWs06pdIwQiJzYrdrlN2gDwbPukr2ij37ydIvaoIoiRR5/Jmdlv/7aYA1lH/YDeB
jbKfKHWKVt5HNMq3f5U3yDNW7hDiM/WxTvKh7w2xBmo4zs7Mm+oJqIF7Dw/OVtzfax6v9ETSifEL
tmM0ReYVVO6MpXGwbbXP8BdbKR3LPmWl/L9vaMoXCcP3oCdbi7t2mnWkxp/xOndtyOBdvz+zPVc5
QNr/GXShE/xjDdX15W4X68exvOPj1C/g/4gbPK3fHRXfVeRm9B9QSwMEFAACAAgABzabSuLR1DIz
BAAA3xsAAD0AHABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXR3by1vcGVucy1uby12ZXJz
aW9ucy1zdGRlcnIudHh0VVQJAAOd9gFZIukBWXV4CwABBPUBAAAEFAAAAO1Yy27bOBTde+VP4K4W
MAWohyXbu0RuUANFnZmk3csSZRORSZVSkulmvn1IydaTpB+x0RRogCxE3/e59+iKi/ntA2IviM1m
NEVkfvsP+vGMstwPSIiSBEWDbwTzk8X8dh7kwSrIkEoSfATDweJ69qKdvE8JQWGOKblHJMJk7Sc0
Q1zadKBnO2PHnkwdOIF9T7XmbBZKrdwxuvUTjEguvHdt2pY+nsJEdH4kpf7BGEbbABMDSAp5wNSo
Ycm2PdeQgYHJC31CyxSxQBi6IdEjC0gWFGYf8RaxkfEHlncPy0WmT50S1QRyhxn3pNbdBCRK0P65
SinjLh83iCEQ8H/THsMxNM2xBdKyE0R2d9wNZT85yihBeWVjTxU1fo+06geppOZXScS9o5EBRvBf
L47jMfRi03ahoS3XLuXC2WUqM/amdWVOM3VP05QDHBBQofgXIPQV5Dofh6L2nxnjHV150ihwkZiy
7U6jrEqlVzZetJJqlnDdBuETD+mBtwIaPPz9BedCqnk6m61RvmSfMq6Y4Gyzt7AgMeUO9hzBPSnU
+45AccSfQIwTBD4MPwAebISzJ02mEY7m/ZAb/RcKQugpygD972ATwqIJVWOwj6TywQWXzdGfzdiO
A+g2FZKRRISStpWH5zBEWcZD+QjCEk/A/WUCSJw1OZJ3lCMMVqZ46dIgDzefXioirLOBtgmN1sQL
mlIlV1BYY4bBaMhr43iua9mWB50LW5IJn0UbXoGYipN7L6ULMccETq7OHE0fV2MO0Zs1bzQra62g
GikVuQih1sQLi5D/mdCD4zE0TkDqjaykZZRlJ87LtIVjedYvhAyGAjK1GV4zln8vmcXnQaxRY+04
sMkxFORIpdvf5kxoOcomWaE1Jg31RRuKczc3Rb90vWkXnbIzTuT3Os7GA3fji6KJt13dleAV55uK
3ZvUbjkTUC+5oKZLgXCIxAyt3GjK9zk38ozB8cCW2TYOijAlBem9pr6laxZE6CtCEYqOeT05DuRc
hl4l5+9vDz7xJdoq4M5M5a+OtaXrQIluSLdbnLcBfMVJ4hfneuDCfdsd8mxHV4l6ScpJUc1P2M2h
taf1fuwBKiuU7puwWzHd3rsnUamSgjtCvfBp4XJyudfFcEw1wCgMkmTFgzT0hM2dSb20adqybfct
X8oKDvVlbdDKphIadEukGAOJzJLdrCg7MDExb+8l2dP1+2OhTlUaTCShZJHM7mvhJs4Ra1F+WZSC
podn8JsCyjtM+Jb1WSTII1YuD83rgGOV5E3faWKNqX4721N3oh9Ajbm3zMHZNPu++vFKXzItH79g
LYYTaFyB5c7YFHsrVvXtf7E90jatU/bI330tay7BNG3RgTfltWjLhL37dG9quY4SZO29fNv0Nvi5
QsX5Yrckdf2Y7vF+yktu7Q1L/2K6S0S7igz/1KlXpxOk/wdQSwMEFAACAAgABzabSh0gSSVIBQAA
OUcAADgAHABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXVwZ3JhZGVzLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUCQADnfYBWSPpAVl1eAsAAQT1AQAABBQAAADtW0tzozgQvvuUn8DRrpqpEg8D9i3B
m5ocdp3aZPaOQY6pwcIDJNlc9reveAuQhE1w/CgllYOxutXqx6fWh/KwuHuC4RsM53PXju2VHUEr
QAg6sRegR4hcD71YfhBB6bska8BQtammmjMNmGD0E3m/X+HD4m7RkpzPHaqW+zDYWr4HUYz13TR1
qsrogWdPqsLtb0km32nDeGt7aCK1lHaqGhOaVNXQJyOKDg+9Bb/gcgdDO1F0i9zn0EaRnap99rYw
HE9INwQ7iBZ3f0OsJ4otGznQ96FL00wfmVjGd6sI8xWGeRB9bBcFnIXdeyGeibDFSbzYUkKz5b/W
s/FEGoN/jfV6PQXGGgAHTLKF3uMZg/ADJxD0YQyL8YUfqtR4DspUo47kfEuxsMNAWdVTA9me29jI
9eEinax7WP65zKMI2/W8gSGUbPwnq1OAf42ZIu2y8hsdpuox2O1wrG0klQH9JqHgXYp5c3RZbb2G
IS6WciaOAB6yDsJtLpF5pZTLctBdUSWzcN3Zzi9s0hNOBZ43Xc9dtMcfJUVlFRQpSs3BwpJyDjxw
SZbgfB7mtRhsd8lIlzIkQHUtT6+OA6MIm/JdcjJnSni+KPGiF5HYh8OpJQpLVa4X7ezY2fzxVgIc
UXCqDCa1ckvggrW4FEqIApLGN9g3mqHriqoYQGsjHsfRnX42Uj+zEK21RQxUbCYwj15s5BxHK7Yk
o6pSIz2rrHDMWXWXOJesolQS4B9Zn2nTaSLJK8NlQ3yYqGiKoZzQY8BZcdcdxXYY/5OVo4WNeIHE
ntnR1oTQjiFLtt3ayEDRmLFbwRcPEeIP9VD0bWP+hFsMDViO1Nae7VPtxCBpIsvTKk3YAL0kkWk/
eK7MIT5gC6wkfHg2qWhzcbzevXhTgjOJzIpmSlXvKVW4meSaA5MiW+nuDK9Dd43JaP8Uy7Yj4kFq
ZiOPqLvMz91LaLvwLwhd6O6zu2gawKAG3ynPe+w6NZPzwJURrrKjJqsBiqwTbLdeXHfZu+f7Vvqc
7yqnCHTXzKp7FKuXKMtNVsY6zTXUGpvWl60SojmKdzhqeozXpRUAShVi4IbDGUyOpNg97th9Hnnm
7OMYaezYvr/CVkz4uI0no85SR2tFVfXPnB4ZAGbRMqK2mnLQqOkiRkVQxizD21UQdhTPGmf6EhVY
eX5bQMMrBChR8DBZTN5p365jGNbw1sozsMDSkzXYjKS495AXbX4krsJrZ3YjB3ToX9Znk6f0fRdC
L+lGiXJUtYtVnekmH1446j5T5b33k/OqtiOdlmpznKD3BybX0yiIvfVHlXfRct3MsyrHTFPJ+iRa
DSfoUxMtYaqajT6G0raRea2ryjcp72qxy5lD+vamdQAk6FNzpplmneDTpqAh7bR4aSMRYyIdl9+u
q97aHyuYPn/Ie6zmPOxosHhrLgKzAijI+S8l5/OazEqiYL4bepcZDlKLqXZom/Xv4AZ4b8BOq2OC
/zFg1D0TCgWXvXmBFIqgQS6FBjm7M5AgZQQpI0gZQcoIUkaQMoKUEaTMtZAyw2N4j5a41UuWVzUG
a5hVWTmkYb70/pNPDckK+BJqCBhKH2rooo0f/hKQILzO8jaqCMv5XhI+h97vmi++9Y3TFd9uOvu7
oiLxh7jxeQ73F5WpDvqS7/uS6KLCBXEv7i8KqlxQ5YIqF1T5QFS5IDaG5fnFEVwcwcUR/HP3ovZ+
JXU973Ou/N3F4fsSE8nb/xx/8Gjy+BLsGlsRXln3vqjo2oE7nCLrJ566Vin57DfcL44Zg4uI79H7
njw0/d9GfXkWHRYJZmqdagX/A1BLAwQUAAIACAAHNptKsGUrA3UFAAA6SQAAMAAcAHN0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tdXBncmFkZXMtc3RkZXJyLnR4dFVUCQADnfYBWSPpAVl1eAsA
AQT1AQAABBQAAADtXEtP6zgU3rPiJ3h3W+leyXk0SbuDctFUGk2ZgTv7NHHaiNTpJAGGzfz2OUna
PG2XlpQGZCQWTc/L5/H55Ngwu7m+J9EziSaTcEPozfVf5J8nEidTmzokCIh78Yv68GR2c31jJ/bC
jgmPEv1AlxczKa+v8twt/TSklDiJH9I7Ql2fLqdBGBOgVnRsavpI16yxji3c1lRyTiYOU8ptFK6n
gU9okmpvytRUsT2ZCPd4S3L+vTYM1rZPh4jhyD2iBhVJmmYaQ1YwfPocPpL5hkR2KuiKug+RTWM7
E/vgr0k0GHYeZv6SQoEht34Emvi8K5u6Adl9LpYUg8qHFYkIsuFX0UZ4hBVlpKJNngnp6m5BTRi9
QpRJQJJCxi4ny/g9hEU+MCkF3zIsbj0aDNEA/2t6njfCpqdoBh4K3bVdcqasG8+MzHHpmcNE3YWb
DQTYpqiI4ndEwxeUiHTss3r6FEWQ0YUmAQOQeGG03nLkXin48sRzF0zOPFzXtvMIJt1DKpCL+z9/
95OUqvp0MlmSZB79jIEx8OPVTsKMeiEo2GEEaOKwtxWh7BF8Qp4fEPTt8hsCY10/fhSs1PXdm7bJ
lfxzUkBoMbIC+t/eJMRZEvLKYGdJoQMI59XSn0yiLQaE601K6TJIQlqXcv/kOCSOwZQfyMnjiUBf
nAbSj6sYCRmlpwILUeC6jZ04q5/PBRCWq8Gagoe1ik9hire4DMIqNYwGl+Ab3TQMVVNNrLeRUeDo
vX42Mz/zkLS1lXRU7xa2Tl7vVR0nq/c0o8pqr3pWXUDMeaWfOrdWjyknhh8Fm3g0As53IoGwiucN
7d0EVVdN9YwOx07mcK4Y8FmU/J1X8xSMWJLKVr+ne4qInRAeb7uDUrCqc0O/IEufVthn9VAc2y1x
8qWpTdhc5JlxIKaWdlY+gJpp6rR0hymzEr34yapA1CqcqrqFysYSlWCXRtghaWUsDHcMPZThmsOL
twc2X23lQWYmwyGtreHXZhnZLvmDEJe4b9kSdB0DEpEXxvP+9Z4Hblw1B27FFPpKW2u8OmbwOuF6
7Sf1AL74QTDNnosD5+zSbp9mzT2J1XOaVwqvfpzmGmq9UevLVkBZjhK9hzU9Juo1dyDKZOJghyMm
PsxcAJc7kQ1v8QYaOHYQLMDIoRiwQRlTSx2mVU0z3vN2ysHQKSsNaqspiC6aLuKUAYNmHl0twmhP
xXiQ3nO6g+v+oVDDKxUkYkByuphth37lJSSqQX7ulAymL8/amHOS4tan0K/9lroK1s5tQw7o7D+s
P68OGN66EHZJN0pUIKpdrNrYsMTwIhD3nio/ehPpV7Wd6C2rpuMMTT+2hJ6mYeJ7r2XexXOvmWdl
jlmWCq0ap4ZT9KmxFjBVamPTMDrHal4bmvodbRtrcDmX5Nj2uA6AlfGsNdYta1jP2xFucDutubeZ
snGRTjg/r4te268Lkj2fbRurph5+NHhzcSEC8wIoh/8fOvzf1mReErtJfUPuPMdBZjHV3hvHx3dw
HZxL8NPqlOB/Chh1ezI7gbK3ej07OUkfLKcxchojpzFyGiOnMXIaI6cxchojpzFyGvNppzHdY/gR
fXCrgSzudnTWJWuKekiX/NmbTvFMSFHxh8yEsKkeMxP61MZ3f2tITrp6ec1VhqW/t4/70Pt95Zty
x8bpPdvqSa6uYuzsubp6RDsj75nK6pH3TOU90+7umR5y5nEObJbnLJ//nEWebMiTDXmyIU825MnG
lxii9fBYRk5M5MRETkzed3/tzSeIX+f47YsfNR2+L3GRvP1PF05MXcuwOAk3or9Y5IupvihlMqr7
H7hz/2asGvqB26qqGB2uoCO3deaIk3clW/cdf7T34ZE+o+rPUQ3/A1BLAwQUAAIACAAHNptKfw0L
AjcDAACZEQAAMQAcAHN0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy1wcml2YXRlLXN0ZGVy
ci50eHRVVAkAA572AVkk6QFZdXgLAAEE9QEAAAQUAAAA7VdLc9owEL5zyk/QEc80M/IDG7gFaGY4
tGQa0rtsLeAGJFc2ob30t3dtgy3wgyQlkx4SJgfL+97vW62nk9E9qCdQw6GMQExG3+DnFuJkzEQA
6zXwzoMI8WQ6GU1YwnwWQ5MkuSZXnemHvf/VHt/Lj6UQECShFHcgeCiW47WMAaVNh3q203Ps/sCh
fVr1VGoOh0GtlVslN+N1CCJJvZ/atK32eDIT/PWR5PpnY+huWCgMUlPIM6a6miXb9lyjrhmheJKP
MItAsdTQjeBzxUTMMrPzcAOqa1y8zc0pyZZAbkOFnrRYgjTripG6WP5UzroG6dJf3mKx6FFvQWlA
jRx/t+hRqt/YcFhDAgf5AzzLVs5lAY1ayZa3NRGeCdC03SzA5sqtmOBrmGTOzovtn4u+xxjXfAUK
CMN/0+5R/HkDi0Q5XTovM3Unowh7zQQpGvqJCLkjSZuPc1GPt0ohuAtPLQoospBqs9fIq1Lo5Rjk
fq1m3q4RCx4xpHuEQls1ecgnVfk3gahp0wNEazF4iKTwgYIznYLDodpzUW6iVJLXiEhxbOV+GwQQ
xxjKNQnyYhL0F6dVDGN9VmE7ndRgYYqHccSSYPX5qRhIGuFskxpHdEvHRVNy2SjRCES6V1gbx3Nd
y7Y86lQnVEuhz9bZy+rcNNEqI/1CZOvT/puTTffxZmRLEVVSTa+s5WPPm3iXFldnUaZJ8c90B06v
l2q20XB2on6ZrjiWZ71jxWjgt+YdJ0wl33M6jjGIJWh35pk1RAFLoEm3uoqY1HJevT809dyHZSg0
+elxC7/ABkcDauinVa1/WicuAhPT7JUwaR7QM30yPW88l+FoDxjBOG0feiOHtRT7tQuTVTGc9cls
OX1S7oqknJsp1gJISea7fIB5uNwzOs+HWH4daQdZmCc4qr1lHqKlYhy+AnDgz7ldHIfiUINdzfkr
bh1th854MPN/YHHyuXONtwu5MiqZVSSzxMpHZPU2makbzj9evNuLxu2h+slyAnMZHQ08b2CbVgUD
e7Eq7EORgBJsfeNLlRyb3oXr/LhCHA2FlW9a3Itd51how377kH3pTUWe26mG6TZOn4av19YMX1DM
v1BLAwQUAAIACAAHNptKdFAA/t8DAABsEwAAKQAcAHN0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQt
a2V5cy1zdGRlcnIudHh0VVQJAAOe9gFZJOkBWXV4CwABBPUBAAAEFAAAAO1YS4/bNhC+++SfwFts
oAGohy2vb7t2FjDQ1tvupndJHNvsyqRLaXebS397Rm9KlOS4cZAcYsAHUTPzzXuG2qzvHkG9glou
5QnE+u5P+OcF4mTlixCiCNjoo+B4slnfrf3ED/wY+ijJezIeTY4+F1PSwRRKISBMuBSrSMbA7pU8
riIOIkkZycRyqee4M9dZ3Dg2pdMBUX4gVfKkfBH7mcAMeVNbwgrKVQsS6TQUly7oaMKCTogTqJ1U
x9suJIO8xjlrZksDxx79BkepPqG0Oz985mL/mEjVZ2NOqxNqFAXPZHqlIDjefKp79Sr5gXQNlZGS
oS1b9LefnjzxI6h7rpB8Qv/1drvdjHo76qYJ0ebNzN2KXL9bwXKkAjZOyevAPMnSjLZju8VuxIOS
ewVxXKkWG5SMs5UCP4Ft8DfCZAEp9TGIZSlnJY+nCBJgW5G73iANK4ozbnEYbYTIsM0IjmnppXXW
T47ueLikbJZLLl7lM1RWYgw1pszmyfSrUqZfWTkAmgkb4D34gkVQPtcJgmY+HUAB8fFvOTM6o5Y1
s0mhcWrJPcJgCaOzII1wKaOsja6E7aYceNuhsXE0merOspw5nQ7GtjA5A7uOZ2beTe2Zy0Q9yNMJ
o+0LUkXxFyLkG0mGMM5pvXpRCquxQhpgKKZDwZF7peLLq6RnruTh0jv46PGPX3kCxgDYQ7JVH2Jk
jHh8KCVsxE4iQDnhEKmH3QQi2RE+kR2PgLwbvyOoLOPx83BNr02VtfwL0zliMHYF9L+zSUizJOwr
g1KTCgMJt/qkWS5VMXLK/tlBIkVTyuNLGGKXR1XekzCPJ0G8OA0kj/VpjRnlpgIrUei6k5+Ehw+v
1fzUe7OV9+aq4tOp2GdcNjG1GiaTMfrG9eZz27E96pqDeMDRZ/3sZX7uG9zGUnOlel/QxTevdx3j
m9V7mlF1teuetYN05vSUfurcRj2mnBR/FvXobIacX9kJBqt420K/TlBd27O/o8NpGAwOefSZSv7K
q3mFSuxhcDlq7PHZYtfHa+7yFrXd3tAHsOdCY980Q/F/N6OefGmjDS4XeWZc2FNrPbUHhMm24XTC
1FlJ3nhyqDpq45LnLkh9HyF1s0sjHEJaGcGc3eAONWfedPTlge24ZjSfS4cYo+Hjaa98Br8DMGBf
MhJcl2IngreO8x9v97xwcGm3xvYlB3kmYzI2d3ODMnNz/YiV/YLN7Jaxny++2wu9jOSp0ca8G8ey
jagWZGZZcZGAEn6U3feaot94FBnXwHErr9LdsYVvz90m0dH/FED2tWJTXK3bHNa8t7v1fAgatLB3
PzO/fVxG/RlQSwMEFAACAAgACDabSvzxCCyBDwAAwcYBADIAHABzdG9yYWdlL2luZGV4ZWRkYi9r
ZXktZ2VuZXJhdG9yLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADn/YBWSbpAVl1eAsAAQT1AQAABBQA
AADtXcty2zoS3XvlT9DSrkqq9LIke+dIsa9qZmJPnMyeEmGbNzLpoSg72cy3D0jqwQcAAiRIkfSZ
W7OIBQLNRqMBNM/pns++PBD3jbhXV6bhGQtjTaaObZOlZzn2dOWsidn53OkNu+PB8GI4mFwOu5Pu
yU/b+u+GzGdfZqlnrq6WiedvXOdlurKI7dGeTpO9DfonZy+GZZ93Up1mdnUW6WkwGI/OBV0ZC8f1
friGvTaCDv0OTuaHt3deiT378p3Q59be1LCXZLUi5smZuWB290rcR8d9uWb1ymjO7j1o/fDvf1qe
3/qLsfxl2U8PnuPml1dtbNouMoT/VrZJRbijb2f4f/lhvRD3xnJp87Pu7/Hj4+NFd/zYHXa756ln
A4Hv7FC+a9sMR9oOu/abH4zkh7N7jeRrsrud2/eu8+SS9Xov2jrV0rTMqUsMj9wt/qbDBHrcyZNq
7Oz6mTovryviEfPODi0r1XS5b5GhloEZqoX7bqnJSb9pDgvOPYP8oagq79UM3LLfnF9kPyyd/8hD
gRBnogEdwYOB9FG9Ln1fkOqEJdX/Un87O4/pobvsnodavKEjOu4f+u7En+xd+52SWbbLbin4lSFh
hoC9wSgQkK+5Z8M2V2QWDJbdbPvvwyqicv14Ji7pGPT/vcFFl/43vux3tnZ0otbVvfP6Si3NsDv7
Cf3UsZ33jicaI0vq6cZ16cLcjyR4YOuWt0+EWtk/F8wBz6GH0xX1weL1MUu3L8VEe4PuzkSZNriT
ZD8GbXgX9fhXV+7W9e/8GKOJY8d7edgsl9TbUlE+d5ahMjt0vLWvRWsd3cHpdA79Dvddmdb61fCW
z1/f9tt01Ef2Qh+5X27+7sR7uWDniiygztkp1c1wPBr1B/1xd3ie2hAFis7U8zjQM28DTR10NC22
SXdS+mKLjlHaYvMt6rDUoprtL/zNhrPufOVGV1HwZJf+rze6HF5cZG1Td4nH9czKsD/uH1Fj3eVC
+N5rz3C9/4TLcUqFeCLCU0bscB6ckHjPpg/ovW5/yJ27BXmy7Mjj8/hU5D0m/Iu8UNeQOhEnRyt0
nNBiJr3excFM+A76LuqZ5NzzQZzIP6gEwQGXjtbZXdbofL1b3vPeOUc9c3846RxuUJ2D3/RtbUn8
RbYYmZf0PUbm+PxE3sQY5874v3dnodQu8/P1yTVM8o0Qk5gyu8tw2KVOjbwz/p5j14ncLJM3BfrM
2WnnNH2vSbUMXuzwT7qqN96de22aqUe3M3sf+T324BPxeM/cEu87WTqu2WCx2zyatmvzUnRlZTkU
5sTqubCmuxbfWNPtBaGcdFtxaCV1l+ftC6w1YZj+hHTuHnb+cT7r9PqD3vBi0L+4nIwHvf62u2hf
8eu4aX4j75Fu9zuT6JGvv62176DTcsfM7N21vOizD767FW5Lhyv5tOgsdc6Wxmq1oG9xLj4ssCIq
gn1uqt8yKwnwFFm+O0eTtWq5Dulp51Wyenjiuh89LiQlqdiq9s0Ep93IO6ffImP538uJceiP4x2e
iO1PK/kH+fNt87KgSuELnNlZGCT47h+HWKs6+rPQrfKfDYdXdbsccak/2ilbwS8zhIt0JJ61wx4p
48n2c8ydO09KITtDizo2xlu8GasNuXFcagoCL7YX6tj7k4wGbxMWq7SbSa6stFZL3AC17xj3DAcd
uZBsA10q20ej9+jYIVZlH5e9aY1Zm2SR83FRA7hlbbD7t1n7v643K49qwHM3S29D+52uHJsUN5Qm
aw0HLdY97+PKgNOh2umQpbKME6OkRrPOjhIazzwuMqdEeC6UnQcZ9UqfMflKFhwlMw6G+uxa1oQF
ypawVwlbVFsjXPvMb3iZr3WwI/HlQ+VOIW1Fee8WAhvLc3TPaZHMY7qs6em5pCVNUptCo9ZXWKUq
ppz7ZpTXsotfR2+zXUf2yV/aJiXklRlFyf7UzUrNZnJMegNuq5pmCjfAj3YDLMUUYUOwIdjQB7Oh
F8uLoxjerdVqGvxdDCoppvHiUmd+R0u+Q+yrT+rHjBBwqCgRGSKpMRGedfeVgvkQ70uFoDE35h8+
dHYuE+W/sWxr/UxMpbZS8Xam5DIKVwq0s0aJ4+X6g8HoKPj4KgFtU5bdpyLIjIXP1OEppw3dOZLk
g7SLeLT80PTO4zHkiDg7BiLNf3zrT68fPeLGEG/TrWXv0Gz5wWY+GjxmJ+PLbnfC1XDK+u7DKQlI
UPGuX4w/CxL8fb51VvFxJpejrvw4IctKKx2CY0Lh6v7LN036Ylws61xET4tqJT9JLdpLJlVt3i66
XF5HJaa5gKxyBLJKdEpkl1eJDLLiG5ZeRYLKAyoPqDyg8oDKAyoPqDyg8nA4MWGLuW2S3/64v8if
e8N7vuqcfupsAvu6orrv9UcX9Fz/qfOyWXnWV9ujm1/n82h42R31R5dj3rhBr03lxYBQA0INCDUg
1JSO84z4SrmFu3errD/LTGTYMmuhbVvJLLGwqXBxRZvwNiC59RQ0VVpJWe+bXBiKmlRfDPsZFC6D
fasyFkDK3gBxzikD8Mnl4pMLQeWksZ5q8GUVHGURrppIFCZ4uSpr0Il+3urHd0h0WNd5s/zLlLGi
JhX80Yff6cMCZuD8dCJuCwD5NKD3+ShRHdjpDOahCvZUArAng9/Pg/CMdVBgm5UxYc47uIRKSm+G
4cSah5mVQRfJGqC0ObGBN1rIwbIHjCxzKeBOuRjvXBwPwboVGkKF2KRy+APVME6qxjXnBw2r4ooB
sqs9UPOr6zoudAHQKkCrAK1+WNAqgKgAogKICiAqgKgAon4wIGpudKkaghVAVABRAUQFEBVAVABR
AUQFEBU55auBhYansZuNzb5Eb5+fJT5THlHg5YoYLu+xqf8jlAv0LdC3QN8Cfds0CGIU3pDVSxI5
U7/c/Im9KNMdMvYuzFDDwaLS8EDd+KXiSKXjJ/1MhXillBoXUhuUR7ChpUFZouyJuU1Q/CozCWhY
JbOvnAW3RjbdwvTIqW2lYMUNTn85cMSsDS+1OLLO1sk+9Plz3iFdILXQJMKL69E2BP3ZzbP8njyY
WrKnHI5Yw9aj2U/LpMCVT2kua3w5skorbTjVVFYqCmjOQVopK7f2rTr/R19qas0qn6ks32LrUt6P
qKKmkT1eUlGKW25yv1SK2SSHanrWcOXVVIG9t42EIFPnaqZIuypYVYtxZGzk+wFtD7R9vbQ248Qj
weeBNrCqcn+cEny6wMqCNrCysF9hVWFVgXMJziU4l+BcgnMJziU4l+BcgnOJ4h/gXIJzCc4lOJfg
XLaAcynLnWz7zQecS3Aua1CKA6NhNIyG0do7GtjIYCODjQw2cisKokAGyAAZIANkaKsMda09pZtT
Vgfqdc7aVtVyOsurulSqYeSoe1SL9BGSxcpUC9nwBg5QFz9fzXAJbUsVOW4mw/oIdnSE3AuyXGSt
XqF+uRdUONsio1UvFFSLInbtTbKjudBiuaafz4O12T0ddToq02zDS2CWK75GB4DF3abFLTi6tOvs
UT/vUZ81WfAurHZTPYKmKzPXI7unHOfrBrqsutTczpOT7kl+MvXbpZLz01vYutR8TNLV2vNtdgXC
Qmqe8aibXTXzrZKdT6PtKAZoGmsY/A2g7FLN1YQYJFZ6/vmu9BSU0yb0ZLEqnqdRKZ1fiVnbPlw0
Bfn89OWba3q+PMgP+SE/5If8kB/yNywRK7pBN+gG6XiRiA3J/GBDsCHYEGwINgQbgg3BhmBDsCHY
EGwINgQbgg3BhmBDsCHYEGwINgQbgg3BhmBDsCEULkLhIhQuQuEiFC5C4SIULkLhIhQuQuEiFC5C
4SIULkLhIhQuQuEiFC5C4aKWFS5CiQyUyECJDJTIKBJ8RvgY4ePjh4+bGLCt3cGvhuFjTzBv7MNa
rAkd01is6GLI8jH7hglDYUpCh7o2Tf/SSv/5RjqecNadD1osUvYhbVFy5hwKHRPribRjGkwmE5Zj
Ijb9y4Zkus4cgWWlKGaW7xV0xXjZy9FEvG8Iuivy7vrqfdUkiKvugvk9Bo7GiG3yiShF7uiD+GBz
nTmwbHjkiLeOes3l4eh1Xdqsio9vVILd0HPZsGO9YlHBnGec6YI2qeNa8knNNxoU0appDSzZxIZq
qYVzZDtsUk0k5RpYmhMkFsmKqDtfdzHDKKmwRTnJrZFqSrZQXbHQYHbO3ZxAYYm03bJhxsI+QgVQ
qzVxf+49PXddvZpljNXwHqVnrCu6zluEPC83IVisDYgSIEpAa7UxIsP/dJD6q2V7xLWN1fXu1/i3
OYnvDUXUHMi00xC9808Ne0lW27dc8xyNkRCK3e3cvnedJ5cq+RALiJ5qU72I94ZQfYLgWVJTEh/0
rlnP8M5C/Lb8cJf/zNm5ZHJ7Ye02fQ8X+o7I1JjExKl8RWSNkQB6TYbd1iOxrrNW2a5NKvrFdhrF
vmdeM71X6vMhvuk185tee76u4SsRvhLhKxG+EuEr0RFlQEXpo4mPSulFyrLd6yr/h2lADBxVW1Co
AvFkJG+CDSF5E5I3gX2D5E1I3iQbPmdlVBpc9qvIqOQTlo+aUQkJkZAQCQmRMhMiITcRchMhNxFy
EyE3UVNyE+n+MKsppxFyEyE3EXITITcRchMhNxFyEyE6iugochMhNxFwzE3PTZR7tNLFRDYkZENC
NiTg3IFzB84dOPeWZEMqLAPA+lrA+tqh18XSGFWJ0M6XKImZ7UmaUaCMPC6S76kq/L3CpLFMsPBE
KpkcD5EvawwpOQKE0M9XM1wFt+GCcNztcqhFSrCq6RdHSj5XG3pHLkupkNd0q8O7cHlAXDurIZmj
6WSUGsgPrk4l3YAVBEYHWEGwIdiQwIa+uq7jQhdYT2DZgWUHHAlYdmDZgWUHlh1YdmDZgWUHlh1Y
dmDZgWUHlh1YdmDZgWUHlh1YdmDZgWUHlh2io2DZgWUHll3zWHbghoEbBm4YuGHghoEb9iG5YTWo
D9+eqgzlop3lsL0tx4iJDn7LFTFc3qlv6v9YWqgu0Xnm7ZshDPe3jGtjsrngFp5qmnEBT7bn3b3Z
7STmRs0+pW7exbSndP1mTCLvvpxlfMXDXwILBDwR8EQE4BCAQwCurfBEbUgZ4BNriU/MAjABhqQB
htR2EHkOrEkKpLEH/2lDogx6fUUkCr57FP/ugRLkLQq/VxZGzztNtQDHIOCNgDcC3gh4fyxSNOJn
iJ+B3gt6b1n03tiva895FXFjneh1cmrYS7JaEbOKbqLsheCvsehbr58dCuyPhopBvX5vpP4GZbau
o3YgU3Nlasyiaunq1/ZapX/fEChD9H2jPq7zKG5ZUzfqP+gY+P9QSwMEFAACAAgACTabSlcq9zUo
DwAAQtABACoAHABzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJhdG9yLXN0ZGVyci50eHRVVAkA
A6H2AVko6QFZdXgLAAEE9QEAAAQUAAAA7V1Lb+M4Egb2mFN+gjCXSYBuQH7buaWd7t5gF5PspHvv
ssUk2jhSVra7py/725eSbFkPkiIlypaUb4DGIDJFlopVRbJYX9XtzacH4v8g/tWV90bcm09/kv9u
yXozt9wlWa2IffbddeiT25tPN9bGWlhrwmtpfDTOz27RH/or15+9az/3XJcsN47n3hPXdtyn+cpb
E9q6NzQng+FoOJjOhubUzI90ePPqasns5Yvvvc5XDnE3wejZPgd9MT1hF3Z5SqL3C2m4eLUc99Jg
MLKgq4tET4PBZHzJmgzH/eG9kLs34ltBR9eu/c233LUVdvvNeSX+xSXEGv0p9ccXWU8gaF8cn47E
f/fZcu0V2f8di+yaDvntmfjEsOi/3mBkjsxeb9Q33iJND77uCx3G839RLSYrson72H/8QT+/ebG+
M1sKfmVQnHt0cWlcmH9NHh8fR+bksTcYm5dCdu0+ORxMD2dGk9mBM2pd3Xtvb3SCLdeIZ/GD4Xo/
jY1ojCKq51vfpxYrHknwAm3y6PmvuzcirsTvRYJnL5hvRtP1yVq+UJIeqCiQs4d//dPZBK2ST6+u
nsjmzv+8pi+unPXzvodb99GjA+zXADoS5/X8QEb4iP5lPDorYvx+/rtBibWd9YvgS23HvsmTnJC/
ZWDwcy+yJvR/hUJohkLIU4M9JfEYtOFdUvWvrvydDfBe34KWNqOJ56Z7edgul2S9pqR8NJbRfBp0
vHUwkc46uQZSiRoGHcZdUda9WZvl8+cf8UJ3+Bpz0DMvUxofmCnex4UmLKHDxsU55c1wMh73B/2J
OcyvfAJGF/J5EvKZZ0lzWwVN+j41p7Xre3KM2vQ9kKiDtic521/QOeepfsDclD4Gb5r0v545MUcj
+mZFSyDU4rvM6Homddif9E/IcHMZMpzbDeWZv/l3pM1zSsQTSSz1Bbtjn1gbwns3v0Pumf0hd+oX
5MlxE6/fujIrQPYt3uIuu3PmWNW7pDmRs6mHsRN/UPLmAdOCFeYglcZPZ/McW9SkOe0Pp8bh4GAc
jF0ww0sSaMZibM/oHmpsTy7P5Cc2WkMSD0Iys4xkLQ3f3558yyZ/EGITW2ZJGA5NaonIT8bz5u09
FReuxPEu1IW7xX/oVEWm6yNdoIzzyxyfcy1DNh/+pJq9pcbs2rZzr+7k7D7xe+pFagV573wlmz/J
0vPtFpPd5dFSDXYCGUvuQepTUjg0TYl5unMjQ8Yzb8yJTXe5t2tFBA1sM7ULy3ed09YCGRP4U/Jt
OSvLfqHMvcBZU1g6YdnBhBh3D3trfXtj9PqD3nA06M1Gw2lvOBTvLe55RChyxLhYWqvVghJ8KV6c
6Zhz1sxyVri5filIvc0aIimZqcax8Y9X1Ds38pVpVZW9UhdpCFf5n/YaXNTDE1fV9ahrjlKxVMXN
BLvLxDfnv6JA1WJryN2tu8F0kX+QX39sXxf0Y8X0JgbmEpxiMZ9ZQlfAn8EuiWq7H/7//IPhhW8a
61DzEvo+HgzGBV2FtNC+XsgvUU+jEe2pTqvIoZIaNFkSx/1gpyae8cNaxj+gpcYrZPGk3xtLmdRY
2JTtv5ySJC3uCVaMA2cldSRJb6uXpOSeitMktYU63cp2z1hIEkemnf9McZmTPYpMWCtblQ1kVW58
Za2K8desg1/X29WGTtLG3y43W9rvfOW55H1zDbsj1kHo/dLQ1C2d7E5Neusns6XTuGtjsfZYO7mi
AZU3ZfXMtfKW41ibPnVpVZht1UOJpPSc6EghIRqahJApYdLnOVlJrGAlSkqhpIQpHVE0i57E0aSM
FKodS/TJrCaBrOmcJHvOlLWeCpNY3+G59tPlvdr2RbX7SvTXfvQ8UTc43OJw2yyuQYYgQ5AhyFB1
rr06m3QEw09ntZqHz8XhLdU4Xp3qwnu97Dek7rFyPxb46CNGidAIWY6JInL3NyjMl3h3IuLGauQm
biuY3cpwQ+magjVKOpitP2C5eyQjzRoX98S7O2EJZc5zzdBKJg/POW2oWV94foH+PjqBS3xvjhh0
JCwRI3AteH1n7K4fN8RPBcZFZITBbOfVosBycKfJzDSnXA4LYVPprl+tXwsSPr/dWZL0ONPZ2JQf
J8IgaUVbcEToi+M66+e/B6JJP4wbaAowWdPBZIxZBxZGFxYmyWdZndEEolFCwVTZF9W56OkFJgHq
A6gPoD6A+gDqcwqoT9m9igpECFAfQH2aAPWJWty6NvkrGPeF/Lq3Ns9Xwd3eNvzaKyoJvf54RI8X
H4zX7WrjfHY3dP00Po6HM3PcH88mvHHDXtuKmwHgBoAbAG46FlKasEtyShKbMNZjmYmMWhYJ9a6V
jDhHTYWCHFnzj0ZSiJKxGePx8IMRNco8Pot3DHShXXt+JPl0MIPSFBj9385/O5tHP9ElduGEU2Gs
vJ/EDwNDgqM6XRGNLT0hxE8O1EavBhE1P4IUMOGSPve2dNVLhQD16SqeeWA8ErpC0jn2QwO6LkGF
vLYqTq+6hsZiJdTNuFUdWplTAoR4l6QB8dmIz25WiGHJuT6WJOnEWnL4uXXpYrF8IUHQRmjpqDgF
p6TkdPRn48uA0X+T7iSeIvrWeRsQiSViHjVGHX9V1/USQZSNjH7XpOZ1SrdPqFrSI2k0BXY8B7Qj
Lk3DKd2ZRS/S5d2N2mca6MdmY4Zhv3TGbCMkXNwNwr0RZtnpUN3Pvu/54AX0CWHLCFtG2HJ7wpbb
GCjcuHtnhC0jbBlhywhbRtgywpYRtoywZYQtI2wZYcuoUIAKBQhbRoUCVhBxtNX7snXZnoXd+zeJ
S8QTE7xcEcvnvTYPfgRzEauNWG3EaiP9ryg2NBkXUtSLnbFQzav0kLH7haaHsU5ghhDFW18Ub85r
qj+6t2WRvCk2CJawjGS3OaI35RXMWKCC5TjbXLA/Ydi2jjAtJQuQLrW83Z0M2r7Rb0unwT2bFls6
6Rf19N3dron9aeUtvjirXb9rRBnXUjxJU1h/DfnO52prgQpUILsYCCLgp/3pVIpJN+WscBkoBiRc
6CatkkBdq4C3xq43AgQ8nk4/ZB9oAAGrUTGZZaDIwYMcFVgHO7cOdq8OwrzaWUrJsyl/DmsHKOdY
Cz6wS2LsUvYSqOa6jQwfQSu/D3gS4EmaxbUbjtceiDVwA1pV+gpXcMEHzQI3oFlYr6BV0CqgioEq
BqoYxZBQDAmoYqCKgSoGqhioYqCKgSoGqhioYqCKgSpGMSSgioEqbm5pIoyG0TAaRuvuaMDbA28P
vD1qMYEG0AAaQANoAA1ImCGE/UvWqlPCb0myVh/MS2KSNCHBjpmRoeUJJUA+yAf5IB/kg3yQ34zs
REpQ4RNnsZAAslZMYtCJ3AT1QzQ4hIaxrN/f7Oj0sSsI6/m7YwgboSAtqArOzGNmE+p2HWMd1qGE
IqibhneU3qqmtBPKJlTbJNUlmIX8b2quThWtlre5EqCu0sZY5boIRezrNP4ymTw06qHElkyf8lX4
thJ7KB05U1QUqiQfy+mNFPFYNY6yn1Ex96pyXGrVOFFyM422Vj1Z3UnlspVJML+eOhUyjvpdVG99
tlLlJlT5OFvD9ae8cdFzE6qw5h3hfNNJj6VWO1qDisAnhLUQuXuxXWka5+v2cbY0NXCT6W+2Peso
d3FfWd5nzcy2ptvJdpTUbUj3fZw83uimq90geyayZyIDK2QIMgQZggxBhiBDkCHIEGQIMgQZggxB
hiBDkCHIEGQIMgQZggxBhiBDkCHIECqFoVIYKoWhUhgqhaFSGCqFoVIYKoWhUhgqhaFSGCqFoVIY
KoWhUljZSmEqFb8q7GtQKQyVwk5RKQw1aVCTBjVpjluTporjGK5fuH41un7b6Gxt3NrdQNfvRjBv
7P1WqgnZH2iKjEXcMCMoTEroUNe2HRwW6Z8/iLERzrr3Tkuayr6kzcPNnEOhYWK9kTdMg+l0yjJM
xKVPtkTj4amcs7LI9gq6YnzsbDwVrxuC7qp8u75KeQ1xnqqbYH6PoaGhmz/9hcALdijXhQOr+BXa
wu7D7ui6NsaLd1iUgv3Qt7IutWZdcj8E3pOCbVfYJrejyr6p+fSACnEo8IYCb++owNuJi8EgJx1y
0h1hVGRqazz97yKfEz83GGLVEasOvANkqONcOwU7rODyIffUcTfEd63V9f7X9DWdxI1FFTaHNO05
dO3ac8tdktXuK9e8FcTKEMXu9ta9970nnzL54KpIbvlzvYgX3Ih9AvdbllMSd3vXrHd4G1tm/zLu
KdaLEt+qcnXHGiMTljRlZafvGGjjukgw921y/iy2nlW7RLxmKnzuzg4Xae28SOvOlRauZnA1g6sZ
XM3gaqad9yq6y2pK+db11tJUvKLRXz+n/qI5leZa2S15LM+1urSijGFnb1VwAdGy+wH4beG3he8f
MoRcRwC8APCCXEety3UkTkA0mPWPkYAogPmeNAER8gchf9B7zR905DRASOWDVD5I5YNUPkjl805S
+ei+GS5IASSZnkfl2hipfJDKB6l8kMoHqXyQygeeTXg2kcoHqXyQyqdrqXxKj1Y7mUgehORBSB6E
CHVEqCNCHRHqLaIBYfbNTF+kJeeQUoBz+aRDp4uBPmb6onpF9ViK0IHUS/UGiEsEXlfE7HQCfcDp
Jgyj+v5mRzbwa2QOPX9vDLuRqwvz3675B2Sl8fQ3HNHTAvzD6TOOSXSjOhJAHQAGARgEGdInQ599
3/PBC+gTgHYA2iEcBUA7AO0AtAPQDkA7AO0AtAPQDkA7AO0AtAPQriagXUnAnEp4mv5w9xQoD0A7
AO0AtAPQDkA7AO3g2YRnE0A7AO0AtCvClAEeBngY4GEng4c1iwPNAKsBHgZ42LGQGKgWraW6xrHw
Hd2PwxLt65YrYvm8Td08+LE291Wm88JTMoMY7m8Fp8Jsc8FpOde04KCcbc87I2fa0Znk6cm0T3er
1aRU6nhdjYdKZ2zGVPIOxUUiWN1ZJZBDBAIiEBDuMrjLOu0u60YgoLZ4EkQCNjISsCjMB8E6GoJ1
uh6uXSK4IxcVEYfIaQv9GPT6iqEfuKWofkuBat9wliOXGpzlcJbDWQ5nOZzl8LrB6wavG+C3R4Lf
cv1Ue+s1t9wlWa2Ird46NTJdSt72h7kkZCB8mvLA9frF7sD+eKjo2AuScun7gpN0c5JBWzNX7Req
E37B+xwaBqqhdr32ax4Bs0XXPG025Nxu2D/8H1BLAwQUAAIACAAJNptKDhBsq1sFAACsPgAAQAAc
AHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBlcy1wcml2YXRlLXN0
ZGVyci50eHRVVAkAA6H2AVko6QFZdXgLAAEE9QEAAAQUAAAA7ZtLb6NIEMfvOeUjcLSljcTLxvZt
Yk9WaLWDFWf2jqGcsMGNt8Hx5LKffZuHceN+gGMnGe30RHMwVFdXV/1/1SDAnd0uAL8AnkySDaDZ
7T38s4U0m/oogDiG8Oo7isgRd3Y78zN/6acgstRutOsrV/lT/pS/z/AXVvbTBCEIsihBc0BhhB6n
cZICsTZs3bHsgW2NxrY+0tmZDiMnk4Dr5Q4n62kcAcry2Y99WqY8nsJF+PZIyvGtMfTWfoT6GieR
La56lCfLcoZ9XjEi9JI8g7cB7OeOvqDwAfso9Qu3D9EacK//y8lQnPJEkqi7CJOZqFiCvCqME14s
/zLHen2tp/9wVqvVQHdWuh7o/XKhd2TGBL8SQUIMGezt93k4SO0hqaXLtZSc5UTYEqBhDYsAxZl7
8lEYw6yYrN2s+l3rMiVxPTwBBs0n/w1roJM/Z2xqmxLnq9NczZPNhtTaR1pd0N80lOy0TDZHW9TT
LcYEvnomyQBiskrwuhpRZqUeV2owXHJHluW69YNnEtKCSEGWzTAKZ6z9u0jUsPS9RLka3EdSz0EM
PRrByQRXLCbrTW4ZckwS1PSy2AYBpCkJ5UYLymRqZL40z2KU0r2UlNPOHdauwijd+Fnw9PWlbpgU
cJah9xu45e1CtLiilVAAab1rkhvbGQ5Ny3R0m+2gkkS35tkp8izqaMyWcyHYRvro3WGj53g32HJF
HVCjM2suSc1F3OXJpSkqRurknzEc24NBPlKGoXc0/DJVsU3H/MSM6cFSuu4083H2V4njlATxCNSe
2XKZhMHPQDSWvVQydNMW1m4JjxGihrvNUrz1suhPWJPWQMbR3tjZzrqcuIhMDGNwkIm4QXt0Z+rW
ng/hUD9IBNO8fGQ2bX/ZTOq1i7KnujnTndm0R9rhWlY79M1cawHkkC2H4ZisYxg6/avuEiu3I+pA
EeaRjri7zPfNI/ZD+AYQQthld7FtnTQ12HGOv2HXoa7xCw685d8kOWXfuSG7i3bdZ1bGWBYLO/wk
VG8zD38JQ2ZoVdm56HwlnVpjB302ord1vUNYHiolJxIidx1Nl3sFtgVkhXpj62VdM1y1pFRyM8ba
CrrRvrkyAwT9hCcBP8wLonmLPVfuTDNMy7AHljkYjxzLMCt3tK/G4oiLb7Cj3NYdTTbk648ozcFm
425IbYejjB67yDGVtjPSf+aixJxYJa0X+HG8JKvoyzcZMueUpzZBf5xeXpmN0bwpaFoaxvXWUfdj
D5U3/xfFd98z2qilewtzTF6/2kxyPVKbyJmqO5gApWd4LQScuqgDeOWt1n2+qfA03u00BAkWxkOA
ahg0HBxOdqFmflqyaUbEihfuCGcLfc7RFbX/Vvd1J6q+6y7rlDF9/uao6PoYus6Tr2JTsanYVGwq
NhWb/ys2L4GeuqZVbCo2f7Y7xvO0rdh8fzbz50nTLU4TLKLTE1ucw+dh4jZCmyFyjspLTxlKn4DU
RnJSqXQI2EiOLaiEl8cnE8EJ7ZrH04sfb+EuwX/A6wcQ5Z2e2G5USYR0NlceX01VtlPIfofsHtJt
nFHPUEhTLZ+7fDSB+7iCBGURIrXdovI5UC9LyqjYRUZZHgC8A4kNz20wMmHwT8iV07QVi/LITg6m
2zAWsBlxjDh4VmbavhxtVLbt7hhWQFRxEfV3Ydh9azG6kexKtXg2zK5QkIpnxbPiWfGseFY8K54V
z4pnxbPiWfGseP7JeVbA/tLAXu413mS9jrLmu8m7KI6nxXHmnWv6Be1k03hV3xnnL6c2351lPul0
xubQFtZZ+mlo0/Xaf11CcdytynU8jzFkFlvFfC393of9yPA06/8AUEsDBBQAAgAIAAk2m0rllNiL
XQYAAIxFAAA4ABwAc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItYWNyb3NzLXR5cGVz
LXN0ZGVyci50eHRVVAkAA6L2AVko6QFZdXgLAAEE9QEAAAQUAAAA7VzPb6M4FL73lD/BmsskUkcC
AiHpbUqnq0i7m27b2TsBp2VLDGtIO73s377PJoCJwSSTZGa1cqWqivH74ffe9z07FOY31w+YvmJ6
dRX6ub/0M+wlhOAgjxJyh0kYkScvTjKMPiHTNtyx7djj6cw2psbFVxL9vcHzm+sbSfLqKmjVckuT
tRdHmOSgb7Crc2xdzGt/khSTm+t7DDay3PNJgOMYh7LVrpnMwsn1Ddd+REaoRaheMF9puLPUobDS
sWUYI4Uqf5nQ/JH6JPO5wsJyuGydnGK6Suj6c5sMTBSGmI/rNMY5Dhcg5bOxx2iN6W1EYXlD45u7
Wq0cw10Z4xAc/A2vE/oOOq794AUy+JAntMu7XUtpkfQ+O7ZR2RGNNFRxe8NOdygMv+LF8i8IPh+6
TeifmGYsEc8+ecI8Mm2hWEf5ghTVsVUuaAE8YBaqexwkNGTidXU/JmVNFVoExW2K/DDcatnDyndq
lgqjZbG95lXFveMNT/pRa/2hwm80ysWQ3EYkyp6xaslhFN4poNUiEZHX5AVXJf+ZhIIQB8BQhfpE
IciRo5CFQg9jXH6uXMjA1cdnTDHy4dccO4ZjmKZjoS08WcHdghkIVxngUkeJ6raqb5+puNrisTQ0
HInMYI4nxkjJt9slc2OniYzjzurIHKbqLklToDafoCqLl4gkbyhX2ejz2ttQCv2jsqQQ2HaBrUQR
lUpO2T+KdImcevHwx68AF4lpn3C+oF8yEIwBPKWGOVklYKDcPYClDnHZEOJD8Amtohijj4OPCJwN
o+xFjcsb2WWROVn7lQTbEvpPbxEavAi7YFB6UtmAiQtx78C6U7GJKBtvy5SENLU8bIIAZxm48gkF
RT7Ra9HQUJSJOyaoKJsprFRB6FI/D56/vFbbDrGpm9BsRcSzfU7X4vgeSMAwGg4gNrY7mVhjyzXs
kbS1UgS6N84uj3PXVkzaXp4I71Njena8izbOhndWUTXaxchaS7bT7IA+C24Dj0zSgB/TcA3HAckj
mUCJ4sWO9dMk1bZc6ycG3AiWyq09xIzmje2puMVTn6go9nPcJSufp0zDsjtTv8RPERHE52SfDrAr
ddROqJtVFyKd7MeptW3hA7jnsaCxDlNXJXqL8ueKURvHMnuK6mMcqsmOZTjADBnLSTiDPdQkdEcX
+ye25YDU/FzuoaTW8DV9on6If8c4xOE+LcG2DWAi/NYy/t/bex7YuITzCMeCsMUHmeEADUbyOW93
Jg+zeDZIN0Bmn8NQEt3W2V3X9UPOuL1uVSfRrpNm2zqOONyLGyZJdc9pUpqvODjKc9XfY3iSQAcX
tZUAnAEZ1hcPJcrnN8i0xqbtjM2ZY09N297rxOcdGxE0DPw4XoLDIzWpg02vLbMdzOidvgoa0m0m
xMpsTK5Io2LiBSm+8TopVEp89iFExLE0ps5fNU3R/6sp6vqt2KKjbF/w+5dvUZZnc9KsXbiABpco
4YMo46NC7U6ciaE+Wd2zpgOKKP+rUjUeT3pU8S9S+p1ynG5N1fcxe6zNUjanGpd3h6VTRGE3pjr5
/Wgo3bVUrtDbtwe9A3G1b890C59+fqvT+D0Hfo8rVo1+jX6Nft29z8QjGv0a/Rr9Gv0a/Rr9Gv3/
95P7cejR6D8/+tmNPm9Ds4R24X/RPeMYBqgN93FA08WWUXXqhYnKuxzVJDUXCOGo7iAF/HPxvTIg
B4Eofb9CHwYfLoqp7JbLMuLBQnHyhilHD/uvBp+EaJOm9UgNvUKUge6V/aMhv8XjJRvIrAizmW1f
7g6gFYYqgCxQDtbsO7w4P3IXhydwP/QqCvZo/C7aq3abqQznv+D8HmebOBfux3Gm/BlIL/0KEgJ1
usG3G1LcUxzmSeGVvEioPXAAnwHxDc19oJfcaL+grpzm3O6i3JmnJoB5Y3JHo4zaJ+0F6alhGJe7
AxKk+7YsFHMJtZtpx6zSz/J64WiBQT8G2gvf0bOfNZx03Il28mxOHsnHOg+ncnKPzjb/Xorar7/N
lQx9dIubd9K07nK6y+kud3Ju1oyiGUUzimYUzSiaUTSjaEbRjKIZRTOKZhTNKJpRfiSjnO4JluKd
Ao2svkVx7EmvCpAffsryJC0feRIfoeKj9VNL7mxsWjsP/kjvInFn1sTuLADlO02aqtf++xLz8fk2
j7t2zInyaVn53SKHzf4XUEsDBBQAAgAIAAk2m0qERhpqeAUAAKg0AAA4ABwAc3RvcmFnZS9pbmRl
eGVkZGIva2V5LXNvcnQtb3JkZXItZGF0ZS1wcml2YXRlLXN0ZGVyci50eHRVVAkAA6L2AVkp6QFZ
dXgLAAEE9QEAAAQUAAAA7VtLc6M4EL7n5J/A0a7aVPGysX1L8GSL2t3BG2f2jkFOmGDhFTieXPa3
r8RToAd27CRVM0xqDoZ+qfv7uiUKnMXtCqAXgObzwEu9tZcAO4YQ+GkYwyWAQQgf7ShOgHKtaKZq
GebYNKYzU52qV99g+O8eOIvbBaM5n/tcK3co3tpRCGCK7Q3aNg39yqnjiXcALm7vAfaRpLYHfRBF
IGC9iiSJh6vh1gvhSOEo1QFmkQWt0IZUZIauqiOJKW8do/QBeTDxMoOZ5+6VDIM119wOoE2Mtjc8
q6etfvX3n2FKpG89/xnXYJXGSBIvdYnkZ7uLQAoCF8fjkWsP4RaguxBh40P1h7XZbMaqtVGNACen
rb3Li96la6ocXex5G6YuzNNHbtfAeojLpOZSlCKdcfYmkziOSylaWgY70BWEwfK0MobwJX4GVcJu
YEApZekbyjAYSxSzvDfSQxDPGOFF9R9zbThqVFD11VGOnjvsMUaveO2A4KaUL8HFqyFfUnKXE2FH
gJoxyQIUZ+7Jg0EEFpmzbrHid1WnBMf18AQQUDz8XzPGKv6zZrpSMODqNFPLeLfDHPGgUhX0NwXG
ByWV+eiK2t4jhBtb5UmiUDSfQiPPSqWXg17QtvJy0Z1Gzo8FK/8uENUMtYQoF4NlJJUPLOjSPXU+
R0VzLVsiRySGTSurve+DJMGhXCt+nkwF+0tIFsOEnnu4nCYxWJkKwmTnpf7Tl5dqGNHtVstbZkU3
0v9Fi8tmA0UgZTjAuTGtyUQ3dEs1R8yYkiS6M89WlmfRiGI2CRci21SdvjvZaB/vRjaCqJpqdGb1
Ndl/CHhHkkuzKNNU8T9tMjPHY+nOBYPfbalfpiqmbumfmDHVX0vXnaQeSv/J6WjjIB6BdK/Q2Ngi
4KVApMtuazVVN4W1W4PHEFLqTrMUb90m/AW2uDUw+762t7O2ExeBiaaNa5iIG7RLd6bj2nMdDvUD
R2CT8mFvSnncwfU6hOlT1Zwb+35zqtTnBKXumwRrPiAkW0+CGV7HJLBGV8dDjLPfbv4u90LMlPm2
e0ReAL4CEIDgmOlimipuauDAuf6GqUPtiDMeuOvvODl537nG00UZcPbzbclsYfVPzOp96qKbIGBU
i8ouRffPOma0w+o8cfDWcd6ZSWy647zCyEuOLqys/OBpMwqCfsKDgBeQgijuquSVs1A03dDMsaGP
Z1PL0PTCHG2rsThs4is4UGarjiZT+fIjTAix2bgbUDsgfCKmdFeEptJ2Vh/l7HOrpAx9L4rWeBUj
+ZDBPm0e2gT90b48MhvaPBc0WxrC1eio+rEL8wcrF6Vv2TO6WEv3FuaavH6VmGQ/UonIOVV1MAGV
nsFrBuDEgUcQLz9q3ZOhwsP4cbeBHyNhPJhQDYGGgfrmMaxZnpZsmiNixAsnwtlAX3JwRc3f4lx3
IuqPnbJWHtPnD8eeXR/DrvPg23Oz52bPzU+ZfOdhu+dmz82emz03f1VukmfW9h4lMRKx0xVLnMPP
2nEXQ5shcq7KS08JSp+yVkJyplLpEHAjbktQCc+vz+eCG8qAx6cXL9qDuxj9AV4/gFHu6Yk9jlUS
IJ3NK5ePpiLbCUh/B+k9SPZRSj2nxU01f7b70Qws4/JjmIYQ13YP82fNwzTOo2IXGaYkAPAOTGxY
7iIjEwb/hhw5TVkxKFtycmI6DWEBN0OOEIeehZhSlqOLlV3THYENwKi4CPqP4bDz1mIcx2RHisWz
yewIAdnzuedzz+eezz2fez73fO753PP5J+VzT9hfmrAX/oKh+b7UIYwim/mKYNB+aSzeNV4ftGbk
hZnm+zzM5zjWTJ+YwjpLP+tpmt56r2uQXXeKcrX9aBNmsUXMA+k7yOzXL6dJ/w9QSwMEFAACAAgA
CjabSjcbNok6BgAAWjwAADAAHABzdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRl
LXN0ZGVyci50eHRVVAkAA6P2AVkp6QFZdXgLAAEE9QEAAAQUAAAA7Vtfb6M4EH/vUz6CtS+bSF3J
EAhJ31q6PUW6u+Ta7r0TcFquxHCGtNuX++w3mAAmxk7SJOpJR6Wqipl/npnfzNgl09ubB8JeCbu6
CrzMW3gpcWNKiZ+FMZ0TGoT0yY3ilKBvyLCwM7RsazieWHiML37Q8O81md7e3EqcV1d+q5Q7Fq/c
KCQ0A3m9bZlD82Ja2xMnhN7e3BPQkWauR30SRSSQtaoocw0nl9dfeSEdoBamesN8p8HWVvvCTocm
xgONKG8Rs+yReTT1uMBCc7BoJU4IW8Zsdd3GA4TCUm7jKolIRoIZcHn52mO4IuwuZLC9Pv7pLJdL
GztLPAzAwN/IKmbvIOPG818ggg9ZzFTWFbQiYUMx5+kPJIOSIjd2mWNhtTkMll/JbPEXOJ8v3cXs
T8LSPBDPHn0i3DNtrliF2YwW2bERLkgBPJDcVffEj1nQ9twLgs1DkF2n/mNcJlyhQtB6tJaPS5YS
p8UZevW6zN+yRsiID+615eEbCzPR6ruQhukz0RkWhMFcg44WjpC+xi+kSsdrGghMPDn7OuDGGkae
1RpeyNUgIuXnyoQUTH18JowgD36NoY1tbBi2iTbQydPiDtSAu0oHlzLKEtCWm+2UmqctFktL/YGI
WmM4wgNtydxsmSs7jWdsZ1J75jBR8zhJoOx4FFVRvEQ0fkOZTscuq901Y9ACKk0ahk0h33AUXqn4
tC2gCJdYFi8e/vgV4CIVyyeSzdj3FBgjAE8pYUqXMSgoBwDQpGCXFSG+BJ/QMowI+tr7isDYIExf
9Li8lU0W61veQSXGtoD+szMJMU9CFQxKSyodQDgT23/eYIo5oOydLSQxbUp5WPs+SVMw5Rvyi3ii
16InoTAVhx7IKCsXWIkC1yVe5j9/f60mB7EvG3jQQHw+qqg2x8cYAcOo3wPfWM5oZA5NB1sDaTrS
OHqnnx3uZ9U0JU2IJ8L7GI/PjndRx9nwnmdUjXbRs+YiHxYV0M+d28Bjzonhx8AOtm3gPLISaFE8
29J+mqBapmN+osOxv9BO5+AzljUmTHEQ0x+KGPEyouKVj0QGNi1l6BfkKaQC+7QZio9ON4p82dam
HS6KzDiwptZ2Ch9AjZs7Le8wdVaitzB7ripq42RljVF9EkN1scsj7JMcGYtRMIEZahQ4g4v9A9ty
mmp+Lh0itYYfyRPzAvI7IQEJ9mkJloWhEpG3lvX/3ux5YOMSTg0cC8KIDzz9HurJh0SJkrtZPBsk
ayhm10EgsW7ybK56fsj5c6dZ1WFSdR5s28cR53NxYJJE7zjwSfSa451Mq7+KcCUGRU1pSwE4A+ZY
nz2UKJ/eIsMcGpY9NCa2NTYsa68Tn3usR1Df96JoAQYP9EUddLptkVVURvf0WdDgblMhZmaDuCoa
VSWe0eLS6qRQKfG5CyEijqU1ffwqMk3/r0j0+VtVC0XavpD37z/DNEuntJm78AD1LlHMF1HKV4Xc
HdkjrD9Z3edNBwQx/lcnajgc7RDFL1J2G2XbaknVfcweezO1zanG5fywcIooVGNKWd+PhtK8JXOF
3r456B2Iq317plPY9PmtrsPvOfB7XLJ26O/Q36G/694nw+9x6OnQ36G/Q3+H/g7950J/ftXvrlka
MxX+Z2qKYypArXhXDWia2LKqD71AqL3nrIj0tUBwR3WH7PPPxc0SIAcBK3u/Ql96Xy4K0vzSdRFy
Z6EofiOMoyf/v6ZHA7ROknqlhl7BmoPuNX9biF/yuvEaIivCbGJZl9sLaEkgCyAKjIM1/YAV50fu
7PAA7odeTcIejd9Ze9ZuIpWS7BeS3ZN0HWXCjTyvlJ+B9NIuP6aQp2tyt6bFfxX6WVxYJW8Scg8M
IGdAfEPyLtBLZrQ/0GdOk1adlFt0+gIwbRArGmXYTrQXpMcY48vtBQnSu0YWRjiH3sxEQVXaWT4v
DC0w6EVQ9oJ39OylDSNtZ9QZ+f828vxNY/pR9O/XOqba4nd095gqK2DXQLoG0jWQrqJ0FaWrKF1F
6SpKV1G6itJVlK6idBXlEyrK6V7mLL4B14jqWxhFrvTdNvk94DSLE93r0Iovnh5MLb6pzDXWLwc7
k6Fhbr1fK31r15mYI0uZXNpv/zZFr7z3BeHr002ObOsxRhf/AlBLAwQUAAIACAAKNptKuPC7smAI
AADl2gAAMwAcAHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5LXByaXZhdGUtc3RkZXJy
LnR4dFVUCQADpPYBWSrpAVl1eAsAAQT1AQAABBQAAADtmU1zo0YQhu8++SdwlKqyVXzp82bj9caV
ZKWsvbkjGElkESiA7N1LfnuG7wGGAVlyWbV5k9qDoGd6pqfffnrww93tIwmeSTCf+3vi3d1+If8c
SBgZpmcR1yX21VfPoU8e7m7vzMhcmSFps5Q+SNdXD2eeb7AzHW8ocQZZvucRK3J8z3D9kNj3gb8z
XId4UTxQGii6PNH0ka5NZ5oqy0PBVObKD6KnwPRCM5mwvhM7szQKl0vi2Y63STxTa8aXLk/lq4G9
4jrak2DtB7sbnr+GeemN3Szrubbl2jo09erxz9+dKJ7z1rS+0VGPkR8I9ss8il3u9i6JiL2gqzbj
Z0/OjgT3TkCPZiB/n6zX65E8WcuaTYNbH71Pl9k1Vpc5Y6nnnRMtvDT88esyFE9+fiipFTOQPbHm
y0Z4OS6F2VabsCM7bcdeHnPY87njPfvfSBGwG89mBiXhG4hy2BcMTOJeCU+cPY1JeKv6t/FsMKyc
oGzJwzR77qlHP/hB907ivMnt8+TinSHfUvCWs8KOBSraOFlge+S2pme75C5x1m2W/S7OKaTretqS
gEgm/adoI5n+P5mpUqaAq+OmWvr7PdWI6UnFgf4ief6LFIl8dK3aOAQBrRKFJ8GArERlI9KoFOPS
pG8pbulxsZVGrI+7pv2bpKiiyXmKcnMwX0nhgxouWCLN50GGprwkckx8rzrL48GySBjSpXyQrDSY
EvUXxlF0QrZS0+PU4wmLqWwn3JuRtf34XMCMLbdKWjILucX0bNtcQlZGQNLgmsZGn4zHqqZOZH3Y
ALYg0J1xniRxbgN8A2tnEttUnr652Fgfbya2OKNKqbGRVVdx/9Kiuzi4rIqSkTL9TxnP9NFI2PnQ
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
M27YHY3bGTP2JHQldCV0JXQldCV0JXQldCV0JXQldCV0JXQldCV0PwS6vT4K3RuEj32CKuo+exZ7
JuMTTP37h9zxk/ozzMblNFhWSFkhZYWU0JXQldCV0JXQldCV0JXQldCV0JXQldCV0JXQldA948Oe
B7/q6TizyxdFyRdFyRdF/QIvimK+3Z/8RZvGa6ijbc3T9gS917YOOuIHeeyJbplMt3J/2KfOeuO+
L0F2fVbkmaYczRKXk/+yDmGsYo+X3e1EZ/M/UEsDBBQAAgAIAA82m0o1XPGvdggAAOl4AAA5ABwA
c3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1pbnRyaW5zaWMtcHJvcGVydGllcy1zdGRlcnIudHh0
VVQJAAOt9gFZM+kBWXV4CwABBPUBAAAEFAAAAO1dX2+jRhCX+pgnf4TVvdSWEgkDBttviXNprVa1
e8n1HcM6psHgAk4uL/3sHcDAArsL2PiS9Pak6ORldmZ2/vxm2MV4fntzj/1n7E+n3g67tzdf8D97
HIQzwzWx42Dr4qtrw8j89ubWCI2VEWAWJbpCvYt5zs860M8818VmaHvuEruW7T7OHC/AQD1UJV1R
R6oynqjSWKpKymdOpyaVy53vbWeOjd0wkl7mqch8fWIW1vGaJPNrdehvDdsdIIoha1j1CU6KomsD
mjNs99l7wosd9o2I0bVrPfiGGxgx2wd7i/3+gDRDJ25mL8njKHJn+yCJPXdjuJaD08/ZkgIQ+bDB
PkYG/A2VkTSShsORjHZJJESruwMxnv8KXsYODjMeaUzm/nvwsnigUnKuUjSuDPUHqC9909fr9UjS
10NFkwZccx2WHAvrxjIjfZJbph2rpbfbgYMNF2VevESu94JCnow6rWd734eIziRxJgDJ2vO3hxmJ
VbJ5SeBZK+rMxF03hvkEKt1DKOCL+z9/t8OIihydTh9xuPA/BzDRsYNNymHurj0QkGIESGJMrwpC
8RB8Qmvbwejn3s8IlLXs4ImzUsu2bqsqE/FnRoBQmUhz6L+1QSjFQchKg1STTAYQLsjUn079AwZ4
211EaVFIPLfI5X5vmjgIQJUrZCb+RCAviBxpByRGQkSpEcOMFZhuZ4Tm5vNzBoT5aiRlKA0KGR/B
FGtxMYQROYz6PbCNqmuarMi6pFaRkWPoWjvrsZ1ZSFopJR3l+1ganz3fSRlny/coovJsJy0rr8Dn
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
ijjXgFVjJNTxeOB6PnemQeD4IetbrPFqjrA8gRUNaI5qawWWosVudQGWsp9X6vDUSx+/u6wAlcZD
W6lWd0qE3AuHvc87DLv+/BQzcMqFtvWmThbZ5P2A9GW5f8woI5TfgizLpi5kLpec1cEeUEsDBBQA
AgAIAOY1m0oYy22ETQEAAJ0DAABIABwAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRh
dGFiYXNlLXJlcXVlc3QtZXZlbnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAANg9gFZ4OgBWXV4CwAB
BPUBAAAEFAAAAJVSwU6DQBC99+Qn7BESmyxCS+UIaNKTxtYP2O4OlkhncXdb9eK3O5SW1JTSeCCB
4b03b97MPE8fhXTafCeJggoc5MKJlbDAxuxmNM/TTCOCdKXGpV6A2YG5hBz4+4rlxxYIc6wmyVnJ
85nHv+KiKCYhFFE45T4xvY0o0Wc9AmuBqoJ83+w67PD9VIMRzTCWfC3XYIAJeoKIz4LZfTzlrAZU
Jb6N/if1rOsaFBPI9LF8y1B/MjfU45rrbGsMoOs6DRAIUmizOTDaVDrefgeeWvUy23WlQr6TpQWd
wlCaqlT5Of5k+bLSFs6IfWn+XL0Avr+ASzd4dNL1ICBNjHn6AqRrXZKY9iXTm7pBqh6Ixr8qi62U
YC1ZGTPZhsmon21SLG2zxDiMpjyYxHEU3zWCnZQqbS2cXD/sGhJFfjpNGAbcvzSLPvWUCZRQVeT2
F1BLAwQUAAIACADmNZtKVy4b64oBAABCBAAAQAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9k
ZWxldGVkYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LXN0ZGVyci50eHRVVAkAA2D2AVnh6AFZdXgLAAEE
9QEAAAQUAAAAlVTLbsIwELxz4hN8I0hFShpKqI8QKiFVoi30A4y9AYtgp7ah7aXf3k0gKFVCUA85
eD2zM/tw5vFkCeYIhlKdgYonb/BxAOumTHFIUxCdeTx5Ytxp802pgBQcxMyxNbNABqSbX0+1UsCd
1Gqly2TNyJbbdyVRGDFllNJayOsTz/+KkiR5CCEZhiO/j0xvz6Tqk4YEW6ZECnEhdht2Pi8yMCwv
xqKv1RYMEIZfMPTHwfgxGvkE+ySk2nT+l+pFZxkIwhTRZfiOKP1JXJvGLdfTgzGg3EWphYCQRJv9
mXHqyoVXzMAT60bmaVwTxndoaYmrAJ3l67N0OaoapXQDbmFmFomptNsyw1wlGgVEOe/uNXpdiBQh
PJFEpkB63R5Bs0LaXUulQoq4brmyfzzVFmrEpoH+3FxCv1jCa8+gdHLRQOCi+tAoNecXp/dZjhQN
EK3+ZlkeOAdr0cqA8NM8CerZfJDS5nsUhcORHzxE0TC6zxNeUmHrMub4dnbMSTj1ajVhGPj9a7Vc
+T/8AlBLAwQUAAIACADmNZtKYDb0MlYAAACZAAAAQgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0LXByaXZhdGUtc3RkZXJyLnR4dFVUCQADYPYBWeHoAVl1
eAsAAQT1AQAABBQAAADzdHEKTi0qSy2yssovSM1zcQpKLSxNLS5xTsxLTs3JSU3h8nRxcktMLskv
qrSySknNSS1JdUksSUxKLE5V0FUQAEk75+flpSaXZObnheTDDCNeJQ5rAVBLAwQUAAIACADmNZtK
0giuVRABAAAhAwAAOgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS1y
ZXF1ZXN0LXN0ZGVyci50eHRVVAkAA2D2AVnh6AFZdXgLAAEE9QEAAAQUAAAAlVLJboMwEL1z6if4
CFIrkZAmKUewKnFq1aQfMLGHBsUZU+N0ufTb65KllTCgHjgwfpveTMGzFZo3NGkqUaFFDhY20CC7
YVfBM1WvByx4dp6maWcURiyMPxZlWd4mWM6SeRw5ZriHiiLmEdgCSYW8NRuHnf4fajRgK02Ny7Xe
okEG7pvM4uVkebeYx6xGkhW9BP+TetR1jZIBMX0eXzPS78wOeYylzg/GINmL0wDBQUpt9ifGsZUL
r91B8bshl5F49oROpLE5kEClUAah3Hi1jwvNQOxc6JXVBn3t+EVb6/7YspK8q/4nqlC6wQ7R5/81
clHJVLYX5QD3IJzPp/dU3XOuiVD8FLfWA0fdg+wp9xtQSwMEFAACAAgA5zWbStWVee7IBwAAvj0A
ADkAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMS1wcml2YXRlLXN0ZGVy
ci50eHRVVAkAA2H2AVnh6AFZdXgLAAEE9QEAAAQUAAAA7VtLc9s2EL77pJ+AW6QZe4YvPaybLNmp
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
v01X3LlNfmPFLN8b3HeSUpl+L8ZxgyAOoJyZI9cQCTQFnW/3KmJfX88vvj/oeu7BgXHFftds4Vc4
oTSgh7ra9fql68Sb0GRhzmua6AV6ryrTy+S5hqM8IIJN1j7MZpyvpdivZ5YeK3FWlXluLo36rmjU
uplxLbQJmXumFeJl03YsazZ5OcWK40hZyGG2eNR7ynyLD5IG8CdAAMGLThfioqjBc8/6BadOAzL1
hEw7q4ynIDmN1ue3dU2eWVQsD5eiP25Jk4pPNRcbSLErGqR7XlAKKV3cqsu9Jzrm0RbU/rA7fifF
QeJhX1NdPVY7UToj07N5/XS1ww3eyUq5XPf5aESC6m1Vwy7m6chBczeA5QUlMaY+jSIPIcyGBRpT
9eVoqvLCJe7lqvxBZHM9xt+zzaTdq/4hrU1O9KcH+W/nXTlUzfI6tutqgWm+B3RAoJ6fWLqXvwzG
mrudrYfYjT2vdt/S2eztZymFXIcoZg0VL08ZfM7V9+r/Tx3Vp44Wt5Tz5IKTRsPpW8ZZcvySzQqS
X3uF+xAjqvkk1LpGiLjR8CWymTRt/M6HPTSy5q+akqVlunaniWX2q1fu4D9QSwMEFAACAAgA6DWb
Ss1AaKwABAAAzRMAADAAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLWFib3J0LXN0
ZGVyci50eHRVVAkAA2T2AVnl6AFZdXgLAAEE9QEAAAQUAAAAzVhLb+JIEL5zyk/o22BpR2psgx1u
BBIt0mjITDJzb9tlaMV0s20n2bnsb9+y8dtuA5NEu0gc3NSrq+r7qsx6dfMA6gXUfB7w4I4LHu/+
ZCKIuNj+BBVzKZY7JrbwqJiImZ/gAflMrkbrSlEeQKxuvsNfzxAnSyZ8iCIIRj8ExxOUW7GEeSwG
neRH2auFPJ+jZIB32hxAsfTkke9B3XGF4mP6txOG4dSC0LIpNVLdO9ST6hdmBSJIoHBZmF5KISCz
/CjL/PVKDvzac6HO0dioh2dbM2qg5njPuDBIj4FdWjtYZc5Oi+XPZVJijOtxBwoIw+/Epu7EvXZm
lOTZG11m6l4eDphfJogsjv8gQr6SZMjHqaiXz0qBSEpPAwooEkq1zzWOWSn1shqMA69X81iuG+Y/
YUgP2Aowevj2hSepVP10Pt9CslG3MSpGiJ3CwlqEEh0ERb2vdOpdRyQ7wicS8gjIp6tPBIMNePw0
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
kAZfaE5sIq0ijZVZWVigSESy2PGDzCFg/lgCcjYFlu1YaOA4NrJd20Z7diwvTjnK4ht+Z9hWqVC3
5O5HmGQZQZSbi9H3OEzZtY8ZvrV5kCauB5VhWnoJ9Jb+ZrOgWvSNk5OJLNoUiXXSfWRyq2VbsGjh
iKuaUyXyOSkmBCeAb54WmgG3yiCyz00cWVCagLanagKxglQLLpZElWub4SknbYUkk751YLS0ZHsw
VB7UwkBeKToCgBBvvyT0o+02TPk6/h5uNpP8u74/OX5fI9rqUnCYE/5oiJdCVd08sq6zbrhRwk+6
SAVEDbESRsWiCm7aElQMtZvWIKk0TYzYCm+yXfgDketAdMxwV4VhWfQIWJQAQCr1pYJmHt8sotgA
lVWYVbkSyl/vlFWzCtP381qnGmPKjyscCT1W+IsNjVAT8CvCmvekktCtboIgG9vQn28YpFpXRJpT
R1jm+1Zf+QNZ5ur9qO9mleKYO/BN9liuD7al+mqRJVshuQbzBq4MWZjQL6/mK7jmGDymMrQ8cSrg
3uyq8YthT80xD2afy+4dzYIMFe3GuPHxw6RDEbo5mZr6QkYlKLeu7Tf7vS+wFejKD7eGWprTCGWy
vvIXXnievnaee/Hfoxc/99fn/rqz/rq7i1sGQOIzI2iNbKU7tc+VeNZb/2OB8++zfc6o74NQ832K
tz9tbp3Pd8dd3B0r2ZAoDVcfB8Mm81W9V2Fzi+ei87u3n/7ube+kwtXlo7Ia33mR0TjnlScr7k7T
Rd012U3PICfM0Cd4PACDr/J4wBoNPv14oOm57bhHBm1v1rovuC3u6hRlKusnRNzwZVBOI7l+Z7Hm
QngF9q8TaBJSkrR7Y6CciKi0OL+q+NmvKsxu+XJNa8uxnG7KWn8TqrtfllLIR6+dHYGFPU2nYbMa
n37AIbI2TLIEes3hVKTVH6mnwgJFEQkUhJzjCqLml8HTY03R5iA9lblU+z74pK8kprqQPF8Vn8dT
56vi8yjry42yjrkM5TgnabQr/8A2e/nXQ0C4ju1B0+SLEjk/Y/LlOpb3qcmXct4n/s8ynZ1Ob8Bu
TKFWrQX1/1BLAwQUAAIACADqNZtKHdJ/xvAGAAArOgAANgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9nZXQtaW5kZXgtZmFpbHVyZXMtc3RkZXJyLnR4dFVUCQADZ/YBWefoAVl1eAsAAQT1AQAA
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
yzvo2+meKVn3/JKdqf+Ic9AYFV/8a5XnYW5cXj/bw2+Tznm6Zz4/u6y8jD0rL/3mqK7d16vV87uz
2n08eK1f1Wqnr5JXscfH0dQ/jLP5Wz1a+JT5V+9rvxmE/wzDIAwSPV2q13GnFv5c8O8ZnjpTY/Jx
O7i9+08M57HfeRM/XSqvT+eczaUcG3v5z7hVfx/e9v8RBHOhTyX7cervAgUKFChQoECBAgUKFChQ
oECBAgUKFChQoECBAgUKFChQoECBAgUKFChQoECBAgUKFChQoECBAgUKFChQoECBAgUKFChQoECB
AgUKFChQoECBAgUKFChQoECBAgUKFChQoECBAgUKFChQoECBAgUKFChQoECBAgUKFChQYM7Amb8/
3ao4uX7x5erGmYv96tVqghv7bqPH2xiX3dG48Iq/WcnnyxnXZagWVGdupZ2Xnrtycs1tgyvuFZ9P
u+Sizud7R+cClly1ueh2xGYwKpDK7efnKyc/vK2cndfO6he12nn9/PL8vP4kN601Yy6W+Gf4c0p2
ctnnqpB3v9qD0Z2X8/meqWo/++3hdOzn0Q2WK2/6DNrBx2VgUpZS5aTV7HTuYhenq+9fjX+zsai2
Lbk6tFF8zZyJXvQT061lJvHkVtXJVaW30eM99oU23+c+Y12rXdq3ECBAgAABAgQIECBAgAABAgQI
ECBAgAABAgQIECBAgAABAgSOUWDu31Zv/5gkW763ZKX6mm06k01RS3bn/BX+Pd4TM/gQJdjLE4Sj
rRqfmtHXhdtmkv05bHX7iaksyUgzCJ50FvzOyx+PjGk+WLtRT/PViyXoE+S5/NLZfN9AnTp16tSp
U6dOnTp16tSpU6dOnTp16tSpU6dOnTp16tSpH6/6IeyiOKydKVxzzTXXXHPNNddcc80111xzzTXX
XHPNNddcc80111xz7Qvs3VyTTViw2b/YXlL2OfKcoNokzu42vh5fWyltIaBOnTp16tSpU6dO/aDU
k9xcmPIMrul7CsmTJ0+ePHny5MmTJ79B+eXXfn+cesGQRBJJJMmUZKYPanUfeqPVyeC2F/ab47j2
Q9h/3+6Hcb9U/XV1f39/UQvva7WgejoXPaU8fbT+pzDu9QbDm5tu9Pl7qxUOBnOR3eefa0wyEDU6
7TAazggE7UGvOWx9e/cj/kvlTeX1bJ6uFuSpF0ZBO/q6zk+9uijWXQkECBAgQCCPgE1xe+N6bVkn
2NGVoC5kxaY1ESBAgAABAgQIECBAgAABAgQIECBAgAABAgQI7KPAnu+JtKDJNddcc80111xzzTXX
XHPNNddcc80111xzzTXXXHPNNdf74tp5LeSPUT73FQcLsrHpriG97XWdSRF29bdcc80111xzzTXX
XHNdouusrwGHMGegpnLNNddcc80111xzzTXXXHPNNddcc80111xzzTXXXHPNNddcc80113ZaFL3T
ojBG6jbXXHPNNddcc80111xzzTXXXDuxwrEG5MmTJ0+ePHny5MmTJ0+ePHny5MmTJ0+ePHny5MmT
J79R+Tjt3I3oyVRW5Gz6cvb5+9YL3ameJBfpVtgX5TnBqnvC7K5ZnE/sZvn6fY4SXbv0ny17L/Hl
1jb7TLg+bNe70X5S9JBLOOfrj1J2mJt/xO2L+pq6vLyc836D50mzcyOP7HfP9Iq5cUbfVuhgMFGh
pnD7UlDZ61uq5p2nPuS+Psq7w87VhzwtOF+bXFLY2WtPivFkic9gPfqR9Oi7PCYreDbouFrwkYyi
teBDeAbvb4lpweqDtypvVd6q9OhG0SWNotMVSTENvLiZzYS5T9289eg7s/a2G6MmLdhSMtdcc831
7o/5j+eZbm7b6tQR1AdvaYdSHw7gOXYoe7yOZGbMPMtOzLMcyW4G4wfjh70ZP1hZy7aydqjPi6Pc
gX7gK612YtgNaWeO+rB/9cH8pH0ee/AGYPygf9ij/sHaJddcc12Aa4cgUKdOnTp16tSpU6dOnfrh
qtsNZoKBa6655pprrrnm2jnW9j5tuZ7aT7aZ/SI6S6655pprrrnmmmuuueaaa66PwvUmvh5WHbjm
mmuuuU53ikKjG0XheEb3S/d5hnh0X/O+HHasOnDNNdcHs9y8rkNWHbjm+mkFP+PoRXXgmmuuueaa
a663N5rf4wF/4uHXyl2JGUdwqSBv6pWr8AFpMfNzuQpK58A111xzzTXXXHPtFWYT7yc7sTS9ofcT
SSSR5OiSbGDu6Linl3Zh7ujwp5fyl6MkkkgiiSS7mGTm0IdW96E36tuD2/jp1BzHtR/C/vt2Pwwq
J9VfV/f39xe18L5WC6qnc9FTyrfR48+N0nwK40ffYHhz040+f2+1wsFgLrL7/HONSQaiRqcdRsMV
39eMfi7TfTOVk1az07mLH3mn5MmTJ0+ePHny5MmTJ0+ePHnymeTXLVxs5Oczb4TY75K1eYVrrrnm
mmuuueaa65yuUw1ZVQyuueaa62N1Xd6kRREPolyX3SSYZSrk5NyldvLe9mkKkzx58uTJkydPnjx5
8uTJb3h7yIrphbwvxrnmIpQcefLkyZMnT548efLkye+6vEMuJJFEEkkkkUQSSSSRRBJJJJFEEklK
TzI56jJoD3rNYevbux9hNKy8qbyePT3zasHpmb0wCtrR13Unb9ari2IXHLu5KLu9ZQd/EiBAgAAB
AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSOXmAH7w2Nk85lO9k3NSu+05kGQJ06derUqVOn
Tp06derUqVOnTp06derUqVOnTp06derUqVOnvmV1V5JyzTXXXHPNNddcc80111xzzTXXXHPNNddc
c80111xzzTXXu+y6uBXTcvgtWodNwNQiNnXq1KlTp06dOnXq1KlvUN3VbgQIECBAgAABAgQIECBA
gACB6dXcpcvfa/XXrY8n+327Brjmmmuuueaaa6655pprrrnmmmuuueaaa6655pprrrnmmmuuD8V1
+SvhpX0hnWV9u6A19kQFk3sJPksGtWKuueaaa6655pprrrnmmmuuueaaa6655pprrrnmmmuuueaa
6zJd+yKeAAECBAgc5UEnpe1y2tj2tIw+sw85VB4CBAgck8D6U7EyHqqV8OVz+QnfQTv4+NsTIdmp
4ZWTVrPTuYt/8JQ8efLkyZcjb8KUa6655pprrrnmmmuuueaaa65Ldp3h3T4hJxMk5MmTJ0+e/F7L
pxvyZJj8zzM+ymqntHFkGvtJB1PHVCUKy8x0Lcm7IlVujSuiyezXgD9d/SmlSuR87yq2zAqpU7u5
I6a8Pm67z6UiuwE1bj9q3E49VT329rlCH+dTtaAKma/Ei9pKWsh88tE/9o6nSuglyugltvxcKqHG
7c1Ay+oRefLkyZMnT548efLkyZMnT548efIHt6pon/7mXVuN3Ps9PltaG9L8ueaaa66P77FOnnwm
+Tjt3Dl9yVRW5Gz6RMHM6vqJxUxTnIib8xTc3agH1KlTPxT1ZCdrpzg6NsVe1RzTAKnOS0+S+7QT
AllLrtjdyYVtSS65PniF4Zprrrnmmmuuud6gay861KlTp06dOnXq1KlTp06dOnXq1KlTp06dOnXq
1Knvw7a9VTe/p77tvfQ9hQWvk25sP3WZxyomLp3DXHHPUk838bmn3Z12++7gtzXZCWVvwepDxvqw
j8+x/COPdYWao5XkODC6V+jJ4cV7sF/f/j+u9Xhpe7y8364aw+7gmGVloW5+0uIA6sMBz5bs/XkB
23inMQ4ow7UvbUt4jjW6URSO8/Kl+2xxdNBI8ong7AqTYk0msbpqZMhGqvgUL28Z7Swp6uyCijpb
Ue9ybdhIUXtAcX3crg+npzr8R9t+PLeOvKh34rl1fOW4g+3RIHEPCslg/6geoTvR9R5O77y1vsHr
ANdcc72rrnepB5ak6MewIYqJgGOqDV5fNjEt5HHONddmNS1EKGpFvWtFbUHJgtL+Nza7jjbwJa6H
39Yn//dlF+BRvXwfft+Q4brlnB/SzF8nvanLoAvJX/qXUhd471CZudM9S5XQS2ymxhX74UqCQk79
DUtyomWVeZEVMl+JZzqPIFn+8lTHPb9kWRe6913oQc7ll9BLGKpsuZ3td+eqQmdGd6gDLWNvXeiB
D1WOeuxdRo07+pfJQvu4nX6qml/YRpXYxLG1WXqJEstsIyPf3RoJFftcMhLag6WQXZ+F9DpmwdTr
mE7oQJZCdnXmWDM+9vWlo1uk26Uu1Mukh7ZhYnnPl2N+MTEKVaFVaK9Veza3E8fN/EKr+9AbZSe4
jUutOd5e3n4I++/b/TD+1eqvq/v7+4taeF+rBdXTueipDei30eOu9PI+SvoUxpKD4c1NN/r8vdUK
B4OEX0/MZLn77LMxcR41Ou0wGpb+IfM2lx+dLuGsEeeSOjrdx+HO1lQbdB97W2H0DT6TdgwR11xz
Xb5rgyFDY+/EroE4sCbrzUOT3a9TtDxlD+Mp62gcG30sIx/Xt2X2fm3oCAI1zhkBm93fqkLb+7Wt
L0n3/vMMp4sZJm5/fnuyrS5oD3rNYevbux9hNKy8qbye3f93VT1N84o9iyaMgjhv6/YY1qvV0/Tv
3jn2MxbyWr52R2SC9/Lkexsz7vNcse3R97jb2JfutGyzd3YDuVfhsC+/sPHLmWWHdRqR74fKeGHI
N+gv4PVi1Zg+yztFnqX3hC8Uqzv/pW8UBbww+O5vH9vt4V15naYnytNnlP/R5OIGm6JN7kS/XPx0
Svqe/cBPZiyxT931uUpTxhkbUVHjlwIHKInHmJk6Q0sF25xBKvIzacsWWUcUG6lOli2ObY9QypZX
bG1IOWZ3++ZuXvdydGfQpByvZTqixhk0uZrk3h8VmWpOMHHPXULHnHUwVsjOjoTDse0MqMp4a8pK
e20ftLlZBTd65upSD3spfa+3AJvCzvxCt62moshyrDqggQYaaKCBBhpooIEGGmiggQYaaKCBBhpo
oIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCB
BhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYa
aKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmig
gQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEG
GmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpo
oIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCB
BhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYa
aKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmig
gQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEG
GmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpo
oIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKCBBhpooIEGGmiggQYaaKBxpDQe2uMcvG0Om3fNQXhz
87Pd6TTG/z6VtPJ6lKjRjaJw/N9fuo/ux8aiiYFGM2qFnU4YpE/9koHBsNuLrZ/Vq1e1+mX17OKy
dn5dnU3T6nQH4e+JaufLfjZ4Cnz528dHao2Rzqz0Q/Pvu3D87x+eivi33zm7rs+BfMrz61f/D1BL
AwQUAAIACADxNZtK+VAb1fwbAADt3gcAOQAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJr
ZXktYXJyYXktZXF1YWxpdHktc3RkZXJyLnR4dFVUCQADdvYBWffoAVl1eAsAAQT1AQAABBQAAADt
3UtvG0mWBeB9rfQTuGsL6AIoibbU3nXJLsDAzNhTru49TaZtTsmkhqRd3Zv57ZN6mjJJiY+MzIjI
r4FCw1Sek5kn43Ej4j7evPrlfTH9VkxfvpxcFuNXv/xW/O/XYjY/748HxcVFMfzpH+NR+cubV7+8
6s/7H/qzYt2VnZ87Bz89+9IfjQ87K0CDyXhcDOajyfj8YjIrhr9OJ1/OL0bFeH4F7Dw76nVPT3ov
ukfPT0+PXpwdPkLV/zCZzn+f9sez/jXh9Z3fPPkmz4YfVtJdFtOPk+mXv69i3e7t/7P4Mpn+u7z6
l/7gj9H40/v5ZLrB8w5vuc/vJXpXjIcl/lqp8uoFbc66vbPb+yzeZIH99n7PDpcf/vsNFr/H4s1+
+Co/3LrbXfeK0/Lnb8XbD/9TUl7/9Otk+s9iOrv63J/740/FtbpXL/3gSQeTL5cXxbwYvi0/Qv/q
t99HX4rpr6Npqeiz7r9OP378+Pyk+HhyMuwe3t574SaldMUV/LdiMJkOl9gvb17sKe5edzV3fzhc
Q1w+9pfR/O345gNe/fm7sr9P7j7rzVULwCdf4NGH2ODt1995qSmseJ9HO+8PhAvNfcfHBQYGBgYG
BgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYG
BgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGbgb8
53Q0X6xy++toPJp9Lq7r5P5a/lRef3eHuzq3d3WZVxXzXXHl+nK5w9Hw3XZFpUfjb5M/ivtKxX8f
DxdA13WLnx0+KBm9/DgrWJd+ena4WPm4d/Kie/joi3zuj4cXxavrmz192e2/799iVj7X75+LadHp
l/8d9bpnR2d/O33R7dwWZv5pO6p3k8vLYtjpjzuTu5//2hlP/uzMH7vHU099/nU6Lcbz+zs9Argt
FH6LuFHlHnfTJNaUGL/5XIslsx+5zeSRVnBdvbqaL/H86Pi7Su//+z/K7rJU1vtTMX87fT0r2S7K
znNH+2b8cVIS3pUtL997DXz5tTvXP5X/6nwcXRSdvxz8pVNKNxzN/ni8O71aFnCx3vVV6fIl4Krm
9X9PdonudZdYNwrcPcn9PcoL3y4WhL8qhX5TGf6utPmKSybjhyzvvw4GxWxWPsrPncFN6+p8u6me
3hnNFmuwn/ZOj68I76lK6S7788Hn19/uarY/KJt+1D18MOBdFa9f93LXhe0XRpTOs4NSm95p9+x5
7+z05MWDAWjx4p2GntNrnVc3//FywfqqRp/TF+FHn4V7BBt9rlrU97FnUdnjD+U3XzcQXYn7oD9e
Ibvl/46edz88f14i9xwJHu3Fb3+4ezUf9ey4121Q8JPBteBraUrNpvN/3vTm8/IhPi1aJcuN8HuT
L8e1adGfF+uw133058XRofe3vx2v/fQfik+j8QL8zcNPsatRsqa9/Hi3R22rm5ax5Zj6/TkX/lHe
5vxKtKsZ5nur7Pw5mn++H1EXh9Pjoxedwf0jdb4Pdldf+GOv2z3+cHTy8azb7Z2enBz+tPmHvXnb
hR+uH3OFIEtTwz8uP037w+K/imJYDDeaErpn5UhU/Lni98isjO0nru/3vOkLCyZ+iXl20Dk4XNJ5
6cprmRfXBpdfy8Hs78PhEvS2nb1b+DsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAg4J7AB3+/rfF3XwzweyHBB4X9et3uBhX73o5vakOuqxi5ssTfQ8q7
UpFPPdDJsPugsO0y9VIBxCeqDa6vm7ji2jXFOu9qjy4B1pTbXFUdsT+8+iCdt+/vCmC+edU5Oj45
6j0/Oe6dnJ6eHJ9tVMP8fF9FOs8G/YuLD+UDHz5e77S85/mqL7umaOh59a3gAXrVLRZb5oOL7+tp
3hcpfTs+vxgV43mlXeWufz7VQ9b2YwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgABB
GwmWfnvc/eP+svW+JY+yP+ES827Lp1jjMPNH8e/X/xrN5rM344deM+UfOgd/7Uyuf+zMrn9d8Jp5
ftrr7fpmYXXDjh07duzYse/GvsZYGBZXDp2/9cefriyE6fX/P2YjPD/uPkFVDCbT4dPWRu90PVN/
ONyU5nnvuOerY8eOHTt27NixY8eOHTt27NixY8eOHTt27NixY8eOHTt27NixY8eOHTv2Ctg39fLf
JEHlliEBi+ko1yeXXJvodO+cku9WxGD8dpNd9eXLyfj918GgmM22TDB5TzAczS7788Hn19/Kv3R+
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
qbeinSPHPa552BMn3cspSYRtTmRSQ0lxZzO/fUDqRYlvkZRI+iy6uqwA54IfgQuQuLi8vf78IKyf
wur3teF8OBrOxMA0DDGe66ZxLwxNN54GE3MmlI9KvaV2m62OWm93e2qrd/bd0P+7ELfXn689Nfv9
sS/lxjJfBhNdGHPJq+0zVfXsNqw9DkI7vCXL+pFtOH8Z6saF4oFGos5dJPn/1sWZD0M3fpo/xN1U
WEMbdGVo36yhMRs62G/6i7DOL9wymFNhXH/+KiRnNh8MjbGYTITmR/Yvabcsc16wRGbIhd3olrQU
XPd5aGgTsf57I9FMmvz2LCyhDOV/UuNevdeuN1RluuxZ9tXdSDOm9Uv2GjER8w1jffHb/vDN3PQv
35Ih/+rTYs9P5xfKufpn9/Hxsd0Uj61mR70IlWt1yY6xbJT51O1slUmGujenU3mDh4ayuYsfFMN8
VeZhNqJaPVhYlhwhG0shFWSRR9N6WdVYqrKpt+x42si35vJ2fR6Of8gmPciuIM4e/vV3fW6Xcv/a
7z+J+Z31ZSYrTvTZ85pwazya0sDa50hLAdW9hhTnJ/mX8qhPhPK+9l6RjdX02Y+QK9V07drbZFf/
G9sOxlPR74b+L7ITqk4nDBoG65ZsbMiCd+6h3+9bKx9gvkztkppPEdPYpTwsxmMxm8mmfFTGy/up
SHsz+0bqM7fP7ba6DRu4QUnppsP5+PnLz41j3V5Ns1lXL3ZGvO2mgi7OcWGuMayc16Q2ra7aa7d6
3WbH62lDhI7UuevoHORJPVNTVuO928l/vLts5Dbe7R61He1uZRsjec+Dhr4t7s54tGvKeVz2LXXU
bsuaKT1B6Ci+27OezU3tNVrqCQVvjh3BAzFSM2v++3I0D2QjnoRrqo9YjVliOBdBdb0rstanT400
y6gAl3fnHuvxHN7WtusP2diBfUW2+992GeVVnz9v3J3b1zXqHWW7ilS2nsiW/7Glqo1Rvfkol6Gt
brN5cRZf9aWDd/3gNHNPWl+//X36ZA018U8hNKHF8tdqT7oJ8erze/EWhklmlSAPMxJPuuFq860R
Z6GxX2t9A1yPE85YuBv9R/aGpev6KCcopXbhuZWeks6d3P65XpfcLIzlGNwHrDr0co7+KsampXkQ
04X0h1eaFlT53vXvhbFNRSpSkYpUpCIVqUhFKlKRilSkIhWpSEUqUpGKVKQiFalY9opjc2HMg2oN
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
XBH3Q7HzBlBLAwQUAAIACAD4NZtKGnPakeYKAAB1igEAMwAcAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9pbmRleC0xLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADg/YBWQTpAVl1eAsAAQT1AQAABBQA
AADtXU1vo8oS3WeVn8DSliYSGPwR7xIyiaKnex0lmXlrDO2YG9z4AU4mm/fbbwM2bkyDwYHYjs9I
kcZQXXX6dFV1Qxdwf3N9a5iB630MhxZxSEBujMAYGz6RLqTzs/uba92llJiB7dJn94l4b8TLkyw4
+4va/1sQJrM6OhxmDrXaUkv+059MJl2VTDS1J7dZy9bMsGlbEiiYGtRyyE1kbLvY8vdoTjwj7IzP
cD1PiUckg/0pmjxQBpf9nizNCbVs+nJWTdWDO58TSzKo5K4O/5Co+y4FRTa2odYXnkdokFgqaMBE
Jq43W7aIWUnaRWPQssbClvFwXRvmK4P0xFyhiE3Ltm6y8tzgm47rk0xDEZv/3+oBcuQBeT64QpLY
YIKsx/Tm+pEwvX4wHHrxf3R3Ng8lLYGIS9NanhamSXyfQbmQzJhMidnzQxZtPxzEvqr1ZKXb72v9
TqgwUWXZ/twIzOnPt7ARo5zvjaoqcjsUT8KNOQrN61x4jg8gqXXOuNH68qCrDfpqr81TzgvvFGn9
iGdBS17zGmZdwdbvNR9snI3Ggi30qHWo8cx2xmzM8+IuJJePoqilzP4p5njQ7YYti8JwtNG8nlEZ
dDR5j4yp5riw335geMHvOBx1BuKFPHsG9Y3YLzMN1j7LEpNHjIDktY2C7IIPb+3yspM7dmPyYlOu
+X16KP4iMxbirAV/NNtK5PY2fXNf12N0RS2uwbM9I16riCC3oOGt7bEUWIubdJXO2k3yE/SIz0zl
0vMaDveDIdDD4WPWJGt17Fx6t4Npkpz5zNxRepKZQJLWeTP0tYkmy52xok4Gsqz1VbV9Vt7F4umI
OxDB3PAj4Szza/7iGRb5mxCLWKVmF3nAkhp5FxzfYdZZ9y+Og9H4H0ZOnHcu2OwinbczPctIRh1b
/1xJ3FOL/AntvpKPByOYDqXzH9Ii8q+hpClqd6BomvxDmi2cwP5JAzb5SReKqimXl11ZybMbaYXF
L7E4XwQj78qyMo2WEfrAnUfDE28YudBw+EKCPOk7Evw2nAUpc36t7T/ko16FgAd4gAd4gAd43wOe
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
FsJCWAgLYSEshIWwEBbCQlgIC2EhLISFsBAWwkJYCAthISyEhbAQFsJCWAgLYSEshIWwEBbCQlgI
C2EhLISFsBAWwkJYCAthISyEhbAQFsJCWAgLYSEshIWwEBbCQlgIC2EhLISFsBAWwkJYCAthISyE
hbAQFsJCWAgLYSEshIWwEBbCQlgIC2EhLISFsBAWwkJYCAthISyEhbAQFsJCWAgLYSEshIWw/mfC
8tdrN2lyv1Tv7mo1Tr7PFVXaF+j36J1yOIrCzVL68cipmIbacLWUYr6SUR+7ZCor1V03DYVrL4u0
UnapNELr3vXccHmqtCpHc8oknnWrVPUi/zRTHRhmX9V6g76hmq2Kobrem/8isv114zm5ZpLd1uk2
3VRVu6d041QkQOWo2zVlZsHN3A+OpMrCjVN9l8oNq+M3BJukVkPdpeU5K7H7nE1bKCf7aSnkuWnJ
PzntQ23Y03RV2eZvxayEGyuyl3dv29NGNuVNbr8I2WEYpcE8vtq2CMObRSSCbyII44NK9v8sxtvd
muylaa5WodVkDxQOTE1tWsp0X/8RByhHXOjwYH2rGvDz4x9bni1WKzmTZ5cuzFIY+ZtdkPs12H67
39x9Qx+qxTL2yg/FYSFDrw2/lFcP6cKN43aKTa+tH3ORfD/dHq0H/WhD8/R+koac1r9QSwMEFAAC
AAgABDabSp1JIJ+6CQAAoyUCAE0AHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbWVtb3J5LWlu
ZGV4LW5vdC1kZWxldGVkLXdpdGgtb2JqZWN0c3RvcmUtc3RkZXJyLnR4dFVUCQADl/YBWRfpAVl1
eAsAAQT1AQAABBQAAADt3E1v4kgawPE7p3yE0lwGpESysXkJtw50NJFWS7aTnrvBRfDG2KxtkunL
fvYt22Bs/AbdHfVq9D/kgKm3p+qpql8O5mF29ySDNxlMJrZj3zueE67/sDzbdbyXP2UQOr43XVve
i3wOLC+0lpF6IG7EVeer5/xnJx9mdzMrshZWKKe+58nk+7am4vrqTze1kWEONX0wGt0aw053Yzle
T5QabmuuU1HD8d78VznfysCKR/TJs3Pjf3Y2Muj2Og/H2P2t9GZ3X6RqJ4ymlreUrivtqparSyZT
8oHt2aVJfpSerWZi6vqhLE7mWDPHzcuzrGzlPvA3U9eRXlReoLGmac3jSZqwv38kaf3WMdQnSUtT
3Xy6GabZ+5G0yT2dTLbpHGa1knL3TqBmo6v9NVqtVgNDrgxT03oNw/cbOk0aa6i7jreFPHzOBhKq
wJ/XMpDCUn8q/rE+Huh9TexHHEdyr7rxg29qRaUro6yNQ/4d1+rZz9a+smTDtxUjLj3q9vKTZRpD
radqtoacdPZzZuZ2NDzOzGVNPfrbrVptyxPZKl4Lz38XUVMfbaOe7oJAZW/WU0MFVWTlB5t9jXRW
snrJGnTtRfXRmpS9s5avakhPKhVk5+lf/3CiuFT+6WTyIqN58DlUFV11Eh9aePBWvurgcB6onmqq
lzsSySP1SawcV4rfr34XarC2E742XwWz8pBz+beMN3+pYtWC/rc1CbUkCeu2wWEkWR+q4Dx/mk8m
wf5Y9zfbuKRdUcT3iq087ZZLGYZqKDdima6neEuvO+GEhUvTHPXjBrOm1NRtrWi5/vyWHXq588fQ
tV5hx8c3T11wya2U28Oie6Xmxhxp44E5HhnD8uXZMNGt8zxK5rnucixdGz9rv4+GH7/fc3182H6P
M+q42/Mz21/Ed07N1o8nt7Af45rqjlW5pS0GA1XzB0+Cxl08P+n95yzquG9qv3DCjeWi8ZJXcxZE
daxukVIgrUg2kbyoJfP2tl+79Av54ni56g/FpfheGdXky2lvjbhIM+PCM/U4ztwH1c00nrT4hjlm
pXh3onV2ouaP074+FEdEiuNhF6/wSvGtv9CNlVKoOTKMXuf8hU2jLZix+PkwIaWr4ev2JbBs+U8p
bWmfdSVoY3USyfeK5/9/9rzw4spRP9kL88W/1VKlR9eNuqDEVdnmpZLJNB8/Hko8eLb8K+73VX57
tKL1RFxdi10S7USYujEY66apXYvNzo2cz16k7k9xoxumfns70PS6fpNWOxXeOhlQoWplCWIndmIn
dmIndmIndmIndmIndmIndmIndmIndmIndmIndmIndmIndmIndmIndmIndmIndmIndmIndmIndmIn
dmIndmIndmL/e8f+3S8rt07I3Etf26l7madyBotNHt7iaRuQYWuFdw7LTZfeTWlZzIY3yctla96j
OrwWVqpQ8yZUVfJZdrwgYv50eDfpYSb0vqGbA6NvGqOR0R83v0n3WDeIC2dEdJeW6y7UgHutv+4w
rVrZmve5pj8/C4pJX9FFPjMLhbNXnbL3x+Ze+isBH7BVkj183ibJtnvV43MWMi3ZltT7Uuekc1q0
MZHTk+9G5JMol7rDsTm+Fmmhk8ed7M285S4I/SDNfNWZUGOKD8jfrn7rTNOvnFAsnGQphOu/y0Co
czZ5W9zybLHbbo9PjqNNq04mlv0W/6RG8urc1N95UX4gg4FmXp8+ECsZLddqjQO59AM7/I5RnL9b
L1zey3dollaNezMr9RG7srQJfsV+LF2Mbbuy8iat/7J5CcvlG1KkXLZ5t85KFRp/gaF4+fjJJxGe
bt2RNuo3t/PV24XSvnP9xb3jyi/7zXJO6s9+dPYu2QazqnVs/DmHD72oZk15+Osuqh81HSpDZagM
laEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSG
ylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpD
ZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWh
MlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQ
GSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2Wo
DJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJU
hspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkq
Q2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyV
oTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbK
UBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNl
qAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEy
VIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZ
KkNlqAyVoTJUhspQGSpDZagMlaEyVIbKUBkqQ2WoDJWhMlSGylAZKkNlqAyVoTJUhspQGSpDZagM
laEyVIbKUBkq+5upzN9snKTJ41K9O647TZ7nioqrD+i39W48HUXhhix92XKQpqE2XJGlmG9U1G2X
ZWWlumuzufBlw81dJpXNnjMbF90oVb2oP93URoY51PTBaGhoZqdiqI735r/KLFE+eXaumSRtur2m
W6oqDUq3TUUmV476qqbMPPi08IOWnF858Z497MmG1fEbgk32SEPdtTKFKw+fs2kL1WQ/r6U6AK34
tDa1sT4e6H1N7DdixayEW0tp5vPb/thQTXmzuy9SdRhGaTBPu+VShuGnVSSDP2UQxieO6v9FppOS
yCmZhqxWodUkBwonn641LeW94znh+o84QDXiQocn61vVgJ8f/zSWneuqmTyNW11n28OwL2vmuAb7
No7JPVT/iGnFMkvXD+VpIaNfG35pXz2mCzeN2yk2vbG+LWTy/GF/Rp70o4/N8/tJGrI7/wNQSwME
FAACAAgABDabSqDR/kc6CAAAUnEAAFcAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbXVsdGlw
bGUtb2JqZWN0c3RvcmUtaW5kZXgtY3Vyc29yLWNvbGxpc2lvbi1wcml2YXRlLXN0ZGVyci50eHRV
VAkAA5f2AVkX6QFZdXgLAAEE9QEAAAQUAAAA7V1LU+M4EL5z4if4mFRBlV9JTG4Qht3U1k5SwMzd
sRXw4shZ24Hhsr995Wek6GXjGJgZHagidqvV6u6vH7Jcnl9f3YH4GcTTqR/4NwEMksc/XeiHAXz4
DuIkiODs0YUP4D52YeJ6KbqgnWunJ99g8O8OzK+vrt3UXbkJmEUQgvy+jFU2Hv0Ztj6x7LFujCaT
C2t8Mti4ARxqFGMZuxPGiAA+R09gsQWxm0l0CX1M/vtgA+LB8GS+X3u0BfD66hYgPkk6c6EHwhD4
LM5sylwlPfLzKSUvAfSRJmZhlABSmY5uO2LzeEwuN3G0mYUBgCltIEfXdbE8OQv/7ZIU46Uy8J1E
wmqAu5tl28MuboNdnU63hQ7rUTndTRAjbQz0H5P1ej2ywNqydX0oED8STJozw9XvZSukmLBW9B91
bTAkxNI9fVj42g2aMYpfkXFBCFJQ0VeuuDfbfVS7AZNScJchoURA2xrnAvI195gFBXCdTyYnK3/X
1kqQXPePIAaai/6QkziGczEZ61pp1pN2rJbRdosM70KtNuiZBqMXLRXNIZN6totj5Mj1TIIBiGQd
xZtyRKGVelxug4G/YkfZnPbK9Z6QSHfIFYA4JF/T9L24qG3plYsyfbCSpJ4DES7wqDqdxmV4jTbb
jNJnkESQ5HK38zyQJEiUc80rlKk9F2lHCxIiedkTM2NYs/KDZOum3uOX5zr4YICzDH1IwC3LALzF
5dkBA5A2OEW6sSe6M7KdiTWmk5hA0VI9T3I985IUFb6PBbbJuH+wYXP0BrbMo/ZQwzVrrrLYz8Fd
plwcRflIlOt0w1s5o5EwayDnXxwMP45VHNPWP1BjlrcSrjtJ3Tjl1aeSkiMGbgpEtS1ZdtgXFybX
divwEEBs+Jw0xVtLjL/BBoUGNA7nRs/WqZw4ipuMDHPvJvwAvcAjU7PwvBcH+4EkmGXmQ7NpVQmK
7PUSpI91cMYjs2mMtX1dqO3jZuZra1SRmSvDWqPC0p5Y1vCkuYsV6YgoA8nfVS1EZZlv24fY9cFX
AHzgN8ouuoOCGnhhXH9D1sHq5RwHi9U/SDlF3DlH2UU7pQtcijJf2P5nRTGHPviRzfsEXpdu+jjV
Ts+0Xe5fU802rJFj2LZ+pm12YRp8gSlKftq5YdnGxcVIN3jz5lypGbe7dBFf+j41qPSlJXb//Qcq
LbcY+OZmSqrBBSxiEC8yMVVOsqxCkkwgy9eJWoxmTQVaifUFnS5Ny0lPVbalBnASDMtbXT8ziLa4
qwLt/FozTMuwR5Zl2ubYNO2SHc6LWBxi8RW8YGzrFCca8uVHkGSRnpabcLWXOEjxsXdZ3BbmN5SQ
ljzFtLSSNvDcMFyhVQylO2IzlrdxEubs+J5JjGZNgaOFIK5riTpBL2Cxs9IDfPNA1Ay4dcxiXW5i
yIJSBrSSqgnEClIhuHASXnRvhqectBWSZOs9BEZLTbYHQ21BIQxqqj4AQPnbR7h+lS5lfs9Nqx/P
4DjJl5pG7Hw1maDhxASmuEtAXVcpHEQ/AJgZG/wFXr/uNiu0Vg4hKtVyDCZziC84gNn/iBoxmMM0
uvPiYJt+d8MdN0MXm3S3+XMPRhBpdht4UcxdFIoXJUFD3TPm2fN4o2F6MbvHK4OyEICGxNFzkHVg
bogMn19EdvnIum0pX+c+ZLd31mZKxqN6O/fmx/VaVhECjh7wl4wYh3Xm5Y5vyxzQtP+e6N2eHPUf
D7rpWxpNhGGiCRBVsO5XvW1iTPvQ0bpF7Vmej++AG4TH3pvkBjL8BGH412v13yurqBzbqzbUHova
Y1F7LL/xHkuPjW3TcriDFI0r6QbiqmK7117mGDsEHFu0r60/feP/Ls00o+zp5lifemNC6O7dLNpz
J/hr9EAfWyZvgpQ89/AShOEsvy4+NdNNk92lllbBh2sgamHqpqSOKxQlOsN+qDHRgd2qLGYO4hXI
AmJueVsMqstg4c5C8aIG8FvRNiqXmZI3UXirmpk1C3kgcGzpdpeXB3h1OMvTqHqaATWm1KccGhR1
VlEsAeU6yDrVKsZ8vlOGB1rBgh3jyF22mDKeXq5TEBNH+malZ1fH9d58mi4V2I19MpAgQXO6qxCB
QRaPasIDR2FKgqZCOSY7IY1+PgMtFVo9Ehw9y84oz3ZxEsW8E10LgoLj483eL8NDLHO9QhCzRjDe
OHNGYxaIAURXdvK33dq/YvY7vl53vOb9nd6xOn644nPMQekSCfFIx8clBcOldOKf8/x5kyrisjel
iysRJEE19bzp6xqf6wx//shIUp7kNFTlcTiSkXu6xIZ9bpIlTzKLMa6KbYgRCo1WE4lhiGVMDt6i
QwosJxfXp1POjbqoJ9L4c7a/chPFTZ/3LtqrpllnveDXE5176wXbH0p9JSD9A6S3INmFKfbyxRN4
PagA36kLr+TyIpgGEFlnBwuQDNKokIpeJOqist0/jgK7YIngLIMTJQb7hthzSFq+Ux7QiaE1J4g5
6AoYRAyAlWRaZQ4priRbuzFYA+QVR/H+Jhiev9UYzZA8F/piZzDPuQ6p8KzwrPCs8KzwrPBM4FkB
9rcGbOM9zaA68lI+u2y7x6ka2PYNbK5qsnXFLnV+Pqh6WpUzVc48JMIxd5gtzzRLNwxzMnY0L9pl
Z6lV9lTlroKugq6CroKugq6CroLuJ+pZVY/6cz1kVe2samdVYlWPdFS2VXhWeFaPdBRg1SMd9UhH
1cCqBlY5U20uqeypoKugq6CroPvJXtHHv4IRbYmXCceW6egH3zigvkGHiCyTa2fht+xI1hv3dQXy
6/PSXAfzGI5NLbaU+VT4USX643xHYvM/UEsDBBQAAgAIAAQ2m0qt0OkE+AgAAPCDAABPABwAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL211bHRpcGxlLW9iamVjdHN0b3JlLWluZGV4LWN1cnNvci1j
b2xsaXNpb24tc3RkZXJyLnR4dFVUCQADl/YBWRfpAVl1eAsAAQT1AQAABBQAAADtXUtzo0YQrspR
J/2Eqb1EqrKrkEAP62bL60SVZKWsvXtHYmQTo0EBZK8v+e3pAYGAeQCSsLS7c0htBD0zPf34+gFj
Jrc399h7wd5oZJmBOTd9PHYJwYvAdskME8smj2PH9TG6RB1DG+hGX+v0BkPNGDa+EPvfDZ7c3twy
I0ejBXeWO89djR0bkwDma+bn1LTGZMePu8bk9uYzhjX8YGySBXYcbLGriijpCnXM9+CZxDeTba7W
Dg6wNV1jz6TXHuwV9u5sDwa0tG+D5XLZ0/FS1y2tzYxeR6IpGmtonLGw8soOpiTaHr29E/+DG286
okoNTEuEvckIg7Nko7UybdJGHMExE4Yya1lzLjXseul6qzF30F945XpvQH9jLp5BRveB6wlXiIjT
lBy+W20J55ZtzWTslBEMai1Mx5kDF225b8Bi3FWy/tDXNYNnnTZ5cZ9xYjPXxEpNE1qQdKeuZGBo
epKxTyaxHBz/TljwgfGHJ+xhZMJ/sIVhZ9jrdDW0tW+RcfLkwNh5QtTIK4yVYVNAM/Wu564nI12Z
b3McQtRk61FZZQz0q65wG4yKw4ksZitLEO+UjLeQQW/fwS2wXJgD00sxPzHUcFfjUhbxsj98R+ML
gVsGCtKpWhkpG0Z7b5tPi4EVEmdW5lKrncZdQ+9rbYpfRf4QLnYct7ka9HduU22qmbteg6JNghIX
v0DEfUWBbI0irscbzwNVJStJBsR4Ho2IpJKMk0aCSF1p/G7c//2nHWAG/x8xOPNHHwY6tv8UzzAh
SxcWiI1fqrNT4J9gM+y2UXgJfqGl7WD0a/NXBKKzbP9ZHrtuWQGm4zz1O2Ygz7z+K3QJLXQJMaDf
ZjyPEk7T2dRo5G3Tqjhx4pC4JDvL/WaxwL4PrFyiRWRdCNbzqVnZfgamjUEI08lUILq1GSyePr4k
eJNOyjpRYpXAMM38RJsLs8IUoqBWE2RjDLRhzxgO9H6bSTYlgi6U8yCUsyg5ZRD7WOgz6NePPqk1
akMfalE77ElLtjsHnYuAiAo34490JIQ3sC1t3uvByNpwCXxnmlv9OEoddg3thALXF6HAhdOAzLzg
a+TNY2DiEUsLkkyS4mEzwKKxbKJiXEESJ1L9HD/aJDV8klXFvkmJwF7yq0kzvsgyKmLqjs/UD1hm
TIVGI8zOKtGrHTwliJqG026nj3b5G9qBHdXwEurS7ryjLyEBNAa63m6UVyynlM7+jgXChIYv60fP
tPAnjC1slQoJ2hCQCL9yrp9fmVQxcKWy7NAXpvN/QFURdF1CgEJNTuMgTxmKefczppgQC3+j6z7j
t5kZPI1Q8wJtwt2OkNHRe8OOYWgXaLVxAvsjCSB+osuObnSurnpaR7RuOCuz4npDazSLLZm2lj1L
3X//gUrKFQYer8GVl2Bhr4sn8sO6deKpCxpCDL2kPmZpCxpmzABBkOFZq2lRhaDpfQz7k1vU6eod
o6d3Iesc6N1huTbZoRKp1C3jaVbUUTq+FTD9KJllZoiTKJKE5imJeh81uEro9OWcJMEH3uUyiowo
i4x6S1XGnCNSqSFHUHmJ0kaUMt3+0IBAHxHlLjeSpAdyBd/1IsuHxRDwRBH1Q/NDYxzdgixhboeq
QI77ij0EwBwW4hDU0QaKnOTKjtto6GhkWi/0aUGYlYzdDQTuFCNQPhgX+QtoiSHIg449vHA9y9+D
i/LeWlG91T00MSupbyZUdXgl4wSn8Mc4XhY5ozCunn6C40RfZhm58SVkkqozxTAzewHSzCpyIaz1
CbUJ/Ad++7RZzUEke7J7GBvg/x+/2X7gT0g2xFNggCTSDS8iP4+TUAcbFTl+3/THJvT/gQgEPCGB
e7/w7HXw1XQ2WN5J/UyLTBCAF/4rE0GvqxVMFcJxsTCNgXgmSLXKTtMzuoZomg2BALF4xhaYb4hu
IBZadqS5MIa0XXiBfik9ScIZjGqWdpzSHlGHzcrsokwQrOj+6fB3lmYnjrNF+qpqmUeP1bN8eDqh
7U8y7aXts4bSHlEhwzhCOKnTmA/yzQqtq8HhL8IUmb0MKeq3Zb5BHRFCDre50wW59zWUAzR9vtF4
XCG7qhMw9m0vlXDgUzlpBc/6Pppkpwdl1Y9T/TjVj1P9uJ+uH6d6X3U2sFST6GybRJWy0dJ2djZ1
br25a5XStZa89lxbXVUy2ZraXj9H8VlvLfljFH+n7WIwh2FebccRnIZRp9Xe47SaqE6SE1dj90c7
onauh8JkR7bO7n3RnFRSSMR5eZZuZgt218sAe5mXc8fbQ5Lxi7d7v4kaSPTGf8c3Q4Ljl+iLwCIh
zBkKlxNYCgIAPaAAP18wCqRadyWvbdIjAlFTQPQ25DRDIbDxO5sA679TzYMqhe+/p/CPu1+pE/NG
sE48GPb6PCfGBK5scCHM7HE6r+z2+QvmcEoyFWezV3pfjrGS6Q7Z+/F6GRXGnhdciWcMnRKqveMf
vyiI5teFC1c5v/G9iHuXSVzXJnh5NgIcxEtPyh55Oq+D6/f0dEtBihLSMNlHfiQn/hyCD7v4VBRA
s5GMc1WuwxShVGkJkdwVU1HzHJ4O9Dvd4UX+wjs9HZhWV0G5Ensqzl0OLrKnfLvbytrHwW84+Iz9
jROkjmyFXZhTlOMxXwuXgKVt8N2GRM7YCtyIK3aTYD20JSkQ4CE+m5m5yG0ZNvg35JaTpRUbZY5O
7sKTDLEgctp8olJOOegMs4/s6AXGKYv61B4OR8jZXAuoYj7j+xGjkQ+aDgCX9YaeTD/DJP17C4rJ
upg8DMnK4PFkX8cqh8oTKa4cDMwTIbgobFbYrLBZIYpCFIUoClEUoihE2e9xruxxgR2/XBc+aq/+
+ED1hX6OvlD9CKG6SirPUHmG6iopJlXGpmpAhc0KmxWiKERRiKIQRSGKQpTvq6ukukiqi6S6SKqL
pPIKlVeoBo1KflQ5pWBPwZ5CFIUo6iG9Kq9UeaXKK5VnqDxDlVcqGVLJkII9BXsKURSi/DB/0kr4
cd54A2PqT47D+QK7H7jr+K/OpL9UGV7d/ZmQvt4darkv/9FvKOeJ9ArfhJ9FAgq/gV7p2/N9HVxe
upMKAvkfUEsDBBQAAgAIAAQ2m0r+xSQfBAYAAOAvAABCABwAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL25ldy1kYXRhYmFzZS1hZnRlci11c2VyLWRlbGV0ZS1zdGRlcnIudHh0VVQJAAOY9gFZGOkB
WXV4CwABBPUBAAAEFAAAAO0ayW7iSPTOiU+oW4OUSF7KNnBLoKNBag2ZTjJ3g4vgiSkzZSeZXObb
+9nGpkwtZksnkTi00jZvq7e/Vx6Pru8IeyFsMIhXhI6uf5J/n0mSDn06I1FEgtYDDeHNeHQ98lN/
6idEBYkuUbs13tAL1vDDmFIyS8OY3hIahPRxGMUJAWgTG56NXcN0vJ6BeyKnDeZgMJNSuWHxchiF
hKYZ922ahsHLc6rz3TOfJn4l1nIVkZQEkxVhfvbuPlwSdhMyQOgY/3nz+dyxydy2A6MrYK+KozTh
YkOCC5yXYTqhxfGynzfquo/LQxdQHCKvEfFHQRkSlq3O0g9pF0kUJxDMddYJplJoOPU8ZsuhFOnu
rx9hmsFf+7Mn0NFdGjMlhwp4P3GDMLjVybCLNlBn5kfRFITs6h0YmEm51J3WtQ0sc8mQvsRPpHKU
KxpwZHK36XQ1J401iLm/aXAXPg0iUj5XIiQg+P2CMIJ8+AdH6Jk9x7QMtHZqlUfK9CA4dwXU2jaY
qMO2AmbCrqYx04Eu/bcpyfPIeB1GdWN4dt9SHkMwcU4oEI4yB/VO6HCdJ/QJsiBxeGos8BuToi6A
taQ6NeVg3P0QV+UzWCalQEQm1f/Cu063lmSNmdEtHOQGOMbsDQxEMpOV8GX+l3qDFFLzq0TCBgGx
7eYCNgZqzuw08dz33E0870fqNl6twJV9iiqDXiAav6JUx6NJ6uEzY+CMFScNQlldCoxCKxWeti4V
5uLrjqoaPRLIMt8TQIzCZFFSGNN5DAzK8FYXM5ERyl/BE5qHEUHf2t8QCBuEyZO+jI1Ekd8lSrBt
lFGiyO2jmq9ngBO+mxoM2LqtKhsnCUhM61TunmczkiQgyiWaFfZEwC/JDBkmtYyNvTxjV6RAdSs/
nS2+v1Q5jG/KzKKxqiI+6/xUh8u7Qi6GUacNusGe0XNwz7PdrtBsahTdqGcv17OqORWqwKni3XPf
P945Hu8W75lHbaKd16w1BZurQj9Tbi0eM0womeBbxtRxAPPITKCN4skW99MYtWdh4wMVbs9yhSvJ
gM5Y+ncRzUMQ4pFoB5Ja48OInxIVrtj84D70cyrTT8ljSDn0cd0UhzY6Cn/Z5qZtLgrP2DOnbuTk
HoDNMFNaVmE2Xolew3RRZVQ+nVqmizY9Idoku8zCc5hLralpz6GpxJ5td1u7G1YyStefS4UIpeFh
9cj8gPxJSECCnUqC0YNMRF4l7z/fxLRn4eI69zwWJtN/wFRF6rqEAoXaksXBNmSu5s0jRPZzNjwF
4iyz9rNb1e9H7TO2xWpcbcjOcdxyRk26YRUgwGtGLBG2YT8iIKh2IxIX8IPMIGhyV0b5eIRMyzax
Y1vQZHi21dttQXKsRvbak8gsq9olnN4LhE2EzjNrwFXSqDIxTP75+HzSUCnjsylC+DgW3untV4Fp
6n8FovffKltop6CfWYEAh2X53/YFinN9oyR3Hs5lHccyGkiRWcyyLcoTedNRgllBSQniZlcyDrbw
TjF0u5/q+YhR+78yFx/t9rcSL+Pq8Hoo2zMGdq1v3rtsy+sl8zWMIsU68bzjP+/4zzv+r7vjb9jA
b8nBZSLJyJGhr5Pd1TwlrDbSFGLkY0j7gP5dobybkIbJ4o/MKKBl5XDMr5h3RZI7/ZYTa0iJ7uz1
bVcfgBpyB8eBDG+5JEEIrVpxNRyzh4SwYpOYzb3FPW7WDXdyT/YwxOEF4v+PTdvpmRgbF+jStLHZ
7zuG2UVl9Cc7LFUbEuEDhXE6CLOT+JFka3s+1m891ikW8x9zth0v76przdrlnWuZptU97Irg7I6f
9lhHtp6qSl5+aLPpQuuVuP77VnFw+25L4aUllx9xkm5hWQWWvNulUJGXo0bB+PrLX1zb2HHrV7/Y
0VwJ7Kj7U2SSk95EHaGK2vig0nbTJwlyNMUXCfJspiFR+xKhbxnny7evf/n2GyPtfP93vv873/+d
7/+++v1fTYFJGq+kHymHNCUMkmm+KxF3oPIVirLxED+h3htaKTbvPflbbmaxrZ6x1UoKH5IDkG3t
9ZGna5s9fMhHnp9MVIWyfwFQSwMEFAACAAgABDabSqAJZFbvBQAAbTIAAEIAHABzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUtYXR0cmlidXRlcy1wcml2YXRlLXN0ZGVyci50eHRV
VAkAA5j2AVkY6QFZdXgLAAEE9QEAAAQUAAAA7VtLc6M4EL7n5J+go12VVPEyYN8SnNS4anecXWf2
jkGOmWDhBRwnl/3tI/GyQA/w2KnJ1nCYqgH3S939dbeQMp/dLWH8CuPpNNpBNLv7G/67h0nquMiD
YQj9q28owG/ms7uZm7orN4EiSnADBlfDrRugEeAweRFC0EuDCDlhlED/IY62ThhAlBJGMFQNxdIN
U1HHlqWa9kgiyl1FcfoUuyhxM4GZ5nnrSob+iituB+N1FG9veVJPW/3yrz+ClFDfud5LgJ6XaRR3
sNcvZDsNF2E6yiu2YtisPUeeVhc3pCnKhaKlG8aog/svlUh+4D+eFrEAvUYvcIHj7BKyW+RTTE/B
FsbDbAHUW5IVyMchrLgyuocgxvYNlTdrvV6PdbjWDUVhebOAL1DuEKwuX1qxzoSQH8P2FJV+a6YJ
X+wcPcbRcwyTpDItYSi9aLsLYQr9NvN1X5EhLZL4LBNGx90jmcII4QXkP+bdcFQzS/GUUR0jPOc8
4P9G8TtOCUgWW8oq4cXzMZ9S8ivH+hbjDd3MjBd7deMiP4SzTFk7WfF8jDa262kDYwhc/A8D0Vbt
iWUqoMjYq9NEPUa7HU4KF4Eq2NcARQeQynS0We3s4xgXi0qThKEovwVH7pWKL68FgsKdh4uutfKy
MWPpPyR9DV0p05ebg6UllQ5MuKBL4XQaFzWxxDGHJEJ1Kcu95+GqgE25AV7uTID1JcSLQULXfsuw
NCKwEuUHyc5Nvc39a1Xg6Rqh5iWughsp26LFZSWdAhAYDrBvDEuxx4Zt6SbbKSSObvWzlflZ1FmY
FnkpsFnmx4ON0vFhYCMZdYQa7VltRfqCAHfEuTSKMk48Tyiqt7LHY2lHwcm/aLBfJiq2Zii/0GO6
t5KuO0ndOP0nh6ODjXiGdDOTj3UxdFMo4mVHO2My0YSxW8HnAFHs83oofnZ6+hNucWlgJt+mtrNG
jYukyVjVjmkiLtALujJ1K89Hc6gHbIFDwoe1gXLMx/E6BOmmKs50ZdZUExxnb3CsmyTX1njY1Faq
vsbDu2Hp+uiqe4rl7ag2JNafy1mI6TLfds+x68OvEPrQ79RdFBsXNXjgvP+JrkPtSTIcLFbfsXPy
unODuwsYsPM3Q3lRQdRjSTFHPnwjC3iB749uupmCwTXYZ4k6BYaqj23VMJRrsN2HaXCPUtxFwY2q
G+pkMlZUkd5M6u+i8WKbLyZm5UZMBHdukM/YTtEzJSOaqV4t+SbZorO08g8cDsMgqNo8fLg+CQhY
LMvqNZ8BVdNVY6zrmqGZmmYU4mhZ9e2r73+FB0ps1TdkLPdvQULKJ2t3LUcPcZDSvEtSDKVN4/gd
wTk3SmDouWG4wqsYyVs51unwsk3QhZzLZ2aNm6eCRkuNuGrQVddboPyT0CeEbw/AHoA9AM8AYNaX
u0GvauG8110CmVO2Aa2g6gKxnFQKLppENOx0w1NGehKS2tbbBMaJnjwdDFUEpTDgj2oXAgCTb33q
96nfp36f+n3q96n/wakfbbdBWv9EdAjC0Mney7+hna+3FW1NK2qYY35syZd8qbJz/+aaZQdwJfy4
TCIgSoiFMMqZKrhJNx4PAQqSDd55nELbCZZcy7s4/CRs8rTUP/CbumKcc89BhHdepjG45YCFa/VA
QLOImWsbLKzWAdkHlbD/fKcGDa9Q37Hrq04lzuR/fq+RwAQLCnGGthWJirARPa4lWNWt75NjSPz4
CkEqDUXU+PhdPx4ggSoOnm/XKYxrxw9OgdrmNQuutVJc8DhYXFj22OThAiL8Zg8/yU2hE88/BGDN
K9cXksJYt/Bg8XMhR3Klj6SiW6vNFzqZbLv116q469EmfY+oa3z4edjoCBJRHAxMdFPezSTifgkk
/i8pSt07/LBklQ8T2IJSdUOfuE5kn2FbenpGw7TrJqf0Sttn6MP9HuD32AP0s3o/q19sVhfeYWQv
sJ9MTV/NiXa1vDB1zVYat1LI/dMmka4Jk4BJycd8zdmF/brorfu+gtn7eVFpGnpU2+iuJ/+LAMa1
xRoH4h9+AFBLAwQUAAIACAAENptK854kKPMFAABrMQAAOgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9vYmplY3RzdG9yZS1hdHRyaWJ1dGVzLXN0ZGVyci50eHRVVAkAA5j2AVkY6QFZdXgLAAEE
9QEAAAQUAAAA7VtLb6NIEL7n5J/QmsvYUiLxssHcHJxoLa3W2XVm7xiamA1uvICTyWV++xZg3t0N
JI7Go+UwGtGuV1fVV1V0k9XydoODFxzoun/AZHn7F/73iMPIMImFPQ/bV9+ICyur5e3SjMytGWIW
JbpBo6vV58mzT/SGTwi2ItcnD5jYLnkyPD/EQC0qgiorM0GcqpqgaE1NBaeuW1Qp94G/NzwXkyjW
XpcpCHx7EhH2+y1J+VttGO9Nl0wQxZEtosYlSfC/MqEFwyUv/jNeH3BgxoIWxH4MTBKaidhHd4+D
8YRjgs9hvHcDSAA2784ktoez59yEEIx/3OEAIxP+wR40UZuKkoAOaeTioNyDGj94g6hgD0e5jCyH
Cn8/+nn8qJScXykWN5bGEzQWvquO40xl7CjyTJgAZ+uWE2Xn8cxcnRWe6SfqwT8cIH9NgvIoXiPi
v6KIp6PNauMYBJCBuSYOA5A4frA/caReyfmSGIztLZUzDdetaT2DSRtIBXy1+fN3N4qpyqu6/oSj
dXAXAqPnhrtMwoo4PijIMA2aGOxNRShZgifkuB5GX0dfERhru+EzZ6e2ay+bJpfyz4oB3GCkBfRH
axIKSRKyYJBZkusAwnW5Iut6cCrN/v4QU9oUEp9UpWyOloXDEEy5QVYaTwT6wjiQbliuaaqiSrHA
XBS47mBG1u7uJS9cxW5kWRQmFcTH3YO1uaSzlDCMxiPwjaIK2lTRVHk2aTQsjqNb/awmfmY1uEbp
Pxfe1dnn472k49PwHmdUgfayZ6UtxJwF/di5FTzGnNAnIbeE7XQKnB+sBFwUr2vazxNUTVKEn+hw
2UoczhQDPguiv1M0G2DEEy61+pZpJ8BmhFm8zYlHmc+ld48p7JK3LmO9W8ErdJcewFgj3lFc/ouU
Qa9utMvLXbnWSeIMFVMaKipR7H5HEQRpK8oOjHmKKsuTq+5eTwt8aSExs+Zaat3+dngKTBv/gbGN
7U71WtCgTOBXyvrlDYZ9ugqrwmzxk0tKNq9Il0GjzpUFoDSuJ1hYb/+BbEhL1w00KDSaNELZoDyr
oNJjRrEiNv4e++gZvz2Y0U5Ho2t0TFyjI0WUp5qoKMI12h+9yL0jETRidCPKijifTwWRpTeR+n/R
WPntlJF56hZpX0lDKAAdYrYmaSVj1TdqkKsis8LWZpBsC5UZqSm6gZeWfOO8vTZpGYDM2liDgQFF
Gj5MOw4IWm+ycr1aIlGSRWUqSzDKqbKk8Tv/A8uInh5BY8v0vC0YPOG3TtBp0CLLaHHG+bOgwk1T
Uc7MCnFe/fOWuibpycQFQmVI9iHZf5lkT/pNtzTPWxNtuUsgU8q2pD5RdUnnlJSbyGmXvkHlJCql
7kxTYBpNiWrLV/lkDgNt6Adp5oMyBDbFzfzL6MuVkf4Eo+zWTUKBPP8VBwhmguQoByZPdITX5Hyl
sDZl1XXTfonPrJPR2fCPMF2WDIEXUOW6voAcDJMoxDjAlh/Y4Tus6I7WnuHtj9A8rbjYpM9FZ0Jl
AwQDHgc8Dngc8DjgccDjgMcLwaO/37tR9eTq1fU8I1nnn2V+XG9rCahbUSkEjR9b8iXdKu+mvr5n
3u1mVhOoTKzqwCfuZ24JM1SxXbzRCzg0LdWLgZksKJ9wMWDQ0qABKkomU60eMWjWwWLrBy0577jx
O2aGycs7Wq95pXS8Xt11xHEm/Y6iQoKzG7o2BOeEtehRLQFVC9uObz/h8QWjiBsKv3ZgXr1DiQN1
uu9eOBEOKnc0acCT5lf5wIRqLRcXNI4mLlRtOqPhAhNYOeJW5HZH0EcKdM/LfgZY710C7vgtTmHQ
zbyQvCzksCUmqQjdmn3V9O7vtfiNZdGquOcdV+8Y0XOx1hU4oig4mMszfkfjiPspsPhV0rQYBhaf
lrD8gQIsyFTX9LFrxSa+PW/p6wlNo2XXObmfhFxCLx6G9GFIH4b0YUjvM6SHkX+oxG4mS5pQ+8yk
8aE9EMkSM1DcD/arovfm2xYn66tTCajpETWlu5706/fG9k97HHG/Fm3+xUJvarrS/wBQSwMEFAAC
AAgABTabSkjnzIHkCQAAAZ4AAE8AHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3Rv
cmUtY3Vyc29yLWFkdmFuY2UtZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAOZ9gFZGekB
WXV4CwABBPUBAAAEFAAAAO1dSXOjOBS+55SfwNGumq7CBi/xLbE7GdfUtF2ddN+xkROmCXiAJJ3L
/PYRYGxh7SC8JDp0dcXWe3p6O9JnMZ3c3IPoFUSjkeskzsKJwTgMArBMvDCYg8D1gsexH8bA+GJ0
bHNg2X2z0xsMTXt48SPw/n0B08nNBKMcjZZELrdR+Dz2PRAkkN/lPk/TvJiy5MlYuNUlyem5MrSe
HS9oGxhTLqsWwgn+b7cvCDy84DX8BWZrEDkpo+vAfYicIHYytg/eM4habVQN4RoEk5vvAPKJk7ET
LIHvA5fEmTwylUw5P7qKQsbCbr0IzoTIsky1iDEhyfIf9lmrbbTM34PVatWzwMoyl2Y7X+gtnDGM
3qEDAR8koBhf6GHnGg/h1tWIIxnfEiTkCGhb/UxAuuaenMD1wSSbjD9s8/fWj2Io18MTiIDhwH/Q
EYed4dWgbxrrPPwu5FjNw/Ua2toJjK1B/zCC8M1IWHPwpB6/RBEMlu1MDAI4ZBVGzxuKXCtbutwH
3QWRMjfXjbP8BUW6h67A0qbruRN8fCMualtm4aJEHywk2c4BB87QEByNok0shs/rdKRLGBIGZS73
L8sliGMoyhdjmSvTgPPFqRa9GM19A3vQTRluWblevHaS5dPX122CQwLO6pjtUril6YK2uCyVIAFk
tC6hbuyBOezZw4HVxzMeQ9FcPQ8yPdMyGlYiVAXboN98sCFzNBZsqUftQg3VbHcBbU6Lu1S5aBRl
lLCemp3lYtjrpZSsMJztkauxyrBrm0fUmLVcMNcdJ06U/MzDcQyFeARIzeS0NRFwEkCjxVsb++qq
S7XdAjx6AUI+LZvib/AMQxxSoJ/iVJXbnTrthBI36XW6OzehJ+gZmpnE0vNOHOQPKME4NR+czSja
XGivNy952iZnNDN3O31j13sau7yZ+trKNs3uomOtYPNqDyyrfSHuYnk5Qj7IxNzzI2KV+bF+jBwX
fAPABa5QdTGHMKmBN8LnFaoO0pNncTBb/AOVk+edL7C6GJdtbGXYyGxhuz9hVL8ks+jadTHSjWXn
yPeaUBPuCNPiB4tBHEY00llphPZfTXjO/lsasSmc2wq7q86l3A3rlIBTz4K84NLKMDEKyiyL+ssT
yHLN0oMHzhrrKjgBydg6wsdSerGitcQIKF0YKYE4bmoQY3ZfdBXTidHpWh27Z1ldu9vvdu0NO5RX
aXGQxTfwhrCFfRqf5OtvL07bGlzukru9RV6C0t6nTQqzmYPd15ymGEkrGa2l4/sLuIo2u8WGc45J
3kbpDsfqPbNETZoCjZbS4G3jvO1GZ0G+Vak0fIuEw4taamLSDDQDJQx2FYzHglHr1FQjTFZ2gtoO
Y2w3IKvGuHMKyVxSCkqZybdVv6cPkFUFbVYNmrvmzuJOaENQnyZNTicByzBSLxwWdLCj2kxFEGX3
5d7m+Sa5saVDBjK335BUSU96oilIILdwzMQzST1FHrHfV6gjkS56rtbH0Z6aawIp+eTnp3fo6OOv
wBC1vfuc0OEgG6qbgzrJRl5023RA6t0l+n5e+jmKqkQjSkKlzSeohp2/diE5lEcJhKDCjKkoJWa8
qhqlqaJ1RsW3rhlEKzWlLNTIUlVzDSmbNW8Icr7kmkc6UdI8UsbMah9fBXLh+XRSAjlSxKZiPOgl
QUE3JRE+MgVIwMKKux7JKKyRcaSjlZ5qBKp9pQb0RAv0ER5p1KVDeeE4VpiJPOhTlYytWXiDQagR
yjmNRpQvcvCJfEYoGeLV8V/AbRj9Bd5rZYNjH9iJWG8mv/3TyKNz9SGMc+bzfwQ/xTPXWiFxFue1
Z+BEMkfKB3xC1ztgWhtaG1obx9XGjHy0v2kdY5DcgeQ7iF/8BIEh/wLve93jgfRWyOW4r+lv5i4I
P05i1SfiCCZPjSDVhEchPJ0MoXFxmoFm0BwuDitKPF7EKnai0CHBTczqKJ7qMCOJ88YaB8/qUUgn
hnwUsEttJYsCI2ufoQp6kOxRqYjshztpbhCNV+OQei16YtZgHCi0wUnnIrpwDNNVF0/K/IfAWzZj
Z7wu1zK4DDvuWRiF10FO3TQI4UBwTsWgnvMx8kFwfx8WlagQX1IRUbOXUCtgapRxUAnMOWlkw2Eg
exVARIJQm8P9cOEDAaQ/I9ZGWUYNDyZAlQwmhPapkBf3ED7N4xUnor0q3tQeAMUjMgW+AslOXwaV
MSHtBurDWQEASBkNxbw3UKtXIwG0NrQ2tDa0NrQ2tDa0Nj4yumwZBokXwKeelyC/qLOVhLlU+CK9
JBUAIH0kDic7HXtMWFiDY2B51F4KpC+Z05fM6UvmNJhOMzhDBqVKyuOClV19L5yrcT+fGnt1FAzi
OcaBwOHvOaCjThepeQi07BGRmud4T2i5XrKlKI+tDKASZXP+J9MCMHbxOyCaug1LPVRJUU7kiK+N
/KmMrPFoFfFojV9W1XT4nQba9KwRDZK3xHz0Q5YK4EO5W/mUQu/qX8ZEv75M4VVMii7xVfIoXQM3
en53OSrvaKaEBh1bdLmLr/dzhOJobMPTKE7V1PQQkkBFnptHYAVgBHIBYp8pocpcXyjgKdOqD6Vi
WNnp/h6xNo+GWGhtaG1obWhtfHptTKnHrSeKzlKpumcvKd/z9eb5/jj7nP0G53pqry81Fx61v4YS
PAr7kgO8yRXFwERhGktfac3DRRGJaNgoxmAqjCknarVFgEu3XuDFT8BtbKwQIoq4ShHjSEGhSLOU
X2Tft0y78pvmGcAqkldi0ChCWBKlvqSMgcl9EUacAF55KeaqyEfs6yKoi81ClkH75ASuD4q/t2qL
obIfnkAEDAf+g2ofdoa9Ttc0NnmBoBUkMZZXnTCUSX7NfGkIzLvOwoceykso24F71iNKAqeC9RVm
s/TPV/iAzzRFyLgrUfadySXiR5DQqLKKVuzhpCyQMpS6xqaSXa9gdfwJojitXU/pdtN4k1MKbTL1
w4xEEgUeiYNhr0+KRBDAT14AN1eIx2ydCiVawjvMlxLlufLPNGjg3CW1o1o9rVilc8yc3ylVg2mA
FqvK1uJU1mvuxOhtNaJ6J/vXXm1hsCL49pXVZ9dFBrujuPppuR6lV1qARy8QC5hd63HdmLNyfvPs
ucXUe/OdXEmmZK0M8s7pabIxWLuyT0mojXWeFJTcSvlYFEoej0e0oh7yTam7idlT7MbRZ0DGCF9C
wb8losIdDZxzDY50dwJLJd6EQFmLqIplX3jS5HtIzusnZ0faD+K5mYD33MmGn5hrlBp0tZ5xR0pp
ehdL72Kd+C6W3kHSO0jKdpBK38ZJuCZuD6Ff0BrHbeobp79z9v38dVe7JWx47Hyjb3WH5t7rNfww
BvuDrC7VETC3nOfrHqd8yqyfnfcFyD6fbrLN3jydoS0+T8bIlVTH/1BLAwQUAAIACAAFNptKh5of
i3gKAAArqQAARwAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmplY3RzdG9yZS1jdXJzb3It
YWR2YW5jZS1mYWlsdXJlcy1zdGRlcnIudHh0VVQJAAOZ9gFZGekBWXV4CwABBPUBAAAEFAAAAO1d
TXPiOBq+58RPcM1lSFV3lcEG09wSMpmlamthO+m5GyzAG8dmbZNsLvPbV7LBltGXbWQwiQ5dXTjS
K+l5PyU/iOnD/RMI30A4Hgdb4D/c/wT/3YEontj+EngecG5++S58Mn24f7Bje2FHgNVS+651bqa5
PGfffhL4PljGbuDPge+4/nriBRGArXumbhnmUO8NrJFujsiR8p7j8ZIq5TEMXieeC/wYjX4sU9f5
80lEOPVnkvYXzqH7arv+rUYBUiCqi0mC/5u3NGW4/lvwAmZbENpI0J3vPIe2H9mJ2Gf3FYTdWxwG
KWpmLyngTOTRDeFI7L4b23c8cPicLSmCQz5vQAg0G/6DmIx6o0Gvr2vb1BLQ6h7hMEH4AbUMPBBn
Mg42mevvOcjsgdqS81fKjIlH3Vutq//PWq1WAwOsTGOo33Lh2i85GUwOMj+sYY5MNVHzYLuFCrZ9
LdPiN80P3rWYN4Zo1pNdGEKLzkbidIBNVkH4uu+RopL1Sw3PWVB7puq6t5cvcEpP0BTAzdO//+nG
qBX+dDxeg3gW/hHBjp4bbQ4Spv4qgAMcYgQcidGdHEhLHsFP2sr1gPZ753cNTtZxoxfOSh3XeSCn
jNnfEgUEoiNNoX8LjVBPjJDlBoeZZGPAhjPc9cfjcB8DgtctaulQmgR+UcrTbrkEUQSn8l1bpvrU
4HgRUqQb4THSMq0+EpiJgtBt7Xi5+eMtC4T5agyjp98WPB6FKdbikhCG+bDW7UBsTEsfDcyRZQzJ
yMgBWoizleDMiqREKpHl79aweX/HxmjM35FF5d6OI9tfQJ2zXB+BW/BH1BPmXWhb+mIwgD1PjARc
L54djS5HqaO+qV8QcGOZAM4UAzEL479Sb57ASawBluoF1VMI7Biw+pIVlPnjR5+p+gVYuz7WfVpU
Rd1qiWEvx6Nxi4vUMirG1Hye2Ac4zASBhjJMbpXauxtvsoiKh9N+b6jlhaWWBzuk4ZWp6/1Fz1jB
ytS0DOP2prxi09ViD5JpUgAhUsOv7Tq0HfAvABzglEoJ+ghGIvBOed6+2rNi4sLK/8QXZov/QFWl
oes7TFBa55bAmWiZwJx/hJ69g8HsznGIrns7m2N/Vx1Vx7wjyp8wIURByOo6K7RQ9qs6XrP9Flrs
w3gW7/NcUYjdMGuWMOqZn6Z/VlFA9YKiyEM1IJqQ4eiFvQspmshxAofknFKRbRn12KG8JDowKipa
ALEdpBBt9nSocaYPWq9v9MyB0YdbLMvoj/gV+Zw1iYqIaN2l7XkLOOFbfkkLx5zQNMuoCyfyraDQ
mzYEbpmFxlnJlNWhMz89gZTqKgfnFnkIMwgoAUqAFAF5thCJ4OQVOZGfmCs/QGXNONt7bNWEdEHQ
nsufBfcI9SfaXcJ4Hyb/d75pQYKOFiWxF4v4g0Ffpy6ILx4sgxC9rHgBHzzppgWlNwt8SemM5cB8
WHYtA7NvNjxJJV1JxwIjXz7WkHtog4XZVtazczFOed1ZMY7iVabEeCkvNrIL2bnkyCW9DJ4fFwtl
9TwtnF7uX2VJTmdly3B5mmzYeiuchFrslzKnGk3FXYrItFVkYNvTF3F7ab56ITVVMk1JOq0VPUS+
KNFdJSpKBryNbVlKxJAa7lolzEs9cK0UGSp4vTCCNF4QSK3XTgxX8nacsuoKWW5fv5ZVkaFVkaGu
b8uvLeRuCioHGRUZzlYzfNHN//Xt6ZqrGTgvkmmxIaNtLZM+6etMiJEGxYcfY+23zm+n7znS+SCi
1MJNYNK84B2ECdCIi2z7jrbbbvMnZzPkdGZI/W/oywMJ72sS7KDxYAof9vqjb8cPtBWAhgYVFCZm
E5Vx4+o4lAsfVey/8nvxUyxd8jv15lPlyaZexnBn1Q+nceO9DmbBGTdgHHJrHgkvx3SQb2RXs79V
aCg0FBo10ZjRaSD7iiUC8Z8g/gminRdjZPWkdr0EbkeV1A3lq2+8KEttwZWpmL2q40U6tidCKA6l
EqAENMehJJKSSBY1i103h/IsLxsa4EsqluNJ0k8+cP7KDFt5Z8wNWkeF91OSHekqY8dZWSfX4910
zq1ExZem756DjUQnApNZ/yzGQg7LORkm2zbxSvFseq/+drJFLNTreHOtKDPMIuS00drJbG/amhSD
oTTppdq5UEOEhvLH8XWJTuchKX9BhpsEwtGlOEmfpIBQbMVWsBWbIZkJeY+nht4T6SVlPbQ0DYXm
K2V4Y5evIBshXF0Teawl4eNB+P5XSs1D7HLhQlmeZ+nplZ6fghLGxeOXv4uAc+8Fi0fX24e96KzG
UQIA0kIqHn5UIaxRzfEUFpls+1bcGIWGQkOhodBQaCg0FN+Sw7dcBj7ch+3A485PLzjuxkE6K3KR
sEaEEwBYOUMSLNujjwce++YS7Da5V6qp6zDVdZiKyqkEKAECAYWsJZJCpDjFoFLsy4uwL5V1fF3r
UOxZxZ49M8O7mPj4QxTbniWKVBny890cd43kKsXlvDrWTjsJk+qeX/lcui91z+91hG2537urPY1P
ErbP6urnDb0SbitrF1/5fG8JFNf5c3Cd1X3PmclMy2yMiFPNWjGkFF/R6o3Mb8cPaHzFFr/GFnlp
CJL18DHfFlsJGMAHbA+9UnBTop7thcB2PrSNHRWARb9QLwKWxytsYJX1HFPW4psJJNO6JyNVttg1
Taoy11iCfTHGLMLUtAvViVuyfUvm9yOIlcqvcrb8MbjfpZAIYY2qiD/x6rXRlmF9Tazy9CtV6/rK
6beuNuU4inim0FBoKDQUGgqN1qAxZdKEWsrglQndqxsXb0d9dz1vkjzHmqbrlAj76bMWUmiP11Cg
0BJ/FBBGU6A4vFkCMag8IXeW2onFn+U3rjZdjDpLFVsGjUqcWdoo8F/P1C3DHOq9gTU0dMpRG9xY
+2/BC8gM5c53MDGJ2XR5B24TmhkQHFqKH1Bn3WG0gdF0EYQCj1m5iJx7CAD8y6KYi018hNN3Y/uO
Bw6fM9giCPbzBoRAs9EJp6mPeqNBr69re0ekoIJFouKqYw6Yxc+JLR03gYHOXnhutBF5cNbwSHvU
mcChYEKD4QN9fANazFVFwLnSmXOt5/5O3+I3Owud1yBm9UpSCNoWJZ2gCCzuI9PYp467FUxHf4Ew
Qslig07vUxNLtmAdPIhR8eF6Iq0H6YnWaDCkeSLw4ZMdEMaK8j57SkoomzN73J96eHR9CMc/kNPA
sQuw46i2y1fZEhPjh7UMNpOpj+eR2toSpLI74cD4tXdlceflwwVYu77QFo/yEGdYih/8MIb8HMoR
dxG3uBYzzcuPu8YMVnALgOschibtlBErnmI7FFUSSRuiSDjuiUrDVmf/U8pzKRdorw/JUiRjjWdV
iuDSt4BWvbszH1jWbTmYROZc8jZl7tGpfvNLE1fU1PgRNz6ieSXFyA0ZSvs3/EISxBBaclt+gStf
XUlzKcc8KHUdSaFG/cpfkm7P6dSftEioTpzUiZM6cVInTp/6xIlVMmbRa4IqE88DThEjmN23BU0P
jf5IP/oNMC+IwHEjo89UK2Fk83QVEySnKPrV/liA5Pl0HzCOxumNzPLjJILIdLxfY6c6TnQx/wdQ
SwMEFAACAAgABTabSksYtC+DCQAAkaEAAFAAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2Jq
ZWN0c3RvcmUtY3Vyc29yLWNvbnRpbnVlLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUCQAD
mvYBWRrpAVl1eAsAAQT1AQAABBQAAADtXUtz4jgQvueUn+AjVO1U2dg8wi2BySy1tQM1yczd2AK8
MTZrm2Ry2d++8lvGkixjmUeiQyoFqFutr5+WGjGbPjwB7xV447G7A8704Qf4dw/8YKI7BrBtYN78
dCz4zmz6MNUDfan7gDRS+iLd3sxyfmYyfuI6DjACy3UWwDEtZz2xXR/A0YomD1VtICv94UjWRuWZ
csrx2MByefTc7cS2gBOEsx/ylGW6PBEL83hJYvpKGTpb3XK6EgbIClYdhBP8r3VxyrCcV/cFzHfA
00NG94757OmOr0dsn60t8DpdFAYuaiYvyaUI8mh5cCZEFiNcdYkJTpb/Su91ulJH/j1crVZ9FaxU
2ZC7sf09whld7x0qHNggAOn41DxzVT67mWlgR1I+xUhYIaCmDiIBychtdMe0wTSarHpY8jrTuw/l
et4AD0g6/IOGM1JGd8OBLO1id7mpx2rh7nZQ17ojZQr9Q3LcNymgzVEl9WTvedC4s5koBHDIyvW2
CUWMSkYX26C5xFLG6nrQjRco0hM0BRqapmVOy+NbMVFNlVMTxdpgKkk2Bxw4R11wPPYSX3S3u3Ck
iRniOkUuT3vDAL4PRfkiGTGYEpzPD1G0fDRWDbVhL2SYsTItf6cHxubraxaQEIdTFblbcLcwXJAW
F4USxIGkzi3ERhvKo742GqqDcoSiAF2J8zDCmRTRSiGdl7MNB+07GzJHa84WWlTuaiiyvSXUOcnv
QnBRL4ooYf6TFWM56vdDSpobzg/I+Whl1NPkMyKmGkvquv1A94JfsTtOoBBrgOTMijLEA3oASLTl
UkS7u+sRdbcEa8tByGdFVRxbdvwNtjA0QDqUW3m2RuUEFzPpK73cTMgBeo5GJrbwnIuDvIASTEL1
wdmktCyF+nqzgk0WnNHI3FMGUl4rSnncDG1tpclyb6moK1hsakNV7d6wm1icjpA3IjEP7AibZX7u
1p5ugu8AmMBkyi7yCAY18IZ5/4isg9TQkR/Ml/9AcOK48wVmF+m2W1pZaWS0sPwl9Op9MPfuTbNE
mmh2gXwuCAVhThgmP5gMfNcjkc4LIxoRC+MXhNds/IURSdbN0nOe2guBHyY5BqOeO3G2JuVwrBcU
WabJu0og1ZQLTy1l1qWSpMIhKftE5bGEQi6tS0sEhFIMF0B0M1SINH9KS5LZVFJ6qqL1VbWn9Qa9
npawQ3kVFgdZfAdvCNusGKSRfP1t+WFNVJa7YG5vnhWgtE9hhUOtBGHptiABU1NLUsfQbXsJV9Gl
1+dwzgnO2gil5YS/ZRaocVOg3lIYnFXdWSk7d+J9Sa7umwacKq8lBibBQDDgwiDPYFUsKLmOCxM+
Ka20YHqUy4ZRNjwQ6ErcK7LR4jRS8ONOSJbxzvKP8BkaKwAmV6EkjPKRuQDD9ZrID1NswgMzR/7h
6e3nWriz2vnZrbPCEqtMjGzcFJs63rxzHpcRf9oHuJmDsi734tdRS9tI0vwoANDtEV0wbYMcKSUw
WPGd43TIc320Pj6nGqxP0o1tPn9IrRmv0EdSjvqpJSmX0gddyPEa44Nj/cU3To0N5z8qxjSeuz0T
bVkMLhGKsJmzYK3lGVgwz0Kxv+MkrUXPbQjfPa8FZmcAOcVMumPqFPasG2Xt1x7njlFVJsN6pDuU
ueatJjuUF1oOnyLuIkc0hGUw1YocYzMCUzzteEz4QLrFIfuq23vw6Hp/gXdO4YkdQhZmDBjO69fx
KI7nCqfVBlQ7kJ7GGObMTzrihK0dk72OQ7w6qY3rgfeJHLjegWC1M9U89xTwovAKNAQaAg2BhkBD
oPHp0ZjjmyySRwIfBN9A8AP4eztAWtJfwHvcxn5q3FK5DNeBZTd8ANk7cVt9J3BjqeoMO/yOG61b
DDui9jyiv1gQnoVQBJxWA87lwCuaUgUDwaC9ptRSHVDFC1s4XGjHXuOT5A/T8XltHXun78kUTX1i
HZ9xHVf/bYBGrWqskbpecD8ifIpe30uoBD4ASmfpwGX2iQusOY7oXmbumW4OMlPXdY3va5TL94Yq
ITGs38RUYsSzI4l/l8h527GmrHrEwHpBrdGCvWD/idifoPmpHBhqxu86zU9T7CnSqVrBxZCazVTT
ymNBcRot0BBoCDQEGgINgYZAQ6Ah0BC9gBfbmmMFoQAAKfyvrb9nSus/OEd/D98LtsStj+LWR3Hr
o2iwEwyukEEhu1ZxKaVi0VVhtnHPHK+uiuOkv4ZbEPl1PdboGhR9WWIdH3od4obTD8S9mKzpUxTH
kudhHXf6s2y+pQHfS9Ku+hKra1Qyg8p43sbIX8n1pTvRFXlXc4tei5ep1duOaP54wPcCKvaWedaN
kQ8Tpznd9tosDDdQ2AndpubW/0mua2944yE9MPKNAGTW3O7rnB3u1TS8tLNY+hFbjZNhUnoUc9kd
xgsPrAA03cspaGfHVu01i4FGQ0q2JQ6TxdG6QEOgIdAQaAg0BBoCDQIaM+Jx64V2bPGEbmsFxavV
3izbnkTv03+PvRnszaWubI86XEOhPar0YUXjTQwUpSeqhFj4A/VVfVFYIlJvFGUwsY0pJup0WRqX
Hi3H8jfAbG0sU0cUdpUsyqnVCoWbBf4pmjxUtYGs9IcDVdZucKctzqv7AjK7vXdMhE1kxR3as94E
Z5Wl1iiMW2KlviWMgcF96XoVDryywp6rNB7Rv/BNXGzkshTaje6YNkhfZ7D5EOznDfCApMM/CPtI
GfWVniwlcQGDChIYi6sOKGAWX0e2dDgExl19aUMLrQoo2cAD7WElgVPB/AqjWfjyFUgBVRUu5XrK
uj9iXiBeg4BEFWW0dLsrZIGkodA0kkx2v4LZ8Rfw/DB3bcJtv0kSU1I0qfhQPRFHUfbE4ag/wHki
cOA7e1AZK9h9tkmGYk3hikwLD3Gs/DN0Gjh3AXYU1cvyVTLHyPj1QjaYOWiyOlpbFZn1vnJiQpZd
grXlEIoGZv3g7fAgB1FYYXzgTh3Q8yeF3Vlc4lpMNC897lsz1oovwltmOvXBfOQ4ETWZV1QR0ZhS
gXBIGVapF535mzwpcLmpcp0myioeazSjtv6Lp8gc+cTsN9fQhck5NvnNrUMuXG/Boa/0W9UCKLLV
Pww7wfUa+YIYNcd29sR0fUOhVPzMX5W7nD2rb7igJPahxD7Uhe9DiT0gsQfUwh6QH7i7gu4Gam8k
H/xmiO364HCQ2iMqqmQ2i1iuScinyHqrvy9B9P4siQYH8ygjjX2eiFE51yZrvKV+QKpts9g+0R0D
2DYwa47+H1BLAwQUAAIACAAFNptKMenfkCgKAAAbrgAASAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9vYmplY3RzdG9yZS1jdXJzb3ItY29udGludWUtZmFpbHVyZXMtc3RkZXJyLnR4dFVUCQAD
mvYBWRrpAVl1eAsAAQT1AQAABBQAAADtXctzokgYv+eUP4Gay2jVTBUvxfGW6GbWqq3VnWTmjtIq
GwIuYLK57N++DQg00g86gGLSh1RK/B7dv/5eNB/tbHp7D/xn4I/HlhmaSzMAE891wSq0PXcBXMt2
NxPHC4D0VVJ02dD0oawMjJGsj65+uvY/ezCb3k5LnOPxCivlzveeJo4N3BDKuz6WKctXM9p4YhHW
20eS8DPH0HsybbcvlYQyRfUQSfC/3r/CyLDdZ+8RzHfANyNBN6714JtuYMZiH+wn4Pf6KAzeDrjT
2x8AygnCiemugOMACycZTxmNrHF5ZIg8ysTubB9qIvNuTddyQPo5gyiAKh+2wAeSCf8gxiNlNFBU
WdollhXN7g6q8fxXaDXAAWEmI518bg8PXmZfWErKt5gRly71+lJP/tdYr9cDDax1bSj3qXAdphwr
awaZb8YwR4ZP1MLb7eACm66UreIXyfVepJCmgzXqyd73oYdkmigMkGTt+U8HjgSVjC8xPGuJ5UyW
69ZcPcIh3UNTAFf3f/1hhxEVenU83oBw7v8WQEbHDraphJm79qCCNOZATQT2siIpvgQ/SWvbAdLn
688SHKxlB4+UmVq2NS0PGbG/VRRgSoy4Bf2PaYRybIQkN0hHkumAhHPU9cdj/xADvKddRGlhSDy3
KOV+v1qBIIBD+SqtkvWUoL4gWkg7QGOuoRtqJDATBaHbmeFq+9tzFljz2WiaIvcLHh+FKdLk4hCG
+LDUu4bY6IY8GugjQxuWIy0FaCbORowzKZKWUlNT/m4M2/d3REdr/h5ZVO7tKLLqEq45yfUjcAv+
GHHCPA5tS14OBpCzZiSgevH8SHszizpSdfmMgGurGHCiGIiZH/5KvHkCB7EBSKpnVGM+MENA4i1X
ZPq3bypx6ZdgY7sI+6y4FG+tvgj2cqyNWlwklsEZU/NxIh+gmkkEWpRhcquUXuxwm0VUNJyqylDK
C1UpD3bRCq91WVaXiraGla5uaFr/qvrCJrNFLsTDxABSSg0/dxvftMCfAFjAqpQS5BGMROAFc717
tSdn4kJuJ2JfmC//hkuVhK6vMEFJ1/0SziXKGOb8I/TsPQxmN5ZVYj3Y2QL5XjAKxpwxyp8wIQSe
T2KdFyhqMQvjF4yXbPwFikMOyJJFnmgKgR+m3ApGPXeT2oFUUWC9oCgyLSVYA9IsuXDjUxZdSpAM
h6RsmZVpCcVcWpuWGAjlGC6AmFa0INL8Pi2QZlNJUTVFH2gqvD8zNHVEL+cXpEFwIiL1VqbjLOGA
+/R6GOqc4FaWUFROmreCAjdOBWqZBeKs3sqK2LmbbIc26iqpc7M8hBgEhAAhoBEBebZgiaDklUaE
NJM+ShOmR7mMjLLBgEBXks6I/IvmR0HdxP0R3d/CpOHH/6+/SF6MjhTEARxJG4OBKjNEgZXnR49G
HsErTZJuqPIZgK8onTBFmFSrzm+gq3rLgxTShXQkMNLlI4TUbSMkzJ5SR6cK7wV7LfICmTNWo+Vw
V2MyoeJeNBwdG6/XF8dVTdV1nhX2aA8P7HiK/JYNhWNr1cDdNvDdcrCWv/11q70epwWsBhqdDAFN
VT9tRNn3DBh/YPg4EDeWXd+QpSoERBYJRybqRjQ5SZhuP21WWLrLSBQnWY9Gq0geXFuqKE+3PFX9
u6slP9O2mluhmiGj4xmv6btAnnU8z+1qHRNoOeRetFeeuAr/wBggD7az/rJV/Dl5dApHIUFW/3Us
fbr+xOdmidyoe2tpx4YrOd4L8ONhRw3SpmtJ+90uv1LHMRNlET7P0UsKcX/ZxNtD10IQGSrq6Mvx
BWkNoBtCH/JjXIO2Y0nL4vlRb6bMPxnJ6S16zr8LXG9F2rDq9mvwN1leqyXRhGOrHLvcDXedvMV6
6L3F+eMENtFl9LyIe1J0K5enA0ggd3mb4AINgQYHGnN829ChSghA+B2EP0Cwd0Lk9Yr4NuEcuKXj
WnkuLMP24G7vJq+I9EIvGRUP2fF7nrT+RywFtx7RnS4Yz8IoAk6rAac78Io2ayFACGivzbpUB7Bk
YQuHjnZL1n4c1EaHdPOdx40+DaICf9JelvP30orHI+IR0eGppLCyC0ZYSBe2JyKcwOAdY4B/Jeck
9VqNN3vKNxPNvPyIkUt+tFeifddG3nLrhujAa6YDr5PNTd3o0+AfBQOFKV8EKD7uIMFvyIbavd4n
If584qlG9dPdB8C6dbzlne0c4krwAfCs2TlWRUXZvTmLB56OnSn2ueoFNQ++G5JKzV9T5oNy0Z8h
0BBoCDQEGgINgYZAQ6Ah0BDdsZ1tVoN32HAAACn8L63jbUrryDlHx1uzhyiKU3TFKbqivVMIEAIY
AgqZjCWllPbe/Zm1HO2J7T0oPM9Js6Lf88zdUC3b3sV2xjRi1lxQ1W7dPtGJ1JdxZnRz/fLdiM7n
ip/FbEwfbJG2dTspquvIWcdCfO2DCk9GIrbnxGalQEOgIc7B7u452G0lGWHRwqLFqyQCg0t60+Ak
mw3cLy20e7r9ZZz1K5yEicGsyuYAYQeh0hsXhjLSvxxfwJ2MWfc3DHwQC6XPZEegSqeSfp/MJWkG
Nx0fmNartDWDwjyModyVefD8alJTU+3SnkcbmDZwEPIpIJ5xbbfxTLHg9RWi8wl86yy3B3yY1v+9
iw7EqFokdSzyfJBcxm1dPVvk+GWNcoLBeEbrLi522gQaAo0PjMaM2KLU0Y7iJqF7ssPiYbgvtuNM
4usIaTLPBmGvP2pm++7xHArtu6UvGc2qCVCUnt0SYnDxmH27WCZS7y6dmG+4SNsuVmwVNLj6dXFa
4J+iy4amD2VlYAw1GdNiBe8Q3GfvEWSGcuNaiJjYbHq0jf8JzgxK/bsYP8CO+ppAA6Pp0vMZHrO2
o8bgNADQT5khTjb2EQrv1nQtB6SfM9gCCPbDFvhAMqP9G10eKaOBosrSwRExqCCRqDjrkAJm8XNs
S8ckMNCZS8cOtiwPzgiPVg87EqgKJjQYPqKPz0AKqUvhUU7wphwzejjCufhOdoF5A0ISV5xCohI0
ZoIikLgfmcYhddysYTr6BfwgShbbaD8wMbG43L1GgxgWH6on4jjKnmiMBkOcJwIXXtkDZqyo7rN1
UkLVnKlQf/H5znYhHL9HTgN1F2BHUe2Wr5IlxsYPaxlkJDMXzSNvXi1GKrthKkbPy6qKO96+jnIL
RRTGtr9pQ1KGXYKN7ZZSOC2HUlSfxS0uxUzz8uOmNYNlnI5iW6nqsp0SYsV9aPqsSiKmKRUJx5xU
u+pC9q9TnjdyoPcmTZYsGRs0q2IEt3boX66YriKnI2tAaMRJZ+yTzvJKihDJMzwPzy+Zj1WH0JK7
ctDTd17DavBX5Ao16kd+abs7u1PfcZFQ7DiJHSex4yR2nN71jlPhW5iyd+kGCKmWzMLaJCpZHAdY
VDH5FA5Xc9sYaupIPvqROMcLwDGRphINoWSWi2Tek0hOUfST+boE8fXZIcQc6VFGenU9sSCLE6f/
AVBLAwQUAAIACAAFNptKGs0D6IIGAAByPgAAQAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9v
YmplY3RzdG9yZS1yZW5hbWUtMS1wcml2YXRlLXN0ZGVyci50eHRVVAkAA5r2AVka6QFZdXgLAAEE
9QEAAAQUAAAA7RtNc6JI9J5TfgJHrdqpQkAk3owmtR52TCWZuTfQJuxg4zYkzlz2t28DAg39BYoT
s+UhlRLfV7/v92iXi9sniN8hnk6jLUSL20f4zxuMkzlAHgxD6F99QwF5slzcLkACXBBDEaT2Rbu+
Wlb0/D38PEIIekkQoQeI/AC9zMMohgR6ZOkT07L10Xji6JbDcqowp1OPS+UeR5t5GECUpNybNHVd
Lk9Gwj9ckhxfKcNgAwI01DiKVJAaUJTIf2vIM0aA3qMfcLWFGKSEZsh/xgDFICP7HGwgHgxpNfRi
ZvGRIokg9wEmnChZvPTUDBGeLP8yzwZDbaD/nKzX67EJ16bu6cPc/+4Jxwj/IgaHIUxgAV+4Z2XK
56h0DS6k5FuOhAoBLdPOBBRr7hUgP4SLjJkabP+5tHtM5Hp+hRhqgPwRx3FGzs3E1rVtHi5X3Ug9
RNstsTVAWmnQPzQU7bRExkMl9fwNY+LcJScJAgFZR3izx8i1UuLlPui7XMzcXLfA+0FEeiKuINOm
H/gLFv4kLmqZeuGiXB8sJCl5EMAVHYLTKd7HYrTZppA+ByRCdSpPb54H45iI8kXzcmVqhF+cajGI
6Vw1sSZGSrAk5QfxFiTe6917mZCogDNH+rAWbmm6EB0uSyVUAGmDa6Iba6I7Y8uZmDaboSSKVup5
kulZlNGYlN5XsE3s0wcbxeNkwZZ6VBVqtGYNl9hcFHepcukoyjBJ/dNHnuuMxymmLAxXDfR+rOIY
lv6BGjM9V3ruOAE4+Z6H45wI8QKpmqloQzAECRThsq2IdXNjCG3nwpcAUejLuikObTv+ghuSGgge
TY3ldlQ70YubjEdG5SbiBL2iM1O79FyJQ30gEsxT8xFuWtGWEnvtguS1TM50ZjZGtlb1ilqVN1Nf
W1u6brgjc02aTWtimsOr9i6WlyPqQSZmw4+4Vebb9gUDH36F0Id+q+qiOySpwR3n+QFVh+qhszhY
uX8T5eR55wupLtr1kDkZA9kroRoEUQTYSCH2zlZ6ZeXRtfMS27bgv0K5k4pcVy2wV/isSiDT12vF
miXNRKJCd5LxiIUV5K8iHTMIggzEszXwU4Noq6ciEpcLbWSYI2tsmoZl2IZh7cnRtGqHIyS+wh1F
tsyBMpS7n0GcpgJWburJdLrDQULjPqWBLU2AJGM9iBTT0UrawANh6JJTDOVlifCc87xNkFHn/Xtm
DZvHgo6WGnBZbMoMvkL5OH6G4XsJwEsAXgLwoABkqrMqALnlXPyl3LQsvNiBOLDyAHxkEAQB2EWK
yo0fjz1rFzd+5Gld4MaPyobraDd+lHnNh9SRaLMJknoTuwvCcJ49l3f5x/NVFq2mFLWixXypSIf5
UWWb9OaZZSvColpxkUQVSwIsLC45UlmEpOXkPkBB/ErqSRfYVrWHK3kbhXcqOjwu9RWEberWMa8w
RCWM52lMEeIEC1fqawHMCs/cCCvCah2kaaEI+/PbazS0Qk3anCE/Pcx+fTxbJxDXlgjzvWcXC4KD
5/dEYjf+LqIGQngCNyTBoMpHJWDDUbiSEFYz3093suTjO9QSqdWjViUqj9k/U+MRawiXflSW5Ios
jUMeBhuHE2ds8+IQIvLkDSozRfeXjq2Pz2fYSDUSUpzD3pi2PE1KyB1z9t7qbRfc88o4YopZXIFa
Tetp56yo+TMl4+OX1lXpnZ3smPLyTSQoWC/bvlU5r1V7NlwranoGw5TrJuZJut9L1/0Zuu5Ld3zp
jnvrjim3Zy6w2TdpSyUygvQiXJ30BvxyYfZ8uY/0Jp/8dVk7PvmtstPc0rhc7zvf632SyzOXKzB9
XIE5hwsd9thwDr3Q0bbHPe7ix4e8c1HXjsOE67/idDju5UrK+V9Jka2EOl4OAWkvxTwNUAIxAuGs
+LY+gLRowI6ZPzKZivGDxFZ+IXyvo1jkoaAhFJ/sEj3g6AXDOK6i55SvYITSydv+3CySpUbTAi2m
oRkPR5CegRhWnM1SnBO+gDjNsoraoPDO3MJMXYYzHo96rR2nbffBG6lPsnKZqWK1gGFmQH7qaT3V
kIzrHDTVdBhEOwhjGo5gdC1Pz3lTcodxhLnvSdL8Qz5X70ouI8tQPW5/2M8Qjnt9c3bBfhkMf+Ng
+Ntflf1/3hX1OuIws0H5M6j+BiBH7zgAHTNPxEm0lf2CUfCrzsbYldGgtomk0unK1aZpmEa3JaU5
cqweT9ATmU+jtt5Yn3oZXQjcqW37D1BLAwQUAAIACAAGNptKcn5Te3gGAABhPwAAOAAcAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9vYmplY3RzdG9yZS1yZW5hbWUtMS1zdGRlcnIudHh0VVQJAAOb
9gFZG+kBWXV4CwABBPUBAAAEFAAAAO0by1KrSHTvyk/o3U2qxioSSMDsYtSaVE1NnOidPYGOMpIm
06DO3cy339MQnv0ATBijk4Vl0TmvPu/TNPPrq3tMXzGdTIItJtdXS/z3Cw6jmU0c7PvYPftOPFiZ
X19d25G9skMsg0QX6Pxs/v+l5+7gZwEh2Im8gNxh4nrkceYHIQbogaGZujHWBiPT0gyL55RjTiaO
kMotDTYz38MkYtyrNDVNLU9Mwn2/JAl+rQy9je2RPhIosoZUr0AJ/ht9kTE88ho848UWU5sRmhL3
gdoktGOyD94G015fIUKgQLz1KDiAHPfJJq6P0+dMhBCEf3jCFCMb/mAP1sAaDYYa2iaWY0a5BTYB
/QFWwT6OMhqpD+X6fggy+wkhFb8KJOaWen3U0/4x1+v1SMdrQx9rfcCs3XLM7DCauTTHuWbakboL
tlvwX5ugzIq/IBK8oUjFo07q2Qul4IEZJwUCgKwDutlhJFrJ8GIb9NyVEDMx15XtPINI9+AK+Oz+
j9+8iEEVVyeTRxwt6E0IiL4XPqUU5mQdAIM0poGTBJ1nhOIleEJrz8fo2/k3BMK6Xvis2Knrude8
yAX/c1gAc4gig/5b64Ra7ISyMEglyXgA4KKYkScTukvNwWbLIF0BSEDKVO5fHAeHIYhygZzEngj4
hcyQXljMaaZhDhnBjBSobmtHztPNa5a48t3o+kDrlyKeVQ/Z5uLKUohh1DsH3RimZo0My9THfa5g
KRRdq2cz1rOswHGp/1Dxbo67j/cCj87inXlUHu1FzQ5XYHNZ6DPlluKRYUKdBN/SVqMRYO6ZCZRR
vKhwP4xRraGhfaDCdSdWuJQM6IxGfybRPAMhHnGh1Nd0OxTbEZbh8h2PcXk5lJp+hR89UkCfkyYV
oIolK+6NOiF5Vl0U00mznJrzLjyAeDOmNFZhcq9Eb170lGXUYjodDsYobwRRnuyYhdeGpg1XA30N
naRh6nr/rLlhkxpSWIjFrCpSVBq+bx+p7eLfMXax26gkaBZkIvwmWD++3rNl4Sq063EsLFZ/gamS
1HUBBQqd9zk9c5AHJVSCALPYGyXEbuuZjnL9lvYLntaA/4IkISMLpHqBnTSC6gTSXa1U73nSnF/U
6E4xifGwkhyWpmQOQZK9RLa2XWYQtLhP88L8Gg2G+sAY6UNoS0x9aKmr2J1MiJYaQT3H9v0VCNxX
lwHgORNZVpJLZ4f3ghK2iEXRM0vAWZrJcveCJFP2EYbKydlPzv4JnJ2rOnXOLixT8h/VpuXh5Q4k
gFU7+5JDkDg7RxmcPYifUBg/Fr3csJp5+XJfVbTx8qXIKBIvX9b2GXt7+VLlVB+S0oPNxovKvdub
5/uzeF3dau/Pt7Z+VKUo1Q/ux5psmWxVdVZd3bPqfC8tHEIkWfFQA7cTt1A3hGSbaKNVwRBxKY/G
Y10zOphbZyI34AqIwJOFUp9LYBZ0ugpojc+vPRazaUwe3+RX0Uph+hOMwWwzu1PR6TrCtDRmJ0qJ
R+PzvWbKSGE38bReAsHpcVhdssgAK44ilARYTV2XHTXC4ytGkdLqQaP6cesR4P4rMx5YQ3oYVUhh
QpGVcSjC4OPQtEZjURxiAisv+IAnTa23L2ZYSTUKUoLNXupjdZpUkNtn7wcrhm1wjyvjyCnGcQUd
vfws9N1vetUFeVrLuM0h7GdRd94MTDtTvLqhAAlS1vOm7x8+qEhK8vc9O2qu6TJiGK6BqGJ20iyf
mvRTk35q0r9+k17wde4a2fiSdXYyIyivo5VJb+wfKxyvz3fhXeWjWc35JHe7urkDcbpkdzyX7Fpc
TTldMDnEBZNjuO8wHrHXF8d73+GztJen2xfd3L5ofzalOttpefPAZt0It+qRCFNi+9P013Lf3qCF
2adtj2VKu3Zw/eT++k5HocxD7YpQYrJzckeDR4rDMA+JLl90SKVTN86JWRSnE1ULNBgipiIcSYIT
0u/m2Kcw+YuYNtBTm/lCxKNcLkasc/zquXxaFywpDDfGiGO/cWOevGZ9R2PeYpZqIQy72SCevrLd
C9453FAaUOEbB5YA4Dl/63Dquvv1E+OH3VPf70XIPsHeyXcJuuak3yWcbuB/igHp3W+gPuzqfmdN
wBe+9n8UN+G5ISb7nuhwk5qltZnUPvu181IchFGwVX0bKfl2t2Po4iQcy1c4IoXeR6s9r9WH+rDd
yas+sIwPFLTrg2XV9pr1r/+5JaR+Kv7hJ1BLAwQUAAIACAAGNptKoYq2V+YGAABXPAAAPwAcAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuY3Vyc29yLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJy
LnR4dFVUCQADm/YBWRvpAVl1eAsAAQT1AQAABBQAAADtW0tz2kgQvvvknzBHqIqr9ALJ3GyIs9TW
Bip29i6kAWsjJFYa7Piyv31b75HmIclAJano4HIx6unu6f76JYbl4v4RRy84ms3CAw4W91/wv0cc
k7kdONj3sXv1NfBgZbm4X9jE3tgxFlGiG3R9tfx9+bk5/TwMAuwQLwzWOHC9YDf3wxgDtWoopm5M
FXViWophsZKqnbOZw+XyEIX7ue/hgCTSmzwVRa5PysJ9vybZ/lYdRnvbC8aIY8gWViOKE/w3xjxn
eMFL+A2vDjiyE0Z3gfsU2UFsp2yfvD2ORmOJCqFk44MXAQAoEzqJlgwTnlb/MWujMRop383tdjvR
8VZXHGWc4eUBJIbRGzgI+5jggr6AU2X6p7B0JZdS8pSjYYuChj5NFRRb7tkOXB8vUmHtZPnn0k8x
6PX0jCOMbPgDR1uqdWtOFXTI4H3Vj9U6PBwAynaASod+QEH4iohMRpvW82MUARhLSZINQLINo32+
I7NKuS/1wcjdcHdm7rq3nW+g0iNAQWZN13MXLP1FIGroSgFRLgYLTUoZQLiiM+NsFuUpMtwfEkqX
QxIGdS6PR8fBcQyq3CAnMyYCeXFiRS+mc4tpmFrCsGTlevHBJs7zx5cygVABp6vKuBZuSRYXHS7N
8FQAodE12MYwFWtiWKY+HTOFQ2LoVjubqZ1FhYZJwecKNnN6+WCjZFws2BJEVaFGW1bbgM9FcZcY
l46idCfUK0V1NtZkoozlYbhqbD+PVyzNUH6gxXRnIz13TOyI/J2F4xyU2GGqZra0DRG2CRbtZVsH
4/ZWE/pug3deQG1f1l3x3jbhL7yH1AD7aG6stJPaibPAZKJqFUzECXpFZ6Zu6blSh/oAGswT94E0
VLSR4K9XjzyXyZnOzJo6RVVvh6q8mWBtayiKtlH1LTSHhqnr46vuEMvKEbWQqtnAEbfKfD3sItvF
nzF2sdupuigWJDX8yll/R9Whet40Dlabf8A4Wd65geqCrsfMyRjK9GDVx4JiGbj4eyL3G35b2+R5
hq4/oGOKrxkyVH1iqYahfED7o0+8jwGB4oduVN1Qb28niiqSm3JlJB6OZBXduS6zKcfSWvQ8B2uJ
6ioiavYCbHQwxCrIQC6CPtdydZYF5tsU0l2lVuxZ1kwktzhRMg6xtIL8V6RzZoMgg/FAZ7uJQ9Dq
sYjk5QKpmq4aE13XDG2qaUbOjuZVOxyw+IxfKbZlDpVt+fjdi5NUwupdg9pr5BF672OSGKQJFDLe
WmSYnl5CI8f2/Q2cYiwvayBzzkObICPPz4/M2m6eCDpaasRlsSorwCrIxu8LhG+aT7oFbpl6eMtd
HJlRtgVaTtUlxDJSaXDRJKIk3S2eUtJekdR23mZg9LRk/2AoPSgNg5LqEgHA4O1HQL8ol224p8sq
syb3U0kmaf5LEjnWy+ItAHr2puJL0pPxgN7tMXbCSCgBMF0jqDFoPkw9DMpH4YuXdHC2DwdIF//E
b52iYd3PxHQciLEtbIFOBvaagyaqxc1fnfTEetdG1sx0yo2eDM8wTMZh1FgE01frzZdcsrrHpaj5
XyizjyJD+907iTGeactmXFeKH8qDj6WXRDZLK894C2aDNPW1dKwZ0TmqWpfktTjVkH3K+oLnUulr
4Yv2uAsZJH9cj3vqiDoMmcOQOQyZw5A5DJnDkDkMmcOQ+bsOmeerCuF+75H6BPjq+f48XZd/sXSa
JU/XurWMNc9QK2bMw5ZEnBlKdlWraTHZnZairnE3iSqchFhYn7JNZR2T9nYPXuDFz9jtRdup3nE1
72LwXkWPJ6X+nflUV4x3f/ktKaQ8pDEFkRNqXK2vBTSQdTZh1BKUWy9pNYsc8/N9Ed+wCpXsLvM6
i0icwv9mvEYCOdne+ID0tmRTEjZQwNUEREEBSW4IwccXjIjUpaHkDZvHfQu2w0T0AuwTJnn5Zi8B
JNjJy9fdluCodslgnieS5mVK7sGlocrbwYaqaU2mvFDFAawccWsy6R7Up5SlnrccBPkjS6Z/JFEF
soXXh36uYBZzTFFt18rFme4ftZTTu1bBXS8w0e9ju/qHj8NGkZKw4sTArT6VF1gJu1NC4lx5+N2h
9atAvepx7i4G+pa31p5biG7IE+eb9CVeS7uS0jCdSHOn9AL8z9BinDJm7Ipa2Vb8d3RRZRflDqzo
xNagaOQZsCrvgky3axDUIv3F9o/4IYy6Tu6f+h6x2+xe61HOO7x/4rm0LOJx8jQ++gTUIdHRIUfg
O/fDAA9D/jDk/wJD/jCMD8P42Ybx2tOYhAfuhEw/EP5SiP3VaG9q+gJ8KrFC0lTXLKVxi4X5CSkQ
6ZoQNtKfotZZ7+23DU7Xl3luashRLaO7nOx3nVf/A1BLAwQUAAIACAAGNptKmPlnbGEHAABwPQAA
NwAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuY3Vyc29yLWZhaWx1cmVzLXN0ZGVyci50
eHRVVAkAA5z2AVkb6QFZdXgLAAEE9QEAAAQUAAAA7VtLb9tGEAZ69Ek/YZFLJMAG+JJI62ZLcSo0
qNzY6Z0iVzJrilRJyk4u/e2dXYrPfZC0JMQteAgCLWdnhjPzzWO9XMxvH3D0gqPpNNzhYH77Ff+9
x3EyswMH+z52L74FHqws5rdzO7FXdoxFlOgKDS4W5+PnHuhnYRBgJ/HC4B4HrhdsZn4YY6BWDcXU
jYmijk1LMSxWUrFzOnW4XO6icDvzPRwkRHqdp6LI9aEs3Ldrku5v1GG4tb1ghDiGbGA1LHGC/40R
zxle8BI+4+UORzZhdBO4j5EdxDZl++htcTQcSVQIJRvvvAgCQLz3yQ5cH2e/cxViUP7xCUcY2fAP
3sFSrbGqKWiXeo445Q7EhNEP8Ar2cZLzyGKosPdjmPuPSyl5ytGYWRqO0FD5bq7X67GO14Y+UUaw
s/GVqbDTWObanBSW6cbqPtztIH7tAOVevERB+IoSmYwmrWf7KIIIzCVJNgDJOoy2hx2pVfJ91AdD
d8Xdmbrr1naeQaUHCAV88fDHFy8hVOXV6XSDk2X0KYaNvhc/ZRwWwToEARmmQZJgOysI0SX4hdae
j9HHwUcEyrpe/Cx5U9dz56zKpfhzCICZjTyH/tMYhAoNQhEMMk1yGUC4LGfk6TQ6pOZwuyOULock
DKpcHvaOg+MYVLlCTupPBPJi4kgvLuc00zA1wjBnBabb2Ynz9OklT1zF2+i6qowqiCfVQ/RytLKU
MIyGA7CNYSrW2LBMfTJiCpbE0I12NqmdRQWOSf2nwrs5OT/eSzLOhncSUQXay5bVVuBzEfSJcSt4
JDuhTkJsKavxGHYemQmkKF7WpJ/GqZZmKD/R4LpDDS5kAzaLkj9TNM9AiQ0ulfqGbifCdoJFe9mO
x7i+1oSuX+GNF5S2L6queGt3I4iXujRpc5FGRsecWuhZ+gFiZsRopMIUUYleveQpz6jldKqpE1Q0
gqhIdsTDa0NRtJWqr6GTNExdH120d2z6tqUFqibHIExp+LbbRLaLf8fYxW6rkqBYkInwK2f9/fWe
HQtXqV2nWFiu/gJXpanrCgoUGowYOzOU1MzFz4xiEbj4O5H7jH/c28nTFA0u0Z6+7RQZqj62VMNQ
LtF27yfepyCB+omuVN1Qr6/HiiqSS7kyEnd7SJ83rstsOkT2vej5wXS5jQv/VOwFkdrCEMsghZwI
iFzLVVlmCGxSSHeVSr/AsmbiqsGJkkmOpRXkwCylMxsEWYwXdLZLHIKWD1leWcyRqumqMdY1aGtM
XbPkVfBepERHi6ChY/v+ChQeycsIyJzxPCvIxbPTR0FlN09EOTIrxHmaynP/Mkin9DNAhWK3HUhy
mPOW2zgypWwK6gNVm3BOSaWBnGa8K1QOolLoTiwDKklKVFu+yKsqFKM4jNLIB2EIdCKJ8cPgw8Us
fQRlaOVRVyA/fMURgvxKJz2oGmgPXXS+Umibbp1ObfeFHGnRsjcL91AZSopAf2pc1hfQGkMVAR9H
2AkjN36DFu3R2tG93RGah5UUmznVOVDJgOBn4DGrl01gLNdVZk3up5xMMgHkJHIA5tVbeg7ylbSI
ENcR/R96jZDCEMV1HI7HmtLAisY68CIhLOFkmGJOUMfashkbmiFisw8Afc4zdsEINHR+A17QmpW1
MCwy7F+iX1ozyTWDXYNWAL3v5vUyNMVwE7ZlR2PtnhPgpSHgcCLUEX5tm2sz1YlaOj0TSJNmbRE8
WazXjw9l/QGXotIPC2V2UaQfCTrnVcYzTQmW60rxQzn4WHoJsllaeRKeMxukKbQaNqLMZyqmJufz
LdjH2L31w9Wd5x8Sc3xkvmiT7+bH2r5LczLnRYH0gPys48NcFsU/b3w4dtLuZ+V+Vu5n5X5W7mfl
flbuZ+V+Vu5n5fczK5+ueobbrZdUB9lXz/dndF3+F8TjLHm81o3lvv4OlaLPPGyoDamhZBf46haT
XXrK6j93k6gTkBN3U7dUH7ls21ijU5HkSaneF5joivHmP/xLCi8vDJgCysEBV+uBgAZSwiqMGhCz
9ki/nCWA9/fn8JpVSpnoPEdmicQp/PsJFRKcXQBqygQ5YS0KuJqAKMju5HIV/HzBKJG6NJSc4nnc
k7YNTkSHbJ9xkpZPzlUMEjuH2nKzTnBUueqRxiDtvStXYbkvLoUqbwcLVdMaT3hQxQGs7HFjMmkP
6mNqRsfbHYL8cecFYI5fCapAtvDq1PsCs5gjjWoYFk5/96p8FNvWbG2K5E13jWvFR6ILJ7av9Umn
e2TSIisRfYyhT5WL3wyv/0q4F33OzdkCv+Go23Mz0TV54pzzQC7zNbQslIbpRuo7pfH5HtqMY+aA
TVYvmxqATbmwsotyBxZ0YmuUaOTJrCjx4qvNleG+8cxhYkg/LCoA8Lnr+7abtCtNy2lH7c88/+ZV
PSZP472fgDpJtHeSPfCd+WGA+5G8H8n7kbwfyf/3I3nlKVSGnezDBsFXvZ2py98cUIlFwEx0zVJq
12KYT3yBSNeE0SH9VLjKemv/WGG6vjjknZoc1TLay0m/uxVb9V9QSwMEFAACAAgABjabSqz17nep
AgAAiwoAAEYAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3Qt
ZXZlbnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAOc9gFZG+kBWXV4CwABBPUBAAAEFAAAAMVWTXPa
MBC9c8pP0BHPNDPyB9jhFqCZ4dAm05DcZXsNmtiSKyvQXPrbu9jgD/xBm6bTA8MgdldP771dabWc
P4LagZrNZApiOf8G318h0wsmAohjCEdPguPKajlfMs18lkFfJLkmV6PVv6sXHuMXUggINJfiAUTI
xWYRywww2nSoaztTak5cjzpee6cqczYLOqvcKZksYg5CH3Y/r0npMJ68RPh+JEX+RQzjhHFhkA4i
L5Qa1yrht2N0icHFTr7AfQqKHQrdinCtmMhYXnbNE1BjYwCCHEi84woNUKMwOKBsFelC9bO1NjbI
mP5woyia2BDZNKBG4Zc73FGqt8JWnQsV+2vZcOuxdEHWFW7guNSbOJ5rT42WtQfQXgDr2G4Otq8V
WiYZ4HvLRBjD6XcpW4ZnWG9BAWH4Qd0907tx3SlJC7eP/qzUg0xTdDYTpNT3ExFyT/TQHpdQL16V
Qm+WOw0kYEgkVVJliDKrwazlU3Rn6Pd5U8xZ8ILYHtERkGdiR1Ez8L3JhA75OuTh/Vn6x6jiWQ79
j4zZgT947kwzpZ9BZYehgiA2UOvqC4NNAdPQl9sebs7NjdWrnQ8bLmrpq6YU7x1kPdPgqHbZ4xh2
X7+kZjN1vK1kksagcax9gQSHDAbWcbVxjxoYaz+Qi8WBMEwlp6sFGdpzvSW7gsM6Wa5lTkk170k1
qQ7qRg6llm/aEV4Yjmvbxuj3RS2maG0hh3mmXAcjUjylG8VC+AoQQogj75oEhfvKA/CscQZsABwj
sO9Y/6sr5kMac2JaVWOuagcNeZYyHWw/78qLtdZPtkmNwUum/SQ6pzvTMj2R3PiDCw1KsPjWl0o3
Jd3zuFhuKVmXPa9bMT21LY82Y4LWYwqDbKsZlLA3H/InxkoUZzvLMD2nt7V6nk2jX1BLAwQUAAIA
CAAGNptKuGzAgwsDAABNDAAAPgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJh
c2UtcmVxdWVzdC1ldmVudC1zdGRlcnIudHh0VVQJAAOc9gFZHOkBWXV4CwABBPUBAAAEFAAAAM1X
S2/bMAy+59SfoGMCbID8SOzm1iQtEGBbujXdXbbpRKgjebKbrP9+9CO2HD+yDQW2Q4Fa4EdSH6mP
zHq1eAJ1BDWfyxjEavENfrxCki6Z8CGKIBg9C44n69VixVLmsQT6LMlHcjMaHxgXE9IB8qUQ4Kdc
imUkEwgelDwsIw4izYBkbNjUsewZNaaOY8zcyYAr5kmVbhUTCcsdFpEDr9M4BhVKdbjrwnyGg1Rv
aL5g/gsXu6dUqj7/ha1uqFmUmPFktK4JDcoclhc3R3faZV1qu22Sa8xV5i68UfpORbBse6gIAQ8e
B6jtQHBxlC+wwYKwzOxOBBpoyw+gCv4avGKrBUh4hcrtHrhCGsf0pxOG4dSC0LIpbWPzmmxEUQ8M
V7Rq2bdJZl7TvJXnsl1Wv9vtWjwquVOQJFVqScvSl4c4ghSCa+lbAR3iWg5wljsbwO6ZCCI4f9fJ
YpW2e1BAGP5h3V3DnRomJSXheiN3MfKA/+J7KMSg86CL21w5ylSKjruZkLHtUHdqu441a7wf3bir
n1pH44lOqm05dNLdibrnOs33IfHWcWYViX/m6lHGMTYGE6Qq+Aci5ImkQzGuZb18VQofeBVpAFBq
ZY0QFarBrOll7dojuBm5ukzmSJQlFBXqTaeIfPr6iafQkt0dpBt1n6CfiCf7s8O1CCVycxbTwRmD
mrS5iP4+RXVNm/5Dwi3fG9QH5Eyl30ElmbBjEjt9Nl0ZLgpYCn3Y9oCxb2/Nvxb3vpbxYMeFZr9u
lrBHTMpqVxLR01aXzvPxhFYbfYuZz1W5zpwle9TIUPtA/DIjDSNoXUlOPN2TY8GjTphjGjNSz11S
i11W4RAHl+kZVoiD23YsazL6/cIW12gMnOZ3z02leI53igXwBSCAAFXzI/GLDqwuwJPGHfARoBLB
qeP8/xtb1UUDnsQs9ff3x2rB0WeuQVtsy7jR7TPLdGmL5NKszT4XKSjBonwharo+8Shq7Uk3TRs/
W8ku41tm0+jA3jzIl7d1udhcIAzX7n0wPQvp4LRu/yLo5eMXUEsDBBQAAgAIAAY2m0p4v9LQcgEA
ACMFAABAABwAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1ZXN0LXBy
aXZhdGUtc3RkZXJyLnR4dFVUCQADnPYBWRzpAVl1eAsAAQT1AQAABBQAAADFk89uwjAMxu898Qgc
28OkoAZa9UZbIVWaBBvsAULjoog2YUmGtsuefWnLn44UGKedIkX2z58/21kaL0HuQUYRJZqsiYJE
cA65ZoInpVBAh0/DEUaBjydoNA5ChEPnjbP3D8jSOLVyoii/yJ9JUSUlA64NaXBJQ8hxK8K4N7Sg
d1Fuh2Re7N1AkbWQeiUJV6QB1gAnO3cvdsDT+BVMntIJ4TmUJVDHpete3A5kIWQ17aP2hPfTjxo6
gJrMKeObualA6p8Vq0DOmDThLvoMiqIY+1D4GCHPym2anPO2pymnbaVDWVWHnwe1EsfWL63px2Z8
IcVGglInacqKzEW1K0EDvSffp0b+8uWZ6dqomORb0/NSC/mHUVl6LcNt9Y9uxvVwyujiseEzvhdb
ODli5tJJavxxb22uuJHYGNv1Jq/vxIL0qfq2/lzv14hQjrzW+JmpKORXu8bXtqhZ8QOpvc6B4eEA
hWMcBv7E+y+SfdSPRf8AUEsDBBQAAgAIAAY2m0rC6J/aMwEAAGkGAAA4ABwAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1ZXN0LXN0ZGVyci50eHRVVAkAA5z2AVkc6QFZ
dXgLAAEE9QEAAAQUAAAA7ZPPToNAEMbvnHiEPUKiySLQpRyBmHCqsfUBFnawRDqLy9Y/b+8S01Yt
rSVp1IObcNjJfL8Z5tvJs2QO6glUHMsWMOOaF7wD6w7rxzXkWbKJxPFeyHGJQ19YVVWhD1XgM+oS
e0j5kZxKRCh1LdFyVrxGlwwIlhxFA5v7rAXFe0VHLsliCQoIN58X0MiLpoxNiOGLGu+tcagb2bYg
CEciN+ELgvKZ6GM1vus6XSsFqLeVjghMSiXVaqfArerTZK8K6lr5AaccUQzC+6SElw+m57mW5l96
IjXHK4soDA3x3+O/7nFyC4bX6ZRjCU0D4rxuD9cwU7NP6GQc7/CARC1mX5o/z6sJ6PQUR3+mvoFc
89LAX9/H1Ad2a7KQQ6vdD444ttnAgNEoDCLmT9zfIu0/gHHZb1BLAwQUAAIACAAHNptK+jd1zBwE
AADdJAAAVAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2Utc3VjY2Vzcy1h
ZnRlci12ZXJzaW9uY2hhbmdlLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADnfYBWRzpAVl1eAsAAQT1
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
/SycNvBxe1pRbeOuWGJxkYKu6Iqu6Iqu6Iqur0jX2i5zaInXfsXLHUgcEw5/H3doaATcDPdDX1+Q
1csFZO6jVxzGUu+l7tgRBUyno9PtudOxrtjPeu2IQ/pZDj5nAB3T8zmEKx3yYGYVjw9m6iQ48Lju
szOYuXw5rMsXHmJkvcZl8OGOTxZU3ONBV3RFV3RFVyLi2LHiZUncHiI+Ch+MruiKruiKruiKruiK
ruiKruiKruiKruh6OA8tgAcPHjx48MeIfx2voebN/yQhCUlIQhK+ovnWPu+AGqiBGqiBGqiBGqiB
GqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiB
GqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiBGqiB
GqiBGqiBGqiBGqiBGqiBGqhRqsaDHZUg+azTkz2ZDKLzqaTitGYldy91ugHyPrwxWq9DmLD4x/JP
Vy2EKv4YVgYYNl7VRzcHuUYFH6YclSferrjJt7vyy7CJGunPeGXSJy0SZZabi/prGVpPNzqG3j9v
h5/3zCmq7Ty632XcUS4dK4WJuk2jWfLxlUFeN1gf1IOccZBb6tOCNMolDF2vYsTcqe59HTuAktZx
SyobjZES27HpWBO5PI5l85XY38bSk8IMP2Kqd7SO1mp12mIxEHNUSXmi8FeFclKeKqzMwtld3gXS
+116fujexuFnXOeiNJpRX9rCv7Xmoz2pTVDSbqvHy6xWkqg8zeHE9sdVziJOuNZRckuislITgPJU
4eGjFEFpq7vJ53IjGZPDcCDN5uKuWHhztQbhj6KxalPW1T/bjqrBX8MOoFp0pUEK3GButUvHcp5F
dizr/X4/byxLR52ZyUpvs/mo37r6+RmuuasSVE5lz7v9cldbgtul7rVNqNvYHpbXKiZGY9MM0k1/
5aRn1GcrXzGpX1ZmXDDBD+W97WRWEK9E7mRBcbk34csXJaoEy6zX8ju4ibbAf98Gple1UonSZBYh
65Y509Au/uFeziejqll0mS7tmONz5a0XJysWPElSPgC/LNMVjLMlRzVU0Zfd+63z9snAk0op516M
Zp7veuLJDsZCMYXK1/txIX45/eVkMP/J9sXQjvQVE/dJetGX49+dvhOqj4jZdJqcSQo1Nw0/OP9o
OiMZLZbm5Up/Yr5v9N+vnxB3Ui2hVMN50Yfq/b2Xoq/1tffrJzKlgAkTJkyYMGHChAkTJkyYMGHC
hAkTJkyYMGHChAkTJkyYMGHCPDTmp69fr79eiMsgkA/TQASuWECFKeLg90VwyMnZ7+5k9iD9szAc
5ezTH7dnf8jh3+zg7NadeSMZHg1cT579w7VmE5XMdiz5p7Ss4ZkfBcqcrdXgL6PptKG3ek1xIYau
OxELQBT2uoytKaz1zHaCrvHvoLlRxNaX7UJ00nHfxcFMX1KxQPU+gfElJxqJJzB4AoMnMF7yCYzX
EmR5uM+DVD6BwWMR5Y9FHM9TDUTnE51PdD7R+UTnE53PlTxMmDBhwoQJEyZMmDBhwoQJEyZMmDBh
woQJEyZMmDBhwoQJk+h8ovPfWHR+HcGkhGcRnkV4FswUczdfSWvAhAkTJkyYMGHChAkTJkyYMGHC
hAkTJkyYMGHChAkTJkwCsQjEIhCLQCwCsQjEggkTJkyYMGHChAkTJkyYMGHChAkTJkyYMGHChAkT
JkyYMGESSrXvUKrdApkIxCIQi0AsArGYXGDC5E1otAZMmDBhwoQJEyZMmDBhwoQJEyZMmDBhwoQJ
EyZMmDB5exVBUwRNETRF0BRMAl1gwoQJEyZMmDBhwoQJEyZMmDBhwoQJEyZMmDBhwoQJEyZMgrsI
7iK4i+AugrsI7iIQi9aACRMmTJgwYcKECRMmTJgwYcKECRMmTJgwYcKECRMmTJgwCe4iuIvgLoK7
CO7ClcOECZMgSZgwYcKECRMmTJgwYcKECRMmTJgwYcKECRMmTIJSCEohKIWgFIJSXmdQylG4yN0c
FA4WB5vnYHdrEtzzW3PPrDZxhkXOsDZHptR4sKMSJC3zZE8mg+h8Kqk4rVnJ3Utd5XxH63VI+9Hs
j+W9byFUcX/OAMPGq/Ktg1yjAkc7Kk+8XXGT4Zdfhk3USI/ETPqkRaLMcnNRfy1D6+lGx9D7521d
757kFNV2Ht3vMu4ol46VwkTdplHmaNwSw6i/ldiOlaufyOVxXARfFfzbWKpJzgwnOr2jdbRWq9MW
i05d4pcGeZ1y3cUMckZlroanBWmuvcuh61WM3ztV+evYHeWUI+WJVvMJSoq/ehz1pfUkytGZw4nt
j6tGcJxwTa/ckqisLi1LuY/w8FGKoLTybrI0LF5d7n52u/Vpab1LR1ieRXaE6f1+P2+ESUedmclK
H7DhWNzF1R/WOC4mRp3MDNKaXTlpf/18T1Y+ZVxWZlwwfQzlve1k5qdXIncyXV3uTfjyKU+VYJn1
Wn6vZeq5DUyvauaJ0mQmlXXLHH/K7Uquh7ldyTU2NxzZ0cFFcsuQ3RecIc4QZ8g7F2DChAkTJkyY
MGHChAkTJkyYMGHChAkTJkyYMGHChAkTJkyYMAnuIriLp0l5mpSnSXma9IieJs2rkRLXib3XIJw6
JhOl6DrLD9xp7oOl6R+SeizOJn2jd6632qtpRhPXl2uJ2l2jUPpMt7yZt9Ug5KyiH8wfQxmdv1q4
mPV8Wt3N84lA5ZLUoez/AVBLAwQUAAIACAAaNptKaK2DlkMRAACUQQcANwAcAHN0b3JhZ2UvaW5k
ZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci1wcml2YXRlLXN0ZGVyci50eHRVVAkAA8T2AVlN6QFZ
dXgLAAEE9QEAAAQUAAAA7d1NU9vqGQbgfVb5CV7CTDPjLzCwS8xJh+n0mElyzt7YL4kbI1HZhJNN
f3vlD2wZSzLEEA7kaqeLgCwLS5fu530eQU+O330MybeQHB3FlyE6fvch/PcqjMbtbtQLw2Hov/oj
GqRfOTl+d9wdd8+6o1C0ZeVN5fWrk+X++vPt23EUhd54EEenIeoPos/tYTwK6da1ZrXVaO41GweH
zepBdf2dlq88Ourl7uV9El+0h4MQjSfvfnufjXr58Ux30f/xI5m9fuMx7Fx0B9FuJeeD3LCrncye
Go3W/m7eyRhE3+KvoXMZku5kR2+j/qekG426091+GlyEZGc3+zE8yGku/pHikgN5P0jSd8ocS2/y
U6/tJO9Y/rf2tZ3dyk71r9b5+fletXVerfaqu7Pr7336jnHyPT3hYRjG4Wb7m8tzeSo/xYtLI3fL
ku/mHOGGA6w19qcHWPzJfelG/WE4nr7Z5s3m/16c91F6XJ++hCRUuun/ao29avrf1mG9cjnj8up+
uzqNLy/Tc92NKosT+o9KFF9XxmXvsemo21dJkl7ci3cqeUG6yXmcXMxfMftUFq+bXYP9s9xXzk7X
u27va3pIH9NLoezT7A/6x+vbP8olWmtUby7R3Gvw5kgW75Fu2MkSPDpK5hbji8vJlv2cTeJodS8f
r3q9MBqlh/Km0pt9mJX0/UaTT3Ewyt6r0tPZnOxwsav+YHTZHfe+/PZtcUPKgGvUqrsr3Ca3i6If
bnoryQCq7LxOP5tma3+/3qi3qs31O1TJB73xc25NP+eiO9raLf2BsB1UDx4dW/Y9Hg3b5IpaUst+
svWz9JwXuZt8uFlF01dW0//U9g+be3uTV5Yx7Nx6+cOclWa9VX/CT6zaOyv9uUfjbjL+c8axnR7E
55DJzA1lSBK641D02vVSpFatNwvP3Vn4PIgyLz9ZPRU/Wnb8O1ykt4b0ddm9rb/bVuXEg1wmtdre
8jIpvkF3snemu92el4eT+Ud6BO3J6UvfrXJTlqbn63ow/rK4OWfvzPXmQWVZK1aW983JtdYLE2Rn
+/3D9OfY77d2X939EpvFUeYL08O8dR3lpswfl5+Tbj/8HkI/9O+SLs1mNb2pheucr/9A6mRq6KmD
ztl/0g9ndt95k6ZL5fXu2k+2tuX0B1v+M1V9Ne4kb/v9tZfOz+xp0ffnl87iGltenytH36xW73BY
nWh2yRVdiLk/x+oub67ATQfU6FdXond912uuNnykJYud9W0L7kY3N9e1FxTcT/IugW5/ckIqnY83
rk6OK7V6o9bca9T3Dg9ajVp9vrvsvlZ+uHQXv4frzG4Xd7Syl/z212A0gb1+3CuX2nUyGGdf+3HC
tPR2lt5/Tos+mHuepcpOrzscnqU/xW55yKTv2c672gruj+2HvzJXXp33FlktKxsvomNxP+5Es8X1
g/K9uWdsUpu9t6x9rfz8LTYrqUcWm5SbWtzBCih9Dd+nF/DoJLoDvNlS68MkVPKu8bt9O/TipPB4
UlArG6zsYPnNu6g5vd+HnTVSfMUXJsLWF/ppznWVyd/5uu6eV/1dU7Y1O6anD0e6/ga6tru22WST
TTbZZJNNNtlkk0022WSTTTbZZJPNh7M5eQ6jfZWM4qRIZ6d4i218Lt94k9DVQ8z5avmpz2xY+uTA
YqNyqZmPo8BGfHuLzAc++/rRUcE3Kq/zPH3rDq/C+zj5V/j+E0R17v/B3k1VyYW0tatO/tU0/7RH
YfzPMP4QRlfDcebZg/SmOnte4WcLvDmuXhyNB1F6bq+i2fMTO+N4dlTrP+RgPDmA8AgSV/a8CePa
YeR/o/zKWd22+KK8tV05zJOVjQtsDnI2yuE536xyczo2qdyU7kk4D+lV8SBX/10Mn/zoybib5JPS
a3FrzCeFFyTPPPPMM88888wzzzzzzDPPPPPMM88/yTOwvzRYIyQjJCMkkSkylcASlWeeeeaZZ555
5plnnnnmmWeeeeaZZ5555tlIGFgjYSPhJxgJm/m+gJkvYp66IFBVqipVlapKRabIFJkiU2RqzEpU
nnnmmWeeeeaZZ5555plnnnnmmWeejZCANUIyQjJCMkISmUpgicozzzzzzDPPPPPMM88888wzzzzz
zDPPPPPMs5EwsEbC/taFmS9iiHnqwlMXqtL8qnTLS//Z1LSqUpEpMkWmyBSZGrP6PBqzPPPMM888
88wzzzzzzDPPHoQAVstZy1nLWctZZJrS/o0KaInKsxLYkpZnnnnmmWeeeeaZZ5555plnno2QgDVC
MkIyQjJCEplGSEZIPCuBLWl55plnnnnmmWeeeeaZZ5555tkICVgjJCMkIyQjJJGpBJaoSmCeeeaZ
Z494eMSDZ57ls3zmmWeeeeaZZ5555plnI2FgjYSNhI2EjYRFphJYovLMM88888wzzzzzzDPPPPOs
5QyslrOWs5azlrPIVAJLVCUwzzzzzDPPPPPMM88888wzzzzzzLMRErBGSEZIRkhGSCJTCSxRlcA8
88wzzzzzzDPP/jClP0zJM8/yWT7zzLMRErBGSEZIRkhGSCJTCSxRlcA888wzzzzzzDPPPPPMM888
88wzzzzzzDPPRsLAGgkbCRsJGwmLTCWwRFUC88wzzzzzzDPPPPPMM888azkDq+Ws5azlrOUsMpXA
SmCJyjPPPPPMM88888wzzzzzzDPPPPNshASsEZIRkhGSEZLIFJkiU2SKTJEpMkWmyNQ1kqg8K4GB
VQIrgR/3/zjsiQtoJbDIFJlKYInKM88888wzzzzzzDPPPPPMs5YzsFrOnrrw1IWWs8hUAktUnnnm
mWeeeeaZZ5555plnnnnmmWeejZCANULyWwt+a8EISWSKTJEpMj114akLkSky7x+Zj1rLPp+ek0Tl
WQmsBAZWCawEVgIrgZXASmCJyrMS2IMQPPPMM88886xFBawWlQebPNikRSUylcASVQnMM88882yE
ZITEM8/yWT7zzDPPWs5azlrOnorUchaZIlMJLFF55plnnnnmmWeeeeaZZ5551nIGVstZy1nLWctZ
ZCqBJSrPPPPMM88888wzzzzzzDPPPPPMM89GSMAaIRkhGSEZIYlMv4jvF/F5VgJb0vLMM88888yz
FhWwWlRaVFpUWlQiUwmsBJaoPPPMM88888wzzzzzzDPPL83zdhfZkzasgdVy1nLWctZyFplKYCWw
EphnnnnmmWeeeebZbyH5LSSeefaUswDWctZy1nLWchaZItOSVqLyzDPPPPPMM88888wzzzzzzDPP
PBshAWuEZIRkhGSEJDJFphJYovLMM88888wzzzzzrEUFrBaVFpUWlRaVyFQCS1SeeeaZZ5555pln
nnnmmWeetZyB1XLWctZy1nIWmUpgiaoE5lkJDKwSWAmsBFYCi0wlsERVAvPMM88882xJC6wlrSWt
Ja0lrchUAktUnnnmmWeeeeaZZ561qIDVotKi0qLSohKZSmAlsETlmWeeeeaZZ5555plnnnnmWcsZ
WC1nLWctZ5EpMpXAEpVnnpXASmAlsBJYCSwyn1dkbnnpv5QCWqLyrAS2pOWZZ54taYG1pN2wpH3U
yvmJF8SWtCJTZCqBJSrPPPPMM89aznrKlrSmtKa0lrQiUwmsBJaoPPPMM88888wzzzx76gJYLSot
Ki0qLSqRqQSWqDzzzDPPPPPMM888a1EBq0WlRaVFpUUlMj147G9dKIF5tqRVIfPMM88888wzzzzz
zLOWM7BazlrOWs4iU2QqgSUqzzzzzDPPlrTAWtJa0lrSWtKKTE9ReYpKCcyzJa0KmWeeeeaZZ561
qIDVotKi0qLSohKZSmCJyjPPPPPMM88888yzFhWwWlRaVFpUWlQiUwksUZXAPPPMM88888wzzzzz
zDPPWs7AajlrOWs5azmLTJGpBJaoPPPMM888W9ICa0lrSWtJa0krMpXAElUJzDPPPPPMM88888yz
FhWwWlRaVFpUIlNkKoElKs8888wzz5a0wFrSWtJa0lrSikyRqQSWqDzzzDPPPPPMM888a1EBq0Wl
RaVFpUUlMpXAEpVnnnnmmWeeLWmBtaS1pLWkFZkiUwksUXnmmWeeeeaZZ5551qICVotKi0qLSotK
ZCqBJaoSmGeeeeaZZ0taYC1pLWktaS1pRaYSWKLyzDPPPPPMM88886xFBawWlRaVFpUWlchUAiuB
JSrPSmBglcBKYCWwElhkKoElqhKYZ5555vnX9Lwlg2ezIAbWktaS1pLWklZkKoGVwEpgnnnmmWee
TWmBtaS1pLWktaQVmUpgicozzzzzzDPPPPPMsxYVsFpUWlRaVFpUIlMJrASWqDwrgYFVAiuBlcBK
YJGpBJaoSmCeX/7v3j3o3YBnnuWzJS2wlrSPtKR91KR94gWxJa3IFJmWtBKVZ5555plnS1pgLWlN
aU1pLWlFphJYCSxReeaZZ5555plnnnnWogJWi0qLSotKi0pkKoElKs88K4GBVQIrgZXAIlNkKoEl
Ks8888wzz5a0wFrSWtJa0lrSikyRqQSWqDzzzDPPPPPMM888a1EBq0WlRaVFpUUlMpXAEpVnnnnm
mWeeeeaZZ5555plnLWdgtZy1nLWctZxFphJYoiqBeVYCA6sEVgIrgZXAIlMJLFGVwDzzzDPPPFvS
AmtJa0lrSWtJKzKVwBKVZ5555plnnnnmmWctKmC1qLSotKi0qESmElgJLFF55plnnnnmmWeeeeaZ
Z5551nIGVstZy1nLWWSKTJEpMkWmyBSZIlNk6hpJVJ55VgID+4JL4O1O3i9eQCuBRabIVAJLVJ6V
wMAqgXWBdYGVwCJTZCqBJSrPPPPMM8+WtMBa0lrSWtJa0opMkSkyRabIFJkiU2TqGukaSVSelcDA
KoGVwEpgJbDIVAIrgSUqz0pgYJXASmAlsBJYZCqBJaoSmGeeeeaZZ0taYC1pLWktaS1pRabIFJki
U2SKTJEpMnWNJKquEc9KYGCVwEpgJbASWGQqgSWqEphnnnnmmWeeeeaZZ5555lnLGVgtZy1nLWct
Z5GpBJaoSmCeeeaZZ5555plnnnnmmWeeeeaZZyMkYI2QjJCMkIyQRKbIFJkiU2SKTJEpMkWmrpFE
5fl5et7uSnysAhpYJbASWAmsBBaZSmAlsBKYZ5555plnnnnmmWeeeebZUxfAajlrOWs5azmLTJGp
BJaoPPPMM88888wzzzzzzDPPPPPMM89GSMAaIRkhPfkIyYzoBcyIEDOlJVBVqipVlapKRabIFJki
U2SKTJEpMkWmyBSZItMsU6LyzLMSGFglsFmmGhcxxKwyCVSVqkpVpapSkSkyRabIFJkiU2SKTJEp
MkWmyDTLlKg8K4GBVQIrgc0y1biIWWUSqCp9mVXplpf+s6lpVaUiU2SKTJEpMjVm9Xk0ZnnmmWee
eeaZZ5555plnnnnmmWeePdgErBGSEZIRkhGSyFQCS1QlMM8888wzzzzzzDPPPPPMM88888wzzzzz
zLORMLBGwkbC/taFv3WBmKcuCFSVqkpVpapSkSkyRabIFJkasxKVZ5555plnnnnmmWeeeeaZZ555
5plnIyRgjZCMkIyQRKbIVAJLVJ555plnnnnmmWeeeeaZZ5555plnnnnmmWcjYWCNhI2EjYSNhEWm
yBSZIlNkikyRKTJFpsgUmSJTZIpMkSkyDVokKs8888wzzzzzzDPPPPPMM88888wzzzzzzDPPRsJG
wkbCRsJGwiJTZCqBJSrPPPPMM88888wzzzzzzPNL87wlg5dyN+CZZ5555pln9baRMLDFY9fFjtrd
qBeGw9B/tXLCRuP4Mt1prVltNZp7zcZB67BRq68d63yz1+s0o/STirrDt2dxMl7d9fVgOPty5gWz
PSy36Q3jUbj1/vX95upGF93vZ6E92fJkfiZuv6K2X3ipzPey/N50R/3in/D/UEsDBBQAAgAIACA2
m0rRdqJTMxYAAB/zCAAvABwAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLXN0
ZGVyci50eHRVVAkAA8z2AVlV6QFZdXgLAAEE9QEAAAQUAAAA7d1dbxpJ2gbgcx/5J7TmZGwpI4EB
4+QscSYrS7vrbJLZcwzthA3p9jY4mZzsb9/iuzF0YwJM7OR6pdWrYD4K6Lrqfp4qey5evngbZ5/j
7Nmz9CZOXr54E//3Nu4PzltJO+714s7BH0k33HLx8sXL1qB11erHRfeMfosOD44+tbrJcbTiQe00
SeL2oJsm5720H3deZemn8143TgbDB0ZH1XqlWas36rWzp7WTSuW45KlaV2k2eJe1kn5r9ISjV76Y
v5PO5J7nd14y3C/3KvXKWeXgqHO18iVu4uw6zT49X/VKS3efv87at3lnBLWTg3/En9Lsa3i2F632
x27y/u0gzYre424+3Vrz9HjysvnXzL3Y5OWPjotGl4WbP8eXV/8Jrzm66VWa/TvO+sPX/9BK3sej
D27y6NzdwncT9+JB/CZup1ln+J0tvGq4rjrhRS7Dp98a3vKu+ynOXnWz8NUdVf5sXl9fNyrN60p9
eHncfexoxJfJ+Bp4nnTG1+XkIu2vGkqr05mPY/4dvkun19Hd72D1a14kr7P0fRb3+7Nx9zd+5+30
083wx511773WqRyvfTOFb2DdsJaurOW3u+m8LB3ruvH8JA/+knUH+Y/6VTfp9j8EfIs/606383oT
o5496yaf04/x7PoKUyT3oNHVdlSGblrywNFlWvLYQEKnF0//PZ8mYajvPsRZHLXC/6q1RqVRqVYb
J9HEgeGl/Cq8TPi4ph/w9Dmm5K+atqvvWfLTFSNeuunoOD8Nq7XTynEpyJO3PHqx3XwyjebT+Sez
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
wNfA18DXwNfA18DXwNfA18DXwNfA18DXwNfA18DXwNfVpVaXzHHGL6Ei+xr4Gvga+Br4Gvga+Br4
Gvga+Br4Gvga+Br4Gvga+Br4Gvga+Bo/HoIfDymfUA16XCZRusabAOBr4Gvga+Br4Gvga+Br4Gvg
a+Br4Gvga+Br4Gvg6xrwNSB0FRD6GICk1u2pHw0kd9uV7petW3Q3e7Iwv6bT8Cd6l+ExoNnDM/vG
5pKXPLem91ASDBvGQurwfdcTgdjJpsSnQrGVeceNiPM8pGQxGo4ZwbV5XJuz7nJDcYvYIltI7u4m
KX3bAdcKPKNsPnsB3YzTjHsZjQQPQo9fHQPmuOxXc/5Crlzvd/Jema+pksI3j0BOytvCFto4KOKV
bxo5xlUWax4Pqpzw49jKAn0S/EqCW+K/zANmV/hM3uN5HJr1nA5eAc4Azqg/v+oQl3PAGcAZwBnA
GcAZwBnAGWVxRnNgQz422OGgn3M63+WUvTqocM/ZkdvLOWPjVMs91eZ5Q0lTWb+oD3sD+RJImjsK
h9rog3ljk9uBCYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgAmA
CYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJ
gAmACYAJgAmACYAJgAmACYAJgAmACQpggroO96m6fuAuub9FyT4Q8ov1lMemMyPzebzBKle6ok7Z
7XrUBvtKjvCFVfnvB+kZJd/0sXqjiHAGNY6plhU7LsU6ntJQ8Y8YU2Vdf/gbgUq9eWjz6+I1acdp
iKMxpoVVFv+k/od4mtPQ788rp8ZNsPnhv8RA/wdQSwMEFAACAAgAIjabSptI3GBJBAAA3jMAADYA
HABzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWJhZC12ZXJzaW9ucy1wcml2YXRlLXN0ZGVyci50eHRV
VAkAA8/2AVlY6QFZdXgLAAEE9QEAAAQUAAAA7VlLc6M4EL77lJ/A0VTtVImHAeeWkE2tD7tObTJz
F9COtYMlryDx5t+vMBiLl+J4nIlroqmag0l3q5+fmo/ZzfU98Gfgl5dsDfTm+m/49wmyPMQ0hjSF
ZPSVEvFkdnN9g3Mc4QyGJI0vxsVo9snsjVeYUNPoUYoZpRDnhNEwZRkkt5ytwpQAzQtFY2y5yHfc
iesEU8dGyFSYwhHj+QPHNMNbg+8TSRL1Hr4GvmB8dXWcD3/CivEXIXeN4++EPt7njA9FVMrKgpJE
pTM2K7F59I/IbmVuw0kuC98SSrKlbt5fx15SyYf1VN0BTUSfbIdLSEvj5KIAdU/aa8qzKVtpTWjL
pmOr/Smn/HhPelGi68NpAMfxPbOvGIQ+s+8wFzOPC0NXNJGm6oGsgIsB1GXWZdZoo9vwp7ehLou+
BHSZ9fSd9yXSeGmJ2WqdQg5JnedtZm8JFwpj9J+/WCwmyF8gJ0FmR3tdpuY1XRf16IqTVySf0zK8
4s/79D+wXdCllKSoaDqmaJWtUwrdJaZJCrvfdUCZSNrDEjgYWPy3nAmaIMua2EYVufZGe3OUN9Jc
d1u8c07P4CjBt2XwFSYoIcmdgkQ5FprPLuG34hjGX0p8HAKcLXZW1su76sI0xq7vebZj+8jtbhaV
cF+eOo/GpgyMluMjsz/DsuW9m6fJyyRAQZ2Xt5m6Y+u1AHdMjbqGvxmUbYxcdcZrXodPnIsrtT5J
oVCxfXsNWms1MmtHBWM5QBkWyZVpvK0mEv8sb+pOJkquUwzLvKV+mqq4tm9/YMZQHCnjznLM82/A
s2KnE048ghKxGqsUB5zDkG53kbKQ7Q7WLoJHQiX1WbMUx4LVAA/cPm0INaquqLFAiM3lJezyklfb
2G7fGjV8lH6IXIRFwoQTxm6lFRnakHxpPJc5NBrcvBsY+2XV2CNVUd0YiraOvGQq4NBLfHN0eFF7
tsXm791C2YqU0a/rR44T+AsggURA3hcjLruvDoBkjRhcFwkYgU3P8/O7RupAE5KtcR4vf3+u32vk
hdl6l4W5WcANSdOwc93/Cmv+ByxI6g9MYa/SAG7ECuHBD0il0tg8aFXrd+eQxBjjGKdpJLww1bgt
Dus9pYnWtuN4P/L6PgCnYV9HNKKphUbtFA1MRI/MnHdW3u7wLESnz+kOuc8PkFpZkUCpB52LYO6f
4hiy7GqRA2+gf1h14A7Z3wh1A6Usv3b+UQQoPB7cIWQq51Cl/qZvNbHCVLednakXqAdQYe5H5uBo
xD27fpT3C7ZupDfwA99uysQddk4IiQVwqJ+ULF/T9Aq/RLB9Pqvun9Y5vu8dfk7JZCrfG7vsXLuw
VUYu3ud9VDPTn+fzpKYdPhPtcF6M6buRIMiyP7B+sIiDMyFBAi8QoHgkCXIomXH6rV2TIJoE0SSI
JkE0CaJJEE2CaBLk85IgJ+IIFFyKP3WsV7kUf2p7P4NLEedYb+dS/gdQSwMEFAACAAgAIjabSg9a
gaHqAwAAhSIAAC4AHABzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWJhZC12ZXJzaW9ucy1zdGRlcnIu
dHh0VVQJAAPQ9gFZWekBWXV4CwABBPUBAAAEFAAAAO1Yy27bOBTdZ5VP0NICpgD1sGR7lzgNamAw
zjTp7Gnq2iYqkxpKSaab+fa5kmyZelBO3KYTFAqQRZj74rmHh9Rd3Fzfg3oCNZvJBMTN9Wf4+xHS
bE4FgziG6OKL4LiyuLm+oRld0RRMltYH6/JicYwX7e3nUghgGZfiDkTExWYeyxTQ2vFJ6Plj35tM
fTIh7UxHz9mMdUa5VXI3jzmILM/ejOm5/fUUIaLzKyn9T9Yw2lEubKsDyBOhRlokzwsDu6sZXDzJ
r7BMQNE80JWIHhQVKS3CPvAdqJHdU4LscbzlCglg9t1SEcVw+LsqIcXiH7agwKL463hjMiaOM3at
pOxc3pRbTCPVt5JL+cIR4QdZY+Q+egnIpW2N/DAIXM8NiW/r7dWNu3BqLY0wFvknXK/XYxKuHS8k
NhLYRPcWEX4MLuMJmVS4vC7UnUwSZC8VVtXD3ywhn62sL8epquePSiH/qkw9Dmiylmp39BCVVw1Z
d0WQgdHKxD9xTdlXrO0eGQGFJ8Efh4RkPEbP+z9/51nupJvNZhvIlupjinFinm4PARdiLRGbw1nH
hprrj3i0bGT/MU313dD9HwEnrADcGAYxU9lfoNJcd7CIDWgH/4T2KaAZmHzb+ucQ1ze2fgUbLjT3
Rb0V52qdgS/NbIfrqkt49syo5ATNlvqdN5up/eUnd0kMGapkrU7tD0wzz0HDQjRWWs8821pPJY46
YJ7rT6zjtWAdxS7vMIP8ZKyCaIqKGkShffHyxpa71RaKMjsAaexUii/JRtEI/gCIIELV/GCxkoHV
Bnha24PvE1QieO5Yf383UbXRiKcJzdj241N1/2pnynOI3QJwH6bKd6y15uuTDl8mdzue1Rv4zON4
Xqz3N44daHcqsxe9SdVLUZ4U0/lhzT3oF3X7n62GdgHV94pqIpYz2aQ6BxHtdDJoB+s3fl25KC53
fTW8BA1rxGgcr7BIu1+wMVlnlrpMu54XnK23Zg2dd9GgtpvK6KIJkeEYdNgs1dVKqhMnZo30XoqD
XL8/FWqgoilRhyTnm7l/ZAzS9GqdgapJfglKIdOXZ+iboZW3XOAr61O+QazY+HjQP7de6tRN+gaJ
e0K16exNg0n/AewJ9z3n4GyZfXd81B8VMqnBOwknoVu3Ya0vejTCl5+JT72TgXroHf22gmJ9sb90
GnnCMHh5nvIzu/d7sz0BaTZ2j8jl23zHDmOT9zM2WbzddGwYV/yi44rvkXL9lZwzuxWkC/N/T1CF
EFZQZZijDHOUYY4yzFGGOcowRxnmKMMcZZijDHOUYY7yM/moDw5eN3/oGceEU885OY4Jp27wM8Yx
mMd5/TjmP1BLAwQUAAIACAAiNptKaD3mtNIEAACBIwAAMAAcAHN0b3JhZ2UvaW5kZXhlZGRiL29w
ZW4tY3Vyc29yLXByaXZhdGUtc3RkZXJyLnR4dFVUCQAD0PYBWVrpAVl1eAsAAQT1AQAABBQAAADt
Wt9zokgQfs9T/gQepepSNfxQ1LeNbq6sq1usmN13hDbhgjPegHHzcn/7NSAwCDNoYna37kwqDw7d
PT3d39fdTJxNbxfAX4CPx2wDdHp7D39vIU4mHvUhiiC4+kpDXJlNb6de4i29GGSS2o12fTWr7AV7
+QmjFPwkZHQONAjp4yRiMaC0YRPHsvu2NRzZZEiaO1Wa47HfauWOs/UkCoEm6e6HNi1T7U9mIni7
J7l+pw+9tRdSXWsJZIepnmDJspyB3paMkL6wZ3A3wL3U0CcaPHCPxl5m9iFcA+/pCheYQvEu5AgA
IYR+6mXDSJtX/zTWerrWI9+d1WrVJ86KEJ/oOV7ucEfGXzFBEEEChXwBpyr0D6xMZauk4mmLhx0O
GtYgc1AeuSePBhFMs826xfafyzzF6NfDE3DQPPwzrD7BX2dkapsc3lenmZqzzQah7FGtTOhvGmU7
LVHt0eX1ZMs5grHcSaGAIivG13uNPCqlXpaDXrBs1czTdev5z+jSAqGgimYQBtOm/IdA1LBIAdFW
DBaelHugoCtWxvGY70skW29SyaBFhNG6lcXW9yGO0ZUbzc+DqeF+cRrFMBZrC6bTTg2WpoIw3niJ
//T5pSwgAuEsg+g1uqVVXHa4rMILBNJ61xgb2xkMTMt0iK2LIReF38Q0J4uzrNE0SvCZyDYkww8n
m7jHh5EtRVRFNTGy5hJzLuNdGlyRRZkmwR9jMLL7faKraegeqJ8nK7bpmD8xYsRfKs8dJx5PvuV0
nKATjyD0zI6xgYOXgEy3OToYxLSluVvCY0gF9Vk9FX/CGimOGuJqU+unjBNngYlh9CuYyAu0K1am
48pz5Y7wAT2YpOnD3bRijMR87cLkqSzOYmU27aFWzXZaVTdTrPmQkmw5CEZ4jkHg6FfHQyxvR8JC
5uYBjlq7zNfNI/cC+AIQQHBMd7FtgkUNdi3rb+g6wsyb8cBd/oXByevODXYX7VpvnKwhmR2s+ois
3iYu/xQEDdV9Zuey53volBir8Fnz3ibkCLdcmkNOBsTWc9RNFgjscsgKSK31Nk03eNURUsXLSVNW
Uo2K4tpQkNShNgh4QZoQzV0UvJpNNcO0DLtvmf3R0LEMc29OtFU7HJr4AjvBLFaqbpXP38M4JXbT
7xrUdjxMRN1FSlNlOcP6M5cF5sQsaT3fi6IlnkJXNxncc9KGNkl9nJwfmTXtti1EttSEy9ZR1mOX
5i/DZ6VvUTO6WCvWlsaaOn+lmGIeKUXUnCormIRKz/CaATie0SOIl79q3adNpQ3jxz0Gn3GpP0io
mkDNQPXwGNbMTwu2yBE54qUd4d1An7fgSui/+/e6E1F/bJd1cp9q0U7ne5x3Y8Zl7dGVS7yHYdXG
XRyru9iyqk69IKicSEshNdeEcEjQzQ4lhIDn6+Ox5AGOZS2MePGiLdwx/ge8vhORxzDKPT2wx7FK
AaR388ptR9M+2jEkv0NyD/E2SoSZFstiPgf/aAYWfuH0j0MF5nZL87m8l7DcqwtRf3miXpj4H2Di
hWKXXnhh4KUXXoh66YX/dyae7+6TrddhUr/Q3YVRNMnW1RfVccI2qn/qS75/crK0eJWe7VjdXjuj
9BqxfsvZ+DKKMzIHthRWyi+11E2vvdclZOuzPUYO9zEGV/8CUEsDBBQAAgAIACI2m0qgjQd9ngUA
AH4oAAAoABwAc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3Itc3RkZXJyLnR4dFVUCQAD0PYB
WVrpAVl1eAsAAQT1AQAABBQAAADtWkuP2kgQvnPiJ7RyCUgTyU8Muc2YsELaXbMzk70bu5nxjulm
2wYyl/3tW91+tbHdwEKUlUKkUeR2vVxVXz1s5tOHJ8x2mH3+TDeYTB8e8d9bnKSuTwIcxzjsfSUR
nMynD1M/9Zd+grso0SfU7w3WfkSGqIUpoITgII0ocWOa4HDG6NqNI0xSzogGuqU5pmVb5nhiGpo2
VIjyl5Slz8wniS8ECs3zo08yCJet4jaYrShb37dJPe/pf8Nryt6B+sEP3iLy8pRSdoK9YS7bLV20
wCQEfuEpoJZ8Y2ljLdcjK5Gk5/oGwy5zGBzvsLf8C3SJoxllf2KW8NC8+uQFC0/k3BIZGIpjnOJH
HFAWtt33w7D75p5FqWznLCJR8tqWYZUf5LSRfXKQPAceMg3u3ZpLArrecNtDD6Lt87PnaI3ZLGIQ
uoH2zVmtVrbmrDQzhNQ75N5kqo/xWloLL2heR6lHsmDz29XjPdMiBTIqiVHOj+bNhstaVCqxeCDw
CHbDKFycB5KI7OgbLh12T0KJSbhvoEI4VTAKvyt4IYXDGBfXpQkJmPr8ihlGPvzppq3Zmq7bBsqD
yx0+AzWQtkWiFzIKvLYFrp1ScbfF4sbRYCjnlW6OtKEyPvkjC2XX8YztTCrPnCdqQTcbAIZPUBnF
O0ToHqUqHcesdreMAdxLTQqGvJ7nHJlXSr4s0zs6QRYuuVr2nv74FcpWo4a+4NRjXxJgjKGIFRLm
ZEVBQVHPQVMHe1MREkdwhVZRjNHH/kcExoZR8qbG5bRpslw5eLFsMLYF9J+jSaiJJOyCQWFJqQMI
PblT8r6TtcyiFLeQUFKX8rQNApwkYMonFGTxRLusVaEokas+ZJTFBZaiwHUbPw1ev+zKEUMu83pW
qkvE867e9XCi40sYRoM++MZyRiPDNBzNGjaGD4Wjj/rZEX7uGjwaLfJKeB9r4++Od1nHd8M7z6gK
7bJnjSWfKjugz51bwyPn1OCfrjmabQPnhZVAiWLvQPt1gmoZjvEDHa4FS+UYDz5jaW3wVI44tamQ
YT/FXbzNmVDXDKsz9Ev8EhGJfU5O6QCHXBdNQt1V1ZPLyWk1tdItXYB5Lnca7zBVVqJ9lL6WFbW2
glljVM3eqCp2PMIB5shYjsIJzFCj0Bn2Tg9s1kNq82r9upihGq3h6+aF+SH+HeMQh6e0BMvSoBLh
fcv5/2/2PLNxScO8wIK0agHPoI/6LavIIaVws7yjbbZQzO7DsMGa59mi6/5FG9KhWUeXpbbnuGzd
6xZ9ZNVq0Cu2riat+o2E22DoqEVtKQC7OMe691SgfD5FumHqlm3qE9sa65Z10sbnXuoRNAj8OF6C
wUN1UQedbltkOyqje/0sqHG3qZAzs0ZcFo2yEnske0FxVagU+DyGEBnHjTN1/EoyRf8vSdT5W1aL
jrR9w+9fvkVJmsxJPXfhBurfISoOUSJOpdwd2SNNvVk98qYDgpj4XyXKNEdHRIkXWseNsu1uSeV7
sROezVA2pwqXi/PCKaOwG1Od9f1iKC1aMlfq7fmidyauTu2ZTmZTrdXxgR8m2ISyrmbndVNcguFK
8TEU101sOVWHXiJUTjslkRrNkjvKSTIQ11l/gdxHwArLNPrQ/9DLSPnotYyEs1BM95iJ/OdvN2BS
QlvYHMuTCjwZK4fNjr9eF6OeS7cQWRkoE8u6OzxAKwxZAFFgAm7Jf7Dissw/Bbne+QE8Db2KhL0Y
v1571uaRSnD6C04fcbKNU2kuF7XuRyC9sAs2GMjTLZ5tSbZbDFKaWXUrCLeCcCsIP01BuCH9hvQb
0m+t/9b6bwXhVhB+qoJw5V/y1F++76M4dhu/pukrvyQ3f5l2NnXNriSlm+KjifwRRpxW3z2ciakb
B58OGr8vcybGyOpMK+Xv1Oqi1/77EovzeZ4jh3r0Ue9fUEsDBBQAAgAIACM2m0ofxZNkIAYAAFg6
AAA8ABwAc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24tcHJpdmF0ZS1z
dGRlcnIudHh0VVQJAAPR9gFZWukBWXV4CwABBPUBAAAEFAAAAO1bS3PaSBC++8RP0BGq1lV6gQQ3
W8S1VO0GNjh7F5rB1gYkVpJNctnfvjN6MaN5SAIR45i4cpDUPd3T3V93T0vMpvdLGL3CaDIJdzCY
3n+B/77AOHHcwIObDQQ3XwMf3ZlN76du4q7cGIoolVuldzPreL3+1vWDgcJh8sIggF7ih4GzCWMI
HqJw62x8GCSYUelrpmoZ5tA07LGhq+pAspS7CqPkMXKD2E0XrO4E5JROKXIBA+AHT6lkRE3IMlVb
Zfd44CQVJ1epqF9Z09Bv+mDFVX4Ho3UYbe94e1j+9YefYPJ71/uGJC2TMJLsl7iF1dzuNjCBYI4k
uPjeo7+F0YMfIdf01e/Wer0eqtZaNQAybpV7l22tjtdUObxI8tZP5kFmfvz4YL7HsHBKRkUwkh5j
HzKW44iURltlwZroBD5YSBzD4fCD1/AbLA12FwCCKTVfXxbDoYQxtTtlHhxxzCI8rf5j7vUHlAdV
Tx1k0fOAJIbRD7R3iOOmoC+Ci+dDPqXkKUfDGgU1Y5QqKLbcsxuADZymwurJ8uvSTzHS6/EZRlBx
0X/NGKrozxrrSo6Am3ZLLcLdDmHEDZTSob8pQbhXEpmMOq2dlyhCmaWUJGHI00nOkVml5MuCXpCI
MneRmUaOjylLf5YQ1Qy1CFFuDBaalDIQ4ZysSJNJlJemIiVySMKAXmX54nkwjpEqt4qXGVNB8mJs
RT8msztyp4kXLJcCfrxzE+/502tZzMh0q2Ups4Qbrp6izaWVlQCQ0u8h25jWaKQbuqWaA6ZgSwxd
a2crtbOowDOlsCOw2ap9drCRMs4GNhxRB6iRltVXuH8R4A4bl0RRyqmif9pobA6H0s4HBf+8wt6N
V0zd0t/QYqq3ku47Ttwo+TuDo4OUeILSXoFq3yLoJlDEyzZvmqqbQt+t4JMfEOwz2hXHtgl/wi1K
DUzfV5V2UjvRSZho2vAQJuIEPSczU7P0fFCHuEAaONh9SJpSNPXIX3s/eS6TM3VuMG3l0K4rh7yJ
Y82DGGSrERijfYyANbhpHmKcfpu+Lnohpsp83T1FLoCfIQQQNKkupqmipAb3nPtHVB2iI05xMF/9
g4yT5Z1bVF2UHqefr1J2e1qorl57cKhVp/XRR7x0zbGDoZecQFha+YnQYRgEaYHnSRdghyjzZQGP
2VTRdEMzh4Y+HNuWoen5cuRa1ObQEp/hnli2TEwylk/f/Rjjk9WbuDOZ7CN0sCV4lxht0qx0OJE5
p3pJ6XvuZrNCuxjIawWS6fCiTZDmnO4jk+LmiSDRQhGXFaBMq/MgG1Cc4bBPp5a9v9k4zIG791GH
DDUw5zKJoC4hFqIyYyrRK8Xhgx/48XNTIHK1aWLEVgjkSaF7NN0wRkc3WxI886KHQSQHAFytewKa
ecSMmFiorH0M9QLKl9f4VaxCtCKcLghvJj9f360TGFFdlpNHa9FBHd3gJBK/8Zs1igTJdFcbBIa6
HFMSVgKFqwkSdQcAPrSiy1eoJFKvh3QpoZC7e8GRAwDDlHfTC+J5d7OG7lYSYC5LQL/jSEShJTzi
EWmca39pUuFxsEnFsG2bl1RggO68wK5Gwi0GOD9tDHMdKr2XoRI5bm8KHmlXUj+NqqvXEiU4IBuP
bHmvIVnuFMx11oi24b2ssn0mXFAy3mB0qNq8ID35BV1asF2qWe5o2ncd7771eLf7o8MRE09mVFi+
gupsHmpoest56HWg+1MHupdVIC7ulNnyLNiS/CJmYtfPdk6eqN3VVuqm79fOP+4+7r1i4/eDFzN6
bPSl1dk6LHkUIg0K0bOg+fcvv9QQ9Fp4jnmvncK4Zj6c0jCj3yqn9Pumy51Dd3qQzgeWdRVIOPjs
dOzMSJMjuiSTnI1KEnlWJge3bToYQd7OPuv7ks5LOJWp2WPohREQSUBlkCKgFjg8PHnm2yQbL9q5
i0zBR4/Sfo2BmMA3CxHa3u/cq/OX8gtO5mLP8S3f0DeFvnU9vFw/B7h+DnD9HOD9fA4gfGfM/tqs
NTU57wt3VFxYY/zVGw1R5gdg1lgfmcIgkP6QjF566/5YwfT+LM9KVTnaqLmc7Ddy5zYe5bbcfr0P
YVXhzj+oSf4HUEsDBBQAAgAIACM2m0q76qGLQwYAAAVBAAA0ABwAc3RvcmFnZS9pbmRleGVkZGIv
b3Blbi1kdXJpbmctdHJhbnNhY3Rpb24tc3RkZXJyLnR4dFVUCQAD0fYBWVvpAVl1eAsAAQT1AQAA
BBQAAADtW0tv4kgQvufET+jbgDSR/DZwIzDRIq0Wdkj2btxN4o1ps7ZJNpf97dO2wW7TD2MwM2Tj
kaIRpl5dVV91dbWZTu4WKHxF4XAYbBCe3H1H/2xRFI8d7CLfR/DmEXvkyXRyN3FiZ+lESEQJbkHn
Zno5eXBHPw4wRm7sBXiOMPTw09gPIkSoVUOxdcM09P7AUPoKq6ngHA5drpT7MFiPfQ/hONF+KFPX
5PakIuDplmT8lTZ0146He4DjyApRXUqSrttWjxcMD78GL2i2QaGTCBph+BA6OHJSsQ/eGoXd3iXD
3KbNp0ibNizXExaxCYGE8d4LCS7FvM8Ohj7af85NiIjxD88oRMAhf6puKqaiqqYGNlnkrswaIuSe
qAnCd5IjyEdxLmNfaIroPwR5NnEpJd9yLGYedXugq/xrr1YrU7FXqm4pPcJZueRUWTOeMe1B4Zl6
oubBZkPQ5GCQR/ErwMEbiGU6qqweb8OQ4CHXJGEgJKsgXO84Mq/kfGkMunDJ5czCdee4L8SkBUkF
dLP483cvTqjop8PhE4pn4beIMPpe9LyXMMWrgCjYVxiiScDOKgLpI/IJrDwfgS+dL4AYC73oRbJS
6MEJazKVf25SThhGXkD/q0xCJU1CEQz2luQ6COGM3raHw3C3fwfrTUIJOSQBLktZbF0XRREx5Ra4
WTwB0RclgfQiusKSjDISgbko4rqNE7vP317zMlqsRtFVpVdCfNJiiBaXth8UhkG3Q3xj2Jal6Zqt
GGyXJHF0pZ/t1M+iLojZiBrCe1/pXxzvtI6L4T3JqALttGe1JYm5CPqJc0t4TDgV8k9VbMU0CeeZ
lUCK4tmB9maCami29gsdrripw4ViiM/C+K8MzWNixBOitvqK3itEToxEvGz/pSqacXrTJEiZJXry
MEU/xcfsHIdc0uYiy4yaNbWwkPpA1IwTpyU7TJGV4M2Ln/OKSpdTzeiDoi0FRbFLIuyiBBlLCw5I
D2VBu3dzfGCz1VIPUjM5DmG2hsfNU+hA9AdCEMFjtgTDUEglQm+c59fXe9bcuKjDQ4qF2fJvEqqs
dN2SDQp0eoyfGUqGYmdPbnix6JIRhqIcIX2GszwWZXe1Oe4+rasM0qFS2oRZ0UywKjwjOayxtIIC
sa+TDIOgNPAi6cAkIGC22IN1OgGqpquGqasD0+irhiHfWuYiI2p6BHRdx/eXxOCevDYTnWNeZAUF
btx8FpS4eSrozCwR59jPC+oMZwfxZqESrNdeXIbxm+f74/S5vFier7cSl4dWlJDFfFmRR9lSZbOP
wzXLTmh7SHGZRLCSE9czl0IUV+wx3qgFJZ6WcnOj6bp1zqBOBExeGjDQ4mQy1+qOgGYWjpZBWJHz
Ky/B7B6T17d3H3iF2r85jUyymN25drSKUVhqlDKnpM1N56yuIJbEjd9vlUjQ/kBTVSxywoNE4VpC
VI0gTA6L5OMrArE06kF5T6DqN6kD2yRzIGSYdg3xnPq+uTN+c5IEmLv3MHHlb0kmktQSno2oesz1
v7So8DjYoqL3+31eUUGYPNmiyrJ34vWSZHDy08Yf7TDnowxz6En7seCRthcXnwJVbfeSNXAwOrD6
8lZFIu4cyDbWkNbhva5d/0KwOvJ+7GIjO6WvXOJ2Md3vyRlMPC1rvn89YXLGjJzy+4fG5mq6qtWZ
q33oMVXFIW5UmRT1ZuZ1Bq7tfL35+fqJc/JTkd9MuIvz/OhiNUo+EyAW7FUf6GtvBX72rYDY44vE
+ophSErDzDkOOaXp2L6GU3/o0Vw3uhsaVM086OED80wO9pxMUv1Fo41azbJ8652LdNSZTEvfbfm+
O7KE6f+dryCb5oAoPVZRNxhWMr2Ui0JuECav572gd5kk0xRLciA8VoylZYWgwTuIdmbfzMz+mG18
Xg+I9CxeXP1leDnvbmrOqTnsAaTmRdWxBdTm2NTI1FV6ufKJSna99Di2aLe3U+3t1Ie7nbrKbqHJ
m5h6E+hPPgi+LpBIE+oRbyME7/xgee/5u/SKmuoz247m8h3Nr3pTpz0ztO/5tJ3U5+mkSt+Scr+R
vdot+PFrbeqGlNJj2lRGkXf2QFe1g1eOmV9u2gPNMoRJJv0FaFn02nlfovT5dFe+DvWo1vF6sp9T
tu5g3CFMm//3yn8AUEsDBBQAAgAIACM2m0qwu3YHAwUAAOo4AAAyABwAc3RvcmFnZS9pbmRleGVk
ZGIvb3Blbi1vcmRlcmluZy1wcml2YXRlLXN0ZGVyci50eHRVVAkAA9H2AVlb6QFZdXgLAAEE9QEA
AAQUAAAA7VtLc+I4EL5zmp/gI1TNVMkPbOCWmE0Nh11Sm8zcjS2Ca4zMyE6yuexvX/kt25IMxoBn
1knlgOhutb5+qLtVWS3vnyB+g3ix8A8QLe//hj9fYRCaFrKh50Fn9A25ZGW1vF9aobWxAsijlL5I
n0arX0eek9KbPkLQDl0fPULkuOjF9PwAEmpZA4aqTTV1NtfADNR3KjgXC5sp5QH7e9NzIQqj3asy
VUWsTyzCaa9Jwt+ow3hvuWgiMYBsEDWmJKmqoU9YxnDRm/8Drg8QW5GgO+Q8YwsFViz22d1DPJ4M
Zv7fmXkwS3/MwlfBFzA+uJjEJQWhHWlZE8LS6t/a2ngijcE/xna7nQJjC4ANJiSMe6sYIXggO/r4
g3gO9GAIM/os/RQ+8eznPsakFHzL0LBBQVnVG5DbWcjx4DLerJks/Zw7UED0et5BDCWL/MnqFJBf
Y65IhyTuRqeJevQPBxJjFpJyg36WkP8uhaI9mrQ2XzEmUZLvJGAgJFsf71OOBJWcL7bB2NkwORNz
3Vv2D6LSE3EFEZqO6yzr9BdxUVkFmYsyfTDTJN+DEK7pm3SxwOmV6u8PEaXDIPFRWcrTq23DICCq
fJHsBEyJ7BdEKLoBnfSIObVIYC7KcYODFdq7P97yzEYFnCqDSSncolufd7i4IqACSBp/Ithohq4r
qmIArV5oCIBuxNmIceYVJrW7oaNgm4HZxYON3uNiwRZ5VBFqNLLKhticF3cRuHQUxZyA/Mj6XJtO
wUQchusKezdW0RRDuSFiwN4Izx2EFg6/J+FoEiVeIHVnNtQzGFoh5PHWaxoZKFr7QoRj8w18cRFF
vyqb8E+4J6mBcNCrda6zyolO3ESWp4Wb8BP0ms5Mx6XnQh3qA9HAjMxHdpOy+pbY690Nd3lypjOz
os2kouiUirwZ+ZoNoyDb6M6cnEN3jMnoeBdLriNqIVaz4kfMW+bb4QVbDvwLQgc6x9wumgZIUoPv
jPUWt05J5dRwuYUL7yjxaoDBa/v7vRuWIXt3Pc+M18VQ2Zmhm3ZWnYtovUaJb/I81q6eoVTY1L6s
hRALKFFXVEVMVKVlCZTJxMkbtoCYpmToPW64fR5F6hwDjDS2Lc/bEC0m4rxNNmPuUs7Wiqrq53Tz
nARmsjyidJqcaFSFiBMRDJo1vtv4uCF4tsTT1yjLlf27AiqoUEmJkQ+jw6SV9t02hLiUb83UA7Nc
2rbAPref7a5S76MkKhHVBlXGXFYAFyzhwKssem99bGC8vkpzb2UfYCjH75NMjwTh+uAiN9h9jZyY
6MOtE8WziptNHK47DeDyIj90tx8FwsF6W0KynHijgd0pzejVWsqrojkAMAAwvAhc90UgzVOJSbLH
s4rcdVLxlPJXVj2UGsZ5++qxizekY6+uzNVaN0aXLBtvNa3m1ANRjVk3fLk+YdMwmnPaWXRV+Syl
swuCMZfktAkEt6RhnuLUCX1XTsqDtL8T+n41ShcadJf2uMHYltwd5wy6T2zyhrn4refiLefbbbPQ
sXPxYRJ97Ul078ZQw1x8mIsPc/FhLj7MxauprruZ6UndapMTC0TV3Vmd6zNxAArEnRMHvWy4h/aD
bj+6z3ItisZatZV3q52VlKqsnFJSDg74CzhgN6l88Ne+dRRB6B+y65pu7OJV+h2UgNT8KKvo2lUe
ZRVZb/Mo+9sfkPvWXv8vny7h6OZgfEX7Q/3bexA3OZyA039QSwMEFAACAAgAIzabSpeI4BohBQAA
HToAACoAHABzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLW9yZGVyaW5nLXN0ZGVyci50eHRVVAkAA9L2
AVlc6QFZdXgLAAEE9QEAAAQUAAAA7VtLc+I4EL5z4ifoNlA1UyU/sIFbQia1VG0t2U1m78aWQRUj
s7aTbC7721ey8VsSGAxhMp6qOcRRP/R196dWqzK/u31EwSsKplPHiqylFaKZTwiyI+yTB0QcTFYz
zw8R+AYUHZqaPtK18USHY9j7QfA/L2h+d3tXk5xOba6W+8DfzDyMSET19as6NbU3l/kTq3CO9ySR
3+vDYGNhMgQ1pXtVDQqaNM00hj2ODkxe/We02KLAYopuiPMUWCS0YrVPeIOCwVAOQxeWKwiLv0Xk
7vYvRPWE0cwiNvI85PA081cyzzp97enryuTzlol4S77EkXscUEti2bVFHA+lP2dbCqnJpzUKELDo
f0UbwRFUlJEKtkkmsN3dUzN+8E6jjDwUZTrSnMzj9+Rn+cBdKfktx+Pap8EQDOC/puu6I2i6imbA
oRSu3ZZjY+0gMzInOTLNVD342y0NsEVAFsWvgPhvIJLZ2Of17CUIaEZnliQCdInrB5udRIJKJpck
nrPkSibhurXsZ+rSI00F1Hv883ccsVXFr9PpCkWL4HtIBT0crlMNc+L61EDKEdSSQLxuCMSf6E/A
xR4CX/pfAHXWweGzZKcOdu7qLhfyz2aEUBPkBfS/vUkI4yQUlUHqSWaDLlwUS386DXYc4G+2bKXD
WeKTspbHF9tGYUhd+QbsJJ6A2gtZIHFY5EiaUTpTmKmi0G2tyF5/f82IMN8N1BQ4LFU8oynR5mIK
K9QwGPQpNrppGKqmmlCvM6ME6L04mzHOIiatHSUt1fsYjs9e70UbZ6t3llF5tReRVZc05qLSZ+CW
6pFJQvpPgSYcjajkiUwgreJFxXo7QdVVU/1AwKEdAy5UQzELor+Tap5RJ1aocNTv6Z4CZEVIJFvv
oBSo6sLQL9EKk4L4vByKY7slQb5UrUmbiyQzGnJq7mfhB2pmxkBjJ0yeleANR+uMUYt0qupjkDeW
ICc7FmEbscpYGs6E9lCGYw57hwc22W3hQ+wmB5Da0fBjuwosB/2BkIOcQ44EXYeUidAb5/v19Z4N
D64SgDs1mb3c15KsDjmytr/Z4KgcwDfsebP4uzxwdpp2+yxrzlm8XpCkUkT1Y1f3UOqNar+sBZQH
lOweVkVM1mumJMoVEnCHLV/czF1KLg8yHw5BAwxsy/OW1MmhnLCpMa6VMk2rmmaccjsVcOiMlwal
3WSLelWIBGXAWbMIbpZ+sKdiXJreC5LS9fWxUAWVAhNxKJltZteh37gRCkqUn4AS03T/lMb81Kt4
ex3+NWoqsE9tHmZOFBUKwZLO1cqqN9b7EsXf5zvCrdiBpnq4nWRIJSnXe0xoJ/0bS2Lqj7BBlI9Z
PmxYctlBhlCW+BF233OEw4VbQrJMvGwu2OQSe7Gr6EXR7ADoAOgeHi778LDjqSQk6StBRe8i6XhK
/JV2D6U76+T47rGNF91Dj6401Y6+DZ2zbfyoQbugH2A9Zj3wrczVSx7x7XBmDMWEMzT1K9iNYGic
hEuaDVKEbREXiWoCchc1fUJo/w52Ba8D13XZOtOQvWTjA2a+9Pw5Zcje8KLYzeR/zZl8k9l6+1zW
zeS7mXw3k+9m8t1MvpvJ/0oz+fbmtY1uyvuSWKKqns7axBjLC1Ci7pQ6uMrLfndtKV5brqJTrLVY
2S23tT5SU9QmfWSXgD9BArZD5V2+XsE1onhp87eVp1aKxf53X9XQL/LuqyrGMe++paNwt8e+9Bm8
/pcGMjWtAdgcik8fu0+/wWY5+FOu/h9QSwMEFAACAAgAIzabSmrgKWzdAwAAHCIAAC8AHABzdG9y
YWdlL2luZGV4ZWRkYi9vcGVuLXR3aWNlLXdvcmtlcnMtc3RkZXJyLnR4dFVUCQAD0vYBWVzpAVl1
eAsAAQT1AQAABBQAAADtWU1z2jAQvXPiJ/iIZ9oZ+QsTbglJpsx0StokvQt5AU2M5MpO0lz62yvb
2NjYlgkkk2RiMhww+/H0dvWkDdPzs2sQDyDGYw9HeI5DmHDGgESUsytgHmXLic9D0L5qho1cy3Zs
a3RioxHq3TL65x6m52fnFc/xmNRGuRR8PfEpsEjG6+/GtMzeVIUnCeEdjiT1b8UwWGPKdK0StDXU
oBDJstyh3quJQdkDv4NZAALHgU6ZdyMwC3ES9oauQQz0Ig08AHZ+9gtknDCaYEbA98Gri1xvGSNT
09qV+R2UuSvLp9h9XbwD4jW3BFcU8pIKmamAhcRdUwlSh+Vf5dlA1wbor7tYLBzkLhAiSE8Xeikz
cvGU4o8fbJv/hpdY2ERKe7Uv49nucGhapovsasspwLVgMyw3wdZEcWWPKuhdYeb5kH3Od00o13Cz
AgEalm/DcpD8G6GRFqRi03teqCseBLLSmGl5Ob9ojD9qkSpHG+rJvRBSGvJMCgdpsuBivfVguVeJ
WXOO9N7Amze1IjvD5E5iu5YdAYknki8DuchxpOf1z+80ip2KZuPxEqKZuAhlHJ+GqyzglC245CaT
YeUu8Kg328n+MkW1Tdd8Q8IRSQhvDCM5E9FvEGF8JEgQSyhoQMuxJABH0ORbPZoMZNoHnydNLTOH
JWUF+2m5hA39suuVSW6d8Gw6I5cTaTYr6ux4LDaCy9eBD5EUzCPFdmte+CAhTmLC5SIKHa090mil
PaQ10AzTMmzHMk2piq5jatvTXtsKZdwdBOJdNR96Jw4yhp6rv0yvG4az7fX92yzlvvAgWXhNeXZ4
5+w2WArswQ8ADzyp4V81ku6HnBIallg5sW2pi/BY8zxOkIf2aBjgiKwuHvKrUSZF1si0LKRXIG/W
nRO0rWm7L+HrNY3KlD1S358kz9VUkaztWjOjV0E9Y+lOado/ZHcNpftE5ctKB9YRpbrg7jKW3H4a
1CMT0VqnBu0gauPnwZXicqXCsA8b2oBg359LkLpasGWy2ixlmZa1Hh5z7W/Q0ErmY1WyxESe4LWF
rJbDfoPNTJzOuWjZvwu5oBnLDo+alRWUqEYEY/fre0IgDE8XEYiSyKYwEmHsH6BvlYv5MdJx8KW+
oaEuKZN3vW9xUSWKxitMNxV8lKmg+J+TfcurVPf2caJNLhUgqsJpnQxHrzqgKNAcfq8+QoRfXmq7
+eyTzWd7zlzPGePeV0fvMS2+0cTXzWfdfNbNZ9181s1nH3Y+e+lx7FlTVfHw4EHco1u9dm3XLNuQ
7CfYopFpl43W+GkOyQ+T041o7XhY7rCy7k32vvKLtwL7H1BLAwQUAAIACAAkNptKZdaWwaEIAABd
nAAAMwAcAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW5jdXJzb3Ita2V5LXByaXZhdGUtc3RkZXJyLnR4
dFVUCQAD0/YBWV3pAVl1eAsAAQT1AQAABBQAAADtXUtzm0gQvvvkn8BRqrKrECCQdHPkeFeV2kgV
O3tHMLJYI9ACsuPL/vYdQKAZmAfoEct2ZytVa+jp6enur7unB08mt1/GYRAgJ/HC4CG8R9Ezikaj
cI2C2y8/0L8bFCdjO3CQ7yP3YsKmdu3Entsx2r2bocD1gsexH8ao+aiMnDvLW8tU0njunRd48fJP
O3B9zPFvFMUp5dIOHtFDZAexnQ1VrpXLi5+BhwXGw29rrGWs0vH4b89QLd3oG/pgqA/NwUVnZXtB
V6kxlrG7YIzwgufwCU3XKLJTiW4Cl5D/wVuhqNMl186xAYMzmzJTCalLoZXoxRvqQBWr02FyuYvC
1dj3UJDUFWqouiaWJ7f//pLk46Uy8I0qYdUh3UO3zC6YGcwsMjNfhFAw8M6L6CjopFLWmLCk+q/2
rNNVOuova7FY9FVroaqO2sX+craCYYI7PGMYvWLPQT5KUEFf+DkzlTApBW8ZEkoE7OmmRHPLNBGg
22wyOdn259KBYizXwxJFSLHx357eV/F/1lBT1jnuLtqxmoXrNcaYHSilQa+UIHxREtEcMqnHmyjC
KClnEgzAJIswWm1H5Fopx2U26LhzdmbNaL/YzhMW6R67AhKn4ds6/UlctKerhYsyfbCQpJwDE07J
kD0aRdvYHa7WKaXLIAkDmsv9xnFQHGNRrhUnV6bynJcaihdTBUtfNVKGJSvXi9d24iy/PpeRjQCc
3lO7FNzS9CKsBwkAKZ1LrBvDMk1N1yzVqGc0gaKlerYyPfMyYC03HAlsA3VwcrCRc5wMbKlH7aBG
alabY5vzcJcql0RRNlLFf3rm0Oj31a4YhtPK8ONYxdAs7Q01pjpz4brjxI4S3p5EUs9EyE6QaD9D
1zQ9VTO4tpujRy8ghk9oU+xbv/yFVjg04HEkt/psB5UTR3GTXq+/cxN+gJ6SkalZeN6JQ/yAJRin
5sOzKUV9i+314iXLMjiTkVkzBsqu6FR2cTP1NQelIJub7hCvw3St7kVzF8vTEfEgE7O6L2ZlmZ/r
x8h20XeEXOQ2yS6GoeKghl4Yz/fIOkQxnuFgOv8HKyePO9c4uyiX3drKapTZwnY/YlRvkml047q1
oVvLzoj3MBAGvsuBOQwmgYt+peB6Qq8zO1mOlMsrZZMF0REOMD3N7OM99ZWy2viJ9zVIcIWnXJvG
UDU1c2jxwJVx/SwzUu+2yaPMMrsMRcUvQ1UbBKZpkCcdXipiRjKaZZGDZALprkoV33XWtcwqCaqC
vkmdllOPFOVVbQCnomAlAdtNDaJM74vMOrlVepreM/q61h8OLL2nbdmRvKjFYRbf0QvBtqxpREO+
/vLiNLXX5aZ89CXyEnLsfZqohQUNrkBmPMW0tJLScWzfn+NVdKVt7zHL2zgV0vj4nkmNZk1BooUi
LovHsiKbBnmf7qjwLSKxDLXciA0MgAEwqOXYZlmwTMc11uKQWJIJNvmEkDXuktQ1aykFJ7HhyiVL
J/EkaJZjZQzz7uiP7JCRkZTI16xV84cgJ4wOXS1Onls+exrltCYH7sAduB/InYzaTYrWnFK2qcip
GNGJCCkNA3a7SHx4mG1S78+OG3/J6l8aioVK5e8EZtwMf+gGYFatMc7VsjJjHax6oh+7Pedrswc6
jdpauXN7dz0x+xadaIu1FWy3jWwAnbdH18F+9nt1Cto4kjbOPf59zqh/+vgnizhN9b5HXfNhjPQ5
XRNWDauGVcOqYdUfddXjWrOFcxTL7cfUX2f/j2eIwmcv/XDI9rFus4ff0CvQvEsayYl6Rt3qLL1J
v/AN2gXAHti/W/bjfTrx7T8cYX8vdZ6dmeM05ICk+kFQ6QPQCIS2KGgDtAHaAG2ANkAboA3QRuNv
vmtfhb7F196Hf6B6yi+goH8HNOfbvzvHrkSzfSuEMwhnEBognEE4O/NwFq5WXkLfEPDi+f44ey6+
+eDweaURtCoFFUdrLyX+ki9VdE1Zdc2ia5OKkMocxAuuAmIujPJBJdyEvxObX5HY9JdimdI0UWIr
vLFmoa9a0XTdPORqPx6GWd5TwyIDAEypLzk0eNc5DyMJVBZe+mu3BZTP7/6WilaIzS7jMpN0Mdv9
9M0iQRF1Wcp4663FRSh731OSCOzGvnOFIsFz2nMfg0EWY0rCiqMwJcFT3bhuevcU/vEZKYnQ6qHg
6pT09qfxJorDiHchxZSi4Ph4s9taybDJXK8QxKwRjPtbB4MBC8QowE828rtj29/k+Rkvqz3eL+G3
GHte4YrPMQOlTSXEI13MJSkCbqQTN73Z6w1vyzgvW+7KlJuTWVVc6mAJiqknTW/aO6/r1zKbS+qf
jKZW2lRHHrn63yU/WXam0yTjqdiGBKHQaCWRGOdESuYAOqxSEKDMn49GnBflToDC8bPtb9BdGKWb
8yZombZXTbPfZ5nyC5aDN8RTtj9s9RWj5A+U/EDxxk+Ie/Oe0GulxPxNxzyFXE4Y4ECMrbMJcpB0
kjCXqr5IHIyxAIijwEOwRHGWwakmBvuF2HNoWr5TVujE0JpQxBx0eQwiBsC2ZEphDum36RFaIGz2
o7h3E5BO9tV2M6hOhM52MFonXI87U8CeRbfsMLVDrw16bW/fa3svhe/5dv6kvbZP0wDzirOV7YEU
XekzH8q7ZB+nyQXNGmjWQLMGmjXQrPmNzZos69BtGuKR8F8jgg4MdGA+aQeGQk2193KlaLpp6YO+
qTjhpsEtatCL+dC9GIAuQBegC9AF6AJ0AbpwAgInIHACAicgcAICJyBZP+gbemUeglDP4RwEzkHg
HATOQeAcBM5B4BwEzkGgIwMdGejIQDMVoAvQBegCdAG6AF2ALpyDwDkInIPAOch7PQeh3sZJuC4O
OXYCbJ/ujGoN9Z5G0zh+GKMKkWYaXJ3V/GmWK3mc8qFZr+zXOcqeT7YhpTpPz2w+T8bIFa6c+4LX
hSsTxNgOHOT7Ev4t2PwPUEsDBBQAAgAIACQ2m0qEx6LgEwkAABK/AAArABwAc3RvcmFnZS9pbmRl
eGVkZGIvb3BlbmN1cnNvci1rZXktc3RkZXJyLnR4dFVUCQAD0/YBWV3pAVl1eAsAAQT1AQAABBQA
AADtXV9zozYQn+ljnvwRNPdy9kwygzF/bL8l5NJ62qndS67vGOSEBoMLOLm89LNXAoMFSAJiZ+Lc
bWduOhar1e5PuytpF6LZ9dUtjp5wNJ26dmIv7RhbYRBgJ/HCYIED1wvuLT+MMbpAQ00xR5qujcYT
TRkrZ98C798tnl1fXdd6TqcOl8tNFK4t38NBQvj1qjxH6tlMJk/Kwn29JFn/Rhn6a9sLBqjGtJFV
n+E0GpnG4IzDwwuewkc83+DIpowuA/cusoPYTtneeWsc9QcsDOEGB9dXXzHhEyeWHTjY97HL48yn
pJIdnZ8YolCi2I0XkZHEfR/swPVx/ruAKCZD3j3gCCOb/BuOdEVXhkNdRZvMsqh2N2SYMHohVoN9
nBQ8cuX39nAXFvbFpZQ85Uhca+oPUF/5bq5WK10xV8ORoQykcO1UTgc7DjK6Odkj043VItxsyATb
ASpm8RwF4TNKZGM0SW1to4h4SDGSpAMhWYXRetcjQ6Xolxmeu+T2zKbrynYeiUi3xBTw2e1ff3gJ
pWJbp9N7nMyjLzHp6HvxQ85hFqxCMkAec8hIgu71gVDaRH6hledj9Ln3GRFhXS9+lGjqeu51XWTG
/hwaYGodeRP6X6MRKqkRitwgl6QYgxDOWdefTqNdDAjXG0rpckjCoMzldus4OI6JKBfIyeYTkfFi
OpFezMZcYlEaZViwItBt7MR5+PJUBNa9NspoqAxKHk/DlEi5NIQxPoz6PYKNZhqGOlJNRatHWgnQ
jTibKc6iSFpbmo7k72Nl/Ob+zo7xZv5OLWrv7Syy6pLMucj1Kbglf6Q9FfLfUDEVXSc9D4wEUi+e
V0Y/zqRqqqm+I+CKkwIuZEMwi5K/M2+2iBD3mFnqG3ZjEbYTLOpb35ENFVUTTv0S33sB031WnorX
7r4E9lIdTbq5yCyjY0zdy8n8IMNYFDS6wuytEj17yUMRUdlwqmpjtN+oon2wozPsYOoZS8OdkD2U
4ZqDs/YTm2nLNKRicgCpLQ3fNveR7eI/MXax22ZJ0DSFRCL8zGk/vb1nx4WLOU6kvjBf/kOmKgtd
F2SBQr1BDecaZQrz/ifx7C0JZpeuW+u6s7MF8xw6QscP2TFzg1ng4u/UuR7xy8JOHqaod462qUtP
SbgbqoauKeNztN76ifclSMgmEV0Y2kQxVGNiipwr5fqzjFh6tgtlRczbx8tS/NIUpUVgmgfZEiha
GLmRrMwyXxGbBBq5Smn/Xmddi/MNQVWS+anTCvYk+Rar1kGwq+AtArZLJwTNb/N1fnaNhupoqOmj
4UTXxkNNk+9KFyIhOiKC+o7t+0si8EC+rSNjWryZFeyNrONbQak3bwjWMkvExbah2IvNgyyrd1RX
yaNek4cIoyMwAAbAoLaetVtxiqWvxloeEgsyyaGaEbLGvWGZWHSUQrCIkF3Cl+9enMSzoLySkAd0
5xCmjShOW5mVxNANRZ7p/EoPgYRRlP5fxmo0MhpYYSeM3GahdF3MiayMbdkYqvSwKJ21t7UJ4A7c
gftJc2cXjTZ75oyy6fywo2q5JECs7xjrAVfAFXAFXAFXwBVwBVwBV8AVcAVc3xHXNlWajjlAtiYD
0wbucGRcLSZTIS1ZZiXqC8Siy4xlGoZ2jjKiSvNZ8T6Ts43iMMpqnGQwRGSilexPvU9nVvbIi9HS
S4tuyA+fcZSqSN+xtQMXbTebfcte2qwrReaJvrWevnBkhdsgKU+OqpxXG9AKJ84DdlGUIhofIkUZ
s21A+DqP2CV2m4LyO6G/QH0WGsVUB3T6fmnNpJh40qvXEQBT19XzakMNAFAH1AF1QB1QB9QBdUAd
UOf01XnjQyewB/bAHth3Zm+95qWK7q8gF6/6CV4+Zj8vAJIPS2JJPmk4+O3xBecFVeaDtt3XzR1f
JW/7oZjJe3v8kI80AA1AA9AANAANQAPQADQADUAD0AA0fjQ0LP5Xge/xte/hHyi+4yco8A4IvAMC
1R5QB9QBdUAdUAfUAXVAnR/uHZATqce+aSEPjoRwJIQjIURLUAfUAXVAHVAH1AF1QB04EsKR8ASO
hOF67SXlWwGePd+30nb53QuHj9t4Cq1KUTqL1h422EumquxytarOsguf8mMpt5PogCon7iYu4zNc
tm3Q6OQ4vFHKd6Wo9O8NHHDlnMgZeWZQcyqOJXOl7glo5tHlMowabH7l0b/jnfvk6V0FUkGFeXuC
cy8KVWb3gsblKsFR6d6VDJQ03PcOumQkkcwb//qWEgnO70dqChYFYcVQuJKQoS5dl949RX4+YZRI
Zz2U3HtCb3/K1kjRbRLzEoXAxm+8gIj+G515MpXCq42Y+MfVV+rEvB51Jx6Nx2OeE+OAtGxxY5jp
fsNka/X5A1bilIQVR9mJMZbHWAm7Q3Q/3l/179D3tMKVmGPqlGSLdPybtRpW88vGgbtczfVR4N7v
JC7fDHj5boRIkA89a3ub3TutsIL4fUsvLmvYoqQ0td1HteeRd9r79alpAS2vZJxW+RwyhNJJK4jk
rsismidRlplo2nm14QhlmTZeOe8+BezGXn5DoGDvcvAhd863ux3WMU5+xclXHG/9hLmNL/3zYe/x
CnEulxMGxNK2+GYbZM7YT8JMqrqSxHqIAFgA4CE+W+Lc5LY1MfgP5JZTphUbZYVO7sKzErFg5fT4
RK2ccqwo5VopbainnRr+jl+E0x5yMTcCqlzO/HkmaOaDtk8Cl/uCHuy4JKRuGjUhD/O/NlFk9lpz
aBdLZlJvODiczIQucaIR5SRSdIfBDgk+SPAdMcH3Ubbyp5tubEzw/TRZNy+vzKRVlOrZhdvYnJr7
cTJrkCGCDBFkiCBDBBkiyBBBhggyRJAh+vgZIhAScm2Qa4PYDLEZIgpEFIgoEFEgokBEgXog1AOh
Hgj1QKgHQj2wUvr7Hb9wS4KldqgKQlUQqoJQFYSqIFQFoSoIVUHIE0GeCApuUBWEjBvk8CE2Q2yG
iAIRBSIKRBSIKBBRoCoIVUGoCkJV8KNXBUtP4yTccEt+rR7sRd617s3AnIyGapnG8cMYV4hUQxOi
XLPARTYtFuVTZr22X5Y4bZ/tokl1nKHRfpyUkStLeBeR3qIbD99/DTUf1f8BUEsDBBQAAgAIACU2
m0pwf8OWvwoAAHEeAQA3ABwAc3RvcmFnZS9pbmRleGVkZGIvb3B0aW9uYWwtYXJndW1lbnRzLXBy
aXZhdGUtc3RkZXJyLnR4dFVUCQAD1fYBWV7pAVl1eAsAAQT1AQAABBQAAADtnU1zozgTx+855SNw
tKtmqjDg11viTLKurWedSrK7ZwxyzAaDH8DJ5PJ89ke8WoAkcGxnM8l/pnIwtFpSq3/dTePMzK4u
70nwTILJxDYjc2GGZOp7HrEix/duiWc73uPU9UOifFd6hjrUjb6hj8aGOlLP/vSc/27J7OryqjZy
MrG4Wq4Dfz11HeJFVN95Vaeunc1k60lU2G9fSTq+cQ2dtel4XaWmtFFVh9Gk68NB94yjw/Ge/Scy
35DAjBVdePZDYHqhmah9cNYk6HRZM/gb4l1d3hGqJ4ympmcR1yU2TzNfMl7Z0fWJTeRLNnbtBHQm
Zi1WbMWaEt5a/le71ukqHfXncLlc9tXhUlUttZtu9JrO6Aev1IGISyKSy+d22LnGg1+4GldScpez
woYF9vRBskCx5VamZ7vkKpmsWSz7XPhRSNf1sCIBUUz609P7Kv07HGvKJsXvbD9Vt/5mQ8/a9JTi
QL8pnv+iRLI5mlY93QYBhaWYSTKAiiz9YJ2NSK1SjEt90F5wR6bHdWlaT3RJ99QVZNa0HfuqLn8S
F+3pau6iXB/MV1LMQQXnLIKTSZCx6K83saTNEfG9spb7rWWRMKRL+a5YqTEVOl8YW9EJ2dhHj9OI
FRaqbCfcmJG1+vFcBDgGOL2ndku4xeFCtLkklDAAKZ1zahtjOBhoujZUjXrEkxi60c7DxM6iiFZL
EUeCbaSOTg4bO8fJYIs9aocaa1ltQc9cxF1sXJaiZKRK//QGY6Pfj0fKMJxXhh/nVAxtqP2LFlOt
hXTfYWQG0V8pjlO6iEfC5MyGsiYgZkREY+ulTU/VDOHZLcij4zHDZ+WjeGsZ8x+ypqGBjmO11Wc7
qJw4ipv0ev2dm4gD9JyNTO3C8245zAe6gml8fHQ2JS9z6Xm9ONGqCM5sZNaMkbKrPZVd3Ix9zSIx
ZIuBPab7GNjD7ll7F0vTEXMhWWbFj7hZ5s/NY2Da5A9CbGK3yS6GodKgRl4419+QdZiaPOFgvviH
GieNO99pdlHOu7Wd1SSTje0+5hIzzyY/43mfyOutGa0myvk3ZZv414TavqcN+vSp45uy3rqR88OL
aPJTvg+MsTrQBuOhaN5Ea23GzTaaBxe2XRuU+dKt6H7mrIVX74go2ctQ1RaGmHupk4tcn2u5ssrc
55sWpNtqKdnXVddIbjhEyeNaXVYQ//JwXhsgiGA8pzPt+ECU+X1O8uxK6Wl6z+jrWn88Guo9LVPH
6iptjqr4g7wwaosYKhvy46cTxqGkvu6Sq70ETsSOvY8DgzSA0oh3KzLMnqekdCzTdRd0F115WqNz
TnneJojI0+N7Zmk0bwqWlpJwkayKDDD30vbACfBN4kk7cIvQw7vc5iBTySbQMqk2iKWiUrhYEVGQ
bsdTIroXSU37rYKxpyX3h6E4QSkGhdQpAKj527/h+nm6bPJ7Nq3WrsnPqRCTFP+FiNzXi+QtcPS0
U3EX12Q8R293m1h+IJyB+nRJoKSgejM5Ybr4wH924grOdOkGkou/k9dWNNzuZ2KWA7FvC0uggx37
luNNTImbtU729PW2heyQ596HZAV/vXaicm384rjuNLkur/kPs+Thq25MY9U9lJJZ7WZDIE4NJevy
Vy0mazfmeY07SJThJMLC/JQOKvKYtLa7djwnXLUt7riraWPEvRIZb5Zyi0LT9cEhr0xEyZHnPbUk
x8GHu+pzgQyNJAs/aABt6cTlYx43Pl7fo2IVJoBxmgDxZrIYebGMSFBqMkwzb80bCG9+vo8k58bv
VZRE6JzmwqUwNMWYQrDiKNyV0Klo3oh7tvTjM1Ei6an7kpaDc3Bb4FcdGPeLp9sg9APR0HlJQkB3
Gup+i32eOrGwl8okDO5JS8MXb0Q9fOmj0YgXvohHr2xJY4Dd/91w6+3zJ6xEaIkqzmbHg5E8u0jU
HbL34z1L7DH2YwVqscYkHJmlUuBIrfyG8ueiceK27wI+RL/r4mR2lJdVdAX51LO2b8M+1iuSxMoN
tVYiUyujqiM5ifS9WwefTcEu5TapKCfnE7ZQeNrbtlWOtwpBcHoir0mwCWdei5cCbL+Gt62GFk/L
3TR1gt5o88YG0tuXt9Ox39oYH5RPzghKw2Qu1Krd9Ulae2jbffi23R7WeAfPfXvM+1wt7C/V25fv
dV4LndW11IIrs5j0+mQiuFE0PkvrfzbdLbn2g3h1+0elEwe9D6B+vn9u3D9sn1RkLm7/IEPAGrDG
u1hjzn8izEJ2SKIbEt2RcOtGzDf8aIlQaeq/k93ydVm+FzkeTRBbL20VdCI/XVV9k04UL4AIQs0h
xi9pbnqgri2Df0MezMuy4jxRkZNn91lJWJDgHY4QJ8dnYkp+HE2pvanICsiSUK84Sp5ok1Znbz2M
dsl1JvXFg2GeCR0SPH8ing/E4LNEA/AMnr9efj5K/wg8g2fw/AXr7ZOWDuAZPCM/f6T8DGB/cWAP
+sLk0UA99GsjJ3uR/7HfW52+XXWyt0CnfDmDljNSJlrOyKjgGSUwWlTgGTyDZ/AMnsEzeAbP4Bk8
n+L5+RjQo+WMljNazmg5o+WMlIlvRaIERkYFz+AZJTBKYJTAKIFRAiNlft1vXeBrFV86ZWb/vgSS
5emTZWLqcppkLh38rzsjAyIDIgNWhVjmqrnvm6Lpg6E+6g8Uy9/S00YuRL8H6H6KrzCcEnygC3SB
LtAFukAX6AJdoAt0gS7QRd8XfV/0fdH3RS5E3xd9X6ALdN//V11QxgJdoIsnUKALdJF1UTADXaCL
rIusC3TR90XfF31f5EKUsShjkQuB7uf6/W6UsUAX6AJdoAt0gS7QBbrv1TxCRwkdJXSUkCDRUUJH
CQmyyIW/k1ekQ6RDpEOkQ6RDpEO0eoDuL4Uu/sdxoAt00aUFukAX6AJdoAt0gS7QBbpo/aL1i9Yv
0iH6R2j9Ih0CXVSyqGSBLtAFukAX6AJdoAt0gS7QBbpo/aL1i9YvWr9Ih2j9ovWLShboopJFJQt0
gS7QBbpAF+gCXaAr7B+hr4S+EvpKSJPoK6GvhDR5OV/8Q62UeRP/l5SzZDiNbyqd8pjuUcl9JOks
TdDmciyvxTW5yxRiYl/cicjRuMnlBGw+lu/XLX3tB7QEuTO9R/IOYN3sZ6B2ON0wJ3Fckm44vgA4
AAfgAByAA3B8bDiyLkNLLBJpAHEkIJinIB4u8fW/THdLsvGu/0IPg97/24lWd8TyA3vmJbLx6X49
eYQThBOEE4QThBOEE4QThBOEhy/9ZI//guL0b0kZg5ffldZuUGQ4QeY5Bi4NI3ihiheqeKF63Beq
HDyrr1WbqMRb1i/9lvVoKFLTrZ1kBbtTfXFcd5pcZ0QPrq2Ov+qmyGFV98BGj/pNudNmhhKzUFOY
1KMNnE65gwShxJIIs5KcdXe6vIDyElAUGelrx3PCFbFbEc9fehsjssjX5HcHmUzGnYX+9Ax1qBt9
Qx+NNV0fnPFiuffsP5HCvy48m1GTeFtHFnKmPO+pBo4pBx/uqs8FMvPgYuEHDaAtKRXzIm7Ii0rh
ZhO0JGNXpme7JP9cmC2kxn5YkYAoJv3p6X21r/Z6fU3J+OVYhQlgtbth5G/yBzVR6V1Ew6npWcR1
6bKPp2a34UzHzpOGY72nlWUs1w9JRUgbGEK3qTnxbWqlaaynrHptvi5Icn2WxbHqPL1B+3kSRfbZ
/wFQSwMEFAACAAgAJTabSidDPmYiDAAAnGkBAC8AHABzdG9yYWdlL2luZGV4ZWRkYi9vcHRpb25h
bC1hcmd1bWVudHMtc3RkZXJyLnR4dFVUCQAD1vYBWWDpAVl1eAsAAQT1AQAABBQAAADtXE1z4kgS
jdijT/yEirmMiXCvBRKfNzd29xI9u3jtnpnjhkCFrbGQWEnY7cv+9k1JSOirSsKAjdtvIjomEFVZ
qazM97IyC48vP99y95G7w6Gz5Pbl5xv+3xX3/JFuz7hlcePkd9ukJ+PLz5e6r091j4tGsk+scTI+
nDxjPX7k2Daf+aZjX3PbMO27keV4nEa3NKWnah1N7Q80pa8UV9rMHA5npVK+uM5iZJnc9oPV8zLV
tlyfUITxck2i+ZU6nC50026yEkNWiDpNSVLVXrdZthmm/eg88MmSu3og6MI2vru67emh2O/mgrun
TYkKjmTiF9MlBxDPvddtw+Lx50QFj5T/fs9dznT611I7SkdptTpttox2LtiUL7SM4z7TrnCL+4mM
2Ic29v7uJPtXOlLybYnGhUenTXaq/OjN5/OO0pu31K7SpJmVrxwuth/LdHqDjWW2E3XtLJfkv7rN
kl08Y7bzxHzZGlVaj1auSx6YrCSZQEPmjrtYz4iskswL9+DUmJbOjLbrsz57IJVuyRX4ye2/fzP9
YFT66XB4x/2Je+XRRMv07mMJY3vu0AJxTNNKgunFhVj4iD6xuWlx9mvjV0bKGqb3IHlTwzQuiyqn
/G8WBHBhYtmG/q/SCZXQCUVhEGuSrEEDJ2lEHg7dNTQ7i2Uw0igZ4thZKber2Yx7Hqnyic2i/WS0
nhdspOmlMY08SgsEJqLIdEvdn91fPSbAtXkbRW0pzUzEB+whermQWVIxzE4bZBut1+221XZP0ZoF
wpIYutLOvdDOIoIrQP+e4r2v9A8e7+k1DhbvgUdtoj1t2faU9lwU+oFxM/EYzFTov5bSUzodmrkj
EkijeJJbfT+bqrV77Tc0uDILDS4UQzZz/T+iaB6REnc8RfUV2Y7LdZ+L5hYznpbS1l6epghcZsrv
TDs1fmznYViAlJM0RAjcKi88zixqYOpGw9QHmj8KjBYwzMYr2ZPp3yeImobTttZnm0SQbcAu2OEZ
DyJj2jUGlEN1jV7zpP7GRq+RehCqWf2mjv378s7VDf4vzg1u1KEETVMIifhTyfPjyz23JK5Uuh7G
wmT6F21VBF2fiKBYo1mwc2FkaObNx3jE2Db4j2DdB/58rfv3Q9Y4Y6vwbYfkCa12t0MHkjO2WFm+
eWX7xJ/sU1cbKN12d9ATrRtKLay4XBF8XhhGYdLas69F369Nl9h4sz8Ze2mKUsMQEzsKT1HQllou
KzKOwCqFVEPJ5AtF0QW/qthEyUmuOFaAZTGkFyYI4KnM6XQj2BA2uY1xZXzJWm21pXXU1qCj9Vua
JmfBa5ESW1qEnc50y5qSwk05jdCao7KdFeD2aP9ekJldtkTaMzODE5hKsH9iR6f0A4RKGLv1giQJ
87LHdTYyGlnl1OtRddw5Gip15AjxPrG0E6Vcl8hPO2PRoNzjk4RViYw8x408nxZjpFMAjL80fjkZ
RV8RDU3NcCuY5TxxlxG+hic9Yg22oiw6ebLRNpo6HOrGY1DSCmlv5KyIGVKKdNU2MV3uAZtzYhHa
Y5fPHNfwXqBF/Wjdcnu3j9DEraSxmYw6RFQWguAt4jHmy6pgTPNq4Zl8n5JhkhNAMkQegAl7S+sg
N0GKSH7thv+nXMMJw5B5+Tjsqmq3QlTo6yQrcGGJpE5HLIl4rK6YbptSSYGYlU3RN3vgBhkhdJ1v
JItSs7QW7UG3Gcj/W20hiWY0q1ErQK+32/V0aIrDTZiW7Rxr1yUOnjoErCtCW4Zf3eS6VxZxu7Cn
s1iYfjZffzItaxQ+l5+KdrPk7lpX0n3+HTKkX/iyghsiQ8maEnmLyQq5Mf+XThJlAvLB26mb4sdS
sXWssRVJlq2SrYG0A/B8aQ1EQrxlblAg0JI4KNW6IRhDkDB13IqImZtBvhwDwPEd8XNWSSFRSb0j
eJk12F3Mfe5m6imRUcJksLFT8cCX7Ft5WSYzhMd1zyqwSAbmHKVUE1qKCCCoKdPHR8586a47knqG
uXPN4b1ODOrZUcIvmjrJjBBE9xfTpk37R+Dz5MTCYm0K+Ut3WgpfZTOK8KX2+/0y+OI2PVnxSoCt
D3Rbv375gjmElogqedlBty9nF4m4Xd59f+eULeYeF1CLJYZwRAdBcc1/3y2GdR5zUbnwNl2E92Lu
TQ51cTDDy/Mw0iBeely3P/dGuYUAv2+DVkxFchaOKeRd+ZklzPvadYyfTcCGo6tEZNn8gPUcSK8h
PbUbcvmpgVLASAbtVk174M9XP0zP98Z2tjNTVcXqdBVU6A5UoXvPBdIDlxc//O4iYBGwMP825k8V
LY6i8TrQtLP8g1dqvO4AvD+/+Mn2Kdr2ja+3HjIR1/jQhoM1YA1Y49WtMSmvaazJ1OP+V+7fcG9l
+an7u2FO8hZ2i/WaOTalEiv+hbKT6Bq770RaFV+S0gNSgAuAdxfjZyRXlYQKapR/IWe/7FgxsebG
yXO0cWawIA00ywfVyrr6ipK97hY8KGRdVYm8y8MZcjWXglGxnvH3kaJRHqFblJkaz+xe9zJKdnpd
KAklj17J3TihTnY+filE1cvRx1KE3pnixkKYBsv9RCy3YxiAI/cGmkAUIAoQBYgCRAGiAFGAKEAU
IAoQBYgCRAGivCai7PQDi70hya63Rt/q9uIHubpx+Orpwe42HPI+AfqC6AuC/dHNgpLoCyKfBcvh
hAyOxAkZiAJEAaIUEWX70K6HQS8EgEOkUkAUIAoQBTkKchQgChAFiAJEQV8QfUH0BdEXRO6AviDY
H40iJDiAPRyZAJo4MuHIhCMTjkw4MuHIhCMT2B+nkY+dO4R/NRJZA7IGZA3IGpA1IGs4wqwBtWQo
iSoYMlmwHOrqqKsDUYAoQJSfD1F2+JnGvjAIiAJEwUkcJ3HU74EoyFGQo+DUg44gOoLoCKIjiI4g
sgbw/nE3eXaL6feb2qCr99F+EIRMFiyHszHOxjgbA1GAKEAUIAoQBYgCRAGiAFGAKEAUIAoQBR1B
dATREURHEFkDOoLoveAvxr3lry1xtR3HThAIjp04dgJRgChAFCAKEAWI8nEPuXu+qQlEAaIcU2kc
9XLUy1EvR70cqQTq5fglP1KJrVOJb/wZiQMSByQOSByQOCBxQKMdSuJvL6Muhko7WG7vRfTj5sgd
bg5JMeiFAIAf8wNRgCjvGlFwYxGIAkTBbYDjRxTkKEAUIApOPfs79SBHQVMQTUE0BdEUROKAowia
glASSuKGG5qCYDn8oA8ciWsGQBQgChAFiAJEAaIAUYAoQBQgCpqCQBQgCpqCaAqiKYimIBIHNAXR
FHy/Sr6TnhI2HNdRQSA4eeLkiZMnEAWIAkQBogBRgChAFCAKEOVl1XFUzVE1R9UcVXMkFKia42cL
SChqI8pk+hdZae09s8BzRWlD5Nan2TnNvQLKHY9WqcKSeFwaRpJncpdJhol9cTNEHpFf43GCWIzl
kO2d0GLMC77IxFhr0D6OrKOv9c/yD/aQdWwLlP08UPaLQAmZxy/z6uZmcjNkF77PF0ufUXayFsp0
loDs2uFPzv9wrNWCe+dBiJ1f/Xl7/ieffjP981tn5c548GlEgXP+T8dYWTTMDA473DCm514Y/Oe5
N/j7bLk8VVu9JhuyqeNYbC1gOEzhhfCtV6btd7X/+M1XILuv24FWPYr7mkLH/bLb1xJ8BmGBsEBY
IAIQFggLhAXCAmGBsCAT5AJyecV+YE1aCUeDUEAoIBTIBEmBpEBSICmQFMAfJAWSAkmBpEBSICkQ
CggFhLLnvo8jvsL8QW/lH/Sv6n2QO/24lY9b+biVj1v5UBJK4pci+KXIQVlubwRFpluYoQabXX0y
LWsUPk8Njd5zj2bfXesqPp3l3yHNqcUv5U67NpQ4FgoCg82rgodR6SQBSszkg7dTdxO65TrUsUY6
dgvjNzsSLla6Cv1raUpP1Tqa2h+0VbV7Upaq2I/OA08c5cI2UmJCtzmVYceozA3yCDAqiYNSrRuC
MRP3Yuq4FREzJ/eeJAAgP5sJXzaMEcncezqbWDz+nJjNI2N/v+cuZ3pQ+lM7SkdptTpttg7EEquk
kEh2UE3QaxQkeJZF2m09eqO+5zvLjF/0BmqrnR0zsxyP5wa1u5rQCQoueR298yiQkxW90J+nPHw+
XsNLfp1Wt/46oSCjYNr1OzbEX/wfUEsDBBQAAgAIACY2m0pNjSVmzgYAAKI+AAA1ABwAc3RvcmFn
ZS9pbmRleGVkZGIvcGVuZGluZy1hY3Rpdml0eS1wcml2YXRlLXN0ZGVyci50eHRVVAkAA9j2AVli
6QFZdXgLAAEE9QEAAAQUAAAA7VtLc6M4EL7nlJ/A0a7aqeJlY/uW4EnWtbXj1CSzdwyywwYLL8jJ
5LK/fZq3BJLAryQz40nNwdBqtbr7+7olYDa9vkfRM4omk3CD8PT6K/pvi2JiO9hFQYC8i2/Yhyuz
6fXUIc7CiZFIUvmkXF7MTqfPy+XtEGPkEj/Edwh7Pl7ZQRgjkNZM1TLMgWmMxqY6UpszVSMnE5er
5SYK13bgI0yS2es6DV1uT6rC29+SbHyrDb214+O+wnFki6oepckwrGGfFwwfP4dPaL5BkZMousLe
Q+Tg2EnVPvhrFPX6EhNCycAbP4IEoFzoJlY2lPCs+r9xrddXeup3a7lcDlRrqaqu2s/y5QZmDKNX
CBAKEEGFfJFOlesfwjKUXEnJXY6FLQZqxjA1UOy5Rwd7AZqmk7WL5b/LOMVg18MjipDiwH/NGKjw
Z411ZZOl98Vuqu7CzQZS2cFKGdA/FBy+KEQ2R5vV9jaKIBnLmSQDQGQZRut8ROaVclwag5634I7M
wnXtuE9g0j2kgsybnu9Nm/InSVHNUIsU5eZgYUk5BwjOaWacTKKcIsP1JpH0OCIhZrXcb10XxTGY
8klxM2cqMF+ceNGPaW6BcJqJwlKV58cbh7iPn59LAqEAZ2hqn4FbwuKixaUMTwFI6V2Cb0xrONQN
3VLNfqNwSBzd6mcr9bOo0DQo+EhgG6mjk4ONnuNkYEsyqoIa7Vl9ATEX4S5xLo2idKQK/7Th2BwM
1L4chvPa8ONExdQt/R09proL6bpj4kTknwyONhixQlTNbGkbIuQQJBrbbB00VTeFsVuglY+p4TM2
FH+jNUAcRtBXm6PepZ04Sppo2qBKEzFBz2lm6kbPlTnUD7DATsIHsylFGwnxevHJY0nONDPr5kip
ejul4s0k11yUgGwx9MawjqFn9S+6p1hWjqgLqZm1POJWmW+bVeR46AtCHvK6VBfTVIHU0Avn+h5V
h+p5UxzMF/+CczLe+QTVRbnsN1bWkEwXVv0EVG/JPLryvMbQPLJ3ovt56pQ5VuUnY72pqh3MmuMs
5USJyF0Hq7LIwDaDDE9lSm9TdQNXLS6VbE6asgI2Ksi1MUDAQ7wUcLwkIMr8vsDVbKpouqGZA0Mf
jEeWoem5OloXszhQ8QW9UGqBqdqHfP7uxwmwm3YzqfYS+YQee5/AVEpnwD93IsfsGCWl5zpBsIBV
9OVFBua0edkm4Ef7+JnJjOZNQaOFES5LR8nHc5xtho8K34Iz2lBLc0vjmjx+pZikHylF5JgqGUwA
pWzz9DUpE7ys7XYbuWEknAEgwggwCqqbXXBwt5v76KwX57CQ4w9O3TtOplAVNd+p7ZjHXeumxUvd
Q6pWuF77hC3FL34Q2Ol1eYtxmCcPt7q1wNbXwJTIxs0W8s0cJTu0q3tMdrpR1EbuIFF9lAgLS1k2
qCx50uJ142M/fuxavbjWdHHiTmWLNwu7I9INY7j3lkVSBHnZ0yhjHPhwrb4UyACTLMKoBWhLP6mP
BW98vG1WzSsUgXH2HMlico68WhIUMXsaO8/WYr+y93aCSOLG3xoxIjCnswgADG0cUwrWEoVrCUwF
dSM5IoKfz0gh9agLUjHD5Z9JgMDjwnMGit24ZkmxxhvRxJoxGo14WEMYrmxRKxt0R+XOy+dPWKMT
iSrOYsfDkZwKJeoOWfvxmtodxn4sVhFrTLHjMHWrdsy19/GVvFZftU7c9XztZ3F1VeyvTuZ0ecMA
FhRTz7oeK3+ss8b0QKCli0hlGg1CfSSnTL1X53/u3d+2dz/34+d+/Gj9+M/eJLOnKpLHACtERE8A
bhHJD6h+qab53Pydm79z83du/lqbsFXBf23UveIRZXVRHsBKTux0SkaOwIqyBUhb1QSYWvDsBFt0
E0Z/oddOOX+76xK7PZVg6s5xH0vc8kJanp/Fyd14GxAwh0Rbl2xBrx2EGL3H44vfpgVJXqayt1Ec
RqJOZC6WeMPd3bkF+gWebp2buDdr4s6HEecG9jQN7O9zoHPs5vh8bnTUc6NDKljV9rRVMUmD1Di4
4oyRo4ESlPq6FJJzLNWqCYg1rEtQzWB2fTIR3CgJ+KBty3x313TbuEja1IN3LnN+tuT+gp3LbbF5
oV5PfkKvtVcE3mjvUtjlhpj4GKKzxRneeyTMrGou0ieJAegEfT6juQ1scjP2ftuYVSvPO1ZWnNI1
OTkwZ4ywAJs+R4gDz1xMKYLZ+iZmhJYIkqZ1RRVIZ/v6qxtUZ8eNch2tM2HGfVDAfognpjEJN7JP
VwVfWdc+AUl1VJ2ZNU5ef2c3D42PqK2xPjSF6SL9GJtVvXZeFyi9PsujXp9HG4rX/QNQSwMEFAAC
AAgAKDabSnEYAqBjBwAAYEEAAC0AHABzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLWFjdGl2aXR5
LXN0ZGVyci50eHRVVAkAA9v2AVll6QFZdXgLAAEE9QEAAAQUAAAA7RxNb5tI9O6Tf8Kol9pSKgHG
xs4tdZqspVWdbdK9Yxg7bPDgHXDSXPa37xswMMDMALHTOK0rrbrA+5r3/R64s8vP04AQ7EReQO6C
W0wfMT0/d+3IXtghzp/dYOJ6ZDX1gxB3ZmKsYIPJ5edv+N8tDqOpTRzs+9hl0CmEE6zXXnRHbRLa
MXLnO/EAHEAudyy5hyl8p7e2PdJHFVgBQfQJdXmO6pMAtG5q1sAcmoPxxNTGWqfnLoScNpguA7qe
ChlW4HN2TEYR6ysarKe+h0nEKJQFGRid27/+9CJG87PtPADWbRTQJieWWCEjJ1Kw4LxiMjEzuTlc
z71ppSeBMKjn2L6/gEP31XoFZkIuRV0ag8FIdD6PPAYPeA5mtRniBXE5MnfeGtNeX3HSQIF45VFQ
uBz33iauj9PrTIQQBL+7xxQjG/7TB0NtqOn60ECbxG1kYSfSA4O9gv8N6DMAYB9HGb/UX4SkhJCK
p4LTVW71+qin/bCWy+VQs5b6YKT1lU60U0/M7DBaHFqTXIvtSN0Emw24vU1QZvEzRIInFKl41Ek9
3VIKkZ9xUiCkeSfBSLSS4SXhKMlYibn47CHLKSsczemXEBB9L7xPKczIMgAGaQYFThL0KiMU34Ir
tPR8jD52PyIQ1vXCB3XyuKyKzFcPljcriCKD/lfrhFrshPKIuiz4OgOc8wnx/JzuMmOw3jBIVwAS
kCKV263j4DAEUT4hJ7EnAn4hM6QX8kkLPMpkBDNSoLqNHTn3Xx7TgsGdRhvoWr8Q8Sx5K6s0F8Oo
1wXdmNZoZAwMSzP7lWKiUHStnq1Yz7L6UsnqB4r3sTZ+9XjnebxavDOPyqOd16yxAJvLQp8ptxCP
DFODP7pmacMhYO6ZCZRRPC9xP4xRTcMy3lDhmhMrXEoGdEajv5NonoIQK6xscwsNIsV2hGW41ZZG
1wxTavoFXnmEQ58VTfHSTkjiL2VuyuYi8YyWOTWXk7sANlOmNFZhcq9ET150n2VUPp0a5hjlbTjK
kx2zsINZZCxG7gT6rZFr9TvNDZucttDFFq9ThVRKw/fNitou/oqxi90mJcE0NchE+Elw//j61JaF
ixvo4liYL/4BUyWp6xMUKNTtV/RcgYzVnF9CZG8hmV24bgV152c3sue7g2QnzrVVkN7UtAZizUkS
ALKwEJ6jPBcl8VAn0MDVCtW7SrpmAKvAKybvKmzN5FxBkE24AhewXWYQNL9No3x2iXRjoJvDgT4Z
mmPdNJuNpftqpNV0KrKsbII7vBcUsEUseM8sAGdJI8vEc5LsKg4aKml81kUIH8eVe2r7ZWCK+p+B
qP03yxbKKegbKxDgsDT+u3uGgljfKIydh3PZEdtLqElhJ6Bs4/KAn1WUhkM5JYibpmRGhrKQ5DF0
0071fMTI/V+ai/d2+xuBl3F1eDeUtYyBpvXNErn9PtUl2dcVLPPk+X51EdY9sCb3l7q2EIqWWD95
c/yi7W+rTa1yD/v7bFZb7jIrtUwQB0KpuxIYSAmLgNZEzNJjRTJNAMfXZZe0wmUiwcjBDrNLdhfL
CNPCSJMoJR5Dunv175HCbuLJqACC09VDXbLIAEuOIpQEWEEBYGsduHzEKCpbXeKKVx4BDn8wA4HG
pcM9l6aEYiljTYRRjbXBeDwWxRomcGeLa7NB86hsffz6F2BqUoLDTkZjdSpUkNvn7IfrbFvgHldW
kVOMYwcGiMPvlmqK7kUt4zbLqfei7rzgX7ya4tVNA0iQsp413ece12vRW7a6q+kkYphKk1DGFJSq
t2rjT434qRE/NeLvqRF/791xcS+iWLivcCTbtV/jKFlE/Vrd8qnrO3V9p67v1PU16r5WaQ6sS98r
UbLMb6oNmMPJlc7BqKMwT9vyD0YKLxhq33tYhj5qFADXbc/b7EVDoRAd9k3Dtci+2SYtZE/DrR+B
OBHdOtEW6E79gOC3eCPx2/Qk7FOo6ZaGAZW1JnM5xE+c8U490S/wwuq4SqSAVGQ/4K/4R/RtSwg4
Tcnsu9S+S9oB8Z9RuN1sYDwLkc7H4BkCkdATcPYptt1ndG9DkOqnPcHppxCngUXKuM2qpeX3lke+
ljmNNQdbJr23oSfvv+rKabFTE9xVW5gDVJo0A1KHM9cVZp8aO/F18gEiBCgCVPp8jj50P3QSUPZt
7sKLlYX84AnTeCZiP39h9RJKaX4nj/AElX2r9ch+Zhe/hJ8GW2je+a+zJqZ5Vr6BlhhcA6xA47Ej
fIEUTWJ23t4EzWYxRee99zA2F/vdTtcwjF2n8xj36XX8idxbjGOpXE5AwNO2+GpLkmDsRUEiVfWQ
4D0gAH6F0aVAuS5s1WK8+NvlIlm13xVh5S5dglMngFkBWFKPPTFQo5Aea5p2Vr5RCem6r1IpjjHU
Ym4kUKmc6fNE0CSC89Y+LAg5tEZVIRtkkdlLDdosl8wO64bldDKThsSRZpS32mO0+4cBCpxg7NwI
G1r+Af/DnPhuPuBYk4FulH5OUvmVvzUxRqbUj2r/3YOc9Np+XuD4/mznDmU++qjzP1BLAwQUAAIA
CAAnNptKkXp5LcIHAAB8RQAANQAcAHN0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctYWN0aXZpdHkt
d29ya2Vycy1zdGRlcnIudHh0VVQJAAPa9gFZY+kBWXV4CwABBPUBAAAEFAAAAO0cXVOjSPDdJ3/C
1L5sUuVWESAQfdO4eqm623jq3juBSeQkQ24gur7cb78eCDBkPiCJnnE3V7V1BfR09/R390wcXV7c
YfqE6dlZvMDk8uIW/7PESTr0iI+jCAdH30kIb0aXF5de6k28BKsg0Rd0fDSq8AUr+GFMCPbTMCY3
mAQhmQ2jOMEA3bMN17L7tjU4tY2BIVKqVp6d+VIsVzSeD6MQk5RRX8dpmYyfe+qRxCvRzBcRTnEw
XmDqsXf34RzTq5DCBjrGD3c6nfYNd2pYgdEVVi9y0k1rbUOyFijPw3RMcvGwz9X27uNCaDkUt5CX
qPhREJmE5FFn7oWkiySKFBBmOuwEEyk07Hoa0/lQuugPPI/pC8BfeP4jyOgujamSQg7MQ0r47nQ1
nAdhcKNjp41gUMf3omgCXHT1tgfEpFTq9mZaliPzlpA8xY+4tJlzEnBoMgvqdFXmIKMsWFYJdLQu
IpHrYwXMmJ5PYqoDnXsvE5w53Whlw/XtW7ZpK7chCDVDFAhbmYIvjclw5aQa/ccacWYOqVn74JEg
wsVzqZgE9nP/gClGHvzrWX2jb/R6fROtvF4f2/INbR/V8vWN8Uzny1pUHV5Vlut0tzbVvVPKFZCB
cAJawcxqChxFPpIapBRS81XCsfCq0+WzQM9yjC6Lpk1bxg2mvoFk+u5pJZnNUN3EiwXYr0dQqcUT
ROJnlOpoNHE9XFIKFlhS0iwosku+IpdKuU6bl3J18dnk6O7P38MUC9lohiHQfU1gYRQmDwWGEZnG
QKDwaaCkWC4SQtkreELTMMLo8/FnBMwGYfKoz12XIst8nmcOLCyUKfTfRiM0MiNUp5fLmq0zwDFf
3Z2d0VWZVxROEpCY1LHcLX0fJwmw8gX5uT4R0EuYIsME9UyrZ/ct03Qd1zAGDGGJCkS38FL/4etT
GbhgNwb817MGkGHzwqr0eFaJqjaXVamcD6POMcjGdh3HtEzXsLu8yHngrZzdzeSsKpaF0P9K/j4w
Bm/u7zyNN/N3ZlGVt/OSNSegc5XrM+HW/LG0FsM1+n1YuWMk0HrxeI366yjVNl3zHQVu+JnAlWhA
ZjT9K/fmITAxw9qGpFbtUOylWLVWrHh6BpSUW5cpCpOZ4FlIOPgRaZM51ldpi4vcMspwsncFU4sI
X9HhHgD1kKmQ5bvKR9BzmD6U8Z0L7o4LZKuyFFWhl9mbj5mfTpzgFBh0Ard71N7MctnXOof6c6Ee
IVF9X8yoF+BvGAc4aJGgnFPbhriInyXvt0hcXLme+cJ48jcIJw9dXyBBoWPJ4GAdMttY9QievWT9
WyC2UyvN3qi+N8wz1rnXs8WPNjabuZR0VnMT6WBEJgX1x4b+X4DX9FUibMN8RFigiCkyE/ACphA0
viv8anRZmF3vtG8PemB2raYiu0pko+GITDeqcYYMdjdzEYYhrS2zjL9l7BuTvGd+VVcp/LNp+Mf7
sfBOr78STJP/SxC9/ZbRQtsF3bKQDAZLs/8fn6A4kzdKMuPhTNZhYzE9KuzHlI1OHvGLDlO/r8YE
ftMWjWPaRisfutlM9LzHqO1fGYt3NvsbiZVxmW/VlG3oA23z2+nm03J9dpEMNJ/DKFJMNF9Rkrtz
/dPO+FV5TA+8Gbu/8mB/7xqF/+2YQXcIIPLBRSJJkc+Wr4Ld+TTFtNZEDFdHS0WDsHX9nmoOZOS9
SA0EF6MHPlhIscNyCOpsVAOPTxil67KTmVeJXhFlpN+1riJbIbqKNRgMZK6CCbxZ4kZn/pBHEGqM
mcqgFlWPG34SCeizyXmjGDaZurTJHedvJnh9/gEOCtKjtqPBd4rtiqx0x+YuDafNGYwQ4ddXagdk
VyGBWPIbYx/4UY4TdyzONiYojdWrmqWpktBQkATKU2fQrrrVmruG5k6y26Haeati+kM40KG0P5T2
h9L+9Ur7fay369MTzVh+hlPVRP4ap/m46lDA/6oF/H6UzPsl7kMBv38F/KvVc7Mi5jXNR2d8cBRf
6hVYwamFzsHovbAK0+prJLVjh8bTENfsOa0c4HrT/bY7fqglntc9f7iW6becryXsa7KMUmAnpUs/
XQLeYRQT/B7nFB+trtikRKjVIOyC1HBJk5iqSpGxGuK9DnB2pPtxD38+eFV36HXftSaQoEq9R/wN
/0hvl4SAnaxperX/VZaKSfSCkuViAV1cgnp8gDpBwBJ6BsoRxV7wgh48iGC9X6jXPzQsOzcsh3HJ
245LDmcohxasoUSpqsGmMqVeN0re6nXIAWqVVgLpgwtXo5YXkP3sOb8kCaaPYCl9OUOfjj8d5aDs
xu4kzISFovgZ06xDYz/RYckM8lz1pvKdfCm7T/bEftecXRQYxktoJfgbZNml4LUXaIrBFUELNGuC
ki24aOOV481V0K4z1PQBO7eGY7ndrWQNreF10R1yF7Kza3zv0RwWfPkxAUtb4qslyZ2xk8Y5V+Im
wXqAAfwGjVQN89vesRY2If+gt7s6rNqk1+D0AWBUA1ZkulAO1MqlByCek/UXgks33ZylOFvRuPfK
nVttbFHHu4H8edcXBFKgzSWSw1cFflKTRt91BGmoY8lI6w07h5ORyiX2NaIcrsVuOxmp4YE+dSGd
wrX6wP+2KHvL/w7Vds213+cUf6SEB8r/wkHT30TgVliuo+bpP1BLAwQUAAIACAAoNptK+W8/O8EE
AAAFIgAAQwAcAHN0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctdmVyc2lvbi1jaGFuZ2Utb24tZXhp
dC1wcml2YXRlLXN0ZGVyci50eHRVVAkAA9z2AVlm6QFZdXgLAAEE9QEAAAQUAAAA7VlJb+M2FL77
lJ+gow3MALR2+xbLDcZAW6d1pnctVCxEpjyUkjSX/vaSkiVR4uIlykwQJEAOpt7Gt3x8j1wtFxuI
nyCez7M9RMvF3/DHI8wLz0chTFMYjb6jhKysloulX/iBn0MZpfZVuxqtWnnRgd7LEIJhkWToFqIo
QfdemuWQUE9N4BimZRruzAQu4DW1nPN5KJRyg7OdlyYQFVR7X6ahU3vusI9yvxGz26ewgNF6D7FP
1+6SHcQ3CSYbGIN/nTiOLeDEwIjAhOPeV6qP8ZpAwEs075JijSr30M/t9u6y2mkVFcPIepT/yLlM
oHI03vkJmmiCQHICyxiOo0BITXYdZ3jnCZk2f/2eFJR+4YcPxEebIsNSDQ3xeeZGSXSrsuEUb2jj
0E/TgBg5USccUSbU0k0y3TBsUYkk6Cl7gE2iXKOIEVOmzXgiywGRZi6dGqJR30W81VcSmjW+DjKs
It35LwEsK211SNzu9g1TN6Xb4JxaCoq4rcSkgNbIO1Qm/XxDPmX4hciAdKm2p0YYoTaeUp5ImSIu
ZTkreLc+itJGURPhnKi820IMNZ/8Tw0LWGA6tXTtgBlqZKw8czkmVvxH0VCFBEpRYzbmhmNPXpPz
ipAJpHJL4wkLtlPDBhNlsA8BK5UNE1fLmbVxPU/Ubbbfk0D7SGty8IuGsmetUOk4ZrX3iDEJVaNJ
wVCDeMVReaXhU8J/FS4W3l9VYey5RlOOEyLy7H9HsgGA8Eg2EPBb8ht5E2OmBiiNkcP8slMBlHDN
tlbzOT70WHXXIiDJUFfK5jEMYZ4TU75qYRVljejLaXiTvAPeFijBuxEVJfneL8Ltb09N3bMd0bTq
ahpwpm2gbHNli8hUtja+Ir4xHdvWDd0BZgcIWOKLIMAp/SzrVDnkHAgFXOC+OQqwOt4MBWhGtRjA
elYPSMxlgECdy1ZRyQnI39SemZZFOVVluO6xDxMVU3f0X+gxEAbKfeeFj4t/qnL0iBH3UNnOd057
DP0Cynj5E38KSG8mi10A7xPEsK+6ofgD7kiJc918n+viLuDdtWYSgF6zyHQaPLfmMD+IBR4NH9Gm
1d0fiddzUmwbcGaRWTddrW3JtBY3aa6FkBZZYEczsg87ciaj01OsOo467Xf3d91jc6fM9/099iP4
J4QRjE45XUwTEFCDz4L1C06dgefwrsuekzSVjE2ftwc/4/ZAgjehgpilFNg9nnxeJPzyiwTVmP/u
joCeVxhQEuAh3cyh076OC4g7eOsdMrDG0jOhThLKmwQl+fYb3SCxWNpDsAP2qUzipO8lsUIUn87G
zHbVBagQ95o6uBhx310+/vw563NaGmJakopBWZHEL61j83XcryL2QHBntizqFH06rA1MtdrENIK2
ja1a29C/aIeulrhcSnJpb9oFQOZW0Z2Zrtu9yjGtI3Ao88FxouNQJ/Edh3KuOZLB22mam7SoolI/
qvWuY9cV0AhtYu1xq95a4rINnQx6Z4V4olmkWfhQzTNHDq9y3g/02DAEXWteZHvVpb3kybE3zpQy
mFRxXEfv0oTciyIhOudlgn1TPOsFxHUcx77kBeQ8d5xH/dFfdD/4O8qQgKDPLp8qBnjiGToDB5E3
TPR02jR+jPuv/wFQSwMEFAACAAgAKDabSlkF2aiuBAAAChwAADsAHABzdG9yYWdlL2luZGV4ZWRk
Yi9wZW5kaW5nLXZlcnNpb24tY2hhbmdlLW9uLWV4aXQtc3RkZXJyLnR4dFVUCQAD3PYBWWbpAVl1
eAsAAQT1AQAABBQAAADtWc9vozgUvveUP8G3SaSp5AABkltDptpIq0130tk7AZNYJXbW0HZ72b99
bQhgwIYkTXbnsK0qBef98vfe+/xMl4v5ox+klH3MZiGKUYoWfupv/ASBezC4Wy7mHiUEBSmm5Jmu
EXtDTCfZ8e0Pgv98RVymWJ3NWkvDERjCv5woiibQicamDUdcc7j3MRkBhYGdT8IYLTJn/WLH59UB
MV9sJuFxPe8QQ8Dnf2NzAvmvMzXAAZEQk+3deaae6OGAQuATQIvlr4DQd5B2+eiL2ntlDJG09NSh
wEUiyvZHjRyVUi/LwTDcKDXzdM394IWHtOalgO7Wv/+KUyElr85mW5Su2LeEK8Y42RUWliSi3EFY
5HugU287AtkSfwIRjhH4MvgCeLAhTl46dhricNEOWaq/IKYJaimqEvp3bxHCrAh1bVBEUvrgghx0
sph/R9xuks5mLP/g0f1BSIYKEUrqVtavQYCShIdyD4I8n4D7S0QicQLGFnRMa2KZ7pRXlCUMlqY4
dAc/DXbf3oQSz7q8G2iO4UiIlx3Pa5XoNie+k3sYDAccG8uxbcM0HGiNZMhl4Yua3clwVmjKlqsw
r9TvLnRv3u+yj5v1u6ioqttlZI0Nz7mu9QW4tX4UmpD/jKEDJxOu+Ukm6OziVcP7dZJqGY7xHwIO
gwxwrRmOGUv/yLvZ40Fs0TPzSeLnZd1SqEqe8xpDfop0ulmP3svsMIaGpSprTN7oSwXiAwklM894
j9hQXzIbtMVEkl+SJg1rmHIlU4SmrJrGi8niBE6tIpQeuL4nQBMnTFWV4B2nu5JRZTo1LBcEZfig
IjuR4QCJztjY4XQCx3bojO5OT2y+DWkhC7N/p5T8OGyZH6LfEApReMqRYFmQMxF6V6x3lCXtqIZH
zDjGV2nO8XhSNef5B1cNwKOZ0l8Va03XggrdgO73OK0n8B3HsZetdycuKMquz7MZ3iTqFcm7Stdr
QXMPtdmo9WUroSqg9MlvGeycNQsSVSppSCHoFj4vXE5ET10xnIIGGAZ+HG94kKNuwubOlF7qNG2Y
pn0xTev51lOVQW03pdBdEyJNGyhkVuxhQ1lPx0S8vFekoOufj4UaqEhMpKBksZnjhP4QpYjVKD8H
JaPpwQX8pknlIyZ8yvpFbJBHrB0e5Cv4qUrqom8UcYepdjmbU9vtbsAOc5/pg4tp9qerx3//fvb/
LesatyytGUJTHH1UwCarqNlF8oHgTm1d1gX71FRLmqq8qWUUk6PctbZpfAXHwZpDrhW5dDyuE+Cw
sutOLdcd1bty0kOHOgz6hfqpToNdi+Vc5d3qDM9lWeRZ+V5caop4PPEaK1zlRKOMSY7H5eO9HrK1
uJw0zgr1pWoe0+Alv1L1HF4i3dAPItPUZ4vKPjyfBCiOm/e1JKWH2mZcx3WMukz2Sq8pZFjaHbeS
+5RzQ4Zp3fTe/9igbH15HKwbfhzHPt1PnrTWcXTc4+B8nM6T7pHQMX9LsvVKvxPQeila0IU9LzKU
Vh4Z3XsxVrabBU2jO54c+MsjyfV7Y+i6CHWaGsrNajr26NaEYEwvv1V8Ygq7VQVexd51smeIofHi
92qfGDZv8j8OCIPs3fs/UEsDBBQAAgAIACk2m0pR08UwRwQAAPQbAABBABwAc3RvcmFnZS9pbmRl
eGVkZGIvcGVuZGluZy12ZXJzaW9uLWNoYW5nZS1zdHVjay1wcml2YXRlLXN0ZGVyci50eHRVVAkA
A932AVln6QFZdXgLAAEE9QEAAAQUAAAA7Vhbb6M4FH7nqT/BjyBNJW4BkreGbrV5mEk17ey7Y0yD
Suysoe3034+BAAZsSDKZ2VmprSoVc+6Xz+ewul3eQZRT9r5Y0D0m2up2GVJCMMoTSh7pA2avmFXv
bmEONzDD4BpcAf3KALrre57t2L7pGgWjjFj7RpJ/XzB/W58sFoMjncsyv/txHM9MP7Yc3zTAlYxT
lNyaqek7mBADSBi2kEQprp/Xe8xgwZFxHx63mGEA+Z/lzEz+G5gB4PKjhDxpp4m6p/s9jgAkgNbH
nwChbyAf0zFldfjCGCZ5o2mEgZPElO1aDtJwdSJrb0xD06ONVEgR3CVEz9y2B14RuOQ0+Y/lzd3Z
rOBUGhAl0brHfpmsuLZv/4cRM9Fm1O8shyz/B7OM84XciCf8yCDJYFWXA4a2ZhcLxDDMsYq3bLJr
YLmm77gz1wnmlmm7ytxt8FNCBPZVNxUSjoS80uc29jckEtgfkx1muqF9xjsODZxPlDbUpkKNQ1U0
WMDJyuflV8zNyfLFglX/hHS3T3GOI61jo/DAYxEWAeNGgKg+uwJvSb4Fr1UMxWA5thsA1JgEWqQq
sotwUdYbL5rPeHFHvqEdn1QOTJxYOCjN7GVO4ikl3/ZPDEb4C8YRjjjkXQNUVV/jQJJ1fHBdk8MI
fpOcj5QkHUnpXcJ4jC/SmJY1axtzJTgaJdke5mj712vhWnlXCP3kWKYxCOBBTKOvtbXD65oSXkR3
uyTvJvAtSdOwPB9PHKrLbkqzE/0Sq9ek6hRV/6C+D+ItO3w5SKgsUOrkDwSWlaxCnBpApUwK3EAj
xCKlxG594va5HzPnmMAAHcE03XArjHHc5sqkWrpobTuOdzbsquE0lFVEx5uGSOuHSNEREpo1u9lQ
NtE8Ma/0NamR+88DpF5UBFCSoHPhzMMLQjjLbuIcsw76h4cKrJH9RKhTpPIuIUm2/btwkFusnCGE
jj+aSV70vSIeETUsZ2fuBeMNOCLuZ/rgbMT94+rx9+9ZH9vSJbYlpRhC8yR+bwObreN+F4kXQjD3
VFkv0KfD2sBUq01OIxkixa71HPsTOMzYPORKknMn5S4A6q3cYO4GgdHtytkEHKpiME00DXWK2A1Q
LnA1Fbwdp7kpiyorX+v9prYnTGnG580KaKQ2ifYEfNJXh+yh2FN6d4V8v1qmFD1X29XE5VWk24Qo
dhzJ1JrldF9fguK6VJ4KyfcD3+7SoMLtPhHfZ1XODfJ4X8FAGb6u6B183+DyfHUYp3t6fN87Xk+V
n1F4rkMYQoJwmp5DfZyf3WJwzcCc+KIglXLH6C5ME2nBu6Zjj9tTxeN8Syr+SRvGtpJRUbrYLo7v
Gb+6Je35+XP9T8xBEzWluv0HlHX7XlTeZbJnF2PbuSH6GPc+xr1LjHuXX9nP+AI6+HR4WE1142Lf
Rx3LPmXq+79/bjzteh6Zbfw5j9zUbOPPbe93zDZcj3X6bPMDUEsDBBQAAgAIACk2m0rL6beMfgQA
AGIgAAA5ABwAc3RvcmFnZS9pbmRleGVkZGIvcGVuZGluZy12ZXJzaW9uLWNoYW5nZS1zdHVjay1z
dGRlcnIudHh0VVQJAAPe9gFZaOkBWXV4CwABBPUBAAAEFAAAAO1YS2/jNhC++5SfoKMF7ALUw5Ls
W+xsUANFndbZ3mWKsonIpEopSXPpb+9IsmU9SMl2vNkU9QZ7iMJ5fTPzcTjzu+mSiBciJpPAT/2V
n5AZZ4zglHL2QFhA2XoW8YRoXzXDRq5lj2zLG9vIQ4PvjP71TOZ307uW5GSCpVruBd/OIkpYCvpu
mjotczDv8idXEZzvSSHf68Nw61Omay2lvaqGFU2W5Tr6QKKDshf+RBYxEX6m6JYFj8JniZ+rfaRb
IoZ6FQYeE3Y3/YOAniSd+QyTKCKBTLP8ZOZZR0i8w5F7KsBSxRecRd1SIvPln9a3oa4N0d9uGIYj
5IYIYaSDY3DgHixy8Vb4n304JO+R11DYaSqwvgF9tus4pmW6yG5D1uFcj2+G5ea+qSBu1VgHvBuf
BRHZ/15mPYEYHjdEEM2H/4Y1QvDjIU+Li2YZnKbqgccxZNpnWpnOLxrjr1raZaPP69mzEFDapaUO
ATgScrE9SLBSqoasuUL6YBisVKXIpj5+At+WUBEkl0Twz0AuGo1Acvn7rzTNhKrHJpM1SRfiWwJ6
Ipps9grnLOSAzZ5GOrsgoMGiYf0ySbVN1/yJgCOcA65UA5iJ9E8ikozSwIk1qXBAD60K4qdEJdum
VgOZtjL1K7KmrCI+r6fiXBpV1EvTWk6RCuLZVUZJJ3BsUeXZyUTsCJdv44ikBWEe/Kz8AmZmGWjg
SKUqtVeabrSXAscqYJZpe9rhxtEOZJdlGJOsM1ZOMB4hwwlcfXB8YotoKx9yNyWANCLl7Hu8Fn5A
fiMkIAGw5lcNFxVYBkCTWgy2jYCJyKvk+7supYs0p2GMDs05rwQa0CT2U7z59lJe7ZWesgyktwDc
qSntHXytydpIIov5dkvTegJfaRTN8u/dicP7suuzbAU/xOsFKzpF1T+4GUNtnmj9sZVQGVBdA1oT
sXz6UbDOnkSlQgruwN2HT3MXyOWhy4dj0NCG2I+iFTipdxM2GJNaqdO0aVnOe8ZWBYfOZGVQi6Y8
NGhCpGgDyZmFuF1x0dMxIZT3gu3p+vOxUAOVChNJKDkLZvmMMUmS2zAlokb5BSg5Td+cwW+KVN5T
BlPWL1mA4LFyeKi+5I4Vkhd9o4g7VLXL2Ro7XncDdqh7Tx+cTbOfrh4//n12fWVd4pWlVMN4SsO3
A7DJImx2UfVC8MaOKusZ+9RES5o6WJOfkUyO1a51LPOLthusAXLlkXPH4zoBVvY23tj2vPqmwh71
0KEKg/5D/VSnwK7Fcp49UNHbcZbLsiiyst8iNRZei4JopD5V/fFgvFdDtsweJ427Qv6omkYcPxVP
qp7LK0s38nFoWepsKVZpjYcTj2vBeK7nmvUzuLUQhUPwulVF3LlYrave+m8rkn+f7wbrhh3XdY63
UyStdR3tYrw5HaeLLiXn193zB++eL9ni5vj8d8LnX4ufgraZjW3nhnTdzF8389fN/P91M3/5RcsZ
y+rWlne3UBjqF1tlW4Z5yqz+X98Md4yT7hiw6Bsn3bHpfMQ4CXaMs8bJE6bGfwFQSwMEFAACAAgA
KTabSgFAQiazBAAASSIAAFYAHABzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hh
bmdlLXN0dWNrLXdvcmtzLXdpdGgtdGVybWluYXRlLXByaXZhdGUtc3RkZXJyLnR4dFVUCQAD3fYB
WWfpAVl1eAsAAQT1AQAABBQAAADtWUtzmzoU3meVn8DSzLQz4mHA3sW4mXpxrzM3afeyEDETLFxB
kmbT334lsEGAJGzXSTOdeMYLy+el8/jOkbSYz24xfcJ0Os22mMxn/+EfjzgvQkgQTlMcXXwjCVtZ
zGdzWMAVzLGK0vhsXF4sGnnRjj7MCMGoSDJyg0mUkPswzXLMqC0X+I47dp1g4oIA9DU1nNMpkkq5
ptkmTBNMCq69K9Ox9faUIqLTLan4B20YbWBCTEPiyAFRI0GS4/ieKQtGQp6yB7zcYgq5oCsS3VFI
cliKvUs2mI5MjQmZhvE6oSwB1LxrSKIU73/XJuTM+Ls1ptiA7Gs5YzAGljW2jW0VOR6Ua6Ymoy8s
KjjFRS1jn0ONv++yOn5SSs2/Eot7SyPTGIGffhzHY+DHluMBk3EObrlUdh7PjP1J45njRN1k2y3L
X0iMOoqfDJI9G4VOx5DV4SOlLANrTRoGRhJndLPjqLxS85UxGEUrKWcVrhlED8ykW5YKOm9GSTTv
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
4Ew/5isyhuWAI0HafIMZt/7lMLTMeT4sRaE1bd6szM2V2T17Wt2NyoW//HT8oLXxJztZ8mUIU/B7
BfU/+ZcZZWpKdxp7RTVo5PwxLhAtCg3QgC6fudT6HZpkPowjGDxuxLZzHAg0QANmQahm1ZoFqccW
D+rk8XWy1I2LtGQ0QAM0QAM0qOUaT4sXYdjoinmO4kAu6hXnu+vz/AlBSn9aKNsn4M5LLeOFOdbu
eA0qTxyW83oiD0tlevUz7x+dVzzMyTAvlfJuuXxRmt/ZKU5AMc4r2rGp0sCFNx5a1cUUeUCXK3Oo
n2zyaPCUOK9fcX1ZRQ+pcPQ3b4mZhaALRgNmYqgdaIAG9ZuVpMqUoUFtHHH2RrE3CvNcqspWqdpu
larlmXluKWrpHd3sbyplqy3jgPoPHWk3u6eJKgWpZl2pS9ec+5ow15Nl1vG17l3GM16QO7PbObWg
2XedQ+vBGUj9TiEdW502O7VtL0sF31ShwVTrlq1S2yMb2u1arwTDl0bxpRp7VxtwfLfmbbqeN0bj
3FV0wHbqc3vpZyFYS0CDRtw0H9E9ndqKOCDJvYjci8hBnKrvgaztyhjbAcsKwnpFGas3Oa47ZrkA
Wsyr2DmtLWawMoVz14xdVxVYveYaopr14y26mSeb1pRBn5FBF1rfc/TNvKupjBtN6N7RAA3QgJem
eVaRiokG7bgFgDrJRtyyhvJ0dzW5M5FWiwZo0HoN7hfCmCwt27QuJpZQHZmQMvP+rbzpzrMic6HI
qNb7rfLh8kPe8FrlRNFtZap7E4DK3HwTlvehHy8/KqqhKcvFYvfLiZ3TKh1XzFfVmIlOV4o5MZeG
E5Dv83D4af8H5Uk4s2ehKZZXCHb1PpILhDCfyrwPAckJmNuAPNlAkFoH8dV59qOwOwc1UAM1UAM1
UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1
UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1
UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1
UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1UAM1
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
0ICul8kpzDPveMSQsYXPEKYdVGcndrHlcXZqGbyWd0Ri5ZRqhgXPHDJzyKEgaOrXFDVQAzVQAzWa
r0YtlmRyXFRhYgYN0CD1I3a8/sYIssjl/qrNjlRqAqUiUx+NmTDAj8WrR40qqcHGsbZtHMvirAuj
CTRAg5zfWajhMY9WrBQ2aiGyZjv/8dzwY1EDNZqmRlWHYWmKKLsxVUklXWufspBqWi3XpxoVrpQ5
5AyrYJl3nuSywn5u+R/fclIs61WnhbGvjx0pWawanjrHeqYjsiuinJp/diV9Kh5qP3/PcigQrd2S
17ncKErUHJwOFgpYLEEDzgkHx6OZ3lvNLkJWl1hdYs4cNVADNVADNVADNVCDNXrW6LMu6fNO2zEJ
wkQQGqABGtRsx1P6rrsN2+epvmiABmiABhV5WojlKcxjnnXT8tdN63jrbd1HLI28/qbl92vjeqFB
Je9ZL/aaMPyHJns/5VzIU+/DIjypUDPnskKNtBZzGbghaIAGaIAGaFDLo6Q4DnllgxaFBk3XgFes
OYVYkvn6XwhMZ80dq7zGmNVUIi+CNPFJ1cpN/LZ8zQ2HHg3QAA3QAA3QIA9fhX0mmMc8Q+56XOBJ
EC425Q4N7spu3uvthb1syKJy7ouJ9VmKquL0YlG8qvpToCW/E1K3VQLeIWrNO0T5H/bkNeSG+Qyl
bX6oYIfWxoevmJ8uSgNZVY3J0rJN62JiCVlpjV/KzPu38qY7z4rMhSKjWu+3yofLDxeroIpuK1Pd
q+rK3HwTlpeTj5cfFdXQlOVisftl9xmrqO4HvKrGTHS68gMm5lI2LX+WPw+Hn/Z/UJ6EbIayDVne
h9sn5KL5U5u+gkxOwNwGzOXls1yD+D6S2RzmtlADNVADNVADNVADNVADNVADNVADNVADNVADNVAD
NVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVAD
NVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVAD
NVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVAD
NVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVCjADVkPGOytGzT8uux+uX21hbOP4Tz
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
EliiQJbIYw35CANLYAksgSWwBJbAElgCS2AJLIElsASWwBJFscST8cK6VS1bAktgCSyBJbAElsAS
WAJLYAksgSWwBJaQLVFwtkT+fIYtZlYkWEM+3MASWAJLYAksgSWwBJbAElgCS2AJLIElsIRBHDnR
wzzM+Z/aC34BBUIxsyYkgSSQBJJAEkgCSSAJJIEkkASSQJJsJMmf47Hd4SeGlMjdwBJYAktgCSyB
JbAElsASWAJLYAksIXfDBJxYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJY
AktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsASWwBLmlsASWAJLYAksgSWwBJbAElgC
S2AJLIElsMRP9brSrBePbhcssASWwBJYAktgCSyBJbAElsASWAJLYAksIVsi/4CPDVIgNqYLLIEl
sASWwBJYAktgCSyBJbAElsASWOKnZYmNeWHdKjS3BJbAElgCS2AJLIElsASWwBJYAktgCSwhW0K2
RMbQD4M4sASWwBJYAktgCSyBJbAElsASWAJLYAlzSzz53BIGcWAJLIElsASWwBJYAktgCSyBJbAE
lsASXhC65ckqV/YRgziwBJbAElgCS2AJLIElsASWwBJYAktgCYM4flQ12L3n762zD0Ip5BRCEkgC
SSAJJIEkkASSQBJIAkkgCSSBJCbglLshdwNLYAksgSWwBJbAElgCS2AJLIElsIQJOE3AiSWwBJbA
ElgCS2AJLIElsASWwBJYAktgCUNKDCkxpASSQBJIAkkgCSSBJJAEkkASSAJJIMnOIEkeuyjijSap
2RUrUUuRSFJMksgjWikEHnZPYSAJJIEkkASSQBJIAkkgCSSBJJAEkkASmSQGuBjgYoALlsASWAJL
YAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAks4S0lWAJLYAksgSWwBJbA
ElgCS2AJLIElsASWkC0hWwJLYAksgSWwBJbAElgCS2AJLIElsASWwBKyJbAElsASWAJLYAksgSWw
BJbAElgCS2AJLPGkLJEfDlbKrEjNe1gDNzKtYeOMCiyBJbAElsASWAJLYAksgSWwBJbAEljip2WJ
J8t6WLeq1wOFfFiwso/IlsASWAJLYAksgSWwBJbAElgCS2AJLIElzC1hbgksgSWwBJbAElgCS2AJ
LIElsASWwBJYAku8AJYwtwSWwBJYAktgCSyBJbAElsASWAJLYAksgSU2ZonN1KDI+SfWsYYcPPIj
PeAjlEJqGJJAEkgCSSAJJIEkkASSQBJIAkkgiQk4n3UCTkNK5G5gCSyBJbAElsASWAJLYAksgSWw
BJbwulKvK8USWAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWw
hEEcBnFgCSyBJbAElsASWAJLYAksgSWwBJbAEljCe0FkS2AJLIElsASWwBJYAktgCSyBJbAElsAS
WGLdAR+pORayJbAElsASWAJLYAksgSWwBJbAElgCS2AJgzg2GMSxE68r3SAtA0tgCSyBJbAElsAS
WAJLYAksgSWwBJbAEjueLbH7Yyx27/l76wNfEEohpxCSQBJIAkkgCSSBJJAEkkASSAJJIAkkeUIk
kbshd0PuBpbAElgCS2AJLIElsASWwBJYAks8LUtszAvrVqGZLsx0gSWwBJbAElgCS2AJLIElsASW
wBJYYu3oNM7hx6WUVUlkM3J50veTRB+poYVBHFgCS2AJLIElsASWwBJYAktgCdkSBnHs0gScRQ7Q
2GRkhmwJ2RJYAktgCSyBJbAElsASWAJLYAksgSU2fzSVL7Ldx+InywgxAafcDUgCSSAJJIEkkASS
QBJIAkkgCSSBJD/IBJxrZ13kzAxZcyjHrnEPeJC7gSWwBJbAElgCS2AJLIElsASWwBJY4nneC1L0
BJxSS9JfuSp3Q+4GJIEkkASSQBJIAkkgCSSBJJAEkkCSfANcipijI3U+jZWoxctTwYPcDSyBJbAE
lsASWAJLYAksgSWwBJaQu2FIiSElWAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAE
lsASWAJLYAksgSWwBJZ4xrdovKz3rWAJLIElsASWwBJYAktgCSyBJbAElsASWOJlTMCZDzewBJbA
ElgCS2AJLIElsASWwBJYAktgCSzxg7BEfm5YiTA2SGYw5SWWwBJYAktgCSyBJbAElsASWAJLYAks
gSW2wBJFksMm1iBbAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyB
JbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsASWwBKmvDTlJZbAElgCS2AJLIElsASWwBJYAktg
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
c5IlSxRZorxnifJZQs85FkyyRJEliixRZIkiSxRZosgSRZYoH1qipNO33tzePi6j29c53sSeg0LS
21bOi42ynJHljCxnZDkjy5nDP5KQNZKskWSNJGskWSO9W410zkXWIdhr1mc1qJDf5jT8Nudg1nPK
2FMIoXlpfJZiq1GvH0myn+Cbp9OfjbzjJ1XyGzT5DZr8Bk1+gya/QXu/l2FpQ6iM8HqmquqlQiio
xDRek7bfy6Je2z9mmI6Pd+adW6drmfXXifv7naZFk3hXb29vyGKpbHI4lo0Wc9+kVXXOkv2vjtH/
6hzaMan0nu9t7ZiaHFv97PcEsjnUaZpDNf/0uvY5f2wqY8/BrwQV1KVTO1oOSHG6pSozAHZ2VdMA
d3+J1ttV5N56EYQ/dGXqfcVUzb5V1kKJYj1BayaKt15TJj4JB7ZjipHWaTsUz6xqwbSbVaf5UjxV
2HYpluUVYk9omKMFsA39EsWTcsOt1OhAV0M/iA0OFkNAExH5l/aX1ij+CbR05lJBopX/ArkVOdEg
XULBqaAtRKB0ZE9tDEoOQp7JfTi1ipG/BTXOHNeoYAi5AbTAoPIgnIAeoIQnp8IyDPUyP1CgokQO
Ww9mzZ8wKfApo38DGq4gSWHQKZbaIUb2S20k6dkRQLXPdzv1e3g1NKPmfbtS4xd27DqSi+D36iq4
qg96meWd+oHJ917key9n+qVxxXFAXzNU5S3HAQ1OcBoQo5lK1dsvnEY+9MU9bhsfYvPwvGvl88mO
ixrmvge318lQE0b+hvtaEPsDW07Q0b0srb7WVasOvay+auqNVAQguqbw9Kn4PymIdtAMzQfu90g7
aCjj/wBQSwMEFAACAAgANzabSjNaAns7BgAAhjcAAEIAHABzdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi1wcml2YXRlLXN0ZGVyci50eHRVVAkAA/n2AVmB6QFZ
dXgLAAEE9QEAAAQUAAAA7VtLc+I4EL7nlJ/gI1TtVPkFBm4EkloOO1CTzN6FLYI3RmZlJ5lc9rdv
y8ZGth42AWayGyY1B+zuVqsfX3dLMJve3GP6guloFKAULVGCJzEh2E/DmEyiOMGB8cWwXNNz3J7r
DIauOTCvvpPw72c8m95MBZ7RyK/x39F4M4lCTFKQdF2X5thXnQ0KSdcQhDaK6nCSHMfrd68kMkLy
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
Zm8tdGFibGUtc3RkZXJyLnR4dFVUCQADUvYBWdDoAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7
T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMT
L+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1Yu
xmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACADdNZtK
SxuBNacAAADSAAAANQAcAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVz
ZS1zdGRlcnIudHh0VVQJAANS9gFZ0OgBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHE
SxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKx
BuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqCh
ejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAN01m0pLG4E1pwAA
ANIAAABGABwAc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24tbm8tY3Jhc2gtb24tcHJlZmxp
Z2h0LWZhaWx1cmUtc3RkZXJyLnR4dFVUCQADUvYBWdHoAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQ
BOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRM
AJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/k
E1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACADg
NZtKizZ/HbIAAABIAwAAKAAcAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLXN0ZGVyci50
eHRVVAkAA1P2AVnR6AFZdXgLAAEE9QEAAAQUAAAA7Y/NCsIwEITvPsUe24NGEC9BBNGeRAoV6zlJ
Vwiku2Gb+PP2WtFX8ORtBr4Z+KqmqRsNJzI2ICSGlIWACTw5wR4pmQAmJ55ejcu5h2IOxAkMAYqw
lBPVcsg9DmpnklHV+ajOaPc+qSNncTi2LQuqA3c5vLAb2u5FWjPgezKGmYuxWCyXJWio7g5j8ky1
rK7suzV8HrT+4lpHlAtLX0ekDXUtir88Csscykn1N/ob/dzoCVBLAwQUAAIACADgNZtKSxuBNacA
AADSAAAAMgAcAHN0b3JhZ2Uvd2Vic3FsL2Nsb3NlLWR1cmluZy1zdHJlc3MtdGVzdC1zdGRlcnIu
dHh0VVQJAANU9gFZ0ugBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2
nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqF
unHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz
7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAOE1m0qviBzXrQAAAKQBAAA0ABwA
c3RvcmFnZS93ZWJzcWwvZGF0YWJhc2UtbG9jay1hZnRlci1yZWxvYWQtc3RkZXJyLnR4dFVUCQAD
VfYBWdPoAVl1eAsAAQT1AQAABBQAAADdj80KwjAQhO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap
+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEBKZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1
N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta
/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQUAAIACADhNZtKSxuBNacAAADSAAAAKQAcAHN0
b3JhZ2Uvd2Vic3FsL2VtcHR5LXN0YXRlbWVudC1zdGRlcnIudHh0VVQJAANV9gFZ0+gBWXV4CwAB
BPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SN
hisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoef
dmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8
CsscysUbUEsDBBQAAgAIAOE1m0pLG4E1pwAAANIAAAAqABwAc3RvcmFnZS93ZWJzcWwvZXhlY3V0
ZS1zcWwtYXJncy1zdGRlcnIudHh0VVQJAANV9gFZ0+gBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE
4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwA
kxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QT
Vi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAOE1
m0pLG4E1pwAAANIAAAAyABwAc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwtcm93c0FmZmVjdGVk
LXN0ZGVyci50eHRVVAkAA1b2AVnT6AFZdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRL
EEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG
4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6
OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAACAAgA4TWbSksbgTWnAAAA
0gAAAD8AHABzdG9yYWdlL3dlYnNxbC9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVt
ZW50LXN0ZGVyci50eHRVVAkAA1b2AVnU6AFZdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/ag
EcRLEEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8
QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92W
oKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAACAAgA4zWbSksbgTWn
AAAA0gAAAC4AHABzdG9yYWdlL3dlYnNxbC9oYXNoLWNoYW5nZS13aXRoLXhoci1zdGRlcnIudHh0
VVQJAANZ9gFZ1ugBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRb
CKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHI
I07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fw
e9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAOM1m0qviBzXrQAAAKQBAAA/ABwAc3Rv
cmFnZS93ZWJzcWwvbXVsdGlwbGUtZGF0YWJhc2VzLWdhcmJhZ2UtY29sbGVjdGlvbi1zdGRlcnIu
dHh0VVQJAANZ9gFZ1ugBWXV4CwABBPUBAAAEFAAAAN2PzQrCMBCE732KPbYHjSBeggiiPYkUKuo5
SbcQSHfDNqn69v6gL+FtBr5vYOq2bVoNZzI2ICSGlIWACTw5wQEpmQAmJ55NxuU8QLkA4gSGAEVY
qkJdOOQBR7U3yaj6elJXtAef1ImzOHy3HQuqI3c5vLAb2u5FWjPiR3mHuYuxXK5WFWio7w5j8kyN
rCf23Qa+C1r/cK0jSs8yNBFpS90FxfeP0jKHqqj/7tETUEsDBBQAAgAIAOM1m0popDc5sAAAAHYC
AABEABwAc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25zLW9uLWRpZmZlcmVudC1o
YW5kbGVzLXN0ZGVyci50eHRVVAkAA1n2AVnW6AFZdXgLAAEE9QEAAAQUAAAA7Y/NCsIwEITvPsUe
24NGEC9BBNGeRAoV6zlJVwiku2Gb+PP2WtF38OBtBr4Z+KqmqRsNJzI2ICSGlIWACTw5wR4pmQAm
J55ejcu5h2IOxAkMAYqwlBPVcsg9DmpnklHV+ajOaPc+qSNncTi2LQuqA3c5vLAb2u5FWjPgezKG
mYuxWCyXJWio7g5j8ky1rK7suzV8HrT+4lpHlAtLX0ekDXUtir88Csscykn1N/p5oydQSwMEFAAC
AAgA4zWbSksbgTWnAAAA0gAAAC8AHABzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10cmFuc2FjdGlv
bnMtc3RkZXJyLnR4dFVUCQADWvYBWdfoAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qAR
xEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxC
sQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3Zag
oXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACADjNZtKSxuBNacA
AADSAAAAKAAcAHN0b3JhZ2Uvd2Vic3FsL251bGwtY2FsbGJhY2tzLXN0ZGVyci50eHRVVAkAA1r2
AVnX6AFZdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz
9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV
16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4o
A8tYR6QD9TcUP7wKyxzKxRtQSwMEFAACAAgA5DWbSq+IHNetAAAApAEAAEgAHABzdG9yYWdlL3dl
YnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVy
ci50eHRVVAkAA1v2AVnX6AFZdXgLAAEE9QEAAAQUAAAA3Y/NCsIwEITvfYo9tgeNIF6CCKI9iRQq
6jlJtxBId8M2qfr2/qAv4W0Gvm9g6rZtWg1nMjYgJIaUhYAJPDnBASmZACYnnk3G5TxAuQDiBIYA
RViqQl045AFHtTfJqPp6Ule0B5/UibM4fLcdC6ojdzm8sBva7kVaM+JHeYe5i7FcrlYVaKjvDmPy
TI2sJ/bdBr4LWv9wrSNKzzI0EWlL3QXF94/SMoeqqP/u0RNQSwMEFAACAAgA5DWbSos2fx2yAAAA
SAMAADkAHABzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLXN0
ZGVyci50eHRVVAkAA1v2AVnY6AFZdXgLAAEE9QEAAAQUAAAA7Y/NCsIwEITvPsUe24NGEC9BBNGe
RAoV6zlJVwiku2Gb+PP2WtFX8ORtBr4Z+KqmqRsNJzI2ICSGlIWACTw5wR4pmQAmJ55ejcu5h2IO
xAkMAYqwlBPVcsg9DmpnklHV+ajOaPc+qSNncTi2LQuqA3c5vLAb2u5FWjPgezKGmYuxWCyXJWio
7g5j8ky1rK7suzV8HrT+4lpHlAtLX0ekDXUtir88Csscykn1N/ob/dzoCVBLAwQUAAIACADkNZtK
SxuBNacAAADSAAAANQAcAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtZW1wdHktdmVyc2lv
bi1zdGRlcnIudHh0VVQJAANc9gFZ2OgBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHE
SxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKx
BuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqCh
ejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAOQ1m0pLG4E1pwAA
ANIAAAA0ABwAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1leHBhbmQtcXVvdGEtc3RkZXJy
LnR4dFVUCQADXPYBWdjoAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL
9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjK
hbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7
s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACADlNZtKCXDeEwoBAAC4AgAAOQAc
AHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tc3RkZXJyLnR4
dFVUCQADXfYBWdnoAVl1eAsAAQT1AQAABBQAAADdkU9Lw0AQxe/9FHOSBNSUSkEWEcTmJBJItD2W
zWYii5uZMNmN9tubjX8OFTz15G2Xee/x5jd5WRalgmfStUPwDIJeLI4Izg4euIVGe13rAYF0hwO0
LMBiXyxBax3u98tFtmUXplm2maRZvquyHdYP1mcVBzEYf/csmD1yE9wke8P6O3S2xMeTaPOKcmn6
PrlerVJQUDM7+PIqdSRUqkGHHou5SmKYprY/4gpNEOsPn9NohbPzP7I2McsyTQ0xXeTHTHwQAiaw
ZAQ7JK8d6OD5YtQmhA6SJRB70AQowpKehMiM4mq9jijyd4N9LFjIzci2uf29i1I9ynScruiR7qjZ
otj2kESI/3GjD1BLAwQUAAIACADlNZtKr4gc160AAACkAQAARQAcAHN0b3JhZ2Uvd2Vic3FsL29w
ZW4tZGF0YWJhc2Utd2hpbGUtdHJhbnNhY3Rpb24taW4tcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUCQAD
XfYBWdnoAVl1eAsAAQT1AQAABBQAAADdj80KwjAQhO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap
+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEBKZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1
N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta
/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQUAAIACADlNZtKSxuBNacAAADSAAAAOQAcAHN0
b3JhZ2Uvd2Vic3FsL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3JpdGUtc3RkZXJyLnR4dFVU
CQADXvYBWdnoAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwik
u2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO
6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ
+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACADlNZtKaKQ3ObAAAAB2AgAARwAcAHN0b3Jh
Z2Uvd2Vic3FsL3JlYWQtYW5kLXdyaXRlLXRyYW5zYWN0aW9ucy1kb250LXJ1bi10b2dldGhlci1z
dGRlcnIudHh0VVQJAANe9gFZ2ugBWXV4CwABBPUBAAAEFAAAAO2PzQrCMBCE7z7FHtuDRhAvQQTR
nkQKFes5SVcIpLthm/jz9lrRd/DgbQa+GfiqpqkbDScyNiAkhpSFgAk8OcEeKZkAJieeXo3LuYdi
DsQJDAGKsJQT1XLIPQ5qZ5JR1fmozmj3PqkjZ3E4ti0LqgN3ObywG9ruRVoz4HsyhpmLsVgslyVo
qO4OY/JMtayu7Ls1fB60/uJaR5QLS19HpA11LYq/PArLHMpJ9Tf6eaMnUEsDBBQAAgAIAOY1m0qv
iBzXrQAAAKQBAABAABwAc3RvcmFnZS93ZWJzcWwvcmVhZC10cmFuc2FjdGlvbnMtcnVubmluZy1j
b25jdXJyZW50bHktc3RkZXJyLnR4dFVUCQADX/YBWdroAVl1eAsAAQT1AQAABBQAAADdj80KwjAQ
hO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEB
KZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz
4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQU
AAIACADmNZtKSxuBNacAAADSAAAAKAAcAHN0b3JhZ2Uvd2Vic3FsL3NxbC1kYXRhLXR5cGVzLXN0
ZGVyci50eHRVVAkAA1/2AVnb6AFZdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0
J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSG
AEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJ
M9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAACAAgA5jWbSq+IHNetAAAApAEA
AEEAHABzdG9yYWdlL3dlYnNxbC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2staXNvbGF0ZWQtd29y
bGQtc3RkZXJyLnR4dFVUCQADYPYBWdvoAVl1eAsAAQT1AQAABBQAAADdj80KwjAQhO99ij22B40g
XoIIoj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEBKZkAJieeTcbl
PEC5AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyu
VhVoqO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQUAAIACADmNZtK
SxuBNacAAADSAAAAMgAcAHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJvci1jYWxsYmFjay1z
dGRlcnIudHh0VVQJAANg9gFZ3OgBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBB
tCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIE
hgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqM
yTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAOc1m0qviBzXrQAAAKQB
AABDABwAc3RvcmFnZS93ZWJzcWwvc3RhdGVtZW50LXN1Y2Nlc3MtY2FsbGJhY2staXNvbGF0ZWQt
d29ybGQtc3RkZXJyLnR4dFVUCQADYfYBWdzoAVl1eAsAAQT1AQAABBQAAADdj80KwjAQhO99ij22
B40gXoIIoj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEBKZkAJiee
TcblPEC5AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz4kd5h7mL
sVyuVhVoqO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQUAAIACADn
NZtKSxuBNacAAADSAAAAKgAcAHN0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3MtY2FsbGJhY2stc3RkZXJy
LnR4dFVUCQADYvYBWd3oAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL
9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjK
hbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7
s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACADnNZtKSxuBNacAAADSAAAAQwAc
AHN0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3MtY2FsbGJhY2std2hlbi1wYWdlLWRlZmVycy1sb2FkaW5n
LXN0ZGVyci50eHRVVAkAA2H2AVnc6AFZdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRL
EEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG
4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6
OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAACAAgA6DWbSksbgTWnAAAA
0gAAACkAHABzdG9yYWdlL3dlYnNxbC90ZXN0LWF1dGhvcml6ZXItc3RkZXJyLnR4dFVUCQADY/YB
Wd3oAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2
VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXX
qg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigD
y1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACADoNZtKSxuBNacAAADSAAAAPgAcAHN0b3JhZ2Uvd2Vi
c3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNrLWV4Y2VwdGlvbi1jcmFzaC1zdGRlcnIudHh0VVQJAANj
9gFZ3ugBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv4
8/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJR
VdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WO
KAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAOg1m0qviBzXrQAAAKQBAAA9ABwAc3RvcmFnZS93
ZWJzcWwvdHJhbnNhY3Rpb24tY2FsbGJhY2staXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUCQAD
ZPYBWd7oAVl1eAsAAQT1AQAABBQAAADdj80KwjAQhO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap
+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEBKZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1
N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta
/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQUAAIACADpNZtKr4gc160AAACkAQAAQwAcAHN0
b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWVycm9yLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0
ZGVyci50eHRVVAkAA2X2AVne6AFZdXgLAAEE9QEAAAQUAAAA3Y/NCsIwEITvfYo9tgeNIF6CCKI9
iRQq6jlJtxBId8M2qfr2/qAv4W0Gvm9g6rZtWg1nMjYgJIaUhYAJPDnBASmZACYnnk3G5TxAuQDi
BIYARViqQl045AFHtTfJqPp6Ule0B5/UibM4fLcdC6ojdzm8sBva7kVaM+JHeYe5i7FcrlYVaKjv
DmPyTI2sJ/bdBr4LWv9wrSNKzzI0EWlL3QXF94/SMoeqqP/u0RNQSwMEFAACAAgA6TWbSksbgTWn
AAAA0gAAADQAHABzdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1lcnJvci1jYWxsYmFjay1zdGRl
cnIudHh0VVQJAANl9gFZ3+gBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeR
Qov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBF
WMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPV
sruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAOk1m0pLG4E1pwAAANIAAAAv
ABwAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tcHJvdG90eXBlLXN0ZGVyci50eHRVVAkAA2b2
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
BXLHQtJ4PBhfMskEkUIio9rodwvOCEMtNFVUaCOpUZp1MQ17yFknJr4vWRu+Yxi4YeCmytnQ+EZJ
q4HghoHbH2uXrJMpsAqP60433L5awOuBh4a5GKytsG0qIaUmJQiUJMCABLRiDoKPnAjnVEzkCO0w
FJJTmvGOEIRJxeclgUeAPQLsPQjg8DLDy/QDSndtsQcEHqZwkr6erIP+8+r6j5PjsVZ/5T1qPPuj
cITXx2L265tj3fRadTjvgopmOjxmtH1/y1+Bsre1TJ+V1Oq7Q2cdfmCvgb0GawdrB2sHawdrm7J2
1U65GgzeolNusLlnNvNGbORz2cgHm3ph0yp9g493ZFiNGTx/zJi/M3+g+ZTMRMtBYvMYMH/HQume
rptDU2H9JcrrDVXlVZowynf0VV24MG88fjWZbpXU/qyMFaST5kpO8d6SGR9Y4tT6eLBYc8NhfZM7
eT1JL1a/AUVrmsmNcODOoufB2sHawdrB2sHawdrB2sHawdrB2v5Y+7lJ9r/bm3Zb3E58dMnytSEW
zSqWWq8rrbA0dsXdqE0XQn5IjXXydtF54rbxftEp11GccGy/zbOQ7C3GGrai/tHmbWdW1q685nnW
nT29fP22orllifFIxo54YLB2sHawdrB2sHZpaVSbTYCrl3osDZ1at1TtUWgabVa8Sw21qQtb8tFh
fzo27avWU9dg8J7qqQeb12CzasRGNZeNqq/xNJF6pk1ASJEZQBY0aEsJOBMMcVpRq9xRS7zQgjAi
pFCcKcLfDeOjhz55RSjjiglt+tj5NySm2UyZPqRmpZR04Q4ZDS/ttX0Rb+N1w7e/mcSUvgm+L6i/
CM/fAb/qZez3G+Q/+Vq7F0y1Om6cr/Y7w42DtcM7N57fc1ZuZ2jgMG6P1LjdG1dToti7v9MzE4eF
E4xKRKK3mpQlWLhZN9a/boZBHL5msHYL1i7oiN7jrfTfHTvVGJ4ISChl6LWzEIXygNQQMNIbMCT/
YmQECYtHAYnh5DBOVEpjtJKCn8cWzJ6ZNGK54QQGa4chXO1xaXaxTYX2jvb1No89Sh0Obe1pOyN6
7a98sXnhYnmWqEQVzzlxuOKstxOaeoYpzBLhHAHIozSR7UZSflIFcvPqZYta8p/jn9cXtxeXz766
E7uvXtrb34/p/TW6H777+0/2+uZte9jt1fHv5h95EZ6zJ88v3Lv/7qWn9gORR1UnrS5qAqp0yKgg
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
AAAAAAEAAACkgfkzAABfd3B0X2NlcnRzL3NlcmlhbFVUBQADq/MBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAgAAAMMsm0p2xGKpBwAAAAcAAAAVABgAAAAAAAEAAACkgUo0AABfd3B0X2NlcnRzL3Nl
cmlhbC5vbGRVVAUAAy3mAVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADbNptKDw/sAO1eAwB+
YyEADgAYAAAAAAABAAAApIGgNAAAYWNjZXNzX2xvZy50eHRVVAUAAy74AVl1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAADQLJtKAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UHVkwMAYWNjZXNzaWJp
bGl0eS9VVAUAA0jmAVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACDNJtKcEsNhsQBAABYFAAA
NwAYAAAAAAABAAAApIEdlAMAYWNjZXNzaWJpbGl0eS9maWxlLXVwbG9hZC1idXR0b24tc3RyaW5n
dmFsdWUtc3RkZXJyLnR4dFVUBQADxvMBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANosm0oA
AAAAAAAAAAAAAAAHABgAAAAAAAAAEADtQVKWAwBjcnlwdG8vVVQFAANc5gFZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAA2yybSgAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1Bk5YDAGNyeXB0by9z
dWJ0bGUvVVQFAANe5gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAjzSbSiXg0wgsAAAALAAA
AD4AGAAAAAAAAQAAAKSB25YDAGNyeXB0by9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1tYWxmb3Jt
ZWQtcGFyYW1ldGVycy1zdGRlcnIudHh0VVQFAAPd8wFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAjzSbSjA7uLFLAAAAaAAAADwAGAAAAAAAAQAAAKSBf5cDAGNyeXB0by9zdWJ0bGUvcnNhLWlt
cG9ydC1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUBQAD3vMBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAANMsm0oAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQUCYAwBjcnlw
dG8vd29ya2Vycy9VVAUAA03mAVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADTLJtKAAAAAAAA
AAAAAAAAFgAYAAAAAAAAABAA7UGJmAMAY3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUBQADTeYBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAIU0m0ol4NMILAAAACwAAAAxABgAAAAAAAEAAACkgdmY
AwBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1zdGRlcnIudHh0VVQFAAPJ
8wFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0iybSgAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQ
AO1BcJkDAGRpc3BsYXlsaXN0cy9VVAUAA0zmAVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACF
NJtKo1f96FAAAACOAAAAMgAYAAAAAAABAAAApIG3mQMAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNs
dWRlcy10cmFuc2Zvcm1zLXN0ZGVyci50eHRVVAUAA8rzAVl1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACFNJtK8paV1UcAAABJAAAAKQAYAAAAAAABAAAApIFzmgMAZGlzcGxheWxpc3RzL2xheWVy
LWRpc3BheS1saXN0LXN0ZGVyci50eHRVVAUAA8rzAVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAAZLZtKAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UEdmwMAZWRpdGluZy9VVAUAA9LmAVl1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAAZLZtKAAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA7UFfmwMA
ZWRpdGluZy9kZWxldGluZy9VVAUAA9LmAVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADKNJtK
Njd3urwBAAAGEwAAKAAYAAAAAAABAAAApIGqmwMAZWRpdGluZy9kZWxldGluZy9kZWxldGUtZW1v
amktc3RkZXJyLnR4dFVUBQADS/QBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPUsm0oAAAAA
AAAAAAAAAAATABgAAAAAAAAAEADtQcidAwBlZGl0aW5nL3Bhc3RlYm9hcmQvVVQFAAON5gFZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlzSbSsW9UIzpAAAAggEAADAAGAAAAAAAAQAAAKSBFZ4D
AGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXJlc29sdmVzLXVybHMtc3RkZXJyLnR4dFVUBQAD7fMB
WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJs0m0oC/50pyAEAAAwPAAA8ABgAAAAAAAEAAACk
gWifAwBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1maWxlcy10by1lZGl0YWJsZS1lbGVtZW50LXN0
ZGVyci50eHRVVAUAA/XzAVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACdNJtK/JTKj+UBAADM
FgAANQAYAAAAAAABAAAApIGmoQMAZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMt
YWNjZXNzLXN0ZGVyci50eHRVVAUAA/rzAVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACoNJtK
zFkqseMAAAB3AQAALAAYAAAAAAABAAAApIH6owMAZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLW5v
c2NyaXB0LXN0ZGVyci50eHRVVAUAAwv0AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACnNJtK
8TqfnOIAAAB7AQAAMgAYAAAAAAABAAAApIFDpQMAZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLW5v
c2NyaXB0LXhodG1sLXN0ZGVyci50eHRVVAUAAwr0AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADbNptKra8771APAABqgwAADQAYAAAAAAABAAAApIGRpgMAZXJyb3JfbG9nLnR4dFVUBQADLvgB
WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGAtm0oAAAAAAAAAAAAAAAAFABgAAAAAAAAAEADt
QSi2AwBmYXN0L1VUBQADU+cBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOUsm0oAAAAAAAAA
AAAAAAAQABgAAAAAAAAAEADtQWe2AwBmYXN0L2F0dGFjaG1lbnQvVVQFAANt5gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAljSbSitkeoVyAgAATCIAADUAGAAAAAAAAQAAAKSBsbYDAGZhc3Qv
YXR0YWNobWVudC9hdHRhY2htZW50LWxhYmVsLWhpZ2hsaWdodC1zdGRlcnIudHh0VVQFAAPr8wFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAABC2bSgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B
krkDAGZhc3QvY2FudmFzL1VUBQADp+YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALU0m0pg
TdGBfQAAAAIBAAAmABgAAAAAAAEAAACkgdi5AwBmYXN0L2NhbnZhcy9jYW52YXMtbGluZURhc2gt
c3RkZXJyLnR4dFVUBQADJfQBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGAtm0oAAAAAAAAA
AAAAAAAJABgAAAAAAAAAEADtQbW6AwBmYXN0L2Nzcy9VVAUAA1PnAVl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAARNZtKQtAYd7EAAADOAQAANgAYAAAAAAABAAAApIH4ugMAZmFzdC9jc3MvcGVy
c3BlY3RpdmUtb3JpZ2luLWluaXRpYWwtaW5oZXJpdC1zdGRlcnIudHh0VVQFAAPS9AFZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAACi2bSgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BGbwDAGZh
c3QvZG9tL1VUBQADtOYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKg0m0r+UVOhiQEAAOAJ
AAAlABgAAAAAAAEAAACkgVy8AwBmYXN0L2RvbS9GaWxlTGlzdC1pdGVyYXRvci1zdGRlcnIudHh0
VVQFAAML9AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApzSbSgy4ThpzAQAA8AQAADYAGAAA
AAAAAQAAAKSBRL4DAGZhc3QvZG9tL0ZpbGVMaXN0LWl0ZXJhdG9yLXVzaW5nLW9wZW4tcGFuZWwt
c3RkZXJyLnR4dFVUBQADCvQBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPssm0oAAAAAAAAA
AAAAAAAaABgAAAAAAAAAEADtQSfAAwBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL1VUBQADmuYB
WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALA0m0pLG4E1pwAAANIAAAA/ABgAAAAAAAEAAACk
gXvAAwBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2RhdGFiYXNlLWNhbGxiYWNrLWRlbGl2ZXJ5
LXN0ZGVyci50eHRVVAUAAxv0AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAKLZtKAAAAAAAA
AAAAAAAAEAAYAAAAAAAAABAA7UGbwQMAZmFzdC9kb20vV2luZG93L1VUBQADtOYBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIALw0m0pCu82CggEAAHoFAAA6ABgAAAAAAAEAAACkgeXBAwBmYXN0
L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWZyYW1lcy1zdGRlcnIudHh0VVQF
AAMz9AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAACi2bSgAAAAAAAAAAAAAAAAwAGAAAAAAA
AAAQAO1B28MDAGZhc3QvZXZlbnRzL1VUBQADtOYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AL00m0pJHGnGjAEAAAQKAAA9ABgAAAAAAAEAAACkgSHEAwBmYXN0L2V2ZW50cy9kYXRhLXRyYW5z
ZmVyLWZpbGVzLWF0dHJpYnV0ZS1pZGVudGl0eS1zdGRlcnIudHh0VVQFAAM19AFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAAy2bSgAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BJMYDAGZhc3Qv
ZmlsZXMvVVQFAAOm5gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtTSbSlg/iPt5AQAAWAUA
ACUAGAAAAAAAAQAAAKSBacYDAGZhc3QvZmlsZXMvcmVhZC1ibG9iLWFzeW5jLXN0ZGVyci50eHRV
VAUAAyb0AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC1NJtKCNiGVXoBAABYBQAAJQAYAAAA
AAABAAAApIFByAMAZmFzdC9maWxlcy9yZWFkLWZpbGUtYXN5bmMtc3RkZXJyLnR4dFVUBQADJvQB
WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAMtm0oAAAAAAAAAAAAAAAATABgAAAAAAAAAEADt
QRrKAwBmYXN0L2ZpbGVzL3dvcmtlcnMvVVQFAAOl5gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAtDSbSuQZO8h5AQAAWAUAADQAGAAAAAAAAQAAAKSBZ8oDAGZhc3QvZmlsZXMvd29ya2Vycy93
b3JrZXItcmVhZC1ibG9iLWFzeW5jLXN0ZGVyci50eHRVVAUAAyP0AVl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAC0NJtKS4RzIXkBAABYBQAAMwAYAAAAAAABAAAApIFOzAMAZmFzdC9maWxlcy93
b3JrZXJzL3dvcmtlci1yZWFkLWJsb2Itc3luYy1zdGRlcnIudHh0VVQFAAMj9AFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAtDSbSr2yMrB4AQAAWAUAADQAGAAAAAAAAQAAAKSBNM4DAGZhc3Qv
ZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1maWxlLWFzeW5jLXN0ZGVyci50eHRVVAUAAyT0AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC1NJtKdZVZ1XYBAABYBQAAMwAYAAAAAAABAAAApIEa
0AMAZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWZpbGUtc3luYy1zdGRlcnIudHh0VVQF
AAMl9AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAFi2bSgAAAAAAAAAAAAAAAAsAGAAAAAAA
AAAQAO1B/dEDAGZhc3QvZm9ybXMvVVQFAAPM5gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
uTSbSi5f2O97AQAA+DkAADMAGAAAAAAAAQAAAKSBQtIDAGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1wYXR0ZXJuTWlzbWF0Y2gtc3RkZXJyLnR4dFVUBQADLfQBWXV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAAYtm0oAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQSrUAwBmYXN0L2Zvcm1zL2ZpbGUv
VVQFAAOs5gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtjSbSq3KYyIzAwAAjG8AADIAGAAA
AAAAAQAAAKSBdNQDAGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LWNoYW5nZS1ldmVudC1zdGRl
cnIudHh0VVQFAAMo9AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtzSbSpyV2rlyAQAAEgUA
ACsAGAAAAAAAAQAAAKSBE9gDAGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LXJlc2V0LXN0ZGVy
ci50eHRVVAUAAyr0AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC3NJtKflou3HEBAAASBQAA
PAAYAAAAAAABAAAApIHq2QMAZmFzdC9mb3Jtcy9maWxlL2ZpbGUtaW5wdXQtcmVzZXQtdXNpbmct
b3Blbi1wYW5lbC1zdGRlcnIudHh0VVQFAAMp9AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
uDSbSsaGnutxAQAAEgUAAC8AGAAAAAAAAQAAAKSB0dsDAGZhc3QvZm9ybXMvZmlsZS9maWxlLXJl
c2V0LWluLWNoYW5nZS1zdGRlcnIudHh0VVQFAAMr9AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAtzSbSqY38H9yAQAAEgUAAEAAGAAAAAAAAQAAAKSBq90DAGZhc3QvZm9ybXMvZmlsZS9maWxl
LXJlc2V0LWluLWNoYW5nZS11c2luZy1vcGVuLXBhbmVsLXN0ZGVyci50eHRVVAUAAyr0AVl1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAC5NJtKHDPHdIQBAACQBQAALwAYAAAAAAABAAAApIGX3wMA
ZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtcmUtcmVuZGVyLXN0ZGVyci50eHRVVAUAAy70AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC5NJtKZ8xpCXIBAAASBQAAKwAYAAAAAAABAAAApIGE
4QMAZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtdmFsdWUtc3RkZXJyLnR4dFVUBQADLvQBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALk0m0oDVoF+dgEAABIFAAA8ABgAAAAAAAEAAACkgVvj
AwBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS12YWx1ZS11c2luZy1vcGVuLXBhbmVsLXN0ZGVy
ci50eHRVVAUAAy70AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC6NJtKTfUm8aABAAAkCgAA
MQAYAAAAAAABAAAApIFH5QMAZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMt
c3RkZXJyLnR4dFVUBQADL/QBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALo0m0o/aMcLmwEA
ACQKAABCABgAAAAAAAEAAACkgVLnAwBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS13cml0ZS1m
aWxlcy11c2luZy1vcGVuLXBhbmVsLXN0ZGVyci50eHRVVAUAAy/0AVl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAC6NJtKVPdtpqkBAAD8CgAAPAAYAAAAAAABAAAApIFp6QMAZmFzdC9mb3Jtcy9m
aWxlL3NlbGVjdGVkLWZpbGVzLWZyb20taGlzdG9yeS1zdGF0ZS1zdGRlcnIudHh0VVQFAAMw9AFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAFi2bSgtIydCaAAAAzwAAADMAGAAAAAAAAQAAAKSB
iOsDAGZhc3QvZm9ybXMvZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtY3Jhc2gtc3RkZXJyLnR4dFVU
BQADzOYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEEtm0oAAAAAAAAAAAAAAAAMABgAAAAA
AAAAEADtQY/sAwBmYXN0L2ZyYW1lcy9VVAUAAxnnAVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADyNJtKSxuBNacAAADSAAAALwAYAAAAAAABAAAApIHV7AMAZmFzdC9mcmFtZXMvc2FuZGJveGVk
LWlmcmFtZS1zdG9yYWdlLXN0ZGVyci50eHRVVAUAA5j0AVl1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAANLZtKAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UHl7QMAZmFzdC9oaXN0b3J5L1VUBQAD
ueYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMA0m0pLG4E1pwAAANIAAABAABgAAAAAAAEA
AACkgSzuAwBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1uby10cmFuc2FjdGlv
bi1kYi1zdGRlcnIudHh0VVQFAAM39AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAFi2bSgAA
AAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BTe8DAGZhc3QvaW1hZ2VzL1VUBQADy+YBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAMo0m0ohj704MgAAADMAAAAsABgAAAAAAAEAAACkgZPvAwBmYXN0
L2ltYWdlcy9wZGYtYXMtaW1hZ2UtY3JvcC1ib3gtc3RkZXJyLnR4dFVUBQADS/QBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAACwtm0oAAAAAAAAAAAAAAAAKABgAAAAAAAAAEADtQSvwAwBmYXN0
L3RleHQvVVQFAAPz5gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3TSbSv6ezUJ5AQAAiAkA
ACMAGAAAAAAAAQAAAKSBb/ADAGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItMi1zdGRlcnIudHh0VVQF
AANx9AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAOC2bSgAAAAAAAAAAAAAAAA0AGAAAAAAA
AAAQAO1BRfIDAGZhc3Qvd29ya2Vycy9VVAUAAwvnAVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADrNJtKPnicZIwBAADQBQAAMwAYAAAAAAABAAAApIGM8gMAZmFzdC93b3JrZXJzL3dvcmtlci1j
b3B5LXNoYXJlZC1ibG9iLXVybC1zdGRlcnIudHh0VVQFAAOJ9AFZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAALi2bSgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BhfQDAGZhc3QveHNsL1VUBQAD
+OYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAN00m0pO+yD4iAAAAOcAAAAlABgAAAAAAAEA
AACkgcj0AwBmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQFAANy9AFZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3TSbSv2iLmSPAAAA7gAAACcAGAAAAAAAAQAAAKSBr/UD
AGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4dFVUBQADcvQBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAOA0m0rPj2YOUAAAAKAAAAAkABgAAAAAAAEAAACkgZ/2AwBmYXN0
L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAUAA3P0AVl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADhNJtKgUp3rUsAAACsAAAANAAYAAAAAAABAAAApIFN9wMAZmFzdC94c2wveHNs
dC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQADdvQBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIANw2m0qm8xvxuAEAAIUDAAARABgAAAAAAAEAAACkgQb4AwBmdWxs
X3Jlc3VsdHMuanNvblVUBQADMPgBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADAtm0oAAAAA
AAAAAAAAAAAFABgAAAAAAAAAEADtQQn6AwBodHRwL1VUBQAD/OYBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAOI0m0oAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQUj6AwBodHRwL3Rlc3RzL1VU
BQADePQBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOI0m0oAAAAAAAAAAAAAAAAUABgAAAAA
AAAAEADtQY36AwBodHRwL3Rlc3RzL2FwcGNhY2hlL1VUBQADePQBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAOI0m0rCTcgddAAAAJsAAABDABgAAAAAAAEAAACkgdv6AwBodHRwL3Rlc3RzL2Fw
cGNhY2hlLzQwNC1yZXNvdXJjZS13aXRoLXNsb3ctbWFpbi1yZXNvdXJjZS1hY3R1YWwudHh0VVQF
AAN49AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4jSbSibl06tBAQAASgIAAEEAGAAAAAAA
AQAAAKSBzPsDAGh0dHAvdGVzdHMvYXBwY2FjaGUvNDA0LXJlc291cmNlLXdpdGgtc2xvdy1tYWlu
LXJlc291cmNlLWRpZmYudHh0VVQFAAN49AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4jSb
SijTFXbYAAAAJwEAAEUAGAAAAAAAAQAAAKSBiP0DAGh0dHAvdGVzdHMvYXBwY2FjaGUvNDA0LXJl
c291cmNlLXdpdGgtc2xvdy1tYWluLXJlc291cmNlLWV4cGVjdGVkLnR4dFVUBQADePQBWXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAOI0m0o+k0fQCQgAAL0YAABJABgAAAAAAAEAAACkgd/+AwBo
dHRwL3Rlc3RzL2FwcGNhY2hlLzQwNC1yZXNvdXJjZS13aXRoLXNsb3ctbWFpbi1yZXNvdXJjZS1w
cmV0dHktZGlmZi5odG1sVVQFAAN49AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAMi2bSgAA
AAAAAAAAAAAAAC8AGAAAAAAAAAAQAO1BawcEAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9u
YXR0YWNobWVudHNhbmRib3gvVVQFAAP/5gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5DSb
StyYb+82AAAAOgAAAFEAGAAAAAAAAQAAAKSB1AcEAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0
aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtc3RkZXJyLnR4dFVU
BQADe/QBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOM0m0rcmG/vNgAAADoAAABqABgAAAAA
AAEAAACkgZUIBABodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94
L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0YS1yZWZlcmVyLWFsd2F5cy1zdGRlcnIu
dHh0VVQFAAN59AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4zSbStyYb+82AAAAOgAAAGsA
GAAAAAAAAQAAAKSBbwkEAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNh
bmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXItZGVmYXVsdC1z
dGRlcnIudHh0VVQFAAN59AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4zSbStyYb+82AAAA
OgAAAGkAGAAAAAAAAQAAAKSBSgoEAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNo
bWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXItbmV2
ZXItc3RkZXJyLnR4dFVUBQADefQBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOM0m0rcmG/v
NgAAADoAAABvABgAAAAAAAEAAACkgSMLBABodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0
dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0YS1yZWZlcmVy
LW5vLXJlZmVycmVyLXN0ZGVyci50eHRVVAUAA3r0AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADjNJtK3Jhv7zYAAAA6AAAAfgAYAAAAAAABAAAApIECDAQAaHR0cC90ZXN0cy9jb250ZW50ZGlz
cG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1l
dGEtcmVmZXJlci1uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS1zdGRlcnIudHh0VVQFAAN69AFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4zSbStyYb+82AAAAOgAAAGoAGAAAAAAAAQAAAKSB
8AwEAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJl
ci1oZWFkZXItc3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXItb3JpZ2luLXN0ZGVyci50eHRVVAUA
A3r0AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjNJtK3Jhv7zYAAAA6AAAAbgAYAAAAAAAB
AAAApIHKDQQAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9y
ZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJlci11bnNhZmUtdXJsLXN0ZGVy
ci50eHRVVAUAA3r0AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA3LZtKAAAAAAAAAAAAAAAA
EQAYAAAAAAAAABAA7UGoDgQAaHR0cC90ZXN0cy9sb2NhbC9VVAUAAwnnAVl1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAAA3LZtKAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA7UHzDgQAaHR0cC90ZXN0
cy9sb2NhbC9ibG9iL1VUBQADCucBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOk0m0qheeR3
egEAAHQFAAAxABgAAAAAAAEAAACkgUMPBABodHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2VuZC1oeWJy
aWQtYmxvYi1zdGRlcnIudHh0VVQFAAOG9AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6TSb
Smsm5Gt/AQAAdAUAAEIAGAAAAAAAAQAAAKSBKBEEAGh0dHAvdGVzdHMvbG9jYWwvYmxvYi9zZW5k
LWh5YnJpZC1ibG9iLXVzaW5nLW9wZW4tcGFuZWwtc3RkZXJyLnR4dFVUBQADhfQBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAGUtm0oAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQSMTBABodHRw
L3Rlc3RzL21pc2MvVVQFAANe5wFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9zSbSuWQVcXm
AAAAYgEAAC0AGAAAAAAAAQAAAKSBbRMEAGh0dHAvdGVzdHMvbWlzYy9jb3B5LXJlc29sdmVzLXVy
bHMtc3RkZXJyLnR4dFVUBQADofQBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACA1m0oVNTWS
egAAALwAAAAqABgAAAAAAAEAAACkgboUBABodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0
LXN0ZGVyci50eHRVVAUAA+z0AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB1LZtKAAAAAAAA
AAAAAAAAFAAYAAAAAAAAABAA7UGYFQQAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAUAA33nAVl1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAA9LZtKAAAAAAAAAAAAAAAAHgAYAAAAAAAAABAA7UHmFQQA
aHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvVVQFAAMV5wFZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA7zSbSiwWMkeMAgAAtDMAAD4AGAAAAAAAAQAAAKSBPhYEAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFjY2Vzcy1zdGRlcnIudHh0VVQFAAOS9AFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAYC2bSgAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1B
QhkEAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUBQADVOcBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA01m0pjqqxsggAAAKgAAABAABgAAAAAAAEAAACkgaYZ
BABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1z
dGRlcnIudHh0VVQFAAPK9AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADjWbSmOqrGyCAAAA
qAAAAFIAGAAAAAAAAQAAAKSBohoEAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUAA8v0AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAADNZtKr4gc160AAACkAQAAOgAYAAAAAAABAAAApIGw
GwQAaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLWFsbG93ZWQtc3RkZXJy
LnR4dFVUBQADtvQBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAM1m0pLG4E1pwAAANIAAAAy
ABgAAAAAAAEAAACkgdEcBABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwt
c3RkZXJyLnR4dFVUBQADtvQBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABk1m0pLG4E1pwAA
ANIAAAA/ABgAAAAAAAEAAACkgeQdBABodHRwL3Rlc3RzL3NlY3VyaXR5L3N0b3JhZ2UtYmxvY2tp
bmctbG9vc2VuZWQtd2Vic3FsLXN0ZGVyci50eHRVVAUAA+L0AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAaNZtKSxuBNacAAADSAAAAQwAYAAAAAAABAAAApIEEHwQAaHR0cC90ZXN0cy9zZWN1
cml0eS9zdG9yYWdlLWJsb2NraW5nLXN0cmVuZ3RoZW5lZC13ZWJzcWwtc3RkZXJyLnR4dFVUBQAD
4/QBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACY1m0pgS2YQkQAAAPsBAABFABgAAAAAAAEA
AACkgSggBABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3Vy
aXR5T3JpZ2luLXN0ZGVyci50eHRVVAUAA/f0AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABF
LZtKAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UE4IQQAaHR0cC90ZXN0cy9zdG9yYWdlL1VUBQAD
IucBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPY0m0pLG4E1pwAAANIAAABFABgAAAAAAAEA
AACkgYUhBABodHRwL3Rlc3RzL3N0b3JhZ2UvY2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29ycmVj
dC1jb250ZXh0LXN0ZGVyci50eHRVVAUAA6D0AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB5
LZtKAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UGrIgQAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9VVAUAA4XnAVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAArNZtKfn/tF7EAAAABAQAAQQAY
AAAAAAABAAAApIH/IgQAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVu
dC10eXBlLWFzeW5jLXN0ZGVyci50eHRVVAUAAwH1AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAArNZtKfn/tF7EAAAABAQAAQAAYAAAAAAABAAAApIErJAQAaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXN5bmMtc3RkZXJyLnR4dFVUBQADAfUBWXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIANc2m0pbBFgOogUAAE0QAAAKABgAAAAAAAEAAACkgVYlBABo
dHRwZC5jb25mVVQFAAMl+AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAeC2bSgAAAAAAAAAA
AAAAAAkAGAAAAAAAAAAQAO1BPCsEAGltcG9ydGVkL1VUBQADg+cBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAHgtm0oAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQX8rBABpbXBvcnRlZC93M2Mv
VVQFAAOD5wFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAvS2bSgAAAAAAAAAAAAAAACAAGAAA
AAAAAAAQAO1BxisEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQFAAMF6AFZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAuy2bSgAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1BICwE
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL1VUBQADAegBWXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIACw1m0pGaBvbmQAAAMUAAABIABgAAAAAAAEAAACkgYQsBABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0
aW5nLXN0ZGVyci50eHRVVAUAAwP1AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA3NZtKHdGP
JqMAAABPAgAARgAYAAAAAAABAAAApIGfLQQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMTEtc3RkZXJyLnR4dFVUBQADGvUBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIADo1m0pGaBvbmQAAAMUAAABDABgAAAAAAAEAAACkgcIuBABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudC1zdGRl
cnIudHh0VVQFAAMg9QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOjWbSkZoG9uZAAAAxQAA
AEQAGAAAAAAAAQAAAKSB2C8EAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmluZGV4X2NvdW50Mi1zdGRlcnIudHh0VVQFAAMf9QFZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAOjWbSkZoG9uZAAAAxQAAAEQAGAAAAAAAAQAAAKSB7zAEAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50My1zdGRlcnIudHh0VVQF
AAMf9QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASDWbSkZoG9uZAAAAxQAAAEkAGAAAAAAA
AQAAAKSBBjIEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX2NvdW50LXN0ZGVyci50eHRVVAUAAzf1AVl1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABHNZtKRmgb25kAAADFAAAASgAYAAAAAAABAAAApIEiMwQAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQyLXN0ZGVyci50eHRV
VAUAAzb1AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABHNZtKMD2FN58AAACKAQAASgAYAAAA
AAABAAAApIE/NAQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfY291bnQzLXN0ZGVyci50eHRVVAUAAzb1AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABKNZtKRmgb25kAAADFAAAASwAYAAAAAAABAAAApIFiNQQAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS1zdGRlcnIu
dHh0VVQFAAM89QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUTWbSkZoG9uZAAAAxQAAAE4A
GAAAAAAAAQAAAKSBgDYEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtc3RkZXJyLnR4dFVUBQADSvUBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAHA1m0owPYU3nwAAAIoBAABYABgAAAAAAAEAAACkgaE3BABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1jcmVhdGVfaW5f
dmVyc2lvbmNoYW5nZS1zdGRlcnIudHh0VVQFAAOD9QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAcjWbSkZoG9uZAAAAxQAAAEYAGAAAAAAAAQAAAKSB0jgEAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL3dyaXRlci1zdGFydmF0aW9uLXN0ZGVyci50eHRVVAUAA4j1
AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB4LZtKAAAAAAAAAAAAAAAALQAYAAAAAAAAABAA
7UHrOQQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvVVQFAAOD
5wFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAnC2bSgAAAAAAAAAAAAAAADkAGAAAAAAAAAAQ
AO1BUjoEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVy
YXRlS2V5L1VUBQADx+cBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACw1m0qPNBpwRAAAAKAJ
AABcABgAAAAAAAEAAACkgcU6BABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNy
eXB0b0FQSS9nZW5lcmF0ZUtleS9mYWlsdXJlc19SU0EtT0FFUC53b3JrZXItc3RkZXJyLnR4dFVU
BQADA/UBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADA1m0pUAsmyNgAAAMACAABlABgAAAAA
AAEAAACkgZ87BABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9n
ZW5lcmF0ZUtleS9mYWlsdXJlc19SU0FTU0EtUEtDUzEtdjFfNS53b3JrZXItc3RkZXJyLnR4dFVU
BQADDPUBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE81m0qPNBpwRAAAAKAJAABaABgAAAAA
AAEAAACkgXQ8BABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9n
ZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQS1PQUVQLXN0ZGVyci50eHRVVAUAA0X1AVl1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABRNZtKVALJsjYAAADAAgAAYwAYAAAAAAABAAAApIFMPQQA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkv
dGVzdF9mYWlsdXJlc19SU0FTU0EtUEtDUzEtdjFfNS1zdGRlcnIudHh0VVQFAANK9QFZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAhi2bSgAAAAAAAAAAAAAAACYAGAAAAAAAAAAQAO1BHz4EAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvVVQFAAOb5wFZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAgC2bSgAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1Bfz4EAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VUBQADkOcBWXV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAIctm0oAAAAAAAAAAAAAAAAvABgAAAAAAAAAEADtQeM+BABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL1VUBQADnucBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIADA1m0olsnd+BAIAAL0MAABJABgAAAAAAAEAAACkgUw/BABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLmFueS1z
dGRlcnIudHh0VVQFAAML9QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMjWbSocd4GXZAgAA
mBIAAFMAGAAAAAAAAQAAAKSB00EEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtc3RhdHVzLmFueS1zdGRlcnIudHh0VVQFAAMQ9QFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMzWbSpAU82SZAQAA3gUAAEwAGAAAAAAAAQAAAKSB
OUUEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1w
cmVmbGlnaHQuYW55LXN0ZGVyci50eHRVVAUAAxL1AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAA2NZtKuBsuDsgCAAC/EwAAVQAYAAAAAAABAAAApIFYRwQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXJlZGlyZWN0LXByZWZsaWdodC5hbnktc3Rk
ZXJyLnR4dFVUBQADGPUBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIctm0oAAAAAAAAAAAAA
AAAuABgAAAAAAAAAEADtQa9KBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L25vc25pZmYvVVQFAAOe5wFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANTWbSs0PIN+bAAAA
xgAAAEgAGAAAAAAAAQAAAKSBF0sEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbm9zbmlmZi9wYXJzaW5nLW5vc25pZmYtc3RkZXJyLnR4dFVUBQADFfUBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIADU1m0o8sAPHrAAAAOoCAAA/ABgAAAAAAAEAAACkgTRMBABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvc2NyaXB0LXN0ZGVyci50eHRV
VAUAAxX1AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA1NZtKUjgf764AAAD2AgAAQwAYAAAA
AAABAAAApIFZTQQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZm
L3N0eWxlc2hlZXQtc3RkZXJyLnR4dFVUBQADFvUBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AL0tm0oAAAAAAAAAAAAAAAAtABgAAAAAAAAAEADtQYROBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhLXNvdXJjZS9VVAUAAwXoAVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABxNZtKs2ZRdJsAAADQAAAAXAAYAAAAAAABAAAApIHrTgQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtZW5kb2ZzdHJlYW0taW52YWxpZGVy
cm9yLXN0ZGVyci50eHRVVAUAA4X1AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACCLptKAAAA
AAAAAAAAAAAAAwAYAAAAAAAAABAA7UEcUAQAanMvVVQFAANz6QFZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAACC6bSgAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1BWVAEAGpzL2RvbS9VVAUAA4/o
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACHNZtKSxuBNacAAADSAAAANQAYAAAAAAABAAAA
pIGaUAQAanMvZG9tL2NhbGxiYWNrLWZ1bmN0aW9uLXdpdGgtaGFuZGxlLWV2ZW50LXN0ZGVyci50
eHRVVAUAA671AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC3NZtKSxuBNacAAADSAAAAMAAY
AAAAAAABAAAApIGwUQQAanMvZG9tL2V4Y2VwdGlvbnMtdGhyb3duLWluLWNhbGxiYWNrcy1zdGRl
cnIudHh0VVQFAAMJ9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAFDabSjaqrQhUAQAA0g8A
ABwAGAAAAAAAAQAAAKSBwVIEAGpzL3JlZ2V4cC11bmljb2RlLXN0ZGVyci50eHRVVAUAA7j2AVl1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAASLptKAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UFr
VAQAbWVkaWEvVVQFAAOj6AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAArDWbSgAAAAAAAAAA
AAAAABwAGAAAAAAAAAAQAO1Bq1QEAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9VVAUAA/T1
AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACsNZtKAAAAAAAAAAAAAAAANgAYAAAAAAAAABAA
7UEBVQQAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29udHJv
bHMvVVQFAAP09QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgArDWbSi0F502kAAAA0AAAAGkA
GAAAAAAAAQAAAKSBcVUEAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1l
ZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtYWN0
dWFsLnR4dFVUBQAD9PUBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKw1m0p1g9ew5gEAAO8K
AABnABgAAAAAAAEAAACkgbhWBABtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW9zLWlubGlu
ZS1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5bGVz
LWRpZmYudHh0VVQFAAP09QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgArDWbSjGzk/E/AQAA
DgkAAGsAGAAAAAAAAQAAAKSBP1kEAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pb3MtaW5s
aW5lLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHls
ZXMtZXhwZWN0ZWQudHh0VVQFAAP09QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgArDWbSiaT
RK2kCQAAbT4AAG8AGAAAAAAAAQAAAKSBI1sEAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9p
b3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtYnV0dG9u
cy1zdHlsZXMtcHJldHR5LWRpZmYuaHRtbFVUBQAD9PUBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAPUtm0oAAAAAAAAAAAAAAAA8ABgAAAAAAAAAEADtQXBlBABtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9VVAUAA27oAVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACbNZtKifyTnlMBAADEBQAAdQAYAAAAAAABAAAApIHmZQQAbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMv
bWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy1hY3R1YWwudHh0
VVQFAAPW9QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmzWbSklzEOoPAQAAEwMAAHMAGAAA
AAAAAQAAAKSB6GcEAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVu
LW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0dG9ucy1z
dHlsZXMtZGlmZi50eHRVVAUAA9b1AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACbNZtKsUm9
mCoBAACmBQAAdwAYAAAAAAABAAAApIGkaQQAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy1idXR0b25zLXN0eWxlcy1leHBlY3RlZC50eHRVVAUAA9b1AVl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACbNZtKvJqgElYIAADuHgAAewAYAAAAAAABAAAApIF/awQAbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy1wcmV0dHktZGlmZi5odG1sVVQF
AAPW9QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAEi6bSgAAAAAAAAAAAAAAAAwAGAAAAAAA
AAAQAO1BinQEAG1lZGlhL3RyYWNrL1VUBQADo+gBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AMg1m0qVp9rbSQEAAFcCAAAqABgAAAAAAAEAAACkgdB0BABtZWRpYS90cmFjay90cmFjay1pbi1i
YW5kLXN0eWxlLWFjdHVhbC50eHRVVAUAAyf2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADI
NZtKlDgo3nEBAAC8AgAAKAAYAAAAAAABAAAApIF9dgQAbWVkaWEvdHJhY2svdHJhY2staW4tYmFu
ZC1zdHlsZS1kaWZmLnR4dFVUBQADJ/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMg1m0ok
WIyjNQEAADYCAAAsABgAAAAAAAEAAACkgVB4BABtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0
eWxlLWV4cGVjdGVkLnR4dFVUBQADJ/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMg1m0ob
SPOqlwgAANEgAAAwABgAAAAAAAEAAACkget5BABtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0
eWxlLXByZXR0eS1kaWZmLmh0bWxVVAUAAyf2AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD5
LZtKAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UHsggQAcGx1Z2lucy9VVAUAA3XoAVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACuNZtKQ/jevq8AAADxAAAALwAYAAAAAAABAAAApIEugwQAcGx1
Z2lucy9tb3VzZS1jbGljay1pZnJhbWUtdG8tcGx1Z2luLXN0ZGVyci50eHRVVAUAA/j1AVl1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAINZtKdfsyuGgCAACiFQAAGgAYAAAAAAABAAAApIFGhAQA
cHl3ZWJzb2NrZXQud3MubG9nLWVyci50eHRVVAUAA8D0AVl1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAINZtK34ESXgkBAACPAgAAGgAYAAAAAAABAAAApIEChwQAcHl3ZWJzb2NrZXQud3MubG9n
LW91dC50eHRVVAUAA8D0AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABzNJtKAAAAAAAAAAAA
AAAAGwAYAAAAAAAAAAAApIFfiAQAcHl3ZWJzb2NrZXQud3NzLmxvZy1lcnIudHh0VVQFAAOp8wFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAczSbSgAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSB
tIgEAHB5d2Vic29ja2V0Lndzcy5sb2ctb3V0LnR4dFVUBQADqfMBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIANw2m0pFJh050ScAAMuqAAAMABgAAAAAAAEAAACkgQmJBAByZXN1bHRzLmh0bWxV
VAUAAzD4AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADaNptKAAAAAAAAAAAAAAAACAAYAAAA
AAAAABAA7UEgsQQAcmV0cmllcy9VVAUAAyz4AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADa
NptKAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UFisQQAcmV0cmllcy9tZWRpYS9VVAUAAyz4AVl1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADaNptKAAAAAAAAAAAAAAAAJAAYAAAAAAAAABAA7UGq
sQQAcmV0cmllcy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvVVQFAAMs+AFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAA2jabSgAAAAAAAAAAAAAAAEQAGAAAAAAAAAAQAO1BCLIEAHJldHJp
ZXMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29u
dHJvbHMvVVQFAAMs+AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2jabSjpt9jxSAQAAxQUA
AH0AGAAAAAAAAQAAAKSBhrIEAHJldHJpZXMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy1idXR0b25zLXN0eWxlcy1hY3R1YWwudHh0VVQFAAMs+AFZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA2jabSionCZQlAQAAowMAAHsAGAAAAAAAAQAAAKSBj7QEAHJldHJpZXMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy1kaWZmLnR4dFVUBQAD
LPgBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANo2m0qxSb2YKgEAAKYFAAB/ABgAAAAAAAEA
AACkgWm2BAByZXRyaWVzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2Ny
ZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0dG9u
cy1zdHlsZXMtZXhwZWN0ZWQudHh0VVQFAAMs+AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
2jabSgV1C02DCAAAJSIAAIMAGAAAAAAAAQAAAKSBTLgEAHJldHJpZXMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy1wcmV0dHktZGlmZi5odG1sVVQFAAMs
+AFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3DabSvfnQhVNgQkAVQQyAAoAGAAAAAAAAQAA
AKSBjMEEAHN0YXRzLmpzb25VVAUAAzD4AVl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAqLptK
AAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UEdQw4Ac3RvcmFnZS9VVAUAA9DoAVl1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAACOLptKAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UFfQw4Ac3RvcmFn
ZS9pbmRleGVkZGIvVVQFAAOL6QFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+jWbSh3Rjyaj
AAAATwIAACkAGAAAAAAAAQAAAKSBq0MOAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy1z
dGRlcnIudHh0VVQFAAOI9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+jWbSh3RjyajAAAA
TwIAADEAGAAAAAAAAQAAAKSBsUQOAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy13b3Jr
ZXJzLXN0ZGVyci50eHRVVAUAA4f2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD7NZtKbU2y
na8AAAABCgAAKAAYAAAAAAABAAAApIG/RQ4Ac3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtY291bnQt
c3RkZXJyLnR4dFVUBQADifYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAA2m0rWw6YOpAAA
ABQDAAAtABgAAAAAAAEAAACkgdBGDgBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1tdWx0aWVudHJ5
LXN0ZGVyci50eHRVVAUAA5D2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABNptKRmgb25kA
AADFAAAALQAYAAAAAAABAAAApIHbRw4Ac3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtcG9wdWxhdGlv
bi1zdGRlcnIudHh0VVQFAAOR9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABDabSnW5v/zl
BQAAMTIAAEUAGAAAAAAAAAAAAKSB20gOAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Bl
bi1pbi11cGdyYWRlbmVlZGVkLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADmPYBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAAQ2m0rjB5w29AUAAN41AAA9ABgAAAAAAAAAAACkgT9PDgBzdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4taW4tdXBncmFkZW5lZWRlZC1zdGRlcnIudHh0VVQF
AAOY9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABTabSkBef/56BAAAtRgAAEEAGAAAAAAA
AAAAAKSBqlUOAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24t
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOZ9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABTab
Six0kqFrBAAAVRgAADkAGAAAAAAAAAAAAKSBn1oOAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tb3Blbi13aXRoLXZlcnNpb24tc3RkZXJyLnR4dFVUBQADmfYBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAAU2m0p7mnWVJwUAAM07AABRABgAAAAAAAAAAACkgX1fDgBzdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLWFzY2VuZGluZy1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA5n2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAFNptKd6/C9zwF
AAAPPQAASQAYAAAAAAAAAAAApIEvZQ4Ac3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5k
aW5nLXZlcnNpb24tY2hhbmdlcy1hc2NlbmRpbmctc3RkZXJyLnR4dFVUBQADmfYBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAAU2m0qvAgFdCQUAANYuAABSABgAAAAAAAAAAACkge5qDgBzdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLWRlc2NlbmRp
bmctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOa9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
BTabSg1q5coRBQAALSwAAEoAGAAAAAAAAAAAAKSBg3AOAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5nZXMtZGVzY2VuZGluZy1zdGRlcnIudHh0VVQFAAOa
9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABTabSt51d//mBAAAASsAAEwAGAAAAAAAAAAA
AKSBGHYOAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5n
ZXMtc2FtZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5r2AVl1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAGNptKIov4TB0FAAApMAAARAAYAAAAAAAAAAAApIGEew4Ac3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1zYW1lLXN0ZGVyci50eHRVVAUAA5v2
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAGNptKhaSx20EEAAAeHQAAOwAYAAAAAAAAAAAA
pIEfgQ4Ac3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZXJzaXN0ZW5jZS1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA5v2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAGNptKzx8JNxMEAABU
GgAAMwAYAAAAAAAAAAAApIHVhQ4Ac3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZXJzaXN0
ZW5jZS1zdGRlcnIudHh0VVQFAAOb9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABjabSvmr
nPuBBQAA+ywAAD8AGAAAAAAAAAAAAKSBVYoOAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
cmV2ZXJ0LW9uLWFib3J0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADnPYBWXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAAY2m0o7uumOfAUAAJEuAAA3ABgAAAAAAAAAAACkgU+QDgBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLXJldmVydC1vbi1hYm9ydC1zdGRlcnIudHh0VVQFAAOc9gFZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABjabSltTcp0KBAAA6BkAAEUAGAAAAAAAAAAAAKSBPJYO
AHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tdHdvLW9wZW5zLW5vLXZlcnNpb25zLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADnPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAc2m0ri0dQy
MwQAAN8bAAA9ABgAAAAAAAAAAACkgcWaDgBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXR3
by1vcGVucy1uby12ZXJzaW9ucy1zdGRlcnIudHh0VVQFAAOd9gFZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgABzabSh0gSSVIBQAAOUcAADgAGAAAAAAAAAAAAKSBb58OAHN0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tdXBncmFkZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOd9gFZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgABzabSrBlKwN1BQAAOkkAADAAGAAAAAAAAAAAAKSBKaUOAHN0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tdXBncmFkZXMtc3RkZXJyLnR4dFVUBQADnfYBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAc2m0p/DQsCNwMAAJkRAAAxABgAAAAAAAAAAACkgQir
DgBzdG9yYWdlL2luZGV4ZWRkYi9pbnZhbGlkLWtleXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOe
9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABzabSnRQAP7fAwAAbBMAACkAGAAAAAAAAAAA
AKSBqq4OAHN0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy1zdGRlcnIudHh0VVQFAAOe9gFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACDabSvzxCCyBDwAAwcYBADIAGAAAAAAAAAAAAKSB
7LIOAHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1nZW5lcmF0b3ItcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAOf9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACTabSlcq9zUoDwAAQtABACoAGAAAAAAA
AAAAAKSB2cIOAHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1nZW5lcmF0b3Itc3RkZXJyLnR4dFVUBQAD
ofYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAk2m0oOEGyrWwUAAKw+AABAABgAAAAAAAAA
AACkgWXSDgBzdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMtcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAOh9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACTabSuWU
2ItdBgAAjEUAADgAGAAAAAAAAAAAAKSBOtgOAHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9y
ZGVyLWFjcm9zcy10eXBlcy1zdGRlcnIudHh0VVQFAAOi9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgACTabSoRGGmp4BQAAqDQAADgAGAAAAAAAAAAAAKSBCd8OAHN0b3JhZ2UvaW5kZXhlZGRi
L2tleS1zb3J0LW9yZGVyLWRhdGUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOi9gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgACjabSjcbNok6BgAAWjwAADAAGAAAAAAAAAAAAKSB8+QOAHN0b3Jh
Z2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWRhdGUtc3RkZXJyLnR4dFVUBQADo/YBWXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAAo2m0q48LuyYAgAAOXaAAAzABgAAAAAAAAAAACkgZfrDgBz
dG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1hcnJheS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6T2
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAKNptKiAugXkIGAAADQQAANAAYAAAAAAAAAAAA
pIFk9A4Ac3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtYmluYXJ5LXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADpPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAs2m0qoW6OnIgYAAN9CAAAsABgA
AAAAAAAAAACkgRT7DgBzdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1iaW5hcnktc3RkZXJyLnR4
dFVUBQADpfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAs2m0piRfEHZwQAABgaAAA2ABgA
AAAAAAAAAACkgZwBDwBzdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA6X2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAALNptKHNLzid0E
AADDHAAALgAYAAAAAAAAAAAApIFzBg8Ac3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtaW5maW5p
dHktc3RkZXJyLnR4dFVUBQADpfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAs2m0pcgn3I
dAcAAM49AAAzABgAAAAAAAAAAACkgbgLDwBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWFycmF5
cy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6b2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAL
NptKP/GviL4HAAAJQQAAKwAYAAAAAAAAAAAApIGZEw8Ac3RvcmFnZS9pbmRleGVkZGIva2V5cGF0
aC1hcnJheXMtc3RkZXJyLnR4dFVUBQADpvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAw2
m0p0hi1yEgQAACtiAAAzABgAAAAAAAAAAACkgbwbDwBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRo
LWJhc2ljcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6j2AVl1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAANNptK00A3sUUFAAC6pgAAKwAYAAAAAAAAAAAApIE7IA8Ac3RvcmFnZS9pbmRleGVkZGIv
a2V5cGF0aC1iYXNpY3Mtc3RkZXJyLnR4dFVUBQADqvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAA42m0rnG+EM5gYAAOh/AAAyABgAAAAAAAAAAACkgeUlDwBzdG9yYWdlL2luZGV4ZWRkYi9r
ZXlwYXRoLWVkZ2VzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADq/YBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAA42m0rHkg339AUAABg7AAAqABgAAAAAAAAAAACkgTctDwBzdG9yYWdlL2luZGV4
ZWRkYi9rZXlwYXRoLWVkZ2VzLXN0ZGVyci50eHRVVAUAA6v2AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAONptKgyXJpE4FAAALQwAANgAYAAAAAAAAAAAApIGPMw8Ac3RvcmFnZS9pbmRleGVk
ZGIva2V5cGF0aC1mZXRjaC1rZXktcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOs9gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgADjabSq0jx8o8BgAAz0kAAC4AGAAAAAAAAAAAAKSBTTkPAHN0b3Jh
Z2UvaW5kZXhlZGRiL2tleXBhdGgtZmV0Y2gta2V5LXN0ZGVyci50eHRVVAUAA6z2AVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAONptK2sXiDvoHAAAVaQAAQQAYAAAAAAAAAAAApIHxPw8Ac3Rv
cmFnZS9pbmRleGVkZGIva2V5cGF0aC1pbnRyaW5zaWMtcHJvcGVydGllcy1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAA6z2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAPNptKNVzxr3YIAADpeAAA
OQAYAAAAAAAAAAAApIFmSA8Ac3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1pbnRyaW5zaWMtcHJv
cGVydGllcy1zdGRlcnIudHh0VVQFAAOt9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADzab
SmraG8jrAAAA0AIAAC0AGAAAAAAAAAAAAKSBT1EPAHN0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdl
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADrvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABA2
m0rt0hNF3ggAABqNAAA6ABgAAAAAAAAAAACkgaFSDwBzdG9yYWdlL2luZGV4ZWRkYi9sYXp5LWlu
ZGV4LXBvcHVsYXRpb24tcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOv9gFZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAEDabSjw2NkymCQAAxo8AADIAGAAAAAAAAAAAAKSB81sPAHN0b3JhZ2UvaW5k
ZXhlZGRiL2xhenktaW5kZXgtcG9wdWxhdGlvbi1zdGRlcnIudHh0VVQFAAOw9gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAETabSnSF/eq5BwAAoWMAADUAGAAAAAAAAAAAAKSBBWYPAHN0b3Jh
Z2UvaW5kZXhlZGRiL2xhenktaW5kZXgtdHlwZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOx9gFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAETabSnKaaALqCAAAwXoAAC0AGAAAAAAAAAAAAKSB
LW4PAHN0b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgtdHlwZXMtc3RkZXJyLnR4dFVUBQADsfYB
WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABE2m0pxA5vS5wAAANACAAA1ABgAAAAAAAAAAACk
gX53DwBzdG9yYWdlL2luZGV4ZWRkYi9sZWdhY3ktY29uc3RhbnRzLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADsfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABE2m0q6K6Ja6gUAAFOZAAAyABgA
AAAAAAAAAACkgdR4DwBzdG9yYWdlL2luZGV4ZWRkYi9saXN0LW9yZGVyaW5nLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADsvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABE2m0onyu5csQYAAEWa
AAAqABgAAAAAAAAAAACkgSp/DwBzdG9yYWdlL2luZGV4ZWRkYi9saXN0LW9yZGVyaW5nLXN0ZGVy
ci50eHRVVAUAA7L2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAASNptKwhRY6oAGAADiWAAA
LQAYAAAAAAAAAAAApIE/hg8Ac3RvcmFnZS9pbmRleGVkZGIvbWV0YWRhdGEtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAOz9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEjabShl3zXlZBQAASiEA
ADIAGAAAAAAAAAAAAKSBJo0PAHN0b3JhZ2UvaW5kZXhlZGRiL21ldGFkYXRhLXJhY2UtcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAAOz9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEjabSqefK3dA
BgAARCYAACoAGAAAAAAAAAAAAKSB65IPAHN0b3JhZ2UvaW5kZXhlZGRiL21ldGFkYXRhLXJhY2Ut
c3RkZXJyLnR4dFVUBQADtPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABI2m0ovepB0LwcA
AFpcAAAlABgAAAAAAAAAAACkgY+ZDwBzdG9yYWdlL2luZGV4ZWRkYi9tZXRhZGF0YS1zdGRlcnIu
dHh0VVQFAAO09gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAVi6bSgAAAAAAAAAAAAAAABkA
GAAAAAAAAAAQAO1BHaEPAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9VVAUAAyTpAVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADbNZtKLRRkNEsHAAACdAAANwAYAAAAAAAAAAAApIFwoQ8Ac3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2F1dG9pbmNyZW1lbnQtYWJvcnQtc3RkZXJyLnR4dFVUBQAD
TvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANs1m0pOVkH8OgUAAFAgAAA1ABgAAAAAAAAA
AACkgSypDwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmFzaWMtYWRkLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADTvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANw1m0p8oymTTAUAADMgAAAt
ABgAAAAAAAAAAACkgdWuDwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmFzaWMtYWRkLXN0ZGVy
ci50eHRVVAUAA0/2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADcNZtKBslsjwgFAADEHAAA
NQAYAAAAAAAAAAAApIGItA8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2ljLXB1dC1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA0/2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADcNZtKIAgq
5xoFAAD9HAAALQAYAAAAAAAAAAAApIH/uQ8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2lj
LXB1dC1zdGRlcnIudHh0VVQFAANP9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3DWbStxg
4t80BgAAJDIAADkAGAAAAAAAAAAAAKSBgL8PAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iaW5h
cnkta2V5cy0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADUPYBWXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIANw1m0rTTlIQvQYAAAc3AAAxABgAAAAAAAAAAACkgSfGDwBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vYmluYXJ5LWtleXMtMS1zdGRlcnIudHh0VVQFAANQ9gFZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA3TWbSiwGvgRZBwAAyEkAAC8AGAAAAAAAAAAAAKSBT80PAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9ibG9iLWN1cnNvci1zdGRlcnIudHh0VVQFAANR9gFZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA4DWbSoLF8G+aCgAAsrsAAC8AGAAAAAAAAAAAAKSBEdUPAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9ibG9iLXNpbXBsZS1zdGRlcnIudHh0VVQFAANT9gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA3TWbSoaiCE4cCwAArbwAADcAGAAAAAAAAAAAAKSBFOAPAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9ibG9iLXNpbXBsZS13b3JrZXJzLXN0ZGVyci50eHRVVAUAA1L2
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADgNZtKI43f70oGAACCNwAAMgAYAAAAAAAAAAAA
pIGh6w8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jsb2Itc3ZnLWltYWdlLXN0ZGVyci50eHRV
VAUAA1T2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADgNZtKeAhKjJcGAAD8NQAARAAYAAAA
AAAAAAAApIFX8g8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jsb2NrZWQtb3Blbi1kYi1yZXF1
ZXN0cy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA1T2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADgNZtKt5PukN0GAABZNgAAPAAYAAAAAAAAAAAApIFs+Q8Ac3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2Jsb2NrZWQtb3Blbi1kYi1yZXF1ZXN0cy1zdGRlcnIudHh0VVQFAANU9gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA4TWbSggcEWCtBgAAzTQAAEEAGAAAAAAAAAAAAKSBvwAQAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9jcmVhdGUtaW5kZXgtZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIu
dHh0VVQFAANV9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4TWbSgcwHjCyBgAAkDEAADkA
GAAAAAAAAAAAAKSB5wcQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jcmVhdGUtaW5kZXgtZmFp
bHVyZXMtc3RkZXJyLnR4dFVUBQADVfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOE1m0pv
SKqxVwYAABlJAABDABgAAAAAAAAAAACkgQwPEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Jl
YXRlb2JqZWN0c3RvcmUtYmFzaWMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANV9gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA4TWbSliDK0aTBgAAnEoAADsAGAAAAAAAAAAAAKSB4BUQAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9jcmVhdGVvYmplY3RzdG9yZS1iYXNpYy1zdGRlcnIudHh0VVQF
AANW9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4TWbSiMsrfLFBAAAbxwAAEYAGAAAAAAA
AAAAAKSB6BwQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jcmVhdGVvYmplY3RzdG9yZS1mYWls
dXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA1b2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADiNZtK7xod7HoEAADNGQAAPgAYAAAAAAAAAAAApIEtIhAAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2NyZWF0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAA1f2AVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADiNZtKSTXAFPYGAAAicAAANAAYAAAAAAAAAAAApIEfJxAAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADV/YB
WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOI1m0p9A9GymgcAAER7AAAsABgAAAAAAAAAAACk
gYMuEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTEtc3RkZXJyLnR4dFVUBQADWPYB
WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOI1m0rVrLr1cAcAANGTAAA0ABgAAAAAAAAAAACk
gYM2EABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTItcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAANY9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4zWbSnK+VGfiBwAA7aoAACwAGAAA
AAAAAAAAAKSBYT4QAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMi1zdGRlcnIudHh0
VVQFAANZ9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4zWbSuFiVwfqBgAAwWUAADQAGAAA
AAAAAAAAAKSBqUYQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMy1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA1n2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjNZtKuZF/SYMHAAAR
eQAALAAYAAAAAAAAAAAApIEBThAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0zLXN0
ZGVyci50eHRVVAUAA1r2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjNZtK7cYqscYGAACh
XwAANAAYAAAAAAAAAAAApIHqVRAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci00LXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADWvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOQ1m0pJ
3Q1G/wYAACpxAAAsABgAAAAAAAAAAACkgR5dEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vy
c29yLTQtc3RkZXJyLnR4dFVUBQADW/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOQ1m0oM
JzmmbwYAAOc0AAA0ABgAAAAAAAAAAACkgYNkEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vy
c29yLTUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANb9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA5DWbSn5nws3SBgAA0TkAACwAGAAAAAAAAAAAAKSBYGsQAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9jdXJzb3ItNS1zdGRlcnIudHh0VVQFAANb9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA5DWbSiuISFJjBgAAgzQAADQAGAAAAAAAAAAAAKSBmHIQAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9jdXJzb3ItNi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA1z2AVl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADkNZtKPRKCE+oGAAB7OQAALAAYAAAAAAAAAAAApIFpeRAAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2N1cnNvci02LXN0ZGVyci50eHRVVAUAA1z2AVl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADkNZtKm2JbDxwGAAAmLgAANAAYAAAAAAAAAAAApIG5gBAAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2N1cnNvci03LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADXPYBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAOU1m0qbiX5qlQYAACMxAAAsABgAAAAAAAAAAACkgUOHEABzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTctc3RkZXJyLnR4dFVUBQADXfYBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAOU1m0pRvkXoCQYAAIQtAAA0ABgAAAAAAAAAAACkgT6OEABzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTgtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANd9gFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5TWbSvwFG62dBgAAaTAAACwAGAAAAAAAAAAAAKSB
tZQQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItOC1zdGRlcnIudHh0VVQFAANd9gFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5TWbSnOq10mxBgAAqkcAADYAGAAAAAAAAAAAAKSB
uJsQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kYXRlLWJhc2ljLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADXvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOU1m0oWCnBhuQYAAOtJAAAuABgA
AAAAAAAAAACkgdmiEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGF0ZS1iYXNpYy1zdGRlcnIu
dHh0VVQFAANe9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5TWbSlOoDISpBQAAxzAAADwA
GAAAAAAAAAAAAKSB+qkQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS0x
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADXvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOY1
m0oY85i3xAUAAA8yAAA0ABgAAAAAAAAAAACkgRmwEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
ZGVsZXRlZGF0YWJhc2UtMS1zdGRlcnIudHh0VVQFAANf9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA5jWbSiFEMANWBgAAnzQAADwAGAAAAAAAAAAAAKSBS7YQAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9kZWxldGVkYXRhYmFzZS0yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADX/YBWXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAOY1m0qRNXLkVAYAAFQ1AAA0ABgAAAAAAAAAAACkgRe9EABz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtMi1zdGRlcnIudHh0VVQFAANg
9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5jWbSg9gspbbAAAAzgIAAE4AGAAAAAAAAAAA
AKSB2cMQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS1udWxsLW5hbWUt
ZXhjZXB0aW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADYPYBWXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOY1m0oYy22ETQEAAJ0DAABIABgAAAAAAAAAAACkgTzFEABzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC1ldmVudC1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA2D2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADmNZtKVy4b64oBAABCBAAAQAAYAAAA
AAAAAAAApIELxxAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLXJlcXVl
c3QtZXZlbnQtc3RkZXJyLnR4dFVUBQADYPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOY1
m0pgNvQyVgAAAJkAAABCABgAAAAAAAAAAACkgQ/JEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
ZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2D2AVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADmNZtK0giuVRABAAAhAwAAOgAYAAAAAAAAAAAApIHhyRAAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLXJlcXVlc3Qtc3RkZXJyLnR4dFVU
BQADYPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOc1m0rVlXnuyAcAAL49AAA5ABgAAAAA
AAAAAACkgWXLEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMS1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA2H2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADnNZtKQ81GX+EI
AABrRAAAMQAYAAAAAAAAAAAApIGg0xAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWlu
ZGV4LTEtc3RkZXJyLnR4dFVUBQADYfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOc1m0pH
T7hgXQgAALBaAAA5ABgAAAAAAAAAAACkgezcEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVs
ZXRlaW5kZXgtMi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2H2AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADnNZtKAxtjyqgJAACxZgAAMQAYAAAAAAAAAAAApIG85RAAc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTItc3RkZXJyLnR4dFVUBQADYvYBWXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOc1m0oVBOF72AUAAIknAAA5ABgAAAAAAAAAAACkgc/vEABzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2L2AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADnNZtKvgjGIXUGAAAHLAAAMQAYAAAAAAAAAAAApIEa
9hAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTMtc3RkZXJyLnR4dFVUBQAD
YvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOg1m0qMHZZj+AUAAO0xAAA5ABgAAAAAAAAA
AACkgfr8EABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtNC1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA2P2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADoNZtKMkrbpMoHAACF
dAAAPwAYAAAAAAAAAAAApIFlAxEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZW9iamVj
dHN0b3JlLTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANj9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA6DWbSvW6uwMRCAAA8HkAADcAGAAAAAAAAAAAAKSBqAsRAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9kZWxldGVvYmplY3RzdG9yZS0xLXN0ZGVyci50eHRVVAUAA2T2AVl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADoNZtKcGbel98DAAB+FQAAOAAYAAAAAAAAAAAApIEqFBEAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2T2
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADoNZtKzUBorAAEAADNEwAAMAAYAAAAAAAAAAAA
pIF7GBEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC1zdGRlcnIudHh0VVQF
AANk9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6DWbSkfCgjFuAwAAlBMAADcAGAAAAAAA
AAAAAKSB5RwRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtb3Blbi1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA2T2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADpNZtKsarZ9LQDAABv
FwAALwAYAAAAAAAAAAAApIHEIBEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1vcGVu
LXN0ZGVyci50eHRVVAUAA2X2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADpNZtKgPf1CLEE
AABMJgAAPgAYAAAAAAAAAAAApIHhJBEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2djLWNsb3Nl
cy1kYXRhYmFzZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2X2AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADpNZtK4QQyxtsEAACWJgAANgAYAAAAAAAAAAAApIEKKhEAc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL2djLWNsb3Nlcy1kYXRhYmFzZS1zdGRlcnIudHh0VVQFAANm9gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA6TWbSqplNYCYBgAAaDoAAD4AGAAAAAAAAAAAAKSBVS8RAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9nZXQtaW5kZXgtZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAANm9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6jWbSh3Sf8bwBgAAKzoAADYAGAAA
AAAAAAAAAKSBZTYRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9nZXQtaW5kZXgtZmFpbHVyZXMt
c3RkZXJyLnR4dFVUBQADZ/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOo1m0ostZb2lA0A
AJg9AgA4ABgAAAAAAAAAAACkgcU9EQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2V0LWtleXJh
bmdlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADaPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AOs1m0pLBIn4lwwAAAZbAgAwABgAAAAAAAAAAACkgctLEQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vZ2V0LWtleXJhbmdlLXN0ZGVyci50eHRVVAUAA2n2AVl1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADrNZtKvIs7tdsFAACWJAAANgAYAAAAAAAAAAAApIHMWBEAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2hhbmRsZS11c2VyLWRlbGV0ZS1zdGRlcnIudHh0VVQFAANp9gFZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA6zWbSpGqv1zCEwAA+fcCAEwAGAAAAAAAAAAAAKSBF18RAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pZGJjdXJzb3ItY29udGludWUtcHJpbWFyeS1rZXktMS1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA2r2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADtNZtKfIBrOw4W
AAA8YwMARAAYAAAAAAAAAAAApIFfcxEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmN1cnNv
ci1jb250aW51ZS1wcmltYXJ5LWtleS0xLXN0ZGVyci50eHRVVAUAA232AVl1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADtNZtKgMC92o0GAABUQAAAUgAYAAAAAAAAAAAApIHriREAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2lkYmRhdGFiYXNlLWRlbGV0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADbvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO01m0q/
Vp2IgQYAAPo5AABKABgAAAAAAAAAAACkgQSREQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRi
ZGF0YWJhc2UtZGVsZXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMtc3RkZXJyLnR4dFVUBQADbvYBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO01m0q3kWbryAQAAK8aAABMABgAAAAAAAAAAACkgQmY
EQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2UtdHJhbnNhY3Rpb24tZmFpbHVy
ZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANu9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
7jWbSpgyRerfBAAALRsAAEQAGAAAAAAAAAAAAKSBV50RAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9pZGJkYXRhYmFzZS10cmFuc2FjdGlvbi1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAANv9gFZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7jWbSrItW/ZOBwAAIFwAAD0AGAAAAAAAAAAAAKSBtKIR
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJpbmRleC1nZXRhbGwtMS1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAA2/2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADuNZtKev8i2hEIAAD/dQAA
NQAYAAAAAAAAAAAApIF5qhEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmluZGV4LWdldGFs
bC0xLXN0ZGVyci50eHRVVAUAA3D2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADuNZtK+x+6
71wHAADyXQAAQQAYAAAAAAAAAAAApIH5shEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmlu
ZGV4LWdldGFsbGtleXMtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA3D2AVl1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADvNZtK6i3+1g0IAABrdgAAOQAYAAAAAAAAAAAApIHQuhEAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2lkYmluZGV4LWdldGFsbGtleXMtMS1zdGRlcnIudHh0VVQFAANx9gFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7zWbSl2oPfrxBQAAjj4AAEUAGAAAAAAAAAAAAKSB
UMMRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJpbmRleC1wcm9wZXJ0aWVzLWJhc2ljLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADcfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO81m0re
CoYRDwYAAEk+AAA9ABgAAAAAAAAAAACkgcDJEQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRi
aW5kZXgtcHJvcGVydGllcy1iYXNpYy1zdGRlcnIudHh0VVQFAANx9gFZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA8DWbSoWwNicrFAAA86UGAEEAGAAAAAAAAAAAAKSBRtARAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9pZGJrZXktYXJyYXktZXF1YWxpdHktcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAN09gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8TWbSvlQG9X8GwAA7d4HADkAGAAAAAAA
AAAAAKSB7OQRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJrZXktYXJyYXktZXF1YWxpdHkt
c3RkZXJyLnR4dFVUBQADdvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPI1m0qDBwm1IggA
AH6BAABCABgAAAAAAAAAAACkgVsBEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0
c3RvcmUtY2xlYXItMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA3f2AVl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADyNZtK4Bd1Ha4HAAC+ggAAOgAYAAAAAAAAAAAApIH5CRIAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNsZWFyLTEtc3RkZXJyLnR4dFVUBQADd/YBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPI1m0q+B1vL4AgAABmtAABCABgAAAAAAAAAAACkgRsS
EgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMi1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA3j2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADyNZtKpj9bKhEJ
AABFsQAAOgAYAAAAAAAAAAAApIF3GxIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVj
dHN0b3JlLWNsZWFyLTItc3RkZXJyLnR4dFVUBQADePYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAPM1m0pUjWWe/gcAAKDIAABCABgAAAAAAAAAAACkgfwkEgBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRib2JqZWN0c3RvcmUtY291bnQtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA3n2AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADzNZtKQhGUB6MKAAB/UgEAOgAYAAAAAAAAAAAApIF2
LRIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNvdW50LTEtc3RkZXJy
LnR4dFVUBQADefYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPM1m0rr7jmKNwYAAHEzAABJ
ABgAAAAAAAAAAACkgY04EgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUt
Y291bnQtZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAN69gFZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA8zWbStaav8VUBgAAcTMAAEEAGAAAAAAAAAAAAKSBRz8SAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jb3VudC1mYWlsdXJlcy1zdGRlcnIudHh0VVQF
AAN69gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9DWbSgpa5cu2DAAAHd0BAEMAGAAAAAAA
AAAAAKSBFkYSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1kZWxldGUt
MS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA3v2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0
NZtKtUBTLlMSAADegwMAOwAYAAAAAAAAAAAApIFJUxIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0xLXN0ZGVyci50eHRVVAUAA3z2AVl1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAD0NZtKKKhkacwGAAD4OQAAQwAYAAAAAAAAAAAApIERZhIAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0yLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADfPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPU1m0pkxPBp3QYAALA5AAA7ABgA
AAAAAAAAAACkgVptEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVs
ZXRlLTItc3RkZXJyLnR4dFVUBQADffYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPU1m0q6
WFw+cAYAAHk9AABKABgAAAAAAAAAAACkgax0EgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRi
b2JqZWN0c3RvcmUtZGVsZXRlLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADffYBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPU1m0p9a8aluQYAAMk9AABCABgAAAAAAAAAAACkgaB7
EgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLWZhaWx1cmVz
LXN0ZGVyci50eHRVVAUAA332AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD1NZtKzrOk/ikG
AABvMwAARwAYAAAAAAAAAAAApIHVghIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVj
dHN0b3JlLWdldC1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA372AVl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAD1NZtKCzBpH08GAABvMwAAPwAYAAAAAAAAAAAApIF/iRIAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldC1mYWlsdXJlcy1zdGRlcnIudHh0
VVQFAAN+9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9TWbSlkkg8piBgAAukgAAEMAGAAA
AAAAAAAAAKSBR5ASAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXRh
bGwtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA372AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAD2NZtKgLogDJ4GAAA8TwAAOwAYAAAAAAAAAAAApIEmlxIAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2lkYm9iamVjdHN0b3JlLWdldGFsbC0xLXN0ZGVyci50eHRVVAUAA3/2AVl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAD2NZtKs8Hv+qYGAAAbTQAARwAYAAAAAAAAAAAApIE5nhIAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldGFsbGtleXMtMS1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA3/2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD2NZtKwxnIYbIGAABc
TwAAPwAYAAAAAAAAAAAApIFgpRIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0
b3JlLWdldGFsbGtleXMtMS1zdGRlcnIudHh0VVQFAAOA9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA9jWbSmEpEdJsBgAAcUUAAEMAGAAAAAAAAAAAAKSBi6wSAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXRrZXktMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA4D2
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD2NZtK8+e0r5MGAAAkSAAAOwAYAAAAAAAAAAAA
pIF0sxIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldGtleS0xLXN0
ZGVyci50eHRVVAUAA4D2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD3NZtKdAPhXJoGAADB
QQAAUQAYAAAAAAAAAAAApIF8uhIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0
b3JlLXB1dC1hbmQtY2xlYXItZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOB9gFZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9zWbSu6Nde2/BgAA0D0AAEkAGAAAAAAAAAAAAKSBocES
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1wdXQtYW5kLWNsZWFyLWZh
aWx1cmVzLXN0ZGVyci50eHRVVAUAA4H2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD3NZtK
rQ3Dr7cDAAB9EgAATwAYAAAAAAAAAAAApIHjyBIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lk
YnRyYW5zYWN0aW9uLW9iamVjdHN0b3JlLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
gfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPc1m0q1k1b5LwQAAKYUAABHABgAAAAAAAAA
AACkgSPNEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRidHJhbnNhY3Rpb24tb2JqZWN0c3Rv
cmUtZmFpbHVyZXMtc3RkZXJyLnR4dFVUBQADgfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
APc1m0q3j21rQQUAAPIpAABJABgAAAAAAAAAAACkgdPREgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vaWRidHJhbnNhY3Rpb24tb2JqZWN0c3RvcmVzLTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOC
9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9zWbSiTQ9CsWBQAAsycAAEEAGAAAAAAAAAAA
AKSBl9cSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJ0cmFuc2FjdGlvbi1vYmplY3RzdG9y
ZXMtMS1zdGRlcnIudHh0VVQFAAOC9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9zWbSlI6
28YgAQAAmQQAAEUAGAAAAAAAAAAAAKSBKN0SAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJ2
ZXJzaW9uY2hhbmdlZXZlbnQtY29uc3RydWN0b3Itc3RkZXJyLnR4dFVUBQADgvYBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAPg1m0oac9qR5goAAHWKAQAzABgAAAAAAAAAAACkgcfeEgBzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA4P2AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD4NZtKhat6Xz0MAAAIqAEAKwAYAAAAAAAAAAAApIEa
6hIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTEtc3RkZXJyLnR4dFVUBQADhPYBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPk1m0q/kOxI3w0AAAilAQAzABgAAAAAAAAAAACkgbz2
EgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMi1wcml2YXRlLXN0ZGVyci50eHRVVAUA
A4X2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD6NZtKAcls2BUPAABstQEAKwAYAAAAAAAA
AAAApIEIBRMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTItc3RkZXJyLnR4dFVUBQAD
h/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPo1m0rMryI/DQcAAPpWAAAzABgAAAAAAAAA
AACkgYIUEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMy1wcml2YXRlLXN0ZGVyci50
eHRVVAUAA4f2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD6NZtK0hwQTvEHAABiZAAAKwAY
AAAAAAAAAAAApIH8GxMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTMtc3RkZXJyLnR4
dFVUBQADh/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPo1m0rYnI9C5QcAALqcAAAzABgA
AAAAAAAAAACkgVIkEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNC1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA4j2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD6NZtKzWSOaX4JAACu
ywAAKwAYAAAAAAAAAAAApIGkLBMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTQtc3Rk
ZXJyLnR4dFVUBQADiPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPs1m0qpky+ELQYAAHIm
AAAzABgAAAAAAAAAAACkgYc2EwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNS1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA4n2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD7NZtK/BWQ
xGwGAAA6JQAAKwAYAAAAAAAAAAAApIEhPRMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4
LTUtc3RkZXJyLnR4dFVUBQADifYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPs1m0onl+qC
WQgAAIpRAQA6ABgAAAAAAAAAAACkgfJDEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgt
Y3Vyc29yLTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOK9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA/DWbSsDzKD1ICwAAOLQBADIAGAAAAAAAAAAAAKSBv0wTAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9pbmRleC1jdXJzb3ItMS1zdGRlcnIudHh0VVQFAAOM9gFZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA/TWbShCc4Q4/CQAAJXQBADoAGAAAAAAAAAAAAKSBc1gTAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA432AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD9NZtKMIhfhiAMAAAq1AEAMgAYAAAAAAAAAAAApIEm
YhMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1cnNvci0yLXN0ZGVyci50eHRVVAUA
A472AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAANptKM/jDoosRAADwbgIAOgAYAAAAAAAA
AAAApIGybhMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1cnNvci0zLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADkPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAE2m0qPOT3UExgA
APQ2AwAyABgAAAAAAAAAAACkgbGAEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vy
c29yLTMtc3RkZXJyLnR4dFVUBQADkfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAE2m0oF
u8mtNgYAACApAABBABgAAAAAAAAAAACkgTCZEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5k
ZXgtZ2V0LWNvdW50LWJhc2ljLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADkvYBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAAE2m0rJ2zwI9gYAAEEqAAA5ABgAAAAAAAAAAACkgeGfEwBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtZ2V0LWNvdW50LWJhc2ljLXN0ZGVyci50eHRVVAUAA5L2
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABNptKfrgSyuAGAAA5OQAARAAYAAAAAAAAAAAA
pIFKpxMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWdldC1jb3VudC1mYWlsdXJlcy1w
cml2YXRlLXN0ZGVyci50eHRVVAUAA5L2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAACNptK
N38VA90HAABfPAAAPAAYAAAAAAAAAAAApIGorhMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lu
ZGV4LWdldC1jb3VudC1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAAOT9gFZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAAjabSj95fnRbBwAAK0oAADoAGAAAAAAAAAAAAKSB+7YTAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5P2AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAACNptKbcp6H80HAADwTQAAMgAYAAAAAAAAAAAApIHK
vhMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LXJlbmFtZS0xLXN0ZGVyci50eHRVVAUA
A5P2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAACNptKu2r5RTAFAAAUKQAAOQAYAAAAAAAA
AAAApIEDxxMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2tleXBhdGgtYmFzaWMtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAOT9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAjabSvkkc4cWBQAA
0ScAADEAGAAAAAAAAAAAAKSBpswTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9rZXlwYXRoLWJh
c2ljLXN0ZGVyci50eHRVVAUAA5T2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAADNptKsWYt
WC8FAAB6IwAAKgAYAAAAAAAAAAAApIEn0hMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2xlYWst
MS1zdGRlcnIudHh0VVQFAAOV9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAzabSnhX8Kzx
CAAAjxgCAFUAGAAAAAAAAAAAAKSButcTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9tZW1vcnkt
aW5kZXgtbm90LWRlbGV0ZWQtd2l0aC1vYmplY3RzdG9yZS1wcml2YXRlLXN0ZGVyci50eHRVVAUA
A5b2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAENptKnUkgn7oJAACjJQIATQAYAAAAAAAA
AAAApIE64RMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL21lbW9yeS1pbmRleC1ub3QtZGVsZXRl
ZC13aXRoLW9iamVjdHN0b3JlLXN0ZGVyci50eHRVVAUAA5f2AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAENptKoNH+RzoIAABScQAAVwAYAAAAAAAAAAAApIF76xMAc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL211bHRpcGxlLW9iamVjdHN0b3JlLWluZGV4LWN1cnNvci1jb2xsaXNpb24tcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAOX9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABDabSq3Q
6QT4CAAA8IMAAE8AGAAAAAAAAAAAAKSBRvQTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9tdWx0
aXBsZS1vYmplY3RzdG9yZS1pbmRleC1jdXJzb3ItY29sbGlzaW9uLXN0ZGVyci50eHRVVAUAA5f2
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAENptK/sUkHwQGAADgLwAAQgAYAAAAAAAAAAAA
pIHH/RMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL25ldy1kYXRhYmFzZS1hZnRlci11c2VyLWRl
bGV0ZS1zdGRlcnIudHh0VVQFAAOY9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABDabSqAJ
ZFbvBQAAbTIAAEIAGAAAAAAAAAAAAKSBRwQUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmpl
Y3RzdG9yZS1hdHRyaWJ1dGVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADmPYBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAAQ2m0rzniQo8wUAAGsxAAA6ABgAAAAAAAAAAACkgbIKFABzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUtYXR0cmlidXRlcy1zdGRlcnIudHh0VVQFAAOY
9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABTabSkjnzIHkCQAAAZ4AAE8AGAAAAAAAAAAA
AKSBGREUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmplY3RzdG9yZS1jdXJzb3ItYWR2YW5j
ZS1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5n2AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAFNptKh5ofi3gKAAArqQAARwAYAAAAAAAAAAAApIGGGxQAc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1hZHZhbmNlLWZhaWx1cmVzLXN0ZGVyci50eHRV
VAUAA5n2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAFNptKSxi0L4MJAACRoQAAUAAYAAAA
AAAAAAAApIF/JhQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1j
b250aW51ZS1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5r2AVl1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAFNptKMenfkCgKAAAbrgAASAAYAAAAAAAAAAAApIGMMBQAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1jb250aW51ZS1mYWlsdXJlcy1zdGRl
cnIudHh0VVQFAAOa9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABTabShrNA+iCBgAAcj4A
AEAAGAAAAAAAAAAAAKSBNjsUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmplY3RzdG9yZS1y
ZW5hbWUtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5r2AVl1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAGNptKcn5Te3gGAABhPwAAOAAYAAAAAAAAAAAApIEyQhQAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL29iamVjdHN0b3JlLXJlbmFtZS0xLXN0ZGVyci50eHRVVAUAA5v2AVl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAGNptKoYq2V+YGAABXPAAAPwAYAAAAAAAAAAAApIEcSRQAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL29wZW5jdXJzb3ItZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAOb9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABjabSpj5Z2xhBwAAcD0AADcAGAAA
AAAAAAAAAKSBe1AUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuY3Vyc29yLWZhaWx1cmVz
LXN0ZGVyci50eHRVVAUAA5z2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAGNptKrPXud6kC
AACLCgAARgAYAAAAAAAAAAAApIFNWBQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRh
YmFzZS1yZXF1ZXN0LWV2ZW50LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADnPYBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAAY2m0q4bMCDCwMAAE0MAAA+ABgAAAAAAAAAAACkgXZbFABzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3QtZXZlbnQtc3RkZXJyLnR4dFVU
BQADnPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAY2m0p4v9LQcgEAACMFAABAABgAAAAA
AAAAAACkgfleFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3Qt
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOc9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABjab
SsLon9ozAQAAaQYAADgAGAAAAAAAAAAAAKSB5WAUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9v
cGVuZGF0YWJhc2UtcmVxdWVzdC1zdGRlcnIudHh0VVQFAAOc9gFZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgABzabSvo3dcwcBAAA3SQAAFQAGAAAAAAAAAAAAKSBimIUAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9vcGVuZGF0YWJhc2Utc3VjY2Vzcy1hZnRlci12ZXJzaW9uY2hhbmdlLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADnfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAc2m0rKdLUh
XgQAAFwmAABMABgAAAAAAAAAAACkgTRnFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRh
dGFiYXNlLXN1Y2Nlc3MtYWZ0ZXItdmVyc2lvbmNoYW5nZS1zdGRlcnIudHh0VVQFAAOd9gFZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABzabSvGg5tuEBAAAIDEAAEEAGAAAAAAAAAAAAKSBGGwU
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2UtdmVyc2lvbnMtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAOd9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABzabSuTMwl6GBAAA
uSwAADkAGAAAAAAAAAAAAKSBF3EUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJh
c2UtdmVyc2lvbnMtc3RkZXJyLnR4dFVUBQADnvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AAc2m0oWER3d8QQAAKweAAA+ABgAAAAAAAAAAACkgRB2FABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVxdWVzdC1yZWFkeXN0YXRlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADnvYBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAAc2m0qmE4ZFigUAAPYhAAA2ABgAAAAAAAAAAACkgXl7FABzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVxdWVzdC1yZWFkeXN0YXRlLXN0ZGVyci50eHRVVAUAA572
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAHNptKob9P0qIFAAAsIAAAUAAYAAAAAAAAAAAA
pIFzgRQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3NpbmdsZS1lbnRyeS1pbmRleC1pbnZhbGlk
LWtleS1jcmFzaC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA572AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAINptKZVxQdx4GAACYIgAASAAYAAAAAAAAAAAApIGfhxQAc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL3NpbmdsZS1lbnRyeS1pbmRleC1pbnZhbGlkLWtleS1jcmFzaC1zdGRlcnIudHh0
VVQFAAOf9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACDabSnWR282BBgAAzDgAAEMAGAAA
AAAAAAAAAKSBP44UAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVs
ZXItMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5/2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAINptKddnbgEMHAAA9SgAAQwAYAAAAAAAAAAAApIE9lRQAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADn/YBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAg2m0o7YCLq+gYAAFVJAABDABgAAAAAAAAAAACkgf2c
FABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTMtcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAAOf9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACDabSisE8Har
BgAAyEAAADsAGAAAAAAAAAAAAKSBdKQUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2Fj
dGlvbi1zY2hlZHVsZXItMy1zdGRlcnIudHh0VVQFAAOg9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgACDabSk5Maf6gBgAAz3UAAEMAGAAAAAAAAAAAAKSBlKsUAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItNC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6D2
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAJNptKMWOsIxMHAADMfQAAOwAYAAAAAAAAAAAA
pIGxshQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci00LXN0
ZGVyci50eHRVVAUAA6H2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAJNptKcMD0ThkHAADw
VQAAQwAYAAAAAAAAAAAApIE5uhQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9u
LXNjaGVkdWxlci01LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADofYBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAAk2m0oz+fYMnQYAAGFJAABDABgAAAAAAAAAAACkgc/BFABzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTYtcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAOh9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACTabSq52VJVuBQAAvDIAAEsAGAAAAAAA
AAAAAKSB6cgUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbnMtc3RvcC1vbi1u
YXZpZ2F0aW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADovYBWXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAAo2m0qrpdQMVAsAAMxgAQBDABgAAAAAAAAAAACkgdzOFABzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vdHJhbnNhY3Rpb25zLXN0b3Atb24tbmF2aWdhdGlvbi1zdGRlcnIudHh0VVQFAAOj
9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACjabSuzGSs/vBAAAMDUAAEsAGAAAAAAAAAAA
AKSBrdoUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4t
cmVvcGVuLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADo/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAAo2m0pps1xIhgUAAJE8AABDABgAAAAAAAAAAACkgSHgFABzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi1zdGRlcnIudHh0VVQFAAOj9gFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACjabShTqlvQoBQAA8ioAAD8AGAAAAAAAAAAAAKSB
JOYUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWV2ZW50LXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADpPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAo2m0rt7XLNXQUA
AOkrAAA3ABgAAAAAAAAAAACkgcXrFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNo
YW5nZS1ldmVudC1zdGRlcnIudHh0VVQFAAOk9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
CzabSpYwn+JbAQAACgUAADQAGAAAAAAAAAAAAKSBk/EUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi93b3JrZXJzLWRpc2FibGVkLXN0ZGVyci50eHRVVAUAA6X2AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAASNptK21SaXnQHAADGdAAANAAYAAAAAAAAAAAApIFc8xQAc3RvcmFnZS9pbmRleGVk
ZGIvbXV0YXRpbmctY3Vyc29yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADtPYBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIABM2m0pB/a05/gcAAB+CAAAsABgAAAAAAAAAAACkgT77FABzdG9yYWdl
L2luZGV4ZWRkYi9tdXRhdGluZy1jdXJzb3Itc3RkZXJyLnR4dFVUBQADtfYBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIABM2m0oooEwwYAQAAF8XAABEABgAAAAAAAAAAACkgaIDFQBzdG9yYWdl
L2luZGV4ZWRkYi9vYmplY3QtbG9va3Vwcy1pbi12ZXJzaW9uY2hhbmdlLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADtfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABM2m0pJHUezewQAAIcYAAA8
ABgAAAAAAAAAAACkgYAIFQBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3QtbG9va3Vwcy1pbi12ZXJz
aW9uY2hhbmdlLXN0ZGVyci50eHRVVAUAA7b2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAT
NptKb31eGVUDAACYDwAAQwAYAAAAAAAAAAAApIFxDRUAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0
U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADtvYBWXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABM2m0rpKJ41xQMAAHgRAAA7ABgAAAAAAAAAAACkgUMRFQBz
dG9yYWdlL2luZGV4ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMtc3RkZXJyLnR4
dFVUBQADtvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABQ2m0rP/8CONQgAAFJ6AAA+ABgA
AAAAAAAAAACkgX0VFQBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADt/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABQ2
m0rAbH3ITAgAAIN7AAA2ABgAAAAAAAAAAACkgSoeFQBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1hdXRvaW5jcmVtZW50LXN0ZGVyci50eHRVVAUAA7f2AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAUNptKjEncN/UJAADylgAANwAYAAAAAAAAAAAApIHmJhUAc3RvcmFnZS9pbmRleGVk
ZGIvb2JqZWN0c3RvcmUtYmFzaWNzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADuPYBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIABU2m0ogBboG1woAAPGcAAAvABgAAAAAAAAAAACkgUwxFQBzdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mtc3RkZXJyLnR4dFVUBQADuvYBWXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABU2m0pCYjC7YwsAAPWcAAA3ABgAAAAAAAAAAACkgYw8FQBz
dG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mtd29ya2Vycy1zdGRlcnIudHh0VVQF
AAO59gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAFTabSnExrEOCBwAAij4AADYAGAAAAAAA
AAAAAKSBYEgVAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNsZWFyLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADuvYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABY2m0rPsxU+0wcAAMdA
AAAuABgAAAAAAAAAAACkgVJQFQBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci1z
dGRlcnIudHh0VVQFAAO79gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAFjabSpVZuDb2CgAA
+rMBADYAGAAAAAAAAAAAAKSBjVgVAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNvdW50
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADvPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABc2
m0qJg5TgaQ4AAGwSAwAuABgAAAAAAAAAAACkgfNjFQBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1jb3VudC1zdGRlcnIudHh0VVQFAAO99gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
GjabSmitg5ZDEQAAlEEHADcAGAAAAAAAAAAAAKSBxHIVAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWN1cnNvci1wcml2YXRlLXN0ZGVyci50eHRVVAUAA8T2AVl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAgNptK0XaiUzMWAAAf8wgALwAYAAAAAAAAAAAApIF4hBUAc3RvcmFnZS9pbmRl
eGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLXN0ZGVyci50eHRVVAUAA8z2AVl1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAgNptKRBLcsZUHAAD4TAAAQgAYAAAAAAAAAAAApIEUmxUAc3RvcmFnZS9p
bmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUtcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAPM9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAITabSre4CEnxBwAAaVAAADoAGAAA
AAAAAAAAAKSBJaMVAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0
b3JlLXN0ZGVyci50eHRVVAUAA832AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAhNptK0GzF
7IwIAAC9CQEAMAAYAAAAAAAAAAAApIGKqxUAc3RvcmFnZS9pbmRleGVkZGIvb2RkLXN0cmluZ3Mt
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPN9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIjab
SptI3GBJBAAA3jMAADYAGAAAAAAAAAAAAKSBgLQVAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tYmFk
LXZlcnNpb25zLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADz/YBWXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIACI2m0oPWoGh6gMAAIUiAAAuABgAAAAAAAAAAACkgTm5FQBzdG9yYWdlL2luZGV4ZWRk
Yi9vcGVuLWJhZC12ZXJzaW9ucy1zdGRlcnIudHh0VVQFAAPQ9gFZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAIjabSmg95rTSBAAAgSMAADAAGAAAAAAAAAAAAKSBi70VAHN0b3JhZ2UvaW5kZXhl
ZGRiL29wZW4tY3Vyc29yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD0PYBWXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACI2m0qgjQd9ngUAAH4oAAAoABgAAAAAAAAAAACkgcfCFQBzdG9yYWdlL2lu
ZGV4ZWRkYi9vcGVuLWN1cnNvci1zdGRlcnIudHh0VVQFAAPQ9gFZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAIzabSh/Fk2QgBgAAWDoAADwAGAAAAAAAAAAAAKSBx8gVAHN0b3JhZ2UvaW5kZXhl
ZGRiL29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD0fYBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACM2m0q76qGLQwYAAAVBAAA0ABgAAAAAAAAAAACkgV3P
FQBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi1zdGRlcnIudHh0VVQF
AAPR9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIzabSrC7dgcDBQAA6jgAADIAGAAAAAAA
AAAAAKSBDtYVAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tb3JkZXJpbmctcHJpdmF0ZS1zdGRlcnIu
dHh0VVQFAAPR9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIzabSpeI4BohBQAAHToAACoA
GAAAAAAAAAAAAKSBfdsVAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tb3JkZXJpbmctc3RkZXJyLnR4
dFVUBQAD0vYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACM2m0pq4Cls3QMAABwiAAAvABgA
AAAAAAAAAACkgQLhFQBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLXR3aWNlLXdvcmtlcnMtc3RkZXJy
LnR4dFVUBQAD0vYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACQ2m0pl1pbBoQgAAF2cAAAz
ABgAAAAAAAAAAACkgUjlFQBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuY3Vyc29yLWtleS1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA9P2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkNptKhMei4BMJ
AAASvwAAKwAYAAAAAAAAAAAApIFW7hUAc3RvcmFnZS9pbmRleGVkZGIvb3BlbmN1cnNvci1rZXkt
c3RkZXJyLnR4dFVUBQAD0/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACU2m0pwf8OWvwoA
AHEeAQA3ABgAAAAAAAAAAACkgc73FQBzdG9yYWdlL2luZGV4ZWRkYi9vcHRpb25hbC1hcmd1bWVu
dHMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPV9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
JTabSidDPmYiDAAAnGkBAC8AGAAAAAAAAAAAAKSB/gIWAHN0b3JhZ2UvaW5kZXhlZGRiL29wdGlv
bmFsLWFyZ3VtZW50cy1zdGRlcnIudHh0VVQFAAPW9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAJjabSk2NJWbOBgAAoj4AADUAGAAAAAAAAAAAAKSBiQ8WAHN0b3JhZ2UvaW5kZXhlZGRiL3Bl
bmRpbmctYWN0aXZpdHktcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPY9gFZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAKDabSnEYAqBjBwAAYEEAAC0AGAAAAAAAAAAAAKSBxhYWAHN0b3JhZ2UvaW5k
ZXhlZGRiL3BlbmRpbmctYWN0aXZpdHktc3RkZXJyLnR4dFVUBQAD2/YBWXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACc2m0qRenktwgcAAHxFAAA1ABgAAAAAAAAAAACkgZAeFgBzdG9yYWdlL2lu
ZGV4ZWRkYi9wZW5kaW5nLWFjdGl2aXR5LXdvcmtlcnMtc3RkZXJyLnR4dFVUBQAD2vYBWXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIACg2m0r5bz87wQQAAAUiAABDABgAAAAAAAAAAACkgcEmFgBz
dG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hhbmdlLW9uLWV4aXQtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAPc9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKDabSlkF2aiuBAAA
ChwAADsAGAAAAAAAAAAAAKSB/ysWAHN0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctdmVyc2lvbi1j
aGFuZ2Utb24tZXhpdC1zdGRlcnIudHh0VVQFAAPc9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAKTabSlHTxTBHBAAA9BsAAEEAGAAAAAAAAAAAAKSBIjEWAHN0b3JhZ2UvaW5kZXhlZGRiL3Bl
bmRpbmctdmVyc2lvbi1jaGFuZ2Utc3R1Y2stcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPd9gFZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKTabSsvpt4x+BAAAYiAAADkAGAAAAAAAAAAAAKSB5DUW
AHN0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctdmVyc2lvbi1jaGFuZ2Utc3R1Y2stc3RkZXJyLnR4
dFVUBQAD3vYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACk2m0oBQEImswQAAEkiAABWABgA
AAAAAAAAAACkgdU6FgBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hhbmdlLXN0
dWNrLXdvcmtzLXdpdGgtdGVybWluYXRlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD3fYBWXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIACk2m0qB1g0D8AQAALokAABOABgAAAAAAAAAAACkgRhAFgBz
dG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hhbmdlLXN0dWNrLXdvcmtzLXdpdGgt
dGVybWluYXRlLXN0ZGVyci50eHRVVAUAA972AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAq
NptKPGHe6WEGAACfZwAAMAAYAAAAAAAAAAAApIGQRRYAc3RvcmFnZS9pbmRleGVkZGIvcGVyc2lz
dGVuY2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPf9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAKjabSk0oM6hlBgAAVWcAACgAGAAAAAAAAAAAAKSBW0wWAHN0b3JhZ2UvaW5kZXhlZGRiL3Bl
cnNpc3RlbmNlLXN0ZGVyci50eHRVVAUAA9/2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAq
NptKs2+2JGwIAAAidgAAOwAYAAAAAAAAAAAApIEiUxYAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0
Y2gtYnVnZml4LTEwODA3MS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+D2AVl1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAqNptKbY5D8B8JAABdgwAAMwAYAAAAAAAAAAAApIEDXBYAc3RvcmFnZS9p
bmRleGVkZGIvcHJlZmV0Y2gtYnVnZml4LTEwODA3MS1zdGRlcnIudHh0VVQFAAPg9gFZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgALDabSkwDQN4fHgAA8EMIADoAGAAAAAAAAAAAAKSBj2UWAHN0
b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLWludmFsaWRhdGlvbi1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA+P2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtNptKt5Nq5h0lAAA2oAkAMgAYAAAA
AAAAAAAApIEihBYAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtaW52YWxpZGF0aW9uLXN0ZGVy
ci50eHRVVAUAA+b2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtNptKOHmzIowHAAAHZQAA
MgAYAAAAAAAAAAAApIGrqRYAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtcmFjZS1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA+b2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAuNptKzXUwKsYH
AADYawAAKgAYAAAAAAAAAAAApIGjsRYAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtcmFjZS1z
dGRlcnIudHh0VVQFAAPn9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALjabSjczwP84BgAA
qkMAAEYAGAAAAAAAAAAAAKSBzbkWAHN0b3JhZ2UvaW5kZXhlZGRiL3ByaW1hcnkta2V5LXVuaXF1
ZS10by1vYmplY3RzdG9yZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+f2AVl1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAuNptKND6OIIQGAACkUAAAPgAYAAAAAAAAAAAApIGFwBYAc3RvcmFnZS9p
bmRleGVkZGIvcHJpbWFyeS1rZXktdW5pcXVlLXRvLW9iamVjdHN0b3JlLXN0ZGVyci50eHRVVAUA
A+f2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAuNptKua8k5GgFAAARJAAANAAYAAAAAAAA
AAAApIGBxxYAc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQAD5/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC42m0o/yiMEJwYAAFQmAAAs
ABgAAAAAAAAAAACkgVfNFgBzdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMtc3RkZXJy
LnR4dFVUBQAD6PYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC42m0opLixC0AUAADAjAAAt
ABgAAAAAAAAAAACkgeTTFgBzdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAA+j2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAuNptKQN7C+0kDAACNDwAA
OAAYAAAAAAAAAAAApIEb2hYAc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJvcGVydGllcy1w
cml2YXRlLXN0ZGVyci50eHRVVAUAA+j2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAuNptK
KmEhYMUDAAB4EQAAMAAYAAAAAAAAAAAApIHW3RYAc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHkt
cHJvcGVydGllcy1zdGRlcnIudHh0VVQFAAPo9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
LzabSpPlEGxcBgAAlCUAACUAGAAAAAAAAAAAAKSBBeIWAHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRv
bmx5LXN0ZGVyci50eHRVVAUAA+n2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAvNptK00Yk
d7kGAAAZLwAAOwAYAAAAAAAAAAAApIHA6BYAc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1jb250
aW51ZS1hYm9ydC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+n2AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAvNptKNAGIxNYGAACfLgAAMwAYAAAAAAAAAAAApIHu7xYAc3RvcmFnZS9pbmRleGVk
ZGIvcmVxdWVzdC1jb250aW51ZS1hYm9ydC1zdGRlcnIudHh0VVQFAAPp9gFZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgALzabSiI5ws9bBgAACUQAAD4AGAAAAAAAAAAAAKSBMfcWAHN0b3JhZ2Uv
aW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24tcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAPq9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALzabShRfx3doBgAAo0MAADYAGAAAAAAA
AAAAAKSBBP4WAHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24tc3Rk
ZXJyLnR4dFVUBQAD6vYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC82m0pvbHAtPwYAAOcs
AAA5ABgAAAAAAAAAAACkgdwEFwBzdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LXJlc3VsdC1jYWNo
ZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+r2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAw
NptKEXlXa6gGAAAVLgAAMQAYAAAAAAAAAAAApIGOCxcAc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVz
dC1yZXN1bHQtY2FjaGUtc3RkZXJyLnR4dFVUBQAD6/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIADA2m0pqZ1moxgQAAN8hAAA4ABgAAAAAAAAAAACkgaESFwBzdG9yYWdlL2luZGV4ZWRkYi9z
ZXRfdmVyc2lvbl9ibG9ja2VkLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD6/YBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIADA2m0rTP7q6SQUAAJMkAAAwABgAAAAAAAAAAACkgdkXFwBzdG9yYWdl
L2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9ibG9ja2VkLXN0ZGVyci50eHRVVAUAA+v2AVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAwNptKtxA+GK8EAADbKQAATgAYAAAAAAAAAAAApIGMHRcAc3Rv
cmFnZS9pbmRleGVkZGIvc2V0dmVyc2lvbi1ibG9ja2VkLWJ5LXZlcnNpb25jaGFuZ2UtY2xvc2Ut
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPr9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMDab
SvU2C+2JBAAAySoAAEYAGAAAAAAAAAAAAKSBwyIXAHN0b3JhZ2UvaW5kZXhlZGRiL3NldHZlcnNp
b24tYmxvY2tlZC1ieS12ZXJzaW9uY2hhbmdlLWNsb3NlLXN0ZGVyci50eHRVVAUAA+v2AVl1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAwNptKUlPhtKgEAADFJwAAOwAYAAAAAAAAAAAApIHMJxcA
c3RvcmFnZS9pbmRleGVkZGIvc2V0dmVyc2lvbi1ub3QtYmxvY2tlZC1wcml2YXRlLXN0ZGVyci50
eHRVVAUAA+z2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAwNptK1eMQI9IEAAC/JwAAMwAY
AAAAAAAAAAAApIHpLBcAc3RvcmFnZS9pbmRleGVkZGIvc2V0dmVyc2lvbi1ub3QtYmxvY2tlZC1z
dGRlcnIudHh0VVQFAAPs9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMTabSvYgrCapEAAA
Xs0EADUAGAAAAAAAAAAAAKSBKDIXAHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUt
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPu9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMjab
Sm4paYtoEAAA4NkEAC0AGAAAAAAAAAAAAKSBQEMXAHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVy
ZWQtY2xvbmUtc3RkZXJyLnR4dFVUBQAD8PYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADM2
m0r8Cnl/IAYAAEAoAAAuABgAAAAAAAAAAACkgQ9UFwBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1hYm9ydC1zdGRlcnIudHh0VVQFAAPx9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
MzabSjHuhgaGDAAAtPMAADwAGAAAAAAAAAAAAKSBl1oXAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWFjdGl2ZS1mbGFnLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD8fYBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIADM2m0ofCyNf0g4AAOAcAQA0ABgAAAAAAAAAAACkgZNnFwBzdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hY3RpdmUtZmxhZy1zdGRlcnIudHh0VVQFAAPy9gFZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMzabSinB+r/yBQAALz4AADwAGAAAAAAAAAAAAKSB03YX
AHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQAD8vYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADQ2m0rSOr2BAAYAAPs9AAA0
ABgAAAAAAAAAAACkgTt9FwBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hZnRlci1jbG9z
ZS1zdGRlcnIudHh0VVQFAAPz9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANDabStBbAItb
BwAA/3QAAEYAGAAAAAAAAAAAAKSBqYMXAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFu
ZC1vYmplY3RzdG9yZS1jYWxscy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA/P2AVl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAA0NptKetL2WIoHAAD0gAAAPgAYAAAAAAAAAAAApIGEixcAc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLXN0ZGVyci50eHRV
VAUAA/P2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA0NptKuP0BscoIAABerQAANwAYAAAA
AAAAAAAApIGGkxcAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQAD9PYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADU2m0rBBwDEXwkA
AEO0AAAvABgAAAAAAAAAAACkgcGcFwBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNp
Y3Mtc3RkZXJyLnR4dFVUBQAD9fYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADU2m0pI52+3
NgUAAI8qAABXABgAAAAAAAAAAACkgYmmFwBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1j
b21wbGV0ZS13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA/X2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA1NptKo+xSIsoFAABZKQAATwAYAAAA
AAAAAAAApIFQrBcAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1q
cy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUtc3RkZXJyLnR4dFVUBQAD9fYBWXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIADU2m0rScVUXiQUAAMopAABLABgAAAAAAAAAAACkgaOyFwBzdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJlY3Vyc2lvbi1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA/X2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA1NptKsERSVcwFAAAA
KgAAQwAYAAAAAAAAAAAApIGxuBcAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxl
dGUtd2l0aC1qcy1yZWN1cnNpb24tc3RkZXJyLnR4dFVUBQAD9fYBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIADU2m0pRxoGVuAYAAIBWAABBABgAAAAAAAAAAACkgfq+FwBzdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
9vYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADU2m0qZsxy5SgYAAIBUAAA5ABgAAAAAAAAA
AACkgS3GFwBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLXN0
ZGVyci50eHRVVAUAA/b2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA1NptKdnwwAoIGAACo
UgAATgAYAAAAAAAAAAAApIHqzBcAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29vcmRp
bmF0aW9uLWFjcm9zcy1kYXRhYmFzZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP29gFZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgANjabSpifsmqMBgAAqFMAAEYAGAAAAAAAAAAAAKSB9NMXAHN0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvb3JkaW5hdGlvbi1hY3Jvc3MtZGF0YWJhc2Vz
LXN0ZGVyci50eHRVVAUAA/f2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2NptK408OvVAG
AADfOgAATQAYAAAAAAAAAAAApIEA2xcAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29v
cmRpbmF0aW9uLXdpdGhpbi1kYXRhYmFzZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA/f2AVl1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAA2NptKfzy3oRQBAAC1AwAAPwAYAAAAAAAAAAAApIHX4RcA
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtaW4tdGFza3MtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAP39gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANjabSktP2sksAQAANgQA
ADcAGAAAAAAAAAAAAKSBZOMXAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyYXNoLWlu
LXRhc2tzLXN0ZGVyci50eHRVVAUAA/f2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2NptK
02J/D4UEAADPGAAAPwAYAAAAAAAAAAAApIEB5RcAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tY3Jhc2gtb24tYWJvcnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP49gFZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgANjabSuSJxVutBAAA2RkAADcAGAAAAAAAAAAAAKSB/+kXAHN0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0LXN0ZGVyci50eHRVVAUAA/j2AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2NptKFiHuBtUHAABQZQAANgAYAAAAAAAAAAAApIEd
7xcAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXJyb3ItcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAP49gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANzabSiPZvfFuCAAAh2QAAC4AGAAA
AAAAAAAAAKSBYvcXAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWVycm9yLXN0ZGVyci50
eHRVVAUAA/n2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA3NptKM1oCezsGAACGNwAAQgAY
AAAAAAAAAAAApIE4ABgAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFn
YXRpb24tcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP59gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgANzabSpxE26dGBgAA5zYAADoAGAAAAAAAAAAAAKSB7wYYAHN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLXN0ZGVyci50eHRVVAUAA/n2AVl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAA3NptKFz0hwqMFAABNMgAAOQAYAAAAAAAAAAAApIGpDRgAc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3JkZXJpbmctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP5
9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANzabSuqx2ovYBQAAEzIAADEAGAAAAAAAAAAA
AKSBvxMYAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLW9yZGVyaW5nLXN0ZGVyci50eHRV
VAUAA/n2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA3NptKPc6DtVMGAAAPOAAAPAAYAAAA
AAAAAAAApIECGhgAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3ZlcmxhcHBpbmctcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAP69gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANzabSh6D
BteiBgAA5lQAADQAGAAAAAAAAAAAAKSByyAYAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LW92ZXJsYXBwaW5nLXN0ZGVyci50eHRVVAUAA/r2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAA3NptKR1Wd9j0GAAC+NQAAOgAYAAAAAAAAAAAApIHbJxgAc3RvcmFnZS9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tcmVhZC1vbmx5LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD+vYBWXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIADc2m0rfCU9b0gYAAJQ+AAAyABgAAAAAAAAAAACkgYwuGABzdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHktc3RkZXJyLnR4dFVUBQAD+vYBWXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIADg2m0pIrouyOAYAAJVKAABEABgAAAAAAAAAAACkgco1GABz
dG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkd3JpdGUtZXhjbHVzaXZlLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQAD+/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADg2m0q7fN1raQYA
AIJJAAA8ABgAAAAAAAAAAACkgYA8GABzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFk
d3JpdGUtZXhjbHVzaXZlLXN0ZGVyci50eHRVVAUAA/v2AVl1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAA4NptKuqlB1bkGAACeNAAAOQAYAAAAAAAAAAAApIFfQxgAc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tcm9sbGJhY2stcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP79gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAODabSm+TflorBwAA4TYAADEAGAAAAAAAAAAAAKSBi0oYAHN0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJvbGxiYWNrLXN0ZGVyci50eHRVVAUAA/v2AVl1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAA4NptKftM5qTMGAAD6SwAAQQAYAAAAAAAAAAAApIEhUhgA
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc2NvcGUtc2VxdWVuY2luZy1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA/z2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA4NptKQH23RR0GAADQ
RAAAOQAYAAAAAAAAAAAApIHPWBgAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc2NvcGUt
c2VxdWVuY2luZy1zdGRlcnIudHh0VVQFAAP89gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
ODabSpwe00IMAwAAMA4AAEQAGAAAAAAAAAAAAKSBX18YAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP89gFZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAODabSsBaR5+RAwAAtBAAADwAGAAAAAAAAAAAAKSB6WIY
AHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQtc3RkZXJy
LnR4dFVUBQAD/PYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADg2m0pF/ANwwQQAAOohAAA+
ABgAAAAAAAAAAACkgfBmGABzdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFu
Z2VzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD/PYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ADg2m0psY6iM5wQAALAiAAA2ABgAAAAAAAAAAACkgSlsGABzdG9yYWdlL2luZGV4ZWRkYi91bmJs
b2NrZWQtdmVyc2lvbi1jaGFuZ2VzLXN0ZGVyci50eHRVVAUAA/z2AVl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAA5NptK6bNobiMBAABYBAAALQAYAAAAAAAAAAAApIGAcRgAc3RvcmFnZS9pbmRl
eGVkZGIvdW5wcmVmaXgtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP99gFZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAOTabSiKzQtSjBAAAphkAADQAGAAAAAAAAAAAAKSBCnMYAHN0b3JhZ2UvaW5k
ZXhlZGRiL3ZhbHVlLXVuZGVmaW5lZC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA/32AVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAA5NptKY0SWzLcFAAC6HwAALAAYAAAAAAAAAAAApIEbeBgAc3Rv
cmFnZS9pbmRleGVkZGIvdmFsdWUtdW5kZWZpbmVkLXN0ZGVyci50eHRVVAUAA/32AVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAA5NptKfvNkgn4FAABMNQAANQAYAAAAAAAAAAAApIE4fhgAc3Rv
cmFnZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA/32
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA5NptK0hkVkU4GAAD+PAAALQAYAAAAAAAAAAAA
pIElhBgAc3RvcmFnZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBlcy1zdGRlcnIudHh0VVQFAAP+
9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOTabSjaTj4TqBQAAoS8AADkAGAAAAAAAAAAA
AKSB2ooYAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0LXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQAD/vYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADk2m0o92+XbsAUAAL8v
AAAxABgAAAAAAAAAAACkgTeRGABzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9y
dC1zdGRlcnIudHh0VVQFAAP+9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOTabSn3zd8f+
AgAAmBoAAD8AGAAAAAAAAAAAAKSBUpcYAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdl
LWV2ZW50LWJhc2ljLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD/vYBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIADk2m0paUxMR+gMAACYoAAA3ABgAAAAAAAAAAACkgcmaGABzdG9yYWdlL2luZGV4
ZWRkYi92ZXJzaW9uLWNoYW5nZS1ldmVudC1iYXNpYy1zdGRlcnIudHh0VVQFAAP+9gFZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAOjabSrGUxz3gBQAAdDMAADkAGAAAAAAAAAAAAKSBNJ8YAHN0
b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LXByaXZhdGUtc3RkZXJyLnR4dFVU
BQAD//YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADo2m0rVNEenQgUAAPUqAAAxABgAAAAA
AAAAAACkgYelGABzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1ldmVudC1zdGRlcnIu
dHh0VVQFAAP/9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOjabSpbncrV4BQAAK0EAAD0A
GAAAAAAAAAAAAKSBNKsYAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV4Y2x1c2l2
ZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA//2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA6
NptK0lyT2o4FAADSQwAANQAYAAAAAAAAAAAApIEjsRgAc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lv
bi1jaGFuZ2UtZXhjbHVzaXZlLXN0ZGVyci50eHRVVAUAA//2AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAA6NptKhPd1I8EDAAAeFQAASQAYAAAAAAAAAAAApIEgtxgAc3RvcmFnZS9pbmRleGVk
ZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9tb2JqZWN0LXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADAPcBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADs2m0qR4hKA/AMAAB8VAABBABgA
AAAAAAAAAACkgWS7GABzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uY2hhbmdlcmVxdWVzdC1hY3Rp
dmVkb21vYmplY3Qtc3RkZXJyLnR4dFVUBQADAfcBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ADs2m0oAkUFJfgQAAHkYAAAsABgAAAAAAAAAAACkgdu/GABzdG9yYWdlL2luZGV4ZWRkYi93YXNt
LWV4Y2VwdGlvbnMtc3RkZXJyLnR4dFVUBQADAfcBWXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ADIum0oAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQb/EGABzdG9yYWdlL3dlYnNxbC9VVAUAA+Do
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADdNZtKSxuBNacAAADSAAAALQAYAAAAAAABAAAA
pIEIxRgAc3RvcmFnZS93ZWJzcWwvYWx0ZXItdG8taW5mby10YWJsZS1zdGRlcnIudHh0VVQFAANS
9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3TWbSksbgTWnAAAA0gAAADUAGAAAAAAAAQAA
AKSBFsYYAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1zdGRlcnIu
dHh0VVQFAANS9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3TWbSksbgTWnAAAA0gAAAEYA
GAAAAAAAAQAAAKSBLMcYAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLW5vLWNyYXNoLW9u
LXByZWZsaWdodC1mYWlsdXJlLXN0ZGVyci50eHRVVAUAA1L2AVl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADgNZtKizZ/HbIAAABIAwAAKAAYAAAAAAABAAAApIFTyBgAc3RvcmFnZS93ZWJzcWwv
Y2hhbmdlLXZlcnNpb24tc3RkZXJyLnR4dFVUBQADU/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAOA1m0pLG4E1pwAAANIAAAAyABgAAAAAAAEAAACkgWfJGABzdG9yYWdlL3dlYnNxbC9jbG9z
ZS1kdXJpbmctc3RyZXNzLXRlc3Qtc3RkZXJyLnR4dFVUBQADVPYBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAOE1m0qviBzXrQAAAKQBAAA0ABgAAAAAAAEAAACkgXrKGABzdG9yYWdlL3dlYnNx
bC9kYXRhYmFzZS1sb2NrLWFmdGVyLXJlbG9hZC1zdGRlcnIudHh0VVQFAANV9gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA4TWbSksbgTWnAAAA0gAAACkAGAAAAAAAAQAAAKSBlcsYAHN0b3Jh
Z2Uvd2Vic3FsL2VtcHR5LXN0YXRlbWVudC1zdGRlcnIudHh0VVQFAANV9gFZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA4TWbSksbgTWnAAAA0gAAACoAGAAAAAAAAQAAAKSBn8wYAHN0b3JhZ2Uv
d2Vic3FsL2V4ZWN1dGUtc3FsLWFyZ3Mtc3RkZXJyLnR4dFVUBQADVfYBWXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOE1m0pLG4E1pwAAANIAAAAyABgAAAAAAAEAAACkgarNGABzdG9yYWdlL3dl
YnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQtc3RkZXJyLnR4dFVUBQADVvYBWXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAOE1m0pLG4E1pwAAANIAAAA/ABgAAAAAAAEAAACkgb3OGABzdG9y
YWdlL3dlYnNxbC9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN0ZGVyci50
eHRVVAUAA1b2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjNZtKSxuBNacAAADSAAAALgAY
AAAAAAABAAAApIHdzxgAc3RvcmFnZS93ZWJzcWwvaGFzaC1jaGFuZ2Utd2l0aC14aHItc3RkZXJy
LnR4dFVUBQADWfYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOM1m0qviBzXrQAAAKQBAAA/
ABgAAAAAAAEAAACkgezQGABzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS1kYXRhYmFzZXMtZ2FyYmFn
ZS1jb2xsZWN0aW9uLXN0ZGVyci50eHRVVAUAA1n2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADjNZtKaKQ3ObAAAAB2AgAARAAYAAAAAAABAAAApIES0hgAc3RvcmFnZS93ZWJzcWwvbXVsdGlw
bGUtdHJhbnNhY3Rpb25zLW9uLWRpZmZlcmVudC1oYW5kbGVzLXN0ZGVyci50eHRVVAUAA1n2AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjNZtKSxuBNacAAADSAAAALwAYAAAAAAABAAAApIFA
0xgAc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25zLXN0ZGVyci50eHRVVAUAA1r2
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjNZtKSxuBNacAAADSAAAAKAAYAAAAAAABAAAA
pIFQ1BgAc3RvcmFnZS93ZWJzcWwvbnVsbC1jYWxsYmFja3Mtc3RkZXJyLnR4dFVUBQADWvYBWXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOQ1m0qviBzXrQAAAKQBAABIABgAAAAAAAEAAACkgVnV
GABzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLWlzb2xhdGVk
LXdvcmxkLXN0ZGVyci50eHRVVAUAA1v2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADkNZtK
izZ/HbIAAABIAwAAOQAYAAAAAAABAAAApIGI1hgAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFz
ZS1jcmVhdGlvbi1jYWxsYmFjay1zdGRlcnIudHh0VVQFAANb9gFZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA5DWbSksbgTWnAAAA0gAAADUAGAAAAAAAAQAAAKSBrdcYAHN0b3JhZ2Uvd2Vic3Fs
L29wZW4tZGF0YWJhc2UtZW1wdHktdmVyc2lvbi1zdGRlcnIudHh0VVQFAANc9gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA5DWbSksbgTWnAAAA0gAAADQAGAAAAAAAAQAAAKSBw9gYAHN0b3Jh
Z2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtZXhwYW5kLXF1b3RhLXN0ZGVyci50eHRVVAUAA1z2AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADlNZtKCXDeEwoBAAC4AgAAOQAYAAAAAAABAAAApIHY
2RgAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1zdGRlcnIu
dHh0VVQFAANd9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5TWbSq+IHNetAAAApAEAAEUA
GAAAAAAAAQAAAKSBVdsYAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2Utd2hpbGUtdHJhbnNh
Y3Rpb24taW4tcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUBQADXfYBWXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOU1m0pLG4E1pwAAANIAAAA5ABgAAAAAAAEAAACkgYHcGABzdG9yYWdlL3dlYnNxbC9w
cml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLXN0ZGVyci50eHRVVAUAA172AVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADlNZtKaKQ3ObAAAAB2AgAARwAYAAAAAAABAAAApIGb3RgAc3Rv
cmFnZS93ZWJzcWwvcmVhZC1hbmQtd3JpdGUtdHJhbnNhY3Rpb25zLWRvbnQtcnVuLXRvZ2V0aGVy
LXN0ZGVyci50eHRVVAUAA172AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADmNZtKr4gc160A
AACkAQAAQAAYAAAAAAABAAAApIHM3hgAc3RvcmFnZS93ZWJzcWwvcmVhZC10cmFuc2FjdGlvbnMt
cnVubmluZy1jb25jdXJyZW50bHktc3RkZXJyLnR4dFVUBQADX/YBWXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAOY1m0pLG4E1pwAAANIAAAAoABgAAAAAAAEAAACkgfPfGABzdG9yYWdlL3dlYnNx
bC9zcWwtZGF0YS10eXBlcy1zdGRlcnIudHh0VVQFAANf9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA5jWbSq+IHNetAAAApAEAAEEAGAAAAAAAAQAAAKSB/OAYAHN0b3JhZ2Uvd2Vic3FsL3N0
YXRlbWVudC1lcnJvci1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQFAANg9gFZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5jWbSksbgTWnAAAA0gAAADIAGAAAAAAAAQAAAKSB
JOIYAHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJvci1jYWxsYmFjay1zdGRlcnIudHh0VVQF
AANg9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5zWbSq+IHNetAAAApAEAAEMAGAAAAAAA
AQAAAKSBN+MYAHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1zdWNjZXNzLWNhbGxiYWNrLWlzb2xh
dGVkLXdvcmxkLXN0ZGVyci50eHRVVAUAA2H2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADn
NZtKSxuBNacAAADSAAAAKgAYAAAAAAABAAAApIFh5BgAc3RvcmFnZS93ZWJzcWwvc3VjY2Vzcy1j
YWxsYmFjay1zdGRlcnIudHh0VVQFAANi9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5zWb
SksbgTWnAAAA0gAAAEMAGAAAAAAAAQAAAKSBbOUYAHN0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3MtY2Fs
bGJhY2std2hlbi1wYWdlLWRlZmVycy1sb2FkaW5nLXN0ZGVyci50eHRVVAUAA2H2AVl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADoNZtKSxuBNacAAADSAAAAKQAYAAAAAAABAAAApIGQ5hgAc3Rv
cmFnZS93ZWJzcWwvdGVzdC1hdXRob3JpemVyLXN0ZGVyci50eHRVVAUAA2P2AVl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADoNZtKSxuBNacAAADSAAAAPgAYAAAAAAABAAAApIGa5xgAc3RvcmFn
ZS93ZWJzcWwvdHJhbnNhY3Rpb24tY2FsbGJhY2stZXhjZXB0aW9uLWNyYXNoLXN0ZGVyci50eHRV
VAUAA2P2AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADoNZtKr4gc160AAACkAQAAPQAYAAAA
AAABAAAApIG56BgAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tY2FsbGJhY2staXNvbGF0ZWQt
d29ybGQtc3RkZXJyLnR4dFVUBQADZPYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOk1m0qv
iBzXrQAAAKQBAABDABgAAAAAAAEAAACkgd3pGABzdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1l
cnJvci1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQFAANl9gFZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA6TWbSksbgTWnAAAA0gAAADQAGAAAAAAAAQAAAKSBB+sYAHN0b3Jh
Z2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWVycm9yLWNhbGxiYWNrLXN0ZGVyci50eHRVVAUAA2X2AVl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADpNZtKSxuBNacAAADSAAAALwAYAAAAAAABAAAApIEc
7BgAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tcHJvdG90eXBlLXN0ZGVyci50eHRVVAUAA2b2
AVl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADqNZtKr4gc160AAACkAQAARQAYAAAAAAABAAAA
pIEs7RgAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tc3VjY2Vzcy1jYWxsYmFjay1pc29sYXRl
ZC13b3JsZC1zdGRlcnIudHh0VVQFAANn9gFZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAby6b
SgAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1BWO4YAHdlYnJ0Yy9VVAUAA1LpAVl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAjNptKyvcrPuUBAACgBgAAJgAYAAAAAAABAAAApIGZ7hgAd2VicnRj
L2NhcHR1cmVDYW52YXMtd2VicnRjLXN0ZGVyci50eHRVVAUAA9L2AVl1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAABwLptKAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UHe8BgAd2VicnRjL2RhdGFj
aGFubmVsL1VUBQADU+kBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACM2m0orcQYq1gAAAP4C
AAAjABgAAAAAAAEAAACkgSvxGAB3ZWJydGMvZGF0YWNoYW5uZWwvYmFzaWMtc3RkZXJyLnR4dFVU
BQAD0fYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACM2m0rD/Q0nQgAAAJIAAAA4ABgAAAAA
AAEAAACkgV7yGAB3ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQt
c3RkZXJyLnR4dFVUBQAD0vYBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACQ2m0qFYuy9PgAA
AEkAAAAsABgAAAAAAAEAAACkgRLzGAB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtZ2Mt
c3RkZXJyLnR4dFVUBQAD0/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACQ2m0qFYuy9PgAA
AEkAAAAvABgAAAAAAAEAAACkgbbzGAB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtc3Rh
dHMtc3RkZXJyLnR4dFVUBQAD0/YBWXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEg2m0qGv/Bl
7h8DALBXTwAZABgAAAAAAAEAAACkgV30GAB3cHR3a19wcm9jZXNzX2xvZy5vdXQudHh0VVQFAAMY
9wFZdXgLAAEE9QEAAAQUAAAAUEsFBgAAAABpAmkCtyoBAJ4UHAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308438</attachid>
            <date>2017-04-27 13:41:37 -0700</date>
            <delta_ts>2017-04-28 13:30:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>484349</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYTg0YTA1ZDQwZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtMCwwICsxLDIzIEBACitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQorbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtXVEZfRElSfQor
KQorCitzZXQoV1BFX0lOU1RBTExFRF9KQVZBU0NSSVBUQ09SRV9IRUFERVJTCisgICAgQVBJL0pT
QmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisgICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAg
ICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5cGVkQXJyYXkuaAorICAgIEFQSS9KU1Zh
bHVlUmVmLmgKKyAgICBBUEkvSmF2YVNjcmlwdC5oCisgICAgQVBJL1dlYktpdEF2YWlsYWJpbGl0
eS5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hF
QURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUt
JHtXUEVfQVBJX1ZFUlNJT059L1dQRS9KYXZhU2NyaXB0Q29yZSIKKyAgICBDT01QT05FTlQgIkRl
dmVsb3BtZW50IgorKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BF
LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjMxODNhMmIw
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3QoQVBQRU5EIEpTQ19MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2lu
Y2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3Jt
LmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAg
ICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVmIHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1h
cF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5cGVkZWYgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlwZTsKIAotI2VsaWYgZGVmaW5lZChVU0Vf
T1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkgfHwgZGVmaW5lZChVU0VfV1BFKQogCiB0
eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlUeXBlOwogdHlwZWRlZiBpbnRwdHJfdCBF
R0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMDJlY2Y0MTcxNDguLjRlNjEwMTI2
YjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ2MSw2ICs0NjEsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTUw
NSw3ICs1MDcsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYyMSw3
ICs2MjMsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzcxLDcgKzc3Myw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTU4LDcgKzk2MCw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAyNSw3ICsxMDI3LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDc1LDExICsxMDc3LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTQyLDcgKzExNDQsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjgzMWVlZTAzYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dMaWJVdGlsaXRpZXMuY3BwCisgICAgZ2xpYi9HUmVm
UHRyLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQzYTMwMGVlODllLi4zNTJjMTkwOWYzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTgsMTEgKzM5OTgsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NzVjMTg5ODRhZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UK
QEAgLTAsMCArMSwzIEBACitsaXN0KEFQUEVORCBQQUxfU09VUkNFUworICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvRGlnZXN0R0NyeXB0LmNwcAorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2U4YmFlOTgxMWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDI4
NiBAQAoraW5jbHVkZShwbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UpCitpbmNsdWRlKHBsYXRmb3Jt
L0ltYWdlRGVjb2RlcnMuY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL0xpbnV4LmNtYWtlKQoraW5j
bHVkZShwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENP
UkVfRElSfSIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNw
ZWN0b3IiCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9CisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0FQSSIK
KyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2J5dGVjb2RlIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvbXBp
bGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgorICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9taml0
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2RlYnVnZ2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50ZXJwcmV0ZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9qaXQiCisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9sbGludCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BhcnNlciIKKyAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L3Byb2ZpbGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
cnVudGltZSIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3lhcnIiCisgICAgIiR7VEhJUkRQ
QVJUWV9ESVJ9L0FOR0xFLyIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvaW5jbHVkZS9L
SFIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2NhaXJvIgorICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9n
bHgiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgorICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIiCisgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6LyIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmciCisgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZCIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZSIKKyAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS90ZXh0L2ljdSIKKyAgICAke1dURl9ESVJ9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUworICAgIGFjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCisgICAgYWNj
ZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKKworICAgIGxvYWRlci9z
b3VwL0NhY2hlZFJhd1Jlc291cmNlU291cC5jcHAKKyAgICBsb2FkZXIvc291cC9TdWJyZXNvdXJj
ZUxvYWRlclNvdXAuY3BwCisKKyAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNr
eU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAorICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorCisgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRp
bmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3Bw
CisgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdTdGF0ZU5v
ZGVDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorCisgICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAorICAg
IHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCisgICAgcGxhdGZvcm0vVGhlbWUuY3BwCisKKyAgICBwbGF0Zm9ybS9hdWRpby9nbGli
L0F1ZGlvQnVzR0xpYi5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1EaXNwbGF5LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0
LmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENh
aXJvSW1wbC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9GbG9hdFJlY3RDYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFkaWVudENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Q
YXR0ZXJuQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250
ZXh0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1QYXRoQ2Fp
cm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8uY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25NYXRyaXhDYWlyby5jcHAKKwor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9HbHlwaFBhZ2VUcmVlTm9kZUZy
ZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3Ry
ZWFtZXJDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhU
ZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0hhcmZCdXp6RmFjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNo
YXBlci5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0xDb21tb24uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xFUy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9y
YXJ5T3BlbkdMU2V0dGluZy5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlVmVydGljYWxEYXRhLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRm
b3JtRGlzcGxheVdQRS5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0lt
YWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
ZXJ0aWZpY2F0ZUluZm8uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9DcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0dSZWZQdHJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVNlcnZl
clNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNw
cAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25l
dHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsv
c291cC9TeW5jaHJvbm91c0xvYWRlckNsaWVudFNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKKworICAgIHBsYXRmb3JtL3NvdXAv
U2hhcmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCisKKyAg
ICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcAorICAgIHBsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAorICAgIHBsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCisKKyAgICAjIEZJWE1FOiBTcGxpdCBi
dWlsZCB0YXJnZXJzIGJlbG93IGludG8gYSBXZWJDb3JlUGxhdGZvcm0gbGlicmFyeQorICAgIGVk
aXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKKworICAgIHBhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5j
cHAKKworICAgIHBsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9n
bGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xp
Yi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL0tleWVkRW5jb2RlckdsaWIuY3BwCisgICAgcGxhdGZv
cm0vZ2xpYi9NYWluVGhyZWFkU2hhcmVkVGltZXJHTGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIv
U1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL1NoYXJlZEJ1ZmZlckds
aWIuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWly
by5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JbWFnZVdQRS5jcHAKKworICAgIHBsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCisKKyAg
ICBwbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRT
dHJpbmdzV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcAorICAgIHBs
YXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3Bl
L1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3Jl
ZW5XUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcAorICAgIHBsYXRm
b3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwCisgICAgcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9XaWRn
ZXRXUEUuY3BwCisKKyAgICBwbGF0Zm9ybS94ZGcvTUlNRVR5cGVSZWdpc3RyeVhkZy5jcHAKKykK
KworbGlzdChBUFBFTkQgV2ViQ29yZV9VU0VSX0FHRU5UX1NUWUxFX1NIRUVUUworICAgICR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5jc3MKKykK
Kworc2V0KFdlYkNvcmVfVVNFUl9BR0VOVF9TQ1JJUFRTCisgICAgJHtXRUJDT1JFX0RJUn0vRW5n
bGlzaC5scHJvai9tZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5ncy5qcworICAgICR7V0VCQ09S
RV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qcworKQorCitz
ZXQoV2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFNfREVQRU5ERU5DSUVTICR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHApCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
TElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtFR0xfTElCUkFSSUVTfQor
ICAgICR7Rk9OVENPTkZJR19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRTJfTElCUkFSSUVTfQor
ICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorICAgICR7R0xJQl9HTU9EVUxFX0xJQlJBUklFU30K
KyAgICAke0dMSUJfR09CSkVDVF9MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAg
ICAke0dOVVRMU19MSUJSQVJJRVN9CisgICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9CisgICAgJHtJ
Q1VfTElCUkFSSUVTfQorICAgICR7TElCR0NSWVBUX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBf
TElCUkFSSUVTfQorICAgICR7TElCWE1MMl9MSUJSQVJJRVN9CisgICAgJHtMSUJYU0xUX0xJQlJB
UklFU30KKyAgICAke1NRTElURV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTElCUkFSSUVTfQorKQor
CitsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0NBSVJPX0lO
Q0xVREVfRElSU30KKyAgICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtGT05UQ09ORklHX0lO
Q0xVREVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lO
Q0xVREVfRElSU30KKyAgICAke0dOVVRMU19JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9J
TkNMVURFX0RJUlN9CisgICAgJHtJQ1VfSU5DTFVERV9ESVJTfQorICAgICR7TElCR0NSWVBUX0lO
Q0xVREVfRElSU30KKyAgICAke0xJQlNPVVBfSU5DTFVERV9ESVJTfQorICAgICR7TElCWE1MMl9J
TkNMVURFX0RJUn0KKyAgICAke0xJQlhTTFRfSU5DTFVERV9ESVJ9CisgICAgJHtTUUxJVEVfSU5D
TFVERV9ESVJ9CisgICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCitpZiAoRU5BQkxFX1NVQlRM
RV9DUllQVE8pCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIGNyeXB0
by9DcnlwdG9BbGdvcml0aG0uY3BwCisgICAgICAgIGNyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5jcHAKKyAgICAgICAgY3J5cHRvL0NyeXB0b0tleS5jcHAKKyAgICAgICAgY3J5cHRvL1N1
YnRsZUNyeXB0by5jcHAKKyAgICAgICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAKKwor
ICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmNwcAorICAgICAg
ICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmNwcAorICAgICAgICBj
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmNwcAorICAgICAgICBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCisgICAgICAgIGNyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1IS0RGLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1QQktERjIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QUVTX1BLQ1MxX3YxXzUuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMS5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMjI0LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyNTYuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4
NC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNw
cAorCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5j
cHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCR0NyeXB0LmNw
cAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DVFJHQ3J5cHQuY3Bw
CisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTUdDcnlwdC5jcHAK
KyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfS1dHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtRUNESEdDcnlwdC5jcHAKKyAgICAg
ICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1FQ0RTQUdDcnlwdC5jcHAKKyAgICAgICAg
Y3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1IS0RGR0NyeXB0LmNwcAorICAgICAgICBjcnlw
dG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUhNQUNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9n
Y3J5cHQvQ3J5cHRvQWxnb3JpdGhtUEJLREYyR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisgICAgICAgIGNy
eXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvS2V5RUNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0
by9nY3J5cHQvQ3J5cHRvS2V5UlNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L1Nl
cmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcAorCisgICAgICAgIGNyeXB0by9rZXlzL0Ny
eXB0b0tleUFFUy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YU9jdGV0U2Vx
dWVuY2UuY3BwCisgICAgICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKKyAgICAgICAgY3J5cHRv
L2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNB
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSYXcuY3BwCisgICAgICAgIGNyeXB0
by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3BwCisgICAgKQorZW5kaWYgKCkKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAppbmRleCBmMmQ2YjNkNDJjNC4uNjYwYjNjNzg1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC02Niw2ICs2Niw4IEBA
IHR5cGVkZWYgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXI7CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBfQXRrT2JqZWN0
IEF0a09iamVjdDsKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXI7CisjZWxpZiBQTEFURk9STShXUEUpCitjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPiB7
IH07CiAjZWxzZQogY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI7CiAjZW5kaWYKQEAg
LTExMTUsNiArMTExNyw4IEBAIHByb3RlY3RlZDoKICAgICBDT01QdHI8QWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBBdGtPYmpl
Y3QqIG1fd3JhcHBlcjsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTU0MTU5NGFkZWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hl
V1BFLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxp
YSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKworI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNh
dGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3Jt
SGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSosIE5vZGUqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0Fu
Y2hvcihjb25zdCBOb2RlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3NpYmlsaXR5T2JqZWN0
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlP
YmplY3RXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZTk0
YzU5OTRjYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
d3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gRGVmYXVsdEJlaGF2
aW9yOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VT
U0lCSUxJVFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbmZpZy5oCmluZGV4IGQ1ZDQzZmU0ZGY0Li4xODA5OTBlYmZmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgK
QEAgLTEwNCw3ICsxMDQsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykK
KyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgVVNFX05FV19USEVN
RSAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5RUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKaW5k
ZXggNDQzYTY4MjE1YWIuLjRjN2QwMjk4ZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlz
L0NyeXB0b0tleUVDLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NDRUNDcnlw
dG9yICpDQ0VDQ3J5cHRvclJlZjsKIHR5cGVkZWYgQ0NFQ0NyeXB0b3JSZWYgUGxhdGZvcm1FQ0tl
eTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogLy8gZ2NyeV9zZXhwKiBlcXVhdGVzIGdjcnlfc2V4cF90Lgogc3RydWN0IGdj
cnlfc2V4cDsKIHR5cGVkZWYgZ2NyeV9zZXhwKiBQbGF0Zm9ybUVDS2V5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaAppbmRleCAzMDViZDRjNDNhMC4uNDFiY2U4NTll
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oCkBAIC0zNiw3
ICszNiw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQ1JTQUNyeXB0b3IgKkNDUlNBQ3J5cHRvclJlZjsK
IHR5cGVkZWYgQ0NSU0FDcnlwdG9yUmVmIFBsYXRmb3JtUlNBS2V5OwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5
X3NleHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBn
Y3J5X3NleHAqIFBsYXRmb3JtUlNBS2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4
IDNjMTU3ZWY2ZDg4Li4wNWU5MWJmZjAxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApA
QCAtMTI0NiwxMyArMTI0NiwxMyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0
b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogICAgICAgICAgICAgaW1hZ2VFbGVtZW50ID0gaW1h
Z2VFbGVtZW50RnJvbUltYWdlRG9jdW1lbnQoZG9jdW1lbnQoKSk7CiAKICAgICAgICAgaWYgKGlt
YWdlRWxlbWVudCkgewotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAg
ICAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICppbWFnZUVsZW1lbnQsIGRvY3VtZW50KCkudXJsKCksIGRvY3VtZW50KCkudGl0
bGUoKSk7CiAjZWxzZQogICAgICAgICAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBh
c3RlKCktPndyaXRlSW1hZ2UoKmltYWdlRWxlbWVudCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1l
bnQoKS50aXRsZSgpKTsKICNlbmRpZgogICAgICAgICB9IGVsc2UgewotI2lmIFBMQVRGT1JNKENP
Q09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICAvLyBGSVhNRTogQ29udmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1hdGNoIE1hYyBh
bmQgZGVsZXRlIHRoaXMuCkBAIC0xMzc3LDcgKzEzNzcsNyBAQCB2b2lkIEVkaXRvcjo6Y29weUlt
YWdlKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICBpZiAodXJsLmlzRW1wdHkoKSkK
ICAgICAgICAgdXJsID0gcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwoKTsKIAotI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHdyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoKlBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLCAqZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0
RGlzcGxheVN0cmluZygpKTsKICNlbHNlCiAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCktPndyaXRlSW1hZ2UoKmVsZW1lbnQsIHVybCwgcmVzdWx0LmFsdERpc3BsYXlTdHJp
bmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAxNjUyYjZkYjM5My4uMzZiOTZiMmJj
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDY3LDcgKzQ2Nyw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoQXR0cmlidXRlZFN0
cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxC
bG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3cml0
ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB3cml0ZUltYWdlVG9QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmLCBFbGVtZW50JiBpbWFnZUVs
ZW1lbnQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgd3JpdGVT
ZWxlY3Rpb24oUGFzdGVib2FyZFdyaXRlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dw
ZS9FZGl0b3JXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5h
ZmZkMmRlMWU5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3Bl
L0VkaXRvcldQRS5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RWRpdG9yLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQu
aCIKKyNpbmNsdWRlICJtYXJrdXAuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21QYXN0ZWJvYXJk
RGF0YShQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiByYW5nZSwg
Ym9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCit7CisgICAgY2hvc2VQ
bGFpblRleHQgPSBmYWxzZTsKKworICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzID0gcGFzdGVib2Fy
ZC50eXBlcygpOworICAgIGlmICh0eXBlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKCJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCIp
ICYmIGZyYW1lLmRvY3VtZW50KCkpIHsKKyAgICAgICAgU3RyaW5nIG1hcmt1cCA9IHBhc3RlYm9h
cmQucmVhZFN0cmluZygidGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiKTsKKyAgICAgICAgaWYgKFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1
cCgqZnJhbWUuZG9jdW1lbnQoKSwgbWFya3VwLCBlbXB0eVN0cmluZygpLCBEaXNhbGxvd1Njcmlw
dGluZ0FuZFBsdWdpbkNvbnRlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVh
c2UoKTsKKyAgICB9CisKKyAgICBpZiAoIWFsbG93UGxhaW5UZXh0KQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5jb250YWlucygidGV4dC9wbGFpbjtjaGFyc2V0PXV0
Zi04IikpIHsKKyAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0cnVlOworICAgICAgICBpZiAoUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChy
YW5nZSwgcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIHJl
dHVybiBudWxscHRyOworfQorCit2b2lkIEVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZCkKK3sKKyAgICBQYXN0ZWJvYXJkV2ViQ29udGVudCBw
YXN0ZWJvYXJkQ29udGVudDsKKyAgICBwYXN0ZWJvYXJkQ29udGVudC50ZXh0ID0gc2VsZWN0ZWRU
ZXh0Rm9yRGF0YVRyYW5zZmVyKCk7CisgICAgcGFzdGVib2FyZENvbnRlbnQubWFya3VwID0gY3Jl
YXRlTWFya3VwKCpzZWxlY3RlZFJhbmdlKCksIG51bGxwdHIsIEFubm90YXRlRm9ySW50ZXJjaGFu
Z2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxzKTsKKyAgICBwYXN0ZWJvYXJkLndyaXRlKHBh
c3RlYm9hcmRDb250ZW50KTsKK30KKwordm9pZCBFZGl0b3I6OndyaXRlSW1hZ2VUb1Bhc3RlYm9h
cmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJv
YXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQsIE1haWxCbG9j
a3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKK3sKKyAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJl
dHVybjsKKworICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CisgICAgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tUGFzdGVib2FyZERhdGEoKnBhc3Rl
Ym9hcmQsIG1fZnJhbWUsICpyYW5nZSwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsK
KyAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdl
LCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCisgICAgICAgIHBhc3RlQXNGcmFnbWVudCgq
ZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hv
c2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjk1N2M4Nzg0
ZmMuLmVkZTk0MDE3Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0y
NjExLDcgKzI2MTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aXNJbnNpZGVTY3JvbGxiYXIoY29u
c3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
I2lmICFQTEFURk9STShHVEspCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkK
IAogYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50b0hvcml6b250
YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTE0ZTBmZTNiZjEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCkBAIC0w
LDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKwor
I2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2Fy
ZEV2ZW50JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KCkKK3sKKyAgICBp
ZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUoJm1fZnJhbWUpOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dp
ZGdldChSZW5kZXJXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRn
ZXQoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBXaWRnZXQmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZy
YW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKiwgSGl0VGVzdFJlc3VsdCopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVy
OjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmLCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK09wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gRXZlbnRIYW5kbGVy
OjphY2Nlc3NLZXlNb2RpZmllcnMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXk7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jpem9udGFsKGNvbnN0IEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oCmluZGV4IGNkY2YyNjVmMjYwLi41ZTkxMWQ3MDhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vy
c29yLmgKQEAgLTc0LDYgKzc0LDggQEAgdXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBSZWZQdHI8U2hh
cmVkQ3Vyc29yPjsKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gTlNDdXJzb3IgKjsKICNlbGlmIFBM
QVRGT1JNKEdUSykKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gR1JlZlB0cjxHZGtDdXJzb3I+Owor
I2VsaWYgUExBVEZPUk0oV1BFKQordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSB2b2lkKjsKICNlbmRp
ZgogCiBjbGFzcyBDdXJzb3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKaW5kZXggNGE5
ZjgyZDlkZTQuLjVkYzlhZTM4MDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EcmFnRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKQEAg
LTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2VsZWN0aW9uRGF0YTsK
IH0KIHR5cGVkZWYgV2ViQ29yZTo6U2VsZWN0aW9uRGF0YSogRHJhZ0RhdGFSZWY7Ci0jZWxpZiBQ
TEFURk9STShJT1MpCisjZWxpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKIHR5cGVk
ZWYgdm9pZCogRHJhZ0RhdGFSZWY7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuaAppbmRleCBlMzI1NWQxOWFkMi4uY2JlZjczOGY2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdJbWFnZS5oCkBAIC00MSw3ICs0MSw3IEBAIHR5cGVkZWYgc3RydWN0IENHSW1hZ2UgKkNH
SW1hZ2VSZWY7CiBPQkpDX0NMQVNTIE5TSW1hZ2U7CiAjZWxpZiBQTEFURk9STShXSU4pCiB0eXBl
ZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlICJSZWZQdHJDYWlyby5o
IgogI2VuZGlmCiAKQEAgLTY0LDcgKzY0LDcgQEAgdHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gRHJhZ0ltYWdlUmVmOwogdHlwZWRlZiBSZXRhaW5QdHI8TlNJbWFnZT4gRHJhZ0ltYWdlUmVm
OwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBIQklUTUFQIERyYWdJbWFnZVJlZjsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQog
dHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBEcmFnSW1hZ2VSZWY7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IDE5NWI2NzZiYzJiLi4xZDgwYjRj
MTgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtMTk4LDcgKzE5OCw3
IEBAIFdFQkNPUkVfRVhQT1JUIGJvb2wgZmlsZXNIYXZlU2FtZVZvbHVtZShjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKIFJldGFpblB0cjxDRlVSTFJlZj4gcGF0aEFzVVJMKGNvbnN0IFN0
cmluZyYpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYp
OwogQ1N0cmluZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKIENTdHJpbmcgc2hhcmVkUmVz
b3VyY2VzUGF0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRo
cmVhZFNoYXJlZFRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5jcHAKaW5kZXggNzc4Y2FjMmQ5OGIuLmRkYTY4MmViODQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAgTWFpblRocmVhZFNoYXJlZFRpbWVyJiBNYWluVGhyZWFkU2hhcmVkVGltZXI6
OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdU
SykKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogTWFpblRocmVhZFNoYXJl
ZFRpbWVyOjpNYWluVGhyZWFkU2hhcmVkVGltZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuaAppbmRleCA1OTBmNjg5NGFkMy4uNDkw
NzMwZjE0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFy
ZWRUaW1lci5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
I2VuZGlmCiAKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBNYWluVGhyZWFkU2hhcmVk
VGltZXIoKTsKIAogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2ZpcmVkRnVuY3Rpb247Ci0j
aWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAg
IFJ1bkxvb3A6OlRpbWVyPE1haW5UaHJlYWRTaGFyZWRUaW1lcj4gbV90aW1lcjsKICNlbmRpZgog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCA0MjllMWFmMTQwMC4uNmU2
ZjIxNjVmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTYyLDcgKzYy
LDcgQEAgZW51bSBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgeyBE
ZWZhdWx0U2VsZWN0ZWRUZXh0VHlwZSwgSW5jbHUKIC8vIEZvciB3cml0aW5nIHRvIHRoZSBwYXN0
ZWJvYXJkLiBHZW5lcmFsbHkgc29ydGVkIHdpdGggdGhlIHJpY2hlc3QgZm9ybWF0cyBvbiB0b3Au
CiAKIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7Ci0jaWYgIShQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdJTikpCisjaWYgIShQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwg
UExBVEZPUk0oV1BFKSkKICAgICBXRUJDT1JFX0VYUE9SVCBQYXN0ZWJvYXJkV2ViQ29udGVudCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYXN0ZWJvYXJkV2ViQ29udGVudCgpOwogICAgIGJvb2wg
Y2FuU21hcnRDb3B5T3JEZWxldGU7CkBAIC04MCw2ICs4MCwxMCBAQCBzdHJ1Y3QgUGFzdGVib2Fy
ZFdlYkNvbnRlbnQgewogICAgIFN0cmluZyB0ZXh0OwogICAgIFN0cmluZyBtYXJrdXA7CiAjZW5k
aWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgU3RyaW5nIHRleHQ7CisgICAgU3RyaW5nIG1hcmt1
cDsKKyNlbmRpZgogfTsKIAogc3RydWN0IFBhc3RlYm9hcmRVUkwgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCBkNzJmMTIwZmNmYy4uM2M2ZGE2
YzdiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5o
CkBAIC03MywxMCArNzMsMTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgbG9uZyBzZXRQYXRobmFt
ZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgbG9u
ZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICNlbmRpZgorCiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFNlbGVjdGlvbkRhdGEmKSA9IDA7CiAgICAgdmly
dHVhbCBSZWY8U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKKworI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVz
KSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBp
bmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJikgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIH5QYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKaW5kZXggODVhOGM5ZmMwNWMuLjIzZjZmMzBjNTJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtNDAs
NiArNDAsMTAgQEAgT0JKQ19DTEFTUyBOU1Bhc3RlYm9hcmQ7CiBPQkpDX0NMQVNTIFVJUGFzdGVi
b2FyZDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9wYXN0ZWJvYXJk
OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7CkBAIC01Myw3
ICs1Nyw3IEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKIGNsYXNzIFBsYXRmb3JtUGFz
dGVib2FyZCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUGxhdGZvcm1Q
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwotI2lmIFBMQVRGT1JNKElP
UykKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKICAgICBXRUJDT1JFX0VYUE9S
VCBQbGF0Zm9ybVBhc3RlYm9hcmQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5n
PiBmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGdldFR5cGVzQnlGaWRlbGl0eUZvckl0ZW1BdEluZGV4KFZlY3RvcjxTdHJpbmc+JiB0eXBlcywg
aW50IGluZGV4KTsKQEAgLTExMCw2ICsxMTQsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBHdGtDbGlwYm9hcmQqIG1fY2xpcGJvYXJkOwogI2VuZGlmCisjaWYgUExBVEZPUk0o
V1BFKQorICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZCogbV9wYXN0ZWJvYXJkOworI2VuZGlmCiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKaW5kZXgg
NWJhZDNjZDBkNTYuLjY0ZTM1NjM5NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2No
ZW1lUmVnaXN0cnkuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBz
ZWN1cmVTY2hlbWVzKCkKICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoImFib3V0Iik7
CiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJkYXRhIik7CiAgICAgICAgIHNlY3Vy
ZVNjaGVtZXMuZ2V0KCkuYWRkKCJ3c3MiKTsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRk
KCJyZXNvdXJjZSIpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRl
eCA1NWI0OWE0ZGRjNy4uNWQ3YWE0OGE3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1dpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBA
IC02MSw2ICs2MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrQ29udGFpbmVyIEd0a0NvbnRhaW5l
cjsKIHR5cGVkZWYgR3RrV2lkZ2V0KiBQbGF0Zm9ybVdpZGdldDsKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oV1BFKQordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVdpZGdldDsKKyNlbmRpZgorCiB0eXBl
ZGVmIFBsYXRmb3JtV2lkZ2V0IFBsYXRmb3JtUGFnZUNsaWVudDsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRp
b0J1c0dMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1
c0dMaWIuY3BwCmluZGV4IDc5MWJmYTM5NjM2Li44MTk3NWI2NGE1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcApAQCAtMjcs
MTEgKzI3LDE3IEBACiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAorI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgQVVESU9f
R1JFU09VUkNFX1BBVEggIi9vcmcvd2Via2l0Z3RrL3Jlc291cmNlcy9hdWRpbyIKKyNlbGlmIFBM
QVRGT1JNKFdQRSkKKyNkZWZpbmUgQVVESU9fR1JFU09VUkNFX1BBVEggIi9vcmcvd2Via2l0d3Bl
L3Jlc291cmNlcy9hdWRpbyIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NS
ZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFy
KiBuYW1lLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aChn
X3N0cmR1cF9wcmludGYoIi9vcmcvd2Via2l0Z3RrL3Jlc291cmNlcy9hdWRpby8lcyIsIG5hbWUp
KTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ19zdHJkdXBfcHJpbnRmKEFVRElPX0dSRVNP
VVJDRV9QQVRIICIvJXMiLCBuYW1lKSk7CiAgICAgR1JlZlB0cjxHQnl0ZXM+IGRhdGEgPSBhZG9w
dEdSZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEocGF0aC5nZXQoKSwgR19SRVNPVVJDRV9MT09L
VVBfRkxBR1NfTk9ORSwgbnVsbHB0cikpOwogICAgIEFTU0VSVChkYXRhKTsKICAgICByZXR1cm4g
Y3JlYXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGdfYnl0ZXNfZ2V0X2RhdGEoZGF0YS5nZXQo
KSwgbnVsbHB0ciksIGdfYnl0ZXNfZ2V0X3NpemUoZGF0YS5nZXQoKSksIGZhbHNlLCBzYW1wbGVS
YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5j
cHAKaW5kZXggNmZhM2VhNzcxZjMuLjgzZDMyZTEzOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMyw5IEBAIENT
dHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAgICAgaWYgKCFjYWNoZWRQYXRoLmlzTnVsbCgp
KQogICAgICAgICByZXR1cm4gY2FjaGVkUGF0aDsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBkYXRhUGF0aChnX2J1aWxkX2ZpbGVuYW1lKERBVEFfRElSLCAid3Bl
IiwgbnVsbHB0cikpOworI2VsaWYgUExBVEZPUk0oR1RLKQogI2lmIE9TKFdJTkRPV1MpCiAgICAg
SE1PRFVMRSBobW9kdWxlID0gMDsKICAgICBHZXRNb2R1bGVIYW5kbGVFeEEoR0VUX01PRFVMRV9I
QU5ETEVfRVhfRkxBR19GUk9NX0FERFJFU1MsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHNoYXJl
ZFJlc291cmNlc1BhdGgpLCAmaG1vZHVsZSk7CkBAIC0yMjIsNiArMjI1LDcgQEAgQ1N0cmluZyBz
aGFyZWRSZXNvdXJjZXNQYXRoKCkKICNlbHNlCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBh
dGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJUiwgIndlYmtpdGd0ay0iIFdFQktJVEdUS19BUElf
VkVSU0lPTl9TVFJJTkcsIE5VTEwpKTsKICNlbmRpZgorI2VuZGlmCiAKICAgICBjYWNoZWRQYXRo
ID0gZGF0YVBhdGguZ2V0KCk7CiAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAppbmRleCA5
MTE0ZTc2Yzc1OS4uMmFjY2ZhZDE1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgPE9wZW5HTC9nbC5oPgogI2VsaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgIk9wZW5H
TEVTU2hpbXMuaCIKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQogI2lmIFVTRShPUEVOR0xfRVNfMikKICNpbmNsdWRlIDxHTEVTMi9nbDIu
aD4KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
TENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0
LmNwcAppbmRleCA3MGY1ODczOTJmNi4uYzE1YmVjNWU5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQo
UGxhdGZvcm1EaXNwbGF5JiBkaXNwCiAgICAgfQogI2VuZGlmCiAKLSNpZiBVU0UoRUdMKSB8fCBQ
TEFURk9STShXQVlMQU5EKQorI2lmIFVTRShFR0wpIHx8IFBMQVRGT1JNKFdBWUxBTkQpIHx8IFBM
QVRGT1JNKFdQRSkKICAgICBpZiAoYXV0byBlZ2xDb250ZXh0ID0gR0xDb250ZXh0RUdMOjpjcmVh
dGVTaGFyaW5nQ29udGV4dChkaXNwbGF5KSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUoZWdsQ29u
dGV4dCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250
ZXh0LmgKaW5kZXggMmMwZWEyN2UxOTMuLjA0NjllYjUzM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApAQCAtMjUsNyArMjUsMTMgQEAKICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogI2lmIFVTRShFR0wpICYmICFQTEFURk9STShHVEsp
CisjaWYgUExBVEZPUk0oV1BFKQorLy8gRklYTUU6IEZpbmQgc29tZSB3YXkgdG8gZGVkdWNlIHRo
aXMuCisjZGVmaW5lIF9fR0JNX18gMQorI2luY2x1ZGUgPEVHTC9lZ2xwbGF0Zm9ybS5oPgorI2Vs
c2UKICNpbmNsdWRlICJlZ2xwbGF0Zm9ybS5oIgorI2VuZGlmCiB0eXBlZGVmIEVHTE5hdGl2ZVdp
bmRvd1R5cGUgR0xOYXRpdmVXaW5kb3dUeXBlOwogI2Vsc2UKIHR5cGVkZWYgdWludDY0X3QgR0xO
YXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggN2Q4MGQ1YjQ1YjQuLmIyYjc5NTI1NDVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKQEAgLTYwLDcgKzYwLDcgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiBP
QkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NMQVNTIFdlYkdMTGF5ZXI7Ci0jZWxpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdJTl9DQUlSTykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV0lOX0NBSVJPKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIHVuc2lnbmVkIGludCBH
THVpbnQ7CiAjZW5kaWYKIApAQCAtMTM3Myw3ICsxMzczLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTaGFkZXJOYW1lSGFzaD4gbmFtZUhhc2hNYXBGb3JTaGFkZXJzOwogCi0j
aWYgKChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikpICYmIFVTRShPUEVOR0xfRVNfMikp
CisjaWYgKChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oV1BFKSkg
JiYgVVNFKE9QRU5HTF9FU18yKSkKICAgICBmcmllbmQgY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdM
RVM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzRE9wZW5HTEVTPiBtX2V4dGVuc2lv
bnM7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
T3BlbkdMRVNTaGltcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdM
RVNTaGltcy5oCmluZGV4IGI0ZTk1MTU3MjE3Li5hYjdjNmI4ZjM5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMRVNTaGltcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaApAQCAtMjYsNyArMjYs
NyBAQAogI2lmbmRlZiBPcGVuR0xFU1NoaW1zX2gKICNkZWZpbmUgT3BlbkdMRVNTaGltc19oCiAK
LSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKKyNpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oV1BFKQogI2RlZmluZSBnbEJpbmRGcmFtZWJ1ZmZl
ckVYVCBnbEJpbmRGcmFtZWJ1ZmZlcgogI2RlZmluZSBnbEZyYW1lYnVmZmVyVGV4dHVyZTJERVhU
IGdsRnJhbWVidWZmZXJUZXh0dXJlMkQKICNkZWZpbmUgZ2xCaW5kUmVuZGVyYnVmZmVyRVhUIGds
QmluZFJlbmRlcmJ1ZmZlcgpAQCAtNDUsNiArNDUsNyBAQAogI2RlZmluZSBnbElzRnJhbWVidWZm
ZXJFWFQgZ2xJc0ZyYW1lYnVmZmVyCiAjZGVmaW5lIGdsR2VuZXJhdGVNaXBtYXBFWFQgZ2xHZW5l
cmF0ZU1pcG1hcAogI2RlZmluZSBHTF9ERVBUSF9BVFRBQ0hNRU5UX0VYVCBHTF9ERVBUSF9BVFRB
Q0hNRU5UCisjZGVmaW5lIEdMX0NPTE9SX0FUVEFDSE1FTlQwX0VYVCBHTF9DT0xPUl9BVFRBQ0hN
RU5UMAogI2RlZmluZSBHTF9GUkFNRUJVRkZFUl9DT01QTEVURV9FWFQgR0xfRlJBTUVCVUZGRVJf
Q09NUExFVEUKICNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfRVhUIEdMX0ZSQU1FQlVGRkVSCiAjZGVm
aW5lIEdMX0RFUFRIMjRfU1RFTkNJTDhfRVhUIEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNw
cAppbmRleCA2N2VmYmNlYjhiMy4uMWI3MTk1NGY1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcApAQCAtNDIsNiArNDIs
MTAgQEAKICNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXaW4uaCIKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oV1BFKQorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorI2VuZGlmCisKICNp
ZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2VuZGlmCkBAIC0xMDAsNiAr
MTA0LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxh
eTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
bGF0Zm9ybURpc3BsYXlYMTE+KG51bGxwdHIpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1EaXNwbGF5V1BFPigpOworI2Vu
ZGlmCisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5
LmgKaW5kZXggZjc2NGMyZDQ1MWYuLmNiNWZhMWVmMzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaApAQCAtNTQsNiArNTQsOSBA
QCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oV0lOKQogICAgICAgICBXaW5kb3dzLAogI2VuZGlmCisj
aWYgUExBVEZPUk0oV1BFKQorICAgICAgICBXUEUsCisjZW5kaWYKICAgICB9OwogCiAgICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IDFjMWNlYzI2YWNmLi45
ZmU3NTVmYzU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKQEAgLTIwNCw2ICsyMDQsMTMgQEAgc3RkOjp1bmlxdWVf
cHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0
Zm9ybURpc3BsYXkKICAgICBpZiAoZWdsQmluZEFQSShnRUdMQVBJVmVyc2lvbikgPT0gRUdMX0ZB
TFNFKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBp
ZiAocGxhdGZvcm1EaXNwbGF5LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldQRSkg
eworICAgICAgICBpZiAoYXV0byBjb250ZXh0ID0gY3JlYXRlV1BFQ29udGV4dChwbGF0Zm9ybURp
c3BsYXkpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7CisgICAgfQorI2VuZGlmCisKICAg
ICBhdXRvIGNvbnRleHQgPSBjcmVhdGVTdXJmYWNlbGVzc0NvbnRleHQocGxhdGZvcm1EaXNwbGF5
KTsKICAgICBpZiAoIWNvbnRleHQpIHsKICNpZiBQTEFURk9STShYMTEpCkBAIC0yNTEsNiArMjU4
LDkgQEAgR0xDb250ZXh0RUdMOjp+R0xDb250ZXh0RUdMKCkKICNpZiBQTEFURk9STShXQVlMQU5E
KQogICAgIGRlc3Ryb3lXYXlsYW5kV2luZG93KCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUp
CisgICAgZGVzdHJveVdQRVRhcmdldCgpOworI2VuZGlmCiB9CiAKIGJvb2wgR0xDb250ZXh0RUdM
OjpjYW5SZW5kZXJUb0RlZmF1bHRGcmFtZWJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKaW5kZXggZTVhMzM1OTdkN2Iu
LjlhMDMzZmViMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWdsL0dMQ29udGV4dEVHTC5oCkBAIC0zMiw2ICszMiwxMCBAQAogc3RydWN0IHdsX2VnbF93
aW5kb3c7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0Zm9ybURp
c3BsYXlXUEUuaCIKKyNlbmRpZgorCiB0eXBlZGVmIHZvaWQgKkVHTENvbmZpZzsKIHR5cGVkZWYg
dm9pZCAqRUdMQ29udGV4dDsKIHR5cGVkZWYgdm9pZCAqRUdMRGlzcGxheTsKQEAgLTczLDYgKzc3
LDkgQEAgcHJpdmF0ZToKICAgICBHTENvbnRleHRFR0woUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29u
dGV4dCwgRUdMU3VyZmFjZSwgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+JiYsIHN0cnVj
dCB3bF9lZ2xfd2luZG93Kik7CiAgICAgdm9pZCBkZXN0cm95V2F5bGFuZFdpbmRvdygpOwogI2Vu
ZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZvaWQgZGVzdHJveVdQRVRhcmdldCgpOworI2Vu
ZGlmCiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlV2lu
ZG93Q29udGV4dChHTE5hdGl2ZVdpbmRvd1R5cGUsIFBsYXRmb3JtRGlzcGxheSYsIEVHTENvbnRl
eHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEdMQ29udGV4dEVHTD4gY3JlYXRlUGJ1ZmZlckNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiwgRUdM
Q29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIpOwpAQCAtODUsNiArOTIsOSBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVXYXls
YW5kQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0g
bnVsbHB0cik7CiAgICAgc3RhdGljIEVHTFN1cmZhY2UgY3JlYXRlV2luZG93U3VyZmFjZVdheWxh
bmQoRUdMRGlzcGxheSwgRUdMQ29uZmlnLCBHTE5hdGl2ZVdpbmRvd1R5cGUpOwogI2VuZGlmCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdM
PiBjcmVhdGVXUEVDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYsIEVHTENvbnRleHQgc2hhcmluZ0Nv
bnRleHQgPSBudWxscHRyKTsKKyNlbmRpZgogCiAgICAgc3RhdGljIGJvb2wgZ2V0RUdMQ29uZmln
KEVHTERpc3BsYXksIEVHTENvbmZpZyosIEVHTFN1cmZhY2VUeXBlKTsKIApAQCAtOTgsNiArMTA4
LDkgQEAgcHJpdmF0ZToKICAgICBXbFVuaXF1ZVB0cjxzdHJ1Y3Qgd2xfc3VyZmFjZT4gbV93bFN1
cmZhY2U7CiAgICAgc3RydWN0IHdsX2VnbF93aW5kb3cqIG1fd2xXaW5kb3cgeyBudWxscHRyIH07
CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
RGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0PiBtX3dwZVRhcmdldDsKKyNlbmRpZgogI2lm
IFVTRShDQUlSTykKICAgICBjYWlyb19kZXZpY2VfdCogbV9jYWlyb0RldmljZSB7IG51bGxwdHIg
fTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uOWYzZjQyZDc2NDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcApAQCAtMCwwICsxLDQ0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdMQ29udGV4
dEVHTC5oIgorCisjaWYgVVNFKEVHTCkgJiYgUExBVEZPUk0oV1BFKQorCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5V1BFLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVf
cHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVXUEVDb250ZXh0KFBsYXRmb3Jt
RGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5LCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0KQorewor
ICAgIGF1dG8gb2Zmc2NyZWVuVGFyZ2V0ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihw
bGF0Zm9ybURpc3BsYXkpLmNyZWF0ZUVHTE9mZnNjcmVlblRhcmdldCgpOworICAgIGF1dG8gY29u
dGV4dCA9IGNyZWF0ZVdpbmRvd0NvbnRleHQob2Zmc2NyZWVuVGFyZ2V0LT5uYXRpdmVXaW5kb3co
KSwgcGxhdGZvcm1EaXNwbGF5LCBzaGFyaW5nQ29udGV4dCk7CisgICAgaWYgKGNvbnRleHQpCisg
ICAgICAgIGNvbnRleHQtPm1fd3BlVGFyZ2V0ID0gV1RGTW92ZShvZmZzY3JlZW5UYXJnZXQpOwor
ICAgIHJldHVybiBjb250ZXh0OworfQorCit2b2lkIEdMQ29udGV4dEVHTDo6ZGVzdHJveVdQRVRh
cmdldCgpCit7CisgICAgbV93cGVUYXJnZXQgPSBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoRUdMKSAmJiBQTEFURk9STShXUEUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXgg
MmJmMTFlYTFiZDcuLjI5MTczNDM2ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC01OSw3ICs1OSw5IEBACiAjZW5kaWYK
IAogI2lmIFVTRShFR0wpCisjaWYgIVBMQVRGT1JNKFdQRSkKICNpbmNsdWRlICJHTENvbnRleHRF
R0wuaCIKKyNlbmRpZgogI2luY2x1ZGUgPGdzdC9nbC9lZ2wvZ3N0Z2xkaXNwbGF5X2VnbC5oPgog
I2VuZGlmCiAKQEAgLTY5LDYgKzcxLDggQEAKIAogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCiAjaW5j
bHVkZSAiUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2lu
Y2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgogI2VuZGlmCiAKIC8vIGdzdGdsYXBpLmggbWF5
IGluY2x1ZGUgZWdscGxhdGZvcm0uaCBhbmQgaXQgaW5jbHVkZXMgWC5oLCB3aGljaApAQCAtNDM5
LDYgKzQ0MywxMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmVuc3Vy
ZUdzdEdMQ29udGV4dCgpCiAgICAgICAgICAgICBtX2dsRGlzcGxheSA9IEdTVF9HTF9ESVNQTEFZ
KGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kPihzaGFyZWREaXNwbGF5KS5lZ2xEaXNwbGF5KCkpKTsKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICBBU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5V1BF
PihzaGFyZWREaXNwbGF5KSk7CisgICAgICAgIG1fZ2xEaXNwbGF5ID0gR1NUX0dMX0RJU1BMQVko
Z3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRoX2VnbF9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3Jt
RGlzcGxheVdQRT4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7CisjZW5kaWYKKwogICAg
ICAgICBBU1NFUlQobV9nbERpc3BsYXkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggYzdhMGVjN2YyNTIuLjEyNjVlMDAxZDhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAg
LTIzNiw2ICsyMzYsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSgp
CiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKIAogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNpZiBVU0UoT1BFTkdMX0VTXzIpCisgICAg
OjpnbEZsdXNoKCk7CisjZW5kaWYKICAgICBzdGQ6OnN3YXAobV90ZXh0dXJlLCBtX2NvbXBvc2l0
b3JUZXh0dXJlKTsKICAgICBzdGQ6OnN3YXAobV90ZXh0dXJlLCBtX2ludGVybWVkaWF0ZVRleHR1
cmUpOwogICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKQEAg
LTM5OCw3ICs0MDEsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja1ZhcnlpbmdzUGFj
a2luZyhQbGF0Zm9ybTNET2JqZWN0IHZlcnRleFNoYWRlciwgUGxhdAogICAgICAgICB2YXJpYWJs
ZXMucHVzaF9iYWNrKHZhcnlpbmdTeW1ib2wpOwogCiAgICAgR0MzRGludCBtYXhWYXJ5aW5nVmVj
dG9ycyA9IDA7Ci0jaWYgIVBMQVRGT1JNKElPUykgJiYgISgoUExBVEZPUk0oV0lOKSB8fCBQTEFU
Rk9STShHVEspKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQorI2lmICFQTEFURk9STShJT1MpICYmICEo
KFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSAmJiBVU0Uo
T1BFTkdMX0VTXzIpKQogICAgIEdDM0RpbnQgbWF4VmFyeWluZ0Zsb2F0cyA9IDA7CiAgICAgOjpn
bEdldEludGVnZXJ2KEdMX01BWF9WQVJZSU5HX0ZMT0FUUywgJm1heFZhcnlpbmdGbG9hdHMpOwog
ICAgIG1heFZhcnlpbmdWZWN0b3JzID0gbWF4VmFyeWluZ0Zsb2F0cyAvIDQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSWNvbldQRS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSWNvbldQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQzYzM3YmRmOGFhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkljb24uaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitJY29uOjp+SWNvbigpCit7Cit9CisKK3ZvaWQgSWNvbjo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKK3sKK30KKworUmVmUHRyPEljb24+IElj
b246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpCit7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JbWFnZVdQRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lYWEzMGE4NTY2YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JbWFnZVdQRS5jcHAKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKworI2lu
Y2x1ZGUgPGNzdGRpbz4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEJpdG1hcEltYWdl
OjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCkKK3sKK30KKworUGFzc1JlZlB0cjxJbWFnZT4gSW1h
Z2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIHJlc291cmNlKQoreworICAgIHN0
ZDo6ZnByaW50ZihzdGRlcnIsICJXQVJOSU5HOiB0cnlpbmcgdG8gbG9hZCBwbGF0Zm9ybSByZXNv
dXJjZSAnJXMnXG4iLCByZXNvdXJjZSk7CisgICAgcmV0dXJuIEJpdG1hcEltYWdlOjpjcmVhdGUo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGQ1YmIxZDFmNDEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1E
aXNwbGF5V1BFLmNwcApAQCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybURpc3BsYXlXUEUuaCIKKworI2lmIFBMQVRGT1JNKFdQRSkKKworI2luY2x1ZGUgIkdMQ29u
dGV4dEVHTC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDxFR0wvZWdsLmg+Cisj
aW5jbHVkZSA8d3BlL3JlbmRlcmVyLWJhY2tlbmQtZWdsLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUGxhdGZvcm1EaXNwbGF5V1BFOjpQbGF0Zm9ybURpc3BsYXlXUEUoKSA9IGRlZmF1bHQ7
CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6flBsYXRmb3JtRGlzcGxheVdQRSgpCit7CisgICAgd3Bl
X3JlbmRlcmVyX2JhY2tlbmRfZWdsX2Rlc3Ryb3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0
Zm9ybURpc3BsYXlXUEU6OmluaXRpYWxpemUoaW50IGhvc3RGZCkKK3sKKyAgICBtX2JhY2tlbmQg
PSB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfY3JlYXRlKGhvc3RGZCk7CisKKyAgICBtX2VnbERp
c3BsYXkgPSBlZ2xHZXREaXNwbGF5KHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9nZXRfbmF0aXZl
X2Rpc3BsYXkobV9iYWNrZW5kKSk7CisgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElT
UExBWSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlBsYXRmb3JtRGlzcGxheVdQRTogY291
bGQgbm90IGNyZWF0ZSB0aGUgRUdMIGRpc3BsYXkuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFBsYXRmb3JtRGlzcGxheTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKK30KKwor
c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0PiBQbGF0Zm9ybURp
c3BsYXlXUEU6OmNyZWF0ZUVHTFRhcmdldChFR0xUYXJnZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQg
aG9zdEZkKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTFRhcmdldD4oKnRoaXMs
IGNsaWVudCwgaG9zdEZkKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVdQ
RTo6RUdMT2Zmc2NyZWVuVGFyZ2V0PiBQbGF0Zm9ybURpc3BsYXlXUEU6OmNyZWF0ZUVHTE9mZnNj
cmVlblRhcmdldCgpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RUdMT2Zmc2NyZWVu
VGFyZ2V0PigqdGhpcyk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpFR0xU
YXJnZXQoY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJiBkaXNwbGF5LCBQbGF0Zm9ybURpc3BsYXlX
UEU6OkVHTFRhcmdldDo6Q2xpZW50JiBjbGllbnQsIGludCBob3N0RmQpCisgICAgOiBtX2Rpc3Bs
YXkoZGlzcGxheSkKKyAgICAsIG1fY2xpZW50KGNsaWVudCkKK3sKKyAgICBtX2JhY2tlbmQgPSB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2NyZWF0ZShob3N0RmQpOworCisgICAgc3Rh
dGljIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2NsaWVudCBzX2NsaWVu
dCA9IHsKKyAgICAgICAgLy8gZnJhbWVfY29tcGxldGUKKyAgICAgICAgW10odm9pZCogZGF0YSkK
KyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgc3VyZmFjZSA9ICpyZWludGVycHJldF9jYXN0
PEVHTFRhcmdldCo+KGRhdGEpOworICAgICAgICAgICAgc3VyZmFjZS5tX2NsaWVudC5mcmFtZUNv
bXBsZXRlKCk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9l
Z2xfdGFyZ2V0X3NldF9jbGllbnQobV9iYWNrZW5kLCAmc19jbGllbnQsIHRoaXMpOworfQorCitQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6fkVHTFRhcmdldCgpCit7CisgICAgd3BlX3Jl
bmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQg
UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OmluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2luaXRpYWxpemUo
bV9iYWNrZW5kLCBtX2Rpc3BsYXkubV9iYWNrZW5kLAorICAgICAgICBzdGQ6Om1heCgwLCBzaXpl
LndpZHRoKCkpLCBzdGQ6Om1heCgwLCBzaXplLmhlaWdodCgpKSk7Cit9CisKK0VHTE5hdGl2ZVdp
bmRvd1R5cGUgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6Om5hdGl2ZVdpbmRvdygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZ2V0X25h
dGl2ZV93aW5kb3cobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVH
TFRhcmdldDo6cmVzaXplKGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgd3BlX3JlbmRlcmVy
X2JhY2tlbmRfZWdsX3RhcmdldF9yZXNpemUobV9iYWNrZW5kLCBzdGQ6Om1heCgwLCBzaXplLndp
ZHRoKCkpLCBzdGQ6Om1heCgwLCBzaXplLmhlaWdodCgpKSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OmZyYW1lV2lsbFJlbmRlcigpCit7CisgICAgd3BlX3JlbmRl
cmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV93aWxsX3JlbmRlcihtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpmcmFtZVJlbmRlcmVkKCkKK3sK
KyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2ZyYW1lX3JlbmRlcmVkKG1fYmFj
a2VuZCk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0OjpFR0xP
ZmZzY3JlZW5UYXJnZXQoY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJiBkaXNwbGF5KQoreworICAg
IG1fdGFyZ2V0ID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfY3Jl
YXRlKCk7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfaW5p
dGlhbGl6ZShtX3RhcmdldCwgZGlzcGxheS5tX2JhY2tlbmQpOworfQorCitQbGF0Zm9ybURpc3Bs
YXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldDo6fkVHTE9mZnNjcmVlblRhcmdldCgpCit7CisgICAg
d3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfZGVzdHJveShtX3Rhcmdl
dCk7Cit9CisKK0VHTE5hdGl2ZVdpbmRvd1R5cGUgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZz
Y3JlZW5UYXJnZXQ6Om5hdGl2ZVdpbmRvdygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdwZV9yZW5k
ZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2dldF9uYXRpdmVfd2luZG93KG1fdGFy
Z2V0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0o
V1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1Bs
YXRmb3JtRGlzcGxheVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3Bl
L1BsYXRmb3JtRGlzcGxheVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi44ZGUwYzdkMDRkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaApAQCAtMCwwICsxLDk5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKwor
I2RlZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKworc3RydWN0
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9l
Z2xfdGFyZ2V0Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dDsKK2NsYXNzIElu
dFNpemU7CisKK2NsYXNzIFBsYXRmb3JtRGlzcGxheVdQRSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9y
bURpc3BsYXkgeworcHVibGljOgorICAgIFBsYXRmb3JtRGlzcGxheVdQRSgpOworICAgIHZpcnR1
YWwgflBsYXRmb3JtRGlzcGxheVdQRSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKGludCk7CisK
KyAgICBjbGFzcyBFR0xUYXJnZXQgeworICAgIHB1YmxpYzoKKyAgICAgICAgY2xhc3MgQ2xpZW50
IHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lQ29tcGxl
dGUoKSA9IDA7CisgICAgICAgIH07CisKKyAgICAgICAgRUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3Jt
RGlzcGxheVdQRSYsIENsaWVudCYsIGludCk7CisgICAgICAgIH5FR0xUYXJnZXQoKTsKKworICAg
ICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBFR0xOYXRpdmVX
aW5kb3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OworCisgICAgICAgIHZvaWQgcmVzaXplKGNv
bnN0IEludFNpemUmKTsKKworICAgICAgICB2b2lkIGZyYW1lV2lsbFJlbmRlcigpOworICAgICAg
ICB2b2lkIGZyYW1lUmVuZGVyZWQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFBs
YXRmb3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OworICAgICAgICBDbGllbnQmIG1fY2xpZW50Owor
ICAgICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldCogbV9iYWNrZW5k
OworICAgIH07CisKKyAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQgeworICAgIHB1YmxpYzoK
KyAgICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYpOwor
ICAgICAgICB+RUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKKyAgICAgICAgRUdMTmF0aXZlV2luZG93
VHlwZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVj
dCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldCogbV90YXJnZXQ7Cisg
ICAgfTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUYXJnZXQ+IGNyZWF0ZUVHTFRhcmdldChF
R0xUYXJnZXQ6OkNsaWVudCYsIGludCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVHTE9mZnNjcmVl
blRhcmdldD4gY3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKK3ByaXZhdGU6CisgICAgVHlw
ZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpX
UEU7IH0KKworICAgIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2wqIG1fYmFja2VuZDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19Q
TEFURk9STV9ESVNQTEFZKFBsYXRmb3JtRGlzcGxheVdQRSwgV1BFKQorCisjZW5kaWYgLy8gUExB
VEZPUk0oV1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0N1cnNv
cldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDRkYzk1NWY5MzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcApAQCAt
MCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXJzb3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25z
dAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE3NjAxOTY5NzFiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCkBAIC0wLDAg
KzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKwor
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KCJfU2VhcmNoIHRoZSBXZWIiKTsKK30KKworU3RyaW5nIHVuYWNj
ZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgi
VW5hY2NlcHRhYmxlIFRMUyBjZXJ0aWZpY2F0ZSIpOworfQorCitTdHJpbmcgbG9jYWxpemVkU3Ry
aW5nKGNvbnN0IGNoYXIqIGtleSkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChrZXks
IHN0cmxlbihrZXkpKTsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93cGUvUGFzdGVib2FyZFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjJjNzgwMDgzZmQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1Bhc3RlYm9hcmRXUEUuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0LTIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CisjaW5jbHVkZSAiUGFzdGVib2FyZFN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJh
dGVnaWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCit7CisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBh
c3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQoreworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7Cit9CisKK1Bhc3RlYm9hcmQ6OlBhc3RlYm9hcmQo
KQoreworfQorCitib29sIFBhc3RlYm9hcmQ6Omhhc0RhdGEoKQoreworICAgIC8vIEZJWE1FOiBH
ZXR0aW5nIHRoZSBsaXN0IG9mIHR5cGVzIGZvciB0aGlzIGlzIHdhc3RlZnVsLiBEbyB0aGlzIGlu
IHRoZSBVSSBwcm9jZXNzLgorICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMpOworICAg
IHJldHVybiAhdHlwZXMuaXNFbXB0eSgpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJk
Ojp0eXBlcygpCit7CisgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CisgICAgcGxhdGZvcm1TdHJh
dGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcyk7CisgICAgcmV0
dXJuIHR5cGVzOworfQorCitTdHJpbmcgUGFzdGVib2FyZDo6cmVhZFN0cmluZyhjb25zdCBTdHJp
bmcmIHR5cGUpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKDAsIHR5cGUpOworfQorCit2b2lk
IFBhc3RlYm9hcmQ6OndyaXRlU3RyaW5nKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0KQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3ko
KS0+d3JpdGVUb1Bhc3RlYm9hcmQodHlwZSwgdGV4dCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6
Y2xlYXIoKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0cmluZyYpCit7
Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0KQor
eworICAgIHRleHQudGV4dCA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKDAsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRm
LTgiKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRXZWJDb250ZW50UmVh
ZGVyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6Ondy
aXRlKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMo
KS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKCJ0ZXh0L3BsYWluO2No
YXJzZXQ9dXRmLTgiLCB1cmwudXJsLnN0cmluZygpKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3
cml0ZVRydXN0d29ydGh5V2ViVVJMc1Bib2FyZFR5cGUoY29uc3QgUGFzdGVib2FyZFVSTCYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25z
dCBQYXN0ZWJvYXJkSW1hZ2UmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0
IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+d3JpdGVUb1Bhc3RlYm9hcmQoY29udGVudCk7Cit9
CisKK1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQoreworICAgIHJl
dHVybiBWZWN0b3I8U3RyaW5nPigpOworfQorCitib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVw
bGFjZSgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
TWFya3VwKGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFp
blRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBTbWFydFJlcGxhY2VPcHRpb24pCit7CisgICAgd3Jp
dGVTdHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIsIHRleHQpOworfQorCit2b2lkIFBh
c3RlYm9hcmQ6OndyaXRlUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJikKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uZmE0ZjM4ZTExZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcApAQCAtMCww
ICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChU
eXBlIHR5cGUsIGJvb2wgYmFja3dhcmRzQ29tcGF0aWJpbGl0eSkKK3sKKyAgICBBU1NFUlQobV90
eXBlID09IEtleURvd24pOworICAgIG1fdHlwZSA9IHR5cGU7CisgICAgaWYgKGJhY2t3YXJkc0Nv
bXBhdGliaWxpdHkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09IFBsYXRmb3Jt
RXZlbnQ6OlJhd0tleURvd24pIHsKKyAgICAgICAgbV90ZXh0ID0gU3RyaW5nKCk7CisgICAgICAg
IG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2tl
eUlkZW50aWZpZXIgPSBTdHJpbmcoKTsKKyAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUg
PSAwOworICAgIH0KK30KKworYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBz
TG9ja1N0YXRlKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiwgYm9vbCYsIGJvb2wmLCBi
b29sJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTQ1NmVlZTJkZjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNw
cApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1QYXN0
ZWJvYXJkLmgiCisKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCisjaW5jbHVkZSA8bWFwPgorI2lu
Y2x1ZGUgPHdwZS9wYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRmb3JtUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKQorICAg
IDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBB
U1NFUlQobV9wYXN0ZWJvYXJkKTsKK30KKworUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBh
c3RlYm9hcmQoKQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0
b24oKSkKK3sKKyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30KKwordm9pZCBQbGF0Zm9ybVBh
c3RlYm9hcmQ6OmdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBzdHJ1Y3Qg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3ZlY3RvciBwYXN0ZWJvYXJkVHlwZXMgPSB7IG51bGxwdHIs
IDAgfTsKKyAgICB3cGVfcGFzdGVib2FyZF9nZXRfdHlwZXMobV9wYXN0ZWJvYXJkLCAmcGFzdGVi
b2FyZFR5cGVzKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXN0ZWJvYXJkVHlw
ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgdHlwZVN0cmluZyA9IHBhc3RlYm9hcmRU
eXBlcy5zdHJpbmdzW2ldOworICAgICAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKHR5cGVTdHJpbmcu
ZGF0YSwgdHlwZVN0cmluZy5sZW5ndGgpKTsKKyAgICB9CisKKyAgICB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfdmVjdG9yX2ZyZWUoJnBhc3RlYm9hcmRUeXBlcyk7Cit9CisKK1N0cmluZyBQbGF0Zm9y
bVBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoaW50LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAg
c3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZyBzdHJpbmc7CisgICAgd3BlX3Bhc3RlYm9hcmRf
Z2V0X3N0cmluZyhtX3Bhc3RlYm9hcmQsIHR5cGUudXRmOCgpLmRhdGEoKSwgJnN0cmluZyk7CisK
KyAgICBTdHJpbmcgcmV0dXJuVmFsdWUoc3RyaW5nLmRhdGEsIHN0cmluZy5sZW5ndGgpOworCisg
ICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnN0cmluZyk7CisgICAgcmV0dXJuIHJldHVy
blZhbHVlOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVi
b2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgcGxhaW5U
ZXh0W10gPSAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IjsKKyAgICBzdGF0aWMgY29uc3QgY2hh
ciBodG1sVGV4dFtdID0gInRleHQvaHRtbDtjaGFyc2V0PXV0Zi04IjsKKworICAgIENTdHJpbmcg
dGV4dFN0cmluZyA9IGNvbnRlbnQudGV4dC51dGY4KCk7CisgICAgQ1N0cmluZyBtYXJrdXBTdHJp
bmcgPSBjb250ZW50Lm1hcmt1cC51dGY4KCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRf
c3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxs
cHRyLCAwIH0gfSwKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwK
KyAgICB9OworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50
eXBlLCBwbGFpblRleHQsIHN0cmxlbihwbGFpblRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCB0ZXh0U3RyaW5nLmRhdGEoKSwgdGV4
dFN0cmluZy5sZW5ndGgoKSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUo
JnBhaXJzWzFdLnR5cGUsIGh0bWxUZXh0LCBzdHJsZW4oaHRtbFRleHQpKTsKKyAgICB3cGVfcGFz
dGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMV0uc3RyaW5nLCBtYXJrdXBTdHJpbmcu
ZGF0YSgpLCBtYXJrdXBTdHJpbmcubGVuZ3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2Fy
ZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFpcnMsIDIgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dy
aXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJl
ZSgmcGFpcnNbMF0udHlwZSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJz
WzBdLnN0cmluZyk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzFdLnR5
cGUpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1sxXS5zdHJpbmcpOwor
fQorCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X3BhaXIgcGFpcnNbXSA9IHsKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAw
IH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWly
c1swXS50eXBlLCB0eXBlLnV0ZjgoKS5kYXRhKCksIHR5cGUudXRmOCgpLmxlbmd0aCgpKTsKKyAg
ICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCBzdHJp
bmcudXRmOCgpLmRhdGEoKSwgc3RyaW5nLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgc3RydWN0IHdw
ZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAgbWFwID0geyBwYWlycywgMSB9OworCisgICAgd3BlX3Bh
c3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJvYXJkLCAmbWFwKTsKKworICAgIHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ19mcmVlKCZwYWlyc1swXS50eXBlKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdf
ZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUwOGViN2RlOGM5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BF
LmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNj
cmVlbi5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAyNDsKK30KKworaW50IHNjcmVl
bkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gODsKK30KKworYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBzY3JlZW5I
YXNJbnZlcnRlZENvbG9ycygpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitGbG9hdFJlY3Qg
c2NyZWVuUmVjdChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDApOworfQorCitGbG9hdFJlY3Qgc2NyZWVuQXZhaWxh
YmxlUmVjdChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZs
b2F0UmVjdCgwLCAwLCAxMDI0LCA2NDApOworfQorCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5k
ZWRDb2xvcihXaWRnZXQqKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRl
clRoZW1lV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQ
RS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI1OWUzM2JkY2My
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5k
ZXJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJV
c2VyQWdlbnRTY3JpcHRzLmgiCisjaW5jbHVkZSAiVXNlckFnZW50U3R5bGVTaGVldHMuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVmPFJlbmRlclRoZW1lPiBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQorewor
ICAgIHN0YXRpYyBSZW5kZXJUaGVtZSYgdGhlbWUgPSBSZW5kZXJUaGVtZVdQRTo6Y3JlYXRlKCku
bGVha1JlZigpOworICAgIHJldHVybiB0aGVtZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZVdQRTo6
dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRl
RGVzY3JpcHRpb24mKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmlu
ZyBSZW5kZXJUaGVtZVdQRTo6ZXh0cmFEZWZhdWx0U3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCisjaWYgRU5BQkxFKFZJREVPKQorU3RyaW5nIFJlbmRlclRoZW1lV1BF
OjptZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCht
ZWRpYUNvbnRyb2xzQmFzZVVzZXJBZ2VudFN0eWxlU2hlZXQpOworfQorCitTdHJpbmcgUmVuZGVy
VGhlbWVXUEU6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQoreworICAgIFN0cmluZ0J1aWxkZXIgc2Ny
aXB0QnVpbGRlcjsKKyAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzTG9jYWxp
emVkU3RyaW5nc0phdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5n
c0phdmFTY3JpcHQpKTsKKyAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzQmFz
ZUphdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKKyAgICBy
ZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworfQorI2VuZGlmCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVy
VGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZmIyZmU4OTRjOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQ
RS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgUmVuZGVyVGhlbWVXUEUgZmluYWwgOiBwdWJsaWMgUmVuZGVyVGhlbWUgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UmVuZGVyVGhlbWU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW5kZXJUaGVtZVdQRSk7CisgICAgfQorCisgICAgU3RyaW5nIGV4
dHJhRGVmYXVsdFN0eWxlU2hlZXQoKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoVklERU8pCisgICAg
U3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIG1l
ZGlhQ29udHJvbHNTY3JpcHQoKSBvdmVycmlkZTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFJl
bmRlclRoZW1lV1BFKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflJlbmRlclRoZW1lV1BFKCkg
PSBkZWZhdWx0OworCisgICAgdm9pZCB1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24o
Q1NTVmFsdWVJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0IG92ZXJyaWRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjBmOWZlNWQ0ZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIFNjcm9sbGJhclRo
ZW1lV1BFOjpoYXNCdXR0b25zKFNjcm9sbGJhciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzVGh1bWIo
U2Nyb2xsYmFyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0cnVlOwor
fQorCitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjpiYWNrQnV0dG9uUmVjdChTY3JvbGxiYXIm
LCBTY3JvbGxiYXJQYXJ0LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIEludFJlY3QoKTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6Zm9yd2FyZEJ1
dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFy
VGhlbWVXUEU6OnRyYWNrUmVjdChTY3JvbGxiYXImLCBib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIEludFJlY3QoKTsKK30KKworU2Nyb2xsYmFyVGhlbWUmIFNjcm9s
bGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpCit7CisgICAgc3RhdGljIFNjcm9sbGJhclRoZW1lV1BF
IHRoZW1lOworICAgIHJldHVybiB0aGVtZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BF
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjcxODVhZGEyOWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUu
aApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVDb21w
b3NpdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJUaGVtZVdQ
RSBmaW5hbCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZSB7CitwdWJsaWM6CisgICAg
U2Nyb2xsYmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U2Nyb2xsYmFyVGhl
bWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICBib29sIGhhc0J1dHRvbnMoU2Nyb2xsYmFyJikgb3Zl
cnJpZGU7CisgICAgYm9vbCBoYXNUaHVtYihTY3JvbGxiYXImKSBvdmVycmlkZTsKKworICAgIElu
dFJlY3QgYmFja0J1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWlu
dGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICBJbnRSZWN0IGZvcndhcmRCdXR0b25SZWN0KFNj
cm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7
CisgICAgSW50UmVjdCB0cmFja1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCBwYWludGluZyA9IGZhbHNl
KSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93cGUvU291bmRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5lOTE0NzdhNDU5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU291bmQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBzeXN0ZW1CZWVwKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1RoZW1lV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZDVhZDk3NzNkODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
cGUvVGhlbWVXUEUuY3BwCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFJvdW5k
ZWRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVGhlbWUqIHBsYXRmb3Jt
VGhlbWUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUaGVtZVdQRT4gdGhlbWU7Cisg
ICAgcmV0dXJuICZ0aGVtZS5nZXQoKTsKK30KKworTGVuZ3RoU2l6ZSBUaGVtZVdQRTo6Y29udHJv
bFNpemUoQ29udHJvbFBhcnQgcGFydCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCBj
b25zdCBMZW5ndGhTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKSBjb25zdAorewor
ICAgIGlmICghem9vbWVkU2l6ZS53aWR0aC5pc0ludHJpbnNpY09yQXV0bygpICYmICF6b29tZWRT
aXplLmhlaWdodC5pc0ludHJpbnNpY09yQXV0bygpKQorICAgICAgICByZXR1cm4gVGhlbWU6OmNv
bnRyb2xTaXplKHBhcnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFjdG9yKTsKKwor
ICAgIHN3aXRjaCAocGFydCkgeworICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgorICAgIGNhc2UgUmFk
aW9QYXJ0OgorICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZSB7IExlbmd0aCgxMiwgRml4ZWQpLCBM
ZW5ndGgoMTIsIEZpeGVkKSB9OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIHJldHVybiBUaGVtZTo6Y29udHJvbFNpemUocGFydCwgZm9udENhc2NhZGUsIHpvb21l
ZFNpemUsIHpvb21GYWN0b3IpOworfQorCit2b2lkIFRoZW1lV1BFOjpwYWludChDb250cm9sUGFy
dCBwYXJ0LCBDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3
KiwgZmxvYXQsIGZsb2F0KQoreworICAgIHN3aXRjaCAocGFydCkgeworICAgIGNhc2UgQ2hlY2ti
b3hQYXJ0OgorICAgICAgICBwYWludENoZWNrYm94KHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVj
dCwgem9vbUZhY3Rvcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmFkaW9QYXJ0OgorICAg
ICAgICBwYWludFJhZGlvKHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHVzaEJ1dHRvblBhcnQ6CisgICAgICAgIHBhaW50
QnV0dG9uKHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZCBU
aGVtZVdQRTo6cGFpbnRDaGVja2JveChDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCkKK3sKKyAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBG
bG9hdFNpemUgY29ybmVyKDIsIDIpOworICAgIEZsb2F0Um91bmRlZFJlY3Qgcm91bmRlZFJlY3Qo
em9vbWVkUmVjdCwgY29ybmVyLCBjb3JuZXIsIGNvcm5lciwgY29ybmVyKTsKKyAgICBQYXRoIHBh
dGg7CisgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChyb3VuZGVkUmVjdCk7CisKKyAgICBjb250ZXh0
LnNldEZpbGxDb2xvcihtYWtlUkdCKDIyNCwgMjI0LCAyMjQpKTsKKyAgICBjb250ZXh0LmZpbGxQ
YXRoKHBhdGgpOworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoMSk7CisgICAgY29u
dGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsKKyAgICBjb250ZXh0LnN0
cm9rZVBhdGgocGF0aCk7CisKKyAgICBpZiAoc3RhdGVzLnN0YXRlcygpICYgQ29udHJvbFN0YXRl
czo6Q2hlY2tlZFN0YXRlKSB7CisgICAgICAgIGF1dG8mIHJlY3QgPSByb3VuZGVkUmVjdC5yZWN0
KCk7CisKKyAgICAgICAgUGF0aCBjaGVja2VyUGF0aDsKKyAgICAgICAgY2hlY2tlclBhdGgubW92
ZVRvKEZsb2F0UG9pbnQocmVjdC54KCkgKyAzLCByZWN0Lm1heFkoKSAtIDMpKTsKKyAgICAgICAg
Y2hlY2tlclBhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQocmVjdC5tYXhYKCkgLSAzLCByZWN0Lnko
KSArIDMpKTsKKworICAgICAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcygyKTsKKyAgICAg
ICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDg0LCA4NCwgODQpKTsKKyAgICAgICAg
Y29udGV4dC5zdHJva2VQYXRoKGNoZWNrZXJQYXRoKTsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVX
UEU6OnBhaW50UmFkaW8oQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgUGF0aCBwYXRo
OworICAgIHBhdGguYWRkRWxsaXBzZSh6b29tZWRSZWN0KTsKKworICAgIGNvbnRleHQuc2V0Rmls
bENvbG9yKG1ha2VSR0IoMjI0LCAyMjQsIDIyNCkpOworICAgIGNvbnRleHQuZmlsbFBhdGgocGF0
aCk7CisKKyAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcygxKTsKKyAgICBjb250ZXh0LnNl
dFN0cm9rZUNvbG9yKG1ha2VSR0IoOTQsIDk0LCA5NCkpOworICAgIGNvbnRleHQuc3Ryb2tlUGF0
aChwYXRoKTsKKworICAgIGlmIChzdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9sU3RhdGVzOjpDaGVj
a2VkU3RhdGUpIHsKKyAgICAgICAgRmxvYXRSZWN0IGNoZWNrZXJSZWN0ID0gem9vbWVkUmVjdDsK
KyAgICAgICAgY2hlY2tlclJlY3QuaW5mbGF0ZSgtMyk7CisKKyAgICAgICAgUGF0aCBjaGVja2Vy
UGF0aDsKKyAgICAgICAgY2hlY2tlclBhdGguYWRkRWxsaXBzZShjaGVja2VyUmVjdCk7CisKKyAg
ICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQig4NCwgODQsIDg0KSk7CisgICAgICAg
IGNvbnRleHQuZmlsbFBhdGgoY2hlY2tlclBhdGgpOworICAgIH0KK30KKwordm9pZCBUaGVtZVdQ
RTo6cGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXpl
IGNvcm5lcigyLCAyKTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJl
Y3QsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIsIGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAg
IHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRlZFJlY3QpOworCisgICAgQ29sb3IgZmlsbENvbG9y
ID0gc3RhdGVzLnN0YXRlcygpICYgQ29udHJvbFN0YXRlczo6UHJlc3NlZFN0YXRlID8gbWFrZVJH
QigyNDQsIDI0NCwgMjQ0KSA6IG1ha2VSR0IoMjI0LCAyMjQsIDIyNCk7CisgICAgY29udGV4dC5z
ZXRGaWxsQ29sb3IoZmlsbENvbG9yKTsKKyAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisg
ICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VD
b2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsKKyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Ro
ZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjczOWY1YzFl
MWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1l
V1BFLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlRoZW1lLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGhlbWVXUEUgOiBwdWJsaWMgVGhlbWUgeworcHVi
bGljOgorICAgIFRoZW1lV1BFKCkgeyB9CisgICAgdmlydHVhbCB+VGhlbWVXUEUoKSB7IH0KKwor
ICAgIExlbmd0aFNpemUgY29udHJvbFNpemUoQ29udHJvbFBhcnQsIGNvbnN0IEZvbnRDYXNjYWRl
JiwgY29uc3QgTGVuZ3RoU2l6ZSYsIGZsb2F0KSBjb25zdCBvdmVycmlkZTsKKworICAgIHZvaWQg
cGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmLCBmbG9hdCwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCkgb3ZlcnJpZGU7
CisKK3ByaXZhdGU6CisgICAgdm9pZCBwYWludENoZWNrYm94KENvbnRyb2xTdGF0ZXMmLCBHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCk7CisgICAgdm9pZCBwYWludFJh
ZGlvKENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBm
bG9hdCk7CisgICAgdm9pZCBwYWludEJ1dHRvbihDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjJkZjBjYzZiMzYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcApAQCAtMCwwICsx
LDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXaWRnZXQuaCIKKworI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2lkZ2V0OjpXaWRnZXQo
UGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQoreworICAgIGluaXQod2lkZ2V0KTsKK30KKworV2lkZ2V0
Ojp+V2lkZ2V0KCkKK3sKKyAgICBBU1NFUlQoIXBhcmVudCgpKTsKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
Cit7CisgICAgbV9mcmFtZSA9IHJlY3Q7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworSW50
UmVjdCBXaWRnZXQ6OmZyYW1lUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWU7Cit9
CisKK3ZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9v
bCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0Q3Vyc29y
KGNvbnN0IEN1cnNvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRn
ZXQ6OnNob3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0Ojpo
aWRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0SXNT
ZWxlY3RlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGli
L0dTb2NrZXRNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dT
b2NrZXRNb25pdG9yLmNwcAppbmRleCAxNDMyOWI5Mzg5MS4uOGQxMDFjZjRmMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHAK
QEAgLTUxLDYgKzUxLDkgQEAgdm9pZCBHU29ja2V0TW9uaXRvcjo6c3RhcnQoR1NvY2tldCogc29j
a2V0LCBHSU9Db25kaXRpb24gY29uZGl0aW9uLCBSdW5Mb29wJiBydW4KICAgICBnX3NvdXJjZV9z
ZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgIltXZWJLaXRdIFNvY2tldCBtb25pdG9yIik7CiAgICAg
bV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogICAgIGdfc291cmNlX3NldF9jYWxsYmFj
ayhtX3NvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oc29ja2V0U291
cmNlQ2FsbGJhY2spLCB0aGlzLCBudWxscHRyKTsKKyNpZiBQTEFURk9STShXUEUpCisgICAgZ19z
b3VyY2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0hJR0ggKyAzMCk7
CisjZW5kaWYKICAgICBnX3NvdXJjZV9hdHRhY2gobV9zb3VyY2UuZ2V0KCksIHJ1bkxvb3AubWFp
bkNvbnRleHQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtV1BF
LmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcxYjA1NTFhZjkxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NzIgQEAKK2ZpbGUo
TUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9KQorCitjb25maWd1
cmVfZmlsZSh3cGUvd3BlLXdlYmtpdC5wYy5pbiAke0NNQUtFX0JJTkFSWV9ESVJ9L3dwZS13ZWJr
aXQucGMgQE9OTFkpCisKK2FkZF9kZWZpbml0aW9ucygtRFdFQktJVDJfQ09NUElMQVRJT04pCisK
K2FkZF9kZWZpbml0aW9ucygtRExJQkVYRUNESVI9IiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iKQor
CitzZXQoV2ViS2l0Ml9VU0VfUFJFRklYX0hFQURFUiBPTikKKworYWRkX2N1c3RvbV90YXJnZXQo
d2Via2l0MndwZS1mb3J3YXJkaW5nLWhlYWRlcnMKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRB
QkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5w
bCAtLWluY2x1ZGUtcGF0aCAke1dFQktJVDJfRElSfSAtLW91dHB1dCAke0ZPUldBUkRJTkdfSEVB
REVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlIC0tcGxhdGZvcm0gc291cAorKQorCitzZXQoV0VCS0lU
Ml9FWFRSQV9ERVBFTkRFTkNJRVMKKyAgICB3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVycwor
KQorCitsaXN0KEFQUEVORCBXZWJQcm9jZXNzX1NPVVJDRVMKKyAgICBXZWJQcm9jZXNzL0VudHJ5
UG9pbnQvdW5peC9XZWJQcm9jZXNzTWFpbi5jcHAKKykKKworbGlzdChBUFBFTkQgTmV0d29ya1By
b2Nlc3NfU09VUkNFUworICAgIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9OZXR3b3Jr
UHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIERhdGFiYXNlUHJvY2Vzc19TT1VSQ0VT
CisgICAgRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWlu
LmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKKyAgICBOZXR3b3JrUHJvY2Vz
cy9DdXN0b21Qcm90b2NvbHMvc291cC9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNw
cAorCisgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzU291cC5jcHAK
KyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhU291cC5jcHAKKyAgICBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcAorCisgICAg
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorICAgIE5ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtTZXNzaW9uU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0U291cC5jcHAKKworICAgIFBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25p
dG9yLmNwcAorCisgICAgUGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCisgICAg
UGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCisKKyAgICBQbGF0Zm9ybS9jbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmNwcAorCisgICAgUGxhdGZv
cm0vZ2xpYi9Nb2R1bGVHbGliLmNwcAorCisgICAgUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5j
cHAKKyAgICBQbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCisKKyAgICBQbHVnaW5Q
cm9jZXNzL3VuaXgvUGx1Z2luQ29udHJvbGxlclByb3h5VW5peC5jcHAKKyAgICBQbHVnaW5Qcm9j
ZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNwcAorICAgIFBsdWdpblByb2Nlc3MvdW5p
eC9QbHVnaW5Qcm9jZXNzVW5peC5jcHAKKworICAgIFNoYXJlZC9BUEkvYy9jYWlyby9XS0ltYWdl
Q2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvQXV0aGVudGljYXRpb24vc291cC9BdXRoZW50aWNhdGlv
bk1hbmFnZXJTb3VwLmNwcAorCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L1NpbXBsZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKKworICAgIFNoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCisgICAgU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZFNhZmVDb29y
ZGluYXRlZFN1cmZhY2UuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwCisKKyAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5N
b2R1bGVYMTEuY3BwCisKKyAgICBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3Bw
CisKKyAgICBTaGFyZWQvZ2xpYi9XZWJFcnJvcnNHbGliLmNwcAorCisgICAgU2hhcmVkL2xpbnV4
L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKworICAgIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1
bWVudENvZGVyc1NvdXAuY3BwCisgICAgU2hhcmVkL3NvdXAvV2ViRXJyb3JzU291cC5jcHAKKwor
ICAgIFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uY3BwCisKKyAgICBTaGFyZWQvd3BlL05h
dGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3Vz
ZUV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAK
KyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dw
ZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9XZWJFdmVudEZh
Y3RvcnkuY3BwCisKKyAgICBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAorICAgIFVJUHJvY2Vz
cy9EZWZhdWx0VW5kb0NvbnRyb2xsZXIuY3BwCisgICAgVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25T
dGF0ZUNvZGluZ05vbmUuY3BwCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNYW5hZ2VyLmNwcAorICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFu
YWdlci5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy9jYWlyby9XS0ljb25EYXRhYmFzZUNhaXJv
LmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5jcHAK
KworICAgIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcAorCisgICAgVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUv
RHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50
SW1wbC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5j
cHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkv
d3BlL1dQRVZpZXdDbGllbnQuY3BwCisKKyAgICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3Nv
dXAvV2ViU29ja2V0U2VydmVyU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2
ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKKworICAgIFVJUHJvY2Vzcy9MYXVuY2hl
ci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcAorCisgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5p
eC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1
Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKKworICAgIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyLmNwcAorCisgICAgVUlQcm9jZXNzL1dlYnNpdGVEYXRhL3VuaXgvV2Vic2l0ZURhdGFT
dG9yZVVuaXguY3BwCisKKyAgICBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3Bw
CisKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL0luc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVy
bWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9jZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlH
U3RyZWFtZXIuY3BwCisKKyAgICBVSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9y
LmNwcAorCisgICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29va2llTWFuYWdlclByb3h5U291cC5jcHAK
KyAgICBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwCisKKyAgICBVSVByb2Nl
c3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcAorICAgIFVJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9y
UHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwCisgICAg
VUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dw
ZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29s
V1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNv
dXAuY3BwCisgICAgV2ViUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViS2l0U291cENvb2tpZUphclNx
bGl0ZS5jcHAKKworICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvZ2xpYi9JbmplY3RlZEJ1
bmRsZUdsaWIuY3BwCisKKyAgICBXZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9y
YWdlTWFuYWdlci5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9BY2NlbGVyYXRlZFN1cmZhY2UuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9BcmVhQWxsb2NhdG9yLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisgICAgV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdl
L2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9E
cmF3aW5nQXJlYVdQRS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3Rv
clVJV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKKwor
ICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAorICAg
IFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKKworICAgIFdlYlByb2Nlc3Mvd3Bl
L1dlYlByb2Nlc3NNYWluV1BFLmNwcAorCisgICAgIyBGSVhNRS1HV1NIQVJFOgorICAgIERhdGFi
YXNlUHJvY2Vzcy9ndGsvRGF0YWJhc2VQcm9jZXNzTWFpbkd0ay5jcHAKKykKKworbGlzdChBUFBF
TkQgV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUworICAgIFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBv
c2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJf
REVSSVZFRF9TT1VSQ0VTCisgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktp
dDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYworKQorCitzZXQoV2ViS2l0MlJlc291cmNlcwor
KQorCitpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICBsaXN0KEFQUEVORCBXZWJLaXQyUmVzb3Vy
Y2VzCisgICAgICAgICIgICAgICAgIDxmaWxlIGFsaWFzPVwiYXVkaW8vQ29tcG9zaXRlXCI+Q29t
cG9zaXRlLndhdjwvZmlsZT5cbiIKKyAgICApCitlbmRpZiAoKQorCitmaWxlKFdSSVRFICR7REVS
SVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxl
LnhtbAorICAgICI8P3htbCB2ZXJzaW9uPTEuMCBlbmNvZGluZz1VVEYtOD8+XG4iCisgICAgIjxn
cmVzb3VyY2VzPlxuIgorICAgICIgICAgPGdyZXNvdXJjZSBwcmVmaXg9XCIvb3JnL3dlYmtpdHdw
ZS9yZXNvdXJjZXNcIj5cbiIKKyAgICAke1dlYktpdDJSZXNvdXJjZXN9CisgICAgIiAgICA8L2dy
ZXNvdXJjZT5cbiIKKyAgICAiPC9ncmVzb3VyY2VzPlxuIgorKQorCithZGRfY3VzdG9tX2NvbW1h
bmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVz
b3VyY2VzR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX1dF
QktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIENPTU1B
TkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzIC0tc291cmNlZGlyPSR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vcmVzb3VyY2VzIC0tdGFy
Z2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291
cmNlQnVuZGxlLmMgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJj
ZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVSQkFUSU0KKykKKworbGlzdChBUFBFTkQgV2Vi
S2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0i
CisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5
cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICIk
e1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3MvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
TmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9OZXR3
b3JrUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy91bml4
IgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybS9JUEMvZ2xpYiIKKyAgICAiJHtXRUJLSVQy
X0RJUn0vUGxhdGZvcm0vSVBDL3VuaXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL2Ns
YXNzaWZpZXIiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy93cGUiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzIgorICAgICIke1dFQktJVDJf
RElSfS9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IiCisgICAg
IiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQv
dW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL2NhaXJvIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dwZSIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwIgorICAgICIke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvbGludXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9zb3Vw
IgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZSIKKyAgICAiJHtXVEZfRElSfS93dGYvZ3RrLyIKKyAgICAiJHtXVEZfRElSfS93dGYv
Z29iamVjdCIKKyAgICAiJHtXVEZfRElSfSIKKyAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KKyAg
ICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtGUkVFVFlQRTJfSU5DTFVERV9ESVJTfQorICAg
ICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtHU1RSRUFNRVJfSU5DTFVERV9ESVJTfQorICAg
ICR7SEFSRkJVWlpfSU5DTFVERV9ESVJTfQorICAgICR7TElCU09VUF9JTkNMVURFX0RJUlN9Cisg
ICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX0xJQlJBUklF
UworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7RlJFRVRZUEUyX0xJQlJBUklFU30KKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R1NUUkVBTUVSX0xJQlJBUklFU30KKyAgICAke0hB
UkZCVVpaX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBfTElCUkFSSUVTfQorICAgICR7V1BFX0xJ
QlJBUklFU30KKykKKworc2V0KEluc3BlY3RvckZpbGVzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS8qLmh0bWwKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJ
Un0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvKi5jc3MK
KyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnLyouY3NzCisgICAgJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy8qLmpzCisgICAg
JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9F
eHRlcm5hbC9Db2RlTWlycm9yLyouY3NzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yLyouanMKKyAg
ICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0V4dGVybmFsL0VTTGludC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Fc3ByaW1hLyouanMKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9ndGsvKi5wbmcKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5zdmcKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy8qLmpzCisgICAgJHtD
TUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90
b2NvbC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm94aWVzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvKi5qcworICAgICR7Q01BS0VfU09V
UkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvKi5jc3MK
KyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVyLyouanMKKyAgICAke0NNQUtFX1NP
VVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVh
cFNuYXBzaG90LyouanMKKykKKworZmlsZShHTE9CIEluc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVz
CisgICAgJHtJbnNwZWN0b3JGaWxlc30KKykKKworIyBEZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzIGlzCisjIGV4cGVjdGVk
IGluIERlcml2ZWRTb3VyY2VzL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
LgorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJJ
TlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZENv
bW1hbmRzLmpzCisgICAgREVQRU5EUyAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9E
SVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBDT01NQU5EIGNw
ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3Rv
ckJhY2tlbmRDb21tYW5kcy5qcyAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCispCisK
K2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5T
UEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgREVQRU5EUyAk
e0luc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzfQorICAgICAgICAgICAgJHtERVJJVkVEX1NPVVJD
RVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJh
Y2tlbmRDb21tYW5kcy5qcworICAgICAgICAgICAgJHtUT09MU19ESVJ9L3dwZS9nZW5lcmF0ZS1p
bnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5CisgICAgQ09NTUFORCAke1RPT0xTX0RJUn0v
d3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkgLS1vdXRwdXQ9JHtE
RVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUueG1sICR7SW5zcGVjdG9yRmlsZXN9ICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJ
X0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMK
KyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxl
LmMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5z
cGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291
cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
Ykluc3BlY3RvclVJIC0tc291cmNlZGlyPSR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJ
X0RJUn0gLS10YXJnZXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNw
ZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9E
SVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBWRVJCQVRJTQorKQorCithZGRf
Y3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RP
UlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jCisgICAgREVQRU5EUyAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNl
QnVuZGxlLnhtbAorICAgICAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0luc3BlY3Rv
clNlcnZlci9mcm9udC1lbmQvaW5zcGVjdG9yUGFnZUluZGV4Lmh0bWwKKyAgICBDT01NQU5EIGds
aWItY29tcGlsZS1yZXNvdXJjZXMgLS1nZW5lcmF0ZSAtLXNvdXJjZWRpcj0ke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2Zyb250LWVuZCAtLXRhcmdldD0ke0RFUklWRURf
U09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUuYyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jl
c291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElNCispCisKK2xpc3QoQVBQRU5EIFdQRVdlYklu
c3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVMKKyAgICAke0RFUklWRURfU09VUkNFU19X
RUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jCisgICAgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNl
QnVuZGxlLmMKKykKKworbGlzdChBUFBFTkQgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJB
UklFUworICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorKQorCitsaXN0KEFQUEVORCBXUEVXZWJJ
bnNwZWN0b3JSZXNvdXJjZXNfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURF
X0RJUlN9CispCisKK2FkZF9saWJyYXJ5KFdQRVdlYkluc3BlY3RvclJlc291cmNlcyBTSEFSRUQg
JHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVSSVZFRF9TT1VSQ0VTfSkKK2FkZF9kZXBlbmRl
bmNpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIFdlYktpdDIpCit0YXJnZXRfbGlua19saWJy
YXJpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzICR7V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2Vz
X0xJQlJBUklFU30pCit0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhXUEVXZWJJbnNwZWN0b3JS
ZXNvdXJjZXMgUFVCTElDICR7V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0lOQ0xVREVfRElSRUNU
T1JJRVN9KQoraW5zdGFsbChUQVJHRVRTIFdQRVdlYkluc3BlY3RvclJlc291cmNlcyBERVNUSU5B
VElPTiAiJHtMSUJfSU5TVEFMTF9ESVJ9IikKKworaWYgKEVYUE9SVF9ERVBSRUNBVEVEX1dFQktJ
VDJfQ19BUEkpCisgICAgc2V0KFdQRV9JTlNUQUxMRURfV0VCS0lUX0hFQURFUlMKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLQXJyYXkuaAorICAgICAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0FQSS9jL1dLRGF0YS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Rl
Y2xhcmF0aW9uU3BlY2lmaWVycy5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkv
Yy9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFy
ZWQvQVBJL2MvV0tFcnJvclJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkv
Yy9XS0V2ZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRmluZE9w
dGlvbnMuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tHZW9tZXRyeS5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0ltYWdlLmgKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLTXV0YWJsZUFycmF5LmgKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLTXV0YWJsZURpY3Rpb25hcnkuaAorICAgICAgICAk
e1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tOdW1iZXIuaAorICAgICAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2MvV0tQYWdlTG9hZFR5cGVzLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL0FQSS9jL1dLUGFnZVZpc2liaWxpdHlUeXBlcy5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1NlY3VyaXR5T3JpZ2luUmVmLmgKKyAgICAgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmgKKyAgICAgICAgJHtXRUJLSVQy
X0RJUn0vU2hhcmVkL0FQSS9jL1dLVHlwZS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9BUEkvYy9XS1VSTC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VS
TFJlcXVlc3QuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVUkxSZXNw
b25zZS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJDb250ZW50
SW5qZWN0ZWRGcmFtZXMuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tV
c2VyQ29udGVudFVSTFBhdHRlcm4uaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJ
L2MvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oCisKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaAorCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuaAorICAgICAgICAke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0Zvcndh
cmRMaXN0LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaAorICAgICAgICAke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRE9NV2luZG93RXh0
ZW5zaW9uLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaAorICAgICAgICAk
e1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0
VGVzdFJlc3VsdC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVJbml0aWFsaXplLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oCisgICAg
ICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVOYXZpZ2F0aW9uQWN0aW9uLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGUuaAorICAgICAgICAke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlQmFubmVyLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlRWRpdG9yQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VGb3JtQ2xpZW50LmgKKyAgICAgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VGdWxs
U2NyZWVuQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VHcm91cC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VPdmVybGF5LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaAorICAgICAg
ICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZVJlc291cmNlTG9hZENsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaAorICAgICAgICAk
e1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFu
Z2VIYW5kbGUuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuaAorCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RSZWYuaAorICAgICAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJl
Zi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25u
ZWN0aW9uQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dERvd25sb2FkQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dEhpc3RvcnlDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaAorICAgICAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKyAgICAgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5oCisgICAgICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuaAorICAgICAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsVHlwZXMuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5oCisgICAgICAgICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSW5mb1JlZi5oCisgICAgICAgICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tIaXRUZXN0UmVzdWx0LmgKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmgKKyAgICAg
ICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGFSZWYuaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmgK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlc3Bv
bnNlUmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0
aW9uUmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNv
bnRleHRNZW51Q2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZUZpbmRDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRmluZE1hdGNoZXNDbGllbnQuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRm9ybUNsaWVudC5oCisgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oCisgICAgICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VMb2FkZXJDbGllbnQu
aAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmF2aWdhdGlv
bkNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQ
b2xpY3lDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVBy
b2Nlc3MvQVBJL0MvV0tQbHVnaW5Mb2FkUG9saWN5LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaAorICAgICAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYuaAorICAgICAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaAorICAgICAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyU2NyaXB0UmVmLmgKKyAgICAg
ICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmgK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLV2luZG93RmVhdHVyZXNS
ZWYuaAorCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3
LmgKKworICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nvb2tp
ZU1hbmFnZXJTb3VwLmgKKyAgICApCisKKyAgICBpbnN0YWxsKEZJTEVTICR7V1BFX0lOU1RBTExF
RF9XRUJLSVRfSEVBREVSU30KKyAgICAgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9J
TkNMVURFRElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJT059L1dQRS9XZWJLaXQiCisgICAgICAgIENP
TVBPTkVOVCAiRGV2ZWxvcG1lbnQiCisgICAgKQorCisgICAgc2V0KFdQRV9JTlNUQUxMRURfSEVB
REVSUworICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oCisg
ICAgKQorCisgICAgaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfSEVBREVSU30KKyAgICAg
ICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUtJHtXUEVfQVBJ
X1ZFUlNJT059L1dQRSIKKyAgICAgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIKKyAgICApCisK
KyAgICBpbnN0YWxsKEZJTEVTICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5wYworICAg
ICAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0vcGtnY29uZmlnIgorICAg
ICAgICBDT01QT05FTlQgIkRldmVsb3BtZW50IgorICAgICkKK2VuZGlmKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIGIv
U291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKaW5k
ZXggYjYxZGI3ODc3NGEuLmE3ZDNhMGI2YjkyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbApAQCAtMzUsNyArMzUsNyBA
QCB1c2UgRmlsZTo6U3BlYzo6RnVuY3Rpb25zOwogdXNlIEdldG9wdDo6TG9uZzsKIAogbXkgJHNy
Y1Jvb3QgPSByZWFscGF0aChGaWxlOjpTcGVjLT5jYXRmaWxlKGRpcm5hbWUoYWJzX3BhdGgoJDAp
KSwgIi4uLy4uIikpOwotbXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29h
IiwgIkNvY29hIiwgIkNvb3JkaW5hdGVkR3JhcGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwg
ImlvcyIsICJtYWMiLCAic291cCIsICJ3aW4iKTsKK215IEBwbGF0Zm9ybVByZWZpeGVzID0gKCJj
YSIsICJjZiIsICJjb2NvYSIsICJDb2NvYSIsICJDb29yZGluYXRlZEdyYXBoaWNzIiwgImN1cmwi
LCAiZWZsIiwgImd0ayIsICJpb3MiLCAibWFjIiwgInNvdXAiLCAid2luIiwgIndwZSIpOwogbXkg
QGZyYW1ld29ya3MgPSAoIkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiLCAiV2ViS2l0Iik7CiBt
eSBAc2tpcHBlZFByZWZpeGVzOwogbXkgQGZyYW1ld29ya0hlYWRlcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMmU4ZmJmYmJlNWMuLjMzYTA2OTg4ZTY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUg
PFdlYktpdC9XS0Jhc2VNYWMuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElOR19XUEVf
XykKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlV1BFLmg+CisjZW5kaWYKKwogLyogV2ViS2l0MiBz
aGFyZWQgdHlwZXMgKi8KIAogdHlwZWRlZiB1aW50MzJfdCBXS1R5cGVJRDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5iNWVmMDYyMjAyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKQEAgLTAsMCArMSwzNSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdL
QmFzZVdQRV9oCisjZGVmaW5lIFdLQmFzZVdQRV9oCisKKyNpZm5kZWYgV0tCYXNlX2gKKyNlcnJv
ciAiUGxlYXNlICNpbmNsdWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJl
Y3RseS4iCisjZW5kaWYKKwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3KiBXS1Zp
ZXdSZWY7CisKKyNlbmRpZiAvKiBXS0Jhc2VXUEVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy93cGUvV2ViS2l0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjUwZWQxYWMyYjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL3dwZS9XZWJLaXQuaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQRV9XZWJLaXRfaAorI2RlZmlu
ZSBXUEVfV2ViS2l0X2gKKworI2RlZmluZSBCVUlMRElOR19XUEVfXworCisjaW5jbHVkZSA8V2Vi
S2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4KKworLy8gRnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0L1dLQXJyYXkuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tEYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGVjbGFyYXRpb25T
cGVjaWZpZXJzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGljdGlvbmFyeS5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS0Vycm9yUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNdXRh
YmxlRGljdGlvbmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS051bWJlci5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLU3RyaW5n
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVVJMLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVx
dWVzdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1Vz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CisKKy8vIEZyb20gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy8KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGUuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
QnVuZGxlRmlsZUhhbmRsZVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUZyYW1lLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS0J1bmRsZUluaXRpYWxpemUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVJbnNw
ZWN0b3IuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlTm9kZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0J1bmRsZVBhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlQmFubmVyLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0J1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlR3JvdXAuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLQnVuZGxlUGFnZU92ZXJsYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQ
YWdlUG9saWN5Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVJlc291cmNl
TG9hZENsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVJhbmdlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlU2NyaXB0V29ybGQuaD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVm
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbC5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0NyZWRlbnRpYWxUeXBlcy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1lLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLRnJhbWVJbmZvUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVQb2xp
Y3lMaXN0ZW5lci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0hpdFRlc3RSZXN1bHQuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
TmF2aWdhdGlvbkRhdGFSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uUmVmLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uUmVm
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
UHJlZmVyZW5jZXNSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tTZXNzaW9uU3RhdGVSZWYuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tVc2VyU2NyaXB0UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVmlldy5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS1dpbmRvd0ZlYXR1cmVzUmVmLmg+CisKKyNlbmRpZiAvLyBXUEVfV2ViS2l0X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9v
cC5jcHAKaW5kZXggOGFjZjUwNjkyMTAuLjIyNDM4OGVlYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29t
cG9zaXRpbmdSdW5Mb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcApAQCAt
NzUsNyArNzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdvcmtRdWV1ZVBvb2woKQogICAg
IHsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgICAgIG1fdGhyZWFkQ291bnRMaW1pdCA9IDE7CiAjZWxzZQogICAgICAgICBtX3RocmVh
ZENvdW50TGltaXQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29w
LmgKaW5kZXggODE2ZDQ2N2I1MTAuLjY0NWQ3YjkwZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9z
aXRpbmdSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCiAKKyNpbmNs
dWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3Rm
L0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCmlu
ZGV4IDU0ZDk2MGIzZDBlLi45NmQyOTY2YmRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKQEAgLTQzLDEyICs0
MywxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LVJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKENsaWVu
dCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWxlRmFjdG9y
LCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYyBkb0ZyYW1l
U3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZsYWdzKQorUmVmPFRocmVhZGVk
Q29tcG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQsIFdl
YlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVG
YWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRv
RnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkZWRDb21wb3NpdG9yKGNsaWVudCwgdmlld3BvcnRT
aXplLCBzY2FsZUZhY3RvciwgbmF0aXZlU3VyZmFjZUhhbmRsZSwgZG9GcmFtZVN5bmMsIHBhaW50
RmxhZ3MpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaHJlYWRlZENvbXBvc2l0b3IoY2xp
ZW50LCB3ZWJQYWdlLCB2aWV3cG9ydFNpemUsIHNjYWxlRmFjdG9yLCBuYXRpdmVTdXJmYWNlSGFu
ZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFncykpOwogfQogCi1UaHJlYWRlZENvbXBvc2l0b3I6
OlRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmIGNsaWVudCwgY29uc3QgSW50U2l6ZSYgdmlld3Bv
cnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSwg
U2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3Mg
cGFpbnRGbGFncykKK1RocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFkZWRDb21wb3NpdG9yKENsaWVu
dCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUs
IGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGRE
b0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZs
YWdzKQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV92aWV3cG9ydFNpemUodmlld3Bv
cnRTaXplKQogICAgICwgbV9zY2FsZUZhY3RvcihzY2FsZUZhY3RvcikKQEAgLTY0LDEzICs2NCwy
MSBAQCBUaHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmIGNsaWVu
dCwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaQogICAgIG1fY2xpZW50UmVuZGVyc05leHRGcmFt
ZS5zdG9yZShmYWxzZSk7CiAgICAgbV9jb29yZGluYXRlVXBkYXRlQ29tcGxldGlvbldpdGhDbGll
bnQuc3RvcmUoZmFsc2UpOwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1fY29tcG9zaXRpbmdN
YW5hZ2VyLmVzdGFibGlzaENvbm5lY3Rpb24od2ViUGFnZSk7CisjZW5kaWYKKwogICAgIG1fY29t
cG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKV0gewogICAgICAgICBtX3NjZW5lID0gYWRvcHRSZWYobmV3IENvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZSh0aGlzKSk7CisjaWYgUExBVEZPUk0oR1RLKQogICAgICAgICBpZiAo
bV9uYXRpdmVTdXJmYWNlSGFuZGxlKSB7CiAgICAgICAgICAgICBjcmVhdGVHTENvbnRleHQoKTsK
ICAgICAgICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUoZmFsc2UpOworI2VsaWYgUExBVEZPUk0oV1BF
KQorICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CisjZW5kaWYKICAgICB9KTsKIH0K
IApAQCAtODEsNiArODksOCBAQCBUaHJlYWRlZENvbXBvc2l0b3I6On5UaHJlYWRlZENvbXBvc2l0
b3IoKQogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdMQ29udGV4dCgpCiB7CiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyNpZiBQTEFURk9STShHVEspCiAgICAgQVNTRVJU
KG1fbmF0aXZlU3VyZmFjZUhhbmRsZSk7CiAKICAgICBtX2NvbnRleHQgPSBHTENvbnRleHQ6OmNy
ZWF0ZUNvbnRleHRGb3JXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxHTE5hdGl2ZVdpbmRvd1R5cGU+
KG1fbmF0aXZlU3VyZmFjZUhhbmRsZSksICZQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXlG
b3JDb21wb3NpdGluZygpKTsKQEAgLTkxLDYgKzEwMSwyMiBAQCB2b2lkIFRocmVhZGVkQ29tcG9z
aXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKICAgICAgICAgaWYgKG1fY29udGV4dC0+bWFrZUNvbnRl
eHRDdXJyZW50KCkpCiAgICAgICAgICAgICBtX2NvbnRleHQtPnN3YXBJbnRlcnZhbCgwKTsKICAg
ICB9CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBhdXRvJiBwbGF0Zm9ybURpc3Bs
YXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKTsKKyAgICBSRUxFQVNFX0FTU0VS
VChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkpOworICAgIG1fdGFyZ2V0
ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihwbGF0Zm9ybURpc3BsYXkpLmNyZWF0ZUVH
TFRhcmdldCgqdGhpcywgbV9jb21wb3NpdGluZ01hbmFnZXIucmVsZWFzZUNvbm5lY3Rpb25GZCgp
KTsKKyAgICBBU1NFUlQobV90YXJnZXQpOworICAgIG1fdGFyZ2V0LT5pbml0aWFsaXplKG1fdmll
d3BvcnRTaXplKTsKKworICAgIG1fY29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlQ29udGV4dEZv
cldpbmRvdyhtX3RhcmdldC0+bmF0aXZlV2luZG93KCksICZwbGF0Zm9ybURpc3BsYXkpOworICAg
IGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fY29udGV4dC0+
bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgogfQogCiB2b2lk
IFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCkBAIC0xMDAsMTYgKzEyNiwyMyBAQCB2
b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCiAgICAgbV9jb21wb3NpdGluZ1J1
bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSB7CiAgICAgICAgIG1fc2NlbmUtPnB1cmdlR0xSZXNvdXJjZXMoKTsKICAgICAgICAgbV9j
b250ZXh0ID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgIG1fdGFyZ2V0ID0g
bnVsbHB0cjsKKyNlbmRpZgogICAgICAgICBtX3NjZW5lID0gbnVsbHB0cjsKICAgICB9KTsKICNp
ZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQogICAgIG1fZGlz
cGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7CiAjZW5kaWYKICAgICBtX2NvbXBvc2l0
aW5nUnVuTG9vcCA9IG51bGxwdHI7CisjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJ
U1BMQVlfTU9OSVRPUikKKyAgICBtX2Rpc3BsYXlSZWZyZXNoTW9uaXRvci0+aW52YWxpZGF0ZSgp
OworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXROYXRpdmVTdXJmYWNl
SGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogeworI2lmIFBMQVRGT1JNKEdU
SykKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c3RvcFVwZGF0ZXMoKTsKICAgICBtX2NvbXBv
c2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGhhbmRsZV0gewogICAgICAgICAvLyBBIG5ldyBuYXRpdmUgaGFuZGxlIGNh
bid0IGJlIHNldCB3aXRob3V0IGRlc3Ryb3lpbmcgdGhlIHByZXZpb3VzIG9uZSBmaXJzdCBpZiBh
bnkuCkBAIC0xMjMsNiArMTU2LDcgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldE5hdGl2
ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiAgICAgICAgICAg
ICBtX2NvbnRleHQgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgfSk7CisjZW5kaWYKIH0KIAog
dm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldFNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlKQpAQCAt
MTQ2LDYgKzE4MCwxMCBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0Vmlld3BvcnRTaXpl
KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbAogewogICAgIG1fY29tcG9z
aXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgdmlld3BvcnRTaXplLCBzY2FsZV0gewogICAgICAgICBtX3ZpZXdwb3J0U2l6
ZSA9IHZpZXdwb3J0U2l6ZTsKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgIGlmIChtX3Rhcmdl
dCkKKyAgICAgICAgICAgIG1fdGFyZ2V0LT5yZXNpemUodmlld3BvcnRTaXplKTsKKyNlbmRpZgog
ICAgICAgICBtX3NjYWxlRmFjdG9yID0gc2NhbGU7CiAgICAgICAgIG1fbmVlZHNSZXNpemUgPSB0
cnVlOwogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c2NoZWR1bGVVcGRhdGUoKTsKQEAg
LTE4OSw5ICsyMjcsMTggQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJlbmRlckxheWVyVHJl
ZSgpCiAgICAgaWYgKCFtX3NjZW5lIHx8ICFtX3NjZW5lLT5pc0FjdGl2ZSgpKQogICAgICAgICBy
ZXR1cm47CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAg
IGNyZWF0ZUdMQ29udGV4dCgpOworI2VuZGlmCisKICAgICBpZiAoIW1fY29udGV4dCB8fCAhbV9j
b250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExB
VEZPUk0oV1BFKQorICAgIG1fdGFyZ2V0LT5mcmFtZVdpbGxSZW5kZXIoKTsKKyNlbmRpZgorCiAg
ICAgaWYgKG1fbmVlZHNSZXNpemUpIHsKICAgICAgICAgZ2xWaWV3cG9ydCgwLCAwLCBtX3ZpZXdw
b3J0U2l6ZS53aWR0aCgpLCBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgIG1fbmVl
ZHNSZXNpemUgPSBmYWxzZTsKQEAgLTIxMSw3ICsyNTgsMTMgQEAgdm9pZCBUaHJlYWRlZENvbXBv
c2l0b3I6OnJlbmRlckxheWVyVHJlZSgpCiAKICAgICBtX2NvbnRleHQtPnN3YXBCdWZmZXJzKCk7
CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV90YXJnZXQtPmZyYW1lUmVuZGVyZWQoKTsKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQogICAgIHNjZW5lVXBkYXRlRmluaXNoZWQoKTsKKyNl
bmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2NlbmVVcGRhdGVGaW5pc2hlZCgp
CkBAIC0yNzAsNSArMzIzLDMyIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjb29yZGluYXRl
VXBkYXRlQ29tcGxldGlvbldpdGhDbGllbnQoKQogfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShX
UEUpCitzdGF0aWMgdm9pZCBkZWJ1Z1RocmVhZGVkQ29tcG9zaXRvckZQUygpCit7CisgICAgc3Rh
dGljIGRvdWJsZSBsYXN0VGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgc3RhdGljIHVuc2lnbmVk
IGZyYW1lQ291bnQgPSAwOworCisgICAgZG91YmxlIGN0ID0gY3VycmVudFRpbWUoKTsKKyAgICBm
cmFtZUNvdW50Kys7CisKKyAgICBpZiAoY3QgLSBsYXN0VGltZSA+PSA1LjApIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJUaHJlYWRlZENvbXBvc2l0b3I6IGZyYW1lIGNhbGxiYWNrcyAlLjJm
IEZQU1xuIiwgZnJhbWVDb3VudCAvIChjdCAtIGxhc3RUaW1lKSk7CisgICAgICAgIGxhc3RUaW1l
ID0gY3Q7CisgICAgICAgIGZyYW1lQ291bnQgPSAwOworICAgIH0KK30KKwordm9pZCBUaHJlYWRl
ZENvbXBvc2l0b3I6OmZyYW1lQ29tcGxldGUoKQoreworICAgIEFTU0VSVChtX2NvbXBvc2l0aW5n
UnVuTG9vcC0+aXNDdXJyZW50KCkpOworICAgIHN0YXRpYyBib29sIHJlcG9ydEZQUyA9ICEhc3Rk
OjpnZXRlbnYoIldQRV9USFJFQURFRF9DT01QT1NJVE9SX0ZQUyIpOworICAgIGlmIChyZXBvcnRG
UFMpCisgICAgICAgIGRlYnVnVGhyZWFkZWRDb21wb3NpdG9yRlBTKCk7CisKKyAgICBzY2VuZVVw
ZGF0ZUZpbmlzaGVkKCk7Cit9CisjZW5kaWYKKwogfQogI2VuZGlmIC8vIFVTRShDT09SRElOQVRF
RF9HUkFQSElDU19USFJFQURFRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCA2Nzk1NGEwN2E0Ni4uZWIxMjQ1OTc1
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmgKQEAgLTQyLDYgKzQyLDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNw
bGF5UmVmcmVzaE1vbml0b3IuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorI2luY2x1
ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNw
bGF5V1BFLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IENvb3JkaW5h
dGVkR3JhcGhpY3NTdGF0ZTsKIH0KQEAgLTUxLDggKzU2LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOwogY2xhc3MgQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lQ2xpZW50OwogY2xhc3MgVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3I7Citj
bGFzcyBXZWJQYWdlOwogCi1jbGFzcyBUaHJlYWRlZENvbXBvc2l0b3IgOiBwdWJsaWMgQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhy
ZWFkZWRDb21wb3NpdG9yPiB7CitjbGFzcyBUaHJlYWRlZENvbXBvc2l0b3IgOiBwdWJsaWMgQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
VGhyZWFkZWRDb21wb3NpdG9yPgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAsIHB1YmxpYyBXZWJD
b3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6Q2xpZW50CisjZW5kaWYKKyAgICB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkZWRDb21wb3NpdG9yKTsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTY0LDcgKzc0LDcgQEAgcHVibGljOgog
CiAgICAgZW51bSBjbGFzcyBTaG91bGREb0ZyYW1lU3luYyB7IE5vLCBZZXMgfTsKIAotICAgIHN0
YXRpYyBSZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBjcmVhdGUoQ2xpZW50JiwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFu
ZGxlID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0ZyYW1lU3luYzo6WWVzLCBXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CisgICAgc3RhdGljIFJlZjxUaHJl
YWRlZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBXZWJQYWdlJiwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxl
ID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0ZyYW1lU3luYzo6WWVzLCBXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CiAgICAgdmlydHVhbCB+VGhyZWFkZWRD
b21wb3NpdG9yKCk7CiAKICAgICB2b2lkIHNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3Np
dGluZyh1aW50NjRfdCk7CkBAIC04NywxMyArOTcsMTggQEAgcHVibGljOgogI2VuZGlmCiAKIHBy
aXZhdGU6Ci0gICAgVGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSwg
U2hvdWxkRG9GcmFtZVN5bmMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MpOwor
ICAgIFRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmLCBXZWJQYWdlJiwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxl
LCBTaG91bGREb0ZyYW1lU3luYywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyk7
CiAKICAgICAvLyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQKICAgICB2b2lkIHJlbmRl
ck5leHRGcmFtZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXllcklELCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpIG92ZXJyaWRlOwogCisjaWYgUExBVEZPUk0oV1BFKQor
ICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6U3VyZmFjZTo6Q2xpZW50CisgICAg
dm9pZCBmcmFtZUNvbXBsZXRlKCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIHZvaWQgcmVuZGVy
TGF5ZXJUcmVlKCk7CiAgICAgdm9pZCBzY2VuZVVwZGF0ZUZpbmlzaGVkKCk7CiAKQEAgLTEwMSw2
ICsxMTYsMTIgQEAgcHJpdmF0ZToKIAogICAgIENsaWVudCYgbV9jbGllbnQ7CiAgICAgUmVmUHRy
PENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZT4gbV9zY2VuZTsKKworI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICBDb21wb3NpdGluZ01hbmFnZXIgbV9jb21wb3NpdGluZ01hbmFnZXI7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0PiBtX3Rhcmdl
dDsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdMQ29udGV4dD4gbV9j
b250ZXh0OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAppbmRleCA3ZmM0ZDdjNGIzZi4uYTQzNWUxOWJi
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgKQEAgLTM0LDYgKzM0
LDggQEAgZW51bSBEcmF3aW5nQXJlYVR5cGUgewogICAgIERyYXdpbmdBcmVhVHlwZVRpbGVkQ29y
ZUFuaW1hdGlvbiwKICNlbmRpZgogICAgIERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZSwK
KyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBEcmF3aW5nQXJlYVR5cGVXUEUKICNlbHNlCiAgICAg
RHJhd2luZ0FyZWFUeXBlSW1wbAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05h
dGl2ZVdlYktleWJvYXJkRXZlbnQuaAppbmRleCBjYjFmMTE4Yzg5Mi4uMTRmZGRlMjI0ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaApAQCAt
NTEsNiArNTEsMTAgQEAgdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiBPQkpDX0NM
QVNTIFdlYkV2ZW50OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX2lu
cHV0X2tleWJvYXJkX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYktleWJvYXJkRXZlbnQgewpAQCAt
NjIsNiArNjYsOCBAQCBwdWJsaWM6CiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChHZGtFdmVu
dCosIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYsIElucHV0TWV0aG9kRmlsdGVy
OjpFdmVudEZha2VkRm9yQ29tcG9zaXRpb24sIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMpOwog
I2VsaWYgUExBVEZPUk0oSU9TKQogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoOjpXZWJFdmVu
dCAqKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqKTsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJ
VCkKQEAgLTcyLDYgKzc4LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNGYWtlRXZlbnRGb3JDb21w
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmFrZUV2ZW50Rm9yQ29tcG9zaXRpb247IH0KICNl
bGlmIFBMQVRGT1JNKElPUykKICAgICA6OldlYkV2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBj
b25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRp
ZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdl
Yk1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50
LmgKaW5kZXggODhjZDE0MTA5MzguLjI4M2ZjMzM0OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKQEAgLTM4LDYgKzM4LDEwIEBAIE9CSkNfQ0xBU1Mg
TlNWaWV3OwogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiAjZW5kaWYKIAorI2lm
IFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudDsKKyNlbmRpZgor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudCA6IHB1Ymxp
YyBXZWJNb3VzZUV2ZW50IHsKQEAgLTQ3LDYgKzUxLDggQEAgcHVibGljOgogI2VsaWYgUExBVEZP
Uk0oR1RLKQogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoY29uc3QgTmF0aXZlV2ViTW91c2VFdmVu
dCYpOwogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoR2RrRXZlbnQqLCBpbnQpOworI2VsaWYgUExB
VEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2lu
dGVyX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwogI2VuZGlmCiAKICNpZiBVU0Uo
QVBQS0lUKQpAQCAtNTUsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgR2RrRXZlbnQqIG5h
dGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQoKTsgfQogI2VsaWYg
UExBVEZPUk0oSU9TKQogICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1
cm4gMDsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50
KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCAxMTgxMjRjZGViYy4u
ODJmM2IyNGQ0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJU
b3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZl
bnQuaApAQCAtMzQsNiArMzQsOCBAQAogc3RydWN0IF9VSVdlYlRvdWNoRXZlbnQ7CiAjZWxpZiBQ
TEFURk9STShHVEspCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRyR3RrLmg+CisjZWxpZiBQ
TEFURk9STShXUEUpCisjaW5jbHVkZSA8d3BlL2lucHV0Lmg+CiAjZW5kaWYKIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC00Niw2ICs0OCw5IEBAIHB1YmxpYzoKICAgICBOYXRpdmVXZWJUb3VjaEV2
ZW50KEdka0V2ZW50KiwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJik7CiAgICAgTmF0
aXZlV2ViVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50Jik7CiAgICAgY29uc3Qg
R2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQo
KTsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF90b3VjaF9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICBj
b25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyogbmF0aXZlRmFsbGJhY2tUb3Vj
aFBvaW50KCkgY29uc3QgeyByZXR1cm4gJm1fZmFsbGJhY2tUb3VjaFBvaW50OyB9CiAjZW5kaWYK
IAogcHJpdmF0ZToKQEAgLTU1LDYgKzYwLDggQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBHVW5pcXVlUHRyPEdka0V2ZW50PiBtX25hdGl2ZUV2ZW50OworI2VsaWYgUExBVEZP
Uk0oV1BFKQorICAgIHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3IG1fZmFsbGJhY2tU
b3VjaFBvaW50OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdl
YldoZWVsRXZlbnQuaAppbmRleCA1ZGIwYmNlOGZlYi4uMTVmOTU4NjcxNzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaApAQCAtMzgsNiArMzgsMTAgQEAg
T0JKQ19DTEFTUyBOU1ZpZXc7CiB0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50Owor
I2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50
IDogcHVibGljIFdlYldoZWVsRXZlbnQgewpAQCAtNDcsNiArNTEsOCBAQCBwdWJsaWM6CiAjZWxp
ZiBQTEFURk9STShHVEspCiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChjb25zdCBOYXRpdmVXZWJX
aGVlbEV2ZW50Jik7CiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVudCopOworI2VsaWYg
UExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9h
eGlzX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwogI2VuZGlmCiAKICNpZiBVU0Uo
QVBQS0lUKQpAQCAtNTUsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAgR2RrRXZlbnQqIG5hdGl2ZUV2
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQoKTsgfQogI2VsaWYgUExBVEZP
Uk0oSU9TKQogICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gMDsg
fQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50KCkgY29u
c3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGJjNWQ2OTE3ZjMx
Li5iMDQwZWMwYWZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKQEAgLTg0LDExICs4NCwxNCBAQAogI2lmIFBMQVRGT1JNKElPUykKICNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9y
T3ZlcmxheS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2FyZC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VsZWN0aW9uUmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+
CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCisjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9S
TShXUEUpCisjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CisjZW5kaWYKKwogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBs
YXliYWNrVGFyZ2V0Q29udGV4dC5oPgogI2VuZGlmCkBAIC0xNDkyLDYgKzE0OTUsMjMgQEAgYm9v
bCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRJbWFnZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBQYXN0ZWJvYXJkSW1hZ2UmIHAKIAogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCit2b2lk
IEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgZW5jb2Rl
ciA8PCBjb250ZW50LnRleHQ7CisgICAgZW5jb2RlciA8PCBjb250ZW50Lm1hcmt1cDsKK30KKwor
Ym9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoY29udGVudC50ZXh0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoY29udGVudC5tYXJrdXApKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYgLy8gUExBVEZPUk0oV1BFKQorCiB2b2lkIEFy
Z3VtZW50Q29kZXI8RGljdGF0aW9uQWx0ZXJuYXRpdmU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRGljdGF0aW9uQWx0ZXJuYXRpdmUmIGRpY3RhdGlvbkFsdGVybmF0aXZlKQogewog
ICAgIGVuY29kZXIgPDwgZGljdGF0aW9uQWx0ZXJuYXRpdmUucmFuZ2VTdGFydDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAwZjU1YjhhZjVh
Yi4uZDJhZWNmYmNlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTEzNCw2ICsxMzQsMTIgQEAgc3RydWN0IFNvdXBOZXR3b3JrUHJveHlT
ZXR0aW5nczsKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorbmFtZXNwYWNlIFdlYkNv
cmUgeworc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50czsKK30KKyNlbmRpZgorCiAjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29udGVu
dEZpbHRlclVuYmxvY2tIYW5kbGVyOwpAQCAtNDE2LDYgKzQyMiwxMyBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncz4gewog
fTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudD4geworICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJD
b250ZW50Jik7Cit9OworI2VuZGlmCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lJik7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5p
dGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25z
LmgKaW5kZXggOTZiYmE1ZDlhMzQuLjNlOGY4MmU2ZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTM3NSw3ICszNzUsNyBA
QAogICAgIG1hY3JvKFBpY3RvZ3JhcGhGb250RmFtaWx5LCBwaWN0b2dyYXBoRm9udEZhbWlseSwg
U3RyaW5nLCBTdHJpbmcsICJBcHBsZSBDb2xvciBFbW9qaSIsICIiLCAiIikgXAogICAgIFwKIAot
I2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZX1BSRUZFUkVOQ0UobWFjcm8p
IFwKICAgICBtYWNybyhTdGFuZGFyZEZvbnRGYW1pbHksIHN0YW5kYXJkRm9udEZhbWlseSwgU3Ry
aW5nLCBTdHJpbmcsICJUaW1lcyIsICIiLCAiIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2ODNiODEyZjNiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNw
cApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJLZXli
b2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK05hdGl2ZVdlYktleWJvYXJkRXZlbnQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZl
bnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgOiBXZWJLZXli
b2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChldmVudCkp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZDlkNDNkZTVlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcApAQCAtMCww
ICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50Lmgi
CisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K05hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1
dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCisgICAgOiBX
ZWJNb3VzZUV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVudCwg
ZGV2aWNlU2NhbGVGYWN0b3IpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wY2M2NjU4Y2ZiNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hF
dmVudFdQRS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF0
aXZlV2ViVG91Y2hFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2
ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvcikKKyAgICA6IFdlYlRvdWNoRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJU
b3VjaEV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3RvcikpCisgICAgLCBtX2ZhbGxiYWNrVG91
Y2hQb2ludCB7IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwsIDAsIDAsIDAsIDAgfQor
eworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBldmVudC0+dG91Y2hwb2ludHNfbGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgYXV0byYgcG9pbnQgPSBldmVudC0+dG91Y2hwb2ludHNbaV07Cisg
ICAgICAgIGlmIChwb2ludC50eXBlICE9IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwp
IHsKKyAgICAgICAgICAgIG1fZmFsbGJhY2tUb3VjaFBvaW50ID0gcG9pbnQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRX
UEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BF
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmE5NjJlZDRkY2MK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYldo
ZWVsRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ik5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgor
CisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZlV2ViV2hl
ZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQq
IGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYldoZWVsRXZlbnQoV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3Rv
cikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kODdhOTI3YWJiMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNw
cApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rv
cm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVjdXRhYmxlUGF0aC5o
IgorCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgor
I2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgU3RyaW5nIGdldEV4ZWN1dGFi
bGVQYXRoKCkKK3sKKyAgICBDU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0Q3VycmVudEV4ZWN1
dGFibGVQYXRoKCk7CisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuIGRpcmVjdG9yeU5hbWUoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihl
eGVjdXRhYmxlUGF0aC5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK3N0YXRp
YyBTdHJpbmcgZmluZFdlYktpdFByb2Nlc3MoY29uc3QgY2hhciogcHJvY2Vzc05hbWUpCit7Cisg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4ZWNEaXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX0VY
RUNfUEFUSCIpOworICAgIGlmIChleGVjRGlyZWN0b3J5KSB7CisgICAgICAgIFN0cmluZyBwcm9j
ZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9tRmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKGV4ZWNEaXJlY3RvcnkpLCBwcm9jZXNzTmFtZSk7CisgICAgICAgIGlmIChm
aWxlRXhpc3RzKHByb2Nlc3NQYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNzUGF0aDsK
KyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0RXhlY3V0YWJs
ZVBhdGgoKTsKKyAgICBpZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVsbCgpKSB7CisgICAgICAgIFN0
cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChleGVjdXRhYmxlUGF0
aCwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4aXN0cyhwcm9jZXNzUGF0aCkpCisg
ICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAgfQorCisgICAgcmV0dXJuIHBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKExJ
QkVYRUNESVIpLCBwcm9jZXNzTmFtZSk7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mV2Vi
UHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVXZWJQcm9jZXNz
Iik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpCit7CisgICAg
cmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVQbHVnaW5Qcm9jZXNzIik7Cit9CisKK1N0cmlu
ZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2Vi
S2l0UHJvY2VzcygiV1BFTmV0d29ya1Byb2Nlc3MiKTsKK30KKworI2lmIEVOQUJMRShEQVRBQkFT
RV9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3MoKQorewor
ICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFRGF0YWJhc2VQcm9jZXNzIik7Cit9Cisj
ZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
d3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjU1NzFlMWFhYzk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsMjE1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU2Ny
b2xsYmFyLmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dGF0aWMgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAw
OworICAgIHVuc2lnbmVkIGV2ZW50TW9kaWZpZXJzID0gZXZlbnQtPm1vZGlmaWVyczsKKworICAg
IGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9jb250cm9s
KQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRyb2xLZXk7CisgICAgaWYgKGV2
ZW50TW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX3NoaWZ0KQorICAgICAg
ICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OworICAgIGlmIChldmVudE1vZGlmaWVy
cyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9hbHQpCisgICAgICAgIG1vZGlmaWVycyB8
PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9r
ZXlib2FyZF9tb2RpZmllcl9tZXRhKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6Ok1l
dGFLZXk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9k
aWZpZXJzKTsKK30KKworc3RhdGljIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmdGb3JLZXlF
dmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBjb25z
dCBjaGFyKiBzaW5nbGVDaGFyYWN0ZXIgPSB3cGVfaW5wdXRfc2luZ2xlX2NoYXJhY3Rlcl9mb3Jf
a2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwgZXZlbnQpOwor
ICAgIGlmIChzaW5nbGVDaGFyYWN0ZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoc2luZ2xlQ2hh
cmFjdGVyKTsKKworICAgIGdsb25nIGxlbmd0aDsKKyAgICBHVW5pcXVlUHRyPGd1bmljaGFyMj4g
dWNoYXIxNihnX3VjczRfdG9fdXRmMTYoJmV2ZW50LT51bmljb2RlLCAxLCAwLCAmbGVuZ3RoLCBu
dWxscHRyKSk7CisgICAgaWYgKHVjaGFyMTYpCisgICAgICAgIHJldHVybiBTdHJpbmcodWNoYXIx
Ni5nZXQoKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMgU3RyaW5nIGlkZW50
aWZpZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBl
dmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBpZGVudGlmaWVyID0gd3BlX2lucHV0X2lkZW50aWZp
ZXJfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2
ZW50KTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFN0cmluZyhpZGVudGlm
aWVyKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiVSslMDRYIiwgZXZlbnQtPnVuaWNv
ZGUpOworfQorCitXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5
Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAg
ICBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nID0gc2luZ2xlQ2hhcmFjdGVyU3RyaW5nRm9y
S2V5RXZlbnQoZXZlbnQpOworICAgIFN0cmluZyBpZGVudGlmaWVyU3RyaW5nID0gaWRlbnRpZmll
clN0cmluZ0ZvcktleUV2ZW50KGV2ZW50KTsKKworICAgIHJldHVybiBXZWJLZXlib2FyZEV2ZW50
KGV2ZW50LT5wcmVzc2VkID8gV2ViRXZlbnQ6OktleURvd24gOiBXZWJFdmVudDo6S2V5VXAsCisg
ICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmluZywgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBpZGVu
dGlmaWVyU3RyaW5nLAorICAgICAgICB3cGVfaW5wdXRfd2luZG93c19rZXlfY29kZV9mb3Jfa2V5
X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwgZXZlbnQpLAorICAg
ICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICAgICAgbW9k
aWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVudC0+dGltZSk7Cit9CisKK1dlYk1vdXNlRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9p
bnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIFdlYkV2
ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOworICAgIHN3aXRjaCAoZXZlbnQtPnR5
cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOgorICAg
ICAgICB0eXBlID0gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAgICAgdHlwZSA9IGV2
ZW50LT5zdGF0ZSA/IFdlYkV2ZW50OjpNb3VzZURvd24gOiBXZWJFdmVudDo6TW91c2VVcDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIFdlYk1vdXNlRXZl
bnQ6OkJ1dHRvbiBidXR0b24gPSBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKKyAgICBzd2l0Y2gg
KGV2ZW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21v
dGlvbjoKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uOgorICAg
ICAgICBpZiAoZXZlbnQtPmJ1dHRvbiA9PSAxKQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91
c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmJ1dHRvbiA9PSAy
KQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b247CisgICAg
ICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMykKKyAgICAgICAgICAgIGJ1dHRvbiA9IFdl
Yk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVf
aW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KKworICAgIHVuc2lnbmVkIGNsaWNrQ291bnQgPSAodHlwZSA9PSBXZWJFdmVu
dDo6TW91c2VEb3duKSA/IDEgOiAwOworCisgICAgLy8gRklYTUU6IFByb3BlciBidXR0b24gc3Vw
cG9ydC4gTW9kaWZpZXJzLiBkZWx0YVgvWS9aLiBDbGljayBjb3VudC4KKyAgICBXZWJDb3JlOjpJ
bnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBvc2l0aW9uLnNjYWxl
KDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQodHlwZSwg
YnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQs
IHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGltZSk7Cit9CisK
K1dlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVj
dCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQor
eworICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGFyZC1jb2RlIHRoaXMuCisgICAgZW51bSBB
eGlzIHsKKyAgICAgICAgVmVydGljYWwsCisgICAgICAgIEhvcml6b250YWwsCisgICAgICAgIFNt
b290aAorICAgIH07CisKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrczsKKyAgICBX
ZWJDb3JlOjpGbG9hdFNpemUgZGVsdGE7CisgICAgc3dpdGNoIChldmVudC0+YXhpcykgeworICAg
IGNhc2UgVmVydGljYWw6CisgICAgICAgIHdoZWVsVGlja3MgPSBXZWJDb3JlOjpGbG9hdFNpemUo
MCwgZXZlbnQtPnZhbHVlIC8gc3RkOjphYnMoZXZlbnQtPnZhbHVlKSk7CisgICAgICAgIGRlbHRh
ID0gd2hlZWxUaWNrczsKKyAgICAgICAgZGVsdGEuc2NhbGUoV2ViQ29yZTo6U2Nyb2xsYmFyOjpw
aXhlbHNQZXJMaW5lU3RlcCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBIb3Jpem9udGFs
OgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKGV2ZW50LT52YWx1ZSAv
IHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSksIDApOworICAgICAgICBkZWx0YSA9IHdoZWVsVGlja3M7
CisgICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0
ZXAoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU21vb3RoOgorICAgICAgICB3aGVlbFRp
Y2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1ZSAvIGRldmljZVNjYWxlRmFj
dG9yKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAgIGRlZmF1bHQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH07CisKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBw
b3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZp
Y2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVs
LCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIGRlbHRhLCB3aGVlbFRpY2tzLCBXZWJXaGVl
bEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1v
ZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKK30KKworc3RhdGljIFdlYktpdDo6V2ViUGxhdGZv
cm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBvaW50KGludCBtYWlu
RXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHBvaW50KQor
eworICAgIGlmIChwb2ludC0+aWQgIT0gbWFpbkV2ZW50SWQpCisgICAgICAgIHJldHVybiBXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworCisgICAgc3dpdGNo
IChwb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93
bjoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBy
ZXNzZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAg
ICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hNb3ZlZDsKKyAg
ICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICByZXR1cm4gV2Vi
S2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ7CisgICAgY2FzZSB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRm
b3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworfQorCitXZWJUb3VjaEV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2
ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgV2ViRXZlbnQ6OlR5
cGUgdHlwZSA9IFdlYkV2ZW50OjpOb1R5cGU7CisgICAgc3dpdGNoIChldmVudC0+dHlwZSkgewor
ICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgdHlwZSA9
IFdlYkV2ZW50OjpUb3VjaFN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1
dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3Vj
aE1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5
cGVfdXA6CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hFbmQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgVmVjdG9yPFdlYktpdDo6V2ViUGxhdGZv
cm1Ub3VjaFBvaW50PiB0b3VjaFBvaW50czsKKyAgICB0b3VjaFBvaW50cy5yZXNlcnZlQ2FwYWNp
dHkoZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aCk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytpKSB7CisgICAgICAgIGF1dG8mIHBv
aW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAgICBpZiAocG9pbnQudHlwZSA9PSB3
cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnRDb29yZGluYXRlcyhwb2ludC54LCBwb2lu
dC55KTsKKyAgICAgICAgcG9pbnRDb29yZGluYXRlcy5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0
b3IpOworICAgICAgICB0b3VjaFBvaW50cy51bmNoZWNrZWRBcHBlbmQoCisgICAgICAgICAgICBX
ZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludChwb2ludC5pZCwgc3RhdGVGb3JUb3VjaFBvaW50
KGV2ZW50LT5pZCwgJnBvaW50KSwKKyAgICAgICAgICAgICAgICBwb2ludENvb3JkaW5hdGVzLCBw
b2ludENvb3JkaW5hdGVzKSk7CisgICAgfQorCisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlw
ZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCksIGV2ZW50LT50
aW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L3dwZS9XZWJFdmVudEZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYTJhYTAzNDUwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJXZWJFdmVudC5oIgorCitzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQ7CitzdHJ1Y3Qg
d3BlX2lucHV0X2tleWJvYXJkX2V2ZW50Oworc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50
Oworc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudDsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYkV2ZW50RmFjdG9yeSB7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYktleWJvYXJk
RXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2
ZW50Kik7CisgICAgc3RhdGljIFdlYk1vdXNlRXZlbnQgY3JlYXRlV2ViTW91c2VFdmVudChzdHJ1
Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7Cisg
ICAgc3RhdGljIFdlYldoZWVsRXZlbnQgY3JlYXRlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X2F4aXNfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgc3RhdGljIFdl
YlRvdWNoRXZlbnQgY3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2
ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNzhh
MzgwNDE1OWUuLjdiZmEwMzdkYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCkBAIC01NTcsNCArNTU3LDggQEAgaW5saW5lIFByb3h5aW5nUmVmUHRyPFdl
YkdyYW1tYXJEZXRhaWw+IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmIGdyYW0K
ICNpbmNsdWRlICJXS0FQSUNhc3RHdGsuaCIKICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElO
R19XUEVfXykKKyNpbmNsdWRlICJXS0FQSUNhc3RXUEUuaCIKKyNlbmRpZgorCiAjZW5kaWYgLy8g
V0tBUElDYXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93
cGUvV0tBUElDYXN0V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dL
QVBJQ2FzdFdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjhh
MWU3MTcwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy93cGUvV0tBUElDYXN0V1BFLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQVBJQ2FzdFdQRV9oCisj
ZGVmaW5lIFdLQVBJQ2FzdFdQRV9oCisKKyNpZm5kZWYgV0tBUElDYXN0X2gKKyNlcnJvciAiUGxl
YXNlICNpbmNsdWRlIFwiV0tBUElDYXN0LmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3Rs
eS4iCisjZW5kaWYKKworI2luY2x1ZGUgIldLVmlldy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0
aXZpdHlTdGF0ZS5oPgorCituYW1lc3BhY2UgV0tXUEUgeworY2xhc3MgVmlldzsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dLX0FERF9BUElfTUFQUElORyhXS1ZpZXdSZWYsIFdLV1BFOjpW
aWV3KQorCitpbmxpbmUgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgdG9WaWV3U3RhdGVG
bGFncyhXS1ZpZXdTdGF0ZSB3a1ZpZXdTdGF0ZSkKK3sKKyAgICB1bnNpZ25lZCB2aWV3U3RhdGVG
bGFncyA9IDA7CisKKyAgICBpZiAod2tWaWV3U3RhdGUgJiBrV0tWaWV3U3RhdGVJc0luV2luZG93
KQorICAgICAgICB2aWV3U3RhdGVGbGFncyB8PSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0lu
V2luZG93OworICAgIGlmICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlzVmlzaWJsZSkKKyAg
ICAgICAgdmlld1N0YXRlRmxhZ3MgfD0gV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxl
OworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdz
Pih2aWV3U3RhdGVGbGFncyk7Cit9CisKK30KKworI2VuZGlmIC8vIFdLQVBJQ2FzdFdQRV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjYmIyMzcxNWVmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwCkBAIC0w
LDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVmlldy5oIgorCisjaW5jbHVk
ZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgor
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKKworV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShXS1BhZ2VDb25maWd1cmF0
aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3Ojpj
cmVhdGUobnVsbHB0ciwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkpOworfQorCitXS1ZpZXdSZWYg
V0tWaWV3Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNr
ZW5kLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJu
IHRvQVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUoYmFja2VuZCwgKnRvSW1wbChjb25maWd1cmF0aW9u
KSkpOworfQorCitXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYgdmlldykKK3sKKyAg
ICByZXR1cm4gdG9BUEkoJnRvSW1wbCh2aWV3KS0+cGFnZSgpKTsKK30KKwordm9pZCBXS1ZpZXdT
ZXRWaWV3U3RhdGUoV0tWaWV3UmVmIHZpZXcsIFdLVmlld1N0YXRlIHZpZXdTdGF0ZSkKK3sKKyAg
ICB0b0ltcGwodmlldyktPnNldFZpZXdTdGF0ZSh0b1ZpZXdTdGF0ZUZsYWdzKHZpZXdTdGF0ZSkp
OworfQorCit2b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IFdL
Vmlld0NsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICB0b0ltcGwodmlldyktPmluaXRpYWxpemVD
bGllbnQoY2xpZW50KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy93cGUvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dL
Vmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NTllYzJiNDVi
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUv
V0tWaWV3LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVmlld19oCisjZGVmaW5lIFdLVmlld19oCisK
KyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnku
aD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitzdHJ1Y3Qg
d3BlX3ZpZXdfYmFja2VuZDsKKworV0tfRVhQT1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVhdGUoV0tQ
YWdlQ29uZmlndXJhdGlvblJlZik7CitXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZVdp
dGhWaWV3QmFja2VuZChzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCosIFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWYpOworCitXS19FWFBPUlQgV0tQYWdlUmVmIFdLVmlld0dldFBhZ2UoV0tWaWV3UmVmKTsK
KworZW51bSB7CisgICAga1dLVmlld1N0YXRlSXNJbldpbmRvdyA9IDEgPDwgMCwKKyAgICBrV0tW
aWV3U3RhdGVJc1Zpc2libGUgPSAxIDw8IDEsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS1ZpZXdT
dGF0ZTsKKworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld1N0YXRlKFdLVmlld1JlZiwgV0tW
aWV3U3RhdGUpOworCit0eXBlZGVmIHZvaWQgKCpXS1ZpZXdGcmFtZURpc3BsYXllZCkoV0tWaWV3
UmVmIHZpZXcsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVmIHN0cnVjdCBXS1Zp
ZXdDbGllbnRCYXNlIHsKKyAgICBpbnQgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvOworfSBXS1ZpZXdDbGllbnRCYXNlOworCit0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRW
MCB7CisgICAgV0tWaWV3Q2xpZW50QmFzZSBiYXNlOworCisgICAgLy8gdmVyc2lvbiAwCisgICAg
V0tWaWV3RnJhbWVEaXNwbGF5ZWQgZnJhbWVEaXNwbGF5ZWQ7Cit9IFdLVmlld0NsaWVudFYwOwor
CitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiwgY29uc3QgV0tW
aWV3Q2xpZW50QmFzZSopOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5k
aWYgLy8gV0tWaWV3X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uYTQwNGVjNWQ5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAK
QEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKKyNpbmNsdWRlICJDb21wb3Np
dGluZ01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5j
bHVkZSA8d3BlL3ZpZXctYmFja2VuZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHk6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5KFdLV1BFOjpWaWV3JiB2
aWV3KQorICAgIDogbV92aWV3KHZpZXcpCit7Cit9CisKK0NvbXBvc2l0aW5nTWFuYWdlclByb3h5
Ojp+Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgQ29tcG9zaXRp
bmdNYW5hZ2VyUHJveHk6OmluaXRpYWxpemUoKQoreworICAgIG1fdmlldy5wYWdlKCkucHJvY2Vz
cygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpDb21wb3NpdGlu
Z01hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3ZpZXcucGFnZSgpLnBhZ2VJ
RCgpLCAqdGhpcyk7Cit9CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmVzdGFibGlz
aENvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSGFuZGxlKQoreworICAgIGNv
bm5lY3Rpb25IYW5kbGUgPSBJUEM6OkF0dGFjaG1lbnQod3BlX3ZpZXdfYmFja2VuZF9nZXRfcmVu
ZGVyZXJfaG9zdF9mZChtX3ZpZXcuYmFja2VuZCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0Nv
bXBvc2l0aW5nTWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmNhMzVjMDdjNGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQXR0YWNobWVudDsKK30KKwor
bmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBDb21wb3NpdGluZ01hbmFnZXJQcm94eSBmaW5hbCA6IHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHkpOworcHVibGljOgorICAgIENvbXBvc2l0aW5nTWFuYWdlclByb3h5KFdLV1BFOjpWaWV3
Jik7CisgICAgdmlydHVhbCB+Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKTsKKworICAgIHZvaWQg
aW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVw
bHlFbmNvZGVyKSBvdmVycmlkZTsKKworICAgIHZvaWQgZXN0YWJsaXNoQ29ubmVjdGlvbihJUEM6
OkF0dGFjaG1lbnQmKTsKKworICAgIFdLV1BFOjpWaWV3JiBtX3ZpZXc7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5YTAwNTU3Nzc2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworbWVzc2FnZXMgLT4gQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkgeworICAgIEVzdGFibGlz
aENvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVBy
b3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVh
UHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNzNj
MGY2N2UyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdB
cmVhTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitEcmF3aW5nQXJlYVByb3h5V1BFOjpEcmF3aW5nQXJlYVByb3h5
V1BFKFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0Fy
ZWFUeXBlV1BFLCBwYWdlKQoreworfQorCitEcmF3aW5nQXJlYVByb3h5V1BFOjp+RHJhd2luZ0Fy
ZWFQcm94eVdQRSgpCit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6ZGV2aWNlU2Nh
bGVGYWN0b3JEaWRDaGFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
RHJhd2luZ0FyZWFQcm94eVdQRTo6c2l6ZURpZENoYW5nZSgpCit7CisgICAgaWYgKG1fd2ViUGFn
ZVByb3h5LmlzVmFsaWQoKSkKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnNlbmQo
TWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgwLCBmYWxzZSwg
bV93ZWJQYWdlUHJveHkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbV9zaXplLCBtX3Njcm9sbE9mZnNl
dCksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5
V1BFOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6ZnVuY3Rpb248dm9pZChDYWxs
YmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKK3sKKyAgICBpZiAoIW1fd2ViUGFn
ZVByb3h5LmlzVmFsaWQoKSkgeworICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKENhbGxiYWNrQmFz
ZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKAorICAgICAgICBbY2FsbGJhY2tGdW5jdGlv
bl0geworICAgICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFja0Jhc2U6OkVycm9yOjpO
b25lKTsKKyAgICAgICAgfSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6dXBkYXRl
KHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6ZGlkVXBk
YXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3Qg
VXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6ZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRy
ZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQoreworICAgIEFTU0VSVCghYmFja2luZ1N0b3Jl
U3RhdGVJRCk7CisKKyAgICBtX2xheWVyVHJlZUNvbnRleHQgPSBsYXllclRyZWVDb250ZXh0Owor
ICAgIG1fd2ViUGFnZVByb3h5LmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJU
cmVlQ29udGV4dCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6ZXhpdEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVw
ZGF0ZUluZm8mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0Fy
ZWFQcm94eVdQRTo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFj
a2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFmNDI3YjRjYTI5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94
eVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJEcmF3aW5nQXJlYVBy
b3h5LmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVByb3h5V1BFIGZpbmFsIDogcHVibGljIERyYXdpbmdB
cmVhUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IERyYXdpbmdBcmVhUHJveHlXUEUoV2Vi
UGFnZVByb3h5Jik7CisgICAgdmlydHVhbCB+RHJhd2luZ0FyZWFQcm94eVdQRSgpOworCitwcml2
YXRlOgorICAgIC8vIERyYXdpbmdBcmVhUHJveHkKKyAgICB2b2lkIGRldmljZVNjYWxlRmFjdG9y
RGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6ZnVuY3Rpb248dm9p
ZChDYWxsYmFja0Jhc2U6OkVycm9yKT4pIG92ZXJyaWRlOworCisgICAgLy8gSVBDIG1lc3NhZ2Ug
aGFuZGxlcnMKKyAgICB2b2lkIHVwZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBj
b25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRVcGRhdGVCYWNraW5nU3Rv
cmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJiwg
Y29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBM
YXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5m
byYpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
dWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92
ZXJyaWRlOworCisgICAgLy8gVGhlIGN1cnJlbnQgbGF5ZXIgdHJlZSBjb250ZXh0LgorICAgIExh
eWVyVHJlZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworfTsKKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMTY1MzA5NWZiNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNw
cApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFnZUNsaWVudElt
cGwuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKyNpbmNsdWRlICJOYXRp
dmVXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2lu
Y2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgor
I2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2
aXR5U3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwoV0tXUEU6OlZp
ZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1fc2Nyb2xsR2VzdHVyZUNvbnRy
b2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxHZXN0dXJlQ29udHJvbGxlcj4oKSkKK3sKK30K
KworUGFnZUNsaWVudEltcGw6On5QYWdlQ2xpZW50SW1wbCgpID0gZGVmYXVsdDsKKworc3RkOjp1
bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEcmF3aW5n
QXJlYVByb3h5KCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJlYVBy
b3h5V1BFPihtX3ZpZXcucGFnZSgpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmll
d05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKQoreworfQorCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpCit7Cit9CisKK1dlYkNvcmU6OkZsb2F0UG9pbnQg
UGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCit7CisgICAgcmV0dXJuIHsgfTsK
K30KKworV2ViQ29yZTo6SW50U2l6ZSBQYWdlQ2xpZW50SW1wbDo6dmlld1NpemUoKQoreworICAg
IHJldHVybiBtX3ZpZXcuc2l6ZSgpOworfQorCitib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdX
aW5kb3dBY3RpdmUoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3Jl
OjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3Rm9jdXNlZCgpCit7CisgICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAmIFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3VmlzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAmIFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1w
bDo6aXNWaWV3SW5XaW5kb3coKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBX
ZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpwcm9jZXNzRGlkRXhpdCgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJl
bGF1bmNoUHJvY2VzcygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnBhZ2VDbG9zZWQo
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCit7
Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENvbW1pdExv
YWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkKK3sKK30KKwordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNvbnN0IFdl
YkNvcmU6OkN1cnNvciYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNvckhp
ZGRlblVudGlsTW91c2VNb3Zlcyhib29sKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1
dGVzJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZChQ
YXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8p
Cit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKCkKK3sK
K30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6Y2FuVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpVbmRv
T3JSZWRvKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6
ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykKK3sKK30KKworV2ViQ29y
ZTo6RmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9EZXZpY2VTcGFjZShjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK1dlYkNv
cmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1cm4gcmVjdDsKK30KKworV2ViQ29y
ZTo6SW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvaW50KQoreworICAgIHJldHVybiBwb2ludDsKK30KKworV2ViQ29yZTo6
SW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiByZWN0KQoreworICAgIHJldHVybiByZWN0OworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29s
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3Qg
TmF0aXZlV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCit7
CisgICAgaWYgKHdhc0V2ZW50SGFuZGxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQgPSB0b3VjaEV2ZW50
Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpOworICAgIGlmICh0b3VjaFBvaW50LT50eXBlID09
IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOworCisgICAgaWYgKG1fc2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXItPmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7CisgICAgICAgIHN0cnVjdCB3cGVf
aW5wdXRfYXhpc19ldmVudCogYXhpc0V2ZW50ID0gbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxlci0+
YXhpc0V2ZW50KCk7CisgICAgICAgIGlmIChheGlzRXZlbnQtPnR5cGUgIT0gd3BlX2lucHV0X2F4
aXNfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdl
YktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1fdmlldy5wYWdlKCkuZGV2aWNl
U2NhbGVGYWN0b3IoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RydWN0IHdw
ZV9pbnB1dF9wb2ludGVyX2V2ZW50IHBvaW50ZXJFdmVudCB7CisgICAgICAgIHdwZV9pbnB1dF9w
b2ludGVyX2V2ZW50X3R5cGVfbnVsbCwgdG91Y2hQb2ludC0+dGltZSwKKyAgICAgICAgdG91Y2hQ
b2ludC0+eCwgdG91Y2hQb2ludC0+eSwKKyAgICAgICAgMSwgMAorICAgIH07CisKKyAgICBzd2l0
Y2ggKHRvdWNoUG9pbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90
eXBlX2Rvd246CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnRfdHlwZV9idXR0b247CisgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDE7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgor
ICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
bW90aW9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAxOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICBwb2ludGVy
RXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uOworICAgICAg
ICBwb2ludGVyRXZlbnQuc3RhdGUgPSAwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9p
bnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYWdlLmhhbmRsZU1vdXNlRXZlbnQo
TmF0aXZlV2ViTW91c2VFdmVudCgmcG9pbnRlckV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9y
KCkpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRC
eVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpCit7Cit9CisKK1JlZlB0cjxXZWJQ
b3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBh
Z2VQcm94eSYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKyNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50
SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmLCBjb25zdCBDb250ZXh0
TWVudUNvbnRleHREYXRhJiwgY29uc3QgVXNlckRhdGEmKQoreworICAgIHJldHVybiBudWxscHRy
OworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7Cit9CisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCit7Cit9CisKK3ZvaWQg
UGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hM
b2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0
aW9uR2VzdHVyZURpZEJlZ2luKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdh
dGlvbkdlc3R1cmVXaWxsRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEVuZChib29sLCBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdh
dGlvbkdlc3R1cmVEaWRFbmQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aWxsUmVj
b3JkTmF2aWdhdGlvblNuYXBzaG90KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkK
K3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNo
TG9hZEZvck1haW5GcmFtZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxM
b2FkRm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURv
Y3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkK
K3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkK
K3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVmVmlldygpCit7Cit9CisKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OmRlcmVmVmlldygpCit7Cit9CisKKyNpZiBFTkFCTEUoVklERU8pCitib29s
IFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
c1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJl
cXVlc3QmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQoreworfQorCitXZWJDb3JlOjpVc2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIFBhZ2VDbGllbnRJbXBsOjp1c2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbjo6TFRSOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jM2NmZDc4ZGZiOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKQEAg
LTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQYWdlQ2xpZW50LmgiCisKK25hbWVz
cGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI7CisKK2NsYXNzIFBhZ2VDbGllbnRJbXBsIGZpbmFs
IDogcHVibGljIFBhZ2VDbGllbnQgeworcHVibGljOgorICAgIFBhZ2VDbGllbnRJbXBsKFdLV1BF
OjpWaWV3Jik7CisgICAgdmlydHVhbCB+UGFnZUNsaWVudEltcGwoKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBQYWdlQ2xpZW50CisgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNy
ZWF0ZURyYXdpbmdBcmVhUHJveHkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFZpZXdOZWVkc0Rp
c3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0
U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYsIGJvb2wpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmlld1Njcm9sbFBv
c2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJy
aWRlOworICAgIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBp
c1ZpZXdGb2N1c2VkKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1ZpZXdWaXNpYmxlKCkgb3ZlcnJp
ZGU7CisgICAgYm9vbCBpc1ZpZXdJbldpbmRvdygpIG92ZXJyaWRlOworCisgICAgdm9pZCBwcm9j
ZXNzRGlkRXhpdCgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBwYWdlQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwcmVmZXJl
bmNlc0RpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRpZENvbW1pdExv
YWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBo
YW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSopIG92ZXJyaWRlOworCisgICAgdm9p
ZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7
CisKKyAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsK
KyAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3
cG9ydEF0dHJpYnV0ZXMmKSBvdmVycmlkZTsKKworICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFu
ZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJl
ZG8pIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFuZHMoKSBvdmVycmlkZTsK
KyAgICBib29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7
CisgICAgdm9pZCBleGVjdXRlVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVy
cmlkZTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0VG9EZXZpY2VTcGFjZShjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qg
Y29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwor
ICAgIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4o
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworCisgICAgdm9pZCBkb25lV2l0aEtl
eUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9v
bCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShj
b25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisKKyAgICBSZWZQdHI8V2ViUG9w
dXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRl
OworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb250
ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIGNvbnN0
IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpIG92ZXJyaWRlOworI2Vu
ZGlmCisKKyAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5
ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRp
ZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYs
IGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpIG92ZXJyaWRlOworCisgICAgdm9pZCBuYXZpZ2F0
aW9uR2VzdHVyZURpZEJlZ2luKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBuYXZpZ2F0aW9uR2VzdHVy
ZVdpbGxFbmQoYm9vbCwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZv
aWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoYm9vbCwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYp
IG92ZXJyaWRlOworICAgIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoKSBvdmVycmlkZTsK
KyAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0ZvcndhcmRMaXN0
SXRlbSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFw
c2hvdCgpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWlu
RnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkQ2hhbmdl
QmFja2dyb3VuZENvbG9yKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHJlZlZpZXcoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRlcmVmVmlldygpIG92ZXJyaWRlOworCisjaWYgRU5BQkxFKFZJREVPKQor
ICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNz
aW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Jikg
b3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkg
b3ZlcnJpZGU7CisKKyAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkQ2hh
bmdlQ2xpcFRvU2FmZUFyZWEoYm9vbCkgb3ZlcnJpZGUgeyB9CisKKyAgICBXS1dQRTo6VmlldyYg
bV92aWV3OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEdlc3R1cmVDb250cm9sbGVyPiBt
X3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJl
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxH
ZXN0dXJlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmRhMTJjOGViMzUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsODAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisKKyNp
bmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9v
bCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9p
bnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCit7CisgICAgc3dpdGNoICh0b3VjaFBv
aW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9kb3duOgor
ICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3VjaFBvaW50LT50aW1lOworICAgICAgICBtX3N0YXJ0
LnggPSB0b3VjaFBvaW50LT54OworICAgICAgICBtX3N0YXJ0LnkgPSB0b3VjaFBvaW50LT55Owor
ICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKKyAgICAgICAgbV9vZmZzZXQueSA9
IHRvdWNoUG9pbnQtPnk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1
dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgaWYgKCFtX2hhbmRsaW5nKSB7Cisg
ICAgICAgICAgICBpbnQzMl90IGRlbHRhWCA9IHRvdWNoUG9pbnQtPnggLSBtX3N0YXJ0Lng7Cisg
ICAgICAgICAgICBpbnQzMl90IGRlbHRhWSA9IHRvdWNoUG9pbnQtPnkgLSBtX3N0YXJ0Lnk7Cisg
ICAgICAgICAgICB1aW50MzJfdCBkZWx0YVRpbWUgPSB0b3VjaFBvaW50LT50aW1lIC0gbV9zdGFy
dC50aW1lOworCisgICAgICAgICAgICBpbnQgcGl4ZWxzUGVyTGluZVN0ZXAgPSBXZWJDb3JlOjpT
Y3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCk7CisgICAgICAgICAgICBtX2hhbmRsaW5nID0g
c3RkOjphYnMoZGVsdGFYKSA+PSBwaXhlbHNQZXJMaW5lU3RlcAorICAgICAgICAgICAgICAgIHx8
IHN0ZDo6YWJzKGRlbHRhWSkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAgICAgICAgICAgICB8
fCBkZWx0YVRpbWUgPj0gMjAwOworICAgICAgICB9CisgICAgICAgIGlmIChtX2hhbmRsaW5nKSB7
CisgICAgICAgICAgICBtX2F4aXNFdmVudCA9IHsKKyAgICAgICAgICAgICAgICB3cGVfaW5wdXRf
YXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAgICAgICAgICAgICAgICB0b3VjaFBvaW50LT50aW1l
LCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAgICAgICAgICAgICAgICAyLCAodG91Y2hQb2ludC0+
eSAtIG1fb2Zmc2V0LnkpCisgICAgICAgICAgICB9OworICAgICAgICAgICAgbV9vZmZzZXQueCA9
IHRvdWNoUG9pbnQtPng7CisgICAgICAgICAgICBtX29mZnNldC55ID0gdG91Y2hQb2ludC0+eTsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICBpZiAo
bV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9oYW5kbGluZyA9IGZhbHNlOworICAgICAgICAg
ICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3BlX2lucHV0X2F4aXNfZXZlbnRf
dHlwZV9udWxsLAorICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAKKyAgICAgICAgICAgIH07
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uMDdkMTcyNGFhZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0cnVjdCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlciB7CitwdWJsaWM6
CisgICAgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBzdHJ1Y3Qg
d3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVudCgpIHsgcmV0dXJuICZtX2F4aXNFdmVudDsg
fQorCisgICAgYm9vbCBoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3JhdyopOworCitwcml2YXRlOgorICAgIHN0cnVjdCB7CisgICAgICAgIHVpbnQzMl90IHRp
bWUgeyAwIH07CisgICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsg
MCB9OworICAgIH0gbV9zdGFydDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIGludDMyX3QgeCB7
IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9vZmZzZXQ7CisKKyAgICBi
b29sIG1faGFuZGxpbmcgeyBmYWxzZSB9OworICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVu
dCBtX2F4aXNFdmVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uM2Q3YjYyM2E1NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApAQCAtMCwwICsxLDE1MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFnZUNv
bmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCisjaW5j
bHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYlRvdWNoRXZl
bnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViUGFn
ZUdyb3VwLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlIDx3cGUvdmll
dy1iYWNrZW5kLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXS1dQ
RSB7CisKK1ZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0
IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDb25maWd1cmF0aW9uKQorICAgIDogbV9wYWdl
Q2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KCp0aGlzKSkKKyAgICAsIG1f
c2l6ZSB7IDgwMCwgNjAwIH0KKyAgICAsIG1fdmlld1N0YXRlRmxhZ3MoV2ViQ29yZTo6QWN0aXZp
dHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3Vz
ZWQgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc0luV2luZG93KQorICAgICwgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94eSgqdGhp
cykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBiYXNlQ29uZmlndXJhdGlvbi5jb3B5KCk7
CisgICAgYXV0byogcHJlZmVyZW5jZXMgPSBjb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpOwor
ICAgIGlmICghcHJlZmVyZW5jZXMgJiYgY29uZmlndXJhdGlvbi0+cGFnZUdyb3VwKCkpIHsKKyAg
ICAgICAgcHJlZmVyZW5jZXMgPSAmY29uZmlndXJhdGlvbi0+cGFnZUdyb3VwKCktPnByZWZlcmVu
Y2VzKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldFByZWZlcmVuY2VzKHByZWZlcmVuY2Vz
KTsKKyAgICB9CisgICAgaWYgKHByZWZlcmVuY2VzKSB7CisgICAgICAgIHByZWZlcmVuY2VzLT5z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcHJlZmVyZW5j
ZXMtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgICBwcmVmZXJlbmNlcy0+
c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2Vz
LT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRXZWJTZWN1
cml0eUVuYWJsZWQoZmFsc2UpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0RGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisKKyAgICBhdXRvKiBwb29sID0gY29uZmlndXJhdGlv
bi0+cHJvY2Vzc1Bvb2woKTsKKyAgICBtX3BhZ2VQcm94eSA9IHBvb2wtPmNyZWF0ZVdlYlBhZ2Uo
Km1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisKKyAgICBtX2JhY2tlbmQg
PSBiYWNrZW5kOworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAgICBtX2JhY2tlbmQgPSB3cGVf
dmlld19iYWNrZW5kX2NyZWF0ZSgpOworICAgIG1fY29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaW5p
dGlhbGl6ZSgpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2NsaWVudCBz
X2JhY2tlbmRDbGllbnQgPSB7CisgICAgICAgIC8vIHNldF9zaXplCisgICAgICAgIFtdKHZvaWQq
IGRhdGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisgICAg
ICAgICAgICB2aWV3LnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7Cisg
ICAgICAgIH0sCisgICAgICAgIC8vIGZyYW1lX2Rpc3BsYXllZAorICAgICAgICBbXSh2b2lkKiBk
YXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3ID0gKnJlaW50ZXJwcmV0X2Nh
c3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5mcmFtZURpc3BsYXllZCgpOworICAg
ICAgICB9CisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9iYWNrZW5kX2NsaWVudCht
X2JhY2tlbmQsICZzX2JhY2tlbmRDbGllbnQsIHRoaXMpOworCisgICAgc3RhdGljIHN0cnVjdCB3
cGVfdmlld19iYWNrZW5kX2lucHV0X2NsaWVudCBzX2lucHV0Q2xpZW50ID0geworICAgICAgICAv
LyBoYW5kbGVfa2V5Ym9hcmRfZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdw
ZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1
dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisgICAgICAgICAgICB2
aWV3LnBhZ2UoKS5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRF
dmVudChldmVudCkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfcG9pbnRlcl9ldmVu
dAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQq
IGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnByZXRf
Y2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlTW91c2VF
dmVudChXZWJLaXQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVG
YWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfYXhpc19ldmVudAorICAg
ICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50KQor
ICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnByZXRfY2FzdDxWaWV3
Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJL
aXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkp
OworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfdG91Y2hfZXZlbnQKKyAgICAgICAgW10o
dm9pZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZlbnQpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRh
KS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3VjaEV2ZW50KFdlYktpdDo6TmF0
aXZlV2ViVG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7CisgICAg
ICAgIH0sCisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9pbnB1dF9jbGllbnQobV9i
YWNrZW5kLCAmc19pbnB1dENsaWVudCwgdGhpcyk7CisKKyAgICB3cGVfdmlld19iYWNrZW5kX2lu
aXRpYWxpemUobV9iYWNrZW5kKTsKKworICAgIG1fcGFnZVByb3h5LT5pbml0aWFsaXplV2ViUGFn
ZSgpOworfQorCitWaWV3Ojp+VmlldygpCit7CisgICAgd3BlX3ZpZXdfYmFja2VuZF9kZXN0cm95
KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgVmlldzo6aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS1Zp
ZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQp
OworfQorCit2b2lkIFZpZXc6OmZyYW1lRGlzcGxheWVkKCkKK3sKKyAgICBtX2NsaWVudC5mcmFt
ZURpc3BsYXllZCgqdGhpcyk7Cit9CisKK3ZvaWQgVmlldzo6c2V0U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisgICAgaWYgKG1fcGFnZVBy
b3h5LT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBtX3BhZ2VQcm94eS0+ZHJhd2luZ0FyZWEoKS0+
c2V0U2l6ZShzaXplLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNvcmU6OkludFNpemUoKSk7Cit9
CisKK3ZvaWQgVmlldzo6c2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdz
IGZsYWdzKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFn
cyBkZWZhdWx0RmxhZ3MgPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKKworICAgIFdlYkNvcmU6OkFjdGl2
aXR5U3RhdGU6OkZsYWdzIGNoYW5nZWRGbGFncyA9IG1fdmlld1N0YXRlRmxhZ3MgXiAoZGVmYXVs
dEZsYWdzIHwgZmxhZ3MpOworICAgIG1fdmlld1N0YXRlRmxhZ3MgPSBkZWZhdWx0RmxhZ3MgfCBm
bGFnczsKKworICAgIGlmIChjaGFuZ2VkRmxhZ3MpCisgICAgICAgIG1fcGFnZVByb3h5LT5hY3Rp
dml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWRGbGFncyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdL
V1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJiM2M5ZDg0YzlmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oCkBAIC0wLDAg
KzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJDb21w
b3NpdGluZ01hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisjaW5j
bHVkZSAiV1BFVmlld0NsaWVudC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VHcm91cDsKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworfQor
CituYW1lc3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3IDogcHVibGljIEFQSTo6T2JqZWN0SW1w
bDxBUEk6Ok9iamVjdDo6VHlwZTo6Vmlldz4geworcHVibGljOgorICAgIHN0YXRpYyBWaWV3KiBj
cmVhdGUoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNv
bmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFZp
ZXcoYmFja2VuZCwgY29uZmlndXJhdGlvbik7CisgICAgfQorCisgICAgLy8gQ2xpZW50IG1ldGhv
ZHMKKyAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3Q2xpZW50QmFzZSopOwor
ICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoKTsKKworICAgIFdlYktpdDo6V2ViUGFnZVByb3h5JiBw
YWdlKCkgeyByZXR1cm4gKm1fcGFnZVByb3h5OyB9CisKKyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFj
a2VuZCogYmFja2VuZCgpIHsgcmV0dXJuIG1fYmFja2VuZDsgfQorCisgICAgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAgV2ViQ29y
ZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV92aWV3
U3RhdGVGbGFnczsgfQorICAgIHZvaWQgc2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5U3Rh
dGU6OkZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBWaWV3KHN0cnVjdCB3cGVfdmlld19iYWNrZW5k
KiwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYpOworICAgIHZpcnR1YWwgflZpZXcoKTsK
KworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisKKyAgICBWaWV3
Q2xpZW50IG1fY2xpZW50OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6UGFnZUNsaWVu
dEltcGw+IG1fcGFnZUNsaWVudDsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IG1f
cGFnZVByb3h5OworICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOworICAgIFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlRmxhZ3M7CisKKyAgICBXZWJLaXQ6OkNvbXBv
c2l0aW5nTWFuYWdlclByb3h5IG1fY29tcG9zaXRpbmdNYW5hZ2VyUHJveHk7CisgICAgc3RydWN0
IHdwZV92aWV3X2JhY2tlbmQqIG1fYmFja2VuZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdLV1BF
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NDRhYzk4ODY0ZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZp
ZXdDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldQ
RVZpZXdDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLQmFz
ZS5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwor
bmFtZXNwYWNlIFdLV1BFIHsKKwordm9pZCBWaWV3Q2xpZW50OjpmcmFtZURpc3BsYXllZChWaWV3
JiB2aWV3KQoreworICAgIGlmIChtX2NsaWVudC5mcmFtZURpc3BsYXllZCkKKyAgICAgICAgbV9j
bGllbnQuZnJhbWVEaXNwbGF5ZWQodG9BUEkoJnZpZXcpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kNWU1NTlmYWY1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApAQCAtMCwwICsxLDQ2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLVmlldy5o
PgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1Zp
ZXdDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLVmlld0NsaWVudFYwPiBW
ZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK2NsYXNzIFZpZXc7CisKK2Ns
YXNzIFZpZXdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tWaWV3Q2xpZW50QmFzZT4gewor
cHVibGljOgorICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoVmlldyYpOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ODIwOTJiYmZlYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0
b3JHUmVzb3VyY2VCdW5kbGUueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiPz4KKzxncmVzb3VyY2VzPgorICA8Z3Jlc291cmNlIHByZWZpeD0i
L29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UiPgorICAgIDxmaWxlPmluc3BlY3RvclBh
Z2VJbmRleC5odG1sPC9maWxlPgorICA8L2dyZXNvdXJjZT4KKzwvZ3Jlc291cmNlcz4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IDI3YmVj
MzYyMzE1Li5mZDg0OGNjZWQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hp
bGRQcm9jZXNzUHJveHkuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzUHJv
eHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVu
Y2hPCiAgICAgaWYgKG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KQogICAgICAgICBs
YXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZChBU0NJSUxpdGVyYWwoImFs
d2F5cy1ydW5zLWF0LWJhY2tncm91bmQtcHJpb3JpdHkiKSwgInRydWUiKTsKIAotI2lmIEVOQUJM
RShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2lmIEVOQUJMRShERVZFTE9QRVJf
TU9ERSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICAgICBjb25zdCBjaGFy
KiB2YXJuYW1lOwogICAgIHN3aXRjaCAobGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSkgewogICAg
IGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViOgpAQCAtNzksNyArNzksNyBA
QCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoTwogICAgIGNvbnN0IGNoYXIqIHByb2Nlc3NDbWRQcmVm
aXggPSBnZXRlbnYodmFybmFtZSk7CiAgICAgaWYgKHByb2Nlc3NDbWRQcmVmaXggJiYgKnByb2Nl
c3NDbWRQcmVmaXgpCiAgICAgICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZpeCA9IFN0
cmluZzo6ZnJvbVVURjgocHJvY2Vzc0NtZFByZWZpeCk7Ci0jZW5kaWYgLy8gRU5BQkxFKERFVkVM
T1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjZW5kaWYgLy8gRU5BQkxFKERFVkVMT1BFUl9N
T0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQogfQogCiB2b2lkIENoaWxk
UHJvY2Vzc1Byb3h5Ojpjb25uZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2
ZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNjgzZTNk
NzE2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0
b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKQEAgLTAsMCArMSwxNDIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcyBMdGQuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAor
ICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1JfU0VS
VkVSKQorCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8Z21vZHVsZS5oPgorI2luY2x1
ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3RvclNlcnZlcjo6cGxhdGZvcm1S
ZXNvdXJjZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIFN0
cmluZyYgY29udGVudFR5cGUpCit7CisgICAgLy8gVGhlIHBhZ2UgbGlzdCBjb250YWlucyBhbiB1
bmZvcm1hdGVkIGxpc3Qgb2YgcGFnZXMgdGhhdCBjYW4gYmUgaW5zcGVjdGVkIHdpdGggYSBsaW5r
IHRvIG9wZW4gYSBzZXNzaW9uLgorICAgIGlmIChwYXRoID09ICIvcGFnZWxpc3QuanNvbiIpIHsK
KyAgICAgICAgYnVpbGRQYWdlTGlzdChkYXRhLCBjb250ZW50VHlwZSk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBmbGFnOworICAgIHN0
ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsKKyAgICAgICAgR01vZHVsZSogcmVzb3VyY2VzTW9kdWxl
ID0gZ19tb2R1bGVfb3BlbigibGliV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzLnNvIiwgR19NT0RV
TEVfQklORF9MQVpZKTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZXNNb2R1bGUpIHsKKyAgICAgICAg
ICAgIFdURkxvZ0Fsd2F5cygiRXJyb3IgbG9hZGluZyBsaWJXUEVXZWJJbnNwZWN0b3JSZXNvdXJj
ZXMuc286ICVzIiwgZ19tb2R1bGVfZXJyb3IoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBnX21vZHVsZV9tYWtlX3Jlc2lkZW50KHJlc291cmNlc01vZHVsZSk7
CisgICAgfSk7CisKKyAgICAvLyBQb2ludCB0aGUgZGVmYXVsdCBwYXRoIHRvIGEgZm9ybWF0dGVk
IHBhZ2UgdGhhdCBxdWVyaWVzIHRoZSBwYWdlIGxpc3QgYW5kIGRpc3BsYXkgdGhlbS4KKyAgICBD
U3RyaW5nIHJlc291cmNlUGF0aCA9IG1ha2VTdHJpbmcoIi9vcmcvd3BlL2luc3BlY3Rvci9Vc2Vy
SW50ZXJmYWNlIiwgKHBhdGggPT0gIi8iID8gIi9pbnNwZWN0b3JQYWdlSW5kZXguaHRtbCIgOiBw
YXRoKSkudXRmOCgpOworICAgIGlmIChyZXNvdXJjZVBhdGguaXNOdWxsKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICBHUmVm
UHRyPEdCeXRlcz4gcmVzb3VyY2VCeXRlcyA9IGFkb3B0R1JlZihnX3Jlc291cmNlc19sb29rdXBf
ZGF0YShyZXNvdXJjZVBhdGguZGF0YSgpLCBHX1JFU09VUkNFX0xPT0tVUF9GTEFHU19OT05FLCAm
ZXJyb3Iub3V0UHRyKCkpKTsKKyAgICBpZiAoIXJlc291cmNlQnl0ZXMpIHsKKyAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjwhRE9D
VFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5FcnJvcjogIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKGVycm9yLT5jb2RlKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIsICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChlcnJvci0+bWVzc2FnZSk7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG9jY3VycmVkIGR1cmluZyBmZXRjaGluZyBp
bnNwZWN0b3IgcmVzb3VyY2UgZmlsZXMuPC9ib2R5PjwvaHRtbD4iKTsKKworICAgICAgICBDU3Ry
aW5nIGVycm9ySFRNTCA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7CisgICAgICAgIGRhdGEu
YXBwZW5kKGVycm9ySFRNTC5kYXRhKCksIGVycm9ySFRNTC5sZW5ndGgoKSk7CisgICAgICAgIGNv
bnRlbnRUeXBlID0gInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI7CisKKyAgICAgICAgV1RGTG9n
QWx3YXlzKCJFcnJvciBmZXRjaGluZyB3ZWJpbnNwZWN0b3IgcmVzb3VyY2UgZmlsZXM6ICVkLCAl
cyIsIGVycm9yLT5jb2RlLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICBnc2l6ZSByZXNvdXJjZURhdGFTaXplOworICAgIGdjb25zdHBvaW50ZXIg
cmVzb3VyY2VEYXRhID0gZ19ieXRlc19nZXRfZGF0YShyZXNvdXJjZUJ5dGVzLmdldCgpLCAmcmVz
b3VyY2VEYXRhU2l6ZSk7CisgICAgZGF0YS5hcHBlbmQoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+
KHJlc291cmNlRGF0YSksIHJlc291cmNlRGF0YVNpemUpOworCisgICAgR1VuaXF1ZVB0cjxnY2hh
cj4gbWltZVR5cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MocmVzb3VyY2VQYXRoLmRhdGEoKSwgc3Rh
dGljX2Nhc3Q8Y29uc3QgZ3VjaGFyKj4ocmVzb3VyY2VEYXRhKSwgcmVzb3VyY2VEYXRhU2l6ZSwg
bnVsbHB0cikpOworICAgIGNvbnRlbnRUeXBlID0gbWltZVR5cGUuZ2V0KCk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yU2VydmVyOjpidWlsZFBhZ2VMaXN0KFZlY3Rv
cjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSkKK3sKKyAgICAvLyBjaHJvbWVkZXZ0
b29scyAoaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9tZWRldnRvb2xzKSAwLjMuOCBleHBl
Y3RlZCBKU09OIGZvcm1hdDoKKyAgICAvLyB7CisgICAgLy8gICJ0aXRsZSI6ICJGb28iLAorICAg
IC8vICAidXJsIjogImh0dHA6Ly9mb28iLAorICAgIC8vICAiZGV2dG9vbHNGcm9udGVuZFVybCI6
ICIvTWFpbi5odG1sP3dzPWxvY2FsaG9zdDo5MjIyL2RldnRvb2xzL3BhZ2UvMSIsCisgICAgLy8g
ICJ3ZWJTb2NrZXREZWJ1Z2dlclVybCI6ICJ3czovL2xvY2FsaG9zdDo5MjIyL2RldnRvb2xzL3Bh
Z2UvMSIKKyAgICAvLyB9LAorCisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiWyAiKTsKKyAgICBDbGllbnRNYXA6Oml0ZXJhdG9yIGVuZCA9IG1f
Y2xpZW50TWFwLmVuZCgpOworICAgIGZvciAoQ2xpZW50TWFwOjppdGVyYXRvciBpdCA9IG1fY2xp
ZW50TWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBXZWJQYWdlUHJveHkq
IHdlYlBhZ2UgPSBpdC0+dmFsdWUtPmluc3BlY3RlZFBhZ2UoKTsKKyAgICAgICAgaWYgKGl0ICE9
IG1fY2xpZW50TWFwLmJlZ2luKCkpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IiwgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgieyBcImlkXCI6ICIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIsIFwidGl0bGVcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQod2Vi
UGFnZS0+cGFnZUxvYWRTdGF0ZSgpLnRpdGxlKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIlwiLCBcInVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJQYWdl
LT5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIlwiLCBcImluc3BlY3RvclVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIi9NYWluLmh0bWw/cGFnZT0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIoaXQtPmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwiZGV2dG9v
bHNGcm9udGVuZFVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIi9N
YWluLmh0bWw/d3M9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJpbmRBZGRyZXNzKCkpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIocG9ydCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvZGV2dG9v
bHMvcGFnZS8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwid2ViU29ja2V0RGVidWdnZXJVcmxcIjog
XCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3czovLyIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZChiaW5kQWRkcmVzcygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCI6Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvcnQoKSk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2UvIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IlwiIH0iKTsKKyAgICB9CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgXSIpOworICAgIENT
dHJpbmcgY3N0ciA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7CisgICAgZGF0YS5hcHBlbmQo
Y3N0ci5kYXRhKCksIGNzdHIubGVuZ3RoKCkpOworICAgIGNvbnRlbnRUeXBlID0gImFwcGxpY2F0
aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJv
Y2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vz
c0xhdW5jaGVyLmgKaW5kZXggMzk5NTA2OTQ4ZWYuLmJhNzdjMmFjNzJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC02
MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGU7CiAg
ICAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhOwog
Ci0jaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjaWYgRU5BQkxF
KERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQogICAg
ICAgICBTdHJpbmcgcHJvY2Vzc0NtZFByZWZpeDsKICNlbmRpZgogICAgIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQ
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVu
Y2hlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZkNDYw
OTg2OTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5j
aGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTUzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBv
cnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgIlByb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5
c3RlbS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRl
IDxnbGliLmg+CisjaW5jbHVkZSA8d3BlL3JlbmRlcmVyLWhvc3QuaD4KKyNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRl
IDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisvLyBGSVhNRTogTWVyZ2Ugd2l0aCBQ
cm9jZXNzTGF1bmNoZXJHdGs/CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworc3RhdGljIHZvaWQgY2hpbGRTZXR1cEZ1bmN0aW9uKGdwb2ludGVyIHVz
ZXJEYXRhKQoreworICAgIGludCBzb2NrZXQgPSBHUE9JTlRFUl9UT19JTlQodXNlckRhdGEpOwor
ICAgIGNsb3NlKHNvY2tldCk7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9j
ZXNzKCkKK3sKKyAgICBHUGlkIHBpZCA9IDA7CisKKyAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tl
dFBhaXIgc29ja2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0
aW9uKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbk9wdGlvbnM6OlNldENsb2V4ZWNPblNlcnZl
cik7CisKKyAgICBTdHJpbmcgZXhlY3V0YWJsZVBhdGg7CisgICAgQ1N0cmluZyByZWFsRXhlY3V0
YWJsZVBhdGg7CisgICAgc3dpdGNoIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUpIHsKKyAg
ICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYjoKKyAgICAgICAgZXhlY3V0
YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms6CisgICAgICAg
IGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCk7CisgICAg
ICAgIGJyZWFrOworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorICAgIGNhc2UgUHJvY2Vz
c0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U6CisgICAgICAgIGV4ZWN1dGFibGVQYXRo
ID0gZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpOworICAgICAgICBicmVhazsKKyNl
bmRpZgorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgcmVhbEV4ZWN1dGFibGVQYXRoID0gZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKGV4ZWN1dGFibGVQYXRoKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiB3a1Nv
Y2tldChnX3N0cmR1cF9wcmludGYoIiVkIiwgc29ja2V0UGFpci5jbGllbnQpKTsKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiB3cGVTb2NrZXQ7CisKKyAgICB1bnNpZ25lZCBuYXJncyA9IDQ7IC8vIHNp
emUgb2YgdGhlIGFyZ3YgYXJyYXkgZm9yIGdfc3Bhd25fYXN5bmMoKQorICAgIGlmIChtX2xhdW5j
aE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2Vi
KSB7CisgICAgICAgIHdwZVNvY2tldCA9IEdVbmlxdWVQdHI8Z2NoYXI+KGdfc3RyZHVwX3ByaW50
ZigiJWQiLCB3cGVfcmVuZGVyZXJfaG9zdF9jcmVhdGVfY2xpZW50KCkpKTsKKyAgICAgICAgbmFy
Z3MgPSA1OworICAgIH0KKworI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkKKyAgICBWZWN0b3I8
Q1N0cmluZz4gcHJlZml4QXJnczsKKyAgICBpZiAoIW1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzQ21k
UHJlZml4LmlzTnVsbCgpKSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHNwbGl0QXJnczsKKyAg
ICAgICAgbV9sYXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXguc3BsaXQoJyAnLCBzcGxpdEFy
Z3MpOworICAgICAgICBmb3IgKGF1dG8gaXQgPSBzcGxpdEFyZ3MuYmVnaW4oKTsgaXQgIT0gc3Bs
aXRBcmdzLmVuZCgpOyBpdCsrKQorICAgICAgICAgICAgcHJlZml4QXJncy5hcHBlbmQoaXQtPnV0
ZjgoKSk7CisgICAgICAgIG5hcmdzICs9IHByZWZpeEFyZ3Muc2l6ZSgpOworICAgIH0KKyNlbmRp
ZgorCisgICAgY2hhcioqIGFyZ3YgPSBnX25ld2EoY2hhciosIG5hcmdzKTsKKyAgICB1bnNpZ25l
ZCBpID0gMDsKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCisgICAgLy8gSWYgdGhlcmUncyBh
IHByZWZpeCBjb21tYW5kLCBwdXQgaXQgYmVmb3JlIHRoZSByZXN0IG9mIHRoZSBhcmdzLgorICAg
IGZvciAoYXV0byBpdCA9IHByZWZpeEFyZ3MuYmVnaW4oKTsgaXQgIT0gcHJlZml4QXJncy5lbmQo
KTsgaXQrKykKKyAgICAgICAgYXJndltpKytdID0gY29uc3RfY2FzdDxjaGFyKj4oaXQtPmRhdGEo
KSk7CisjZW5kaWYKKyAgICBhcmd2W2krK10gPSBjb25zdF9jYXN0PGNoYXIqPihyZWFsRXhlY3V0
YWJsZVBhdGguZGF0YSgpKTsKKyAgICBhcmd2W2krK10gPSB3a1NvY2tldC5nZXQoKTsKKyAgICBp
ZiAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vz
c1R5cGU6OldlYikKKyAgICAgICAgYXJndltpKytdID0gd3BlU29ja2V0LmdldCgpOworICAgIGFy
Z3ZbaSsrXSA9IG51bGxwdHI7CisKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7Cisg
ICAgaWYgKCFnX3NwYXduX2FzeW5jKDAsIGFyZ3YsIDAsIEdfU1BBV05fTEVBVkVfREVTQ1JJUFRP
UlNfT1BFTiwgY2hpbGRTZXR1cEZ1bmN0aW9uLCBHSU5UX1RPX1BPSU5URVIoc29ja2V0UGFpci5z
ZXJ2ZXIpLCAmcGlkLCAmZXJyb3Iub3V0UHRyKCkpKSB7CisgICAgICAgIGdfcHJpbnRlcnIoIlVu
YWJsZSB0byBmb3JrIGEgbmV3IFdlYlByb2Nlc3M6ICVzLlxuIiwgZXJyb3ItPm1lc3NhZ2UpOwor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICAvLyBEb24ndCBleHBv
c2UgdGhlIHBhcmVudCBzb2NrZXQgdG8gcG90ZW50aWFsIGZ1dHVyZSBjaGlsZHJlbi4KKyAgICB3
aGlsZSAoZmNudGwoc29ja2V0UGFpci5jbGllbnQsIEZfU0VURkQsIEZEX0NMT0VYRUMpID09IC0x
KQorICAgICAgICBSRUxFQVNFX0FTU0VSVChlcnJubyAhPSBFSU5UUik7CisKKyAgICBjbG9zZShz
b2NrZXRQYWlyLmNsaWVudCk7CisgICAgbV9wcm9jZXNzSWRlbnRpZmllciA9IHBpZDsKKworICAg
IC8vIFdlJ3ZlIGZpbmlzaGVkIGxhdW5jaGluZyB0aGUgcHJvY2VzcywgbWVzc2FnZSBiYWNrIHRv
IHRoZSBtYWluIHJ1biBsb29wLgorICAgIFJlZlB0cjxQcm9jZXNzTGF1bmNoZXI+IHByb3RlY3Rl
ZFRoaXModGhpcyk7CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlclNvY2tl
dCA9IHNvY2tldFBhaXIuc2VydmVyOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJv
dGVjdGVkVGhpcywgcGlkLCBzZXJ2ZXJTb2NrZXRdIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+
ZGlkRmluaXNoTGF1bmNoaW5nUHJvY2VzcyhwaWQsIHNlcnZlclNvY2tldCk7CisgICAgfSk7Cit9
CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVyOjp0ZXJtaW5hdGVQcm9jZXNzKCkKK3sKKyAgICBpZiAo
bV9pc0xhdW5jaGluZykgeworICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoIW1fcHJvY2Vzc0lkZW50aWZpZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGtpbGwobV9wcm9jZXNzSWRlbnRpZmllciwgU0lHS0lMTCk7CisgICAgbV9wcm9jZXNz
SWRlbnRpZmllciA9IDA7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpwbGF0Zm9ybUludmFs
aWRhdGUoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggMWM4ZWY0NjNjYzIuLjg0N2ZiNWMz
MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaApA
QCAtMjI0LDcgKzIyNCw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJQcmVmZXJlbmNlcyYgaW5zcGVj
dG9yUGFnZVByZWZlcmVuY2VzKCkgY29uc3Q7CiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBjcmVhdGVJbnNwZWN0b3JXaW5k
b3coKTsKICAgICB2b2lkIHVwZGF0ZUluc3BlY3RvcldpbmRvd1RpdGxlKCkgY29uc3Q7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAppbmRl
eCA0NGU4MzY1NTNiNS4uOWJiNmQ1NGNhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTk4LDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHNldFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90
JiBuZXdDaGFuZ2VDb3VudCk7CiAgICAgdm9pZCBzZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBl
LCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIHVpbnQ2NF90IHNpemUsIHVpbnQ2NF90JiBu
ZXdDaGFuZ2VDb3VudCk7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKICAgICB2b2lkIHdy
aXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgV2ViU2Vs
ZWN0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSwgV2ViU2VsZWN0aW9uRGF0YSYpOwpAQCAtMTA1LDcgKzEwNiwxNCBAQCBw
cml2YXRlOgogICAgIFdlYkZyYW1lUHJveHkqIG1fcHJpbWFyeVNlbGVjdGlvbk93bmVyIHsgbnVs
bHB0ciB9OwogICAgIFdlYkZyYW1lUHJveHkqIG1fZnJhbWVXcml0aW5nVG9DbGlwYm9hcmQgeyBu
dWxscHRyIH07CiAjZW5kaWYgLy8gUExBVEZPUk0oR1RLKQotICAgIAorCisjaWYgUExBVEZPUk0o
V1BFKQorICAgIHZvaWQgZ2V0UGFzdGVib2FyZFR5cGVzKFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJv
YXJkVHlwZXMpOworICAgIHZvaWQgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGlu
ZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBXVEY6OlN0cmluZyYpOworICAgIHZv
aWQgd3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRX
ZWJDb250ZW50Jik7CisgICAgdm9pZCB3cml0ZVN0cmluZ1RvUGFzdGVib2FyZChjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAgICAgV2ViUHJv
Y2Vzc1Byb3h5TGlzdCBtX3dlYlByb2Nlc3NQcm94eUxpc3Q7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCA3NjZiYzEyZWQzYi4uNDAxMmFkNWEzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTgsNCAr
NTgsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFzdGVib2FyZFByb3h5IHsKICAgICBXcml0ZVRvQ2xp
cGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgc3RydWN0IFdlYktpdDo6V2ViU2VsZWN0aW9u
RGF0YSBwYXN0ZWJvYXJkQ29udGVudCkKICAgICBSZWFkRnJvbUNsaXBib2FyZChTdHJpbmcgcGFz
dGVib2FyZE5hbWUpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJTZWxlY3Rpb25EYXRhIHBhc3RlYm9h
cmRDb250ZW50KQogI2VuZGlmCisKKyNpZiBQTEFURk9STShXUEUpCisgICAgR2V0UGFzdGVib2Fy
ZFR5cGVzKCkgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKQorICAgIFJlYWRTdHJpbmdGcm9tUGFz
dGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoU3RyaW5n
IHN0cmluZykKKyAgICBXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoc3RydWN0IFdlYkNvcmU6
OlBhc3RlYm9hcmRXZWJDb250ZW50IGNvbnRlbnQpCisgICAgV3JpdGVTdHJpbmdUb1Bhc3RlYm9h
cmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgdGV4dCkKKyNlbmRpZgogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggNDBkZTNkMWRhMmUu
LjhhMTZlMzI2M2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2wo
QVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgbm90aWZ5
VGhpc1dlYlByb2Nlc3NQb29sV2FzQ3JlYXRlZCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09B
KSAmJiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdU
SykgJiYgIVBMQVRGT1JNKFdQRSkKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlh
bGl6ZSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1Rl
eHRDaGVja2VyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvVGV4dENoZWNr
ZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wMzcwZmYy
YmExYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvVGV4
dENoZWNrZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJUZXh0Q2hlY2tlci5oIgorCisjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgVGV4dENoZWNrZXJTdGF0ZSB0ZXh0Q2hl
Y2tlclN0YXRlOworCitjb25zdCBUZXh0Q2hlY2tlclN0YXRlJiBUZXh0Q2hlY2tlcjo6c3RhdGUo
KQoreworICAgIHJldHVybiB0ZXh0Q2hlY2tlclN0YXRlOworfQorCit2b2lkIFRleHRDaGVja2Vy
OjpzZXRUZXN0aW5nTW9kZShib29sKQoreworfQorCitib29sIFRleHRDaGVja2VyOjppc1Rlc3Rp
bmdNb2RlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBUZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFRl
eHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hl
Y2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBU
ZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Z3Jh
bW1hckNoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK2ludDY0X3QgVGV4dENoZWNrZXI6OnVuaXF1ZVNwZWxsRG9jdW1lbnRUYWco
V2ViUGFnZVByb3h5KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y2xvc2VTcGVsbERvY3VtZW50V2l0aFRhZyhpbnQ2
NF90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNo
ZWNrU3BlbGxpbmdPZlN0cmluZyhpbnQ2NF90LCBTdHJpbmdWaWV3LCBpbnQzMl90JiwgaW50MzJf
dCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y2hl
Y2tHcmFtbWFyT2ZTdHJpbmcoaW50NjRfdCwgU3RyaW5nVmlldywgVmVjdG9yPFdlYkNvcmU6Okdy
YW1tYXJEZXRhaWw+JiwgaW50MzJfdCYsIGludDMyX3QmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OnNwZWxsaW5nVUlJc1Nob3dpbmcoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFRleHRDaGVj
a2VyOjp0b2dnbGVTcGVsbGluZ1VJSXNTaG93aW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFRleHRDaGVja2VyOjp1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRX
b3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBUZXh0Q2hlY2tlcjo6dXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGlu
dDY0X3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEdyYW1tYXJEZXRhaWwmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmdldEd1ZXNzZXNGb3JXb3JkKGlu
dDY0X3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGludDMyX3QsIFZlY3RvcjxTdHJp
bmc+JiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVj
a2VyOjpsZWFybldvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjppZ25vcmVXb3JkKGludDY0X3QsIGNvbnN0
IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tl
cjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRp
b24+LCBpbnQzMl90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJJ
bnNwZWN0b3JQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYklu
c3BlY3RvclByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNWJhZWVlM2MxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKKworI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlSW5z
cGVjdG9yV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGlkQ2xvc2UoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGlk
Q2xvc2VGb3JDcmFzaCgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
SW52YWxpZGF0ZSgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSGlk
ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQnJpbmdJbnNwZWN0ZWRQYWdlVG9Gcm9u
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1Jc0Zyb250KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRV
UkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
U3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdlVVJMKCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlL01h
aW4uaHRtbCIpOworfQorCitTdHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclRlc3RQ
YWdlVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd3BlL2luc3Bl
Y3Rvci9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCIpOworfQorCitTdHJpbmcgV2ViSW5zcGVjdG9y
UHJveHk6Omluc3BlY3RvckJhc2VVUkwoKQoreworICAgIHJldHVybiBTdHJpbmcoInJlc291cmNl
Oi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvIik7Cit9CisKK3Vuc2lnbmVkIFdl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwordW5zaWduZWQgV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtQXR0YWNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybURldGFjaCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hl
aWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1TdGFydFdpbmRvd0RyYWcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmLCBib29sLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1BdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRhMjAyYWJlYjRmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwCkBAIC0wLDAg
KzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorCisjaW5j
bHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50
ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpwbGF0Zm9y
bUluaXRpYWxpemUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBXZWJQ
YWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJu
ICJNb3ppbGxhLzUuMCAoTGludXg7IHg4Nl82NCBHTlUvTGludXgpIEFwcGxlV2ViS2l0LzYwMS4x
IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAgU2FmYXJpLzYwMS4xIjsKK30KKwordm9p
ZCBXZWJQYWdlUHJveHk6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBTdHJpbmcmLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBTdHJpbmcm
LCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybVJlbW92ZVJlY2VudFNlYXJj
aGVzKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmVkaXRvclN0YXRlQ2hhbmdlZChj
b25zdCBFZGl0b3JTdGF0ZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3Bl
L1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3Bl
L1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjhkM2QwZWI0NmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEsNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRQcm94eS5oIgorCisjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
ewordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldFBhc3RlYm9hcmRUeXBlcyhWZWN0b3I8U3Ry
aW5nPiYgcGFzdGVib2FyZFR5cGVzKQoreworICAgIFBsYXRmb3JtUGFzdGVib2FyZCgpLmdldFR5
cGVzKHBhc3RlYm9hcmRUeXBlcyk7Cit9CisKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5OjpyZWFk
U3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZFR5cGUsIFdURjo6U3RyaW5nJiB2YWx1ZSkKK3sKKyAgICB2YWx1ZSA9IFBsYXRmb3JtUGFz
dGVib2FyZCgpLnJlYWRTdHJpbmcoaW5kZXgsIHBhc3RlYm9hcmRUeXBlKTsKK30KKwordm9pZCBX
ZWJQYXN0ZWJvYXJkUHJveHk6OndyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChjb25zdCBXZWJD
b3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBQbGF0Zm9ybVBhc3Rl
Ym9hcmQoKS53cml0ZShjb250ZW50KTsKK30KKwordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6Ondy
aXRlU3RyaW5nVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCkKK3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS53cml0ZShwYXN0ZWJv
YXJkVHlwZSwgdGV4dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2VzV1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmY4MWZjZGExY2YKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2VzV1BFLmNwcApA
QCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5o
IgorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1Jbml0aWFsaXplU3RvcmUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRm
b3JtVXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0
Zm9ybVVwZGF0ZUJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29sKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRl
VUludDMyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgdWludDMyX3QpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVEb3Vi
bGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBkb3VibGUpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVGbG9hdFZhbHVl
Rm9yS2V5KGNvbnN0IFN0cmluZyYsIGZsb2F0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0U3RyaW5nVXNlclZhbHVlRm9yS2V5
KGNvbnN0IFN0cmluZyYsIFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0Qm9vbFVz
ZXJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29sJikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlczo6cGxhdGZv
cm1HZXRVSW50MzJVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgdWludDMyX3QmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFdlYlBy
ZWZlcmVuY2VzOjpwbGF0Zm9ybUdldERvdWJsZVVzZXJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcm
LCBkb3VibGUmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmQwZmE1MmRhZjdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKQEAgLTAsMCArMSwxNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisKKyNpbmNsdWRlICJBUElQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94
eS5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgorI2luY2x1
ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorCisvLyBGSVhN
RTogTWVyZ2Ugd2l0aCBXZWJQcm9jZXNzUG9vbEd0az8gQWJzdHJhY3QgdGhlIGNvbW1vbiBwYXJ0
cz8KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikK
K3N0YXRpYyB2b2lkIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKQoreworICAgIHN0YXRpYyBib29sIGlu
aXRpYWxpemVkID0gZmFsc2U7CisgICAgaWYgKGluaXRpYWxpemVkKQorICAgICAgICByZXR1cm47
CisKKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgU3RyaW5nIHNlcnZlckFkZHJlc3MoZ19n
ZXRlbnYoIldFQktJVF9JTlNQRUNUT1JfU0VSVkVSIikpOworCisgICAgaWYgKCFzZXJ2ZXJBZGRy
ZXNzLmlzTnVsbCgpKSB7CisgICAgICAgIFN0cmluZyBiaW5kQWRkcmVzcyA9ICIxMjcuMC4wLjEi
OworICAgICAgICB1bnNpZ25lZCBzaG9ydCBwb3J0ID0gMjk5OTsKKworICAgICAgICBWZWN0b3I8
U3RyaW5nPiByZXN1bHQ7CisgICAgICAgIHNlcnZlckFkZHJlc3Muc3BsaXQoJzonLCByZXN1bHQp
OworCisgICAgICAgIGlmIChyZXN1bHQuc2l6ZSgpID09IDIpIHsKKyAgICAgICAgICAgIGJpbmRB
ZGRyZXNzID0gcmVzdWx0WzBdOworICAgICAgICAgICAgYm9vbCBvayA9IGZhbHNlOworICAgICAg
ICAgICAgcG9ydCA9IHJlc3VsdFsxXS50b0ludCgmb2spOworICAgICAgICAgICAgaWYgKCFvaykg
eworICAgICAgICAgICAgICAgIHBvcnQgPSAyOTk5OworICAgICAgICAgICAgICAgIExPR19FUlJP
UigiQ291bGRuJ3QgcGFyc2UgdGhlIHBvcnQuIFVzZSAyOTk5IGluc3RlYWQuIik7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBw
YXJzZSAlcywgd3JvbmcgZm9ybWF0PyBVc2UgMTI3LjAuMC4xOjI5OTkgaW5zdGVhZC4iLCBzZXJ2
ZXJBZGRyZXNzLnV0ZjgoKS5kYXRhKCkpOworCisgICAgICAgIGlmICghV2ViSW5zcGVjdG9yU2Vy
dmVyOjpzaW5nbGV0b24oKS5saXN0ZW4oYmluZEFkZHJlc3MsIHBvcnQpKQorICAgICAgICAgICAg
TE9HX0VSUk9SKCJDb3VsZG4ndCBzdGFydCBsaXN0ZW5pbmcgb246IElQIGFkZHJlc3M9JXMsIHBv
cnQ9JWQuIiwgYmluZEFkZHJlc3MudXRmOCgpLmRhdGEoKSwgcG9ydCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBMT0coSW5zcGVjdG9yU2VydmVyLCAiVG8gc3RhcnQgaW5zcGVjdG9y
IHNlcnZlciBzZXQgV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVIgdG8gMTI3LjAuMC4xOjI5OTkgZm9y
IGV4YW1wbGUuIik7Cit9CisjZW5kaWYKKworV1RGOjpTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6Omxl
Z2FjeVBsYXRmb3JtRGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIEdV
bmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNl
cl9jYWNoZV9kaXIoKSwgIndwZSIsICJhcHBjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4g
V2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjYWNoZURpcmVjdG9y
eS5nZXQoKSk7Cit9CisKK1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9y
bURlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBj
YWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3
cGUiLCAibWVkaWFjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5n
RnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjYWNoZURpcmVjdG9yeS5nZXQoKSk7Cit9CisK
K3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7CisgICAgbV93ZWJz
aXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucmVnaXN0ZXJTaGFyZWRSZXNvdXJjZUxv
YWRPYnNlcnZlcigpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7
CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisgICAgaW5pdEluc3BlY3RvclNlcnZlcigp
OworI2VuZGlmCisKKyAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQgPSBtX21lbW9y
eUNhY2hlRGlzYWJsZWQgfHwgY2FjaGVNb2RlbCgpID09IENhY2hlTW9kZWxEb2N1bWVudFZpZXdl
cjsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpCit7CisgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91
c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgbnVsbHB0cikpOworICAgIHJldHVy
biBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGRhdGFiYXNlRGly
ZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9y
bURlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91
c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgImluZGV4ZWRkYiIsIG51bGxwdHIp
KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihpbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0aCgpIGNvbnN0Cit7CisgICAg
R1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dl
dF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgImljb25kYXRhYmFzZSIsIG51bGxwdHIpKTsKKyAg
ICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkYXRh
YmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5
UGxhdGZvcm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRy
PGdjaGFyPiBzdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRh
X2RpcigpLCAid3BlIiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzdG9yYWdlRGlyZWN0b3J5
LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1
bHRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBt
ZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRh
X2RpcigpLCAid3BlIiwgIm1lZGlha2V5cyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29y
ZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihtZWRpYUtleXNTdG9yYWdlRGly
ZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9y
bURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Y2hhcj4g
ZGlza0NhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIo
KSwgIndwZSIsICJjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5n
RnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkaXNrQ2FjaGVEaXJlY3RvcnkuZ2V0KCkpOwor
fQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEphdmFTY3Jp
cHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBqYXZh
U2NyaXB0Q29yZUNvbmZpZ0RpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0
YV9kaXIoKSwgIndwZSIsICJKYXZhU2NyaXB0Q29yZURlYnVnIiwgbnVsbHB0cikpOworICAgIHJl
dHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGphdmFTY3Jp
cHRDb3JlQ29uZmlnRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6
cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDJiMzViNjYwNmI2Li44Y2QzMWYyM2FhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTU0
MSw3ICs5NTQxLDcgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJXS0JB
U0VfSD0ke1RBUkdFVF9CVUlMRF9ESVJ9LyR7UFJJVkFURV9IRUFERVJTX0ZPTERFUl9QQVRIfS9X
S0Jhc2UuaFxuXG51bmlmZGVmIC1CIC1EX19BUFBMRV9fIC1VQlVJTERJTkdfR1RLX18gLVVVU0Vf
U09VUCAtbyBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9XCJcblxuY2FzZSAk
PyBpblxuMClcbiAgICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZlxuICAgIDs7XG4xKVxuICAg
IG12IFwiJHtXS0JBU0VfSH1cInsudW5pZmRlZix9XG4gICAgOztcbiopXG4gICAgZXhpdCAxXG5l
c2FjXG4iOworCQkJc2hlbGxTY3JpcHQgPSAiV0tCQVNFX0g9JHtUQVJHRVRfQlVJTERfRElSfS8k
e1BSSVZBVEVfSEVBREVSU19GT0xERVJfUEFUSH0vV0tCYXNlLmhcblxudW5pZmRlZiAtQiAtRF9f
QVBQTEVfXyAtVUJVSUxESU5HX0dUS19fIC1VQlVJTERJTkdfV1BFX18gLVVVU0VfU09VUCAtbyBc
IiR7V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9XCJcblxuY2FzZSAkPyBpblxuMClc
biAgICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZlxuICAgIDs7XG4xKVxuICAgIG12IFwiJHtX
S0JBU0VfSH1cInsudW5pZmRlZix9XG4gICAgOztcbiopXG4gICAgZXhpdCAxXG5lc2FjXG4iOwog
CQl9OwogCQkzN0U1MzEwMTFCMjM5MTA5MDA3NEYwREYgLyogQ29weSBpT1MgU2FuZGJveCBQcm9m
aWxlcyBmb3IgTWFudWFsIFNhbmRib3hpbmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlw
dEJ1aWxkUGhhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKaW5kZXggNTc1MDliOTdhNGMuLmUyYmU4
MDlkOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCkBAIC01Nyw3ICs1Nyw3IEBACiAKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KQogI2RlZmluZSBFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFIDEKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKaW5kZXggYzkxYjQ1YTljNTEuLjA4YTY4ZDA3OTg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6
OnJlZG8oKQogICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhl
Y3V0ZVVuZG9SZWRvKHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJQYWdlUHJveHk6OlJlZG8pKSwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvOjpSZXBseShyZXN1bHQpKTsK
IH0KIAotI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZP
Uk0oR1RLKSAmJiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXUEUpCiB2b2lkIFdlYkVk
aXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIHsK
ICAgICBpZiAobV9wYWdlLT5oYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChldmVudCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDU3ODFjODZkMmM2Li5lZjY2ZTU4ZTZi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE4MDIsNCArMTgwMiwx
MyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRpbmdJY29uKHVpbnQ2
NF90IGxvYWRJZGVudGlmaWVyLCBTaGFyZWRCdQogICAgIH0KIH0KIAorYm9vbCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6c2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBXZWJDb3JlOjpVUkwmKSBj
b25zdAoreworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAg
IHJldHVybiB0cnVlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDIxMmYxMGZkZGUxLi4zZjAzZTY5MzlmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjYyLDYgKzI2Miw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29u
JiwgdWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CiAgICAgdm9pZCBmaW5pc2hlZExvYWRpbmdJ
Y29uKHVpbnQ2NF90IGxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIqKSBmaW5h
bDsKIAorICAgIGJvb2wgc2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBXZWJDb3JlOjpVUkwm
KSBjb25zdCBvdmVycmlkZTsKKwogICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgIFJlZlB0cjxQ
bHVnaW5WaWV3PiBtX3BsdWdpblZpZXc7CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1
Z2luVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA4MjMyOTBk
ZjQyNC4uMWFhMmQ4YmVlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
QEAgLTM3NSw0ICszNzUsMzEgQEAgUmVmPFNlbGVjdGlvbkRhdGE+IFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6cmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWIKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKEdUSykKIAorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIFBhc3RlYm9hcmRTdHJhdGVn
eQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0VHlwZXMoVmVjdG9yPFN0cmluZz4m
IHR5cGVzKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldFBhc3Rl
Ym9hcmRUeXBlcygpLCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpHZXRQYXN0ZWJvYXJk
VHlwZXM6OlJlcGx5KHR5cGVzKSwgMCk7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZFR5cGUpCit7CisgICAgU3RyaW5nIHZhbHVlOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YXN0ZWJvYXJkUHJveHk6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbmRleCwgcGFzdGVib2Fy
ZFR5cGUpLCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkU3RyaW5nRnJvbVBhc3Rl
Ym9hcmQ6OlJlcGx5KHZhbHVlKSwgMCk7CisgICAgcmV0dXJuIHZhbHVlOworfQorCit2b2lkIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFz
dGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFzdGVib2Fy
ZFByb3h5OjpXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29udGVudCksIDApOworfQorCit2
b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlBhc3RlYm9hcmRQcm94eTo6V3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQocGFzdGVib2FyZFR5cGUs
IHRleHQpLCAwKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCA0MTkzOGVkOWVi
MS4uYWYwZjFhMzA0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtODks
MTAgKzg5LDE4IEBAIHByaXZhdGU6CiAgICAgbG9uZyBzZXRQYXRobmFtZXNGb3JUeXBlKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgbG9uZyBzZXRTdHJpbmdGb3JUeXBl
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEsp
CiAgICAgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUs
IGNvbnN0IFdlYkNvcmU6OlNlbGVjdGlvbkRhdGEmKSBvdmVycmlkZTsKICAgICBSZWY8V2ViQ29y
ZTo6U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2b2lk
IGdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHJl
YWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUpIG92ZXJyaWRlOworICAgIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29y
ZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKSBvdmVycmlkZTsKKyAgICB2b2lkIHdyaXRlVG9QYXN0
ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51
Q2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
d3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZWQwMzRiMDI2NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQ
RS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4
dE1lbnVDbGllbnQuaCIKKworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorCisjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBX
ZWJDb250ZXh0TWVudUNsaWVudDo6bG9va1VwSW5EaWN0aW9uYXJ5KFdlYkNvcmU6OkZyYW1lKikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkNvbnRleHRNZW51Q2xpZW50
Ojppc1NwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3BlYWsoY29uc3QgU3RyaW5nJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50
OjpzdG9wU3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0
b3JDbGllbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uYmRjYTMwMjRjZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCkBA
IC0wLDAgKzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJFZGl0b3JDbGllbnQu
aCIKKworI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRXZlbnROYW1lcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vZGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CisjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworLy8gVGhlIGlkZWEgZm9yIHRoZSBhcnJheS9tYXAgYmVsb3cgY29tZXMgZnJv
bSBCbGluaydzIEVkaXRpbmdCZWhhdmlvci5jcHAuCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBD
dHJsS2V5ICA9IDEgPDwgMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRLZXkgICA9IDEgPDwg
MTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEgPDwgMjsKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBNZXRhS2V5ICA9IDEgPDwgMzsKKworLy8gS2V5cyB3aXRoIHNwZWNpYWwgbWVh
bmluZy4gVGhlc2Ugd2lsbCBiZSBkZWxlZ2F0ZWQgdG8gdGhlIGVkaXRvciB1c2luZworLy8gdGhl
IGV4ZWNDb21tYW5kKCkgbWV0aG9kCitzdHJ1Y3QgS2V5RG93bkVudHJ5IHsKKyAgICB1bnNpZ25l
ZCB2aXJ0dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBu
YW1lOworfTsKKworc3RydWN0IEtleVByZXNzRW50cnkgeworICAgIHVuc2lnbmVkIGNoYXJDb2Rl
OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworfTsKKwor
c3RhdGljIGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50cmllc1tdID0geworICAgIHsgVktf
TEVGVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1v
dmVMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQs
ICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVdvcmRMZWZ0IiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5IHwgU2hpZnRLZXksCisgICAgICAg
ICJNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgMCwgICAgICAgICAgICAgICAgICAi
TW92ZVJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklH
SFQsICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24iICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVX
b3JkUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAg
Q3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRSaWdodEFuZE1vZGlmeVNlbGVjdGlvbiIgICAg
ICAgICB9LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVXAiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19VUCwgICAgIFNoaWZ0
S2V5LCAgICAgICAgICAgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX1BSSU9SLCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VVcEFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICAwLCAgICAgICAg
ICAgICAgICAgICJNb3ZlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19ET1dOLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVEb3duQW5kTW9kaWZ5U2Vs
ZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgU2hpZnRLZXksICAgICAg
ICAgICAiTW92ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICB9LAorICAgIHsg
VktfVVAsICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFyYWdyYXBoQmFja3dhcmRBbmRN
b2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBWS19ET1dOLCAgIEN0cmxLZXkgfCBTaGlmdEtleSwg
Ik1vdmVQYXJhZ3JhcGhGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiAgfSwKKyAgICB7IFZLX1BS
SU9SLCAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VVcCIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgVktfTkVYVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3Zl
UGFnZURvd24iICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAg
IDAsICAgICAgICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZSIgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgU2hpZnRLZXksCisgICAgICAgICJNb3ZlVG9CZWdp
bm5pbmdPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVRvQmVnaW5u
aW5nT2ZEb2N1bWVudCIgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5
IHwgU2hpZnRLZXksCisgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50QW5kTW9kaWZ5
U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAg
MCwgICAgICAgICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lIiAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfRU5ELCAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVG9FbmRP
ZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0cmxL
ZXksICAgICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX0VORCwgICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVRv
RW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIDAsICAgICAgICAgICAgICAgICAgIkRlbGV0ZUJh
Y2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgU2hp
ZnRLZXksICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfREVMRVRFLCAwLCAgICAgICAgICAgICAgICAgICJEZWxldGVGb3J3YXJk
IiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIEN0cmxLZXks
ICAgICAgICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX0RFTEVURSwgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29yZEZvcndhcmQi
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0InLCAgICAgICAgIEN0cmxLZXksICAg
ICAgICAgICJUb2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyAnSScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZUl0YWxpYyIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdVJywgICAgICAgICBDdHJsS2V5LCAgICAgICAg
ICAiVG9nZ2xlVW5kZXJsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktf
RVNDQVBFLCAwLCAgICAgICAgICAgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19PRU1fUEVSSU9ELCBDdHJsS2V5LCAgICAgICAgIkNh
bmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RBQiwg
ICAgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfVEFCLCAgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRC
YWNrdGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIDAs
ICAgICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGlu
ZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRLZXks
ICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2VydE5ld2xpbmUiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgU2hpZnRLZXksICAg
ICAgICAgICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IC8vIFRoZXNlIHByb2JhYmx5IG5lZWQgaGFuZGxpbmcgc29tZXdoZXJlIGVsc2Ugc28gZG8gbm90
IGV4ZWN1dGUgdGhlbS4gVGhlCisgICAgLy8gJ0N1dCcgY29tbWFuZCBpcyByZW1vdmluZyB0ZXh0
IHNvIGxldCdzIGF2b2lkIGxvc2luZyB0aGUgdXNlciBsb3NpbmcgZGF0YQorICAgIC8vIHVudGls
IHdlIGltcGxlbWVudCBjbGlwYm9hcmQgc3VwcG9ydCB3aGVyZXZlciBpdCBzaG91bGQgYmUuCisg
ICAgeyBWS19JTlNFUlQsIEN0cmxLZXksICAgICAgICAgICAgIkNvcHkiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VSVCwgU2hpZnRLZXksICAgICAg
ICAgICAiUGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfREVMRVRFLCBTaGlmdEtleSwgICAgICAgICAgICJDdXQiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQycsICAgICAgICAgQ3RybEtleSwgICAgICAgICAg
IkNvcHkiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdWJywg
ICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiUGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgJ1YnLCAgICAgICAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIlBh
c3RlQW5kTWF0Y2hTdHlsZSIgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnWCcsICAgICAg
ICAgQ3RybEtleSwgICAgICAgICAgIkN1dCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7ICdBJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiU2VsZWN0QWxs
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1onLCAgICAgICAgIEN0
cmxLZXksICAgICAgICAgICJVbmRvIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyAnWicsICAgICAgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiUmVkbyIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdZJywgICAgICAgICBDdHJsS2V5
LCAgICAgICAgICAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfSU5TRVJULCAwLCAgICAgICAgICAgICAgICAgICJPdmVyV3JpdGUiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMgY29uc3QgS2V5UHJlc3NFbnRy
eSBrZXlQcmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdcdCcsICAgMCwgICAgICAgICAgICAgICAg
ICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
J1x0JywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIDAsICAgICAgICAgICAgICAgICAgIklu
c2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccics
ICAgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRM
aW5lQnJlYWsiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEFs
dEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3bGlu
ZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworc3RhdGljIGNvbnN0IGNo
YXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQmIGV2ZW50KQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGludCwgY29uc3QgY2hhcio+PiBrZXlEb3du
Q29tbWFuZHNNYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8aW50LCBjb25z
dCBjaGFyKj4+IGtleVByZXNzQ29tbWFuZHNNYXA7CisKKyAgICBpZiAoa2V5RG93bkNvbW1hbmRz
TWFwLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
V1RGX0FSUkFZX0xFTkdUSChrZXlEb3duRW50cmllcyk7IGkrKykKKyAgICAgICAgICAgIGtleURv
d25Db21tYW5kc01hcC5nZXQoKS5zZXQoa2V5RG93bkVudHJpZXNbaV0ubW9kaWZpZXJzIDw8IDE2
IHwga2V5RG93bkVudHJpZXNbaV0udmlydHVhbEtleSwga2V5RG93bkVudHJpZXNbaV0ubmFtZSk7
CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleVBy
ZXNzRW50cmllcyk7IGkrKykKKyAgICAgICAgICAgIGtleVByZXNzQ29tbWFuZHNNYXAuZ2V0KCku
c2V0KGtleVByZXNzRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlQcmVzc0VudHJpZXNb
aV0uY2hhckNvZGUsIGtleVByZXNzRW50cmllc1tpXS5uYW1lKTsKKyAgICB9CisKKyAgICB1bnNp
Z25lZCBtb2RpZmllcnMgPSAwOworICAgIGlmIChldmVudC5zaGlmdEtleSgpKQorICAgICAgICBt
b2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LmFsdEtleSgpKQorICAgICAgICBt
b2RpZmllcnMgfD0gQWx0S2V5OworICAgIGlmIChldmVudC5jdHJsS2V5KCkpCisgICAgICAgIG1v
ZGlmaWVycyB8PSBDdHJsS2V5OworICAgIGlmIChldmVudC5tZXRhS2V5KCkpCisgICAgICAgIG1v
ZGlmaWVycyB8PSBNZXRhS2V5OworCisgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVz
KCkua2V5ZG93bkV2ZW50KSB7CisgICAgICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYg
fCBldmVudC5rZXlDb2RlKCk7CisgICAgICAgIHJldHVybiBtYXBLZXkgPyBrZXlEb3duQ29tbWFu
ZHNNYXAuZ2V0KCkuZ2V0KG1hcEtleSkgOiBudWxscHRyOworICAgIH0KKworICAgIGludCBtYXBL
ZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC5jaGFyQ29kZSgpOworICAgIHJldHVybiBtYXBL
ZXkgPyBrZXlQcmVzc0NvbW1hbmRzTWFwLmdldCgpLmdldChtYXBLZXkpIDogbnVsbHB0cjsKK30K
Kworc3RhdGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50
JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBwbGF0Zm9ybUV2ZW50KQorewor
ICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2ZW50KGV2ZW50KTsKKworICAg
IGlmICghY29tbWFuZE5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGZyYW1lLmVkaXRvcigpLmNv
bW1hbmQoY29tbWFuZE5hbWUpLmV4ZWN1dGUoKTsKKyAgICAgICAgZXZlbnQuc2V0RGVmYXVsdEhh
bmRsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIERvbid0IGluc2VydCBu
dWxsIG9yIGNvbnRyb2wgY2hhcmFjdGVycyBhcyB0aGV5IGNhbiByZXN1bHQgaW4gdW5leHBlY3Rl
ZCBiZWhhdmlvdXIKKyAgICBpZiAoZXZlbnQuY2hhckNvZGUoKSA8ICcgJykKKyAgICAgICAgcmV0
dXJuOworCisgICAgLy8gRG9uJ3QgaW5zZXJ0IGFueXRoaW5nIGlmIGEgbW9kaWZpZXIgaXMgcHJl
c3NlZCBhbmQgaXQgaGFzIG5vdCBiZWVuIGhhbmRsZWQgeWV0CisgICAgaWYgKHBsYXRmb3JtRXZl
bnQuY3RybEtleSgpIHx8IHBsYXRmb3JtRXZlbnQuYWx0S2V5KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChmcmFtZS5lZGl0b3IoKS5pbnNlcnRUZXh0KHBsYXRmb3JtRXZlbnQudGV4dCgp
LCAmZXZlbnQpKQorICAgICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOworfQorCitzdGF0
aWMgdm9pZCBoYW5kbGVLZXlEb3duKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQs
IGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpCit7CisgICAgU3RyaW5nIGNvbW1hbmROYW1l
ID0gaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpOworICAgIGlmIChjb21tYW5kTmFtZS5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHNob3VsZG4ndCBpbnNlcnQgdGV4dCB0
aHJvdWdoIHRoZSBlZGl0b3IuIExldCBXZWJDb3JlIGRlY2lkZQorICAgIC8vIGhvdyB0byBoYW5k
bGUgdGhhdCAoc2F5LCBUYWIsIHdoaWNoIGNvdWxkIGFsc28gYmUgdXNlZCB0bworICAgIC8vIGNo
YW5nZSBmb2N1cykuCisgICAgRWRpdG9yOjpDb21tYW5kIGNvbW1hbmQgPSBmcmFtZS5lZGl0b3Io
KS5jb21tYW5kKGNvbW1hbmROYW1lKTsKKyAgICBpZiAoY29tbWFuZC5pc1RleHRJbnNlcnRpb24o
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29tbWFuZC5leGVjdXRlKCk7CisgICAgZXZlbnQu
c2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUtl
eWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgTm9kZSog
bm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAgQVNTRVJUKG5vZGUpOworICAg
IEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBBU1NFUlQoZnJh
bWUpOworCisgICAgLy8gRklYTUU6IFJlb3JkZXIgdGhlIGNoZWNrcyBpbiBhIG1vcmUgc2Vuc2li
bGUgd2F5LgorCisgICAgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50KiBwbGF0Zm9ybUV2ZW50
ID0gZXZlbnQtPmtleUV2ZW50KCk7CisgICAgaWYgKCFwbGF0Zm9ybUV2ZW50KQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBJZiB0aGlzIHdhcyBhbiBJTUUgZXZlbnQgZG9uJ3QgZG8gYW55dGhp
bmcuCisgICAgaWYgKHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpID09IFZL
X1BST0NFU1NLRVkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvbid0IGFsbG93IHRleHQg
aW5zZXJ0aW9uIGZvciBub2RlcyB0aGF0IGNhbm5vdCBlZGl0LgorICAgIGlmICghZnJhbWUtPmVk
aXRvcigpLmNhbkVkaXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gVGhpcyBpcyBqdXN0
IGEgbm9ybWFsIHRleHQgaW5zZXJ0aW9uLCBzbyB3YWl0IHRvIGV4ZWN1dGUgdGhlIGluc2VydGlv
bgorICAgIC8vIHVudGlsIGEga2V5cHJlc3MgZXZlbnQgaGFwcGVucy4gVGhpcyB3aWxsIGVuc3Vy
ZSB0aGF0IHRoZSBpbnNlcnRpb24gd2lsbCBub3QKKyAgICAvLyBiZSByZWZsZWN0ZWQgaW4gdGhl
IGNvbnRlbnRzIG9mIHRoZSBmaWVsZCB1bnRpbCB0aGUga2V5dXAgRE9NIGV2ZW50LgorICAgIGlm
IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQorICAgICAgICBy
ZXR1cm4gaGFuZGxlS2V5UHJlc3MoKmZyYW1lLCAqZXZlbnQsICpwbGF0Zm9ybUV2ZW50KTsKKyAg
ICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KQorICAgICAg
ICByZXR1cm4gaGFuZGxlS2V5RG93bigqZnJhbWUsICpldmVudCwgKnBsYXRmb3JtRXZlbnQpOwor
fQorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKFdlYkNv
cmU6OktleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRF
dmVudCogcGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOworICAgIGlmIChwbGF0Zm9y
bUV2ZW50ICYmIHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX1BS
T0NFU1NLRVkpCisgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYWI4MzdiMGE0ZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVw
TWVudVdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
UG9wdXBNZW51LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlBvcHVwTWVudTo6c2V0VXBQbGF0Zm9ybURhdGEo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBsYXRmb3JtUG9wdXBNZW51RGF0YSYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9U
aHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdC5jcHAKaW5kZXggNjBlOTE2Nzk5YjMuLmQzZGY0NmExODdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9U
aHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRl
ZExheWVyVHJlZUhvc3QuY3BwCkBAIC03NCwxMCArNzQsMTAgQEAgVGhyZWFkZWRDb29yZGluYXRl
ZExheWVyVHJlZUhvc3Q6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KFdlYlBhZ2Um
IHdlYlAKICAgICAgICAgLy8gRG8gbm90IGRvIGZyYW1lIHN5bmMgd2hlbiByZW5kZXJpbmcgb2Zm
c2NyZWVuIGluIHRoZSB3ZWIgcHJvY2VzcyB0byBlbnN1cmUgdGhhdCBTd2FwQnVmZmVycyBuZXZl
ciBibG9ja3MuCiAgICAgICAgIC8vIFJlbmRlcmluZyB0byB0aGUgYWN0dWFsIHNjcmVlbiB3aWxs
IGhhcHBlbiBsYXRlciBhbnl3YXkgc2luY2UgdGhlIFVJIHByb2Nlc3Mgc2NoZWR1bGVzIGEgcmVk
cmF3IGZvciBldmVyeSB1cGRhdGUsCiAgICAgICAgIC8vIHRoZSBjb21wb3NpdG9yIHdpbGwgdGFr
ZSBjYXJlIG9mIHN5bmNpbmcgdG8gdmJsYW5rLgotICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJl
YWRlZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHNjYWxlZFNpemUsIHNj
YWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBUaHJlYWRlZENvbXBvc2l0b3I6OlNob3Vs
ZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOworICAgICAgICBtX2NvbXBvc2l0b3IgPSBU
aHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHdlYlBhZ2UsIHNj
YWxlZFNpemUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBUaHJlYWRlZENvbXBv
c2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOwogICAgICAgICBtX2xh
eWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gbV9zdXJmYWNlLT5zdXJmYWNlSUQoKTsKICAgICB9
IGVsc2UKLSAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUo
bV9jb21wb3NpdG9yQ2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvcik7CisgICAgICAgIG1f
Y29tcG9zaXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNsaWVu
dCwgd2ViUGFnZSwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IpOwogCiAgICAgZGlkQ2hhbmdlVmll
d3BvcnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuY3BwCmluZGV4IDJlNzgwZDkxYmU1Li41ZjA5M2FjN2I1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCkBAIC0zNyw2
ICszNyw4IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5o
IgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgIkRyYXdpbmdBcmVhV1BFLmgiCiAjZWxz
ZQogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgogI2VuZGlmCkBAIC01NSw2ICs1Nyw5IEBA
IHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6OmNyZWF0ZShXZWJQYWdl
JiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiAjZW5kaWYKICAgICBjYXNlIERyYXdpbmdBcmVhVHlw
ZVJlbW90ZUxheWVyVHJlZToKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOworI2VsaWYgUExBVEZP
Uk0oV1BFKQorICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlV1BFOgorICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJlYVdQRT4od2ViUGFnZSwgcGFyYW1ldGVycyk7CiAjZWxz
ZQogICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlSW1wbDoKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8RHJhd2luZ0FyZWFJbXBsPih3ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjNzIzOTY5MmMz
Yy4uMDc0NDdiZjAzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlciogV2ViUGFnZTo6bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
CiAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmdldCgp
OwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFU
Rk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKIGJvb2wgV2Vi
UGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogewog
ICAgIE5vZGUqIG5vZGUgPSBldnQtPnRhcmdldCgpLT50b05vZGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGFiOGM3ODBjYjVmLi5hNWNlNjdh
YzdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC0xMDE5LDcgKzEwMTksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAotI2lmICFQTEFU
Rk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXUEUpCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IFdlYkNvcmU6OktleWJv
YXJkRXZlbnQqKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlMjNkMzQwZDkxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFn
ZXIuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbXBvc2l0
aW5nTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0NvbXBv
c2l0aW5nTWFuYWdlcjo6fkNvbXBvc2l0aW5nTWFuYWdlcigpCit7CisgICAgQVNTRVJUKG1fY29u
bmVjdGlvbkZkID09IC0xKTsKK30KKwordm9pZCBDb21wb3NpdGluZ01hbmFnZXI6OmVzdGFibGlz
aENvbm5lY3Rpb24oV2ViUGFnZSYgd2ViUGFnZSkKK3sKKyAgICBJUEM6OkF0dGFjaG1lbnQgY29u
bmVjdGlvbkhhbmRsZTsKKyAgICB3ZWJQYWdlLnNlbmRTeW5jKE1lc3NhZ2VzOjpDb21wb3NpdGlu
Z01hbmFnZXJQcm94eTo6RXN0YWJsaXNoQ29ubmVjdGlvbigpLAorICAgICAgICBNZXNzYWdlczo6
Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5lY3Rpb246OlJlcGx5KGNvbm5l
Y3Rpb25IYW5kbGUpKTsKKworICAgIG1fY29ubmVjdGlvbkZkID0gY29ubmVjdGlvbkhhbmRsZS5y
ZWxlYXNlRmlsZURlc2NyaXB0b3IoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5n
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3Np
dGluZ01hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjFl
Mjc5MjIxOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlBhZ2U7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFuYWdlciBmaW5hbCB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdNYW5hZ2VyKTsKK3B1YmxpYzoKKyAgICBDb21w
b3NpdGluZ01hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgfkNvbXBvc2l0aW5nTWFuYWdlcigpOwor
CisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmKTsKKyAgICBpbnQgcmVsZWFz
ZUNvbm5lY3Rpb25GZCgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9jb25uZWN0aW9uRmQsIC0x
KTsgfTsKKworcHJpdmF0ZToKKyAgICBpbnQgbV9jb25uZWN0aW9uRmQgeyAtMSB9OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4zNDQ3YWM4Y2IwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwCkBAIC0w
LDAgKzEsMTkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEcmF3aW5nQXJlYVdQRS5oIgor
CisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFn
ZS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEcmF3aW5nQXJlYVdQRTo6
RHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGVXUEUsIHdlYlBhZ2Up
Cit7CisgICAgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNldEZvcmNlQ29tcG9zaXRp
bmdNb2RlKHRydWUpOworICAgIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoMCk7Cit9
CisKK0RyYXdpbmdBcmVhV1BFOjp+RHJhd2luZ0FyZWFXUEUoKQoreworfQorCit2b2lkIERyYXdp
bmdBcmVhV1BFOjpsYXllckhvc3REaWRGbHVzaExheWVycygpCit7CisgICAgbV93ZWJQYWdlLnNl
bmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OkVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUoMCwgbV9sYXllclRyZWVIb3N0LT5sYXllclRyZWVDb250ZXh0KCkpKTsKK30KKwordm9p
ZCBEcmF3aW5nQXJlYVdQRTo6c2V0TmVlZHNEaXNwbGF5KCkKK3sKKyAgICBBU1NFUlQobV9sYXll
clRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5vbkNvbXBvc2l0ZWRDb250ZW50
c05lZWREaXNwbGF5KCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNldE5lZWRzRGlzcGxh
eUluUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEFTU0VSVChtX2xheWVyVHJlZUhv
c3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERp
c3BsYXlJblJlY3QocmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNjcm9sbChjb25z
dCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJikKK3sKKyAgICBBU1NFUlQobV9s
YXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNjcm9sbE5vbkNvbXBvc2l0ZWRD
b250ZW50cyhzY3JvbGxSZWN0KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6cGFnZUJhY2tn
cm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkKK3sKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQor
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnBhZ2VCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5Q2hhbmdl
ZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJlcGFpbnQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgRHJhd2luZ0FyZWFXUEU6OmZvcmNlUmVwYWludEFz
eW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdCAm
JiBtX2xheWVyVHJlZUhvc3QtPmZvcmNlUmVwYWludEFzeW5jKGNhbGxiYWNrSUQpOworfQorCit2
b2lkIERyYXdpbmdBcmVhV1BFOjpzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wgZnJvemVu
KQoreworICAgIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbiA9IGZyb3plbjsKK30KKwordm9pZCBE
cmF3aW5nQXJlYVdQRTo6c2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRlUHJlZmVyZW5jZXMoY29u
c3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAgbV93ZWJQYWdlLmNvcmVQYWdl
KCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZUNvbXBvc2l0aW5nTW9kZUtleSgpKSk7Cit9
CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6Om1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29udGVudHNTaXplQ2hhbmdlZChzaXplKTsKK30KKwor
R3JhcGhpY3NMYXllckZhY3RvcnkqIERyYXdpbmdBcmVhV1BFOjpncmFwaGljc0xheWVyRmFjdG9y
eSgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgcmV0dXJuIG1fbGF5ZXJU
cmVlSG9zdC0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
Kwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAg
ICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RDb21wb3NpdGluZ0xheWVyKGdyYXBoaWNzTGF5ZXIp
OworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5zY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2NoZWR1
bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpCit7CisgICAgc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyRmx1c2goKTsKK30KKworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RV9ESVNQTEFZX01PTklUT1IpCitSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
PiBEcmF3aW5nQXJlYVdQRTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlz
cGxheUlEIGRpc3BsYXlJRCkKK3sKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAgICAgICBy
ZXR1cm4gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxh
eUlEKTsKKworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKK3ZvaWQgRHJhd2luZ0Fy
ZWFXUEU6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSogZnJh
bWUsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5Um9vdExheWVyKQoreworICAg
IGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VS
VChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld092ZXJsYXlS
b290TGF5ZXIodmlld092ZXJsYXlSb290TGF5ZXIpOworfQorCisjaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTX1RIUkVBREVEKQordm9pZCBEcmF3aW5nQXJlYVdQRTo6ZGlkQ2hhbmdlVmlld3Bv
cnRBdHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYmKQoreworfQorI2VuZGlm
CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhUVVJFX01BUFBFUikK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCit7
Cit9CisjZW5kaWYKKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRlQmFja2luZ1N0b3JlU3Rh
dGUodWludDY0X3QsIGJvb2wsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpCit7
CisgICAgbV93ZWJQYWdlLnNldERldmljZVNjYWxlRmFjdG9yKGRldmljZVNjYWxlRmFjdG9yKTsK
KyAgICBtX3dlYlBhZ2Uuc2V0U2l6ZShzaXplKTsKKyAgICBtX3dlYlBhZ2UubGF5b3V0SWZOZWVk
ZWQoKTsKKyAgICBtX3dlYlBhZ2Uuc2Nyb2xsTWFpbkZyYW1lSWZOb3RBdE1heFNjcm9sbFBvc2l0
aW9uKHNjcm9sbE9mZnNldCk7CisKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBt
X2xheWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobV93ZWJQYWdlLnNpemUoKSk7Cit9CisKK3Zv
aWQgRHJhd2luZ0FyZWFXUEU6OmRpZFVwZGF0ZSgpCit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoR3JhcGhpY3NMYXllciogZ3JhcGhp
Y3NMYXllcikKK3sKKyAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRy
ZWVIb3N0ID0gTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKG1fd2ViUGFnZSk7CisgICAgbV9sYXllclRy
ZWVIb3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xheWVyKTsKKyAgICBtX2xh
eWVyVHJlZUhvc3QtPnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNjaGVkdWxlZExheWVyRmx1c2go
dHJ1ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdlKG1fd2ViUGFnZS5zaXpl
KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDk5MTk3YzAyYWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmgK
QEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCisKKyNp
bmNsdWRlICJMYXllclRyZWVIb3N0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBE
cmF3aW5nQXJlYVdQRSA6IHB1YmxpYyBEcmF3aW5nQXJlYSB7CitwdWJsaWM6CisgICAgRHJhd2lu
Z0FyZWFXUEUoV2ViUGFnZSYsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAg
ICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVdQRSgpOworCisgICAgdm9pZCBsYXllckhvc3REaWRGbHVz
aExheWVycygpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIC8vIERyYXdpbmdBcmVhCisgICAg
dm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldE5lZWRzRGlzcGxh
eUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBzY3Jv
bGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOworCisgICAgdm9pZCBwYWdlQmFja2dyb3VuZFRy
YW5zcGFyZW5jeUNoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGZvcmNlUmVwYWludCgpIG92
ZXJyaWRlOworICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgY2FsbGJhY2tJRCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wpIG92ZXJy
aWRlOworICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbjsgfQorICAgIExheWVyVHJlZUhvc3QqIGxh
eWVyVHJlZUhvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVyVHJlZUhvc3QuZ2V0
KCk7IH0KKworICAgIHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpIG92ZXJyaWRlOworICAg
IHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpIG92ZXJy
aWRlOworICAgIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5
KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Um9vdENvbXBv
c2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQg
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVk
dWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSBvdmVycmlkZTsKKworI2lmIFVT
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisgICAgUmVmUHRyPFdl
YkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9y
KFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBvdmVycmlkZTsKKyNlbmRpZgorCisgICAgdm9p
ZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1NfVEhSRUFERUQpCisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2ViQ29y
ZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiYpIG92ZXJyaWRlOworI2VuZGlmCisKKyNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhUVVJFX01BUFBFUikKKyAgICB2b2lkIGRldmlj
ZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2b2lk
IHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBib29sLCBmbG9hdCwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFVwZGF0ZSgpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKworICAgIC8vIFdoZW4gdHJ1
ZSwgd2UgbWFpbnRhaW4gdGhlIGxheWVyIHRyZWUgaW4gaXRzIGN1cnJlbnQgc3RhdGUgYnkgbm90
IGxlYXZpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbW9kZQorICAgIC8vIGFuZCBub3Qgc2No
ZWR1bGluZyBsYXllciBmbHVzaGVzLgorICAgIGJvb2wgbV9sYXllclRyZWVTdGF0ZUlzRnJvemVu
IHsgZmFsc2UgfTsKKworICAgIC8vIFRoZSBsYXllciB0cmVlIGhvc3QgdGhhdCBoYW5kbGVzIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nLgorICAgIFJlZlB0cjxMYXllclRyZWVIb3N0PiBtX2xheWVy
VHJlZUhvc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc0Yzg0NGJjYmE5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJJbnNwZWN0b3JVSVdQRS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yVUkuaCIKKworI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3RvclVJ
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3RvclVJOjpjYW5TYXZl
KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JVSTo6bG9j
YWxpemVkU3RyaW5nc1VSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQoreworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0ZTBjNjVlMGVmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJ
bnNwZWN0b3JXUEUuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkluc3BlY3Rvci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2Jvb2wgV2ViSW5zcGVjdG9yOjpjYW5TYXZlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3I6OmxvY2FsaXplZFN0cmluZ3NVUkwo
KSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3MWMyNDZiODE4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcApAQCAt
MCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgor
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
Kwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQorCit2b2lkIFdlYlBh
Z2U6OnBsYXRmb3JtRGV0YWNoKCkKK3sKK30KKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUVkaXRv
clN0YXRlKEZyYW1lJiwgRWRpdG9yU3RhdGUmLCBJbmNsdWRlUG9zdExheW91dERhdGFIaW50KSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZv
cm1QcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZh
dWx0QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQYWdlOjpw
bGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6Y2FjaGVkUmVz
cG9uc2VNSU1FVHlwZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFdlYlBhZ2U6OnBsYXRmb3JtQ2FuSGFu
ZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6Y2FjaGVkU3VnZ2Vz
dGVkRmlsZW5hbWVGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gV2ViUGFnZTo6
Y2FjaGVkUmVzcG9uc2VEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3Jt
VXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYWNhODU0ZWY4NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BF
LmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBN
b3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NNYWluVW5peC5oIgorCisj
aW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2luY2x1ZGUgPGdsaWIuaD4K
KyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9j
ZXNzTWFpbiBmaW5hbDogcHVibGljIENoaWxkUHJvY2Vzc01haW5CYXNlIHsKK3B1YmxpYzoKKyAg
ICBib29sIHBsYXRmb3JtSW5pdGlhbGl6ZSgpIG92ZXJyaWRlCisgICAgeworICAgICAgICAvLyBU
T0RPOiBXcmFwIHdpdGggI2lmbmRlZiBOREVCVUcKKyAgICAgICAgaWYgKGdfZ2V0ZW52KCJXRUJL
SVQyX1BBVVNFX1dFQl9QUk9DRVNTX09OX0xBVU5DSCIpKSB7CisgICAgICAgICAgICBnX3ByaW50
ZXJyKCJXZWJQcm9jZXNzIFBJRDogJWRcbiIsIGdldHBpZCgpKTsKKyAgICAgICAgICAgIFdURjo6
c2xlZXAoMzApOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgYm9vbCBwYXJzZUNvbW1hbmRMaW5lKGludCBhcmdjLCBjaGFyKiogYXJndikgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIEFTU0VSVChhcmdjID09IDMpOworICAgICAgICBpZiAoYXJnYyA8IDMp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKCFDaGlsZFByb2Nlc3NN
YWluQmFzZTo6cGFyc2VDb21tYW5kTGluZShhcmdjLCBhcmd2KSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICBpbnQgd3BlRmQgPSBhdG9pKGFyZ3ZbMl0pOworICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goCisgICAgICAgICAgICBbd3BlRmRdIHsKKyAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KFBsYXRmb3JtRGlz
cGxheTo6c2hhcmVkRGlzcGxheSgpKSk7CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8UGxhdGZv
cm1EaXNwbGF5V1BFPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkuaW5pdGlhbGl6
ZSh3cGVGZCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
fTsKKworaW50IFdlYlByb2Nlc3NNYWluVW5peChpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7Cisg
ICAgcmV0dXJuIENoaWxkUHJvY2Vzc01haW48V2ViUHJvY2VzcywgV2ViUHJvY2Vzc01haW4+KGFy
Z2MsIGFyZ3YpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL3dwZS93cGUtd2Via2l0LnBjLmluIGIvU291cmNlL1dlYktpdDIvd3BlL3dwZS13
ZWJraXQucGMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5OWMw
MjUxODE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvd3BlL3dwZS13ZWJraXQu
cGMuaW4KQEAgLTAsMCArMSwxMSBAQAorcHJlZml4PUBDTUFLRV9JTlNUQUxMX1BSRUZJWEAKK2V4
ZWNfcHJlZml4PSR7cHJlZml4fQorbGliZGlyPUBMSUJfSU5TVEFMTF9ESVJACitpbmNsdWRlZGly
PSR7cHJlZml4fS9pbmNsdWRlCisKK05hbWU6IFdlYktpdDIKK0Rlc2NyaXB0aW9uOiBXUEUtZmxh
dm9yZWQgV2ViIGVuZ2luZQorVmVyc2lvbjogQFBST0pFQ1RfVkVSU0lPTkAKK1JlcXVpcmVzLnBy
aXZhdGU6IGdsaWItMi4wIGxpYnNvdXAtMi40CitMaWJzOiAtTCR7bGliZGlyfSAtbFdQRVdlYktp
dCAtbFdQRQorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vd3BlLUBXUEVfQVBJX1ZFUlNJT05AIC1J
JHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAvV1BFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvY21ha2UvRmluZExpYkdCTS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kTGliR0JNLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMjA5MWNiZmI0MgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kTGliR0JNLmNtYWtlCkBAIC0wLDAgKzEs
NDYgQEAKKyMgLSBUcnkgdG8gZmluZCBnYm0uCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmlu
ZQorIworIyAgTElCR0JNX0lOQ0xVREVfRElSUyAtIHRoZSBnYm0gaW5jbHVkZSBkaXJlY3Rvcmll
cworIyAgTElCR0JNX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8gdXNlIGdibS4KKyMKKyMgQ29w
eXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
CisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCisj
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOworIyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgorIyBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmluZF9wYWNrYWdlKFBrZ0Nv
bmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX0xJQkdCTSBnYm0pCisKK2ZpbmRfcGF0aChMSUJH
Qk1fSU5DTFVERV9ESVJTCisgICAgTkFNRVMgZ2JtLmgKKyAgICBISU5UUyAke1BDX0xJQkdCTV9J
TkNMVURFX0RJUlN9ICR7UENfTElCR0JNX0lOQ1VERURJUn0KKykKKworZmluZF9saWJyYXJ5KExJ
QkdCTV9MSUJSQVJJRVMKKyAgICBOQU1FUyBnYm0KKyAgICBISU5UUyAke1BDX0xJQkdCTV9MSUJS
QVJZX0RJUlN9ICR7UENfTElCR0JNX0xJQkRJUn0KKykKKworaW5jbHVkZShGaW5kUGFja2FnZUhh
bmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhMSUJH
Qk0gREVGQVVMVF9NU0cgTElCR0JNX0xJQlJBUklFUykKKworbWFya19hc19hZHZhbmNlZChMSUJH
Qk1fSU5DTFVERV9ESVJTIExJQkdCTV9MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21h
a2UvRmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2Vu
ZC1tZXNhLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MTYx
NTRlNjExOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1t
ZXNhLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkgdG8gZmluZCBXUEUtbWVzYS4KKyMg
T25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBXUEVfTUVTQV9GT1VORCAtIHN5c3Rl
bSBoYXMgV1BFLW1lc2EuCisjICBXUEVfTUVTQV9JTkNMVURFX0RJUlMgLSB0aGUgV1BFLW1lc2Eg
aW5jbHVkZSBkaXJlY3RvcmllcworIyAgV1BFX01FU0FfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0
byB1c2UgV1BFLW1lc2EuCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCisj
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19XUEVf
TUVTQSBRVUlFVCB3cGUtbWVzYSkKKworZmluZF9wYXRoKFdQRV9NRVNBX0lOQ0xVREVfRElSUwor
ICAgIE5BTUVTIHdwZS1tZXNhL3ZpZXctYmFja2VuZC1leHBvcnRhYmxlLWRtYS1idWYuaAorICAg
IEhJTlRTICR7UENfV1BFX01FU0FfSU5DTFVERURJUn0gJHtQQ19XUEVfTUVTQV9JTkNMVURFX0RJ
UlN9CispCisKK2ZpbmRfbGlicmFyeShXUEVfTUVTQV9MSUJSQVJJRVMKKyAgICBOQU1FUyBXUEVC
YWNrZW5kLW1lc2EKKyAgICBISU5UUyAke1BDX1dQRV9NRVNBX0xJQkRJUn0gJHtQQ19XUEVfTUVT
QV9MSUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQoV1BFX01FU0FfSU5DTFVERV9E
SVJTIFdQRV9NRVNBX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5k
YXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhXUEVfTUVTQSBSRVFV
SVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVTQV9MSUJSQVJJRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21ha2UgYi9Tb3VyY2UvY21ha2Uv
RmluZFdQRUJhY2tlbmQuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmM3YTkzZDAwNTE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVC
YWNrZW5kLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkgdG8gZmluZCBXUEUuCisjIE9u
Y2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFX0ZPVU5EIC0gc3lzdGVtIGhhcyBX
UEUuCisjICBXUEVfSU5DTFVERV9ESVJTIC0gdGhlIFdQRSBpbmNsdWRlIGRpcmVjdG9yaWVzCisj
ICBXUEVfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BFLgorIworIyBDb3B5cmlnaHQg
KEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMn
JyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQor
cGtnX2NoZWNrX21vZHVsZXMoUENfV1BFIFFVSUVUIHdwZSkKKworZmluZF9wYXRoKFdQRV9JTkNM
VURFX0RJUlMKKyAgICBOQU1FUyB3cGUvbG9hZGVyLmgKKyAgICBISU5UUyAke1BDX1dQRV9JTkNM
VURFRElSfSAke1BDX1dQRV9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGlicmFyeShXUEVfTElC
UkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2VuZAorICAgIEhJTlRTICR7UENfV1BFX0xJQkRJUn0g
JHtQQ19XUEVfTElCUkFSWV9ESVJTfQorKQorCittYXJrX2FzX2FkdmFuY2VkKFdQRV9JTkNMVURF
X0RJUlMgV1BFX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJk
QXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhXUEUgUkVRVUlSRURfVkFS
UyBXUEVfSU5DTFVERV9ESVJTIFdQRV9MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21h
a2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43MzY1MDFiMGM0NgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCkBAIC0wLDAgKzEsMTQxIEBA
CitpbmNsdWRlKEdOVUluc3RhbGxEaXJzKQorCitzZXQoUFJPSkVDVF9WRVJTSU9OX01BSk9SIDAp
CitzZXQoUFJPSkVDVF9WRVJTSU9OX01JTk9SIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX1BBVENI
IDIwMTcwNDI3KQorc2V0KFBST0pFQ1RfVkVSU0lPTiAke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0u
JHtQUk9KRUNUX1ZFUlNJT05fTUlOT1J9LiR7UFJPSkVDVF9WRVJTSU9OX1BBVENIfSkKK3NldChX
UEVfQVBJX1ZFUlNJT04gMC4xKQorCitpZiAoV1RGX0NQVV9YODZfNjQpCisgICAgc2V0KEVOQUJM
RV9GVExfREVGQVVMVCBPTikKK2Vsc2UgKCkKKyAgICBzZXQoRU5BQkxFX0ZUTF9ERUZBVUxUIE9G
RikKK2VuZGlmICgpCisKK1dFQktJVF9PUFRJT05fQkVHSU4oKQorCisjIFdlYktpdDIgQyBBUEkK
K1dFQktJVF9PUFRJT05fREVGSU5FKEVYUE9SVF9ERVBSRUNBVEVEX1dFQktJVDJfQ19BUEkgIldo
ZXRoZXIgdG8gZXhwb3J0IHRoZSBXZWJLaXQyIEMgQVBJIiBQUklWQVRFIE9GRikKKworV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFXzNEX1RSQU5TRk9STVMgUFVCTElDIE9O
KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUyBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0NTU19SRUdJT05TIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREFUQUJBU0VfUFJPQ0VTUyBQUklWQVRFIE9OKQor
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TiBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0xF
R0FDWV9FTkNSWVBURURfTUVESUEgUFVCTElDIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9GVExfSklUIFBSSVZBVEUgJHtFTkFCTEVfRlRMX0RFRkFVTFR9KQor
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dBTUVQQUQgUFVCTElDIE9G
RikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HRU9MT0NBVElPTiBQ
VUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOREVY
RURfREFUQUJBU0UgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgUFJJVkFURSBPRkYpCitXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUIFBV
QkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9T
T1VSQ0UgUFVCTElDIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9NSFRNTCBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgUFJJVkFURSBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfVE9VQ0hfRVZFTlRTIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFTyBQVUJMSUMgT04pCitXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklERU9fVFJBQ0sgUFVCTElDIE9OKQorV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEg
UFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9B
TklNQVRJT05TIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfV0VCX0FVRElPIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9XRUJHTCBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfV0VCX1RJTUlORyBQVUJMSUMgT04pCisKK1dFQktJVF9PUFRJT05fREVGSU5F
KFVTRV9HU1RSRUFNRVJfR0wgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIEdTdHJlYW1l
ciBHTCIgUFJJVkFURSBPRkYpCisKK1dFQktJVF9PUFRJT05fRU5EKCkKKworc2V0KEVOQUJMRV9X
RUJDT1JFIE9OKQorc2V0KEVOQUJMRV9XRUJLSVQgT0ZGKQorc2V0KEVOQUJMRV9XRUJLSVQyIE9O
KQorc2V0KEVOQUJMRV9BUElfVEVTVFMgJHtERVZFTE9QRVJfTU9ERX0pCitzZXQoRU5BQkxFX1RP
T0xTIE9OKQorCitzZXQoV1RGX0xJQlJBUllfVFlQRSBTVEFUSUMpCitzZXQoSmF2YVNjcmlwdENv
cmVfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChXZWJDb3JlX0xJQlJBUllfVFlQRSBTVEFUSUMp
CitzZXQoV2ViS2l0Ml9PVVRQVVRfTkFNRSBXUEVXZWJLaXQpCitzZXQoV2ViS2l0Ml9XZWJQcm9j
ZXNzX09VVFBVVF9OQU1FIFdQRVdlYlByb2Nlc3MpCitzZXQoV2ViS2l0Ml9OZXR3b3JrUHJvY2Vz
c19PVVRQVVRfTkFNRSBXUEVOZXR3b3JrUHJvY2VzcykKK3NldChXZWJLaXQyX0RhdGFiYXNlUHJv
Y2Vzc19PVVRQVVRfTkFNRSBXUEVEYXRhYmFzZVByb2Nlc3MpCisKK2ZpbmRfcGFja2FnZShJQ1Ug
UkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoVGhyZWFkcyBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZSha
TElCIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEdMSUIgMi40MC4wIFJFUVVJUkVEIENPTVBPTkVO
VFMgZ2lvIGdpby11bml4IGdvYmplY3QgZ3RocmVhZCBnbW9kdWxlKQorZmluZF9wYWNrYWdlKEdu
dVRMUyAzLjAuMCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKENhaXJvIDEuMTAuMiBSRVFVSVJF
RCkKK2ZpbmRfcGFja2FnZShGb250Y29uZmlnIDIuOC4wIFJFUVVJUkVEKQorZmluZF9wYWNrYWdl
KEZyZWV0eXBlMiAyLjQuMiBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShIYXJmQnV6eiAwLjkuMTgg
UkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoSlBFRyBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJH
Y3J5cHQgMS42LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoTGliU291cCAyLjQyLjAgUkVRVUlS
RUQpCitmaW5kX3BhY2thZ2UoTGliWG1sMiAyLjguMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShM
aWJYc2x0IDEuMS43IFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFBORyBSRVFVSVJFRCkKK2ZpbmRf
cGFja2FnZShTcWxpdGUgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoV2ViUCBSRVFVSVJFRCkKKwor
ZmluZF9wYWNrYWdlKE9wZW5HTEVTMiBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShFR0wgUkVRVUlS
RUQpCisKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kIFJFUVVJUkVEKQorCitzZXQoVVNFX1hER01J
TUUgT04pCisKK2lmIChFTkFCTEVfVklERU8gT1IgRU5BQkxFX1dFQl9BVURJTykKKyAgICBzZXQo
R1NUUkVBTUVSX0NPTVBPTkVOVFMgYXBwIGF1ZGlvIHBidXRpbHMpCisgICAgU0VUX0FORF9FWFBP
U0VfVE9fQlVJTEQoVVNFX0dTVFJFQU1FUiBUUlVFKQorICAgIGlmIChFTkFCTEVfVklERU8pCisg
ICAgICAgIGxpc3QoQVBQRU5EIEdTVFJFQU1FUl9DT01QT05FTlRTIHZpZGVvIHRhZykKKyAgICBl
bmRpZiAoKQorCisgICAgaWYgKEVOQUJMRV9XRUJfQVVESU8pCisgICAgICAgIGxpc3QoQVBQRU5E
IEdTVFJFQU1FUl9DT01QT05FTlRTIGZmdCkKKyAgICAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJ
TEQoVVNFX1dFQkFVRElPX0dTVFJFQU1FUiBUUlVFKQorICAgIGVuZGlmICgpCisKKyAgICBmaW5k
X3BhY2thZ2UoR1N0cmVhbWVyIDEuMi4zIFJFUVVJUkVEIENPTVBPTkVOVFMgJHtHU1RSRUFNRVJf
Q09NUE9ORU5UU30pCisKKyAgICAjIEZJWE1FOiBXaGF0IGFib3V0IE1QRUdUUyBzdXBwb3J0PyBV
U0VfR1NUUkVBTUVSX01QRUdUUz8KK2VuZGlmICgpCisKK2lmIChFTkFCTEVfTUVESUFfU1RSRUFN
IE9SIEVOQUJMRV9XRUJfUlRDKQorICAgIGZpbmRfcGFja2FnZShPcGVuV2ViUlRDKQorICAgIGlm
IChOT1QgT1BFTldFQlJUQ19GT1VORCkKKyAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiT3Bl
bldlYlJUQyBpcyBuZWVkZWQgZm9yIEVOQUJMRV9NRURJQV9TVFJFQU0gYW5kIEVOQUJMRV9XRUJf
UlRDLiIpCisgICAgZW5kaWYgKCkKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfT1BF
TldFQlJUQyBUUlVFKQorZW5kaWYgKCkKKworaWYgKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpCisgICAgZmluZF9wYWNrYWdlKENhaXJvR0wgMS4xMC4yIFJFUVVJUkVEIENPTVBPTkVOVFMg
Y2Fpcm8tZWdsKQorZW5kaWYgKCkKKworYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfV1BFX189
MSkKK2FkZF9kZWZpbml0aW9ucygtRERBVEFfRElSPSIke0NNQUtFX0lOU1RBTExfREFUQURJUn0i
KQorCitzZXQoVVNFX1VESVM4NiAxKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfT1BF
TkdMX0VTXzIgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9FR0wgVFJVRSkKKwor
U0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoRU5BQkxFX0dSQVBISUNTX0NPTlRFWFRfM0QgVFJVRSkK
KworU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RFWFRVUkVfTUFQUEVSIFRSVUUpCitTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVJfR0wgVFJVRSkKK1NFVF9BTkRf
RVhQT1NFX1RPX0JVSUxEKFVTRV9USUxFRF9CQUNLSU5HX1NUT1JFIFRSVUUpCitTRVRfQU5EX0VY
UE9TRV9UT19CVUlMRChVU0VfQ09PUkRJTkFURURfR1JBUEhJQ1MgVFJVRSkKK1NFVF9BTkRfRVhQ
T1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCBUUlVFKQorCitz
ZXQoRk9SV0FSRElOR19IRUFERVJTX0RJUiAke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzKQorCisjIEJ1aWxkIHdpdGggLWZ2aXNpYmlsaXR5PWhpZGRlbiB0byByZWR1Y2Ug
dGhlIHNpemUgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5LgorIyBOb3QgdG8gYmUgdXNlZCB3aGVuIGJ1
aWxkaW5nIHRoZSBXZWJLaXRUZXN0UnVubmVyIGxpYnJhcnkuCitpZiAoTk9UIERFVkVMT1BFUl9N
T0RFKQorICAgIHNldChDTUFLRV9DX0ZMQUdTX1JFTEVBU0UgIiR7Q01BS0VfQ19GTEFHU19SRUxF
QVNFfSAtZnZpc2liaWxpdHk9aGlkZGVuIikKKyAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX1JFTEVB
U0UgIiR7Q01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4gLWZ2aXNp
YmlsaXR5LWlubGluZXMtaGlkZGVuIikKK2VuZGlmICgpCmRpZmYgLS1naXQgYS9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUgYi9Ub29scy9CdWlsZFNsYXZlU3Vw
cG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUKaW5kZXggMmMzMDJkYmNkZWIuLjkwN2E1NDczODMx
IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hp
dmUKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1hcmNoaXZlCkBA
IC0xNzAsNyArMTcwLDcgQEAgZGVmIGRpckNvbnRhaW5zZHdvKGRpcmVjdG9yeSk6CiAKIAogZGVm
IGFyY2hpdmVCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGZ1bGxQbGF0Zm9y
bSk6Ci0gICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdndGsnLCAnZWZsJywg
J2lvcycpCisgICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdndGsnLCAnZWZs
JywgJ2lvcycsICd3cGUnKQogCiAgICAgaWYgcGxhdGZvcm0gPT0gJ2lvcyc6CiAgICAgICAgIGNv
bWJpbmVkRGlyZWN0b3J5ID0gb3MucGF0aC5qb2luKF90b3BMZXZlbEJ1aWxkRGlyZWN0b3J5LCAn
Y29tYmluZWQtbWFjLWFuZC1pb3MnKQpAQCAtMTk4LDcgKzE5OCw3IEBAIGRlZiBhcmNoaXZlQnVp
bHRQcm9kdWN0KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBmdWxsUGxhdGZvcm0pOgogCiAgICAg
ICAgIHNodXRpbC5ybXRyZWUodGhpbkRpcmVjdG9yeSkKIAotICAgIGVsaWYgcGxhdGZvcm0gPT0g
J2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCc6CisgICAgZWxpZiBwbGF0Zm9ybSA9PSAnZ3RrJyBv
ciBwbGF0Zm9ybSA9PSAnZWZsJyBvciBwbGF0Zm9ybSA9PSAnd3BlJzoKICAgICAgICAgIyBPbiBH
VEsrL0VGTCB3ZSBkb24ndCBuZWVkIHRoZSBpbnRlcm1lZGlhdGUgc3RlcCBvZiBjcmVhdGluZyBh
IHRoaW5EaXJlY3RvcnkKICAgICAgICAgIyB0byBiZSBjb21wcmVzc2VkIGluIGEgWklQIGZpbGUs
IGJlY2F1c2Ugd2UgY2FuIGNyZWF0ZSB0aGUgWklQIGRpcmVjdGx5LgogICAgICAgICAjIFRoaXMg
aXMgZmFzdGVyIGFuZCByZXF1aXJlcyBsZXNzIGRpc2sgcmVzb3VyY2VzLgpAQCAtMjMyLDcgKzIz
Miw3IEBAIGRlZiB1bnppcEFyY2hpdmUoZGlyZWN0b3J5VG9FeHRyYWN0VG8sIGNvbmZpZ3VyYXRp
b24pOgogCiAKIGRlZiBleHRyYWN0QnVpbHRQcm9kdWN0KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3Jt
KToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAn
aW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwn
LCAnaW9zJywgJ3dwZScpCiAKICAgICBhcmNoaXZlRmlsZSA9IG9zLnBhdGguam9pbihfdG9wTGV2
ZWxCdWlsZERpcmVjdG9yeSwgY29uZmlndXJhdGlvbiArICcuemlwJykKIApAQCAtMjQxLDcgKzI0
MSw3IEBAIGRlZiBleHRyYWN0QnVpbHRQcm9kdWN0KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtKToK
IAogICAgIGlmIHBsYXRmb3JtIGluICgnbWFjJywgJ2lvcycpOgogICAgICAgICByZXR1cm4gdW56
aXBBcmNoaXZlKF90b3BMZXZlbEJ1aWxkRGlyZWN0b3J5LCBjb25maWd1cmF0aW9uKQotICAgIGVs
aWYgcGxhdGZvcm0gPT0gJ3dpbicgb3IgcGxhdGZvcm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0g
J2VmbCc6CisgICAgZWxpZiBwbGF0Zm9ybSA9PSAnd2luJyBvciBwbGF0Zm9ybSA9PSAnZ3RrJyBv
ciBwbGF0Zm9ybSA9PSAnZWZsJyBvciBwbGF0Zm9ybSA9PSAnd3BlJzoKICAgICAgICAgcHJpbnQg
J0V4dHJhY3RpbmcnLCBfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5CiAgICAgICAgIHJldHVy
biB1bnppcEFyY2hpdmUoX2NvbmZpZ3VyYXRpb25CdWlsZERpcmVjdG9yeSwgY29uZmlndXJhdGlv
bikKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJj
aGl2ZSBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUKaW5kZXgg
M2MyYjBiZDdhMzYuLjk4MGYwNzFjMTRmIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3Vw
cG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rl
c3QtcmVzdWx0LWFyY2hpdmUKQEAgLTQ2LDcgKzQ2LDcgQEAgZGVmIG1haW4oKToKICAgICByZXR1
cm4gYXJjaGl2ZVRlc3RSZXN1bHRzKG9wdGlvbnMuY29uZmlndXJhdGlvbiwgb3B0aW9ucy5wbGF0
Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpCiAKIGRlZiBhcmNoaXZlVGVzdFJlc3VsdHMoY29u
ZmlndXJhdGlvbiwgcGxhdGZvcm0sIGxheW91dFRlc3RSZXN1bHRzRGlyKToKLSAgICBhc3NlcnQg
cGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnd2luY2Fpcm8nLCAnaW9z
JykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAn
d2luY2Fpcm8nLCAnaW9zJywgJ3dwZScpCiAKICAgICB0cnk6CiAgICAgICAgIG9zLnVubGluayhh
cmNoaXZlRmlsZSkKQEAgLTY2LDcgKzY2LDcgQEAgZGVmIGFyY2hpdmVUZXN0UmVzdWx0cyhjb25m
aWd1cmF0aW9uLCBwbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpOgogICAgIGlmIHBsYXRm
b3JtIGluICgnbWFjJywgJ2lvcycpOgogICAgICAgICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJkaXR0
byIsICItYyIsICItayIsICItLXNlcXVlc3RlclJzcmMiLCAiLS16bGliQ29tcHJlc3Npb25MZXZl
bCIsICIyIiwgbGF5b3V0VGVzdFJlc3VsdHNEaXIsIGFyY2hpdmVGaWxlXSk6CiAgICAgICAgICAg
ICByZXR1cm4gMQotICAgIGVsaWYgcGxhdGZvcm0gaW4gKCd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3
aW5jYWlybycpOgorICAgIGVsaWYgcGxhdGZvcm0gaW4gKCd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3
aW5jYWlybycsICd3cGUnKToKICAgICAgICAgaWYgc3VicHJvY2Vzcy5jYWxsKFsiemlwIiwgIi1y
IiwgIi0yIiwgYXJjaGl2ZUZpbGUsICIuIl0sIGN3ZD1sYXlvdXRUZXN0UmVzdWx0c0Rpcik6CiAg
ICAgICAgICAgICByZXR1cm4gMQogCmRpZmYgLS1naXQgYS9Ub29scy9DTWFrZUxpc3RzLnR4dCBi
L1Rvb2xzL0NNYWtlTGlzdHMudHh0CmluZGV4IGIzMDQ5Yjg4NDFkLi44MGZkYjhjOTRkZSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvQ01ha2VMaXN0cy50eHQK
QEAgLTIzLDYgKzIzLDExIEBAIGVsc2VpZiAoIiR7UE9SVH0iIFNUUkVRVUFMICJKU0NPbmx5IikK
ICAgICBpZiAoRU5BQkxFX0FQSV9URVNUUykKICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShUZXN0
V2ViS2l0QVBJKQogICAgIGVuZGlmICgpCitlbHNlaWYgKCIke1BPUlR9IiBTVFJFUVVBTCAiV1BF
IikKKyAgICBpZiAoREVWRUxPUEVSX01PREUpCisgICAgICAgIGFkZF9zdWJkaXJlY3RvcnkoSW1h
Z2VEaWZmKQorICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KFdlYktpdFRlc3RSdW5uZXIpCisgICAg
ZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChXSU4zMikKZGlmZiAtLWdpdCBhL1Rvb2xzL0ltYWdl
RGlmZi9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Rvb2xzL0ltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFr
ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGIwZWU1MzI4YmEKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9JbWFnZURpZmYvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAs
MCArMSBAQAoraW5jbHVkZShDYWlyby5jbWFrZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
YnVpbGQtZHVtcHJlbmRlcnRyZWUgYi9Ub29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVl
CmluZGV4IDc2MWY0M2Y2OTg5Li4xN2RkODIwOGIyMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy9idWlsZC1kdW1wcmVuZGVydHJlZQorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5k
ZXJ0cmVlCkBAIC02NSw4ICs2NSw4IEBAIGNoZGlyIEZpbGU6OlNwZWMtPmNhdGRpcigiVG9vbHMi
LCAiRHVtcFJlbmRlclRyZWUiKSBvciBkaWU7CiBteSAkcmVzdWx0OwogaWYgKGlzQXBwbGVDb2Nv
YVdlYktpdCgpKSB7CiAgICAgJHJlc3VsdCA9IGJ1aWxkWENvZGVQcm9qZWN0KCJEdW1wUmVuZGVy
VHJlZSIsICRjbGVhbiwgWGNvZGVPcHRpb25zKCksIEBBUkdWKTsKLX0gZWxzaWYgKGlzR3RrKCkg
fHwgaXNBbnlXaW5kb3dzKCkpIHsKLSAgICAjIEdUSyBhbmQgV2luZG93cyBidWlsZCBldmVyeXRo
aW5nIGluIG9uZSBzaG90LiBObyBuZWVkIHRvIGJ1aWxkIGFueXRoaW5nIGhlcmUuCit9IGVsc2lm
IChpc0d0aygpIHx8IGlzV1BFKCkgfHwgaXNBbnlXaW5kb3dzKCkpIHsKKyAgICAjIEdUSywgV1BF
IGFuZCBXaW5kb3dzIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVp
bGQgYW55dGhpbmcgaGVyZS4KICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CiAgICAgZGllICJC
dWlsZGluZyBub3QgZGVmaW5lZCBmb3IgdGhpcyBwbGF0Zm9ybSFcbiI7CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cmlu
ZGV4IDcxNDJhZTY2NDczLi4yZmVlYzY2NWNhMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9i
dWlsZC13ZWJraXQKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTEwMCw2ICsx
MDAsNyBAQCBVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBbb3B0aW9ucyB0byBwYXNzIHRv
IGJ1aWxkIHN5c3RlbV0KICAgLS1hbmFseXplICAgICAgICAgICAgICAgICAgICAgICAgIEVuYWJs
ZSBzdGF0aWMgYW5heWxzaXMgKGlPUyBhbmQgTWFjIG9ubHkpCiAKICAgLS1ndGsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEJ1aWxkIHRoZSBHVEsrIHBvcnQKKyAgLS13cGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEJ1aWxkIHRoZSBXUEUgcG9ydAogICAtLXdpbmNhaXJvICAgICAg
ICAgICAgICAgICAgICAgICAgQnVpbGQgdXNpbmcgQ2Fpcm8gKHJhdGhlciB0aGFuIENvcmVHcmFw
aGljcykgb24gV2luZG93cwogCiAgIC0taW5zcGVjdG9yLWZyb250ZW5kICAgICAgICAgICAgICBD
b3B5IFdlYiBJbnNwZWN0b3IgdXNlciBpbnRlcmZhY2UgcmVzb3VyY2VzIHRvIHRoZSBidWlsZCBk
aXJlY3RvcnkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5l
ciBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcgppbmRleCAyNDAzZjkzNjhk
My4uOTcwN2Y2NDQ2M2EgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVz
dHJ1bm5lcgorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKQEAgLTYx
LDggKzYxLDggQEAgY2hkaXIgIlRvb2xzL1dlYktpdFRlc3RSdW5uZXIiIG9yIGRpZTsKIG15ICRy
ZXN1bHQ7CiBpZiAoaXNBcHBsZUNvY29hV2ViS2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRY
Q29kZVByb2plY3QoIldlYktpdFRlc3RSdW5uZXIiLCAkY2xlYW4sIFhjb2RlT3B0aW9ucygpLCBA
QVJHVik7Ci19IGVsc2lmIChpc0d0aygpKSB7Ci0gICAgIyBHVEsrIGJ1aWxkIGV2ZXJ5dGhpbmcg
aW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhpbmcgaGVyZS4KK30gZWxzaWYgKGlz
R3RrKCkgfHwgaXNXUEUoKSkgeworICAgICMgR1RLKyBhbmQgV1BFIGJ1aWxkIGV2ZXJ5dGhpbmcg
aW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhpbmcgaGVyZS4KICAgICAkcmVzdWx0
ID0gMDsKIH0gZWxzZSB7CiAgICAgZGllICJXZWJLaXRUZXN0UnVubmVyIGlzIG5vdCBzdXBwb3J0
ZWQgb24gdGhpcyBwbGF0Zm9ybS5cbiI7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJraXQtbGlicy1qaGJ1aWxkIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMt
amhidWlsZAppbmRleCBkOWRiZmY1ZGRlNC4uMTA3OWE5ZThhYjUgMTAwNzU1Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQKKysrIGIvVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZApAQCAtMjQsOSArMjQsMTAgQEAgdXNlIEdldG9wdDo6
TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCk7CiAKIG15ICRwbGF0Zm9ybSA9ICIiOwogJHBs
YXRmb3JtID0gImd0ayIgaWYgaXNHdGsoKTsKKyRwbGF0Zm9ybSA9ICJ3cGUiIGlmIGlzV1BFKCk7
CiAKIGlmICghJHBsYXRmb3JtKSB7Ci0gICAgZGllICJObyBwbGF0Zm9ybSBzcGVjaWZpZWQgZm9y
ICIgLiBiYXNlbmFtZSgkMCkgLiIuIFVzZSAtLWd0ay5cbiI7CisgICAgZGllICJObyBwbGF0Zm9y
bSBzcGVjaWZpZWQgZm9yICIgLiBiYXNlbmFtZSgkMCkgLiIuIFVzZSAtLWd0ayBvciAtLXdwZS5c
biI7CiB9CiAKIG15ICR3aXBlT25DaGFuZ2UgPSAkRU5We0pIQlVJTERfV0lQRV9PTl9DSEFOR0V9
IC8vIDE7CkBAIC0xMzIsNyArMTMzLDcgQEAgZGVsZXRlICRFTlZ7QVJfRkxBR1N9IGlmIGV4aXN0
cyAkRU5We0FSX0ZMQUdTfTsKIAogY2hkaXIocmVsYXRpdmVTY3JpcHRzRGlyKCkgLiAiLy4uL2po
YnVpbGQiKSBvciBkaWUgJCE7CiAKLW15ICVwcmV0dHlQbGF0Zm9ybSA9ICggImd0ayIgPT4gIkdU
SysiICk7CitteSAlcHJldHR5UGxhdGZvcm0gPSAoICJndGsiID0+ICJHVEsrIiwgIndwZSIgPT4g
IldQRSIgKTsKIAogaWYgKCEkZm9yY2UgJiYgIWpoYnVpbGRDb25maWd1cmF0aW9uQ2hhbmdlZCgp
KSB7CiAgICAgcHJpbnQgJHByZXR0eVBsYXRmb3JteyRwbGF0Zm9ybX0gLiAiIHBvcnQgZGVwZW5k
ZW5jaWVzIGFyZSBhbHJlYWR5IHVwIHRvIGRhdGVcbiI7CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicyBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdw
ZS1saWJzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwLi5iMjNmYmRlNmI4
MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJz
CkBAIC0wLDAgKzEsMjQgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworIyBDb3B5cmlnaHQgKEMpIDIw
MTEgSWdhbGlhIFMuTC4KKyMgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCisj
CisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
Cit1c2UgRmluZEJpbjsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKK3VzZSB3ZWJraXRkaXJzOwor
CitteSAkc2NyaXB0c0RpciA9IHJlbGF0aXZlU2NyaXB0c0RpcigpOworc3lzdGVtKCJwZXJsIiwg
IiRzY3JpcHRzRGlyL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkIiwgIi0td3BlIiwgQEFSR1Yp
ID09IDAgb3IgZGllICQhOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCmluZGV4IGJjNDY1NDYxN2QxLi42ZThlMGU3
ZmU1NCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0ZGlycy5wbQpAQCAtMTA3LDYgKzEwNyw3IEBAIHVzZSBjb25zdGFudCB7
CiAgICAgTWFjICAgICAgPT4gIk1hYyIsCiAgICAgSlNDT25seSAgPT4gIkpTQ09ubHkiLAogICAg
IFdpbkNhaXJvID0+ICJXaW5DYWlybyIsCisgICAgV1BFICAgICAgPT4gIldQRSIsCiAgICAgVW5r
bm93biAgPT4gIlVua25vd24iCiB9OwogCkBAIC00NDUsNiArNDQ2LDcgQEAgc3ViIGFyZ3VtZW50
c0ZvckNvbmZpZ3VyYXRpb24oKQogICAgIHB1c2goQGFyZ3MsICctLTMyLWJpdCcpIGlmICgkYXJj
aGl0ZWN0dXJlIG5lICJ4ODZfNjQiIGFuZCAhaXNXaW42NCgpKTsKICAgICBwdXNoKEBhcmdzLCAn
LS02NC1iaXQnKSBpZiAoaXNXaW42NCgpKTsKICAgICBwdXNoKEBhcmdzLCAnLS1ndGsnKSBpZiBp
c0d0aygpOworICAgIHB1c2goQGFyZ3MsICctLXdwZScpIGlmIGlzV1BFKCk7CiAgICAgcHVzaChA
YXJncywgJy0tanNjLW9ubHknKSBpZiBpc0pTQ09ubHkoKTsKICAgICBwdXNoKEBhcmdzLCAnLS13
aW5jYWlybycpIGlmIGlzV2luQ2Fpcm8oKTsKICAgICBwdXNoKEBhcmdzLCAnLS1pbnNwZWN0b3It
ZnJvbnRlbmQnKSBpZiBpc0luc3BlY3RvckZyb250ZW5kKCk7CkBAIC02ODAsNyArNjgyLDcgQEAg
c3ViIGV4ZWN1dGFibGVQcm9kdWN0RGlyCiAgICAgbXkgJHByb2R1Y3REaXJlY3RvcnkgPSBwcm9k
dWN0RGlyKCk7CiAKICAgICBteSAkYmluYXJ5RGlyZWN0b3J5OwotICAgIGlmIChpc0d0aygpIHx8
IGlzSlNDT25seSgpKSB7CisgICAgaWYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUo
KSkgewogICAgICAgICAkYmluYXJ5RGlyZWN0b3J5ID0gImJpbiI7CiAgICAgfSBlbHNpZiAoaXNB
bnlXaW5kb3dzKCkpIHsKICAgICAgICAgJGJpbmFyeURpcmVjdG9yeSA9IGlzV2luNjQoKSA/ICJi
aW42NCIgOiAiYmluMzIiOwpAQCAtOTM4LDYgKzk0MCw5IEBAIHN1YiBidWlsdER5bGliUGF0aEZv
ck5hbWUKICAgICAgICAgICAgIHJldHVybiAiJGJhc2VQcm9kdWN0RGlyLyRsaWJyYXJ5TmFtZS5p
bnRlcm1lZGlhdGUvJGNvbmZpZ3VyYXRpb24vJGxpYnJhcnlOYW1lLmludGVybWVkaWF0ZS8kbGli
cmFyeU5hbWUubGliIjsKICAgICAgICAgfQogICAgIH0KKyAgICBpZiAoaXNXUEUoKSkgeworICAg
ICAgICByZXR1cm4gIiRjb25maWd1cmF0aW9uUHJvZHVjdERpci9saWIvbGliV1BFV2ViS2l0LnNv
IjsKKyAgICB9CiAKICAgICBkaWUgIlVuc3VwcG9ydGVkIHBsYXRmb3JtLCBjYW4ndCBkZXRlcm1p
bmUgYnVpbHQgbGlicmFyeSBsb2NhdGlvbnMuXG5UcnkgYGJ1aWxkLXdlYmtpdCAtLWhlbHBgIGZv
ciBtb3JlIGluZm9ybWF0aW9uLlxuIjsKIH0KQEAgLTEwNTIsNyArMTA1Nyw4IEBAIHN1YiBkZXRl
cm1pbmVQb3J0TmFtZSgpCiAgICAgbXkgJWFyZ1RvUG9ydE5hbWUgPSAoCiAgICAgICAgIGd0ayA9
PiBHVEssCiAgICAgICAgICdqc2Mtb25seScgPT4gSlNDT25seSwKLSAgICAgICAgd2luY2Fpcm8g
PT4gV2luQ2Fpcm8KKyAgICAgICAgd2luY2Fpcm8gPT4gV2luQ2Fpcm8sCisgICAgICAgIHdwZSA9
PiBXUEUKICAgICApOwogCiAgICAgZm9yIG15ICRhcmcgKHNvcnQga2V5cyAlYXJnVG9Qb3J0TmFt
ZSkgewpAQCAtMTA4Niw2ICsxMDkyLDcgQEAgc3ViIGRldGVybWluZVBvcnROYW1lKCkKICAgICAg
ICAgICAgIG15ICRwb3J0c0Nob2ljZSA9IGpvaW4gIlxuXHQiLCBxdygKICAgICAgICAgICAgICAg
ICAtLWd0awogICAgICAgICAgICAgICAgIC0tanNjLW9ubHkKKyAgICAgICAgICAgICAgICAtLXdw
ZQogICAgICAgICAgICAgKTsKICAgICAgICAgICAgIGRpZSAiUGxlYXNlIHNwZWNpZnkgd2hpY2gg
V2ViS2l0IHBvcnQgdG8gYnVpbGQgdXNpbmcgb25lIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoi
CiAgICAgICAgICAgICAgICAgLiAiXG5cdCRwb3J0c0Nob2ljZVxuIjsKQEAgLTExMTMsNiArMTEy
MCwxMSBAQCBzdWIgaXNKU0NPbmx5KCkKICAgICByZXR1cm4gcG9ydE5hbWUoKSBlcSBKU0NPbmx5
OwogfQogCitzdWIgaXNXUEUoKQoreworICAgIHJldHVybiBwb3J0TmFtZSgpIGVxIFdQRTsKK30K
KwogIyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBkZWJpYW4sIHVidW50dSwgbGluc3BpcmUsIG9yIHNv
bWV0aGluZyBzaW1pbGFyLgogc3ViIGlzRGViaWFuQmFzZWQoKQogewpAQCAtMTUxNiw2ICsxNTI4
LDggQEAgc3ViIGxhdW5jaGVyUGF0aCgpCiAgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0
c1BhdGgvcnVuLW1pbmlicm93c2VyIjsKICAgICB9IGVsc2lmIChpc0FwcGxlV2ViS2l0KCkpIHsK
ICAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9ydW4tc2FmYXJpIjsKKyAgICB9
IGVsc2lmIChpc1dQRSgpKSB7CisgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1BhdGgv
cnVuLXdwZSI7CiAgICAgfQogfQogCkBAIC0xNTI3LDYgKzE1NDEsOCBAQCBzdWIgbGF1bmNoZXJO
YW1lKCkKICAgICAgICAgcmV0dXJuICJTYWZhcmkiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVXaW5X
ZWJLaXQoKSkgewogICAgICAgICByZXR1cm4gIk1pbmlCcm93c2VyIjsKKyAgICB9IGVsc2lmIChp
c1dQRSgpKSB7CisgICAgICAgIHJldHVybiAiV1BFTGF1bmNoZXIiOwogICAgIH0KIH0KIApAQCAt
MTgyNiw2ICsxODQyLDggQEAgc3ViIGdldEpoYnVpbGRQYXRoKCkKICAgICB9CiAgICAgaWYgKGlz
R3RrKCkpIHsKICAgICAgICAgcHVzaChAamhidWlsZFBhdGgsICJEZXBlbmRlbmNpZXNHVEsiKTsK
KyAgICB9IGVsc2lmIChpc1dQRSgpKSB7CisgICAgICAgIHB1c2goQGpoYnVpbGRQYXRoLCAiRGVw
ZW5kZW5jaWVzV1BFIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZGllICJDYW5ub3QgZ2V0IEpI
QnVpbGQgcGF0aCBmb3IgcGxhdGZvcm0gdGhhdCBpc24ndCBHVEsrLlxuIjsKICAgICB9CkBAIC0x
ODY2LDYgKzE4ODQsOCBAQCBzdWIgd3JhcHBlclByZWZpeElmTmVlZGVkKCkKICAgICAgICAgbXkg
QHByZWZpeCA9IChGaWxlOjpTcGVjLT5jYXRmaWxlKHNvdXJjZURpcigpLCAiVG9vbHMiLCAiamhi
dWlsZCIsICJqaGJ1aWxkLXdyYXBwZXIiKSk7CiAgICAgICAgIGlmIChpc0d0aygpKSB7CiAgICAg
ICAgICAgICBwdXNoKEBwcmVmaXgsICItLWd0ayIpOworICAgICAgICB9IGVsc2lmIChpc1dQRSgp
KSB7CisgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLXdwZSIpOwogICAgICAgICB9CiAgICAg
ICAgIHB1c2goQHByZWZpeCwgInJ1biIpOwogCkBAIC0yMDI0LDcgKzIwNDQsNyBAQCBzdWIgZ2Vu
ZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QKICAgICBwdXNoIEBhcmdzLCAnLURTSE9X
X0JJTkRJTkdTX0dFTkVSQVRJT05fUFJPR1JFU1M9MScgdW5sZXNzICgkd2lsbFVzZU5pbmphICYm
IC10IFNURE9VVCk7CiAKICAgICAjIFNvbWUgcG9ydHMgaGF2ZSBwcm9kdWN0aW9uIG1vZGUsIGJ1
dCBidWlsZC13ZWJraXQgc2hvdWxkIGFsd2F5cyB1c2UgZGV2ZWxvcGVyIG1vZGUuCi0gICAgcHVz
aCBAYXJncywgIi1EREVWRUxPUEVSX01PREU9T04iIGlmIGlzR3RrKCkgfHwgaXNKU0NPbmx5KCk7
CisgICAgcHVzaCBAYXJncywgIi1EREVWRUxPUEVSX01PREU9T04iIGlmIGlzR3RrKCkgfHwgaXNK
U0NPbmx5KCkgfHwgaXNXUEUoKTsKIAogICAgICMgRG9uJ3Qgd2FybiB2YXJpYWJsZXMgd2hpY2gg
YXJlbid0IHVzZWQgYnkgY21ha2UgcG9ydHMuCiAgICAgcHVzaCBAYXJncywgIi0tbm8td2Fybi11
bnVzZWQtY2xpIjsKQEAgLTIxMDEsNiArMjEyMSwxMCBAQCBzdWIgYnVpbGRDTWFrZVByb2plY3RP
ckV4aXQoJCQkQCkKICAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRzb3VyY2VEaXIvVG9vbHMvU2Ny
aXB0cy91cGRhdGUtd2Via2l0Z3RrLWxpYnMiKSA9PSAwIG9yIGRpZSAkITsKICAgICB9CiAKKyAg
ICBpZiAoaXNXUEUoKSAmJiBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0tdXBk
YXRlLXdwZSIpKSB7CisgICAgICAgIHN5c3RlbSgicGVybCIsICIkc291cmNlRGlyL1Rvb2xzL1Nj
cmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJzIikgPT0gMCBvciBkaWUgJCE7CisgICAgfQorCiAg
ICAgJHJldHVybkNvZGUgPSBleGl0U3RhdHVzKGdlbmVyYXRlQnVpbGRTeXN0ZW1Gcm9tQ01ha2VQ
cm9qZWN0KCRwcmVmaXhQYXRoLCBAY21ha2VBcmdzKSk7CiAgICAgZXhpdCgkcmV0dXJuQ29kZSkg
aWYgJHJldHVybkNvZGU7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9G
ZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpp
bmRleCAyYzNhZTExYTczMC4uMjE0ZTU2MWRkZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
RmVhdHVyZUxpc3QucG0KQEAgLTE0NywxMCArMTQ3LDEwIEBAIHByb2hpYml0VW5rbm93blBvcnQo
KTsKIAogbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICIzZC1yZW5kZXJpbmciLCBk
ZXNjID0+ICJUb2dnbGUgM0QgUmVuZGVyaW5nIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfM0RfVFJBTlNGT1JNUyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8
IGlzSU9TV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkdGhyZWVEVHJhbnNmb3Jtc1N1
cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFXzNEX1RSQU5TRk9STVMiLCBkZWZhdWx0
ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwg
aXNXUEUoKSksIHZhbHVlID0+IFwkdGhyZWVEVHJhbnNmb3Jtc1N1cHBvcnQgfSwKIAogICAgIHsg
b3B0aW9uID0+ICJhY2NlbGVyYXRlZC0yZC1jYW52YXMiLCBkZXNjID0+ICJUb2dnbGUgQWNjZWxl
cmF0ZWQgMkQgQ2FudmFzIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGFjY2VsZXJhdGVkMkRD
YW52YXNTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMiLCBkZWZhdWx0ID0+IGlzV1BFKCksIHZhbHVlID0+IFwkYWNjZWxlcmF0ZWQyRENhbnZh
c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJhbGxpbm9uZS1idWlsZCIsIGRlc2MgPT4g
IlRvZ2dsZSBhbGwtaW4tb25lIGJ1aWxkIiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FMTElO
T05FX0JVSUxEIiwgZGVmYXVsdCA9PiBpc1dpbmRvd3MoKSwgdmFsdWUgPT4gXCRhbGxJbk9uZUJ1
aWxkIH0sCkBAIC0xODMsNyArMTgzLDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04iLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZh
bHVlID0+IFwkY3NzSW1hZ2VSZXNvbHV0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
ImNzcy1pbWFnZS1zZXQiLCBkZXNjID0+ICJUb2dnbGUgQ1NTIGltYWdlLXNldCBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTU19JTUFHRV9TRVQiLCBkZWZhdWx0ID0+IGlzR3Rr
KCksIHZhbHVlID0+IFwkY3NzSW1hZ2VTZXRTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9DU1NfSU1BR0VfU0VUIiwgZGVmYXVsdCA9PiAoaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFs
dWUgPT4gXCRjc3NJbWFnZVNldFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJjc3MtcmVn
aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgUmVnaW9ucyBzdXBwb3J0IiwKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX0NTU19SRUdJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGNzc1Jl
Z2lvbnNTdXBwb3J0IH0sCkBAIC0yMDcsNyArMjA3LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCIsIGRlZmF1bHQgPT4gMCwgdmFs
dWUgPT4gXCRkYXRhbGlzdEVsZW1lbnRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZGV2
aWNlLW9yaWVudGF0aW9uIiwgZGVzYyA9PiAiVG9nZ2xlIERldmljZSBPcmllbnRhdGlvbiBzdXBw
b3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiIsIGRlZmF1
bHQgPT4gaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRkZXZpY2VPcmllbnRhdGlvblN1cHBvcnQg
fSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiIsIGRlZmF1bHQg
PT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkZGV2aWNlT3JpZW50YXRp
b25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZG9tNC1ldmVudHMtY29uc3RydWN0b3Ii
LCBkZXNjID0+ICJFeHBvc2UgRE9NNCBFdmVudHMgY29uc3RydWN0b3JzIiwKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SIiwgZGVmYXVsdCA9PiAoaXNBcHBs
ZVdlYktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGRvbTRFdmVudHNDb25zdHJ1Y3RvciB9
LApAQCAtMjI1LDcgKzIyNSw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkZm9udExv
YWRFdmVudHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZnRsLWppdCIsIGRlc2MgPT4g
IlRvZ2dsZSBGVExKSVQgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GVExfSklU
IiwgZGVmYXVsdCA9PiAoaXNYODZfNjQoKSAmJiAoaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSkpICwg
dmFsdWUgPT4gXCRmdGxKSVRTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GVExf
SklUIiwgZGVmYXVsdCA9PiAoaXNYODZfNjQoKSAmJiAoaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSB8
fCBpc1dQRSgpKSkgLCB2YWx1ZSA9PiBcJGZ0bEpJVFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJmdHBkaXIiLCBkZXNjID0+ICJUb2dnbGUgRlRQIERpcmVjdG9yeSBzdXBwb3J0IiwKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX0ZUUERJUiIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRm
dHBEaXJTdXBwb3J0IH0sCkBAIC0yMzcsNyArMjM3LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfR0FNRVBBRCIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRn
YW1lcGFkU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImdlb2xvY2F0aW9uIiwgZGVzYyA9
PiAiVG9nZ2xlIEdlb2xvY2F0aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
R0VPTE9DQVRJT04iLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQo
KSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCRnZW9sb2NhdGlvblN1cHBvcnQgfSwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0dFT0xPQ0FUSU9OIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgp
IHx8IGlzSU9TV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRnZW9s
b2NhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJoaWdoLWRwaS1jYW52YXMiLCBk
ZXNjID0+ICJUb2dnbGUgSGlnaCBEUEkgQ2FudmFzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfSElHSF9EUElfQ0FOVkFTIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpKSwg
dmFsdWUgPT4gXCRoaWdoRFBJQ2FudmFzU3VwcG9ydCB9LApAQCAtMjQ2LDcgKzI0Niw3IEBAIG15
IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lDT05EQVRBQkFTRSIsIGRl
ZmF1bHQgPT4gIWlzSU9TV2ViS2l0KCksIHZhbHVlID0+IFwkaWNvbmRhdGFiYXNlU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gImluZGV4ZWQtZGF0YWJhc2UiLCBkZXNjID0+ICJUb2dnbGUg
SW5kZXhlZCBEYXRhYmFzZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOREVY
RURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0d0aygp
KSwgdmFsdWUgPT4gXCRpbmRleGVkRGF0YWJhc2VTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0
KCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRpbmRleGVkRGF0YWJhc2VTdXBw
b3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5wdXQtc3BlZWNoIiwgZGVzYyA9PiAiVG9nZ2xl
IElucHV0IFNwZWVjaCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOUFVUX1NQ
RUVDSCIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRpbnB1dFNwZWVjaFN1cHBvcnQgfSwKQEAg
LTMxMiw3ICszMTIsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9NRVRFUl9FTEVNRU5UIiwgZGVmYXVsdCA9PiAhaXNBcHBsZVdpbldlYktpdCgpLCB2YWx1ZSA9
PiBcJG1ldGVyRWxlbWVudFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJtaHRtbCIsIGRl
c2MgPT4gIlRvZ2dsZSBNSFRNTCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01I
VE1MIiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJG1odG1sU3VwcG9ydCB9LAorICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfTUhUTUwiLCBkZWZhdWx0ID0+IChpc0d0aygpIHx8IGlzV1BF
KCkpLCB2YWx1ZSA9PiBcJG1odG1sU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm1vdXNl
LWN1cnNvci1zY2FsZSIsIGRlc2MgPT4gIlRvZ2dsZSBTY2FsZWQgbW91c2UgY3Vyc29yIHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFIiwgZGVmYXVs
dCA9PiAwLCB2YWx1ZSA9PiBcJG1vdXNlQ3Vyc29yU2NhbGVTdXBwb3J0IH0sCkBAIC0zMjQsNyAr
MzI0LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkFWSUdB
VE9SX0hXQ09OQ1VSUkVOQ1kiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkaGFyZHdhcmVDb25j
dXJyZW5jeVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJuZXRzY2FwZS1wbHVnaW4tYXBp
IiwgZGVzYyA9PiAiVG9nZ2xlIE5ldHNjYXBlIFBsdWdpbiBBUEkgc3VwcG9ydCIsCi0gICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAhaXNJT1NX
ZWJLaXQoKSwgdmFsdWUgPT4gXCRuZXRzY2FwZVBsdWdpbkFQSVN1cHBvcnQgfSwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0ID0+ICghaXNJT1NX
ZWJLaXQoKSAmJiAhaXNXUEUoKSksIHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0
IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibm9zbmlmZiIsIGRlc2MgPT4gIlRvZ2dsZSBzdXBwb3J0
IGZvciAnWC1Db250ZW50LVR5cGUtT3B0aW9uczogbm9zbmlmZiciLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfTk9TTklGRiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlz
QXBwbGVXaW5XZWJLaXQoKSksIHZhbHVlID0+IFwkbm9zbmlmZlN1cHBvcnQgfSwKQEAgLTMzNiw3
ICszMzYsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9PUklF
TlRBVElPTl9FVkVOVFMiLCBkZWZhdWx0ID0+IGlzSU9TV2ViS2l0KCksIHZhbHVlID0+IFwkb3Jp
ZW50YXRpb25FdmVudHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAicGVyZm9ybWFuY2Ut
dGltZWxpbmUiLCBkZXNjID0+ICJUb2dnbGUgUGVyZm9ybWFuY2UgVGltZWxpbmUgc3VwcG9ydCIs
Ci0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSIsIGRlZmF1bHQg
PT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRwZXJmb3JtYW5jZVRpbWVsaW5lU3VwcG9ydCB9LAorICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfUEVSRk9STUFOQ0VfVElNRUxJTkUiLCBkZWZhdWx0ID0+IChp
c0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxpbmVTdXBwb3J0
IH0sCiAKICAgICB7IG9wdGlvbiA9PiAicHJveGltaXR5LWV2ZW50cyIsIGRlc2MgPT4gIlRvZ2ds
ZSBQcm94aW1pdHkgRXZlbnRzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfUFJP
WElNSVRZX0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRwcm94aW1pdHlFdmVudHNT
dXBwb3J0IH0sCkBAIC0zNjYsNyArMzY2LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVm
aW5lID0+ICJVU0VfU1lTVEVNX01BTExPQyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRzeXN0
ZW1NYWxsb2NTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidG91Y2gtZXZlbnRzIiwgZGVz
YyA9PiAiVG9nZ2xlIFRvdWNoIEV2ZW50cyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNHdGsoKSks
IHZhbHVlID0+IFwkdG91Y2hFdmVudHNTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9UT1VDSF9FVkVOVFMiLCBkZWZhdWx0ID0+IChpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwg
aXNXUEUoKSksIHZhbHVlID0+IFwkdG91Y2hFdmVudHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlv
biA9PiAidG91Y2gtaWNvbi1sb2FkaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIFRvdWNoIEljb24gTG9h
ZGluZyBTdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCR0b3VjaEljb25Mb2FkaW5nU3VwcG9ydCB9LApA
QCAtMzc4LDE2ICszNzgsMTYgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfVklCUkFUSU9OIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHZpYnJhdGlvblN1cHBv
cnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ2aWRlbyIsIGRlc2MgPT4gIlRvZ2dsZSBWaWRlbyBz
dXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJREVPIiwgZGVmYXVsdCA9PiAoaXNB
cHBsZVdlYktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9LAorICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU8iLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkg
fHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR2aWRlb1N1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJ2aWRlby10cmFjayIsIGRlc2MgPT4gIlRvZ2dsZSBWaWRlbyBUcmFjayBz
dXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJREVPX1RSQUNLIiwgZGVmYXVsdCA9
PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJHZpZGVvVHJhY2tTdXBw
b3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFT19UUkFDSyIsIGRlZmF1bHQgPT4g
KGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHZpZGVv
VHJhY2tTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViLWFuaW1hdGlvbnMiLCBkZXNj
ID0+ICJUb2dnbGUgV2ViIEFuaW1hdGlvbnMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9XRUJfQU5JTUFUSU9OUyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3ZWJBbmltYXRp
b25zU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYi1hdWRpbyIsIGRlc2MgPT4gIlRv
Z2dsZSBXZWIgQXVkaW8gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJfQVVE
SU8iLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCisg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJfQVVESU8iLCBkZWZhdWx0ID0+IChpc0d0aygpIHx8
IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHdlYkF1ZGlvU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24g
PT4gIndlYi1yZXBsYXkiLCBkZXNjID0+ICJUb2dnbGUgV2ViIFJlcGxheSBzdXBwb3J0IiwKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9SRVBMQVkiLCBkZWZhdWx0ID0+IGlzQXBwbGVDb2Nv
YVdlYktpdCgpLCB2YWx1ZSA9PiBcJHdlYlJlcGxheVN1cHBvcnQgfSwKQEAgLTQwMiwxMCArNDAy
LDEwIEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9USU1J
TkciLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkd2ViVGltaW5nU3VwcG9ydCB9LAogCiAgICAg
eyBvcHRpb24gPT4gIndlYmFzc2VtYmx5IiwgZGVzYyA9PiAiVG9nZ2xlIFdlYkFzc2VtYmx5IHN1
cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCQVNTRU1CTFkiLCBkZWZhdWx0ID0+
IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlzSlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJHdl
YkFzc2VtYmx5U3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCQVNTRU1CTFki
LCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlz
V1BFKCkpKSAsIHZhbHVlID0+IFwkd2ViQXNzZW1ibHlTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlv
biA9PiAid2ViZ2wiLCBkZXNjID0+ICJUb2dnbGUgV2ViR0wgc3VwcG9ydCIsCi0gICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9XRUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8
IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJHdlYmdsU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfV0VCR0wiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0d0aygp
IHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHdlYmdsU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24g
PT4gIndyaXRhYmxlU3RyZWFtQVBJIiwgZGVzYyA9PiAiVG9nZ2xlIFdyaXRhYmxlU3RyZWFtIEFQ
SSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dSSVRBQkxFX1NUUkVBTV9BUEki
LCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkd3JpdGFibGVTdHJlYW1BUElTdXBwb3J0IH0sCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtp
dF90ZXN0cy5weQppbmRleCA3YzZkZGM4MzlmMy4uNTcyZThhNWU3N2QgMTAwNzU1Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5w
eQpAQCAtNDI0LDcgKzQyNCw3IEBAIGRlZiBfc2V0X3VwX2Rlcml2ZWRfb3B0aW9ucyhwb3J0LCBv
cHRpb25zKToKICAgICAgICAgb3B0aW9ucy52ZXJib3NlID0gVHJ1ZQogCiAgICAgIyBUaGUgR1RL
KyBhbmQgRUZMIHBvcnRzIG9ubHkgc3VwcG9ydCBXZWJLaXQyIHNvIHRoZXkgYWx3YXlzIHVzZSBX
S1RSLgotICAgIGlmIG9wdGlvbnMucGxhdGZvcm0gPT0gImd0ayIgb3Igb3B0aW9ucy5wbGF0Zm9y
bSA9PSAiZWZsIjoKKyAgICBpZiBvcHRpb25zLnBsYXRmb3JtIGluIFsiZWZsIiwgImd0ayIsICJ3
cGUiXToKICAgICAgICAgb3B0aW9ucy53ZWJraXRfdGVzdF9ydW5uZXIgPSBUcnVlCiAKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQppbmRleCA3NWRlZWM1N2NiYi4uYmUwOTdm
ZmVmMWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CkBAIC01Myw2ICs1
Myw5IEBAIGRlZiBwbGF0Zm9ybV9vcHRpb25zKHVzZV9nbG9icz1GYWxzZSk6CiAgICAgICAgIG9w
dHBhcnNlLm1ha2Vfb3B0aW9uKCctLWd0aycsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBkZXN0PSdw
bGF0Zm9ybScsCiAgICAgICAgICAgICBjb25zdD0oJ2d0ayonIGlmIHVzZV9nbG9icyBlbHNlICdn
dGsnKSwKICAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1ndGsqJyBpZiB1
c2VfZ2xvYnMgZWxzZSAnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3RrJykpLAorICAgICAgICBvcHRw
YXJzZS5tYWtlX29wdGlvbignLS13cGUnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVzdD0ncGxh
dGZvcm0nLAorICAgICAgICAgICAgY29uc3Q9KCd3cGUqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnd3Bl
JyksCisgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09d3BlJykpLAogICAg
ICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1uby1pbnN0YWxsJywgYWN0aW9uPSdzdG9yZV9j
b25zdCcsCiAgICAgICAgICAgICBjb25zdD1GYWxzZSwgZGVmYXVsdD1UcnVlLCBkZXN0PSdpbnN0
YWxsJywKICAgICAgICAgICAgIGhlbHA9J1NraXAgaW5zdGFsbCBzdGVwIGZvciBkZXZpY2UgYW5k
IHNpbXVsYXRvciB0ZXN0aW5nJyksCkBAIC05Myw2ICs5Niw3IEBAIGNsYXNzIFBvcnRGYWN0b3J5
KG9iamVjdCk6CiAgICAgICAgICd0ZXN0LlRlc3RQb3J0JywKICAgICAgICAgJ3dpbi5XaW5DYWly
b1BvcnQnLAogICAgICAgICAnd2luLldpblBvcnQnLAorICAgICAgICAnd3BlLldQRVBvcnQnLAog
ICAgICkKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0KToKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC93cGUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvd3BlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iM2NkMDg2
NWE0ZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93cGUu
cHkKQEAgLTAsMCArMSw3OSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1l
dDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIEdvb2dsZSBuYW1lIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZnJvbSB3ZWJraXRweS5jb21tb24ubWVt
b2l6ZWQgaW1wb3J0IG1lbW9pemVkCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMu
dGVzdF9jb25maWd1cmF0aW9uIGltcG9ydCBUZXN0Q29uZmlndXJhdGlvbgorZnJvbSB3ZWJraXRw
eS5wb3J0LmJhc2UgaW1wb3J0IFBvcnQKK2Zyb20gd2Via2l0cHkucG9ydC5saW51eF9nZXRfY3Jh
c2hfbG9nIGltcG9ydCBHREJDcmFzaExvZ0dlbmVyYXRvcgorCisKK2NsYXNzIFdQRVBvcnQoUG9y
dCk6CisgICAgcG9ydF9uYW1lID0gIndwZSIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihXUEVQb3J0LCBzZWxmKS5fX2luaXRfXygqYXJn
cywgKiprd2FyZ3MpCisKKyAgICAgICAgaWYgc2VsZi5fc2hvdWxkX3VzZV9qaGJ1aWxkKCk6Cisg
ICAgICAgICAgICBzZWxmLl9qaGJ1aWxkX3dyYXBwZXIgPSBbc2VsZi5wYXRoX2Zyb21fd2Via2l0
X2Jhc2UoJ1Rvb2xzJywgJ2poYnVpbGQnLCAnamhidWlsZC13cmFwcGVyJyksICctLXdwZScsICdy
dW4nXQorICAgICAgICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dyYXBwZXInLCAnICcu
am9pbihzZWxmLl9qaGJ1aWxkX3dyYXBwZXIpKQorCisgICAgZGVmIGRlZmF1bHRfdGltZW91dF9t
cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIDYwMDAKKworICAgIGRlZiBfYnVpbHRfZXhlY3V0YWJs
ZXNfcGF0aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCoo
KCdiaW4nLCkgKyBwYXRoKSkKKworICAgIGRlZiBfYnVpbHRfbGlicmFyaWVzX3BhdGgoc2VsZiwg
KnBhdGgpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgqKCgnbGliJywpICsgcGF0
aCkpCisKKyAgICBkZWYgX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyhzZWxmKToKKyAgICAgICAgcmV0
dXJuICItLXdwZSIKKworICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZiwgc2Vy
dmVyX25hbWU9Tm9uZSk6CisgICAgICAgIGVudmlyb25tZW50ID0gc3VwZXIoV1BFUG9ydCwgc2Vs
Zikuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQorICAgICAgICBlbnZpcm9u
bWVudFsnR1NFVFRJTkdTX0JBQ0tFTkQnXSA9ICdtZW1vcnknCisgICAgICAgIGVudmlyb25tZW50
WydURVNUX1JVTk5FUl9JTkpFQ1RFRF9CVU5ETEVfRklMRU5BTUUnXSA9IHNlbGYuX2J1aWxkX3Bh
dGgoJ2xpYicsICdsaWJUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuc28nKQorICAgICAgICBlbnZp
cm9ubWVudFsnVEVTVF9SVU5ORVJfVEVTVF9QTFVHSU5fUEFUSCddID0gc2VsZi5fYnVpbGRfcGF0
aCgnbGliJywgJ3BsdWdpbnMnKQorICAgICAgICBlbnZpcm9ubWVudFsnV0VCS0lUX0VYRUNfUEFU
SCddID0gc2VsZi5fYnVpbGRfcGF0aCgnYmluJykKKyAgICAgICAgcmV0dXJuIGVudmlyb25tZW50
CisKKyAgICBkZWYgX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgorICAg
ICAgICBjb25maWd1cmF0aW9ucyA9IFtdCisgICAgICAgIGZvciBidWlsZF90eXBlIGluIHNlbGYu
QUxMX0JVSUxEX1RZUEVTOgorICAgICAgICAgICAgY29uZmlndXJhdGlvbnMuYXBwZW5kKFRlc3RD
b25maWd1cmF0aW9uKHZlcnNpb249c2VsZi5fdmVyc2lvbiwgYXJjaGl0ZWN0dXJlPSd4ODYnLCBi
dWlsZF90eXBlPWJ1aWxkX3R5cGUpKQorICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbnMKKwor
ICAgIGRlZiBfcGF0aF90b19kcml2ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9idWls
dF9leGVjdXRhYmxlc19wYXRoKHNlbGYuZHJpdmVyX25hbWUoKSkKKworICAgIGRlZiBfcGF0aF90
b19pbWFnZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbHRfZXhlY3V0YWJs
ZXNfcGF0aCgnSW1hZ2VEaWZmJykKKworICAgIGRlZiBfZ2V0X2NyYXNoX2xvZyhzZWxmLCBuYW1l
LCBwaWQsIHN0ZG91dCwgc3RkZXJyLCBuZXdlcl90aGFuKToKKyAgICAgICAgbmFtZSA9ICJXUEVX
ZWJQcm9jZXNzIiBpZiBuYW1lID09ICJXZWJQcm9jZXNzIiBlbHNlIG5hbWUKKyAgICAgICAgcmV0
dXJuIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2VsZi5fZmls
ZXN5c3RlbSwgc2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xvZyhzdGRvdXQs
IHN0ZGVycikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21h
a2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOTc4NDc1NWYzNgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw2MCBAQAor
c2V0KFRFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtFX1JVTlRJ
TUVfT1VUUFVUX0RJUkVDVE9SWX0vVGVzdFdlYktpdEFQSSIpCitzZXQoVEVTVFdFQktJVEFQSV9S
VU5USU1FX09VVFBVVF9ESVJFQ1RPUllfV1RGICIke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQ
VVRfRElSRUNUT1JZfS9XVEYiKQorCisjIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgaXQgaXMg
cG9zc2libGUgdG8gYnVpbGQgVGVzdFdlYktpdEFQSSB3aXRoIFdlYktpdDIKKyMgZGlzYWJsZWQg
YW5kIHRoaXMgdHJpZ2dlcnMgdGhlIGluY2x1c2lvbiBvZiB0aGUgV2ViS2l0MiBoZWFkZXJzLgor
YWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfV0VCS0lUMl9fKQorCithZGRfY3VzdG9tX3Rhcmdl
dChUZXN0V2ViS2l0QVBJLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQRVJMX0VY
RUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFk
ZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7VEVTVFdFQktJVEFQSV9ESVJ9IC0tb3V0cHV0ICR7Rk9S
V0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3VwCisgICAg
REVQRU5EUyB3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworKQorCitzZXQoRm9yd2FyZGlu
Z0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUUgVGVzdFdlYktpdEFQSS1mb3J3YXJkaW5nLWhl
YWRlcnMpCisKK2luY2x1ZGVfZGlyZWN0b3JpZXMoCisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNf
RElSfQorICAgICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlwdENvcmUKKykKKwor
aW5jbHVkZV9kaXJlY3RvcmllcyhTWVNURU0KKyAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAg
ICR7TElCU09VUF9JTkNMVURFX0RJUlN9CispCisKK3NldCh0ZXN0X21haW5fU09VUkNFUworICAg
ICR7VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9tYWluLmNwcAorKQorCitzZXQoYnVuZGxlX2hhcm5l
c3NfU09VUkNFUworICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9JbmplY3RlZEJ1bmRsZUNv
bnRyb2xsZXJXUEUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL1BsYXRmb3JtVXRp
bGl0aWVzV1BFLmNwcAorKQorCisjIFRlc3RXVEYKKworbGlzdChBUFBFTkQgVGVzdFdURl9TT1VS
Q0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dsaWIvR1VuaXF1ZVB0ci5j
cHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGli
LmNwcAorKQorCisjIFRlc3RXZWJDb3JlCisKK2FkZF9leGVjdXRhYmxlKFRlc3RXZWJDb3JlCisg
ICAgJHt0ZXN0X21haW5fU09VUkNFU30KKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0c0Nv
bnRyb2xsZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9IVE1M
UGFyc2VySWRpb21zLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUv
TGF5b3V0VW5pdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1VS
TC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZl
clRlc3QuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9GaWxlU3lz
dGVtLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvUHVibGljU3Vm
Zml4LmNwcAorKQorCit0YXJnZXRfbGlua19saWJyYXJpZXMoVGVzdFdlYkNvcmUgJHt0ZXN0X3dl
YmNvcmVfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoVGVzdFdlYkNvcmUgJHtGb3J3YXJk
aW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRX0pCisKK2FkZF90ZXN0KFRlc3RXZWJDb3Jl
ICR7VEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dlYkNvcmUvVGVzdFdl
YkNvcmUpCitzZXRfdGVzdHNfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9QRVJUSUVTIFRJTUVP
VVQgNjApCitzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoVGVzdFdlYkNvcmUgUFJPUEVSVElFUyBSVU5U
SU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVD
VE9SWX0vV2ViQ29yZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL0luamVj
dGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9Jbmpl
Y3RlZEJ1bmRsZUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5mZDIxMjFiZDdhMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKQEAgLTAsMCArMSwzNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmgiCisK
K25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZUNvbnRyb2xs
ZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0
aWVzV1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BF
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTIxYzFlYWEyZjMK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVV0aWxp
dGllc1dQRS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
K25hbWVzcGFjZSBVdGlsIHsKKwordm9pZCBzbGVlcChkb3VibGUgc2Vjb25kcykKK3sKKyAgICBn
X3VzbGVlcChzZWNvbmRzICogMTAwMDAwMCk7Cit9CisKK3N0YXRpYyBjaGFyKiBnZXRGaWxlbmFt
ZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KGNvbnN0IGNoYXIqIHZhcmlhYmxlTmFtZSkK
K3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZhcmlhYmxlTmFtZSk7CisgICAg
aWYgKCF2YWx1ZSkgeworICAgICAgICBnX3ByaW50ZXJyKCIlcyBlbnZpcm9ubWVudCB2YXJpYWJs
ZSBub3QgZm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQor
ICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191dGY4KHZh
bHVlLCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK1dLU3RyaW5nUmVmIGNyZWF0ZUlu
amVjdGVkQnVuZGxlUGF0aCgpCit7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBpbmplY3RlZEJ1bmRs
ZVBhdGgoZ2V0RmlsZW5hbWVGcm9tRW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJL
SVRfQVBJX1dFQktJVDJfSU5KRUNURURfQlVORExFX1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxj
aGFyPiBpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoaW5qZWN0ZWRCdW5k
bGVQYXRoLmdldCgpLCAibGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlLnNvIiwgbnVsbHB0
cikpOworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhpbmplY3RlZEJ1
bmRsZUZpbGVuYW1lLmdldCgpKTsKK30KKworV0tVUkxSZWYgY3JlYXRlVVJMRm9yUmVzb3VyY2Uo
Y29uc3QgY2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGV4dGVuc2lvbikKK3sKKyAgICBHVW5p
cXVlUHRyPGNoYXI+IHRlc3RSZXNvdXJjZXNQYXRoKGdldEZpbGVuYW1lRnJvbUVudmlyb25tZW50
VmFyaWFibGVBc1VURjgoIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX1JFU09VUkNFU19QQVRIIikp
OworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VCYXNlbmFtZShnX3N0cmR1cF9wcmludGYo
IiVzLiVzIiwgcmVzb3VyY2UsIGV4dGVuc2lvbikpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVz
b3VyY2VGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKHRlc3RSZXNvdXJjZXNQYXRoLmdldCgpLCBy
ZXNvdXJjZUJhc2VuYW1lLmdldCgpLCBudWxscHRyKSk7CisgICAgR1JlZlB0cjxHRmlsZT4gcmVz
b3VyY2VGaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgocmVzb3VyY2VGaWxlbmFt
ZS5nZXQoKSkpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VVUkkoZ19maWxlX2dldF91
cmkocmVzb3VyY2VGaWxlLmdldCgpKSk7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKHJlc291cmNlVVJJLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVXRpbAorfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS93cGUvbWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjY1NjhiNmMzMmQKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcApAQCAtMCwwICsxLDMyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0c0NvbnRyb2xsZXIuaCIKKworaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIHJldHVybiBUZXN0V2ViS2l0QVBJOjpUZXN0
c0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnJ1bihhcmdjLCBhcmd2KSA/IEVYSVRfU1VDQ0VTUyA6
IEVYSVRfRkFJTFVSRTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKaW5kZXgg
NWYzOTViZTczNWUuLmQwNzkwNGIzM2Y0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmNwcApAQCAtNzEsNyArNzEsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhh
bmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkKICAgICByZXR1cm4gV0tBY2Nlc3NpYmlsaXR5RW5o
YW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogUmVmPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiB7CiAgICAgV0tC
dW5kbGVQYWdlUmVmIHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5w
YWdlKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKaW5kZXggZWNkZjVhMGY3MmYuLmQ1
YWVlYmJjY2U3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCkBAIC03Myw3ICs3Myw3
IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Tm90aWZp
Y2F0aW9uSGFuZGxlcj4gbV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyOwotI2Vsc2UKKyNlbGlm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKQogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlcj4gbV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyOwogI2VuZGlm
CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKaW5kZXggMDI2NDBiZTc2MTguLjI1
ODE0ZTRlZTk2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTc4LDcgKzc4
LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1RleHRBcmVhKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogICAgIAogLy8gVW5zdXBwb3J0ZWQgbWV0aG9kcyBvbiB2
YXJpb3VzIHBsYXRmb3Jtcy4gQXMgdGhleSdyZSBpbXBsZW1lbnRlZCBvbiBvdGhlciBwbGF0Zm9y
bXMgdGhpcyBsaXN0IHNob3VsZCBiZSBtb2RpZmllZC4KLSNpZiAhUExBVEZPUk0oR1RLKSB8fCAh
SEFWRShBQ0NFU1NJQklMSVRZKQorI2lmICghUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BF
KSkgfHwgIUhBVkUoQUNDRVNTSUJJTElUWSkKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpjaGFyYWN0ZXJBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxw
dHI7IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3
b3JkQXRPZmZzZXQoaW50KSB7IHJldHVybiBudWxscHRyOyB9CiBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkgeyByZXR1cm4g
bnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCBkMTBlZThiYmQxYS4u
NDM1ZGQ3ZGI4YWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCkBAIC0zMTcsNyArMzE3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFVJRWxlbWVudHNXaXRoQXR0cmlidXRlKEpTU3Ry
aW5nUmVmLCBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mKSBjb25zdDsK
ICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBn
ZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mKTsKICAg
ICB2b2lkIGdldENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gPiYsIHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAppbmRleCBjNzFmNGNmNjc2MC4uNzY4ZjRkMTQ2MTMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtOTgs
NyArOTgsNyBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICAsIG1fZGF0YWJhc2VNYXhR
dW90YSgtMSkKICAgICAsIG1fdXNlclN0eWxlU2hlZXRFbmFibGVkKGZhbHNlKQogICAgICwgbV91
c2VyU3R5bGVTaGVldExvY2F0aW9uKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIiIpKSkKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpCiAgICAgLCBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJlRlc3RSdW5uZXI6OndhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyRmlyZWQpCiAjZW5kaWYK
IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKaW5kZXggZDYzOTJlOTljZmYuLjcwNTEyOWQ5YmIyIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzgsNyArMzgs
NyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlv
bi9DRlJ1bkxvb3AuaD4KIHR5cGVkZWYgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBQbGF0
Zm9ybVRpbWVyUmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIG5hbWVzcGFjZSBXVFIg
ewogY2xhc3MgVGVzdFJ1bm5lcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk0YzJh
YWI3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKQEAgLTAsMCArMSw3MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWY8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVt
ZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUobnVsbHB0cik7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0
ZShudWxscHRyKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZp
Y2F0aW9uTGlzdGVuZXIoSlNWYWx1ZVJlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKKworI2VuZGlmIC8vIEhBVkUoQUND
RVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ2NDkxNTBhNTQwCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAKQEAgLTAsMCArMSw5NTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQoUGxhdGZvcm1VSUVsZW1lbnQpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudChjb25zdCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50JikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp+QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0VxdWFsKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmdldENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4+JiwgdW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbkNvdW50KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZWxlbWVudEF0UG9pbnQoaW50
LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KwordW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNoaWxkKEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7
Cit9CisKKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmNoaWxkQXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYU93
bnNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29u
dHJvbHNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25lZCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93QXRJbmRl
eCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordW5zaWduZWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KHVuc2ln
bmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0
aXRsZVVJRWxlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnBhcmVudEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRCeVJvdygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkxpbmtlZFVJRWxlbWVudHMoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZE
b2N1bWVudExpbmtzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlc09mQ2hpbGRyZW4oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjphbGxBdHRyaWJ1dGVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om51bWJlckF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0
dHJpYnV0ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisK
K0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXJyYXlBdHRyaWJ1
dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpyb3dIZWFkZXJzKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBh
dHRyaWJ1dGUpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFs
dWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmli
dXRlU2V0dGFibGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzQXR0cmlidXRlU3VwcG9ydGVkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVOYW1l
cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdWJyb2xlKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9u
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29tcHV0ZWRS
b2xlU3RyaW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
dGl0bGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNj
cmlwdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9y
aWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c3RyaW5nVmFsdWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpsYW5ndWFnZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmhlbHBUZXh0KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6eSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGgoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlaWdodCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xp
Y2tQb2ludFgoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30K
KworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRZKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjppbnRWYWx1ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWlu
VmFsdWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKwor
ZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1heFZhbHVlKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2YWx1ZURlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzUHJlc3NBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSW5jcmVt
ZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0RlY3JlbWVudEFj
dGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVkKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0ZvY3VzZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRPcHRpb25BY3RpdmUoKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzQ2hlY2tlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmRl
dGVybWluYXRlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVs
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3BlYWsoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUlzR3JhYmJlZCgpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRHJvcEVmZmVjdHMoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lRm9ySW5kZXgoaW50KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvckxpbmUoaW50KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvclBvc2l0aW9uKGludCwgaW50KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib3VuZHNGb3JSYW5n
ZSh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnN0cmluZ0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclJhbmdl
KHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRT
dHJpbmdSYW5nZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Vuc2lnbmVkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnVpRWxlbWVudENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJl
ZiwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCosIGJvb2wsIEpTVmFsdWVSZWYsIEpTU3RyaW5nUmVm
LCBib29sLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRo
Q3JpdGVyaWEoSlNDb250ZXh0UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdS
ZWYsIEpTU3RyaW5nUmVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFkZXJzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93SGVhZGVycygpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbnMoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZS
b3dzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mVmlzaWJsZUNlbGxzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6YXR0cmlidXRlc09mSGVhZGVyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93
Q291bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5Db3VudCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmluZGV4SW5UYWJsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJv
d0luZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpjb2x1bW5JbmRleFJhbmdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZ25lZCwgdW5zaWduZWQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhvcml6b250
YWxTY3JvbGxiYXIoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkVGV4dFJhbmdlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmNyZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVjcmVtZW50KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNo
b3dNZW51KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnByZXNzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCogZWxlbWVudCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2ln
bmVkIGluZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNsZWFyU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50RW5jb2RpbmcoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpkb2N1bWVudFVSSSgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVybCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmIGZ1bmN0aW9uQ2FsbGJh
Y2spCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc1NlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVs
dGlTZWxlY3RhYmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1Zpc2libGUoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNJZ25vcmVkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NpbmdsZUxpbmUoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVsdGlMaW5lKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpoYXNQb3B1cCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFr
ZUZvY3VzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnRha2VTZWxlY3Rpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0aW9uKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92
ZVNlbGVjdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVUZXh0
TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1h
cmtlclJhbmdlRm9yRWxlbWVudChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlTGVuZ3RoKEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJl
dmlvdXNUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JNYXJrZXJzKEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
KiwgQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdl
KEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
cj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5n
ZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBp
bnQsIGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yQm91bmRzKGludCwgaW50LCBpbnQsIGludCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJr
ZXJGb3JQb2ludChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJp
bmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiwgQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEZvclRl
eHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNU
ZXh0TWFya2VyVmFsaWQoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJGb3JJbmRleChpbnQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVm
UHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFy
dFRleHRNYXJrZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6ZW5kVGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxl
Y3RlZFZpc2libGVUZXh0UmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb0dsb2Jh
bFBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1cyhpbnQs
IGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1cHBvcnRlZEFjdGlvbnMo
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXRo
RGVzY3JpcHRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjptYXRoUG9zdHNjcmlwdHNEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQcmVzY3JpcHRzRGVzY3JpcHRpb24o
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGFz
c0xpc3QoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpjaGFyYWN0ZXJBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlQXRPZmZzZXQoaW50KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNl
ICBXVEYKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRlRm9udHNXUEUuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250
c1dQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMzY2Y3MjFi
MzE5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFjdGl2YXRlRm9udHMuaCIKKworI2luY2x1ZGUgPGZvbnRjb25maWcv
Zm9udGNvbmZpZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgeworCitDU3RyaW5n
IHRvcExldmVsUGF0aCgpCit7CisgICAgaWYgKGNvbnN0IGNoYXIqIHRvcExldmVsRGlyZWN0b3J5
ID0gZ19nZXRlbnYoIldFQktJVF9UT1BfTEVWRUwiKSkKKyAgICAgICAgcmV0dXJuIHRvcExldmVs
RGlyZWN0b3J5OworCisgICAgLy8gSWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHdhc24ndCBw
cm92aWRlZCB0aGVuIGFzc3VtZSB3ZSB3ZXJlIGJ1aWx0IGludG8KKyAgICAvLyBXZWJLaXRCdWls
ZC9EZWJ1ZyBvciBXZWJLaXRCdWlsZC9SZWxlYXNlLiBPYnZpb3VzbHkgdGhpcyB3aWxsIGZhaWwg
aWYgdGhlIGJ1aWxkCisgICAgLy8gZGlyZWN0b3J5IGlzIG5vbi1zdGFuZGFyZCwgYnV0IHdlIGNh
bid0IGRvIG11Y2ggbW9yZSBhYm91dCB0aGlzLgorICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGFyZW50
UGF0aChnX3BhdGhfZ2V0X2Rpcm5hbWUoZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCkuZGF0YSgp
KSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBsYXlvdXRUZXN0c1BhdGgoZ19idWlsZF9maWxlbmFt
ZShwYXJlbnRQYXRoLmdldCgpLCAiLi4iLCAiLi4iLCAiLi4iLCBudWxscHRyKSk7CisgICAgR1Vu
aXF1ZVB0cjxjaGFyPiBhYnNvbHV0ZVRvcExldmVsUGF0aChyZWFscGF0aChsYXlvdXRUZXN0c1Bh
dGguZ2V0KCksIDApKTsKKyAgICByZXR1cm4gYWJzb2x1dGVUb3BMZXZlbFBhdGguZ2V0KCk7Cit9
CisKK0NTdHJpbmcgZ2V0T3V0cHV0RGlyKCkKK3sKKyAgICBjb25zdCBjaGFyKiB3ZWJraXRPdXRw
dXREaXIgPSBnX2dldGVudigiV0VCS0lUX09VVFBVVERJUiIpOworICAgIGlmICh3ZWJraXRPdXRw
dXREaXIpCisgICAgICAgIHJldHVybiB3ZWJraXRPdXRwdXREaXI7CisKKyAgICBHVW5pcXVlUHRy
PGNoYXI+IG91dHB1dERpcihnX2J1aWxkX2ZpbGVuYW1lKHRvcExldmVsUGF0aCgpLmRhdGEoKSwg
IldlYktpdEJ1aWxkIiwgbnVsbHB0cikpOworICAgIHJldHVybiBvdXRwdXREaXIuZ2V0KCk7Cit9
CisKK3N0YXRpYyBDU3RyaW5nIGdldEZvbnRzUGF0aCgpCit7CisgICAgQ1N0cmluZyB3ZWJraXRP
dXRwdXREaXIgPSBnZXRPdXRwdXREaXIoKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGZvbnRzUGF0
aChnX2J1aWxkX2ZpbGVuYW1lKHdlYmtpdE91dHB1dERpci5kYXRhKCksICJEZXBlbmRlbmNpZXNX
UEUiLCAiUm9vdCIsICJ3ZWJraXRndGstdGVzdC1mb250cyIsIG51bGxwdHIpKTsKKyAgICBpZiAo
Z19maWxlX3Rlc3QoZm9udHNQYXRoLmdldCgpLCBzdGF0aWNfY2FzdDxHRmlsZVRlc3Q+KEdfRklM
RV9URVNUX0VYSVNUUyB8IEdfRklMRV9URVNUX0lTX0RJUikpKQorICAgICAgICByZXR1cm4gZm9u
dHNQYXRoLmdldCgpOworCisgICAgLy8gVHJ5IGFsdGVybmF0aXZlIGZvbnRzIHBhdGguCisgICAg
Zm9udHNQYXRoLnJlc2V0KGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwg
IndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgTlVMTCkpOworICAgIGlmIChnX2ZpbGVfdGVzdChmb250
c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0PEdGaWxlVGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwg
R19GSUxFX1RFU1RfSVNfRElSKSkpCisgICAgICAgIHJldHVybiBmb250c1BhdGguZ2V0KCk7CisK
KyAgICByZXR1cm4gQ1N0cmluZygpOworfQorCit2b2lkIGFjdGl2YXRlRm9udHMoKQoreworICAg
IGlmIChnX2dldGVudigiV0VCS0lUX1NLSVBfV0VCS0lUVEVTVFJVTk5FUl9GT05UQ09ORklHX0lO
SVRJQUxJWkFUSU9OIikpCisgICAgICAgIHJldHVybjsKKworICAgIEZjSW5pdCgpOworCisgICAg
Ly8gSWYgYSB0ZXN0IHJlc3VsdGVkIGEgZm9udCBiZWluZyBhZGRlZCBvciByZW1vdmVkIHZpYSB0
aGUgQGZvbnQtZmFjZSBydWxlLCB0aGVuCisgICAgLy8gd2Ugd2FudCB0byByZXNldCB0aGUgRm9u
dENvbmZpZyBjb25maWd1cmF0aW9uIHRvIHByZXZlbnQgaXQgZnJvbSBhZmZlY3Rpbmcgb3RoZXIg
dGVzdHMuCisgICAgc3RhdGljIGludCBudW1Gb250cyA9IDA7CisgICAgRmNGb250U2V0KiBhcHBG
b250U2V0ID0gRmNDb25maWdHZXRGb250cygwLCBGY1NldEFwcGxpY2F0aW9uKTsKKyAgICBpZiAo
YXBwRm9udFNldCAmJiBudW1Gb250cyAmJiBhcHBGb250U2V0LT5uZm9udCA9PSBudW1Gb250cykK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gTG9hZCBvdXIgY29uZmlndXJhdGlvbiBmaWxlLCB3
aGljaCBzZXRzIHVwIHByb3BlciBhbGlhc2VzIGZvciBmYW1pbHkKKyAgICAvLyBuYW1lcyBsaWtl
IHNhbnMsIHNlcmlmIGFuZCBtb25vc3BhY2UuCisgICAgRmNDb25maWcqIGNvbmZpZyA9IEZjQ29u
ZmlnQ3JlYXRlKCk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9udENvbmZpZ0ZpbGVuYW1lKGdf
YnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICJmb250cy5jb25mIiwgbnVsbHB0cikpOwor
ICAgIGlmICghZ19maWxlX3Rlc3QoZm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpLCBHX0ZJTEVfVEVT
VF9JU19SRUdVTEFSKSkKKyAgICAgICAgZ19lcnJvcigiQ2Fubm90IGZpbmQgZm9udHMuY29uZiBh
dCAlc1xuIiwgZm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpKTsKKyAgICBpZiAoIUZjQ29uZmlnUGFy
c2VBbmRMb2FkKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udENvbmZpZ0Zp
bGVuYW1lLmdldCgpKSwgdHJ1ZSkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkbid0IGxvYWQgZm9u
dCBjb25maWd1cmF0aW9uIGZpbGUgZnJvbTogJXMiLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkp
OworCisgICAgQ1N0cmluZyBmb250c1BhdGggPSBnZXRGb250c1BhdGgoKTsKKyAgICBpZiAoZm9u
dHNQYXRoLmlzTnVsbCgpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9jYXRlIHRlc3Qg
Zm9udHMgYXQgJXMuIElzIFdFQktJVF9UT1BfTEVWRUwgc2V0PyIsIGZvbnRzUGF0aC5kYXRhKCkp
OworCisgICAgR1VuaXF1ZVB0cjxHRGlyPiBmb250c0RpcmVjdG9yeShnX2Rpcl9vcGVuKGZvbnRz
UGF0aC5kYXRhKCksIDAsIG51bGxwdHIpKTsKKyAgICB3aGlsZSAoY29uc3QgY2hhciogZGlyZWN0
b3J5RW50cnkgPSBnX2Rpcl9yZWFkX25hbWUoZm9udHNEaXJlY3RvcnkuZ2V0KCkpKSB7CisgICAg
ICAgIGlmICghZ19zdHJfaGFzX3N1ZmZpeChkaXJlY3RvcnlFbnRyeSwgIi50dGYiKSAmJiAhZ19z
dHJfaGFzX3N1ZmZpeChkaXJlY3RvcnlFbnRyeSwgIi5vdGYiKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250UGF0aChnX2J1aWxkX2ZpbGVuYW1l
KGZvbnRzUGF0aC5kYXRhKCksIGRpcmVjdG9yeUVudHJ5LCBudWxscHRyKSk7CisgICAgICAgIGlm
ICghRmNDb25maWdBcHBGb250QWRkRmlsZShjb25maWcsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
RmNDaGFyOCo+KGZvbnRQYXRoLmdldCgpKSkpCisgICAgICAgICAgICBnX2Vycm9yKCJDb3VsZCBu
b3QgbG9hZCBmb250IGF0ICVzISIsIGZvbnRQYXRoLmdldCgpKTsKKyAgICB9CisKKyAgICAvLyBB
aGVtIGlzIHVzZWQgYnkgbWFueSBsYXlvdXQgdGVzdHMuCisgICAgR1VuaXF1ZVB0cjxnY2hhcj4g
YWhlbUZvbnRGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKEZPTlRTX0NPTkZfRElSLCAiQUhFTV9f
X18uVFRGIiwgbnVsbHB0cikpOworICAgIGlmICghRmNDb25maWdBcHBGb250QWRkRmlsZShjb25m
aWcsIHJlaW50ZXJwcmV0X2Nhc3Q8RmNDaGFyOCo+KGFoZW1Gb250RmlsZW5hbWUuZ2V0KCkpKSkK
KyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IGxvYWQgZm9udCBhdCAlcyEiLCBhaGVtRm9udEZp
bGVuYW1lLmdldCgpKTsgCisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZm9udEZpbGVuYW1lc1td
ID0geworICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjEwMC50dGYiLAorICAgICAgICAiV2Vi
S2l0V2VpZ2h0V2F0Y2hlcjIwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjMw
MC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjQwMC50dGYiLAorICAgICAgICAi
V2ViS2l0V2VpZ2h0V2F0Y2hlcjUwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hl
cjYwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50dGYiLAorICAgICAg
ICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjgwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0
Y2hlcjkwMC50dGYiLAorICAgICAgICAwCisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBmb250RmlsZW5hbWVzW2ldOyArK2kpIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9u
dEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICIuLiIsICIuLiIsICJm
b250cyIsIGZvbnRGaWxlbmFtZXNbaV0sIG51bGxwdHIpKTsKKyAgICAgICAgaWYgKCFGY0NvbmZp
Z0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udEZp
bGVuYW1lLmdldCgpKSkpCisgICAgICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250
IGF0ICVzISIsIGZvbnRGaWxlbmFtZS5nZXQoKSk7IAorICAgIH0KKworICAgIC8vIEEgZm9udCB3
aXRoIG5vIHZhbGlkIEZvbnRjb25maWcgZW5jb2RpbmcgdG8gdGVzdCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NTIKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250
V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9E
SVIsICJGb250V2l0aE5vVmFsaWRFbmNvZGluZy5mb24iLCBudWxscHRyKSk7CisgICAgaWYgKCFG
Y0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4o
Zm9udFdpdGhOb1ZhbGlkRW5jb2RpbmdGaWxlbmFtZS5nZXQoKSkpKQorICAgICAgICBnX2Vycm9y
KCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVzISIsIGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmls
ZW5hbWUuZ2V0KCkpOyAKKworICAgIGlmICghRmNDb25maWdTZXRDdXJyZW50KGNvbmZpZykpCisg
ICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBzZXQgdGhlIGN1cnJlbnQgZm9udCBjb25maWd1cmF0
aW9uISIpOworCisgICAgbnVtRm9udHMgPSBGY0NvbmZpZ0dldEZvbnRzKGNvbmZpZywgRmNTZXRB
cHBsaWNhdGlvbiktPm5mb250OworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxl
V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVj
dGVkQnVuZGxlV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MjQwODFmZjNhMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3dwZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKKworbmFtZXNwYWNlIFdU
UiB7CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBsYXRmb3JtSW5pdGlhbGl6ZShXS1R5cGVSZWYp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmYxNGZmZGQwNTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVu
bmVyV1BFLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0
UnVubmVyLmgiCisKK25hbWVzcGFjZSBXVFIgeworCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
VGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZikKK3sKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6Omlu
c3BlY3RvclRlc3RTdHViVVJMKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIiIpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OmludmFsaWRhdGVXYWl0VG9EdW1w
V2F0Y2hkb2dUaW1lcigpCit7CisgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdG9wKCk7
Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKwordm9p
ZCBUZXN0UnVubmVyOjppbml0aWFsaXplV2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJZk5lZWRlZCgp
Cit7CisgICAgaWYgKCFtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyLmlzQWN0aXZlKCkpCisgICAg
ICAgIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KG1fdGltZW91dCAvIDEw
MDAuMCk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
NGE4NjJkNjlhZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Bs
YXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKK2ZpbmRfcGFja2FnZShMaWJHQk0gUkVR
VUlSRUQpCitmaW5kX3BhY2thZ2UoV1BFQmFja2VuZC1tZXNhIFJFUVVJUkVEKQorCithZGRfY3Vz
dG9tX3RhcmdldChXZWJLaXRUZXN0UnVubmVyLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1B
TkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9y
d2FyZGluZy1oZWFkZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7V0VCS0lUX1RFU1RSVU5ORVJfRElS
fSAtLW91dHB1dCAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlCispCisK
K3NldChGb3J3YXJkaW5nSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJfTkFNRSBXZWJLaXRUZXN0
UnVubmVyLWZvcndhcmRpbmctaGVhZGVycykKKworbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5l
cl9TT1VSQ0VTCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2NhaXJvL1Rlc3RJbnZvY2F0
aW9uQ2Fpcm8uY3BwCisKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL0V2ZW50U2Vu
ZGVyUHJveHlXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9IZWFkbGVz
c1ZpZXdCYWNrZW5kLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvUGxhdGZv
cm1XZWJWaWV3V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvVGVzdENv
bnRyb2xsZXJXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9tYWluLmNw
cAorKQorCitsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0lOQ0xVREVfRElSRUNUT1JJRVMK
KyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vSW5qZWN0ZWRCdW5kbGUvd3BlCisgICAgJHtG
T1JXQVJESU5HX0hFQURFUlNfRElSfQorICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7
R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJHQk1fSU5DTFVERV9ESVJTfQorICAgICR7V1BF
X01FU0FfSU5DTFVERV9ESVJTfQorKQorCitsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0xJ
QlJBUklFUworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9Cisg
ICAgJHtMSUJHQk1fTElCUkFSSUVTfQorICAgICR7V1BFX01FU0FfTElCUkFSSUVTfQorKQorCits
aXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUworICAgICR7
V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9E
SVJ9L3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RS
VU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAKKyAgICAk
e1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vd3BlL0luamVjdGVkQnVuZGxl
V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUv
VGVzdFJ1bm5lcldQRS5jcHAKKykKKworYWRkX2RlZmluaXRpb25zKAorICAgIC1ERk9OVFNfQ09O
Rl9ESVI9IiR7VE9PTFNfRElSfS9XZWJLaXRUZXN0UnVubmVyL2d0ay9mb250cyIKKyAgICAtRFRP
UF9MRVZFTF9ESVI9IiR7Q01BS0VfU09VUkNFX0RJUn0iCispCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCAwZjE1ODYxM2QyYS4uODdlOGY3ZGE2MDQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtNTAsNiArNTAsMTEgQEAg
dHlwZWRlZiBzdHJ1Y3QgX0d0a1dpZGdldCBHdGtXaWRnZXQ7CiB0eXBlZGVmIFdLVmlld1JlZiBQ
bGF0Zm9ybVdLVmlldzsKIHR5cGVkZWYgR3RrV2lkZ2V0KiBQbGF0Zm9ybVdpbmRvdzsKIHR5cGVk
ZWYgY2Fpcm9fc3VyZmFjZV90ICpQbGF0Zm9ybUltYWdlOworI2VsaWYgUExBVEZPUk0oV1BFKQor
Y2xhc3MgSGVhZGxlc3NWaWV3QmFja2VuZDsKK3R5cGVkZWYgV0tWaWV3UmVmIFBsYXRmb3JtV0tW
aWV3OwordHlwZWRlZiBIZWFkbGVzc1ZpZXdCYWNrZW5kKiBQbGF0Zm9ybVdpbmRvdzsKK3R5cGVk
ZWYgY2Fpcm9fc3VyZmFjZV90KiBQbGF0Zm9ybUltYWdlOwogI2VuZGlmCiAKIG5hbWVzcGFjZSBX
VFIgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA4MjE2
ZGE0YzY3Ny4uNzU5MTQwY2YyNGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCkBAIC03NjcsNyArNzY3LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRT
dGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAv
LyBzb21lIG90aGVyIGNvZGUgZG9pbmcgdGhpcywgaXQgc2hvdWxkIHByb2JhYmx5IGJlIHJlc3Bv
bnNpYmxlIGZvciBjbGVhbnVwIHRvby4KICAgICByZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50
VmFsdWVzKG9wdGlvbnMpOwogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFURk9STShD
T0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKICAgICBXS1RleHRDaGVja2VyQ29udGludW91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKHRydWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUxZWUwZmMyZTU2Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAK
QEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV2ZW50U2VuZGVyUHJv
eHkuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0V2ZW50U2VuZGVyUHJveHk6OkV2ZW50U2VuZGVy
UHJveHkoVGVzdENvbnRyb2xsZXIqIHRlc3RDb250cm9sbGVyKQorICAgIDogbV90ZXN0Q29udHJv
bGxlcih0ZXN0Q29udHJvbGxlcikKKyAgICAsIG1fdGltZSgwKQorICAgICwgbV9sZWZ0TW91c2VC
dXR0b25Eb3duKGZhbHNlKQorICAgICwgbV9jbGlja0NvdW50KDApCisgICAgLCBtX2NsaWNrVGlt
ZSgwKQorICAgICwgbV9jbGlja0J1dHRvbihrV0tFdmVudE1vdXNlQnV0dG9uTm9CdXR0b24pCit7
Cit9CisKK0V2ZW50U2VuZGVyUHJveHk6On5FdmVudFNlbmRlclByb3h5KCkKK3sKK30KKwordm9p
ZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZURvd24odW5zaWduZWQsIFdLRXZlbnRNb2RpZmllcnMp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCh1bnNpZ25lZCwgV0tFdmVu
dE1vZGlmaWVycykKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZU1vdmVUbyhk
b3VibGUsIGRvdWJsZSkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9s
bEJ5KGludCwgaW50KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQsIGludCwgaW50LCBpbnQpCit7Cit9CisK
K3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6Y29udGludW91c01vdXNlU2Nyb2xsQnkoaW50LCBpbnQs
IGJvb2wpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndhcmQoaW50KQor
eworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmtleURvd24oV0tTdHJpbmdSZWYsIFdLRXZl
bnRNb2RpZmllcnMsIHVuc2lnbmVkKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmFk
ZFRvdWNoUG9pbnQoaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dXBk
YXRlVG91Y2hQb2ludChpbnQsIGludCwgaW50KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6OnNldFRvdWNoTW9kaWZpZXIoV0tFdmVudE1vZGlmaWVycywgYm9vbCkKK3sKK30KKwordm9p
ZCBFdmVudFNlbmRlclByb3h5OjpzZXRUb3VjaFBvaW50UmFkaXVzKGludCwgaW50KQoreworfQor
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnRvdWNoU3RhcnQoKQoreworfQorCit2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OnRvdWNoTW92ZSgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
dG91Y2hFbmQoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnRvdWNoQ2FuY2VsKCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpjbGVhclRvdWNoUG9pbnRzKCkKK3sKK30K
Kwordm9pZCBFdmVudFNlbmRlclByb3h5OjpyZWxlYXNlVG91Y2hQb2ludChpbnQpCit7Cit9CisK
K3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6Y2FuY2VsVG91Y2hQb2ludChpbnQpCit7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUv
SGVhZGxlc3NWaWV3QmFja2VuZC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFk
bGVzc1ZpZXdCYWNrZW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNTYwYjQwYTNlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcApAQCAtMCwwICsxLDI1MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSGVhZGxlc3NWaWV3QmFja2VuZC5oIgorCisjaW5jbHVkZSA8Y2Fzc2Vy
dD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisvLyBGSVhNRTog
RGVwbG95IGdvb2QgcHJhY3RpY2VzIGFuZCBjbGVhbiB1cCBHQk0gcmVzb3VyY2VzIGF0IHByb2Nl
c3MgZXhpdC4KK3N0YXRpYyBFR0xEaXNwbGF5IGdldEVHTERpc3BsYXkoKQoreworICAgIHN0YXRp
YyBFR0xEaXNwbGF5IHNfZGlzcGxheSA9IEVHTF9OT19ESVNQTEFZOworICAgIGlmIChzX2Rpc3Bs
YXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgaW50IGZkID0gb3BlbigiL2Rldi9kcmkv
cmVuZGVyRDEyOCIsIE9fUkRXUiB8IE9fQ0xPRVhFQyB8IE9fTk9DVFRZIHwgT19OT05CTE9DSyk7
CisgICAgICAgIGlmIChmZCA8IDApCisgICAgICAgICAgICByZXR1cm4gRUdMX05PX0RJU1BMQVk7
CisKKyAgICAgICAgc3RydWN0IGdibV9kZXZpY2UqIGRldmljZSA9IGdibV9jcmVhdGVfZGV2aWNl
KGZkKTsKKyAgICAgICAgaWYgKCFkZXZpY2UpCisgICAgICAgICAgICByZXR1cm4gRUdMX05PX0RJ
U1BMQVk7CisKKyAgICAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gZWdsR2V0RGlzcGxheShkZXZp
Y2UpOworICAgICAgICBpZiAoZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKKyAgICAgICAgICAg
IHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBpZiAoIWVnbEluaXRpYWxpemUoZGlz
cGxheSwgbnVsbHB0ciwgbnVsbHB0cikpCisgICAgICAgICAgICByZXR1cm4gRUdMX05PX0RJU1BM
QVk7CisKKyAgICAgICAgaWYgKCFlZ2xCaW5kQVBJKEVHTF9PUEVOR0xfRVNfQVBJKSkKKyAgICAg
ICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBzX2Rpc3BsYXkgPSBkaXNw
bGF5OworICAgIH0KKworICAgIHJldHVybiBzX2Rpc3BsYXk7Cit9CisKK0hlYWRsZXNzVmlld0Jh
Y2tlbmQ6OkhlYWRsZXNzVmlld0JhY2tlbmQoKQoreworICAgIG1fZWdsLmRpc3BsYXkgPSBnZXRF
R0xEaXNwbGF5KCk7CisKKyAgICBzdGF0aWMgY29uc3QgRUdMaW50IGNvbmZpZ0F0dHJpYnV0ZXNb
MTNdID0geworICAgICAgICBFR0xfU1VSRkFDRV9UWVBFLCBFR0xfV0lORE9XX0JJVCwKKyAgICAg
ICAgRUdMX1JFRF9TSVpFLCAxLAorICAgICAgICBFR0xfR1JFRU5fU0laRSwgMSwKKyAgICAgICAg
RUdMX0JMVUVfU0laRSwgMSwKKyAgICAgICAgRUdMX0FMUEhBX1NJWkUsIDEsCisgICAgICAgIEVH
TF9SRU5ERVJBQkxFX1RZUEUsIEVHTF9PUEVOR0xfRVMyX0JJVCwKKyAgICAgICAgRUdMX05PTkUK
KyAgICB9OworCisgICAgRUdMaW50IG51bUNvbmZpZ3M7CisgICAgRUdMQm9vbGVhbiByZXQgPSBl
Z2xDaG9vc2VDb25maWcobV9lZ2wuZGlzcGxheSwgY29uZmlnQXR0cmlidXRlcywgJm1fZWdsLmNv
bmZpZywgMSwgJm51bUNvbmZpZ3MpOworICAgIGlmICghcmV0IHx8ICFudW1Db25maWdzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBzdGF0aWMgY29uc3QgRUdMaW50IGNvbnRleHRBdHRyaWJ1dGVz
WzNdID0geworICAgICAgICBFR0xfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiwgMiwKKyAgICAgICAg
RUdMX05PTkUKKyAgICB9OworCisgICAgbV9lZ2wuY29udGV4dCA9IGVnbENyZWF0ZUNvbnRleHQo
bV9lZ2wuZGlzcGxheSwgbV9lZ2wuY29uZmlnLCBFR0xfTk9fQ09OVEVYVCwgY29udGV4dEF0dHJp
YnV0ZXMpOworICAgIGlmIChtX2VnbC5jb250ZXh0ID09IEVHTF9OT19DT05URVhUKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIWVnbE1ha2VDdXJyZW50KG1fZWdsLmRpc3BsYXksIEVHTF9O
T19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgbV9lZ2wuY29udGV4dCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fZWdsLmNyZWF0ZUltYWdlID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xDUkVB
VEVJTUFHRUtIUlBST0M+KGVnbEdldFByb2NBZGRyZXNzKCJlZ2xDcmVhdGVJbWFnZUtIUiIpKTsK
KyAgICBtX2VnbC5kZXN0cm95SW1hZ2UgPSByZWludGVycHJldF9jYXN0PFBGTkVHTERFU1RST1lJ
TUFHRUtIUlBST0M+KGVnbEdldFByb2NBZGRyZXNzKCJlZ2xEZXN0cm95SW1hZ2VLSFIiKSk7Cisg
ICAgbV9lZ2wuaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMgPSByZWludGVycHJldF9jYXN0PFBGTkdM
RUdMSU1BR0VUQVJHRVRURVhUVVJFMkRPRVNQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZ2xFR0xJ
bWFnZVRhcmdldFRleHR1cmUyRE9FUyIpKTsKKworICAgIG1fZXhwb3J0YWJsZSA9IHdwZV9tZXNh
X3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY3JlYXRlKCZzX2V4cG9ydGFibGVDbGll
bnQsIHRoaXMpOworCisgICAgbV91cGRhdGVTb3VyY2UgPSBnX3RpbWVvdXRfc291cmNlX25ldyht
X2ZyYW1lUmF0ZSAvIDEwMDApOworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3VwZGF0ZVNv
dXJjZSwKKyAgICAgICAgW10oZ3BvaW50ZXIgZGF0YSkgLT4gZ2Jvb2xlYW4geworICAgICAgICAg
ICAgYXV0byYgYmFja2VuZCA9ICpzdGF0aWNfY2FzdDxIZWFkbGVzc1ZpZXdCYWNrZW5kKj4oZGF0
YSk7CisgICAgICAgICAgICBiYWNrZW5kLnBlcmZvcm1VcGRhdGUoKTsKKyAgICAgICAgICAgIHJl
dHVybiBUUlVFOworICAgICAgICB9LCB0aGlzLCBudWxscHRyKTsKKyAgICBnX3NvdXJjZV9hdHRh
Y2gobV91cGRhdGVTb3VyY2UsIGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKSk7Cit9CisKK0hlYWRs
ZXNzVmlld0JhY2tlbmQ6On5IZWFkbGVzc1ZpZXdCYWNrZW5kKCkKK3sKKyAgICBpZiAobV91cGRh
dGVTb3VyY2UpCisgICAgICAgIGdfc291cmNlX2Rlc3Ryb3kobV91cGRhdGVTb3VyY2UpOworCisg
ICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6OmdldDwwPihtX3BlbmRpbmdJbWFnZS5zZWNvbmQpKQor
ICAgICAgICBtX2VnbC5kZXN0cm95SW1hZ2UobV9lZ2wuZGlzcGxheSwgaW1hZ2UpOworICAgIGlm
IChhdXRvIGltYWdlID0gc3RkOjpnZXQ8MD4obV9sb2NrZWRJbWFnZS5zZWNvbmQpKQorICAgICAg
ICBtX2VnbC5kZXN0cm95SW1hZ2UobV9lZ2wuZGlzcGxheSwgaW1hZ2UpOworCisgICAgZm9yIChh
dXRvIGl0IDogbV9leHBvcnRNYXApIHsKKyAgICAgICAgaW50IGZkID0gaXQuc2Vjb25kOworICAg
ICAgICBpZiAoZmQgPj0gMCkKKyAgICAgICAgICAgIGNsb3NlKGZkKTsKKyAgICB9CisKKyAgICBp
ZiAobV9lZ2wuY29udGV4dCkKKyAgICAgICAgZWdsRGVzdHJveUNvbnRleHQobV9lZ2wuZGlzcGxh
eSwgbV9lZ2wuY29udGV4dCk7Cit9CisKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBIZWFkbGVz
c1ZpZXdCYWNrZW5kOjpiYWNrZW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gd3BlX21lc2Ffdmll
d19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9nZXRfdmlld19iYWNrZW5kKG1fZXhwb3J0YWJs
ZSk7Cit9CisKK2NhaXJvX3N1cmZhY2VfdCogSGVhZGxlc3NWaWV3QmFja2VuZDo6Y3JlYXRlU25h
cHNob3QoKQoreworICAgIHBlcmZvcm1VcGRhdGUoKTsKKworICAgIEVHTEltYWdlS0hSIGltYWdl
ID0gc3RkOjpnZXQ8MD4obV9sb2NrZWRJbWFnZS5zZWNvbmQpOworICAgIGlmICghaW1hZ2UpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgdWludDMyX3Qgd2lkdGggPSBzdGQ6OmdldDwx
PihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisgICAgdWludDMyX3QgaGVpZ2h0ID0gc3RkOjpnZXQ8
Mj4obV9sb2NrZWRJbWFnZS5zZWNvbmQpOworCisgICAgdWludDhfdCogYnVmZmVyID0gbmV3IHVp
bnQ4X3RbNCAqIHdpZHRoICogaGVpZ2h0XTsKKyAgICBib29sIHN1Y2Nlc3NmdWxTbmFwc2hvdCA9
IGZhbHNlOworCisgICAgbWFrZUN1cnJlbnQoKTsKKworICAgIEdMdWludCBpbWFnZVRleHR1cmU7
CisgICAgZ2xHZW5UZXh0dXJlcygxLCAmaW1hZ2VUZXh0dXJlKTsKKyAgICBnbEJpbmRUZXh0dXJl
KEdMX1RFWFRVUkVfMkQsIGltYWdlVGV4dHVyZSk7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RF
WFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbFRleFBh
cmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIp
OworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywg
R0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdM
X1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICBnbFRleEltYWdlMkQoR0xf
VEVYVFVSRV8yRCwgMCwgR0xfQkdSQV9FWFQsIHdpZHRoLCBoZWlnaHQsIDAsIEdMX0JHUkFfRVhU
LCBHTF9VTlNJR05FRF9CWVRFLCBudWxscHRyKTsKKworICAgIG1fZWdsLmltYWdlVGFyZ2V0VGV4
dHVyZTJET0VTKEdMX1RFWFRVUkVfMkQsIGltYWdlKTsKKyAgICBnbEJpbmRUZXh0dXJlKEdMX1RF
WFRVUkVfMkQsIDApOworCisgICAgR0x1aW50IGltYWdlRnJhbWVidWZmZXI7CisgICAgZ2xHZW5G
cmFtZWJ1ZmZlcnMoMSwgJmltYWdlRnJhbWVidWZmZXIpOworICAgIGdsQmluZEZyYW1lYnVmZmVy
KEdMX0ZSQU1FQlVGRkVSLCBpbWFnZUZyYW1lYnVmZmVyKTsKKyAgICBnbEZyYW1lYnVmZmVyVGV4
dHVyZTJEKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV8y
RCwgaW1hZ2VUZXh0dXJlLCAwKTsKKworICAgIGdsRmx1c2goKTsKKyAgICBpZiAoZ2xDaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKEdMX0ZSQU1FQlVGRkVSKSA9PSBHTF9GUkFNRUJVRkZFUl9DT01QTEVU
RSkgeworICAgICAgICBnbFJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgR0xfQkdSQV9F
WFQsIEdMX1VOU0lHTkVEX0JZVEUsIGJ1ZmZlcik7CisgICAgICAgIHN1Y2Nlc3NmdWxTbmFwc2hv
dCA9IHRydWU7CisgICAgfQorCisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIs
IDApOworICAgIGdsRGVsZXRlRnJhbWVidWZmZXJzKDEsICZpbWFnZUZyYW1lYnVmZmVyKTsKKyAg
ICBnbERlbGV0ZVRleHR1cmVzKDEsICZpbWFnZVRleHR1cmUpOworCisgICAgaWYgKCFzdWNjZXNz
ZnVsU25hcHNob3QpIHsKKyAgICAgICAgZGVsZXRlW10gYnVmZmVyOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CisKKyAgICBjYWlyb19zdXJmYWNlX3QqIGltYWdlU3VyZmFjZSA9IGNh
aXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1ZmZlciwKKyAgICAgICAgQ0FJUk9f
Rk9STUFUX0FSR0IzMiwgd2lkdGgsIGhlaWdodCwgY2Fpcm9fZm9ybWF0X3N0cmlkZV9mb3Jfd2lk
dGgoQ0FJUk9fRk9STUFUX0FSR0IzMiwgd2lkdGgpKTsKKyAgICBjYWlyb19zdXJmYWNlX21hcmtf
ZGlydHkoaW1hZ2VTdXJmYWNlKTsKKworICAgIHN0YXRpYyBjYWlyb191c2VyX2RhdGFfa2V5X3Qg
YnVmZmVyS2V5OworICAgIGNhaXJvX3N1cmZhY2Vfc2V0X3VzZXJfZGF0YShpbWFnZVN1cmZhY2Us
ICZidWZmZXJLZXksIGJ1ZmZlciwKKyAgICAgICAgW10odm9pZCogZGF0YSkgeworICAgICAgICAg
ICAgYXV0byogYnVmZmVyID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGRhdGEpOworICAgICAgICAg
ICAgZGVsZXRlW10gYnVmZmVyOworICAgICAgICB9KTsKKworICAgIHJldHVybiBpbWFnZVN1cmZh
Y2U7Cit9CisKK2Jvb2wgSGVhZGxlc3NWaWV3QmFja2VuZDo6bWFrZUN1cnJlbnQoKQoreworICAg
IHJldHVybiBlZ2xNYWtlQ3VycmVudChtX2VnbC5kaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdM
X05PX1NVUkZBQ0UsIG1fZWdsLmNvbnRleHQpOworfQorCit2b2lkIEhlYWRsZXNzVmlld0JhY2tl
bmQ6OnBlcmZvcm1VcGRhdGUoKQoreworICAgIGlmICghbV9wZW5kaW5nSW1hZ2UuZmlyc3QpCisg
ICAgICAgIHJldHVybjsKKworICAgIHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Rt
YV9idWZfZGlzcGF0Y2hfZnJhbWVfY29tcGxldGUobV9leHBvcnRhYmxlKTsKKyAgICBpZiAobV9s
b2NrZWRJbWFnZS5maXJzdCkgeworICAgICAgICB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0
YWJsZV9kbWFfYnVmX2Rpc3BhdGNoX3JlbGVhc2VfYnVmZmVyKG1fZXhwb3J0YWJsZSwgbV9sb2Nr
ZWRJbWFnZS5maXJzdCk7CisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5
LCBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCkpOworICAgIH0KKworICAgIG1fbG9j
a2VkSW1hZ2UgPSBtX3BlbmRpbmdJbWFnZTsKKyAgICBtX3BlbmRpbmdJbWFnZSA9IHN0ZDo6cGFp
cjx1aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4g
eyB9OworfQorCitzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1
Zl9jbGllbnQgSGVhZGxlc3NWaWV3QmFja2VuZDo6c19leHBvcnRhYmxlQ2xpZW50ID0geworICAg
IC8vIGV4cG9ydF9kbWFfYnVmCisgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdwZV9tZXNhX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZGF0YSogaW1hZ2VEYXRhKQorICAgIHsKKyAg
ICAgICAgYXV0byYgYmFja2VuZCA9ICpzdGF0aWNfY2FzdDxIZWFkbGVzc1ZpZXdCYWNrZW5kKj4o
ZGF0YSk7CisKKyAgICAgICAgYXV0byBpdCA9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCk7Cisg
ICAgICAgIGlmIChpbWFnZURhdGEtPmZkID49IDApIHsKKyAgICAgICAgICAgIGFzc2VydChiYWNr
ZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpID09IGJhY2tlbmQubV9leHBv
cnRNYXAuZW5kKCkpOworCisgICAgICAgICAgICBpdCA9IGJhY2tlbmQubV9leHBvcnRNYXAuaW5z
ZXJ0KHsgaW1hZ2VEYXRhLT5oYW5kbGUsIGltYWdlRGF0YS0+ZmQgfSkuZmlyc3Q7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnQoYmFja2VuZC5tX2V4cG9ydE1hcC5maW5kKGlt
YWdlRGF0YS0+aGFuZGxlKSAhPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgpKTsKKyAgICAgICAg
ICAgIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5maW5kKGltYWdlRGF0YS0+aGFuZGxlKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGFzc2VydChpdCAhPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgp
KTsKKyAgICAgICAgdWludDMyX3QgaGFuZGxlID0gaXQtPmZpcnN0OworICAgICAgICBpbnQzMl90
IGZkID0gaXQtPnNlY29uZDsKKworICAgICAgICBiYWNrZW5kLm1ha2VDdXJyZW50KCk7CisKKyAg
ICAgICAgRUdMaW50IGF0dHJpYnV0ZXNbXSA9IHsKKyAgICAgICAgICAgIEVHTF9XSURUSCwgc3Rh
dGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPndpZHRoKSwKKyAgICAgICAgICAgIEVHTF9IRUlH
SFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5oZWlnaHQpLAorICAgICAgICAgICAg
RUdMX0xJTlVYX0RSTV9GT1VSQ0NfRVhULCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+
Zm9ybWF0KSwKKyAgICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9GRF9FWFQsIGZkLAorICAg
ICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX09GRlNFVF9FWFQsIDAsCisgICAgICAgICAgICBF
R0xfRE1BX0JVRl9QTEFORTBfUElUQ0hfRVhULCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0
YS0+c3RyaWRlKSwKKyAgICAgICAgICAgIEVHTF9OT05FLAorICAgICAgICB9OworICAgICAgICBF
R0xJbWFnZUtIUiBpbWFnZSA9IGJhY2tlbmQubV9lZ2wuY3JlYXRlSW1hZ2UoYmFja2VuZC5tX2Vn
bC5kaXNwbGF5LCBFR0xfTk9fQ09OVEVYVCwgRUdMX0xJTlVYX0RNQV9CVUZfRVhULCBudWxscHRy
LCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgYmFja2VuZC5tX3BlbmRpbmdJbWFnZSA9IHsgaW1hZ2VE
YXRhLT5oYW5kbGUsIHN0ZDo6bWFrZV90dXBsZShpbWFnZSwgaW1hZ2VEYXRhLT53aWR0aCwgaW1h
Z2VEYXRhLT5oZWlnaHQpIH07CisgICAgfSwKK307CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjYyMTg2MTIxYThjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxnYm0uaD4KKyNpbmNsdWRlIDxFR0wvZWdsLmg+CisjaW5jbHVkZSA8
RUdML2VnbGV4dC5oPgorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorI2luY2x1ZGUgPEdMRVMyL2ds
MmV4dC5oPgorI2luY2x1ZGUgPGNhaXJvLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUg
PHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSA8d3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFi
bGUtZG1hLWJ1Zi5oPgorCitjbGFzcyBIZWFkbGVzc1ZpZXdCYWNrZW5kIHsKK3B1YmxpYzoKKyAg
ICBIZWFkbGVzc1ZpZXdCYWNrZW5kKCk7CisgICAgfkhlYWRsZXNzVmlld0JhY2tlbmQoKTsKKwor
ICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kKCkgY29uc3Q7CisKKyAgICBjYWly
b19zdXJmYWNlX3QqIGNyZWF0ZVNuYXBzaG90KCk7CisKK3ByaXZhdGU6CisgICAgYm9vbCBtYWtl
Q3VycmVudCgpOworICAgIHZvaWQgcGVyZm9ybVVwZGF0ZSgpOworCisgICAgc3RhdGljIHN0cnVj
dCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2NsaWVudCBzX2V4cG9y
dGFibGVDbGllbnQ7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXk7
CisgICAgICAgIEVHTENvbmZpZyBjb25maWc7CisgICAgICAgIEVHTENvbnRleHQgY29udGV4dDsK
KworICAgICAgICBQRk5FR0xDUkVBVEVJTUFHRUtIUlBST0MgY3JlYXRlSW1hZ2U7CisgICAgICAg
IFBGTkVHTERFU1RST1lJTUFHRUtIUlBST0MgZGVzdHJveUltYWdlOworICAgICAgICBQRk5HTEVH
TElNQUdFVEFSR0VUVEVYVFVSRTJET0VTUFJPQyBpbWFnZVRhcmdldFRleHR1cmUyRE9FUzsKKyAg
ICB9IG1fZWdsOworCisgICAgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxl
X2RtYV9idWYqIG1fZXhwb3J0YWJsZTsKKworICAgIHN0ZDo6dW5vcmRlcmVkX21hcDx1aW50MzJf
dCwgaW50MzJfdD4gbV9leHBvcnRNYXA7CisgICAgc3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1
cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiBtX3BlbmRpbmdJbWFnZSB7IH07
CisgICAgc3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJf
dCwgdWludDMyX3Q+PiBtX2xvY2tlZEltYWdlIHsgfTsKKworICAgIEdTb3VyY2UqIG1fdXBkYXRl
U291cmNlOworICAgIGdpbnQ2NCBtX2ZyYW1lUmF0ZSB7IEdfVVNFQ19QRVJfU0VDIC8gNjAgfTsK
K307CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZp
ZXdXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJWaWV3V1BF
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTE2OGE5MzRjMTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdl
YlZpZXdXUEUuY3BwCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybVdlYlZpZXcuaCIKKworI2luY2x1ZGUgIkhlYWRsZXNzVmlld0JhY2tlbmQuaCIKKyNp
bmNsdWRlIDxXZWJLaXQvV0tJbWFnZUNhaXJvLmg+CisjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNs
dWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CisKK25hbWVzcGFjZSBXVFIgeworCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhX
S1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFRlc3RPcHRpb25zJiBv
cHRpb25zKQorICAgIDogbV93aW5kb3dJc0tleSh0cnVlKQorICAgICwgbV9vcHRpb25zKG9wdGlv
bnMpCit7CisgICAgbV93aW5kb3cgPSBuZXcgSGVhZGxlc3NWaWV3QmFja2VuZDsKKyAgICBtX3Zp
ZXcgPSBXS1ZpZXdDcmVhdGVXaXRoVmlld0JhY2tlbmQobV93aW5kb3ctPmJhY2tlbmQoKSwgY29u
ZmlndXJhdGlvbik7Cit9CisKK1BsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldygpCit7
CisgICAgZGVsZXRlIG1fd2luZG93OworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVzaXpl
VG8odW5zaWduZWQsIHVuc2lnbmVkLCBXZWJWaWV3U2l6aW5nTW9kZSkKK3sKK30KKworV0tQYWdl
UmVmIFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpCit7CisgICAgcmV0dXJuIFdLVmlld0dldFBhZ2Uo
bV92aWV3KTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKCkKK3sKK30KKworV0tS
ZWN0IFBsYXRmb3JtV2ViVmlldzo6d2luZG93RnJhbWUoKQoreworICAgIHJldHVybiBXS1JlY3Qg
eyAwLCAwLCAxLCAxIH07Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dGcmFt
ZShXS1JlY3QsIFdlYlZpZXdTaXppbmdNb2RlKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmll
dzo6ZGlkSW5pdGlhbGl6ZUNsaWVudHMoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6
YWRkQ2hyb21lSW5wdXRGaWVsZCgpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZW1v
dmVDaHJvbWVJbnB1dEZpZWxkKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZFRv
V2luZG93KCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlbW92ZUZyb21XaW5kb3co
KQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5k
b3dJc0tleSkKK3sKKyAgICBtX3dpbmRvd0lzS2V5ID0gd2luZG93SXNLZXk7Cit9CisKK3ZvaWQg
UGxhdGZvcm1XZWJWaWV3OjptYWtlV2ViVmlld0ZpcnN0UmVzcG9uZGVyKCkKK3sKK30KKworY2Fp
cm9fc3VyZmFjZV90KiBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UoKQorewor
ICAgIHsKKyAgICAgICAgc3RydWN0IFRpbWVvdXRUaW1lciB7CisgICAgICAgICAgICBUaW1lb3V0
VGltZXIoKQorICAgICAgICAgICAgICAgIDogdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAm
VGltZW91dFRpbWVyOjpmaXJlZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aW1l
ci5zdGFydE9uZVNob3QoMS4wIC8gNjApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2
b2lkIGZpcmVkKCkgeyBSdW5Mb29wOjptYWluKCkuc3RvcCgpOyB9CisgICAgICAgICAgICBSdW5M
b29wOjpUaW1lcjxUaW1lb3V0VGltZXI+IHRpbWVyOworICAgICAgICB9IHRpbWVvdXRUaW1lcjsK
KworICAgICAgICBSdW5Mb29wOjptYWluKCkucnVuKCk7CisgICAgfQorCisgICAgY2Fpcm9fc3Vy
ZmFjZV90KiBpbWFnZVN1cmZhY2UgPSBtX3dpbmRvdy0+Y3JlYXRlU25hcHNob3QoKTsKKyAgICBy
ZXR1cm4gaW1hZ2VTdXJmYWNlOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Y2hhbmdlV2lu
ZG93U2NhbGVJZk5lZWRlZChmbG9hdCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNl
dE5hdmlnYXRpb25HZXN0dXJlc0VuYWJsZWQoYm9vbCkKK3sKK30KKworYm9vbCBQbGF0Zm9ybVdl
YlZpZXc6OnZpZXdTdXBwb3J0c09wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmKSBjb25zdAorewor
ICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9yY2VXaW5kb3dG
cmFtZXNDaGFuZ2VkKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBjYzNkZWRlOTg2Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCkBAIC0wLDAg
KzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgorCisj
aW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBUZXN0Q29udHJv
bGxlcjo6bm90aWZ5RG9uZSgpCit7CisgICAgUnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKK30KKwor
dm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGlkZGVuKGJvb2wpCit7Cit9CisKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK1dLUHJlZmVyZW5jZXNSZWYg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQoreworICAgIHJldHVybiBXS1Bh
Z2VHcm91cEdldFByZWZlcmVuY2VzKG1fcGFnZUdyb3VwLmdldCgpKTsKK30KKwordm9pZCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpCit7Cit9CisKK3N0YXRpYyBHTWFpbkNvbnRl
eHQqIHRocmVhZERlZmF1bHRDb250ZXh0KCkKK3sKKyAgICBpZiAoR01haW5Db250ZXh0KiBjb250
ZXh0ID0gZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkpCisgICAgICAgIHJldHVy
biBjb250ZXh0OworICAgIHJldHVybiBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7Cit9CisKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBkb3Vi
bGUgdGltZW91dCkKK3sKKyAgICBzdHJ1Y3QgVGltZW91dFRpbWVyIHsKKyAgICAgICAgVGltZW91
dFRpbWVyKCkKKyAgICAgICAgICAgIDogdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGlt
ZW91dFRpbWVyOjpmaXJlZCkKKyAgICAgICAgeyB9CisKKyAgICAgICAgdm9pZCBmaXJlZCgpIHsg
UnVuTG9vcDo6bWFpbigpLnN0b3AoKTsgfQorICAgICAgICBSdW5Mb29wOjpUaW1lcjxUaW1lb3V0
VGltZXI+IHRpbWVyOworICAgIH0gdGltZW91dFRpbWVyOworCisgICAgdGltZW91dFRpbWVyLnRp
bWVyLnNldFByaW9yaXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKKyAgICBpZiAodGltZW91
dCA+PSAwKQorICAgICAgICB0aW1lb3V0VGltZXIudGltZXIuc3RhcnRPbmVTaG90KHRpbWVvdXQp
OworCisgICAgUnVuTG9vcDo6bWFpbigpLnJ1bigpOworCisgICAgdGltZW91dFRpbWVyLnRpbWVy
LnN0b3AoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EaWRDb21taXRMb2Fk
Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmKQoreworfQorCitzdGF0aWMgY2hhciogZ2V0
RW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOFN0cmluZyhjb25zdCBjaGFyKiB2YXJpYWJsZU5hbWUp
Cit7CisgICAgY29uc3QgY2hhciogdmFsdWUgPSBnX2dldGVudih2YXJpYWJsZU5hbWUpOworICAg
IGlmICghdmFsdWUpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyBlbnZpcm9ubWVudCB2
YXJpYWJsZSBub3QgZm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMCk7Cisg
ICAgfQorICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191
dGY4KHZhbHVlLCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVBhdGgoKQoreworICAgIEdVbmlxdWVQdHI8
Y2hhcj4gcGF0aChnZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKCJURVNUX1JVTk5F
Ul9JTkpFQ1RFRF9CVU5ETEVfRklMRU5BTUUiKSk7CisgICAgbV9pbmplY3RlZEJ1bmRsZVBhdGgu
YWRvcHQoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocGF0aC5nZXQoKSkpOworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplVGVzdFBsdWdpbkRpcmVjdG9yeSgpCit7Cit9
CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopCit7Cit9
CisKK1dLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db250ZXh0KCkKK3sKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtTGlicmFyeVBhdGhGb3JUZXN0aW5nKCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
dm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdChjb25zdCBU
ZXN0SW52b2NhdGlvbiYpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnVwZGF0ZVBsYXRmb3JtU3BlY2lmaWNUZXN0T3B0aW9uc0ZvclRlc3QoVGVzdE9wdGlv
bnMmLCBjb25zdCBzdGQ6OnN0cmluZyYpIGNvbnN0Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL3dwZS9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNmNmMmI3ZmYzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9tYWluLmNwcApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKK3sKKyAgICBXVFI6OlRlc3RDb250cm9sbGVyIGNvbnRyb2xsZXIoYXJnYywgY29u
c3RfY2FzdDxjb25zdCBjaGFyKio+KGFyZ3YpKTsKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdp
dCBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxk
LXdyYXBwZXIKaW5kZXggZjZjNDAzZDMxYjAuLmUzZWVjZGZjZTg3IDEwMDc1NQotLS0gYS9Ub29s
cy9qaGJ1aWxkL2poYnVpbGQtd3JhcHBlcgorKysgYi9Ub29scy9qaGJ1aWxkL2poYnVpbGQtd3Jh
cHBlcgpAQCAtMzEsNiArMzEsOCBAQCBkZWYgZGV0ZXJtaW5lX3BsYXRmb3JtKCk6CiAgICAgICAg
IHJldHVybiAiZWZsIjsKICAgICBpZiAnLS1ndGsnIGluIHN5cy5hcmd2OgogICAgICAgICByZXR1
cm4gImd0ayI7CisgICAgaWYgJy0td3BlJyBpbiBzeXMuYXJndjoKKyAgICAgICAgcmV0dXJuICJ3
cGUiCiAgICAgcmFpc2UgVmFsdWVFcnJvcignTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciBqaGJ1
aWxkLXdyYXBwZXIuJykKIAogdHJ5OgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2dlbmVyYXRlLWlu
c3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkgYi9Ub29scy93cGUvZ2VuZXJhdGUtaW5zcGVj
dG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwMDAwMC4uNzhmMTQxMDY5ODIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvZ2VuZXJh
dGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weQpAQCAtMCwwICsxLDc2IEBACisjIS91
c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisjCisj
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorCitp
bXBvcnQgYXJncGFyc2UKK2ltcG9ydCBnbG9iCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworQ09N
UFJFU1NJQkxFX0VYVEVOU0lPTlMgPSBbJy5odG1sJywgJy5qcycsICcuY3NzJywgJy5zdmcnXQor
QkFTRV9ESVIgPSAnV2ViSW5zcGVjdG9yVUkvJworCisKK2RlZiBnZXRfZmlsZW5hbWVzKGFyZ3Mp
OgorICAgIGZpbGVuYW1lcyA9IFtdCisKKyAgICBmb3IgcGF0dGVybiBpbiBhcmdzOgorICAgICAg
ICBwYXRocyA9IGdsb2IuZ2xvYihwYXR0ZXJuKQorICAgICAgICBmb3IgZmlsZW5hbWUgaW4gcGF0
aHM6CisgICAgICAgICAgICBiYXNlX2Rpcl9pbmRleCA9IGZpbGVuYW1lLnJmaW5kKEJBU0VfRElS
KQorICAgICAgICAgICAgaWYgYmFzZV9kaXJfaW5kZXggIT0gLTE6CisgICAgICAgICAgICAgICAg
bmFtZSA9IGZpbGVuYW1lW2Jhc2VfZGlyX2luZGV4ICsgbGVuKEJBU0VfRElSKTpdCisgICAgICAg
ICAgICAgICAgIyBUaGUgcmVzdWx0IHNob3VsZCB1c2UgZm9yd2FyZCBzbGFzaGVzLCB0aHVzIG1h
a2Ugc3VyZSBhbnkgb3Mtc3BlY2lmaWMKKyAgICAgICAgICAgICAgICAjIHNlcGFyYXRvciwgYWRk
ZWQgYnkgdGhlIGdsb2IuZ2xvYigpIGNhbGwsIGlzIHByb3Blcmx5IHJlcGxhY2VkCisgICAgICAg
ICAgICAgICAgaWYgb3Muc2VwICE9ICcvJzoKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5h
bWUucmVwbGFjZShvcy5zZXAsICcvJykKKyAgICAgICAgICAgICAgICBmaWxlbmFtZXMuYXBwZW5k
KG5hbWUpCisgICAgcmV0dXJuIGZpbGVuYW1lcworCisKK2RlZiBpc19jb21wcmVzc2libGUoZmls
ZW5hbWUpOgorICAgIHJldHVybiBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVsxXSBpbiBDT01Q
UkVTU0lCTEVfRVhURU5TSU9OUworCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAg
cGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J0dlbmVyYXRlIGEg
R1Jlc291cmNlcyBmaWxlIGZvciB0aGUgaW5zcGVjdG9yLicpCisgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgnLS1vdXRwdXQnLCBuYXJncz0nPycsIHR5cGU9YXJncGFyc2UuRmlsZVR5cGUoJ3cnKSwg
ZGVmYXVsdD1zeXMuc3Rkb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ndGhlIG91
dHB1dCBmaWxlJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdmaWxlbmFtZXMnLCBtZXRhdmFy
PSdGSUxFUycsIG5hcmdzPScrJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3RoZSBs
aXN0IG9mIGZpbGVzIHRvIGluY2x1ZGUnKQorCisgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdz
KHN5cy5hcmd2WzE6XSkKKworICAgIGFyZ3Mub3V0cHV0LndyaXRlKFwKKyAgICAiIiI8P3htbCB2
ZXJzaW9uPTEuMCBlbmNvZGluZz1VVEYtOD8+CisgICAgPGdyZXNvdXJjZXM+CisgICAgICAgIDxn
cmVzb3VyY2UgcHJlZml4PSIvb3JnL3dwZS9pbnNwZWN0b3IiPgorIiIiKQorCisgICAgZm9yIGZp
bGVuYW1lIGluIGdldF9maWxlbmFtZXMoYXJncy5maWxlbmFtZXMpOgorICAgICAgICBsaW5lID0g
JyAgICAgICAgICAgIDxmaWxlJworICAgICAgICBpZiBpc19jb21wcmVzc2libGUoZmlsZW5hbWUp
OgorICAgICAgICAgICAgbGluZSArPSAnIGNvbXByZXNzZWQ9InRydWUiJworICAgICAgICBpZiAn
SW1hZ2VzL2d0ay8nIGluIGZpbGVuYW1lOgorICAgICAgICAgICAgbGluZSArPSAnIGFsaWFzPSIl
cyInICUgZmlsZW5hbWUucmVwbGFjZSgnZ3RrLycsICcnKQorICAgICAgICBsaW5lICs9ICc+JXM8
L2ZpbGU+XG4nICUgZmlsZW5hbWUKKworICAgICAgICBhcmdzLm91dHB1dC53cml0ZShsaW5lKQor
CisgICAgYXJncy5vdXRwdXQud3JpdGUoXAorICAgICIiIiAgICA8L2dyZXNvdXJjZT4KKzwvZ3Jl
c291cmNlcz4KKyIiIikKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMgYi9U
b29scy93cGUvamhidWlsZC5tb2R1bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4yZWQ3NTYyNjRhMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxk
Lm1vZHVsZXMKQEAgLTAsMCArMSwyNDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NU
WVBFIG1vZHVsZXNldCBTWVNURU0gIm1vZHVsZXNldC5kdGQiPgorPD94bWwtc3R5bGVzaGVldCB0
eXBlPSJ0ZXh0L3hzbCIgaHJlZj0ibW9kdWxlc2V0LnhzbCI/PgorPG1vZHVsZXNldD4KKworICA8
bWV0YW1vZHVsZSBpZD0id2Via2l0d3BlLXRlc3RpbmctZGVwZW5kZW5jaWVzIj4KKyAgICA8ZGVw
ZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgICA8ZGVwIHBhY2th
Z2U9ImxpYnNvdXAiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iY2Fpcm8iLz4KKyAgICAgIDxkZXAg
cGFja2FnZT0iZm9udHMiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZGljdHMiLz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0iZm9udGNvbmZpZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmcmVldHlwZTYi
Lz4KKyAgICAgIDxkZXAgcGFja2FnZT0iaGFyZmJ1enoiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0i
eGtiY29tbW9uIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9IndheWxhbmQiLz4KKyAgICAgIDxkZXAg
cGFja2FnZT0iZ3N0cmVhbWVyIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJh
c2UiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtZ29vZCIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYWQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LWxp
YmF2Ii8+CisgICAgICA8ZGVwIHBhY2thZ2U9IndwZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3
cGUtbWVzYSIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICA8L21ldGFtb2R1bGU+CisKKyAgPHJl
cG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0ic291cmNld2FyZS5vcmctbWlycm9yIgorICAg
ICAgaHJlZj0iaHR0cDovL21pcnJvcnMua2VybmVsLm9yZy9zb3VyY2VzLnJlZGhhdC5jb20vIi8+
CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZ0cC5nbm9tZS5vcmciCisgICAg
ICBocmVmPSJodHRwOi8vZnRwLmdub21lLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJi
YWxsIiBuYW1lPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9jYWlyb2dy
YXBoaWNzLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmcmVlZGVz
a3RvcC5vcmciCisgICAgICBocmVmPSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZyIvPgorICA8
cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJ3YXlsYW5kLmZyZWVkZXNrdG9wLm9yZyIK
KyAgICAgIGhyZWY9Imh0dHA6Ly93YXlsYW5kLmZyZWVkZXNrdG9wLm9yZyIvPgorICA8cmVwb3Np
dG9yeSB0eXBlPSJnaXQiIG5hbWU9ImdpdGh1Yi5jb20iCisgICAgICBocmVmPSJnaXQ6Ly9naXRo
dWIuY29tIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImdzdHJlYW1lciIK
KyAgICAgIGhyZWY9Imh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy8iLz4KKyAg
PHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0ieGtiY29tbW9uLm9yZyIKKyAgICAgIGhy
ZWY9Imh0dHA6Ly94a2Jjb21tb24ub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwi
IG5hbWU9InNhdmFubmFoLmdudS5vcmciCisgICAgICBocmVmPSJodHRwOi8vZG93bmxvYWQuc2F2
YW5uYWguZ251Lm9yZy9yZWxlYXNlcy8iLz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJmZmkiIGF1
dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGJyYW5jaCBtb2R1bGU9ImxpYmZmaS9saWJmZmkt
My4wLjEwLnRhci5neiIgdmVyc2lvbj0iMy4wLjEwIgorICAgICAgICAgICAgIHJlcG89InNvdXJj
ZXdhcmUub3JnLW1pcnJvciIKKyAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZjAxZWI5MDI3ZTll
YjU2YWVhZWVmNjM2NjQ5ODc3NzU2ZDQ3NWQ3MTRlZjhiNDdmNjI3ZjY1YmM1ZjNiNDkyZiIvPgor
ICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnbGliIgorICAgICAgICAgICAgIGF1
dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1kaXNhYmxl
LWR0cmFjZSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ibGliZmZp
Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUv
c291cmNlcy9nbGliLzIuNDQvZ2xpYi0yLjQ0LjEudGFyLnh6IiB2ZXJzaW9uPSIyLjQ0LjEiCisg
ICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2
Ojg4MTFkZWFjYWY4YTUwM2QwYTliNzAxNzc3ZWEwNzljYTZhNDI3N2JlMTBlM2Q3MzBkMjExMjcz
NWQ1ZWNhMDciPgorICAgICAgPHBhdGNoIGZpbGU9ImdsaWItd2FybmluZy1maXgucGF0Y2giIHN0
cmlwPSIxIi8+CisgICAgICA8cGF0Y2ggZmlsZT0iZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1h
dC1saXRlcmFsLXdhcm5pbmcucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwv
YXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWItbmV0d29ya2luZyI+CisgICAgPGRl
cGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgIDwvZGVwZW5kZW5j
aWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvZ2xpYi1uZXR3b3Jr
aW5nLzIuNDIvZ2xpYi1uZXR3b3JraW5nLTIuNDIuMC50YXIueHoiIHZlcnNpb249IjIuNDIuMCIK
KyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6MzA0ZGQ5ZTRjMGNlZDY5MDk0MzAwZTBiOWU2NmNkMmVhYWU3MTYxYjlmYzMxODY1MzZkMTE0
NTg2NzdkODIwZCIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJzb3Vw
IgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLXdpdGhvdXQtZ25vbWUgLS1kaXNhYmxlLWlu
dHJvc3BlY3Rpb24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9Imds
aWItbmV0d29ya2luZyIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxl
PSIvcHViL0dOT01FL3NvdXJjZXMvbGlic291cC8yLjQ4L2xpYnNvdXAtMi40OC4wLnRhci54eiIg
dmVyc2lvbj0iMi40OC4wIgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAg
ICAgICAgIGhhc2g9InNoYTI1NjplYTM0ZGQ2NGZlNDQzNDM0NDVkYWY2ZGQ2OTBkMDY5MWU5ZDk3
MzQ2OGRlNDQ4NzhkYTk3MzcxYzE2ZDg5Nzg0Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRv
dG9vbHMgaWQ9ImZvbnRzIiBzdXBwb3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iCisgICAgICAg
ICAgICAgc2tpcC1hdXRvZ2VuPSJ0cnVlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20i
IG1vZHVsZT0ibXJvYmluc29uL3dlYmtpdGd0ay10ZXN0LWZvbnRzLmdpdCIgY2hlY2tvdXRkaXI9
IndlYmtpdGd0ay10ZXN0LWZvbnRzIiB0YWc9IjAuMC41Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisg
IDxhdXRvdG9vbHMgaWQ9ImRpY3RzIiBzdXBwb3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iCisg
ICAgICAgICAgICAgc2tpcC1hdXRvZ2VuPSJ0cnVlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1
Yi5jb20iIG1vZHVsZT0ibXJvYmluc29uL3dlYmtpdGd0ay10ZXN0LWRpY3RzLmdpdCIgY2hlY2tv
dXRkaXI9IndlYmtpdGd0ay10ZXN0LWRpY3RzIiB0YWc9IjAuMC4xIi8+CisgIDwvYXV0b3Rvb2xz
PgorCisgIDxhdXRvdG9vbHMgaWQ9ImZyZWV0eXBlNiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4K
KyAgICA8YnJhbmNoIG1vZHVsZT0iZnJlZXR5cGUvZnJlZXR5cGUtMi40LjExLnRhci5iejIiIHZl
cnNpb249IjIuNC4xMSIKKyAgICAgICAgICAgIHJlcG89InNhdmFubmFoLmdudS5vcmciCisgICAg
ICAgICAgICBoYXNoPSJzaGEyNTY6ZWY5ZDBiY2I2NDY0N2Q5ZTUxMjVkYzc1MzRkN2NhMzcxYzk4
MzEwZmVjODc2NzdjNDEwZjM5N2Y3MWZmYmUzZiIKKyAgICAgICAgICAgIG1kNXN1bT0iYjkzNDM1
NDg4OTQyNDg2YzhkMGNhMjJlOGY3NjgwMzQiPgorICAgICAgPHBhdGNoIGZpbGU9ImZyZWV0eXBl
Ni0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoIiBzdHJpcD0iMSIvPgorICAg
IDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250Y29uZmln
IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVw
IHBhY2thZ2U9ImZyZWV0eXBlNiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2gg
bW9kdWxlPSJzb2Z0d2FyZS9mb250Y29uZmlnL3JlbGVhc2UvZm9udGNvbmZpZy0yLjExLjEudGFy
Lmd6IiB2ZXJzaW9uPSIyLjExLjEiCisgICAgICAgICAgICByZXBvPSJmcmVlZGVza3RvcC5vcmci
CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6YjZiMDY2YzdkY2UzZjQzNmZkYzBkZmJhZTlkMzYx
MjJiMzgwOTRmNGY1M2JkOGRmZmQ0NWUxOTViMDU0MGQ4ZCIKKyAgICAgICAgICAgIG1kNXN1bT0i
ZTc1ZTMwM2I0Zjc3NTZjMmIxNjIwM2E1N2FjODdlYmEiPgorICAgIDwvYnJhbmNoPgorICA8L2F1
dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJoYXJmYnV6eiIgYXV0b2dlbi1zaD0iY29uZmln
dXJlIgorICAgICAgICBhdXRvZ2VuYXJncz0iLS13aXRoLWNhaXJvPW5vIC0td2l0aC1nbGliPW5v
IC0td2l0aC1mcmVldHlwZT15ZXMiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBh
Y2thZ2U9ImZyZWV0eXBlNiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9k
dWxlPSJzb2Z0d2FyZS9oYXJmYnV6ei9yZWxlYXNlL2hhcmZidXp6LTEuMy4zLnRhci5iejIiCisg
ICAgICAgICAgICB2ZXJzaW9uPSIxLjMuMyIKKyAgICAgICAgICAgIGNoZWNrb3V0ZGlyPSJoYXJm
YnV6ei0xLjMuMyIKKyAgICAgICAgICAgIHJlcG89ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgICAg
ICAgIGhhc2g9InNoYTI1NjoyNjIwOTg3MTE1YTQxMjJiNDczMjE2MTBkY2NiY2MxOGY3ZjEyMTEx
NWZkN2I4OGRjOGE2OTVjOGI2NmNiM2M5IgorICAgICAgICAgICAgbWQ1c3VtPSI5N2FlMTVhNzJh
OTNmMWYyNzMyNGEyYjhkOWJkM2IxZCI+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgor
CisgIDxhdXRvdG9vbHMgaWQ9InBpeG1hbiIKKyAgICAgICAgICAgICBhdXRvZ2VuLXNoPSJjb25m
aWd1cmUiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0tZW5hYmxlLWd0az1ubyI+CisgICAg
PGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL3BpeG1hbi0wLjMyLjYudGFyLmd6IiB2ZXJzaW9uPSIw
LjMyLjYiCisgICAgICAgICAgICByZXBvPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAg
IGhhc2g9InNoYTI1NjozZGZlZDEzYjgwNjBlYWRhYmYwYTQ5NDVjNzA0NWI3NzkzY2M3ZTNlOTEw
ZTc0OGE4YmIwZjBkYzNlNzk0OTA0Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMg
aWQ9ImNhaXJvIiBhdXRvZ2VuYXJncz0iLS1lbmFibGUtZWdsPXllcyAtLWVuYWJsZS1nbGVzdjIi
PgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZm9udGNvbmZpZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJwaXhtYW4i
Lz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvY2Fp
cm8tMS4xNC44LnRhci54eiIgdmVyc2lvbj0iMS4xNC44IgorICAgICAgICAgICAgcmVwbz0iY2Fp
cm9ncmFwaGljcy5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGExOmM2ZjdiOTk5ODZmOTNjOWRm
Nzg2NTNjM2U2YTNiNTA0M2Y2NTE0NWUiPgorICAgICAgPHBhdGNoIGZpbGU9ImNhaXJvLWVnbC1k
ZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2Jy
YW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0ieGtiY29tbW9uIj4KKyAg
ICA8YnJhbmNoIG1vZHVsZT0iZG93bmxvYWQvbGlieGtiY29tbW9uLTAuNS4wLnRhci54eiIgdmVy
c2lvbj0iMC41LjAiCisgICAgICAgICAgICByZXBvPSJ4a2Jjb21tb24ub3JnIgorICAgICAgICAg
ICAgaGFzaD0ic2hhMTo3MTI3OTkzYmZiNjllMTNjZGZmMjVmYjhiM2M4ZjI2Y2U2YmU1YmZhIi8+
CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9IndheWxhbmQiIGF1dG9nZW5hcmdz
PSItLWRpc2FibGUtZG9jdW1lbnRhdGlvbiI+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2Vz
L3dheWxhbmQtMS45LjAudGFyLnh6IiB2ZXJzaW9uPSIxLjkuMCIKKyAgICAgICAgICAgIHJlcG89
IndheWxhbmQuZnJlZWRlc2t0b3Aub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjljODc3
MDcyMGFhMDAzNDQ3OTczNWY1OGE0ZGM0Y2E5YjE3MmVjZmVkZTI4ZjUxMzQzMTJlMTM1YjczMDFl
ZmEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0ib3JjIiBhdXRvZ2VuYXJn
cz0iLS1kaXNhYmxlLWd0ay1kb2MiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGJyYW5j
aCBtb2R1bGU9Im9yYy9vcmMtMC40LjE3LnRhci5neiIgdmVyc2lvbj0iMC40LjE3IgorICAgICAg
ICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjRmYzdjY2E0
OGM1OWZmZjIzYWZlZTc4ZmI2NDJjZGJkZTAwMWY1NjQwMWM4ZjQ3Yjk1YTE2NTc4ZDFkNWQ3ZTgi
CisgICAgICAgICAgICBtZDVzdW09ImFmMWJmM2RhYjllNjlmM2MzNmYzODkyODVlMmExMmExIi8+
CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdHJlYW1lciIgYXV0b2dlbi1z
aD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBl
bmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9Im9yYyIvPgorICAgIDwvZGVwZW5kZW5jaWVz
PgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7dmVyc2lvbn0udGFy
Lnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAg
ICAgICAgIGhhc2g9InNoYTI1Njo1YTM3MjJmYjkzMDJkZDk3N2MxN2NlZDQyNDAyOTNkYzc3N2Ni
NzE2ZGM5OGM4Y2NhNjNkNzVjMjdlNWUzMTA3IgorICAgICAgICAgICAgbWQ1c3VtPSI3MTFhZGE3
OWI2M2U0N2FjOTZhZGI0ZTU0NDRkYzkwOCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0cmVhbWVy
LXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNo
IiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rv
b2xzIGlkPSJnc3QtcGx1Z2lucy1iYXNlIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNvbmZp
Z3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlz
YWJsZS1ndGstZG9jIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJn
c3RyZWFtZXIiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0
LXBsdWdpbnMtYmFzZS9nc3QtcGx1Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9u
PSIxLjguMSIKKyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9
InNoYTI1NjoxNWE5ZGU5ODVjZDI2NWMzNDRlMzU5ZjViMTkzNDdkZjQwMjFiNzYxMWVkMmMyZDkx
OTE3Y2I5MDBmMmZhZDZmIgorICAgICAgICAgICAgbWQ1c3VtPSI1NDIxZWRmZWI3NDc5ZDVmNTc3
NmU5MTdiYTMwZTI0ZSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3Qt
cGx1Z2lucy1nb29kIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2Fi
bGUtZXhhbXBsZXMgLS1kaXNhYmxlLXNvdXAgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBl
bmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8
L2RlcGVuZGVuY2llcz4KKworICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1nb29kL2dz
dC1wbHVnaW5zLWdvb2QtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAg
ICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjIxMDNlMTc5
MjFkNjc4OTRlODJlYWZkZDY0ZmI5YjA2NTE4NTk5OTUyZmQ5M2U2MjViZmJjODNmZmVhZDA5NzIi
CisgICAgICAgICAgICBtZDVzdW09IjNlYWJlNzI3NzY4MWI5YmVmOGE2NGMzMTJkZTAzZDQ3Ij4K
KyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUt
dGltZS5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1n
b29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIu
cGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxh
dXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWJhZCIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRv
Z2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS1ndGstZG9jIC0tZGlzYWJsZS1p
bnRyb3NwZWN0aW9uIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJn
c3QtcGx1Z2lucy1iYXNlIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1
bGU9ImdzdC1wbHVnaW5zLWJhZC9nc3QtcGx1Z2lucy1iYWQtJHt2ZXJzaW9ufS50YXIueHoiIHZl
cnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAg
aGFzaD0ic2hhMjU2OjBiYmQ1OGYzNjM3MzRmYzBjNGE2MjBiMmQ2ZmIwMWQ0MjdmZGFmZGJkYTdi
OTBiNGUxNWQwM2I3NTFjYTQwZjUiCisgICAgICAgICAgICBtZDVzdW09ImU1MDhkYTJhOGE1YzNk
MTIyNjRmZTM0MTViZTJmNDUxIj4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1iYWQt
MDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAg
IDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVy
cm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwv
YnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtbGliYXYiIGF1
dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0td2l0aC1saWJhdi1leHRyYS1jb25m
aWd1cmU9Jy0tZGlzYWJsZS15YXNtJyAtLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRlcGVuZGVu
Y2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAgIDwvZGVw
ZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtbGliYXYvZ3N0LWxpYmF2LSR7dmVy
c2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1l
ciIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo0NGE0OTEwOGMzNTMxYjVhYzRmMzQ2YTIyNDdj
ZDdmYmFmYjBlOGFiMzk0Mzk0Y2I2ZDc1YTcwMzAwYjM4OTMzIgorICAgICAgICAgICAgbWQ1c3Vt
PSI4NWYxYTA0NzYwNmNhOWUwODQ5M2Q3YjZiNDJkZjQ2MiIvPgorICA8L2F1dG90b29scz4KKwor
ICA8Y21ha2UgaWQ9IndwZSI+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9
IldlYlBsYXRmb3JtRm9yRW1iZWRkZWQvV1BFQmFja2VuZC5naXQiCisgICAgICAgICAgICB0YWc9
IjVlMmEyOWQyY2NjNjM3ZjcxMjJiYTcyYzFkNjJlZjY2OWI0MmYwNWMiIC8+CisgIDwvY21ha2U+
CisKKyAgPGNtYWtlIGlkPSJ3cGUtbWVzYSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0id3BlIiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIiAvPgorICAgICAg
PGRlcCBwYWNrYWdlPSJ3YXlsYW5kIiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24i
IC8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBt
b2R1bGU9IldlYlBsYXRmb3JtRm9yRW1iZWRkZWQvV1BFQmFja2VuZC1tZXNhLmdpdCIKKyAgICAg
ICAgICAgIHRhZz0iOTk0NTc1M2Y5MzM3ZmQ2N2FmMDk4MjE4Yjc4MTkzMzdhYmEyMTE0MSIgLz4K
KyAgPC9jbWFrZT4KKzwvbW9kdWxlc2V0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGRy
YyBiL1Rvb2xzL3dwZS9qaGJ1aWxkcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmUyZmE4OGQ3MmE5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2poYnVpbGRy
YwpAQCAtMCwwICsxLDI1IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIwor
IyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg
TUEgIDAyMTEwLTEzMDEgIFVTQQorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKworc3lzLnBhdGgu
aW5zZXJ0KDAsIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4vamhi
dWlsZCIpICkKK2ltcG9ydCBqaGJ1aWxkcmNfY29tbW9uCitqaGJ1aWxkcmNfY29tbW9uLmluaXQo
Z2xvYmFscygpLCAid3BlIikKKyMgRW5hYmxlIGJ1aWxkZGlyICE9IHNyY2RpciBidWlsZHMuCiti
dWlsZHJvb3QgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKGNoZWNrb3V0cm9vdCksICJC
dWlsZCIpCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNy
ZWF0ZS1mb3ItZWdsLXN1cmZhY2UucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wt
ZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmQ0NmRmNDViNmYzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
d3BlL3BhdGNoZXMvY2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNo
CkBAIC0wLDAgKzEsMTMzIEBACitGcm9tIGE0ZTBkYWYxOGJmODI1MjQ2M2Y2NmQ3NWVlZjQ5OWNm
ZmZhMzI1NjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBaYW4gRG9iZXJzZWsgPHpk
b2JlcnNla0BpZ2FsaWEuY29tPgorRGF0ZTogTW9uLCAxNyBOb3YgMjAxNCAwMToyMzoxNSAtMDgw
MAorU3ViamVjdDogW1BBVENIXSBBZGQgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGVfZm9yX2VnbF9z
dXJmYWNlKCkuCisKKy0tLQorIHNyYy9jYWlyby1lZ2wtY29udGV4dC5jIHwgNjYgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQorIHNyYy9jYWlyby1nbC5o
ICAgICAgICAgIHwgIDMgKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA5
IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgYi9z
cmMvY2Fpcm8tZWdsLWNvbnRleHQuYworaW5kZXggYmY3MDRjNi4uYmUyYmNmOSAxMDA2NDQKKy0t
LSBhL3NyYy9jYWlyby1lZ2wtY29udGV4dC5jCisrKysgYi9zcmMvY2Fpcm8tZWdsLWNvbnRleHQu
YworQEAgLTQ4LDcgKzQ4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX2VnbF9jb250ZXh0IHsK
KyAgICAgRUdMRGlzcGxheSBkaXNwbGF5OworICAgICBFR0xDb250ZXh0IGNvbnRleHQ7CisgCist
ICAgIEVHTFN1cmZhY2UgZHVtbXlfc3VyZmFjZTsKKysgICAgRUdMU3VyZmFjZSBzdXJmYWNlOwor
KyAgICBjYWlyb19ib29sX3QgaXNfZHVtbXlfc3VyZmFjZTsKKyAKKyAgICAgRUdMQ29udGV4dCBw
cmV2aW91c19jb250ZXh0OworICAgICBFR0xTdXJmYWNlIHByZXZpb3VzX3N1cmZhY2U7CitAQCAt
NzQsNyArNzUsNyBAQCBfZWdsX2dldF9jdXJyZW50X3N1cmZhY2UgKGNhaXJvX2VnbF9jb250ZXh0
X3QgKmN0eCkKKyB7CisgICAgIGlmIChjdHgtPmJhc2UuY3VycmVudF90YXJnZXQgPT0gTlVMTCB8
fAorICAgICAgICAgX2NhaXJvX2dsX3N1cmZhY2VfaXNfdGV4dHVyZSAoY3R4LT5iYXNlLmN1cnJl
bnRfdGFyZ2V0KSkgeworLQlyZXR1cm4gIGN0eC0+ZHVtbXlfc3VyZmFjZTsKKysJcmV0dXJuICBj
dHgtPnN1cmZhY2U7CisgICAgIH0KKyAKKyAgICAgcmV0dXJuICgoY2Fpcm9fZWdsX3N1cmZhY2Vf
dCAqKSBjdHgtPmJhc2UuY3VycmVudF90YXJnZXQpLT5lZ2w7CitAQCAtMTUxLDggKzE1Miw4IEBA
IF9lZ2xfZGVzdHJveSAodm9pZCAqYWJzdHJhY3RfY3R4KQorIAorICAgICBlZ2xNYWtlQ3VycmVu
dCAoY3R4LT5kaXNwbGF5LAorIAkJICAgIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwg
RUdMX05PX0NPTlRFWFQpOworLSAgICBpZiAoY3R4LT5kdW1teV9zdXJmYWNlICE9IEVHTF9OT19T
VVJGQUNFKQorLSAgICAgICAgZWdsRGVzdHJveVN1cmZhY2UgKGN0eC0+ZGlzcGxheSwgY3R4LT5k
dW1teV9zdXJmYWNlKTsKKysgICAgaWYgKGN0eC0+aXNfZHVtbXlfc3VyZmFjZSAmJiBjdHgtPnN1
cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCisrICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4
LT5kaXNwbGF5LCBjdHgtPnN1cmZhY2UpOworIH0KKyAKKyBzdGF0aWMgY2Fpcm9fYm9vbF90CitA
QCAtMjE4LDEzICsyMTksMTQgQEAgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkg
ZHB5LCBFR0xDb250ZXh0IGVnbCkKKyAJZWdsUXVlcnlDb250ZXh0IChkcHksIGVnbCwgRUdMX0NP
TkZJR19JRCwgJmNvbmZpZ19hdHRyaWJzWzFdKTsKKyAJZWdsQ2hvb3NlQ29uZmlnIChkcHksIGNv
bmZpZ19hdHRyaWJzLCAmY29uZmlnLCAxLCAmbnVtQ29uZmlncyk7CisgCistCWN0eC0+ZHVtbXlf
c3VyZmFjZSA9IGVnbENyZWF0ZVBidWZmZXJTdXJmYWNlIChkcHksIGNvbmZpZywgYXR0cmlicyk7
CistCWlmIChjdHgtPmR1bW15X3N1cmZhY2UgPT0gTlVMTCkgeworKwljdHgtPmlzX2R1bW15X3N1
cmZhY2UgPSBUUlVFOworKwljdHgtPnN1cmZhY2UgPSBlZ2xDcmVhdGVQYnVmZmVyU3VyZmFjZSAo
ZHB5LCBjb25maWcsIGF0dHJpYnMpOworKwlpZiAoY3R4LT5zdXJmYWNlID09IE5VTEwpIHsKKyAJ
ICAgIGZyZWUgKGN0eCk7CisgCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2lu
X2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKyAJfQorIAorLQlpZiAoIWVnbE1ha2VD
dXJyZW50IChkcHksIGN0eC0+ZHVtbXlfc3VyZmFjZSwgY3R4LT5kdW1teV9zdXJmYWNlLCBlZ2wp
KSB7CisrCWlmICghZWdsTWFrZUN1cnJlbnQgKGRweSwgY3R4LT5zdXJmYWNlLCBjdHgtPnN1cmZh
Y2UsIGVnbCkpIHsKKyAJICAgIGZyZWUgKGN0eCk7CisgCSAgICByZXR1cm4gX2NhaXJvX2dsX2Nv
bnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKyAJfQorQEAg
LTIzOCw4ICsyNDAsNTQgQEAgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5
LCBFR0xDb250ZXh0IGVnbCkKKyAKKyAgICAgc3RhdHVzID0gX2NhaXJvX2dsX2NvbnRleHRfaW5p
dCAoJmN0eC0+YmFzZSk7CisgICAgIGlmICh1bmxpa2VseSAoc3RhdHVzKSkgeworLQlpZiAoY3R4
LT5kdW1teV9zdXJmYWNlICE9IEVHTF9OT19TVVJGQUNFKQorLQkgICAgZWdsRGVzdHJveVN1cmZh
Y2UgKGRweSwgY3R4LT5kdW1teV9zdXJmYWNlKTsKKysJaWYgKGN0eC0+c3VyZmFjZSAhPSBFR0xf
Tk9fU1VSRkFDRSkKKysJICAgIGVnbERlc3Ryb3lTdXJmYWNlIChkcHksIGN0eC0+c3VyZmFjZSk7
CisrCWZyZWUgKGN0eCk7CisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJy
b3IgKHN0YXR1cyk7CisrICAgIH0KKysKKysgICAgZWdsTWFrZUN1cnJlbnQgKGRweSwgRUdMX05P
X1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CisrCisrICAgIHJldHVy
biAmY3R4LT5iYXNlLmJhc2U7CisrfQorKworK2NhaXJvX2RldmljZV90ICoKKytjYWlyb19lZ2xf
ZGV2aWNlX2NyZWF0ZV9mb3JfZWdsX3N1cmZhY2UgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0
IGVnbCwgRUdMU3VyZmFjZSBzdXJmYWNlKQorK3sKKysgICAgY2Fpcm9fZWdsX2NvbnRleHRfdCAq
Y3R4OworKyAgICBjYWlyb19zdGF0dXNfdCBzdGF0dXM7CisrCisrICAgIGN0eCA9IGNhbGxvYyAo
MSwgc2l6ZW9mIChjYWlyb19lZ2xfY29udGV4dF90KSk7CisrICAgIGlmICh1bmxpa2VseSAoY3R4
ID09IE5VTEwpKQorKwlyZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChD
QUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKysKKysgICAgY3R4LT5kaXNwbGF5ID0gZHB5OworKyAg
ICBjdHgtPmNvbnRleHQgPSBlZ2w7CisrICAgIGN0eC0+c3VyZmFjZSA9IHN1cmZhY2U7CisrCisr
ICAgIGN0eC0+YmFzZS5hY3F1aXJlID0gX2VnbF9hY3F1aXJlOworKyAgICBjdHgtPmJhc2UucmVs
ZWFzZSA9IF9lZ2xfcmVsZWFzZTsKKysgICAgY3R4LT5iYXNlLm1ha2VfY3VycmVudCA9IF9lZ2xf
bWFrZV9jdXJyZW50OworKyAgICBjdHgtPmJhc2Uuc3dhcF9idWZmZXJzID0gX2VnbF9zd2FwX2J1
ZmZlcnM7CisrICAgIGN0eC0+YmFzZS5kZXN0cm95ID0gX2VnbF9kZXN0cm95OworKworKyAgICAv
KiBXZSBhcmUgYWJvdXQgdGhlIGNoYW5nZSB0aGUgY3VycmVudCBzdGF0ZSBvZiBFR0wsIHNvIHdl
IHNob3VsZAorKyAgICAgKiBxdWVyeSB0aGUgcHJlLWV4aXN0aW5nIHN1cmZhY2Ugbm93IGluc3Rl
YWQgb2YgbGF0ZXIuICovCisrICAgIF9lZ2xfcXVlcnlfY3VycmVudF9zdGF0ZSAoY3R4KTsKKysK
KysJaWYgKCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBzdXJmYWNlLCBzdXJmYWNlLCBlZ2wpKSB7Cisr
CSAgICBmcmVlIChjdHgpOworKwkgICAgcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9p
bl9lcnJvciAoQ0FJUk9fU1RBVFVTX05PX01FTU9SWSk7CisrCX0KKysKKysgICAgc3RhdHVzID0g
X2NhaXJvX2dsX2Rpc3BhdGNoX2luaXQgKCZjdHgtPmJhc2UuZGlzcGF0Y2gsIGVnbEdldFByb2NB
ZGRyZXNzKTsKKysgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CisrCWZyZWUgKGN0eCk7Cisr
CXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisrICAg
IH0KKysKKysgICAgc3RhdHVzID0gX2NhaXJvX2dsX2NvbnRleHRfaW5pdCAoJmN0eC0+YmFzZSk7
CisrICAgIGlmICh1bmxpa2VseSAoc3RhdHVzKSkgeworIAlmcmVlIChjdHgpOworIAlyZXR1cm4g
X2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChzdGF0dXMpOworICAgICB9CitkaWZm
IC0tZ2l0IGEvc3JjL2NhaXJvLWdsLmggYi9zcmMvY2Fpcm8tZ2wuaAoraW5kZXggOWZkNzYwOC4u
YTk0ZjU4MSAxMDA2NDQKKy0tLSBhL3NyYy9jYWlyby1nbC5oCisrKysgYi9zcmMvY2Fpcm8tZ2wu
aAorQEAgLTEzMiw2ICsxMzIsOSBAQCBjYWlyb19nbF9zdXJmYWNlX2NyZWF0ZV9mb3JfZGMgKGNh
aXJvX2RldmljZV90CQkqZGV2aWNlLAorIGNhaXJvX3B1YmxpYyBjYWlyb19kZXZpY2VfdCAqCisg
Y2Fpcm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCk7
CisgCisrY2Fpcm9fcHVibGljIGNhaXJvX2RldmljZV90ICoKKytjYWlyb19lZ2xfZGV2aWNlX2Ny
ZWF0ZV9mb3JfZWdsX3N1cmZhY2UgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCwgRUdM
U3VyZmFjZSBzdXJmYWNlKTsKKysKKyBjYWlyb19wdWJsaWMgY2Fpcm9fc3VyZmFjZV90ICoKKyBj
YWlyb19nbF9zdXJmYWNlX2NyZWF0ZV9mb3JfZWdsIChjYWlyb19kZXZpY2VfdAkqZGV2aWNlLAor
IAkJCQkgRUdMU3VyZmFjZQkgZWdsLApkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZm9u
dGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlm
aWVyLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEt
c3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNGUwYTU0MWRiYwotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL3dwZS9wYXRjaGVzL2ZvbnRjb25maWctQy0xMS1yZXF1aXJlcy1hLXNwYWNlLWJldHdl
ZW4tbGl0ZXJhbC1hbmQtaWRlbnRpZmllci5wYXRjaApAQCAtMCwwICsxLDMwIEBACitGcm9tIDcw
NjlkNzE3ZTk4MmFkY2Y4ZTFkMzAwY2JkMTBlZWM2MzIyYTY1YzkgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCitGcm9tOiBBa2lyYSBUQUdPSCA8YWtpcmFAdGFnb2gub3JnPgorRGF0ZTogU3VuLCAy
MiBBcHIgMjAxMiAyMTo0MDo0NCArMDkwMAorU3ViamVjdDogW1BBVENIXSBDKysxMSByZXF1aXJl
cyBhIHNwYWNlIGJldHdlZW4gbGl0ZXJhbCBhbmQgaWRlbnRpZmllcgorCitSZXBvcnRlZCBieSBC
dWdhbmluaQorLS0tCisgZm9udGNvbmZpZy9mb250Y29uZmlnLmggfCA2ICsrKy0tLQorIDEgZmls
ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg
YS9mb250Y29uZmlnL2ZvbnRjb25maWcuaCBiL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oCitpbmRl
eCAwZTJjYTUwLi5iMjdjY2I1IDEwMDY0NAorLS0tIGEvZm9udGNvbmZpZy9mb250Y29uZmlnLmgK
KysrKyBiL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oCitAQCAtMTEyLDkgKzExMiw5IEBAIHR5cGVk
ZWYgaW50CQlGY0Jvb2w7CisgI2RlZmluZSBGQ19ERUNPUkFUSVZFCSAgICAiZGVjb3JhdGl2ZSIJ
LyogQm9vbCAtIHRydWUgaWYgc3R5bGUgaXMgYSBkZWNvcmF0aXZlIHZhcmlhbnQgKi8KKyAjZGVm
aW5lIEZDX0xDRF9GSUxURVIJICAgICJsY2RmaWx0ZXIiCQkvKiBJbnQgKi8KKyAKKy0jZGVmaW5l
IEZDX0NBQ0hFX1NVRkZJWAkJICAgICIuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKy0jZGVmaW5l
IEZDX0RJUl9DQUNIRV9GSUxFCSAgICAiZm9udHMuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKy0j
ZGVmaW5lIEZDX1VTRVJfQ0FDSEVfRklMRQkgICAgIi5mb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVS
U0lPTgorKyNkZWZpbmUgRkNfQ0FDSEVfU1VGRklYCQkgICAgIi5jYWNoZS0iIEZDX0NBQ0hFX1ZF
UlNJT04KKysjZGVmaW5lIEZDX0RJUl9DQUNIRV9GSUxFCSAgICAiZm9udHMuY2FjaGUtIiBGQ19D
QUNIRV9WRVJTSU9OCisrI2RlZmluZSBGQ19VU0VSX0NBQ0hFX0ZJTEUJICAgICIuZm9udHMuY2Fj
aGUtIiBGQ19DQUNIRV9WRVJTSU9OCisgCisgLyogQWRqdXN0IG91dGxpbmUgcmFzdGVyaXplciAq
LworICNkZWZpbmUgRkNfQ0hBUl9XSURUSAkgICAgImNoYXJ3aWR0aCIJLyogSW50ICovCistLSAK
KzEuOC4zLjIKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZnJlZXR5cGU2LTIuNC4x
MS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mcmVl
dHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGZmZTc2YjRlZjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0
LWZpeC5wYXRjaApAQCAtMCwwICsxLDM5IEBACitGcm9tIGUwNDY5MzcyYmUzODcwYTVhZDYwYjJj
NDU4NmU5YzI4MTM1N2JkMjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBXZXJuZXIg
TGVtYmVyZyA8d2xAZ251Lm9yZz4KK0RhdGU6IFR1ZSwgMjIgSmFuIDIwMTMgMTA6MDc6MDcgKzAw
MDAKK1N1YmplY3Q6IFt0cnVldHlwZV0gRml4IGZvbnQgaGVpZ2h0LgorCisqIHNyYy90cnVldHlw
ZS90dG9ianMuYyAodHRfc2l6ZV9yZXNldCk6IFRoZSBXaW5kb3dzIHJlbmRlcmluZworZW5naW5l
IHVzZXMgcm91bmRlZCB2YWx1ZXMgb2YgdGhlIGFzY2VuZGVyIGFuZCBkZXNjZW5kZXIgdG8gY29t
cHV0ZQordGhlIFRydWVUeXBlIGZvbnQgaGVpZ2h0LgorLS0tCitkaWZmIC0tZ2l0IGEvc3JjL3Ry
dWV0eXBlL3R0b2Jqcy5jIGIvc3JjL3RydWV0eXBlL3R0b2Jqcy5jCitpbmRleCBjNjFiMjE4Li41
OTBiNjZjIDEwMDY0NAorLS0tIGEvc3JjL3RydWV0eXBlL3R0b2Jqcy5jCisrKysgYi9zcmMvdHJ1
ZXR5cGUvdHRvYmpzLmMKK0BAIC00LDcgKzQsNyBAQAorIC8qICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisg
LyogICAgT2JqZWN0cyBtYW5hZ2VyIChib2R5KS4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLS8qICBDb3B5cmln
aHQgMTk5Ni0yMDEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCisrLyogIENvcHlyaWdodCAxOTk2LTIwMTMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgRGF2aWQgVHVybmVyLCBSb2Jl
cnQgV2lsaGVsbSwgYW5kIFdlcm5lciBMZW1iZXJnLiAgICAgICAgICAgICAgICAgICAgICAqLwor
IC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCisgLyogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBGcmVl
VHlwZSBwcm9qZWN0LCBhbmQgbWF5IG9ubHkgYmUgdXNlZCwgICAgICAgKi8KK0BAIC0xMTc3LDEx
ICsxMTc3LDEyIEBACisgICAgICAgICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9v
dC5hc2NlbmRlciwgbWV0cmljcy0+eV9zY2FsZSApICk7CisgICAgICAgbWV0cmljcy0+ZGVzY2Vu
ZGVyID0KKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5yb290LmRlc2Nl
bmRlciwgbWV0cmljcy0+eV9zY2FsZSApICk7CistICAgICAgbWV0cmljcy0+aGVpZ2h0ID0KKy0g
ICAgICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5yb290LmhlaWdodCwgbWV0cmlj
cy0+eV9zY2FsZSApICk7CisgICAgICAgbWV0cmljcy0+bWF4X2FkdmFuY2UgPQorICAgICAgICAg
RlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QubWF4X2FkdmFuY2Vfd2lkdGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0cmljcy0+eF9zY2FsZSApICk7Cisr
CisrICAgICAgLyogdGhlIGhlaWdodCBpcyBkZXJpdmVkIGZyb20gcm91bmRlZCB2YWx1ZXMgKi8K
KysgICAgICBtZXRyaWNzLT5oZWlnaHQgPSBtZXRyaWNzLT5hc2NlbmRlciAtIG1ldHJpY3MtPmRl
c2NlbmRlcjsKKyAgICAgfQorIAorICAgICAvKiBjb21wdXRlIG5ldyB0cmFuc2Zvcm1hdGlvbiAq
LworLS0KK2NnaXQgdjAuOS4wLjIKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dkYXRl
LXN1cHByZXNzLXN0cmluZy1mb3JtYXQtbGl0ZXJhbC13YXJuaW5nLnBhdGNoIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0
Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkwY2I5NTFhMTljCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5n
LWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSAzYTdl
ZmQ1OThkMzkzNjZjMmM5ZGUwZGVmMmZkZmIzNWU1ZTlmMmExIE1vbiBTZXAgMTcgMDA6MDA6MDAg
MjAwMQorRnJvbTogY295cHUgPGNveXB1QHNkZi5vcmc+CitEYXRlOiBNb24sIDggRmViIDIwMTYg
MDA6MDY6MDYgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzFdIGdkYXRlOiBTdXBwcmVzcyBzdHJp
bmcgZm9ybWF0IGxpdGVyYWwgd2FybmluZworCitOZXdlciB2ZXJzaW9ucyBvZiBHQ0MgZW1pdCBh
biBlcnJvciBoZXJlLCBidXQgd2Uga25vdyBpdCdzIHNhZmUuCitodHRwczovL2J1Z3ppbGxhLmdu
b21lLm9yZy83NjE1NTAKKy0tLQorIGdsaWIvZ2RhdGUuYyB8IDMgKysrCisgMSBmaWxlIGNoYW5n
ZWQsIDMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ2xpYi9nZGF0ZS5jIGIvZ2xpYi9n
ZGF0ZS5jCitpbmRleCA0YWVjZTAyLi5jZGM3MzVjIDEwMDY0NAorLS0tIGEvZ2xpYi9nZGF0ZS5j
CisrKysgYi9nbGliL2dkYXRlLmMKK0BAIC0yNDk0LDcgKzI0OTQsMTAgQEAgZ19kYXRlX3N0cmZ0
aW1lIChnY2hhciAgICAgICAqcywKKyAgICAgICAgKiByZWNvZ25pemUgd2hldGhlciBzdHJmdGlt
ZSBhY3R1YWxseSBmYWlsZWQgb3IganVzdCByZXR1cm5lZCAiIi4KKyAgICAgICAgKi8KKyAgICAg
ICB0bXBidWZbMF0gPSAnXDEnOworKyAgICAgICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAor
KyAgICAgICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJh
bCIKKyAgICAgICB0bXBsZW4gPSBzdHJmdGltZSAodG1wYnVmLCB0bXBidWZzaXplLCBsb2NhbGVf
Zm9ybWF0LCAmdG0pOworKyAgICAgICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgCisgICAg
ICAgaWYgKHRtcGxlbiA9PSAwICYmIHRtcGJ1ZlswXSAhPSAnXDAnKQorICAgICAgICAgeworLS0g
CisyLjcuMAorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4
LnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGZhZjRkMTFmMmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoCkBAIC0wLDAg
KzEsMzQgQEAKK0Zyb20gOWY5MGVlNWVlY2NkNDdmMzljN2EwM2RjZDc4NmIxMjVhMTljMTk1ZCBN
b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56
YXJvQGdub21lLm9yZz4KK0RhdGU6IFNhdCwgMTMgSnVuIDIwMTUgMjI6NTI6MzMgLTA1MDAKK1N1
YmplY3Q6IFtQQVRDSF0gZ2VubWFyc2hhbDogc2lsZW5jZSByZWdpc3RlciBzdG9yYWdlIGNsYXNz
IHdhcm5pbmdzCisKK1VzaW5nIHRoZSByZWdpc3RlciBrZXl3b3JkIHRyaWdnZXJzIHdhcm5pbmdz
IG9uIG5vdGV3b3J0aHkgY29tcGlsZXJzCisoY2xhbmcpLCBzaW5jZSBpdCdzIGRlcHJlY2F0ZWQg
aW4gQysrIGFuZCBhdCBkYW5nZXIgb2YgYmVpbmcgcmVtb3ZlZAorZnJvbSB0aGUgbGFuZ3VhZ2Uu
IFRoZXJlIGlzIG5vIHJlYXNvbiB0byB1c2UgaXQgc2luY2UgaXQgaXNuJ3QgMTk4MAorYW55bW9y
ZS4KKworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDkxOAor
LS0tCisgZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYyB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5n
ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dvYmpl
Y3QvZ2xpYi1nZW5tYXJzaGFsLmMgYi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitpbmRleCBi
ZTQxNTFhLi5jYTc4YTZmIDEwMDY0NAorLS0tIGEvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYwor
KysrIGIvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYworQEAgLTQxMiw5ICs0MTIsOSBAQCBnZW5l
cmF0ZV9tYXJzaGFsIChjb25zdCBnY2hhciAqc2lnbmFtZSwKKyAgICAgICBnX2ZwcmludGYgKGZv
dXQsICIlcyVzIGRhdGEyKTtcbiIsIGluZGVudCAoaW5kKSwgcGFkICgiZ3BvaW50ZXIiKSk7Cisg
CisgICAgICAgLyogY2ZpbGUgbWFyc2hhbCB2YXJpYWJsZXMgKi8KKy0gICAgICBnX2ZwcmludGYg
KGZvdXQsICIgIHJlZ2lzdGVyIEdNYXJzaGFsRnVuY18lcyBjYWxsYmFjaztcbiIsIHNpZ25hbWUp
OworLSAgICAgIGdfZnByaW50ZiAoZm91dCwgIiAgcmVnaXN0ZXIgR0NDbG9zdXJlICpjYyA9IChH
Q0Nsb3N1cmUqKSBjbG9zdXJlO1xuIik7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdp
c3RlciBncG9pbnRlciBkYXRhMSwgZGF0YTI7XG4iKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQs
ICIgIEdNYXJzaGFsRnVuY18lcyBjYWxsYmFjaztcbiIsIHNpZ25hbWUpOworKyAgICAgIGdfZnBy
aW50ZiAoZm91dCwgIiAgR0NDbG9zdXJlICpjYyA9IChHQ0Nsb3N1cmUqKSBjbG9zdXJlO1xuIik7
CisrICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICBncG9pbnRlciBkYXRhMSwgZGF0YTI7XG4iKTsK
KyAgICAgICBpZiAoc2lnLT5yYXJnLT5zZXR0ZXIpCisgCWdfZnByaW50ZiAoZm91dCwgIiAgJXMg
dl9yZXR1cm47XG4iLCBzaWctPnJhcmctPmN0eXBlKTsKKyAKKy0tIAorMi40LjIKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaCBiL1Rvb2xzL3dw
ZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4w
LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZDEwNjRlZDVl
OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0w
MDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoCkBAIC0wLDAgKzEsMjM2IEBACitG
cm9tIGU5Mzg5MzMxNjdjNDk0Y2RjYTQ0MzMzNGY2NThiMDJhMDNjNDQ4NmIgTW9uIFNlcCAxNyAw
MDowMDowMCAyMDAxCitGcm9tOiBEYWlraSBVZW5vIDxkdWVub0ByZWRoYXQuY29tPgorRGF0ZTog
V2VkLCAyNiBPY3QgMjAxNiAxNDo1MTowMSArMDIwMAorU3ViamVjdDogW1BBVENIXSBkdGxzOiBw
b3J0IHRvIE9wZW5TU0wgMS4xLjAKKworQ2hhbmdlcyBhcmU6CisKKy0gVXNlIHRoZSB3cmFwcGVy
IGZ1bmN0aW9ucyB0byBhY2Nlc3Mgb3BhcXVlIGRhdGEgdHlwZXMuICBUbyBwcmVzZXJ2ZQorICBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5LCBkZWZpbmUgZmFsbGJhY2sgZGVmaW5pdGlvbnMKKworLSBS
ZW1vdmUgdGhlIHVzZSBvZiBpZGlvbSAicHF1ZXVlX3NpemUoc3NsLT5kMS0+c2VudF9tZXNzYWdl
cykiLCBzaW5jZQorICB0aGVyZSBpcyBubyByZXBsYWNlbWVudAorCistIFVzZSBSU0FfZ2VuZXJh
dGVfa2V5X2V4IGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQgUlNBX2dlbmVyYXRlX2tleQorCito
dHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNTQwCistLS0KKyBl
eHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyB8IDE1ICsrKysrKysrCisgZXh0L2R0bHMvZ3N0
ZHRsc2Nvbm5lY3Rpb24uYyAgfCA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKy0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9u
cygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMgYi9leHQv
ZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworaW5kZXggOTVmYmI4My4uYzFjOTYwMiAxMDA2NDQK
Ky0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCisrKysgYi9leHQvZHRscy9nc3Rk
dGxzY2VydGlmaWNhdGUuYworQEAgLTE5OSw3ICsxOTksMjIgQEAgaW5pdF9nZW5lcmF0ZWQgKEdz
dER0bHNDZXJ0aWZpY2F0ZSAqIHNlbGYpCisgICAgIHByaXYtPnByaXZhdGVfa2V5ID0gTlVMTDsK
KyAgICAgcmV0dXJuOworICAgfQorKworKyAgLyogWFhYOiBSU0FfZ2VuZXJhdGVfa2V5IGlzIGFj
dHVhbGx5IGRlcHJlY2F0ZWQgaW4gMC45LjggKi8KKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJF
UiA8IDB4MTAxMDAwMDFMCisgICByc2EgPSBSU0FfZ2VuZXJhdGVfa2V5ICgyMDQ4LCBSU0FfRjQs
IE5VTEwsIE5VTEwpOworKyNlbHNlCisrICByc2EgPSBSU0FfbmV3ICgpOworKyAgaWYgKHJzYSAh
PSBOVUxMKSB7CisrICAgIEJJR05VTSAqZSA9IEJOX25ldyAoKTsKKysgICAgaWYgKGUgIT0gTlVM
TCAmJiBCTl9zZXRfd29yZCAoZSwgUlNBX0Y0KQorKyAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tl
eV9leCAocnNhLCAyMDQ4LCBlLCBOVUxMKSkgeworKyAgICAgIFJTQV9mcmVlIChyc2EpOworKyAg
ICAgIHJzYSA9IE5VTEw7CisrICAgIH0KKysgICAgQk5fZnJlZSAoZSk7CisrICB9CisrI2VuZGlm
CisgCisgICBpZiAoIXJzYSkgeworICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsICJmYWls
ZWQgdG8gZ2VuZXJhdGUgUlNBIik7CitkaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5l
Y3Rpb24uYyBiL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKK2luZGV4IDM2ZjZkNjMuLjcy
OGY1YTcgMTAwNjQ0CistLS0gYS9leHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jCisrKysgYi9l
eHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jCitAQCAtNDIsNiArNDIsOCBAQAorICNpbmNsdWRl
IDxvcGVuc3NsL2Vyci5oPgorICNpbmNsdWRlIDxvcGVuc3NsL3NzbC5oPgorIAorKyNpbmNsdWRl
IDxzdHJpbmcuaD4KKysKKyBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIChnc3RfZHRsc19jb25u
ZWN0aW9uX2RlYnVnKTsKKyAjZGVmaW5lIEdTVF9DQVRfREVGQVVMVCBnc3RfZHRsc19jb25uZWN0
aW9uX2RlYnVnCisgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKEdzdER0bHNDb25uZWN0aW9uLCBn
c3RfZHRsc19jb25uZWN0aW9uLCBHX1RZUEVfT0JKRUNULAorQEAgLTIxNiw2ICsyMTgsMzggQEAg
Z3N0X2R0bHNfY29ubmVjdGlvbl9maW5hbGl6ZSAoR09iamVjdCAqIGdvYmplY3QpCisgICBHX09C
SkVDVF9DTEFTUyAoZ3N0X2R0bHNfY29ubmVjdGlvbl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAo
Z29iamVjdCk7CisgfQorIAorKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAw
MUwKKytzdGF0aWMgdm9pZAorK0JJT19zZXRfZGF0YSAoQklPICogYmlvLCB2b2lkICpwdHIpCisr
eworKyAgYmlvLT5wdHIgPSBwdHI7CisrfQorKworK3N0YXRpYyB2b2lkICoKKytCSU9fZ2V0X2Rh
dGEgKEJJTyAqIGJpbykKKyt7CisrICByZXR1cm4gYmlvLT5wdHI7CisrfQorKworK3N0YXRpYyB2
b2lkCisrQklPX3NldF9zaHV0ZG93biAoQklPICogYmlvLCBpbnQgc2h1dGRvd24pCisreworKyAg
YmlvLT5zaHV0ZG93biA9IHNodXRkb3duOworK30KKysKKytzdGF0aWMgdm9pZAorK0JJT19zZXRf
aW5pdCAoQklPICogYmlvLCBpbnQgaW5pdCkKKyt7CisrICBiaW8tPmluaXQgPSBpbml0OworK30K
KysKKytzdGF0aWMgWDUwOSAqCisrWDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0IChYNTA5X1NUT1JF
X0NUWCAqIGN0eCkKKyt7CisrICByZXR1cm4gY3R4LT5jZXJ0OworK30KKysjZW5kaWYKKysKKyBz
dGF0aWMgdm9pZAorIGdzdF9kdGxzX2Nvbm5lY3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICog
b2JqZWN0LCBndWludCBwcm9wX2lkLAorICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFt
U3BlYyAqIHBzcGVjKQorQEAgLTIzOSw3ICsyNzMsNyBAQCBnc3RfZHRsc19jb25uZWN0aW9uX3Nl
dF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICBwcml2
LT5iaW8gPSBCSU9fbmV3IChCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICgpKTsKKyAgICAgICBn
X3JldHVybl9pZl9mYWlsIChwcml2LT5iaW8pOworIAorLSAgICAgIHByaXYtPmJpby0+cHRyID0g
c2VsZjsKKysgICAgICBCSU9fc2V0X2RhdGEgKHByaXYtPmJpbywgc2VsZik7CisgICAgICAgU1NM
X3NldF9iaW8gKHByaXYtPnNzbCwgcHJpdi0+YmlvLCBwcml2LT5iaW8pOworIAorICAgICAgIFNT
TF9zZXRfdmVyaWZ5IChwcml2LT5zc2wsCitAQCAtNTczLDYgKzYwNyw3IEBAIGxvZ19zdGF0ZSAo
R3N0RHRsc0Nvbm5lY3Rpb24gKiBzZWxmLCBjb25zdCBnY2hhciAqIHN0cikKKyAgIHN0YXRlcyB8
PSAoISAhU1NMX3dhbnRfd3JpdGUgKHByaXYtPnNzbCkgPDwgMjApOworICAgc3RhdGVzIHw9ICgh
ICFTU0xfd2FudF9yZWFkIChwcml2LT5zc2wpIDw8IDI0KTsKKyAKKysjaWYgT1BFTlNTTF9WRVJT
SU9OX05VTUJFUiA8IDB4MTAxMDAwMDFMCisgICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIiVzOiBy
b2xlPSVzIGJ1Zj0oJWQsJXA6JWQvJWQpICV4fCV4ICVzIiwKKyAgICAgICBzdHIsCisgICAgICAg
cHJpdi0+aXNfY2xpZW50ID8gImNsaWVudCIgOiAic2VydmVyIiwKK0BAIC01ODEsNiArNjE2LDE1
IEBAIGxvZ19zdGF0ZSAoR3N0RHRsc0Nvbm5lY3Rpb24gKiBzZWxmLCBjb25zdCBnY2hhciAqIHN0
cikKKyAgICAgICBwcml2LT5iaW9fYnVmZmVyX29mZnNldCwKKyAgICAgICBwcml2LT5iaW9fYnVm
ZmVyX2xlbiwKKyAgICAgICBzdGF0ZXMsIFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCksIFNTTF9z
dGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+c3NsKSk7CisrI2Vsc2UKKysgIEdTVF9MT0dfT0JKRUNU
IChzZWxmLCAiJXM6IHJvbGU9JXMgYnVmPSglcDolZC8lZCkgJXh8JXggJXMiLAorKyAgICAgIHN0
ciwKKysgICAgICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorKyAgICAg
IHByaXYtPmJpb19idWZmZXIsCisrICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9vZmZzZXQsCisrICAg
ICAgcHJpdi0+YmlvX2J1ZmZlcl9sZW4sCisrICAgICAgc3RhdGVzLCBTU0xfZ2V0X3N0YXRlIChw
cml2LT5zc2wpLCBTU0xfc3RhdGVfc3RyaW5nX2xvbmcgKHByaXYtPnNzbCkpOworKyNlbmRpZgor
IH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTczNyw3ICs3ODEsNyBAQCBvcGVuc3NsX3ZlcmlmeV9j
YWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFggKiB4NTA5X2N0eCkKKyAg
IHNlbGYgPSBTU0xfZ2V0X2V4X2RhdGEgKHNzbCwgY29ubmVjdGlvbl9leF9pbmRleCk7CisgICBn
X3JldHVybl92YWxfaWZfZmFpbCAoR1NUX0lTX0RUTFNfQ09OTkVDVElPTiAoc2VsZiksIEZBTFNF
KTsKKyAKKy0gIHBlbSA9IF9nc3RfZHRsc194NTA5X3RvX3BlbSAoeDUwOV9jdHgtPmNlcnQpOwor
KyAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQg
KHg1MDlfY3R4KSk7CisgCisgICBpZiAoIXBlbSkgeworICAgICBHU1RfV0FSTklOR19PQkpFQ1Qg
KHNlbGYsCitAQCAtNzQ5LDcgKzc5Myw4IEBAIG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQg
cHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4KQorICAgICAgIGdpbnQgbGVu
OworIAorICAgICAgIGxlbiA9CistICAgICAgICAgIFg1MDlfTkFNRV9wcmludF9leCAoYmlvLCBY
NTA5X2dldF9zdWJqZWN0X25hbWUgKHg1MDlfY3R4LT5jZXJ0KSwgMSwKKysgICAgICAgICAgWDUw
OV9OQU1FX3ByaW50X2V4IChiaW8sCisrICAgICAgICAgIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAo
WDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0ICh4NTA5X2N0eCkpLCAxLAorICAgICAgICAgICBYTl9G
TEFHX01VTFRJTElORSk7CisgICAgICAgQklPX3JlYWQgKGJpbywgYnVmZmVyLCBsZW4pOworICAg
ICAgIGJ1ZmZlcltsZW5dID0gJ1wwJzsKK0BAIC03NzcsNiArODIyLDcgQEAgb3BlbnNzbF92ZXJp
ZnlfY2FsbGJhY2sgKGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgp
CisgICAgICMjIyMjIyMjICAjIyMjICAjIyMjIyMjCisgKi8KKyAKKysjaWYgT1BFTlNTTF9WRVJT
SU9OX05VTUJFUiA8IDB4MTAxMDAwMDFMCisgc3RhdGljIEJJT19NRVRIT0QgY3VzdG9tX2Jpb19t
ZXRob2RzID0geworICAgQklPX1RZUEVfQklPLAorICAgInN0cmVhbSIsCitAQCAtNzk1LDExICs4
NDEsMzQgQEAgQklPX3NfZ3N0X2R0bHNfY29ubmVjdGlvbiAodm9pZCkKKyB7CisgICByZXR1cm4g
JmN1c3RvbV9iaW9fbWV0aG9kczsKKyB9CisrI2Vsc2UKKytzdGF0aWMgQklPX01FVEhPRCAqY3Vz
dG9tX2Jpb19tZXRob2RzOworKworK3N0YXRpYyBCSU9fTUVUSE9EICoKKytCSU9fc19nc3RfZHRs
c19jb25uZWN0aW9uICh2b2lkKQorK3sKKysgIGlmIChjdXN0b21fYmlvX21ldGhvZHMgIT0gTlVM
TCkKKysgICAgcmV0dXJuIGN1c3RvbV9iaW9fbWV0aG9kczsKKysKKysgIGN1c3RvbV9iaW9fbWV0
aG9kcyA9IEJJT19tZXRoX25ldyAoQklPX1RZUEVfQklPLCAic3RyZWFtIik7CisrICBpZiAoY3Vz
dG9tX2Jpb19tZXRob2RzID09IE5VTEwKKysgICAgICB8fCAhQklPX21ldGhfc2V0X3dyaXRlIChj
dXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2Rfd3JpdGUpCisrICAgICAgfHwgIUJJT19tZXRo
X3NldF9yZWFkIChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfcmVhZCkKKysgICAgICB8
fCAhQklPX21ldGhfc2V0X2N0cmwgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9jdHJs
KQorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfY3JlYXRlIChjdXN0b21fYmlvX21ldGhvZHMsIGJp
b19tZXRob2RfbmV3KQorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfZGVzdHJveSAoY3VzdG9tX2Jp
b19tZXRob2RzLCBiaW9fbWV0aG9kX2ZyZWUpKSB7CisrICAgIEJJT19tZXRoX2ZyZWUgKGN1c3Rv
bV9iaW9fbWV0aG9kcyk7CisrICAgIHJldHVybiBOVUxMOworKyAgfQorKworKyAgcmV0dXJuIGN1
c3RvbV9iaW9fbWV0aG9kczsKKyt9CisrI2VuZGlmCisgCisgc3RhdGljIGludAorIGJpb19tZXRo
b2Rfd3JpdGUgKEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgeworLSAg
R3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7
CisrICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19n
ZXRfZGF0YSAoYmlvKSk7CisgCisgICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIkJJTzogd3JpdGlu
ZyAlZCIsIHNpemUpOworIAorQEAgLTgyNCw3ICs4OTMsNyBAQCBiaW9fbWV0aG9kX3dyaXRlIChC
SU8gKiBiaW8sIGNvbnN0IGNoYXIgKmRhdGEsIGludCBzaXplKQorIHN0YXRpYyBpbnQKKyBiaW9f
bWV0aG9kX3JlYWQgKEJJTyAqIGJpbywgY2hhciAqb3V0X2J1ZmZlciwgaW50IHNpemUpCisgewor
LSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0
cik7CisrICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJ
T19nZXRfZGF0YSAoYmlvKSk7CisgICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBz
ZWxmLT5wcml2OworICAgZ3VpbnQgaW50ZXJuYWxfc2l6ZTsKKyAgIGdpbnQgY29weV9zaXplOwor
QEAgLTg2OCw3ICs5MzcsNyBAQCBiaW9fbWV0aG9kX3JlYWQgKEJJTyAqIGJpbywgY2hhciAqb3V0
X2J1ZmZlciwgaW50IHNpemUpCisgc3RhdGljIGxvbmcKKyBiaW9fbWV0aG9kX2N0cmwgKEJJTyAq
IGJpbywgaW50IGNtZCwgbG9uZyBhcmcxLCB2b2lkICphcmcyKQorIHsKKy0gIEdzdER0bHNDb25u
ZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpOworKyAgR3N0RHRs
c0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJp
bykpOworICAgR3N0RHRsc0Nvbm5lY3Rpb25Qcml2YXRlICpwcml2ID0gc2VsZi0+cHJpdjsKKyAK
KyAgIHN3aXRjaCAoY21kKSB7CitAQCAtOTE2LDggKzk4NSw4IEBAIGJpb19tZXRob2RfbmV3IChC
SU8gKiBiaW8pCisgeworICAgR1NUX0xPR19PQkpFQ1QgKE5VTEwsICJCSU86IG5ldyIpOworIAor
LSAgYmlvLT5zaHV0ZG93biA9IDA7CistICBiaW8tPmluaXQgPSAxOworKyAgQklPX3NldF9zaHV0
ZG93biAoYmlvLCAwKTsKKysgIEJJT19zZXRfaW5pdCAoYmlvLCAxKTsKKyAKKyAgIHJldHVybiAx
OworIH0KK0BAIC05MzAsNiArOTk5LDYgQEAgYmlvX21ldGhvZF9mcmVlIChCSU8gKiBiaW8pCisg
ICAgIHJldHVybiAwOworICAgfQorIAorLSAgR1NUX0xPR19PQkpFQ1QgKEdTVF9EVExTX0NPTk5F
Q1RJT04gKGJpby0+cHRyKSwgIkJJTyBmcmVlIik7CisrICBHU1RfTE9HX09CSkVDVCAoR1NUX0RU
TFNfQ09OTkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKSwgIkJJTyBmcmVlIik7CisgICByZXR1
cm4gMDsKKyB9CistLSAKKzIuMTAuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9n
c3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWlu
LVJTQV9nZW5lcmF0ZV9rLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFk
LTAwMDItZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVf
ay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzY2ODc3Mzcw
YzYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQt
MDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9r
LnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gM2EwNjkxOTNlMjUzNjRlYmRhY2FjODZmNGIw
MzAyMmMxNTFlYTI5YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9T
ZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CitEYXRl
OiBNb24sIDE0IE5vdiAyMDE2IDExOjMyOjE3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGR0bHNj
ZXJ0aWZpY2F0ZTogRml4IGVycm9yIGNoZWNraW5nIGluIFJTQV9nZW5lcmF0ZV9rZXlfZXgoKQor
IHVzYWdlCisKK1dhcyBicm9rZW4gZHVyaW5nIHRoZSBwb3J0IGZvciBPcGVuU1NMIDEuMS4KKwor
aHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDMyOAorLS0tCisg
ZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMgfCA3ICsrKystLS0KKyAxIGZpbGUgY2hhbmdl
ZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L2R0
bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYwor
aW5kZXggYzFjOTYwMi4uYzJkOWJiMiAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0
aWZpY2F0ZS5jCisrKysgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworQEAgLTIwNywx
MiArMjA3LDEzIEBAIGluaXRfZ2VuZXJhdGVkIChHc3REdGxzQ2VydGlmaWNhdGUgKiBzZWxmKQor
ICAgcnNhID0gUlNBX25ldyAoKTsKKyAgIGlmIChyc2EgIT0gTlVMTCkgeworICAgICBCSUdOVU0g
KmUgPSBCTl9uZXcgKCk7CistICAgIGlmIChlICE9IE5VTEwgJiYgQk5fc2V0X3dvcmQgKGUsIFJT
QV9GNCkKKy0gICAgICAgICYmIFJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVM
TCkpIHsKKysgICAgaWYgKGUgPT0gTlVMTCB8fCAhQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKKysg
ICAgICAgIHx8ICFSU0FfZ2VuZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7Cisg
ICAgICAgUlNBX2ZyZWUgKHJzYSk7CisgICAgICAgcnNhID0gTlVMTDsKKyAgICAgfQorLSAgICBC
Tl9mcmVlIChlKTsKKysgICAgaWYgKGUpCisrICAgICAgQk5fZnJlZSAoZSk7CisgICB9CisgI2Vu
ZGlmCisgCistLSAKKzIuMTAuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3Qt
cGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9v
Zi1mb3ItZnIucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVy
dC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNhNjBkYjQ3NzJiCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRk
ZW11eC1leHBvc2Utc3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoCkBAIC0wLDAg
KzEsMTMzIEBACitGcm9tIDFhODFiZDkwZDRhM2U1OWQ2NjY5YTBiYmZhNDU2ZjFlZDRlNWRiNDgg
TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBYYWJpZXIgUm9kcmlndWV6IENhbHZhciA8
Y2FsdmFyaXNAaWdhbGlhLmNvbT4KK0RhdGU6IFRodSwgNyBBcHIgMjAxNiAxMzo1NzoxNiArMDIw
MAorU3ViamVjdDogW1BBVENIXSBSZXZlcnQgInF0ZGVtdXg6IGV4cG9zZSBzdHJlYW1zIHdpdGgg
Zmlyc3QgbW9vZiBmb3IKKyBmcmFnbWVudGVkIGZvcm1hdCIKKworVGhpcyByZXZlcnRzIGNvbW1p
dCBkOGJiNjY4N2VhMjUxNTcwYzMzMTAzODI3OWE0M2Q0NDgxNjdkNmFkLgorLS0tCisgZ3N0L2lz
b21wNC9xdGRlbXV4LmMgfCA1NCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAgMSAtCisgMiBmaWxlcyBj
aGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh
L2dzdC9pc29tcDQvcXRkZW11eC5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKK2luZGV4IDM5YmUx
NjMuLjk2MzZiNGIgMTAwNjQ0CistLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYworKysrIGIvZ3N0
L2lzb21wNC9xdGRlbXV4LmMKK0BAIC02MDksNyArNjA5LDYgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAo
R3N0UVREZW11eCAqIHF0ZGVtdXgpCisgICBxdGRlbXV4LT5zdGF0ZSA9IFFUREVNVVhfU1RBVEVf
SU5JVElBTDsKKyAgIHF0ZGVtdXgtPnB1bGxiYXNlZCA9IEZBTFNFOworICAgcXRkZW11eC0+cG9z
dGVkX3JlZGlyZWN0ID0gRkFMU0U7CistICBxdGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZB
TFNFOworICAgcXRkZW11eC0+bmVlZGVkYnl0ZXMgPSAxNjsKKyAgIHF0ZGVtdXgtPnRvZHJvcCA9
IDA7CisgICBxdGRlbXV4LT5hZGFwdGVyID0gZ3N0X2FkYXB0ZXJfbmV3ICgpOworQEAgLTIwNDks
NyArMjA0OCw2IEBAIGdzdF9xdGRlbXV4X3Jlc2V0IChHc3RRVERlbXV4ICogcXRkZW11eCwgZ2Jv
b2xlYW4gaGFyZCkKKyAgICAgZ3N0X2NhcHNfcmVwbGFjZSAoJnF0ZGVtdXgtPm1lZGlhX2NhcHMs
IE5VTEwpOworICAgICBxdGRlbXV4LT50aW1lc2NhbGUgPSAwOworICAgICBxdGRlbXV4LT5nb3Rf
bW9vdiA9IEZBTFNFOworLSAgICBxdGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOwor
ICAgfSBlbHNlIGlmIChxdGRlbXV4LT5tc3NfbW9kZSkgeworICAgICBnc3RfZmxvd19jb21iaW5l
cl9yZXNldCAocXRkZW11eC0+Zmxvd2NvbWJpbmVyKTsKKyAgICAgZm9yIChuID0gMDsgbiA8IHF0
ZGVtdXgtPm5fc3RyZWFtczsgbisrKQorQEAgLTYxMDQsNyArNjEwMiw2IEBAIGdzdF9xdGRlbXV4
X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAg
ICAgICAgICAgICAmZm91cmNjKTsKKyAgICAgICAgIGlmIChmb3VyY2MgPT0gRk9VUkNDX21vb3Yp
IHsKKyAgICAgICAgICAgZ2ludCBuOworLSAgICAgICAgICBnYm9vbGVhbiBnb3Rfc2FtcGxlcyA9
IEZBTFNFOworIAorICAgICAgICAgICAvKiBpbiB1c3VhbCBmcmFnbWVudGVkIHNldHVwIHdlIGNv
dWxkIHRyeSB0byBzY2FuIGZvciBtb3JlCisgICAgICAgICAgICAqIGFuZCBlbmQgdXAgYXQgdGhl
IHRoZSBtb292IChhZnRlciBtZGF0KSBhZ2FpbiAqLworQEAgLTYxMzYsMjcgKzYxMzMsMTkgQEAg
Z3N0X3F0ZGVtdXhfcHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFu
IGZvcmNlKQorICAgICAgICAgICAgIHF0ZGVtdXhfbm9kZV9kdW1wIChkZW11eCwgZGVtdXgtPm1v
b3Zfbm9kZSk7CisgICAgICAgICAgICAgcXRkZW11eF9wYXJzZV90cmVlIChkZW11eCk7CisgICAg
ICAgICAgICAgcXRkZW11eF9wcmVwYXJlX3N0cmVhbXMgKGRlbXV4KTsKKysgICAgICAgICAgICBp
ZiAoIWRlbXV4LT5nb3RfbW9vdikKKysgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVh
bXMgKGRlbXV4KTsKKysgICAgICAgICAgICBlbHNlIHsKKyAKKy0gICAgICAgICAgICBmb3IgKG4g
PSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAgICAgICAgICBRdERlbXV4
U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKy0gICAgICAgICAgICAgIGdvdF9z
YW1wbGVzIHw9IHN0cmVhbS0+c3RibF9pbmRleCA+PSAwOworLSAgICAgICAgICAgIH0KKy0gICAg
ICAgICAgICBpZiAoIWRlbXV4LT5mcmFnbWVudGVkIHx8IGdvdF9zYW1wbGVzKSB7CistICAgICAg
ICAgICAgICBpZiAoIWRlbXV4LT5nb3RfbW9vdikgeworLSAgICAgICAgICAgICAgICBxdGRlbXV4
X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAg
ICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7CistICAg
ICAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07
CistICAgICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgs
IHN0cmVhbSk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgIGZvciAobiA9IDA7
IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKysgICAgICAgICAgICAgICAgUXREZW11eFN0
cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07CisrCisrICAgICAgICAgICAgICAgIGdz
dF9xdGRlbXV4X2NvbmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJlYW0pOworICAgICAgICAgICAg
ICAgfQorLSAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tfc2VuZF9wZW5kaW5nX3NlZ21l
bnQgKGRlbXV4KTsKKy0gICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZB
TFNFOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICBkZW11eC0+cGVuZGlu
Z19jb25maWd1cmUgPSBUUlVFOworICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICBkZW11
eC0+Z290X21vb3YgPSBUUlVFOworKyAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRf
cGVuZGluZ19zZWdtZW50IChkZW11eCk7CisgCisgICAgICAgICAgICAgLyogZnJhZ21lbnRlZCBz
dHJlYW1zIGhlYWRlcnMgc2hvdWxkbid0IGNvbnRhaW4gZWR0cyBhdG9tcyAqLworICAgICAgICAg
ICAgIGlmICghZGVtdXgtPmZyYWdtZW50ZWQpIHsKK0BAIC02MTc1LDcgKzYxNjQsNiBAQCBnc3Rf
cXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9y
Y2UpCisgICAgICAgICAgICAgZ3VpbnQ2NCBkaXN0ID0gMDsKKyAgICAgICAgICAgICBHc3RDbG9j
a1RpbWUgcHJldl9wdHM7CisgICAgICAgICAgICAgZ3VpbnQ2NCBwcmV2X29mZnNldDsKKy0gICAg
ICAgICAgICBnaW50IG47CisgCisgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgs
ICJQYXJzaW5nIFttb29mXSIpOworIAorQEAgLTYyMDksMjUgKzYxOTcsMTUgQEAgZ3N0X3F0ZGVt
dXhfcHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQor
ICAgICAgICAgICAgICAgcmV0ID0gR1NUX0ZMT1dfRVJST1I7CisgICAgICAgICAgICAgICBnb3Rv
IGRvbmU7CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIC8qIGluIE1TUyB3ZSBuZWVkIHRv
IGV4cG9zZSB0aGUgcGFkcyBhZnRlciB0aGUgZmlyc3QgbW9vZiBhcyB3ZSB3b24ndCBnZXQgYSBt
b292IAorLSAgICAgICAgICAgICAqIEFsc28sIGZyYWdtZW50ZWQgZm9ybWF0IG5lZWQgdG8gYmUg
ZXhwb3NlZCBpZiBhIG1vb3YgaGF2ZSBubyB2YWxpZCBzYW1wbGUgZGF0YSAqLworLSAgICAgICAg
ICAgIGlmIChkZW11eC0+bXNzX21vZGUgfHwgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlKSB7Cist
ICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5leHBvc2VkKSB7CistICAgICAgICAgICAgICAgIGlm
ICghZGVtdXgtPnBlbmRpbmdfbmV3c2VnbWVudCkgeworLSAgICAgICAgICAgICAgICAgIEdzdFNl
Z21lbnQgc2VnbWVudDsKKy0gICAgICAgICAgICAgICAgICBnc3Rfc2VnbWVudF9pbml0ICgmc2Vn
bWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKKy0gICAgICAgICAgICAgICAgICBHU1RfREVCVUdfT0JK
RUNUIChkZW11eCwgIm5ldyBwZW5kaW5nX25ld3NlZ21lbnQiKTsKKy0gICAgICAgICAgICAgICAg
ICBkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50ID0gZ3N0X2V2ZW50X25ld19zZWdtZW50ICgmc2Vn
bWVudCk7CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgcXRkZW11eF9leHBv
c2Vfc3RyZWFtcyAoZGVtdXgpOworLSAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAg
ICAgICAgZm9yIChuID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworLSAgICAgICAg
ICAgICAgICAgIFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAg
ICAgICAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJl
YW0pOworLSAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQg
dG8gZXhwb3NlIHRoZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBh
IG1vb3YgKi8KKysgICAgICAgICAgICBpZiAoZGVtdXgtPm1zc19tb2RlICYmICFkZW11eC0+ZXhw
b3NlZCkgeworKyAgICAgICAgICAgICAgaWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7
CisrICAgICAgICAgICAgICAgIEdzdFNlZ21lbnQgc2VnbWVudDsKKysgICAgICAgICAgICAgICAg
Z3N0X3NlZ21lbnRfaW5pdCAoJnNlZ21lbnQsIEdTVF9GT1JNQVRfVElNRSk7CisrICAgICAgICAg
ICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIp
OworKyAgICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50ID0gZ3N0X2V2ZW50
X25ld19zZWdtZW50ICgmc2VnbWVudCk7CisgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg
ICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVtdXgpOworLSAgICAg
ICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7CisrICAgICAgICAgICAg
ICBxdGRlbXV4X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7CisgICAgICAgICAgICAgfQorICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAiRGlz
Y2FyZGluZyBbbW9vZl0iKTsKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguaCBiL2dz
dC9pc29tcDQvcXRkZW11eC5oCitpbmRleCA2MDYxMjE1Li5lY2YwYzYzIDEwMDY0NAorLS0tIGEv
Z3N0L2lzb21wNC9xdGRlbXV4LmgKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCitAQCAtODks
NyArODksNiBAQCBzdHJ1Y3QgX0dzdFFURGVtdXggeworICAgZ2Jvb2xlYW4gcG9zdGVkX3JlZGly
ZWN0OworIAorICAgLyogcHVzaCBiYXNlZCB2YXJpYWJsZXMgKi8KKy0gIGdib29sZWFuIHBlbmRp
bmdfY29uZmlndXJlOworICAgZ3VpbnQgbmVlZGVkYnl0ZXM7CisgICBndWludCB0b2Ryb3A7Cisg
ICBHc3RBZGFwdGVyICphZGFwdGVyOworLS0gCisyLjguMC5yYzMKKwpkaWZmIC0tZ2l0IGEvVG9v
bHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUu
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1k
ZWNvZGUtdGltZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MWU5ZGQ5N2Y3OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaApAQCAtMCwwICsxLDE0NiBA
QAorRnJvbSA0NmQzZTBmYWE5MjI2NDMwOTRhNWU0NmEzMmU0ZjgyZjc3NGFlNzcyIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0VucmlxdWU9MjBPY2E9QzM9QjFhPTIw
R29uej1DMz1BMWxlej89IDxlb2NhbmhhQGlnYWxpYS5jb20+CitEYXRlOiBUdWUsIDEwIE5vdiAy
MDE1IDEzOjA5OjAwICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSB0aGUgdGZkdCBkZWNvZGUg
dGltZSB3aGVuIGl0J3Mgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQKKyB0aGFuIHRoZSB0aW1lIGlu
IHRoZSBsYXN0IHNhbXBsZSBpZiBhbHdheXMtaG9ub3ItdGZkdCBpcyBlbmFibGVkCisKK2h0dHBz
Oi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQyMzAKKy0tLQorIGdzdC9p
c29tcDQvcXRkZW11eC5jIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKworIGdzdC9pc29tcDQvcXRkZW11eC5oIHwgIDEgKworIDIgZmlsZXMg
Y2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRl
bXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworaW5kZXggODgwNTk1ZS4uZDhiNTRmMCAxMDA2
NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXgu
YworQEAgLTUzNSw2ICs1MzUsMTEgQEAgc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfYXBwZW5kX3By
b3RlY3Rpb25fc3lzdGVtX2lkIChHc3RRVERlbXV4ICogcXRkZW11eCwKKyAgICAgY29uc3QgZ2No
YXIgKiBpZCk7Cisgc3RhdGljIHZvaWQgcXRkZW11eF9nc3Rfc3RydWN0dXJlX2ZyZWUgKEdzdFN0
cnVjdHVyZSAqIGdzdHN0cnVjdHVyZSk7CisgCisrc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfc2V0
X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorKyAgICBjb25zdCBH
VmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworK3N0YXRpYyB2b2lkIGdzdF9xdGRl
bXV4X2dldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAg
R1ZhbHVlICogdmFsdWUsIEdQYXJhbVNwZWMgKiBzcGVjKTsKKysKKyBzdGF0aWMgdm9pZAorIGdz
dF9xdGRlbXV4X2NsYXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQorIHsKK0BAIC01
NDYsOCArNTUxLDIxIEBAIGdzdF9xdGRlbXV4X2NsYXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAq
IGtsYXNzKQorIAorICAgcGFyZW50X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50IChr
bGFzcyk7CisgCisrICBnb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9z
ZXRfcHJvcGVydHk7CisrICBnb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11
eF9nZXRfcHJvcGVydHk7CisrCisgICBnb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gZ3N0X3F0ZGVt
dXhfZGlzcG9zZTsKKyAKKysgLyoqCisrICAgKiBHc3RRdERlbXV4OjphbHdheXMtaG9ub3ItdGZk
dDoKKysgICAqCisrICAgKiBSZXF1ZXN0cyB0aGUgZGVtdXhlciB0byByZXNwZWN0IHdoYXQgdGhl
IFRGRFQgYXRvbSBzYXlzIGluIG9yZGVyIHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFt
cHMuIERlZmF1bHRzIHRvIEZBTFNFLgorKyAgICovCisrICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5IChnb2JqZWN0X2NsYXNzLCBQUk9QX0FMV0FZU19IT05PUl9URkRULAorKyAgICAg
IGdfcGFyYW1fc3BlY19ib29sZWFuICgiYWx3YXlzLWhvbm9yLXRmZHQiLCAiQWx3YXlzIGhvbm9y
IFRGRFQiLAorKyAgICAgICAgICAiV2hlbiBlbmFibGVkLCBURkRUIGF0b20gd2lsbCBhbHdheXMg
YmUgcmVzcGVjdGVkIGluIG9yZGVyIHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMi
LAorKyAgICAgICAgICBGQUxTRSwgR19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX1NUQVRJQ19T
VFJJTkdTKSk7CisrCisgICBnc3RlbGVtZW50X2NsYXNzLT5jaGFuZ2Vfc3RhdGUgPSBHU1RfREVC
VUdfRlVOQ1BUUiAoZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlKTsKKyAjaWYgMAorICAgZ3N0ZWxl
bWVudF9jbGFzcy0+c2V0X2luZGV4ID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X3Nl
dF9pbmRleCk7CitAQCAtNjExLDYgKzYyOSw3IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVt
dXggKiBxdGRlbXV4KQorICAgcXRkZW11eC0+Y2VuY19hdXhfaW5mb19zaXplcyA9IE5VTEw7Cisg
ICBxdGRlbXV4LT5jZW5jX2F1eF9zYW1wbGVfY291bnQgPSAwOworICAgcXRkZW11eC0+cHJvdGVj
dGlvbl9zeXN0ZW1faWRzID0gTlVMTDsKKysgIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0ID0g
RkFMU0U7CisgICBnX3F1ZXVlX2luaXQgKCZxdGRlbXV4LT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVl
KTsKKyAgIGdzdF9zZWdtZW50X2luaXQgKCZxdGRlbXV4LT5zZWdtZW50LCBHU1RfRk9STUFUX1RJ
TUUpOworICAgcXRkZW11eC0+Zmxvd2NvbWJpbmVyID0gZ3N0X2Zsb3dfY29tYmluZXJfbmV3ICgp
OworQEAgLTYzOSw2ICs2NTgsNDIgQEAgZ3N0X3F0ZGVtdXhfZGlzcG9zZSAoR09iamVjdCAqIG9i
amVjdCkKKyB9CisgCisgc3RhdGljIHZvaWQKKytnc3RfcXRkZW11eF9zZXRfcHJvcGVydHkgKEdP
YmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisrICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVl
LCBHUGFyYW1TcGVjICogcHNwZWMpCisreworKyAgR3N0UVREZW11eCAqcXRkZW11eCA9IEdTVF9R
VERFTVVYIChvYmplY3QpOworKworKyAgc3dpdGNoIChwcm9wX2lkKSB7CisrICAgIGNhc2UgUFJP
UF9BTFdBWVNfSE9OT1JfVEZEVDoKKysgICAgICBHU1RfT0JKRUNUX0xPQ0sgKHF0ZGVtdXgpOwor
KyAgICAgIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0ID0gZ192YWx1ZV9nZXRfYm9vbGVhbiAo
dmFsdWUpOworKyAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVh
azsKKysgICAgZGVmYXVsdDoKKysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlf
SUQgKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysK
KytzdGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4X2dldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVj
dCwgZ3VpbnQgcHJvcF9pZCwgR1ZhbHVlICogdmFsdWUsCisrICAgIEdQYXJhbVNwZWMgKiBwc3Bl
YykKKyt7CisrICBHc3RRVERlbXV4ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKG9iamVjdCk7Cisr
CisrICBzd2l0Y2ggKHByb3BfaWQpIHsKKysgICAgY2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRU
OgorKyAgICAgIEdTVF9PQkpFQ1RfTE9DSyAocXRkZW11eCk7CisrICAgICAgZ192YWx1ZV9zZXRf
Ym9vbGVhbiAodmFsdWUsIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0KTsKKysgICAgICBHU1Rf
T0JKRUNUX1VOTE9DSyAocXRkZW11eCk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6Cisr
ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQs
IHBzcGVjKTsKKysgICAgICBicmVhazsKKysgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKyBnc3Rf
cXRkZW11eF9wb3N0X25vX3BsYXlhYmxlX3N0cmVhbV9lcnJvciAoR3N0UVREZW11eCAqIHF0ZGVt
dXgpCisgeworICAgaWYgKHF0ZGVtdXgtPnBvc3RlZF9yZWRpcmVjdCkgeworQEAgLTI5OTUsNiAr
MzA1MCwxNiBAQCBxdGRlbXV4X3BhcnNlX3RydW4gKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHc3RC
eXRlUmVhZGVyICogdHJ1biwKKyAgICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9z
YW1wbGVzIC0gMV0udGltZXN0YW1wICsKKyAgICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVh
bS0+bl9zYW1wbGVzIC0gMV0uZHVyYXRpb247CisgCisrICAgICAgLyogSWYgd2UncmUgYWx3YXlz
IGhvbm9yaW5nIFRGRFQgYW5kIHRoZXJlJ3MgYSBzaWduaWZpY2F0aXZlIGRpZmZlcmVuY2UKKysg
ICAgICAgKiBiZXR3ZWVuIHRoZSBkZWNvZGVfdHMgYW5kIHRoZSB0aW1lc3RhbXAsIHByZWZlciBk
ZWNvZGVfdHMgKi8KKysgICAgICBpZiAocXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPT0gVFJV
RQorKyAgICAgICAgICAmJiBhYnMgKGRlY29kZV90cyAtIHRpbWVzdGFtcCkgPgorKyAgICAgICAg
ICBzdHJlYW0tPnNhbXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbikgeworKyAg
ICAgICAgR1NUX0lORk9fT0JKRUNUIChxdGRlbXV4LAorKyAgICAgICAgICAgICJkZWNvZGVfdHMg
aXMgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQgZnJvbSB0aW1lc3RhbXAsIHVzaW5nIGRlY29kZV90
cyIpOworKyAgICAgICAgdGltZXN0YW1wID0gZGVjb2RlX3RzOworKyAgICAgIH0KKysKKyAgICAg
ICBnc3RfdHMgPSBRVFNUUkVBTVRJTUVfVE9fR1NUVElNRSAoc3RyZWFtLCB0aW1lc3RhbXApOwor
ICAgICAgIEdTVF9JTkZPX09CSkVDVCAocXRkZW11eCwgImZpcnN0IHNhbXBsZSB0cyAlIiBHU1Rf
VElNRV9GT1JNQVQKKyAgICAgICAgICAgIiAoZXh0ZW5kcyBwcmV2aW91cyBzYW1wbGVzKSIsIEdT
VF9USU1FX0FSR1MgKGdzdF90cykpOworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5o
IGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK2luZGV4IDUzYmQwNzEuLmVjZjBjNjMgMTAwNjQ0Cist
LS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK0BA
IC0xNTQsMTIgKzE1NCwyMCBAQCBzdHJ1Y3QgX0dzdFFURGVtdXggeworICAgZ3VpbnQ4ICpjZW5j
X2F1eF9pbmZvX3NpemVzOworICAgZ3VpbnQzMiBjZW5jX2F1eF9zYW1wbGVfY291bnQ7CisgCisr
ICBnYm9vbGVhbiBhbHdheXNfaG9ub3JfdGZkdDsKKyB9OworIAorIHN0cnVjdCBfR3N0UVREZW11
eENsYXNzIHsKKyAgIEdzdEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CisgfTsKKyAKKysvKiBw
cm9wcyAqLworK2VudW0KKyt7CisrICBQUk9QXzAsCisrICBQUk9QX0FMV0FZU19IT05PUl9URkRU
CisrfTsKKysKKyBHVHlwZSBnc3RfcXRkZW11eF9nZXRfdHlwZSAodm9pZCk7CisgCisgR19FTkRf
REVDTFMKKy0tIAorMi42LjEKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVh
bWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBh
dGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNB
UFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5iNDQ2YmQ1NDRjMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dw
ZS9wYXRjaGVzL2dzdHJlYW1lci10eXBlZmluZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25z
dHJlYW0taWYtdGhlLS5wYXRjaApAQCAtMCwwICsxLDMyIEBACitGcm9tIDVlNDNlZTU5ODlkN2I1
MWRjYjMxNDViZDk5NzUyNTI0N2EzZDYyZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t
OiA9P1VURi04P3E/U2ViYXN0aWFuPTIwRHI9QzM9QjZnZT89IDxzZWJhc3RpYW5AY2VudHJpY3Vs
YXIuY29tPgorRGF0ZTogV2VkLCAxMSBNYXkgMjAxNiAxNTowNjozOSArMDMwMAorU3ViamVjdDog
W1BBVENIXSB0eXBlZmluZDogT25seSBwdXNoIGEgQ0FQUyBldmVudCBkb3duc3RyZWFtIGlmIHRo
ZSBzaW5rcGFkIGlzCisgbm90IGluIFBVTEwgbW9kZQorCitUaGUgb3RoZXIgc2lnbmFsIGhhbmRs
ZXJzIG9mIHRoZSB0eXBlLWZvdW5kIHNpZ25hbCBtaWdodCBoYXZlIHJlYWN0aXZhdGVkCit0eXBl
ZmluZCBpbiBQVUxMIG1vZGUgYWxyZWFkeSwgcHVzaGluZyBhIENBUFMgZXZlbnQgYXQgdGhhdCBw
b2ludCB3b3VsZCBjYXVzZQorZGVhZGxvY2tzIGFuZCBpcyBpbiBnZW5lcmFsIHVuZXhwZWN0ZWQg
YnkgZWxlbWVudHMgdGhhdCBhcmUgaW4gUFVMTCBtb2RlLgorCitodHRwczovL2J1Z3ppbGxhLmdu
b21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1OTA2CistLS0KKyBwbHVnaW5zL2VsZW1lbnRzL2dz
dHR5cGVmaW5kZWxlbWVudC5jIHwgNCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u
cygrKQorCitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQu
YyBiL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKK2luZGV4IGM2ODY0MTIu
LjQ1M2ZmNzUgMTAwNjQ0CistLS0gYS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVu
dC5jCisrKysgYi9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCitAQCAtMTc5
LDYgKzE3OSwxMCBAQCBnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlIChHc3RUeXBlRmlu
ZEVsZW1lbnQgKiB0eXBlZmluZCwKKyAgIEdTVF9JTkZPX09CSkVDVCAodHlwZWZpbmQsICJmb3Vu
ZCBjYXBzICUiIEdTVF9QVFJfRk9STUFUICIsIHByb2JhYmlsaXR5PSV1IiwKKyAgICAgICBjYXBz
LCBwcm9iYWJpbGl0eSk7CisgCisrICAvKiBEbyBub3RoaW5nIGlmIGRvd25zdHJlYW0gaXMgcHVs
bGluZyBmcm9tIHVzICovCisrICBpZiAoR1NUX1BBRF9NT0RFICh0eXBlZmluZC0+c3JjKSA9PSBH
U1RfUEFEX01PREVfUFVMTCkKKysgICAgcmV0dXJuOworKworICAgR1NUX09CSkVDVF9MT0NLICh0
eXBlZmluZCk7CisgCisgICAvKiBOb3cgYWN0dWFsbHkgc2VuZCB0aGUgQ0FQUyBldmVudCBkb3du
c3RyZWFtLgorLS0gCisyLjguMQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>308440</attachid>
            <date>2017-04-27 13:46:30 -0700</date>
            <delta_ts>2017-04-28 13:30:16 -0700</delta_ts>
            <desc>git diff --stat output for the specific changes</desc>
            <filename>upstream.stat</filename>
            <type>text/plain</type>
            <size>12751</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">IENNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
ICsKIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
IDEzICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
IHwgIDEwICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAg
ICAgIHwgIDIzICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9ybVdQRS5jbWFr
ZSAgICAgIHwgICAzICsKIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgIHwgICA5ICsKIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2Vn
bHBsYXRmb3JtLmggIHwgICAyICstCiBTb3VyY2UvV1RGL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAxMSArCiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogU291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUu
Y21ha2UgICAgICAgICAgICAgICAgICAgfCAgMjggKwogU291cmNlL1dURi93dGYvZ2xpYi9SdW5M
b29wU291cmNlUHJpb3JpdHkuaCAgICAgICAgfCAgMjkgKwogU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcwICsrCiBTb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArCiBTb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL1BsYXRmb3JtV1BFLmNtYWtlICAgICAgICAgICB8ICAgMyArCiBTb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgICAgICAgICB8IDI4NiArKysrKysK
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIHwgICA0
ICsKIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwIHwg
IDY1ICsrCiAuLi4vYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAg
ICB8ICA0MiArCiBTb3VyY2UvV2ViQ29yZS9jb25maWcuaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaCAg
ICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJT
QS5oICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAg
ICAgICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aCAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3Bl
L0VkaXRvcldQRS5jcHAgICAgICAgICAgIHwgIDg4ICsrCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGFn
ZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcCAgICAgICAgfCAxMDggKysrCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DdXJzb3IuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCAgICAgICAgICAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwICB8ICAg
MiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmggICAg
fCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCAgICAgICAgICAg
ICAgIHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3ku
aCAgICAgICB8ICAgOSArCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9h
cmQuaCAgICAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0
cnkuY3BwICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5o
ICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2ds
aWIvQXVkaW9CdXNHTGliLmNwcCAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
bGliL0ZpbGVTeXN0ZW1HbGliLmNwcCAgICB8ICAgNCArCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcCAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oICAgICAgIHwgICA2ICsKIC4uLi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggIHwgICA0ICstCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmggICB8ICAgMyArLQogLi4u
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCAgfCAgIDggKwog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmggfCAgIDMg
KwogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgfCAg
MTAgKwogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oICAg
fCAgMTMgKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwICAg
ICAgfCAgNDQgKwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmNwcCAgfCAgIDkgKwogLi4uL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9J
Y29uV1BFLmNwcCAgIHwgIDQ0ICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JbWFnZVdQRS5jcHAgIHwgIDQzICsKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZv
cm1EaXNwbGF5V1BFLmNwcCAgIHwgMTM0ICsrKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9Q
bGF0Zm9ybURpc3BsYXlXUEUuaCAgICAgfCAgOTkgKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93cGUvQ3Vyc29yV1BFLmNwcCAgICAgICAgICB8ICAzNSArCiAuLi4vV2ViQ29yZS9wbGF0Zm9y
bS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAgICB8ICA1MSArKwogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwICAgICAgfCAxMzQgKysrCiAuLi4vcGxhdGZv
cm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAgICAgICB8ICA1OCArKwogLi4uL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAgfCAxMTQgKysrCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3JlZW5XUEUuY3BwICB8ICA3NCAr
KwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcCAgICAgfCAg
NjYgKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oICAgICAg
IHwgIDUzICsrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUu
Y3BwICB8ICA2OSArKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1l
V1BFLmggICAgfCAgNDUgKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNw
cCAgICAgICAgICAgfCAgMzggKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BF
LmNwcCAgICAgICAgICAgfCAxNDggKysrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Ro
ZW1lV1BFLmggICAgICAgICAgICAgfCAgNDcgKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1dpZGdldFdQRS5jcHAgICAgICAgICAgfCAgODUgKysKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDk1ICsrCiAuLi4vV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHAgICB8ICAgMyArCiBTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgICAgICAgICB8IDQ3MiArKysrKysrKysrCiAuLi4v
V2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCB8ICAgMiArLQog
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oICAgICAgICAgICAgICAgfCAgIDQg
KwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaCAgICAgICAgfCAg
MzUgKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaCAgICAgICAgICAg
fCAxMDQgKysrCiAuLi4vdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAg
ICAgICB8ICAgMiArLQogLi4uL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3Au
aCAgICAgICAgfCAgIDEgKwogLi4uL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0
b3IuY3BwICAgICAgfCAgODYgKy0KIC4uLi90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21w
b3NpdG9yLmggICAgICAgIHwgIDI3ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmggICAgICAgICAgICB8ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudC5oICAgICB8ICAgOCArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0
aXZlV2ViTW91c2VFdmVudC5oICAgICAgICB8ICAgOCArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmF0aXZlV2ViVG91Y2hFdmVudC5oICAgICAgICB8ICAgNyArCiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oICAgICAgICB8ICAgOCArCiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCAgICB8ICAyMiArLQogU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oICAgICAgfCAgMTMgKwogU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCAgfCAgIDIgKy0KIC4uLi9T
aGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwICAgICAgIHwgIDM4ICsKIC4u
Li9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAgIHwgIDM4ICsK
IC4uLi9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAgIHwgIDQ2
ICsKIC4uLi9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAgIHwg
IDQwICsKIC4uLi9TaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5jcHAgICAgICAg
IHwgIDg3ICsrCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAg
ICAgICB8IDIxNSArKysrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3Rv
cnkuaCAgICAgICAgfCAgNDUgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oICAgICAgICAgfCAgIDQgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dw
ZS9XS0FQSUNhc3RXUEUuaCAgfCAgNTggKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy93cGUvV0tWaWV3LmNwcCAgICAgIHwgIDU5ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0Mvd3BlL1dLVmlldy5oICAgICAgICB8ICA3MSArKwogLi4uL1VJUHJvY2Vzcy9BUEkvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcCAgfCAgNTUgKysKIC4uLi9VSVByb2Nlc3MvQVBJ
L3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oICAgIHwgIDU5ICsrCiAuLi4vQVBJL3dwZS9D
b21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAgICB8ICAyNSArCiAuLi4vVUlQcm9j
ZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAgICAgICB8ICA5NyArKysKIC4uLi9V
SVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmggICAgICAgIHwgIDU2ICsrCiAu
Li4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAgICB8IDMyMSAr
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5o
ICB8IDEyNyArKysKIC4uLi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxl
ci5jcHAgIHwgIDgwICsrCiAuLi4vVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRy
b2xsZXIuaCAgICB8ICA1NiArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BF
Vmlldy5jcHAgICAgICAgfCAxNTMgKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93
cGUvV1BFVmlldy5oICAgICAgICAgfCAgODMgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwIHwgIDQzICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaCAgIHwgIDQ2ICsKIC4uLi9BUEkvd3BlL1dlYktpdDJJ
bnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sICAgIHwgICA2ICsKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAgICAgIHwgICA0ICstCiAuLi4vSW5zcGVjdG9y
U2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwICB8IDE0MiArKysKIC4uLi9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCAgIHwgICAyICstCiAuLi4v
VUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwICB8IDE1MyArKysr
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaCAgICAgICB8ICAg
MiArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oICAgICAg
fCAgMTAgKy0KIC4uLi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluICAg
ICAgIHwgICA3ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAg
ICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVja2Vy
V1BFLmNwcCAgICB8IDE0MSArKysKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVj
dG9yUHJveHlXUEUuY3BwIHwgMTU2ICsrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUv
V2ViUGFnZVByb3h5V1BFLmNwcCAgIHwgIDY0ICsrCiAuLi4vVUlQcm9jZXNzL3dwZS9XZWJQYXN0
ZWJvYXJkUHJveHlXUEUuY3BwICAgICAgICB8ICA1NSArKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAgfCAgODcgKysKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwIHwgMTYyICsrKysKIFNvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgICAyICstCiBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyUHJlZml4LmggICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogLi4u
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCAgfCAgIDIgKy0K
IC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAgICAgIHwgICA5
ICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgICAgICAgIHwg
ICAyICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICAgICAg
IHwgIDI3ICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAgICAg
ICAgIHwgICA4ICsKIC4uLi9XZWJDb3JlU3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRX
UEUuY3BwIHwgIDU4ICsrCiAuLi4vV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQ
RS5jcHAgICAgICB8IDI0NiArKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC93cGUvV2ViUG9wdXBN
ZW51V1BFLmNwcCAgICAgICAgIHwgIDM4ICsKIC4uLi9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwICB8ICAgNSArCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCAgICAgICAgfCAgIDIgKy0KIC4uLi9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAgIHwgIDQ4ICsrCiAuLi4vV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaCAgICB8ICA0NyArCiAuLi4vV2Vi
UHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHAgICAgICB8IDE5MiArKysrKwog
Li4uL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaCAgICAgICAgfCAgOTAg
KysKIC4uLi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJV1BFLmNwcCAgIHwg
IDQ4ICsrCiAuLi4vV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3BwICAg
ICB8ICA0NSArCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUu
Y3BwICB8ICA5OCArKysKIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWlu
V1BFLmNwcCAgIHwgIDc4ICsrCiBTb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbiAg
ICAgICAgICAgICAgICB8ICAxMSArCiBTb3VyY2UvY21ha2UvRmluZExpYkdCTS5jbWFrZSAgICAg
ICAgICAgICAgICAgICAgICB8ICA0NiArCiBTb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQtbWVz
YS5jbWFrZSAgICAgICAgICAgICB8ICA0NyArCiBTb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQu
Y21ha2UgICAgICAgICAgICAgICAgICB8ICA0NyArCiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5j
bWFrZSAgICAgICAgICAgICAgICAgICAgICB8IDE0MSArKysKIFRvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSAgICAgIHwgICA4ICstCiBUb29scy9CdWlsZFNsYXZl
U3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlICAgICAgICB8ICAgNCArLQogVG9vbHMvQ01ha2VM
aXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKwogVG9vbHMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjYgKysKIFRvb2xz
L0ltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgICAgICAgIHwgICAxICsKIFRv
b2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUgICAgICAgICAgICAgICAgIHwgICA0ICst
CiBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MSArCiBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIgICAgICAgICAgICAgICB8
ICAgNCArLQogVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZCAgICAgICAg
ICAgfCAgIDUgKy0KIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJzICAgICAgICAg
ICAgICAgIHwgIDI0ICsKIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbSAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDMwICstCiBUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3Qu
cG0gICAgICAgICAgICB8ICAzMiArLQogLi4uL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzLnB5ICAgICAgfCAgIDIgKy0KIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9m
YWN0b3J5LnB5ICAgICAgICAgICAgIHwgICA0ICsKIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC93cGUucHkgICAgICAgICAgICAgICAgIHwgIDc5ICsrCiBUb29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtV1BFLmNtYWtlICAgICAgICAgICAgICB8ICA2MCArKwogLi4uL3dwZS9JbmplY3RlZEJ1
bmRsZUNvbnRyb2xsZXJXUEUuY3BwICAgICAgICAgICAgfCAgMzUgKwogVG9vbHMvVGVzdFdlYktp
dEFQSS93cGUvUGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwICAgfCAgNjkgKysKIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvd3BlL21haW4uY3BwICAgICAgICAgICAgICAgICAgIHwgIDMyICsKIC4uLi9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgICAgIHwgICAyICstCiAuLi4v
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCAgICAgICB8ICAgMiArLQog
Li4uL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwICAgICAgfCAgIDIg
Ky0KIC4uLi9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggICAgICAgIHwg
ICAyICstCiAuLi4vV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cCB8ICAgMiArLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmggfCAgIDIgKy0KIC4uLi93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXUEUuY3BwICAg
ICAgICAgICAgIHwgIDcxICsrCiAuLi4vd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3Bw
ICAgICAgICAgICAgICB8IDk1OSArKysrKysrKysrKysrKysrKysrKysKIC4uLi9JbmplY3RlZEJ1
bmRsZS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAgICAgICAgIHwgMTQ1ICsrKysKIC4uLi9Jbmpl
Y3RlZEJ1bmRsZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwICAgICAgIHwgIDM1ICsKIC4uLi9J
bmplY3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5jcHAgICAgICAgICAgIHwgIDU3ICsrCiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlICAgICAgICAgICB8ICA0NyAr
CiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oICAgICAgICAgICB8ICAg
NSArCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICB8
ICAgMiArLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5j
cHAgfCAxMjEgKysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNr
ZW5kLmNwcCB8IDI1MCArKysrKysKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNz
Vmlld0JhY2tlbmQuaCAgIHwgIDcxICsrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0
Zm9ybVdlYlZpZXdXUEUuY3BwICB8IDE0MCArKysKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3Bl
L1Rlc3RDb250cm9sbGVyV1BFLmNwcCAgIHwgMTM5ICsrKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93cGUvbWFpbi5jcHAgICAgICAgICAgICAgICAgfCAgMzQgKwogVG9vbHMvamhidWlsZC9qaGJ1
aWxkLXdyYXBwZXIgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogVG9vbHMvd3BlL2dlbmVy
YXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkgfCAgNzYgKysKIFRvb2xzL3dwZS9q
aGJ1aWxkLm1vZHVsZXMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQ2ICsrKysrKwogVG9v
bHMvd3BlL2poYnVpbGRyYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjUgKwog
Li4uL2NhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaCAgfCAxMzMg
KysrCiAuLi5lcy1hLXNwYWNlLWJldHdlZW4tbGl0ZXJhbC1hbmQtaWRlbnRpZmllci5wYXRjaCB8
ICAzMCArCiAuLi5mcmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRj
aCB8ICAzOSArCiAuLi50ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5w
YXRjaCB8ICAyOSArCiBUb29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoICAg
ICAgICAgICB8ICAzNCArCiAuLi51Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0x
LjEuMC5wYXRjaCB8IDIzNiArKysrKwogLi4uY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNB
X2dlbmVyYXRlX2sucGF0Y2ggfCAgMzcgKwogLi4ubXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmly
c3QtbW9vZi1mb3ItZnIucGF0Y2ggfCAxMzMgKysrCiAuLi5nc3QtcGx1Z2lucy1nb29kLXVzZS10
aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaCB8IDE0NiArKysrCiAuLi5Pbmx5LXB1c2gtYS1DQVBT
LWV2ZW50LWRvd25zdHJlYW0taWYtdGhlLS5wYXRjaCB8ICAzMiArCiAyMDggZmlsZXMgY2hhbmdl
ZCwgMTExNDQgaW5zZXJ0aW9ucygrKSwgOTcgZGVsZXRpb25zKC0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308589</attachid>
            <date>2017-04-28 13:29:24 -0700</date>
            <delta_ts>2017-04-28 13:30:16 -0700</delta_ts>
            <desc>\</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>502834</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDJhNGQxZGI4YWJiLi4wYzM1ZDY2MGI1YyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA0LTI4ICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdlYmtpdC1kZXYg
dGhyZWFkOgorICAgICAgICBodHRwczovL2xpc3RzLndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtp
dC1kZXYvMjAxNy1BcHJpbC8wMjg5MjMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IEFkZCB0aGUgV1BFIHBvcnQgaWRlbnRpZmllci4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvRmlu
ZExpYkdCTS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNr
ZW5kLW1lc2EuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kV1BFQmFj
a2VuZC5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21h
a2U6IEFkZGVkLgorCiAyMDE3LTA0LTI1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ29jb2FdW1dpbl0gRW5hYmxlIG9mIFgtQ29udGVudC1UeXBlLU9wdGlv
bnM6IG5vc25pZmYgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2NjFjNDlkYWVh
Yy4uYjcwMWI5MmQ3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDE3LTA0LTI4ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAg
ICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAq
IHNoZWxsL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKwogMjAxNy0wNC0yOCAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IGluc3RydW1lbnRhdGlvbiBm
cm9tIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAwODYgdGhhdCBp
cyBubyBsb25nZXIgbmVlZGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYTg0YTA1ZDQwZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtMCwwICsxLDIzIEBACitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQorbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtXVEZfRElSfQor
KQorCitzZXQoV1BFX0lOU1RBTExFRF9KQVZBU0NSSVBUQ09SRV9IRUFERVJTCisgICAgQVBJL0pT
QmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisgICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAg
ICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5cGVkQXJyYXkuaAorICAgIEFQSS9KU1Zh
bHVlUmVmLmgKKyAgICBBUEkvSmF2YVNjcmlwdC5oCisgICAgQVBJL1dlYktpdEF2YWlsYWJpbGl0
eS5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hF
QURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUt
JHtXUEVfQVBJX1ZFUlNJT059L1dQRS9KYXZhU2NyaXB0Q29yZSIKKyAgICBDT01QT05FTlQgIkRl
dmVsb3BtZW50IgorKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BF
LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjMxODNhMmIw
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3QoQVBQRU5EIEpTQ19MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCmluZGV4IDZh
NGMxODBmYWFjLi41ZjU4NjA1Yzg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDE3LTA0LTI4ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0u
aDoKKyAgICAgICAgQWxsb3cgYnVpbGRpbmcgV1BFIG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHBy
b3ZpZGUgWDExIGxpYnJhcmllcy4KKwogMjAxNy0wNC0yMCAgS29uc3RhbnRpbiBUb2thcmV2ICA8
YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgW2NtYWtlXSBEZWZpbmUgRk9SV0FSRElOR19I
RUFERVJTX0RJUiBpbiBXZWJLaXRGUyBhbmQgdXNlIGl0IGV2ZXJ5d2hlcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCmluZGV4IDk5OWY2
ZTI4YjJjLi45YmI3NTkxMGFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
aW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9p
bmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCkBAIC05OSw3ICs5OSw3IEBAIHR5cGVkZWYgc3RydWN0
IEFOYXRpdmVXaW5kb3cqICAgICAgICAgICBFR0xOYXRpdmVXaW5kb3dUeXBlOwogdHlwZWRlZiBz
dHJ1Y3QgZWdsX25hdGl2ZV9waXhtYXBfdCogICAgIEVHTE5hdGl2ZVBpeG1hcFR5cGU7CiB0eXBl
ZGVmIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdMTmF0aXZlRGlzcGxheVR5cGU7
CiAKLSNlbGlmIGRlZmluZWQoVVNFX09aT05FKQorI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpIHx8
IGRlZmluZWQoVVNFX1dQRSkKIAogdHlwZWRlZiBpbnRwdHJfdCBFR0xOYXRpdmVEaXNwbGF5VHlw
ZTsKIHR5cGVkZWYgaW50cHRyX3QgRUdMTmF0aXZlV2luZG93VHlwZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZjc3ZDQxZTkw
NDIuLmM0M2QxMzhhNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA0LTI4ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BF
IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4K
KyAgICAgICAgKiB3dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaDoKKwogMjAxNy0wNC0y
NyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
TW92ZSBVVUlEIGZyb20gV2ViQ29yZS9wbGF0Zm9ybSB0byBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDAy
ZWNmNDE3MTQ4Li40ZTYxMDEyNmI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC00NjEsNiArNDYxLDggQEAK
IC8qIFBMQVRGT1JNKFdJTikgKi8KICNpZiBkZWZpbmVkKEJVSUxESU5HX0dUS19fKQogI2RlZmlu
ZSBXVEZfUExBVEZPUk1fR1RLIDEKKyNlbGlmIGRlZmluZWQoQlVJTERJTkdfV1BFX18pCisjZGVm
aW5lIFdURl9QTEFURk9STV9XUEUgMQogI2VsaWYgZGVmaW5lZChCVUlMRElOR19KU0NPTkxZX18p
CiAvKiBKU0NPbmx5IGRvZXMgbm90IHByb3ZpZGUgUExBVEZPUk0oKSBtYWNybyAqLwogI2VsaWYg
T1MoTUFDX09TX1gpCkBAIC01MDUsNyArNTA3LDcgQEAKICNkZWZpbmUgVVNFX0NBIDEKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KQogI2RlZmluZSBVU0VfQ0FJUk8gMQogI2RlZmluZSBVU0VfR0xJQiAxCiAjZGVmaW5lIFVTRV9G
UkVFVFlQRSAxCkBAIC02MjEsNyArNjIzLDcgQEAKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoSEFW
RV9BQ0NFU1NJQklMSVRZKQotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKSB8fCBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgSEFWRV9BQ0NFU1NJQklMSVRZ
IDEKICNlbmRpZgogI2VuZGlmIC8qICFkZWZpbmVkKEhBVkVfQUNDRVNTSUJJTElUWSkgKi8KQEAg
LTc3MSw3ICs3NzMsNyBAQAogI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCiAjZW5kaWYKIC8qIEVu
YWJsZSB0aGUgREZHIEpJVCBvbiBBUk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUyBhbmQgUXQvR1RL
KyBMaW51eC4gKi8KLSNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKEdUSykpCisjaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUo
QVJNNjQpKSAmJiAoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkpCiAjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcg
SklUIG9uIEFSTSBhbmQgTUlQUy4gKi8KQEAgLTk1OCw3ICs5NjAsNyBAQAogCiAvKiBDU1MgU2Vs
ZWN0b3IgSklUIENvbXBpbGVyICovCiAjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19TRUxFQ1RPUl9K
SVQpCi0jaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAm
JiBQTEFURk9STShJT1MpKSkgJiYgRU5BQkxFKEpJVCkgJiYgKE9TKERBUldJTikgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVN
QjIpICYmIFBMQVRGT1JNKElPUykpKSAmJiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiAjZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNU
T1JfSklUIDEKICNlbHNlCiAjZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDAKQEAgLTEw
MjUsNyArMTAyNyw3IEBACiAjZGVmaW5lIFVTRV9FWFBPUlRfTUFDUk9TX0ZPUl9URVNUSU5HIDEK
ICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfVU5JWF9ET01BSU5fU09DS0VUUyAxCiAjZW5kaWYKIApAQCAt
MTA3NSwxMSArMTA3NywxMSBAQAogI2RlZmluZSBVU0VfVklERU9UT09MQk9YIDEKICNlbmRpZgog
Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JNKFdJTikg
JiYgIVVTRShXSU5HREkpKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkgfHwgKFBMQVRGT1JNKFdJTikgJiYgIVVTRShXSU5HREkpKQogI2RlZmlu
ZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgVVNFX1JFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FX0RJU1BMQVlfTU9OSVRPUiAxCiAjZW5kaWYKIApAQCAtMTE0Miw3ICsxMTQ0LDcgQEAK
ICNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX1VTQUdFIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
R1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogI3VuZGVmIEVOQUJMRV9P
UEVOVFlQRV9WRVJUSUNBTAogI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgMQogI2Rl
ZmluZSBFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT05fU0tJUF9JTksgMQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGI4MzFl
ZWUwM2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5jbWFr
ZQpAQCAtMCwwICsxLDI4IEBACitsaXN0KEFQUEVORCBXVEZfU09VUkNFUworICAgIFBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCisgICAgVW5pU3RkRXh0cmFzLmNwcAorCisg
ICAgZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcAorCisgICAgZ2xpYi9HTGliVXRpbGl0aWVz
LmNwcAorICAgIGdsaWIvR1JlZlB0ci5jcHAKKyAgICBnbGliL01haW5UaHJlYWRHTGliLmNwcAor
ICAgIGdsaWIvUnVuTG9vcEdMaWIuY3BwCisKKyAgICBsaW51eC9DdXJyZW50UHJvY2Vzc01lbW9y
eVN0YXR1cy5jcHAKKyAgICBsaW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKKwor
ICAgIHRleHQvdW5peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVVW5peC5jcHAKKykKKwor
bGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUworICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorICAg
ICR7R0xJQl9HT0JKRUNUX0xJQlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgIHB0
aHJlYWQKKyAgICAke1pMSUJfTElCUkFSSUVTfQorKQorCitsaXN0KEFQUEVORCBXVEZfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CispCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oIGIvU291cmNlL1dURi93
dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAppbmRleCA4ZDI0N2MzMWU1Ni4uYzlhNDU2
NzUxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcFNvdXJjZVByaW9y
aXR5LmgKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaApA
QCAtMjMsNiArMjMsOCBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmIFBMQVRGT1JNKEdUSykK
KwogLy8gVGhpcyBpcyBhIGdsb2JhbCBlbnVtIHRvIGRlZmluZSBwcmlvcml0aWVzIHVzZWQgYnkg
R0xpYiBydW4gbG9vcCBzb3VyY2VzLgogLy8gSW4gR0xpYiwgcHJpb3JpdGllcyBhcmUgcmVwcmVz
ZW50ZWQgYnkgYW4gaW50ZWdlciB3aGVyZSBsb3dlciB2YWx1ZXMgbWVhbgogLy8gaGlnaGVyIHBy
aW9yaXR5LiBUaGUgZm9sbG93aW5nIG1hY3JvcyBhcmUgZGVmaW5lZCBpbiBHTGliOgpAQCAtODAs
NiArODIsMzMgQEAgZW51bSBSdW5Mb29wU291cmNlUHJpb3JpdHkgewogICAgIERpc2tDYWNoZVdy
aXRlID0gMjAwLAogfTsKIAorI2VsaWYgUExBVEZPUk0oV1BFKQorCitlbnVtIFJ1bkxvb3BTb3Vy
Y2VQcmlvcml0eSB7CisgICAgUnVuTG9vcERpc3BhdGNoZXIgPSAtNzAsCisgICAgUnVuTG9vcFRp
bWVyID0gLTcwLAorCisgICAgTWFpblRocmVhZERpc3BhdGNoZXJUaW1lciA9IC02MCwKKworICAg
IE1lbW9yeVByZXNzdXJlSGFuZGxlclRpbWVyID0gLTgwLAorCisgICAgSmF2YXNjcmlwdFRpbWVy
ID0gLTYwLAorICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lciA9IC02MCwKKworICAgIExheWVyRmx1
c2hUaW1lciA9IC03MCwKKyAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JUaW1lciA9IC03MCwKKwor
ICAgIENvbXBvc2l0aW5nVGhyZWFkVXBkYXRlVGltZXIgPSAtNzAsCisKKyAgICBSZWxlYXNlVW51
c2VkUmVzb3VyY2VzVGltZXIgPSAtNzAsCisKKyAgICBBc3luY0lPTmV0d29yayA9IC03MCwKKyAg
ICBEaXNrQ2FjaGVSZWFkID0gLTcwLAorICAgIERpc2tDYWNoZVdyaXRlID0gLTYwCit9OworCisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6UnVuTG9vcFNvdXJjZVBy
aW9yaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwMzE4N2VhMWI5NC4uM2JmZThmN2ExMTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDA1LDcgKzQwMDUsOCBAQCBpZiAoRU5BQkxFX0dS
QVBISUNTX0NPTlRFWFRfM0QgQU5EIE5PVCBXSU4zMikKICAgICBzZXRfcHJvcGVydHkoVEFSR0VU
IEFOR0xFU3VwcG9ydAogICAgICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAg
ICAgIEFOR0xFX0VOQUJMRV9FU1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAg
ICBBTkdMRV9FTkFCTEVfR0xTTAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05T
fSkKIAogICAgIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRF
CiAgICAgICAgICIke1RISVJEUEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YjEzZDJm
OTY2NS4uYmI5NGY4NDhhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAxNy0wNC0y
OCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJl
YW0gdGhlIFdQRSBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzExMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICB3ZWJraXQtZGV2IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQu
b3JnL3BpcGVybWFpbC93ZWJraXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAg
ICBFeGlzdGluZyBmaWxlcyBtb3N0bHkgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0o
V1BFKSBidWlsZCBndWFyZHMuCisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20g
dGhpcyBDaGFuZ2VMb2cgZW50cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAuCisgICAgICAgICogY29u
ZmlnLmg6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAgICAgKiBj
cnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6
CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL3dwZS9FZGl0
b3JXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgICogcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vQ3Vyc29yLmg6CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9EcmFnSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6
CisgICAgICAgICogcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
YXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZv
cm0vU2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9BTkdMRVdlYktpdEJyaWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybURpc3BsYXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xD
b250ZXh0RUdMLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0
RUdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9C
dXNHTGliLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93cGUvSWNvbldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy93cGUvSW1hZ2VXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3Jt
RGlzcGxheVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dwZS9Q
bGF0Zm9ybURpc3BsYXlXUEUuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL0N1cnNv
cldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS93cGUvUGFzdGVib2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0v
d3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvUmVuZGVyVGhl
bWVXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hl
ZWxFdmVudC5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAg
ICogcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9TY3JvbGxiYXJUaGVtZVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAg
ICAgICAqIHBsYXRmb3JtL3dwZS9UaGVtZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL3dwZS9UaGVtZVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKwogMjAx
Ny0wNC0yOCAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0FUS10gYXJpYS1tb2RhbD0idHJ1ZSIgc2hvdWxkIGJlIGV4cG9zZWQgdmlhIEFUS19TVEFURV9N
T0RBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggMDY0ZjNhNzIwMWUuLjk1ODJkNWU2ZjBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wNC0yOCAgWmFuIERvYmVyc2Vr
ICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9Q
bGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisKIDIwMTctMDQtMjUgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV1bV2luXSBFbmFibGUgb2YgWC1Db250
ZW50LVR5cGUtT3B0aW9uczogbm9zbmlmZiBoZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Bs
YXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43
NzVjMTg5ODRhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSwzIEBACitsaXN0KEFQUEVORCBQQUxfU09VUkNFUwor
ICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvRGlnZXN0R0NyeXB0LmNwcAorKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDExN2Vl
ZDFlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFr
ZQpAQCAtMCwwICsxLDMwNCBAQAoraW5jbHVkZShwbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UpCitp
bmNsdWRlKHBsYXRmb3JtL0ltYWdlRGVjb2RlcnMuY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL0xp
bnV4LmNtYWtlKQoraW5jbHVkZShwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlKQorCisjIEFs
bG93IGJ1aWxkaW5nIEFOR0xFIG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHByb3ZpZGUgWDExIGhl
YWRlcnMuCitpZiAoUE9SVCBTVFJFUVVBTCAiV1BFIikKKyAgICBsaXN0KEFQUEVORCBBTkdMRV9Q
TEFURk9STV9ERUZJTklUSU9OUyAiVVNFX1dQRSIpCitlbmRpZiAoKQorCitsaXN0KEFQUEVORCBX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVND
UklQVENPUkVfRElSfSIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElS
fS9pbnNwZWN0b3IiCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9CisgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9
L0FQSSIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2VtYmxlciIKKyAgICAiJHtKQVZB
U0NSSVBUQ09SRV9ESVJ9L2J5dGVjb2RlIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0
ZWNvbXBpbGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgorICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
ZG9taml0IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKKyAgICAiJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L2RlYnVnZ2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50ZXJw
cmV0ZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9qaXQiCisgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9sbGludCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BhcnNlciIKKyAg
ICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3Byb2ZpbGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vcnVudGltZSIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3lhcnIiCisgICAgIiR7
VEhJUkRQQVJUWV9ESVJ9L0FOR0xFLyIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvaW5j
bHVkZS9LSFIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2NhaXJvIgorICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFw
aGljcy9nbHgiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBl
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6LyIKKyAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmciCisgICAgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL3dwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZCIK
KyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZSIKKyAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS90ZXh0L2ljdSIKKyAgICAke1dURl9ESVJ9CispCisKK2xpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUworICAgIGFjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCisg
ICAgYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKKworICAgIGxv
YWRlci9zb3VwL0NhY2hlZFJhd1Jlc291cmNlU291cC5jcHAKKyAgICBsb2FkZXIvc291cC9TdWJy
ZXNvdXJjZUxvYWRlclNvdXAuY3BwCisKKyAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVN0aWNreU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAor
ICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcAorICAgIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorCisgICAgcGFnZS9zY3JvbGxpbmcv
Y29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhp
Y3MuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdT
dGF0ZU5vZGVDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorCisgICAgcGxhdGZvcm0vQ3Vyc29yLmNw
cAorICAgIHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCisgICAgcGxhdGZvcm0vVGhlbWUuY3BwCisKKyAgICBwbGF0Zm9ybS9hdWRp
by9nbGliL0F1ZGlvQnVzR0xpYi5jcHAKKworICAgIHBsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xp
Yi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorICAgIHBsYXRmb3Jt
L2dsaWIvS2V5ZWREZWNvZGVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL0tleWVkRW5jb2Rl
ckdsaWIuY3BwCisgICAgcGxhdGZvcm0vZ2xpYi9NYWluVGhyZWFkU2hhcmVkVGltZXJHTGliLmNw
cAorICAgIHBsYXRmb3JtL2dsaWIvU1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKyAgICBwbGF0Zm9y
bS9nbGliL1NoYXJlZEJ1ZmZlckdsaWIuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HTENv
bnRleHQuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9XT0ZG
RmlsZUZvcm1hdC5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9y
ZUJhY2tlbmRDYWlyb0ltcGwuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9V
dGlsaXRpZXMuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRmxvYXRSZWN0Q2Fpcm8u
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhZGllbnRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VD
YWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUGF0dGVybkNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRm
b3JtQ29udGV4dENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3Jt
UGF0aENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJvLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4Q2Fpcm8u
Y3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAorCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9HbHlwaFBhZ2VUcmVlTm9kZUZy
ZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3Ry
ZWFtZXJDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhU
ZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0hhcmZCdXp6RmFjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNo
YXBlci5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0xDb21tb24uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xFUy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9y
YXJ5T3BlbkdMU2V0dGluZy5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlVmVydGljYWxEYXRhLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRm
b3JtRGlzcGxheVdQRS5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0lt
YWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
ZXJ0aWZpY2F0ZUluZm8uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9DcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0dSZWZQdHJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVNlcnZl
clNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNw
cAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25l
dHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsv
c291cC9TeW5jaHJvbm91c0xvYWRlckNsaWVudFNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKKworICAgIHBsYXRmb3JtL3NvdXAv
U2hhcmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCisKKyAg
ICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcAorICAgIHBsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAorICAgIHBsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCisKKyAgICBwbGF0Zm9ybS91bml4L0xv
Z2dpbmdVbml4LmNwcAorCisgICAgcGxhdGZvcm0veGRnL01JTUVUeXBlUmVnaXN0cnlYZGcuY3Bw
CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVQbGF0Zm9ybVdQRV9TT1VSQ0VTCisgICAgZWRpdGlu
Zy93cGUvRWRpdG9yV1BFLmNwcAorCisgICAgcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcAor
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JbWFnZVdQRS5jcHAKKworICAgIHBsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwCisgICAgcGxh
dGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1Bhc3Rl
Ym9hcmRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5j
cHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcAorICAgIHBsYXRm
b3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUmVuZGVyVGhl
bWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcAorICAgIHBs
YXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvVGhlbWVXUEUuY3BwCisg
ICAgcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKKykKKworbGlzdChBUFBFTkQgV2ViQ29yZV9V
U0VSX0FHRU5UX1NUWUxFX1NIRUVUUworICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFj
b250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5jc3MKKykKKworc2V0KFdlYkNvcmVfVVNFUl9BR0VO
VF9TQ1JJUFRTCisgICAgJHtXRUJDT1JFX0RJUn0vRW5nbGlzaC5scHJvai9tZWRpYUNvbnRyb2xz
TG9jYWxpemVkU3RyaW5ncy5qcworICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFjb250
cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qcworKQorCitzZXQoV2ViQ29yZV9VU0VSX0FHRU5UX1ND
UklQVFNfREVQRU5ERU5DSUVTICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVt
ZVdQRS5jcHApCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCisgICAgJHtDQUlST19M
SUJSQVJJRVN9CisgICAgJHtFR0xfTElCUkFSSUVTfQorICAgICR7Rk9OVENPTkZJR19MSUJSQVJJ
RVN9CisgICAgJHtGUkVFVFlQRTJfTElCUkFSSUVTfQorICAgICR7R0xJQl9HSU9fTElCUkFSSUVT
fQorICAgICR7R0xJQl9HTU9EVUxFX0xJQlJBUklFU30KKyAgICAke0dMSUJfR09CSkVDVF9MSUJS
QVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAgICAke0dOVVRMU19MSUJSQVJJRVN9Cisg
ICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9CisgICAgJHtJQ1VfTElCUkFSSUVTfQorICAgICR7TElC
R0NSWVBUX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBfTElCUkFSSUVTfQorICAgICR7TElCWE1M
Ml9MSUJSQVJJRVN9CisgICAgJHtMSUJYU0xUX0xJQlJBUklFU30KKyAgICAke1NRTElURV9MSUJS
QVJJRVN9CisgICAgJHtXUEVfTElCUkFSSUVTfQorKQorCitsaXN0KEFQUEVORCBXZWJDb3JlX0lO
Q0xVREVfRElSRUNUT1JJRVMKKyAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KKyAgICAke0VHTF9J
TkNMVURFX0RJUlN9CisgICAgJHtGT05UQ09ORklHX0lOQ0xVREVfRElSU30KKyAgICAke0ZSRUVU
WVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0dOVVRM
U19JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9JTkNMVURFX0RJUlN9CisgICAgJHtJQ1Vf
SU5DTFVERV9ESVJTfQorICAgICR7TElCR0NSWVBUX0lOQ0xVREVfRElSU30KKyAgICAke0xJQlNP
VVBfSU5DTFVERV9ESVJTfQorICAgICR7TElCWE1MMl9JTkNMVURFX0RJUn0KKyAgICAke0xJQlhT
TFRfSU5DTFVERV9ESVJ9CisgICAgJHtTUUxJVEVfSU5DTFVERV9ESVJ9CisgICAgJHtXUEVfSU5D
TFVERV9ESVJTfQorKQorCithZGRfbGlicmFyeShXZWJDb3JlUGxhdGZvcm1XUEUgJHtXZWJDb3Jl
X0xJQlJBUllfVFlQRX0gJHtXZWJDb3JlUGxhdGZvcm1XUEVfU09VUkNFU30pCithZGRfZGVwZW5k
ZW5jaWVzKFdlYkNvcmVQbGF0Zm9ybVdQRSBXZWJDb3JlKQorV0VCS0lUX1NFVF9FWFRSQV9DT01Q
SUxFUl9GTEFHUyhXZWJDb3JlUGxhdGZvcm1XUEUpCit0YXJnZXRfaW5jbHVkZV9kaXJlY3Rvcmll
cyhXZWJDb3JlUGxhdGZvcm1XUEUgUFJJVkFURQorICAgICR7V2ViQ29yZV9JTkNMVURFX0RJUkVD
VE9SSUVTfQorKQordGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoV2ViQ29yZVBsYXRmb3JtV1BF
IFNZU1RFTSBQUklWQVRFCisgICAgJHtXZWJDb3JlX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVT
fQorKQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdlYkNvcmVQbGF0Zm9ybVdQRQorICAgICR7V2Vi
Q29yZV9MSUJSQVJJRVN9CispCisKK2lmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKKyAgICBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5j
cHAKKyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAorICAgICAgICBj
cnlwdG8vQ3J5cHRvS2V5LmNwcAorICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAg
ICAgICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAorCisgICAgICAgIGNyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DVFIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19HQ00uY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19LVy5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtRUNESC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
RUNEU0EuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYu
Y3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCisg
ICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5jcHAKKyAgICAg
ICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAK
KyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3Yx
XzUuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQ
LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAor
ICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCisgICAg
ICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKKyAgICAgICAg
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAorICAgICAgICBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCisKKyAgICAgICAgY3J5cHRv
L2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8v
Z2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DRkJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9n
Y3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfR0NNR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1FQ0RIR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0Ny
eXB0b0FsZ29yaXRobUVDRFNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0
b0FsZ29yaXRobUhLREZHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxn
b3JpdGhtSE1BQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0
aG1QQktERjJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGht
UlNBRVNfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUEdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9LZXlFQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlS
U0FHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvU2VyaWFsaXplZENyeXB0b0tleVdy
YXBHQ3J5cHQuY3BwCisKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAorICAg
ICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHAKKyAgICAgICAg
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwCisgICAgICAgIGNyeXB0
by9rZXlzL0NyeXB0b0tleUVDLmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlITUFD
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisgICAgICAgIGNyeXB0
by9rZXlzL0NyeXB0b0tleVJhdy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2Vy
aWFsaXphdGlvblJhdy5jcHAKKyAgICApCitlbmRpZiAoKQorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGRkM2Y1NTM0Njlm
Li5iZjE4NGVhYzQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTY2LDYgKzY2LDggQEAgdHlwZWRlZiBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbGlmIFBM
QVRGT1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogdHlwZWRl
ZiBzdHJ1Y3QgX0F0a09iamVjdCBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKKyNlbGlmIFBM
QVRGT1JNKFdQRSkKK2NsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+IHsgfTsKICNlbHNlCiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbmRpZgpAQCAtMTExNiw2ICsxMTE4LDggQEAg
cHJvdGVjdGVkOgogICAgIENPTVB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93cmFw
cGVyOwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEF0a09iamVjdCogbV93cmFwcGVyOworI2Vs
aWYgUExBVEZPUk0oV1BFKQorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4g
bV93cmFwcGVyOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xNTQxNTk0YWRlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCkBAIC0wLDAgKzEs
NjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlEZXRh
Y2htZW50VHlwZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVt
ZW50Q2hhbmdlZChOb2RlKiwgTm9kZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBlOTRjNTk5NGNhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9i
amVjdFdQRS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJ
Z2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFj
aG1lbnQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKaW5k
ZXggZDVkNDNmZTRkZjQuLjE4MDk5MGViZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b25maWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaApAQCAtMTA0LDcgKzEwNCw3IEBA
CiAjZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oV1BFKQogI2RlZmluZSBVU0VfTkVXX1RIRU1FIDEKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAppbmRleCA0NDNhNjgyMTVhYi4uNGM3
ZDAyOThlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eUVDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaApAQCAt
MzYsNyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0NFQ0NyeXB0b3IgKkNDRUNDcnlwdG9yUmVm
OwogdHlwZWRlZiBDQ0VDQ3J5cHRvclJlZiBQbGF0Zm9ybUVDS2V5OwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5
X3NleHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBn
Y3J5X3NleHAqIFBsYXRmb3JtRUNLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8va2V5cy9DcnlwdG9LZXlSU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0
b0tleVJTQS5oCmluZGV4IDMwNWJkNGM0M2EwLi40MWJjZTg1OWVhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBz
dHJ1Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwogdHlwZWRlZiBDQ1JTQUNyeXB0
b3JSZWYgUGxhdGZvcm1SU0FLZXk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIC8vIGdjcnlfc2V4cCogZXF1YXRlcyBnY3J5
X3NleHBfdC4KIHN0cnVjdCBnY3J5X3NleHA7CiB0eXBlZGVmIGdjcnlfc2V4cCogUGxhdGZvcm1S
U0FLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZTlhMjk2NGVlNWIuLmU2MDAx
NzM5ZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xMjQ2LDEzICsxMjQ2LDEz
IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBh
Y3Rpb24pCiAgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VE
b2N1bWVudChkb2N1bWVudCgpKTsKIAogICAgICAgICBpZiAoaW1hZ2VFbGVtZW50KSB7Ci0jaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgICAgICB3cml0ZUltYWdlVG9Q
YXN0ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgKmltYWdlRWxl
bWVudCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1lbnQoKS50aXRsZSgpKTsKICNlbHNlCiAgICAg
ICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgq
aW1hZ2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgpLnRpdGxlKCkpOwogI2Vu
ZGlmCiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252
ZXJ0IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KQEAg
LTEzNzcsNyArMTM3Nyw3IEBAIHZvaWQgRWRpdG9yOjpjb3B5SW1hZ2UoY29uc3QgSGl0VGVzdFJl
c3VsdCYgcmVzdWx0KQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICB1cmwgPSByZXN1
bHQuYWJzb2x1dGVJbWFnZVVSTCgpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCiAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29w
eUFuZFBhc3RlKCksICplbGVtZW50LCB1cmwsIHJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOwog
I2Vsc2UKICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFn
ZSgqZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0RGlzcGxheVN0cmluZygpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCmluZGV4IDg3NjcyMGY4MTViLi5kODg0YjdlNTZiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCkBAIC00NjcsNyArNDY3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0
cmluZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6
UmVzcGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJv
YXJkKFBhc3RlYm9hcmQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlSW1hZ2VUb1Bh
c3RlYm9hcmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmIGltYWdlRWxlbWVudCwgY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihQYXN0ZWJvYXJk
V3JpdGVyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRp
dG9yV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQyOTRjZDk4NDdlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9yV1BFLmNwcApAQCAt
MCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIKKworI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIm1hcmt1
cC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tUGFzdGVib2FyZERhdGEoUGFzdGVib2FyZCYgcGFzdGVi
b2FyZCwgRnJhbWUmIGZyYW1lLCBSYW5nZSYgcmFuZ2UsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJv
b2wmIGNob3NlUGxhaW5UZXh0KQoreworICAgIGNob3NlUGxhaW5UZXh0ID0gZmFsc2U7CisKKyAg
ICBWZWN0b3I8U3RyaW5nPiB0eXBlcyA9IHBhc3RlYm9hcmQudHlwZXMoKTsKKyAgICBpZiAodHlw
ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5j
b250YWlucygidGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiKSAmJiBmcmFtZS5kb2N1bWVudCgpKSB7
CisgICAgICAgIFN0cmluZyBtYXJrdXAgPSBwYXN0ZWJvYXJkLnJlYWRTdHJpbmcoInRleHQvaHRt
bDtjaGFyc2V0PXV0Zi04Iik7CisgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoKmZyYW1lLmRvY3VtZW50KCksIG1h
cmt1cCwgZW1wdHlTdHJpbmcoKSwgRGlzYWxsb3dTY3JpcHRpbmdBbmRQbHVnaW5Db250ZW50KSkK
KyAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisKKyAgICBpZiAoIWFsbG93UGxh
aW5UZXh0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5jb250YWlu
cygidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IikpIHsKKyAgICAgICAgY2hvc2VQbGFpblRleHQg
PSB0cnVlOworICAgICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0g
Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dChyYW5nZSwgcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0
L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkpCisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQ7Cisg
ICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgRWRpdG9yOjp3cml0ZVNlbGVj
dGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKQoreworICAgIFBhc3RlYm9h
cmRXZWJDb250ZW50IHBhc3RlYm9hcmRDb250ZW50OworICAgIHBhc3RlYm9hcmRDb250ZW50LnRl
eHQgPSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsKKyAgICBwYXN0ZWJvYXJkQ29udGVu
dC5tYXJrdXAgPSBjcmVhdGVNYXJrdXAoKnNlbGVjdGVkUmFuZ2UoKSwgbnVsbHB0ciwgQW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25Mb2NhbFVSTHMpOworICAgIHBhc3Rl
Ym9hcmQud3JpdGUocGFzdGVib2FyZENvbnRlbnQpOworfQorCit2b2lkIEVkaXRvcjo6d3JpdGVJ
bWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBFZGl0b3I6OnBh
c3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgYm9vbCBhbGxvd1BsYWlu
VGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQorewor
ICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJhbmdlKCk7CisgICAgaWYgKCFyYW5n
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKKyAgICBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21QYXN0ZWJv
YXJkRGF0YSgqcGFzdGVib2FyZCwgbV9mcmFtZSwgKnJhbmdlLCBhbGxvd1BsYWluVGV4dCwgY2hv
c2VQbGFpblRleHQpOworICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChm
cmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6UGFzdGVkKSkKKyAgICAgICAgcGFz
dGVBc0ZyYWdtZW50KCpmcmFnbWVudCwgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoKnBh
c3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgbWFpbEJsb2NrcXVvdGVIYW5kbGluZyk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApp
bmRleCA3OTUyY2FiZjgyNS4uNzFjMDNiN2ZjOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjppc0luc2lk
ZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYgd2luZG93UG9pbnQpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAh
UExBVEZPUk0oV1BFKQogCiBib29sIEV2ZW50SGFuZGxlcjo6c2hvdWxkVHVyblZlcnRpY2FsVGlj
a3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3BlL0V2
ZW50SGFuZGxlcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJX
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMTRlMGZlM2Jm
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3BlL0V2ZW50SGFuZGxl
cldQRS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV2ZW50
SGFuZGxlci5oIgorCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNv
bnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZp
ZXcoKQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCisgICAgICAgIHBh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRGcmFtZSgmbV9mcmFtZSk7Cit9CisKK2Jv
b2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChjb25zdCBN
b3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3Vz
ZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VE
b3duRXZlbnRUb1dpZGdldChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjp3aWRnZXREaWRI
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdldCYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRI
YW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSZXN1bHRzJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlTW92ZUV2ZW50VG9TdWJm
cmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgRnJhbWUqLCBIaXRUZXN0UmVzdWx0
KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVy
PiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkFsdEtleTsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50b0hvcml6b250YWwo
Y29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ3Vyc29yLmgKaW5kZXggY2RjZjI2NWYyNjAuLjVlOTExZDcwOGIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNzQsNiArNzQsOCBAQCB1c2luZyBQbGF0Zm9ybUN1cnNv
ciA9IFJlZlB0cjxTaGFyZWRDdXJzb3I+OwogdXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBOU0N1cnNv
ciAqOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBHUmVmUHRy
PEdka0N1cnNvcj47CisjZWxpZiBQTEFURk9STShXUEUpCit1c2luZyBQbGF0Zm9ybUN1cnNvciA9
IHZvaWQqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0Rh
dGEuaAppbmRleCA2ODkxOTdmN2I1Ni4uNTBjZWI4NmM1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RHJhZ0RhdGEuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBT
ZWxlY3Rpb25EYXRhOwogfQogdHlwZWRlZiBXZWJDb3JlOjpTZWxlY3Rpb25EYXRhKiBEcmFnRGF0
YVJlZjsKLSNlbGlmIFBMQVRGT1JNKElPUykKKyNlbGlmIFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oV1BFKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGUzMjU1ZDE5YWQyLi41NTIxMzFkZDBjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsKIE9CSkNfQ0xBU1MgTlNJbWFnZTsKICNlbGlmIFBMQVRG
T1JNKFdJTikKIHR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyogSEJJVE1BUDsKLSNlbGlmIFBMQVRG
T1JNKEdUSykKKyNlbGlmIFVTRShDQUlSTykKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2Vu
ZGlmCiAKQEAgLTY0LDcgKzY0LDcgQEAgdHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gRHJh
Z0ltYWdlUmVmOwogdHlwZWRlZiBSZXRhaW5QdHI8TlNJbWFnZT4gRHJhZ0ltYWdlUmVmOwogI2Vs
aWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBIQklUTUFQIERyYWdJbWFnZVJlZjsKLSNlbGlmIFBM
QVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRl
ZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBEcmFnSW1hZ2VSZWY7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IDE5NWI2NzZiYzJiLi4xZDgwYjRjMTgzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtMTk4LDcgKzE5OCw3IEBAIFdF
QkNPUkVfRVhQT1JUIGJvb2wgZmlsZXNIYXZlU2FtZVZvbHVtZShjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKTsKIFJldGFpblB0cjxDRlVSTFJlZj4gcGF0aEFzVVJMKGNvbnN0IFN0cmluZyYp
OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXUEUpCiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYpOwogQ1N0
cmluZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKIENTdHJpbmcgc2hhcmVkUmVzb3VyY2Vz
UGF0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNo
YXJlZFRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRU
aW1lci5jcHAKaW5kZXggNzc4Y2FjMmQ5OGIuLmRkYTY4MmViODQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKQEAgLTM0LDcgKzM0
LDcgQEAgTWFpblRocmVhZFNoYXJlZFRpbWVyJiBNYWluVGhyZWFkU2hhcmVkVGltZXI6OnNpbmds
ZXRvbigpCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogTWFpblRocmVhZFNoYXJlZFRpbWVy
OjpNYWluVGhyZWFkU2hhcmVkVGltZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuaAppbmRleCA1OTBmNjg5NGFkMy4uNDkwNzMwZjE0
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRU
aW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1l
ci5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2VuZGlm
CiAKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBNYWluVGhyZWFkU2hhcmVkVGltZXIo
KTsKIAogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2ZpcmVkRnVuY3Rpb247Ci0jaWYgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFJ1bkxv
b3A6OlRpbWVyPE1haW5UaHJlYWRTaGFyZWRUaW1lcj4gbV90aW1lcjsKICNlbmRpZgogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCA0MjllMWFmMTQwMC4uNmU2ZjIxNjVm
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTYyLDcgKzYyLDcgQEAg
ZW51bSBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgeyBEZWZhdWx0
U2VsZWN0ZWRUZXh0VHlwZSwgSW5jbHUKIC8vIEZvciB3cml0aW5nIHRvIHRoZSBwYXN0ZWJvYXJk
LiBHZW5lcmFsbHkgc29ydGVkIHdpdGggdGhlIHJpY2hlc3QgZm9ybWF0cyBvbiB0b3AuCiAKIHN0
cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7Ci0jaWYgIShQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdJTikpCisjaWYgIShQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZP
Uk0oV1BFKSkKICAgICBXRUJDT1JFX0VYUE9SVCBQYXN0ZWJvYXJkV2ViQ29udGVudCgpOwogICAg
IFdFQkNPUkVfRVhQT1JUIH5QYXN0ZWJvYXJkV2ViQ29udGVudCgpOwogICAgIGJvb2wgY2FuU21h
cnRDb3B5T3JEZWxldGU7CkBAIC04MCw2ICs4MCwxMCBAQCBzdHJ1Y3QgUGFzdGVib2FyZFdlYkNv
bnRlbnQgewogICAgIFN0cmluZyB0ZXh0OwogICAgIFN0cmluZyBtYXJrdXA7CiAjZW5kaWYKKyNp
ZiBQTEFURk9STShXUEUpCisgICAgU3RyaW5nIHRleHQ7CisgICAgU3RyaW5nIG1hcmt1cDsKKyNl
bmRpZgogfTsKIAogc3RydWN0IFBhc3RlYm9hcmRVUkwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCBkNzJmMTIwZmNmYy4uM2M2ZGE2YzdiYWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oCkBAIC03
MywxMCArNzMsMTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgbG9uZyBzZXRQYXRobmFtZXNGb3JU
eXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgbG9uZyBzZXRT
dHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUsIGNvbnN0IFNlbGVjdGlvbkRhdGEmKSA9IDA7CiAgICAgdmlydHVhbCBS
ZWY8U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgPSAwOwogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKKworI2lmIFBMQVRGT1JNKFdQ
RSkKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKSA9IDA7
CisgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3cml0
ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwg
Y29uc3QgU3RyaW5nJikgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Q
YXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1QYXN0ZWJvYXJkLmgKaW5kZXggODVhOGM5ZmMwNWMuLjIzZjZmMzBjNTJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtNDAsNiArNDAs
MTAgQEAgT0JKQ19DTEFTUyBOU1Bhc3RlYm9hcmQ7CiBPQkpDX0NMQVNTIFVJUGFzdGVib2FyZDsK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9wYXN0ZWJvYXJkOworI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7CkBAIC01Myw3ICs1Nyw3
IEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKIGNsYXNzIFBsYXRmb3JtUGFzdGVib2Fy
ZCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUGxhdGZvcm1QYXN0ZWJv
YXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwotI2lmIFBMQVRGT1JNKElPUykKKyNp
ZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCBQbGF0
Zm9ybVBhc3RlYm9hcmQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBmaWxl
bmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFR5
cGVzQnlGaWRlbGl0eUZvckl0ZW1BdEluZGV4KFZlY3RvcjxTdHJpbmc+JiB0eXBlcywgaW50IGlu
ZGV4KTsKQEAgLTExMCw2ICsxMTQsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKEdUSykKICAg
ICBHdGtDbGlwYm9hcmQqIG1fY2xpcGJvYXJkOwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQor
ICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZCogbV9wYXN0ZWJvYXJkOworI2VuZGlmCiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKaW5kZXggNWJhZDNj
ZDBkNTYuLjY0ZTM1NjM5NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVn
aXN0cnkuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzZWN1cmVT
Y2hlbWVzKCkKICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoImFib3V0Iik7CiAgICAg
ICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJkYXRhIik7CiAgICAgICAgIHNlY3VyZVNjaGVt
ZXMuZ2V0KCkuYWRkKCJ3c3MiKTsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJyZXNv
dXJjZSIpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRleCA1NWI0
OWE0ZGRjNy4uNWQ3YWE0OGE3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1dpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBAIC02MSw2
ICs2MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrQ29udGFpbmVyIEd0a0NvbnRhaW5lcjsKIHR5
cGVkZWYgR3RrV2lkZ2V0KiBQbGF0Zm9ybVdpZGdldDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
V1BFKQordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVdpZGdldDsKKyNlbmRpZgorCiB0eXBlZGVmIFBs
YXRmb3JtV2lkZ2V0IFBsYXRmb3JtUGFnZUNsaWVudDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dM
aWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIu
Y3BwCmluZGV4IDc5MWJmYTM5NjM2Li44MTk3NWI2NGE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcApAQCAtMjcsMTEgKzI3
LDE3IEBACiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nbGli
L0dVbmlxdWVQdHIuaD4KIAorI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgQVVESU9fR1JFU09V
UkNFX1BBVEggIi9vcmcvd2Via2l0Z3RrL3Jlc291cmNlcy9hdWRpbyIKKyNlbGlmIFBMQVRGT1JN
KFdQRSkKKyNkZWZpbmUgQVVESU9fR1JFU09VUkNFX1BBVEggIi9vcmcvd2Via2l0d3BlL3Jlc291
cmNlcy9hdWRpbyIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8
QXVkaW9CdXM+IEF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiBuYW1l
LCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aChnX3N0cmR1
cF9wcmludGYoIi9vcmcvd2Via2l0Z3RrL3Jlc291cmNlcy9hdWRpby8lcyIsIG5hbWUpKTsKKyAg
ICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ19zdHJkdXBfcHJpbnRmKEFVRElPX0dSRVNPVVJDRV9Q
QVRIICIvJXMiLCBuYW1lKSk7CiAgICAgR1JlZlB0cjxHQnl0ZXM+IGRhdGEgPSBhZG9wdEdSZWYo
Z19yZXNvdXJjZXNfbG9va3VwX2RhdGEocGF0aC5nZXQoKSwgR19SRVNPVVJDRV9MT09LVVBfRkxB
R1NfTk9ORSwgbnVsbHB0cikpOwogICAgIEFTU0VSVChkYXRhKTsKICAgICByZXR1cm4gY3JlYXRl
QnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGdfYnl0ZXNfZ2V0X2RhdGEoZGF0YS5nZXQoKSwgbnVs
bHB0ciksIGdfYnl0ZXNfZ2V0X3NpemUoZGF0YS5nZXQoKSksIGZhbHNlLCBzYW1wbGVSYXRlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKaW5k
ZXggM2NkNTQ3Yjc3YTYuLjI2NTEwNDdlMWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMyw5IEBAIENTdHJpbmcg
c2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAgICAgaWYgKCFjYWNoZWRQYXRoLmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm4gY2FjaGVkUGF0aDsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBHVW5pcXVl
UHRyPGdjaGFyPiBkYXRhUGF0aChnX2J1aWxkX2ZpbGVuYW1lKERBVEFfRElSLCAid3BlIiwgbnVs
bHB0cikpOworI2VsaWYgUExBVEZPUk0oR1RLKQogI2lmIE9TKFdJTkRPV1MpCiAgICAgSE1PRFVM
RSBobW9kdWxlID0gMDsKICAgICBHZXRNb2R1bGVIYW5kbGVFeEEoR0VUX01PRFVMRV9IQU5ETEVf
RVhfRkxBR19GUk9NX0FERFJFU1MsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHNoYXJlZFJlc291
cmNlc1BhdGgpLCAmaG1vZHVsZSk7CkBAIC0yMjIsNiArMjI1LDcgQEAgQ1N0cmluZyBzaGFyZWRS
ZXNvdXJjZXNQYXRoKCkKICNlbHNlCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBhdGgoZ19i
dWlsZF9maWxlbmFtZShEQVRBX0RJUiwgIndlYmtpdGd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lP
Tl9TVFJJTkcsIE5VTEwpKTsKICNlbmRpZgorI2VuZGlmCiAKICAgICBjYWNoZWRQYXRoID0gZGF0
YVBhdGguZ2V0KCk7CiAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAppbmRleCA5MTE0ZTc2
Yzc1OS4uMmFjY2ZhZDE1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUg
PE9wZW5HTC9nbC5oPgogI2VsaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgIk9wZW5HTEVTU2hp
bXMuaCIKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2lmIFVTRShPUEVOR0xfRVNfMikKICNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApp
bmRleCA3MGY1ODczOTJmNi4uYzE1YmVjNWU5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoUGxhdGZv
cm1EaXNwbGF5JiBkaXNwCiAgICAgfQogI2VuZGlmCiAKLSNpZiBVU0UoRUdMKSB8fCBQTEFURk9S
TShXQVlMQU5EKQorI2lmIFVTRShFR0wpIHx8IFBMQVRGT1JNKFdBWUxBTkQpIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBpZiAoYXV0byBlZ2xDb250ZXh0ID0gR0xDb250ZXh0RUdMOjpjcmVhdGVTaGFy
aW5nQ29udGV4dChkaXNwbGF5KSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUoZWdsQ29udGV4dCk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgK
aW5kZXggMmMwZWEyN2UxOTMuLjlkNmRiMTcyYWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApAQCAtMjUsNyArMjUsMTQgQEAKICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KIAogI2lmIFVTRShFR0wpICYmICFQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oV1BFKQorLy8gRklYTUU6IEZvciBub3cgZGVmYXVsdCB0byB0aGUgR0JNIEVHTCBw
bGF0Zm9ybSwgYnV0IHRoaXMgc2hvdWxkIHJlYWxseSBiZQorLy8gc29tZWhvdyBkZWR1Y2libGUg
ZnJvbSB0aGUgYnVpbGQgY29uZmlndXJhdGlvbi4KKyNkZWZpbmUgX19HQk1fXyAxCisjaW5jbHVk
ZSA8RUdML2VnbHBsYXRmb3JtLmg+CisjZWxzZQogI2luY2x1ZGUgImVnbHBsYXRmb3JtLmgiCisj
ZW5kaWYKIHR5cGVkZWYgRUdMTmF0aXZlV2luZG93VHlwZSBHTE5hdGl2ZVdpbmRvd1R5cGU7CiAj
ZWxzZQogdHlwZWRlZiB1aW50NjRfdCBHTE5hdGl2ZVdpbmRvd1R5cGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCA3
ZDgwZDViNDViNC4uYjJiNzk1MjU0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNjAsNyArNjAsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIE9CSkNfQ0xBU1Mg
V2ViR0xMYXllcjsKLSNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOX0NBSVJPKQor
I2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pIHx8IFBMQVRGT1JNKFdQ
RSkKIHR5cGVkZWYgdW5zaWduZWQgaW50IEdMdWludDsKICNlbmRpZgogCkBAIC0xMzczLDcgKzEz
NzMsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNoYWRlck5hbWVIYXNoPiBu
YW1lSGFzaE1hcEZvclNoYWRlcnM7CiAKLSNpZiAoKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V0lOKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAoKFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV0lOKSB8fCBQTEFURk9STShXUEUpKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQogICAgIGZyaWVu
ZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0xFUzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5z
aW9uczNET3BlbkdMRVM+IG1fZXh0ZW5zaW9uczsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKaW5kZXggYjRlOTUxNTcyMTcuLmFi
N2M2YjhmMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9P
cGVuR0xFU1NoaW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3Bl
bkdMRVNTaGltcy5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIE9wZW5HTEVTU2hpbXNfaAog
I2RlZmluZSBPcGVuR0xFU1NoaW1zX2gKIAotI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V0lOKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUp
CiAjZGVmaW5lIGdsQmluZEZyYW1lYnVmZmVyRVhUIGdsQmluZEZyYW1lYnVmZmVyCiAjZGVmaW5l
IGdsRnJhbWVidWZmZXJUZXh0dXJlMkRFWFQgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRAogI2RlZmlu
ZSBnbEJpbmRSZW5kZXJidWZmZXJFWFQgZ2xCaW5kUmVuZGVyYnVmZmVyCkBAIC00NSw2ICs0NSw3
IEBACiAjZGVmaW5lIGdsSXNGcmFtZWJ1ZmZlckVYVCBnbElzRnJhbWVidWZmZXIKICNkZWZpbmUg
Z2xHZW5lcmF0ZU1pcG1hcEVYVCBnbEdlbmVyYXRlTWlwbWFwCiAjZGVmaW5lIEdMX0RFUFRIX0FU
VEFDSE1FTlRfRVhUIEdMX0RFUFRIX0FUVEFDSE1FTlQKKyNkZWZpbmUgR0xfQ09MT1JfQVRUQUNI
TUVOVDBfRVhUIEdMX0NPTE9SX0FUVEFDSE1FTlQwCiAjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0NP
TVBMRVRFX0VYVCBHTF9GUkFNRUJVRkZFUl9DT01QTEVURQogI2RlZmluZSBHTF9GUkFNRUJVRkZF
Ul9FWFQgR0xfRlJBTUVCVUZGRVIKICNkZWZpbmUgR0xfREVQVEgyNF9TVEVOQ0lMOF9FWFQgR0xf
REVQVEgyNF9TVEVOQ0lMOF9PRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmluZGV4IDY3ZWZiY2ViOGIzLi4xYjcxOTU0ZjU1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bURpc3BsYXkuY3BwCkBAIC00Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxh
eVdpbi5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxhdGZvcm1E
aXNwbGF5V1BFLmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxnZGsv
Z2RrLmg+CiAjZW5kaWYKQEAgLTEwMCw2ICsxMDQsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtRGlzcGxheT4gUGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9ybURpc3BsYXkoKQogICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVgxMT4obnVsbHB0cik7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
bGF0Zm9ybURpc3BsYXlXUEU+KCk7CisjZW5kaWYKKwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAppbmRleCBmNzY0YzJkNDUxZi4uY2I1ZmExZWYz
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
RGlzcGxheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
RGlzcGxheS5oCkBAIC01NCw2ICs1NCw5IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShXSU4pCiAg
ICAgICAgIFdpbmRvd3MsCiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgIFdQRSwK
KyNlbmRpZgogICAgIH07CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRF
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVH
TC5jcHAKaW5kZXggMWMxY2VjMjZhY2YuLjlmZTc1NWZjNThmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcApAQCAtMjA0
LDYgKzIwNCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6
OmNyZWF0ZVNoYXJpbmdDb250ZXh0KFBsYXRmb3JtRGlzcGxheQogICAgIGlmIChlZ2xCaW5kQVBJ
KGdFR0xBUElWZXJzaW9uKSA9PSBFR0xfRkFMU0UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CisjaWYgUExBVEZPUk0oV1BFKQorICAgIGlmIChwbGF0Zm9ybURpc3BsYXkudHlwZSgpID09IFBs
YXRmb3JtRGlzcGxheTo6VHlwZTo6V1BFKSB7CisgICAgICAgIGlmIChhdXRvIGNvbnRleHQgPSBj
cmVhdGVXUEVDb250ZXh0KHBsYXRmb3JtRGlzcGxheSkpCisgICAgICAgICAgICByZXR1cm4gY29u
dGV4dDsKKyAgICB9CisjZW5kaWYKKwogICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZVN1cmZhY2Vs
ZXNzQ29udGV4dChwbGF0Zm9ybURpc3BsYXkpOwogICAgIGlmICghY29udGV4dCkgewogI2lmIFBM
QVRGT1JNKFgxMSkKQEAgLTI1MSw2ICsyNTgsOSBAQCBHTENvbnRleHRFR0w6On5HTENvbnRleHRF
R0woKQogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCiAgICAgZGVzdHJveVdheWxhbmRXaW5kb3coKTsK
ICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBkZXN0cm95V1BFVGFyZ2V0KCk7CisjZW5k
aWYKIH0KIAogYm9vbCBHTENvbnRleHRFR0w6OmNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVy
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRFR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRFR0wuaAppbmRleCBlNWEzMzU5N2Q3Yi4uOWEwMzNmZWIyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKQEAgLTMyLDYg
KzMyLDEwIEBACiBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdzsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
V1BFKQorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorI2VuZGlmCisKIHR5cGVkZWYg
dm9pZCAqRUdMQ29uZmlnOwogdHlwZWRlZiB2b2lkICpFR0xDb250ZXh0OwogdHlwZWRlZiB2b2lk
ICpFR0xEaXNwbGF5OwpAQCAtNzMsNiArNzcsOSBAQCBwcml2YXRlOgogICAgIEdMQ29udGV4dEVH
TChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0LCBFR0xTdXJmYWNlLCBXbFVuaXF1ZVB0cjxz
dHJ1Y3Qgd2xfc3VyZmFjZT4mJiwgc3RydWN0IHdsX2VnbF93aW5kb3cqKTsKICAgICB2b2lkIGRl
c3Ryb3lXYXlsYW5kV2luZG93KCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgdm9p
ZCBkZXN0cm95V1BFVGFyZ2V0KCk7CisjZW5kaWYKIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8R0xDb250ZXh0RUdMPiBjcmVhdGVXaW5kb3dDb250ZXh0KEdMTmF0aXZlV2luZG93VHlwZSwg
UGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIpOwog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVQYnVmZmVyQ29u
dGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVsbHB0
cik7CkBAIC04NSw2ICs5Miw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxHTENvbnRleHRFR0w+IGNyZWF0ZVdheWxhbmRDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYsIEVH
TENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKICAgICBzdGF0aWMgRUdMU3VyZmFj
ZSBjcmVhdGVXaW5kb3dTdXJmYWNlV2F5bGFuZChFR0xEaXNwbGF5LCBFR0xDb25maWcsIEdMTmF0
aXZlV2luZG93VHlwZSk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVdQRUNvbnRleHQoUGxhdGZvcm1EaXNw
bGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIpOworI2VuZGlmCiAKICAg
ICBzdGF0aWMgYm9vbCBnZXRFR0xDb25maWcoRUdMRGlzcGxheSwgRUdMQ29uZmlnKiwgRUdMU3Vy
ZmFjZVR5cGUpOwogCkBAIC05OCw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIFdsVW5pcXVlUHRy
PHN0cnVjdCB3bF9zdXJmYWNlPiBtX3dsU3VyZmFjZTsKICAgICBzdHJ1Y3Qgd2xfZWdsX3dpbmRv
dyogbV93bFdpbmRvdyB7IG51bGxwdHIgfTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ+
IG1fd3BlVGFyZ2V0OworI2VuZGlmCiAjaWYgVVNFKENBSVJPKQogICAgIGNhaXJvX2RldmljZV90
KiBtX2NhaXJvRGV2aWNlIHsgbnVsbHB0ciB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjNmNDJkNzY0MgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRF
R0xXUEUuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisKKyNpZiBVU0UoRUdMKSAmJiBQTEFU
Rk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6
OmNyZWF0ZVdQRUNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiBwbGF0Zm9ybURpc3BsYXksIEVHTENv
bnRleHQgc2hhcmluZ0NvbnRleHQpCit7CisgICAgYXV0byBvZmZzY3JlZW5UYXJnZXQgPSBkb3du
Y2FzdDxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkuY3JlYXRlRUdMT2Zmc2Ny
ZWVuVGFyZ2V0KCk7CisgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlV2luZG93Q29udGV4dChvZmZz
Y3JlZW5UYXJnZXQtPm5hdGl2ZVdpbmRvdygpLCBwbGF0Zm9ybURpc3BsYXksIHNoYXJpbmdDb250
ZXh0KTsKKyAgICBpZiAoY29udGV4dCkKKyAgICAgICAgY29udGV4dC0+bV93cGVUYXJnZXQgPSBX
VEZNb3ZlKG9mZnNjcmVlblRhcmdldCk7CisgICAgcmV0dXJuIGNvbnRleHQ7Cit9CisKK3ZvaWQg
R0xDb250ZXh0RUdMOjpkZXN0cm95V1BFVGFyZ2V0KCkKK3sKKyAgICBtX3dwZVRhcmdldCA9IG51
bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShFR0wp
ICYmIFBMQVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCBjZGEwNTM0MjI1Ny4uY2E0ZjA5MDc0NzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAK
QEAgLTU5LDcgKzU5LDkgQEAKICNlbmRpZgogCiAjaWYgVVNFKEVHTCkKKyNpZiAhUExBVEZPUk0o
V1BFKQogI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgorI2VuZGlmCiAjaW5jbHVkZSA8Z3N0L2ds
L2VnbC9nc3RnbGRpc3BsYXlfZWdsLmg+CiAjZW5kaWYKIApAQCAtNjksNiArNzEsOCBAQAogCiAj
aWYgUExBVEZPUk0oV0FZTEFORCkKICNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmgi
CisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgiCiAj
ZW5kaWYKIAogLy8gZ3N0Z2xhcGkuaCBtYXkgaW5jbHVkZSBlZ2xwbGF0Zm9ybS5oIGFuZCBpdCBp
bmNsdWRlcyBYLmgsIHdoaWNoCkBAIC00MzgsNiArNDQyLDExIEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZTo6ZW5zdXJlR3N0R0xDb250ZXh0KCkKICAgICAgICAgICAgIG1f
Z2xEaXNwbGF5ID0gR1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRoX2Vn
bF9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KHNoYXJlZERpc3BsYXkp
LmVnbERpc3BsYXkoKSkpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgIEFT
U0VSVChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KHNoYXJlZERpc3BsYXkpKTsKKyAgICAgICAgbV9n
bERpc3BsYXkgPSBHU1RfR0xfRElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWds
X2Rpc3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihzaGFyZWREaXNwbGF5KS5lZ2xE
aXNwbGF5KCkpKTsKKyNlbmRpZgorCiAgICAgICAgIEFTU0VSVChtX2dsRGlzcGxheSk7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAppbmRl
eCBjN2EwZWM3ZjI1Mi4uMTI2NWUwMDFkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMjM2LDYgKzIzNiw5IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnByZXBhcmVUZXh0dXJlKCkKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJ
Zk5lY2Vzc2FyeSgpOwogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQor
I2lmIFVTRShPUEVOR0xfRVNfMikKKyAgICA6OmdsRmx1c2goKTsKKyNlbmRpZgogICAgIHN0ZDo6
c3dhcChtX3RleHR1cmUsIG1fY29tcG9zaXRvclRleHR1cmUpOwogICAgIHN0ZDo6c3dhcChtX3Rl
eHR1cmUsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CiAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihH
TF9GUkFNRUJVRkZFUiwgbV9mYm8pOwpAQCAtMzk4LDcgKzQwMSw3IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OmNoZWNrVmFyeWluZ3NQYWNraW5nKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hh
ZGVyLCBQbGF0CiAgICAgICAgIHZhcmlhYmxlcy5wdXNoX2JhY2sodmFyeWluZ1N5bWJvbCk7CiAK
ICAgICBHQzNEaW50IG1heFZhcnlpbmdWZWN0b3JzID0gMDsKLSNpZiAhUExBVEZPUk0oSU9TKSAm
JiAhKChQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykpICYmIFVTRShPUEVOR0xfRVNfMikp
CisjaWYgIVBMQVRGT1JNKElPUykgJiYgISgoUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgR0MzRGludCBtYXhW
YXJ5aW5nRmxvYXRzID0gMDsKICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTUFYX1ZBUllJTkdfRkxP
QVRTLCAmbWF4VmFyeWluZ0Zsb2F0cyk7CiAgICAgbWF4VmFyeWluZ1ZlY3RvcnMgPSBtYXhWYXJ5
aW5nRmxvYXRzIC8gNDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dwZS9JY29uV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JY29uV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDNj
MzdiZGY4YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93cGUvSWNvbldQRS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSWNvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ljb246On5JY29uKCkKK3sK
K30KKwordm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
KQoreworfQorCitSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d3BlL0ltYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9J
bWFnZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVhYTMw
YTg1NjZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3BlL0ltYWdlV1BFLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJCaXRtYXBJbWFnZS5oIgorCisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3ZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQorewor
fQorCitQYXNzUmVmUHRyPEltYWdlPiBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3Qg
Y2hhciogcmVzb3VyY2UpCit7CisgICAgc3RkOjpmcHJpbnRmKHN0ZGVyciwgIldBUk5JTkc6IHRy
eWluZyB0byBsb2FkIHBsYXRmb3JtIHJlc291cmNlICclcydcbiIsIHJlc291cmNlKTsKKyAgICBy
ZXR1cm4gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZv
cm1EaXNwbGF5V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9Q
bGF0Zm9ybURpc3BsYXlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi40ZDViYjFkMWY0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCkBAIC0wLDAgKzEsMTM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCisjaWYgUExBVEZP
Uk0oV1BFKQorCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5o
IgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDx3cGUvcmVuZGVyZXItYmFja2VuZC1l
Z2wuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybURpc3BsYXlXUEU6OlBsYXRm
b3JtRGlzcGxheVdQRSgpID0gZGVmYXVsdDsKKworUGxhdGZvcm1EaXNwbGF5V1BFOjp+UGxhdGZv
cm1EaXNwbGF5V1BFKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZGVzdHJveSht
X2JhY2tlbmQpOworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6aW5pdGlhbGl6ZShpbnQg
aG9zdEZkKQoreworICAgIG1fYmFja2VuZCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9jcmVh
dGUoaG9zdEZkKTsKKworICAgIG1fZWdsRGlzcGxheSA9IGVnbEdldERpc3BsYXkod3BlX3JlbmRl
cmVyX2JhY2tlbmRfZWdsX2dldF9uYXRpdmVfZGlzcGxheShtX2JhY2tlbmQpKTsKKyAgICBpZiAo
bV9lZ2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiUGxhdGZvcm1EaXNwbGF5V1BFOiBjb3VsZCBub3QgY3JlYXRlIHRoZSBFR0wgZGlzcGxheS5c
biIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUGxhdGZvcm1EaXNwbGF5Ojppbml0
aWFsaXplRUdMRGlzcGxheSgpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5
V1BFOjpFR0xUYXJnZXQ+IFBsYXRmb3JtRGlzcGxheVdQRTo6Y3JlYXRlRUdMVGFyZ2V0KEVHTFRh
cmdldDo6Q2xpZW50JiBjbGllbnQsIGludCBob3N0RmQpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8RUdMVGFyZ2V0PigqdGhpcywgY2xpZW50LCBob3N0RmQpOworfQorCitzdGQ6OnVu
aXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ+IFBsYXRmb3Jt
RGlzcGxheVdQRTo6Y3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCkKK3sKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxFR0xPZmZzY3JlZW5UYXJnZXQ+KCp0aGlzKTsKK30KKworUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkVHTFRhcmdldChjb25zdCBQbGF0Zm9ybURpc3BsYXlXUEUm
IGRpc3BsYXksIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVudCwg
aW50IGhvc3RGZCkKKyAgICA6IG1fZGlzcGxheShkaXNwbGF5KQorICAgICwgbV9jbGllbnQoY2xp
ZW50KQoreworICAgIG1fYmFja2VuZCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRf
Y3JlYXRlKGhvc3RGZCk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5k
X2VnbF90YXJnZXRfY2xpZW50IHNfY2xpZW50ID0geworICAgICAgICAvLyBmcmFtZV9jb21wbGV0
ZQorICAgICAgICBbXSh2b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBz
dXJmYWNlID0gKnJlaW50ZXJwcmV0X2Nhc3Q8RUdMVGFyZ2V0Kj4oZGF0YSk7CisgICAgICAgICAg
ICBzdXJmYWNlLm1fY2xpZW50LmZyYW1lQ29tcGxldGUoKTsKKyAgICAgICAgfSwKKyAgICB9Owor
ICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfc2V0X2NsaWVudChtX2JhY2tlbmQs
ICZzX2NsaWVudCwgdGhpcyk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0Ojp+
RUdMVGFyZ2V0KCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2Rlc3Ry
b3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6
aW5pdGlhbGl6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9yZW5kZXJlcl9iYWNr
ZW5kX2VnbF90YXJnZXRfaW5pdGlhbGl6ZShtX2JhY2tlbmQsIG1fZGlzcGxheS5tX2JhY2tlbmQs
CisgICAgICAgIHN0ZDo6bWF4KDAsIHNpemUud2lkdGgoKSksIHN0ZDo6bWF4KDAsIHNpemUuaGVp
Z2h0KCkpKTsKK30KKworRUdMTmF0aXZlV2luZG93VHlwZSBQbGF0Zm9ybURpc3BsYXlXUEU6OkVH
TFRhcmdldDo6bmF0aXZlV2luZG93KCkgY29uc3QKK3sKKyAgICByZXR1cm4gd3BlX3JlbmRlcmVy
X2JhY2tlbmRfZWdsX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRvdyhtX2JhY2tlbmQpOworfQorCit2
b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpyZXNpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X3Jlc2l6ZShtX2Jh
Y2tlbmQsIHN0ZDo6bWF4KDAsIHNpemUud2lkdGgoKSksIHN0ZDo6bWF4KDAsIHNpemUuaGVpZ2h0
KCkpKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVXaWxs
UmVuZGVyKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2ZyYW1lX3dp
bGxfcmVuZGVyKG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xU
YXJnZXQ6OmZyYW1lUmVuZGVyZWQoKQoreworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90
YXJnZXRfZnJhbWVfcmVuZGVyZWQobV9iYWNrZW5kKTsKK30KKworUGxhdGZvcm1EaXNwbGF5V1BF
OjpFR0xPZmZzY3JlZW5UYXJnZXQ6OkVHTE9mZnNjcmVlblRhcmdldChjb25zdCBQbGF0Zm9ybURp
c3BsYXlXUEUmIGRpc3BsYXkpCit7CisgICAgbV90YXJnZXQgPSB3cGVfcmVuZGVyZXJfYmFja2Vu
ZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9jcmVhdGUoKTsKKyAgICB3cGVfcmVuZGVyZXJfYmFja2Vu
ZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9pbml0aWFsaXplKG1fdGFyZ2V0LCBkaXNwbGF5Lm1fYmFj
a2VuZCk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0Ojp+RUdM
T2Zmc2NyZWVuVGFyZ2V0KCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2Ny
ZWVuX3RhcmdldF9kZXN0cm95KG1fdGFyZ2V0KTsKK30KKworRUdMTmF0aXZlV2luZG93VHlwZSBQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldDo6bmF0aXZlV2luZG93KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJn
ZXRfZ2V0X25hdGl2ZV93aW5kb3cobV90YXJnZXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU5YjE1MmUzNzg3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxh
eVdQRS5oCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNs
dWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKworLy8gRklYTUU6IEZvciBub3cgZGVmYXVsdCB0byB0
aGUgR0JNIEVHTCBwbGF0Zm9ybSwgYnV0IHRoaXMgc2hvdWxkIHJlYWxseSBiZQorLy8gc29tZWhv
dyBkZWR1Y2libGUgZnJvbSB0aGUgYnVpbGQgY29uZmlndXJhdGlvbi4KKyNkZWZpbmUgX19HQk1f
XyAxCisjaW5jbHVkZSA8RUdML2VnbHBsYXRmb3JtLmg+CisKK3N0cnVjdCB3cGVfcmVuZGVyZXJf
YmFja2VuZF9lZ2w7CitzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldDsKK3N0
cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldDsKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHTENvbnRleHQ7CitjbGFzcyBJbnRTaXplOworCitjbGFz
cyBQbGF0Zm9ybURpc3BsYXlXUEUgZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1EaXNwbGF5IHsKK3B1
YmxpYzoKKyAgICBQbGF0Zm9ybURpc3BsYXlXUEUoKTsKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybURp
c3BsYXlXUEUoKTsKKworICAgIHZvaWQgaW5pdGlhbGl6ZShpbnQpOworCisgICAgY2xhc3MgRUdM
VGFyZ2V0IHsKKyAgICBwdWJsaWM6CisgICAgICAgIGNsYXNzIENsaWVudCB7CisgICAgICAgIHB1
YmxpYzoKKyAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZUNvbXBsZXRlKCkgPSAwOworICAg
ICAgICB9OworCisgICAgICAgIEVHTFRhcmdldChjb25zdCBQbGF0Zm9ybURpc3BsYXlXUEUmLCBD
bGllbnQmLCBpbnQpOworICAgICAgICB+RUdMVGFyZ2V0KCk7CisKKyAgICAgICAgdm9pZCBpbml0
aWFsaXplKGNvbnN0IEludFNpemUmKTsKKyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlwZSBuYXRp
dmVXaW5kb3coKSBjb25zdDsKKworICAgICAgICB2b2lkIHJlc2l6ZShjb25zdCBJbnRTaXplJik7
CisKKyAgICAgICAgdm9pZCBmcmFtZVdpbGxSZW5kZXIoKTsKKyAgICAgICAgdm9pZCBmcmFtZVJl
bmRlcmVkKCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBjb25zdCBQbGF0Zm9ybURpc3BsYXlX
UEUmIG1fZGlzcGxheTsKKyAgICAgICAgQ2xpZW50JiBtX2NsaWVudDsKKyAgICAgICAgc3RydWN0
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXQqIG1fYmFja2VuZDsKKyAgICB9OworCisg
ICAgY2xhc3MgRUdMT2Zmc2NyZWVuVGFyZ2V0IHsKKyAgICBwdWJsaWM6CisgICAgICAgIEVHTE9m
ZnNjcmVlblRhcmdldChjb25zdCBQbGF0Zm9ybURpc3BsYXlXUEUmKTsKKyAgICAgICAgfkVHTE9m
ZnNjcmVlblRhcmdldCgpOworCisgICAgICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2lu
ZG93KCkgY29uc3Q7CisKKyAgICBwcml2YXRlOgorICAgICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVy
X2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXQqIG1fdGFyZ2V0OworICAgIH07CisKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8RUdMVGFyZ2V0PiBjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGll
bnQmLCBpbnQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xPZmZzY3JlZW5UYXJnZXQ+IGNyZWF0
ZUVHTE9mZnNjcmVlblRhcmdldCgpOworCitwcml2YXRlOgorICAgIFR5cGUgdHlwZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6V1BFOyB9CisKKyAgICBz
dHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsKiBtX2JhY2tlbmQ7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfUExBVEZPUk1fRElTUExB
WShQbGF0Zm9ybURpc3BsYXlXUEUsIFdQRSkKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0ZGM5NTVmOTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3Vyc29yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5hNzYwMTk2OTcxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dwZS9Mb2NhbGl6ZWRTdHJpbmdzV1BFLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiX1NlYXJjaCB0aGUgV2ViIik7Cit9CisKK1N0cmluZyB1bmFjY2VwdGFibGVUTFNDZXJ0
aWZpY2F0ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlVuYWNjZXB0YWJsZSBU
TFMgY2VydGlmaWNhdGUiKTsKK30KKworU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFy
KiBrZXkpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7
Cit9CisKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3Rl
Ym9hcmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzc4MDA4M2ZkMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJk
V1BFLmNwcApAQCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
YXN0ZWJvYXJkLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBh
c3RlYm9hcmRTdHJhdGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFBhc3RlYm9hcmQ+KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
YXN0ZWJvYXJkPigpOworfQorCitQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKK3sKK30KKworYm9v
bCBQYXN0ZWJvYXJkOjpoYXNEYXRhKCkKK3sKKyAgICAvLyBGSVhNRTogR2V0dGluZyB0aGUgbGlz
dCBvZiB0eXBlcyBmb3IgdGhpcyBpcyB3YXN0ZWZ1bC4gRG8gdGhpcyBpbiB0aGUgVUkgcHJvY2Vz
cy4KKyAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4gIXR5cGVz
LmlzRW1wdHkoKTsKK30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQorewor
ICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0
ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMpOworICAgIHJldHVybiB0eXBlczsKK30K
KworU3RyaW5nIFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKQorewor
ICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJl
YWRTdHJpbmdGcm9tUGFzdGVib2FyZCgwLCB0eXBlKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3
cml0ZVN0cmluZyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAg
ICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0
ZWJvYXJkKHR5cGUsIHRleHQpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKK3sKK30K
Kwordm9pZCBQYXN0ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIFBh
c3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKK3sKKyAgICB0ZXh0LnRl
eHQgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJp
bmdGcm9tUGFzdGVib2FyZCgwLCAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Iik7Cit9CisKK3Zv
aWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0
ZWJvYXJkVVJMJiB1cmwpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRT
dHJhdGVneSgpLT53cml0ZVRvUGFzdGVib2FyZCgidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Iiwg
dXJsLnVybC5zdHJpbmcoKSk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVUcnVzdHdvcnRo
eVdlYlVSTHNQYm9hcmRUeXBlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZElt
YWdlJikKK3sKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2Vi
Q29udGVudCYgY29udGVudCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2Fy
ZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKGNvbnRlbnQpOworfQorCitWZWN0b3I8U3Ry
aW5nPiBQYXN0ZWJvYXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICByZXR1cm4gVmVjdG9yPFN0
cmluZz4oKTsKK30KKworYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZU1hcmt1cChjb25zdCBT
dHJpbmcmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCwgU21hcnRSZXBsYWNlT3B0aW9uKQoreworICAgIHdyaXRlU3RyaW5nKCJ0ZXh0
L3BsYWluO2NoYXJzZXQ9dXRmLTgiLCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0
ZVBhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZCYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3Jt
S2V5Ym9hcmRFdmVudFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmZhNGYzOGUxMWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGxhdGZv
cm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29s
IGJhY2t3YXJkc0NvbXBhdGliaWxpdHkpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3du
KTsKKyAgICBtX3R5cGUgPSB0eXBlOworICAgIGlmIChiYWNrd2FyZHNDb21wYXRpYmlsaXR5KQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlE
b3duKSB7CisgICAgICAgIG1fdGV4dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9kaWZpZWRU
ZXh0ID0gU3RyaW5nKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0g
U3RyaW5nKCk7CisgICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAgICB9Cit9
CisKK2Jvb2wgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0
Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYsIGJvb2wmLCBib29sJiwgYm9vbCYpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmU0NTZlZWUyZGYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKQEAgLTAsMCArMSwx
MTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtUGFzdGVib2FyZC5oIgorCisj
aW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDx3cGUvcGFz
dGVib2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGxhdGZvcm1QYXN0ZWJv
YXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJikKKyAgICA6IG1fcGFzdGVib2Fy
ZCh3cGVfcGFzdGVib2FyZF9nZXRfc2luZ2xldG9uKCkpCit7CisgICAgQVNTRVJUKG1fcGFzdGVi
b2FyZCk7Cit9CisKK1BsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1QYXN0ZWJvYXJkKCkKKyAg
ICA6IG1fcGFzdGVib2FyZCh3cGVfcGFzdGVib2FyZF9nZXRfc2luZ2xldG9uKCkpCit7CisgICAg
QVNTRVJUKG1fcGFzdGVib2FyZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjpnZXRU
eXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ192ZWN0b3IgcGFzdGVib2FyZFR5cGVzID0geyBudWxscHRyLCAwIH07CisgICAgd3Bl
X3Bhc3RlYm9hcmRfZ2V0X3R5cGVzKG1fcGFzdGVib2FyZCwgJnBhc3RlYm9hcmRUeXBlcyk7CisK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGFzdGVib2FyZFR5cGVzLmxlbmd0aDsgKytp
KSB7CisgICAgICAgIGF1dG8mIHR5cGVTdHJpbmcgPSBwYXN0ZWJvYXJkVHlwZXMuc3RyaW5nc1tp
XTsKKyAgICAgICAgdHlwZXMuYXBwZW5kKFN0cmluZyh0eXBlU3RyaW5nLmRhdGEsIHR5cGVTdHJp
bmcubGVuZ3RoKSk7CisgICAgfQorCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3ZlY3Rvcl9m
cmVlKCZwYXN0ZWJvYXJkVHlwZXMpOworfQorCitTdHJpbmcgUGxhdGZvcm1QYXN0ZWJvYXJkOjpy
ZWFkU3RyaW5nKGludCwgY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHN0cnVjdCB3cGVfcGFz
dGVib2FyZF9zdHJpbmcgc3RyaW5nOworICAgIHdwZV9wYXN0ZWJvYXJkX2dldF9zdHJpbmcobV9w
YXN0ZWJvYXJkLCB0eXBlLnV0ZjgoKS5kYXRhKCksICZzdHJpbmcpOworCisgICAgU3RyaW5nIHJl
dHVyblZhbHVlKHN0cmluZy5kYXRhLCBzdHJpbmcubGVuZ3RoKTsKKworICAgIHdwZV9wYXN0ZWJv
YXJkX3N0cmluZ19mcmVlKCZzdHJpbmcpOworICAgIHJldHVybiByZXR1cm5WYWx1ZTsKK30KKwor
dm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50
JiBjb250ZW50KQoreworICAgIHN0YXRpYyBjb25zdCBjaGFyIHBsYWluVGV4dFtdID0gInRleHQv
cGxhaW47Y2hhcnNldD11dGYtOCI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgaHRtbFRleHRbXSA9
ICJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCI7CisKKyAgICBDU3RyaW5nIHRleHRTdHJpbmcgPSBj
b250ZW50LnRleHQudXRmOCgpOworICAgIENTdHJpbmcgbWFya3VwU3RyaW5nID0gY29udGVudC5t
YXJrdXAudXRmOCgpOworCisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19wYWlyIHBh
aXJzW10gPSB7CisgICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0ciwgMCB9IH0sCisg
ICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0ciwgMCB9IH0sCisgICAgfTsKKyAgICB3
cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0udHlwZSwgcGxhaW5UZXh0
LCBzdHJsZW4ocGxhaW5UZXh0KSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxp
emUoJnBhaXJzWzBdLnN0cmluZywgdGV4dFN0cmluZy5kYXRhKCksIHRleHRTdHJpbmcubGVuZ3Ro
KCkpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1sxXS50eXBl
LCBodG1sVGV4dCwgc3RybGVuKGh0bWxUZXh0KSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X2luaXRpYWxpemUoJnBhaXJzWzFdLnN0cmluZywgbWFya3VwU3RyaW5nLmRhdGEoKSwgbWFya3Vw
U3RyaW5nLmxlbmd0aCgpKTsKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX21hcCBt
YXAgPSB7IHBhaXJzLCAyIH07CisKKyAgICB3cGVfcGFzdGVib2FyZF93cml0ZShtX3Bhc3RlYm9h
cmQsICZtYXApOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBdLnR5
cGUpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS5zdHJpbmcpOwor
ICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1sxXS50eXBlKTsKKyAgICB3cGVf
cGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMV0uc3RyaW5nKTsKK30KKwordm9pZCBQbGF0
Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBz
dHJpbmcpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19wYWlyIHBhaXJzW10g
PSB7CisgICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0ciwgMCB9IH0sCisgICAgfTsK
KyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0udHlwZSwgdHlw
ZS51dGY4KCkuZGF0YSgpLCB0eXBlLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgd3BlX3Bhc3RlYm9h
cmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzBdLnN0cmluZywgc3RyaW5nLnV0ZjgoKS5kYXRh
KCksIHN0cmluZy51dGY4KCkubGVuZ3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfbWFwIG1hcCA9IHsgcGFpcnMsIDEgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dyaXRl
KG1fcGFzdGVib2FyZCwgJm1hcCk7CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgm
cGFpcnNbMF0udHlwZSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBd
LnN0cmluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3JlZW5XUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMDhlYjdkZThjOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKQEAgLTAsMCAr
MSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKworI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworaW50IHNjcmVlbkRlcHRoKFdpZGdldCopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMjQ7Cit9CisKK2ludCBzY3JlZW5EZXB0aFBlckNvbXBv
bmVudChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDg7Cit9
CisKK2Jvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xv
cnMoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworRmxvYXRSZWN0IHNjcmVlblJlY3QoV2lk
Z2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9hdFJlY3QoMCwg
MCwgMTAyNCwgNjQwKTsKK30KKworRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0
KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9hdFJlY3QoMCwgMCwg
MTAyNCwgNjQwKTsKK30KKworYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoV2lkZ2V0
KikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNTllMzNiZGNjMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKQEAg
LTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVXUEUuaCIK
KworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVXNlckFnZW50U2NyaXB0
cy5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgiCisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxSZW5kZXJU
aGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZShQYWdlKikKK3sKKyAgICBzdGF0aWMgUmVu
ZGVyVGhlbWUmIHRoZW1lID0gUmVuZGVyVGhlbWVXUEU6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKKyAg
ICByZXR1cm4gdGhlbWU7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVXUEU6OnVwZGF0ZUNhY2hlZFN5
c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJikg
Y29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVX
UEU6OmV4dHJhRGVmYXVsdFN0eWxlU2hlZXQoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworI2lmIEVOQUJMRShWSURFTykKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6bWVkaWFDb250cm9s
c1N0eWxlU2hlZXQoKQoreworICAgIHJldHVybiBBU0NJSUxpdGVyYWwobWVkaWFDb250cm9sc0Jh
c2VVc2VyQWdlbnRTdHlsZVNoZWV0KTsKK30KKworU3RyaW5nIFJlbmRlclRoZW1lV1BFOjptZWRp
YUNvbnRyb2xzU2NyaXB0KCkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7Cisg
ICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0xvY2FsaXplZFN0cmluZ3NKYXZh
U2NyaXB0LCBzaXplb2YobWVkaWFDb250cm9sc0xvY2FsaXplZFN0cmluZ3NKYXZhU2NyaXB0KSk7
CisgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0Jhc2VKYXZhU2NyaXB0LCBz
aXplb2YobWVkaWFDb250cm9sc0Jhc2VKYXZhU2NyaXB0KSk7CisgICAgcmV0dXJuIHNjcmlwdEJ1
aWxkZXIudG9TdHJpbmcoKTsKK30KKyNlbmRpZgorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWZiMmZlODk0YzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaApAQCAtMCwwICsx
LDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlclRoZW1l
V1BFIGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1lIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFJlbmRlclRoZW1lPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVuZGVyVGhlbWVXUEUpOworICAgIH0KKworICAgIFN0cmluZyBleHRyYURlZmF1bHRTdHls
ZVNoZWV0KCkgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIFN0cmluZyBtZWRpYUNv
bnRyb2xzU3R5bGVTaGVldCgpIG92ZXJyaWRlOworICAgIFN0cmluZyBtZWRpYUNvbnRyb2xzU2Ny
aXB0KCkgb3ZlcnJpZGU7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBSZW5kZXJUaGVtZVdQRSgp
ID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5SZW5kZXJUaGVtZVdQRSgpID0gZGVmYXVsdDsKKwor
ICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZv
bnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3Jv
bGxiYXJUaGVtZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFy
VGhlbWVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjlm
ZTVkNGQ4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9T
Y3JvbGxiYXJUaGVtZVdQRS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU2Nyb2xsYmFyVGhlbWVXUEUuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzQnV0
dG9ucyhTY3JvbGxiYXImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK2Jvb2wgU2Nyb2xsYmFyVGhlbWVXUEU6Omhhc1RodW1iKFNjcm9sbGJhciYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworSW50UmVjdCBT
Y3JvbGxiYXJUaGVtZVdQRTo6YmFja0J1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFy
dCwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7
Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFyVGhlbWVXUEU6OmZvcndhcmRCdXR0b25SZWN0KFNjcm9s
bGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gSW50UmVjdCgpOworfQorCitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjp0cmFj
a1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBJbnRSZWN0KCk7Cit9CisKK1Njcm9sbGJhclRoZW1lJiBTY3JvbGxiYXJUaGVtZTo6bmF0
aXZlVGhlbWUoKQoreworICAgIHN0YXRpYyBTY3JvbGxiYXJUaGVtZVdQRSB0aGVtZTsKKyAgICBy
ZXR1cm4gdGhlbWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY3MTg1YWRhMjlkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmgKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Nyb2xsYmFyVGhlbWVXUEUgZmluYWwgOiBwdWJs
aWMgU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUgeworcHVibGljOgorICAgIFNjcm9sbGJhclRoZW1l
V1BFKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflNjcm9sbGJhclRoZW1lV1BFKCkgPSBkZWZh
dWx0OworCisgICAgYm9vbCBoYXNCdXR0b25zKFNjcm9sbGJhciYpIG92ZXJyaWRlOworICAgIGJv
b2wgaGFzVGh1bWIoU2Nyb2xsYmFyJikgb3ZlcnJpZGU7CisKKyAgICBJbnRSZWN0IGJhY2tCdXR0
b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkg
b3ZlcnJpZGU7CisgICAgSW50UmVjdCBmb3J3YXJkQnV0dG9uUmVjdChTY3JvbGxiYXImLCBTY3Jv
bGxiYXJQYXJ0LCBib29sIHBhaW50aW5nID0gZmFsc2UpIG92ZXJyaWRlOworICAgIEludFJlY3Qg
dHJhY2tSZWN0KFNjcm9sbGJhciYsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93cGUvU291bmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Nv
dW5kV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTkxNDc3
YTQ1OTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291
bmRXUEUuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdW5k
LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3ZvaWQgc3lzdGVtQmVlcCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1RoZW1lV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1YWQ5NzczZDg0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNw
cApAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGhlbWVXUEUuaCIK
KworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VGhlbWVXUEU+IHRoZW1lOworICAgIHJldHVybiAmdGhl
bWUuZ2V0KCk7Cit9CisKK0xlbmd0aFNpemUgVGhlbWVXUEU6OmNvbnRyb2xTaXplKENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgY29uc3QgTGVuZ3RoU2l6
ZSYgem9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikgY29uc3QKK3sKKyAgICBpZiAoIXpvb21l
ZFNpemUud2lkdGguaXNJbnRyaW5zaWNPckF1dG8oKSAmJiAhem9vbWVkU2l6ZS5oZWlnaHQuaXNJ
bnRyaW5zaWNPckF1dG8oKSkKKyAgICAgICAgcmV0dXJuIFRoZW1lOjpjb250cm9sU2l6ZShwYXJ0
LCBmb250Q2FzY2FkZSwgem9vbWVkU2l6ZSwgem9vbUZhY3Rvcik7CisKKyAgICBzd2l0Y2ggKHBh
cnQpIHsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAg
ICAgcmV0dXJuIExlbmd0aFNpemUgeyBMZW5ndGgoMTIsIEZpeGVkKSwgTGVuZ3RoKDEyLCBGaXhl
ZCkgfTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4g
VGhlbWU6OmNvbnRyb2xTaXplKHBhcnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFj
dG9yKTsKK30KKwordm9pZCBUaGVtZVdQRTo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJv
bFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9h
dCkKK3sKKyAgICBzd2l0Y2ggKHBhcnQpIHsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICAg
ICAgcGFpbnRDaGVja2JveChzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3Ip
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcGFpbnRSYWRp
byhzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFB1c2hCdXR0b25QYXJ0OgorICAgICAgICBwYWludEJ1dHRvbihzdGF0ZXMs
IGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50
Q2hlY2tib3goQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXplIGNvcm5l
cigyLCAyKTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJlY3QsIGNv
cm5lciwgY29ybmVyLCBjb3JuZXIsIGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAgIHBhdGgu
YWRkUm91bmRlZFJlY3Qocm91bmRlZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3Io
bWFrZVJHQigyMjQsIDIyNCwgMjI0KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKwor
ICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tl
Q29sb3IobWFrZVJHQig5NCwgOTQsIDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgp
OworCisgICAgaWYgKHN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0
ZSkgeworICAgICAgICBhdXRvJiByZWN0ID0gcm91bmRlZFJlY3QucmVjdCgpOworCisgICAgICAg
IFBhdGggY2hlY2tlclBhdGg7CisgICAgICAgIGNoZWNrZXJQYXRoLm1vdmVUbyhGbG9hdFBvaW50
KHJlY3QueCgpICsgMywgcmVjdC5tYXhZKCkgLSAzKSk7CisgICAgICAgIGNoZWNrZXJQYXRoLmFk
ZExpbmVUbyhGbG9hdFBvaW50KHJlY3QubWF4WCgpIC0gMywgcmVjdC55KCkgKyAzKSk7CisKKyAg
ICAgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoMik7CisgICAgICAgIGNvbnRleHQuc2V0
U3Ryb2tlQ29sb3IobWFrZVJHQig4NCwgODQsIDg0KSk7CisgICAgICAgIGNvbnRleHQuc3Ryb2tl
UGF0aChjaGVja2VyUGF0aCk7CisgICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludFJhZGlv
KENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
U2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFk
ZEVsbGlwc2Uoem9vbWVkUmVjdCk7CisKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihtYWtlUkdC
KDIyNCwgMjI0LCAyMjQpKTsKKyAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisgICAgY29u
dGV4dC5zZXRTdHJva2VUaGlja25lc3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvciht
YWtlUkdCKDk0LCA5NCwgOTQpKTsKKyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisKKyAg
ICBpZiAoc3RhdGVzLnN0YXRlcygpICYgQ29udHJvbFN0YXRlczo6Q2hlY2tlZFN0YXRlKSB7Cisg
ICAgICAgIEZsb2F0UmVjdCBjaGVja2VyUmVjdCA9IHpvb21lZFJlY3Q7CisgICAgICAgIGNoZWNr
ZXJSZWN0LmluZmxhdGUoLTMpOworCisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7CisgICAgICAg
IGNoZWNrZXJQYXRoLmFkZEVsbGlwc2UoY2hlY2tlclJlY3QpOworCisgICAgICAgIGNvbnRleHQu
c2V0RmlsbENvbG9yKG1ha2VSR0IoODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LmZpbGxQ
YXRoKGNoZWNrZXJQYXRoKTsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50QnV0dG9u
KENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
U2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3JuZXIoMiwgMik7
CisgICAgRmxvYXRSb3VuZGVkUmVjdCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBjb3JuZXIsIGNv
cm5lciwgY29ybmVyLCBjb3JuZXIpOworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZFJvdW5k
ZWRSZWN0KHJvdW5kZWRSZWN0KTsKKworICAgIENvbG9yIGZpbGxDb2xvciA9IHN0YXRlcy5zdGF0
ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OlByZXNzZWRTdGF0ZSA/IG1ha2VSR0IoMjQ0LCAyNDQsIDI0
NCkgOiBtYWtlUkdCKDIyNCwgMjI0LCAyMjQpOworICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGZp
bGxDb2xvcik7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0
U3Ryb2tlVGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5
NCwgOTQsIDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
VGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43MzlmNWMxZTFjYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCkBAIC0wLDAg
KzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJUaGVtZS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFRoZW1lV1BFIDogcHVibGljIFRoZW1lIHsKK3B1YmxpYzoKKyAgICBUaGVt
ZVdQRSgpIHsgfQorICAgIHZpcnR1YWwgflRoZW1lV1BFKCkgeyB9CisKKyAgICBMZW5ndGhTaXpl
IGNvbnRyb2xTaXplKENvbnRyb2xQYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYsIGNvbnN0IExlbmd0
aFNpemUmLCBmbG9hdCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHBhaW50KENvbnRyb2xQ
YXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jiwg
ZmxvYXQsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxvYXQpIG92ZXJyaWRlOworCitwcml2YXRlOgor
ICAgIHZvaWQgcGFpbnRDaGVja2JveChDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworICAgIHZvaWQgcGFpbnRSYWRpbyhDb250cm9sU3Rh
dGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworICAgIHZv
aWQgcGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYsIGZsb2F0KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjYyZGYwY2M2YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2lkZ2V0LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0
IHdpZGdldCkKK3sKKyAgICBpbml0KHdpZGdldCk7Cit9CisKK1dpZGdldDo6fldpZGdldCgpCit7
CisgICAgQVNTRVJUKCFwYXJlbnQoKSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBXaWRnZXQ6OnNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fZnJh
bWUgPSByZWN0OworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ludFJlY3QgV2lkZ2V0Ojpm
cmFtZVJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lOworfQorCit2b2lkIFdpZGdl
dDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3Im
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzaG93KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6aGlkZSgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggZWNkYmI1MTMxYzcuLjg5ZDcxZDAwOTFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsOTggQEAKKzIwMTctMDQtMjggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2Via2l0LWRldiB0aHJlYWQ6CisgICAgICAgIGh0
dHBzOi8vbGlzdHMud2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8yMDE3LUFwcmlsLzAy
ODkyMy5odG1sCisKKyAgICAgICAgRXhpc3RpbmcgZmlsZXMgY2hhbmdlZCB0byBwcm9wZXJseSB1
c2UgUExBVEZPUk0oV1BFKSBidWlsZCBndWFyZHMgb3Igb3RoZXIKKyAgICAgICAgV1BFLXNwZWNp
ZmljIGFkZGl0aW9ucyAoZS5nLiBwYXN0ZWJvYXJkIHN1cHBvcnQpLgorICAgICAgICBJbi1maWxl
IGNoYW5nZXMgcmVtb3ZlZCBmcm9tIHRoaXMgQ2hhbmdlTG9nIGVudHJ5IGZvciBicmV2aXR5Lgor
CisgICAgICAgICogUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwOgorICAgICAg
ICAqIFBsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRl
LWZvcndhcmRpbmctaGVhZGVycy5wbDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6
CisgICAgICAgICogU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC9B
UEkvYy93cGUvV2ViS2l0Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwOgorICAgICAg
ICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3Np
dGluZ1J1bkxvb3AuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKiBTaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9y
Lmg6CisgICAgICAgICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAqIFNoYXJl
ZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYk1v
dXNlRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oOgorICAg
ICAgICAqIFNoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6
CisgICAgICAgICogU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAg
ICAqIFNoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQv
d3BlL05hdGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dwZS9OYXRpdmVX
ZWJXaGVlbEV2ZW50V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL3dwZS9XZWJFdmVudEZhY3Rvcnku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy93cGUvV0tBUElDYXN0V1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
cmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9XUEVWaWV3Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L1dQRVZpZXdDbGllbnQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVu
dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1
bmRsZS54bWw6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9y
U2VydmVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nl
c3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xh
dW5jaGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1Rl
eHRDaGVja2VyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL3dwZS9XZWJJbnNw
ZWN0b3JQcm94eVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUGFn
ZVByb3h5V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdB
cmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFByb3h5V1BF
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmguCisgICAgICAgICogVUlQcm9jZXNzL3dwZS9X
ZWJQcm9jZXNzUG9vbFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJD
b250ZXh0TWVudUNsaWVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3QuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9Db21wb3NpdGluZ01hbmFnZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJh
d2luZ0FyZWFXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L0RyYXdpbmdBcmVhV1BFLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93
cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJJbnNwZWN0b3JXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdl
V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oLgorICAgICAgICAq
IFdlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHdwZS93cGUtd2Vi
a2l0LnBjLmluOiBBZGRlZC4KKwogMjAxNy0wNC0yOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgVGVhY2ggV2ViUHJvY2Vzc1Bvb2wgdG8gdHJhY2sgYSBtYXAg
b2YgU2Vzc2lvbklEcyB0byBXZWJQYWdlUHJveHlzIHRvIG1hbmFnZSB0aGVpciBsaWZldGltZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0
b3IuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3Iu
Y3BwCmluZGV4IDE0MzI5YjkzODkxLi44ZDEwMWNmNGYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcApAQCAtNTEsNiArNTEs
OSBAQCB2b2lkIEdTb2NrZXRNb25pdG9yOjpzdGFydChHU29ja2V0KiBzb2NrZXQsIEdJT0NvbmRp
dGlvbiBjb25kaXRpb24sIFJ1bkxvb3AmIHJ1bgogICAgIGdfc291cmNlX3NldF9uYW1lKG1fc291
cmNlLmdldCgpLCAiW1dlYktpdF0gU29ja2V0IG1vbml0b3IiKTsKICAgICBtX2NhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayk7CiAgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fc291cmNlLmdl
dCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihzb2NrZXRTb3VyY2VDYWxsYmFjayks
IHRoaXMsIG51bGxwdHIpOworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBnX3NvdXJjZV9zZXRfcHJp
b3JpdHkobV9zb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfSElHSCArIDMwKTsKKyNlbmRpZgogICAg
IGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5nZXQoKSwgcnVuTG9vcC5tYWluQ29udGV4dCgpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uMzljZWE2YTE1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDQ3MyBAQAorZmlsZShNQUtFX0RJUkVDVE9S
WSAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0pCisKK2NvbmZpZ3VyZV9maWxlKHdwZS93
cGUtd2Via2l0LnBjLmluICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5wYyBAT05MWSkK
KworYWRkX2RlZmluaXRpb25zKC1EV0VCS0lUMl9DT01QSUxBVElPTikKKworYWRkX2RlZmluaXRp
b25zKC1ETElCRVhFQ0RJUj0iJHtMSUJFWEVDX0lOU1RBTExfRElSfSIpCisKK3NldChXZWJLaXQy
X1VTRV9QUkVGSVhfSEVBREVSIE9OKQorCithZGRfY3VzdG9tX3RhcmdldCh3ZWJraXQyd3BlLWZv
cndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lU
Ml9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIC0taW5jbHVkZS1w
YXRoICR7V0VCS0lUMl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1w
bGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3VwCispCisKK3NldChXRUJLSVQyX0VYVFJBX0RFUEVO
REVOQ0lFUworICAgIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCispCisKK2xpc3QoQVBQ
RU5EIFdlYlByb2Nlc3NfU09VUkNFUworICAgIFdlYlByb2Nlc3MvRW50cnlQb2ludC91bml4L1dl
YlByb2Nlc3NNYWluLmNwcAorKQorCitsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VT
CisgICAgTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC91bml4L05ldHdvcmtQcm9jZXNzTWFpbi5j
cHAKKykKKworbGlzdChBUFBFTkQgRGF0YWJhc2VQcm9jZXNzX1NPVVJDRVMKKyAgICBEYXRhYmFz
ZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0RhdGFiYXNlUHJvY2Vzc01haW4uY3BwCispCisKK2xp
c3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUworICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3Rv
Y29scy9zb3VwL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCisKKyAgICBOZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2RlcnNTb3VwLmNwcAorICAgIE5ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwCisKKyAgICBOZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Byb2Nlc3NTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25T
b3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRT
b3VwLmNwcAorCisgICAgUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCisKKyAg
ICBQbGF0Zm9ybS9JUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAKKyAgICBQbGF0Zm9ybS9JUEMv
dW5peC9Db25uZWN0aW9uVW5peC5jcHAKKworICAgIFBsYXRmb3JtL2NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuY3BwCisKKyAgICBQbGF0Zm9ybS9nbGliL01vZHVs
ZUdsaWIuY3BwCisKKyAgICBQbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAorICAgIFBsYXRm
b3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKworICAgIFBsdWdpblByb2Nlc3MvdW5peC9Q
bHVnaW5Db250cm9sbGVyUHJveHlVbml4LmNwcAorICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVn
aW5Qcm9jZXNzTWFpblVuaXguY3BwCisgICAgUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nl
c3NVbml4LmNwcAorCisgICAgU2hhcmVkL0FQSS9jL2NhaXJvL1dLSW1hZ2VDYWlyby5jcHAKKwor
ICAgIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9zb3VwL0F1dGhlbnRpY2F0aW9uTWFuYWdlclNvdXAu
Y3BwCisKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzU2NlbmUuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvU2ltcGxlVmlld3Bv
cnRDb250cm9sbGVyLmNwcAorCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFj
ZS5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
VGhyZWFkZWRDb21wb3NpdG9yLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3Ro
cmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKKworICAg
IFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5jcHAK
KworICAgIFNoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKKworICAgIFNoYXJl
ZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCisKKyAgICBTaGFyZWQvbGludXgvV2ViTWVtb3J5U2Ft
cGxlckxpbnV4LmNwcAorCisgICAgU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291
cC5jcHAKKyAgICBTaGFyZWQvc291cC9XZWJFcnJvcnNTb3VwLmNwcAorCisgICAgU2hhcmVkL3Vu
aXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKKworICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3Bw
CisgICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93
cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKKwor
ICAgIFVJUHJvY2Vzcy9CYWNraW5nU3RvcmUuY3BwCisgICAgVUlQcm9jZXNzL0RlZmF1bHRVbmRv
Q29udHJvbGxlci5jcHAKKyAgICBVSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nTm9u
ZS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3Bw
CisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKworICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAorCisg
ICAgVUlQcm9jZXNzL0FQSS9DL2NhaXJvL1dLSWNvbkRhdGFiYXNlQ2Fpcm8uY3BwCisKKyAgICBV
SVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nvb2tpZU1hbmFnZXJTb3VwLmNwcAorCisgICAgVUlQcm9j
ZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3Np
dGluZ01hbmFnZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVBy
b3h5V1BFLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAorICAg
IFVJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcAorICAgIFVJUHJv
Y2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0Ns
aWVudC5jcHAKKworICAgIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRT
ZXJ2ZXJTb3VwLmNwcAorCisgICAgVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5z
cGVjdG9yU2VydmVyV1BFLmNwcAorCisgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNz
TGF1bmNoZXJXUEUuY3BwCisKKyAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9T
dG9yZVVuaXguY3BwCisgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5Qcm9jZXNzUHJv
eHlVbml4LmNwcAorCisgICAgVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisK
KyAgICBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvdW5peC9XZWJzaXRlRGF0YVN0b3JlVW5peC5jcHAK
KworICAgIFVJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAKKworICAgIFVJUHJv
Y2Vzcy9nc3RyZWFtZXIvSW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQcm94eUdTdHJlYW1lci5jcHAK
KworICAgIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwCisKKyAgICBV
SVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcAorICAgIFVJUHJvY2Vz
cy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy93cGUvVGV4dENo
ZWNrZXJXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAK
KyAgICBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3Bl
L1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVu
Y2VzV1BFLmNwcAorICAgIFVJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCisKKyAg
ICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKyAgICBX
ZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJLaXRTb3VwQ29va2llSmFyU3FsaXRlLmNwcAorCisg
ICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9nbGliL0luamVjdGVkQnVuZGxlR2xpYi5jcHAK
KworICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNw
cAorCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250
ZXh0TWVudUNsaWVudFdQRS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9X
ZWJFZGl0b3JDbGllbnRXUEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUv
V2ViUG9wdXBNZW51V1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0FjY2VsZXJhdGVk
U3VyZmFjZS5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0FyZWFBbGxvY2F0b3IuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3QuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvVXBkYXRlQXRsYXMuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0cmVhbWVyL1dl
YlBhZ2VHU3RyZWFtZXIuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0
aW5nTWFuYWdlci5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BF
LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCisg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAorCisgICAgV2ViUHJvY2Vz
cy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCisgICAgV2ViUHJvY2Vzcy9z
b3VwL1dlYlByb2Nlc3NTb3VwLmNwcAorCisgICAgV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01h
aW5XUEUuY3BwCisKKyAgICAjIEZJWE1FLUdXU0hBUkU6CisgICAgRGF0YWJhc2VQcm9jZXNzL2d0
ay9EYXRhYmFzZVByb2Nlc3NNYWluR3RrLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX01F
U1NBR0VTX0lOX0ZJTEVTCisgICAgVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9ERVJJVkVEX1NPVVJD
RVMKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dS
ZXNvdXJjZUJ1bmRsZS5jCispCisKK3NldChXZWJLaXQyUmVzb3VyY2VzCispCisKK2lmIChFTkFC
TEVfV0VCX0FVRElPKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdDJSZXNvdXJjZXMKKyAgICAgICAg
IiAgICAgICAgPGZpbGUgYWxpYXM9XCJhdWRpby9Db21wb3NpdGVcIj5Db21wb3NpdGUud2F2PC9m
aWxlPlxuIgorICAgICkKK2VuZGlmICgpCisKK2ZpbGUoV1JJVEUgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgIjw/
eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVURi04Pz5cbiIKKyAgICAiPGdyZXNvdXJjZXM+XG4i
CisgICAgIiAgICA8Z3Jlc291cmNlIHByZWZpeD1cIi9vcmcvd2Via2l0d3BlL3Jlc291cmNlc1wi
PlxuIgorICAgICR7V2ViS2l0MlJlc291cmNlc30KKyAgICAiICAgIDwvZ3Jlc291cmNlPlxuIgor
ICAgICI8L2dyZXNvdXJjZXM+XG4iCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQ
VVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3Vy
Y2VCdW5kbGUuYworICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dl
YktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBnbGliLWNvbXBp
bGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9T
b3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMgLS10YXJnZXQ9JHtERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYyAk
e0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1
bmRsZS54bWwKKyAgICBWRVJCQVRJTQorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVf
RElSRUNUT1JJRVMKKyAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSIKKyAgICAiJHtERVJJ
VkVEX1NPVVJDRVNfRElSfSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgor
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkIgorICAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L0RhdGFiYXNlUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vz
cy9DdXN0b21Qcm90b2NvbHMvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL3Nv
dXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL3VuaXgiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L1BsYXRmb3JtL0lQQy9nbGliIgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9y
bS9JUEMvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vY2xhc3NpZmllciIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvciIKKyAgICAiJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC91bml4IgorICAgICIk
e1dFQktJVDJfRElSfS9TaGFyZWQvd3BlIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvY2Fpcm8iCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9zb3VwIgor
ICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvd3BlIgorICAgICIke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9saW51eCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3Nv
dXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlIgorICAg
ICIke1dURl9ESVJ9L3d0Zi9ndGsvIgorICAgICIke1dURl9ESVJ9L3d0Zi9nb2JqZWN0IgorICAg
ICIke1dURl9ESVJ9IgorICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7RUdMX0lOQ0xV
REVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lOQ0xV
REVfRElSU30KKyAgICAke0dTVFJFQU1FUl9JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9J
TkNMVURFX0RJUlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKyAgICAke1dQRV9JTkNM
VURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfTElCUkFSSUVTCisgICAgV2ViQ29y
ZVBsYXRmb3JtV1BFCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRTJfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgJHtHU1RSRUFNRVJfTElCUkFSSUVT
fQorICAgICR7SEFSRkJVWlpfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9Cisg
ICAgJHtXUEVfTElCUkFSSUVTfQorKQorCitzZXQoSW5zcGVjdG9yRmlsZXMKKyAgICAke0NNQUtF
X1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlLyouaHRtbAorICAgICR7Q01BS0VfU09VUkNFX0RJUn0v
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS8qLmpzCisgICAgJHtDTUFL
RV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy8qLmNzcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0v
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRGVidWcvKi5jc3MKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVn
LyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9E
SVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJy
b3IvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvRXh0ZXJuYWwvRVNMaW50LyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VzcHJpbWEvKi5q
cworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL2d0ay8qLnBuZworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL2d0ay8qLnN2ZworICAgICR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzLyou
anMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3hpZXMvKi5qcworICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC8qLmpzCisgICAg
JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy8qLmNzcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvKi5qcworICAg
ICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
V29ya2Vycy9IZWFwU25hcHNob3QvKi5qcworKQorCitmaWxlKEdMT0IgSW5zcGVjdG9yRmlsZXNE
ZXBlbmRlbmNpZXMKKyAgICAke0luc3BlY3RvckZpbGVzfQorKQorCisjIERlcml2ZWRTb3VyY2Vz
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMgaXMK
KyMgZXhwZWN0ZWQgaW4gRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC8uCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9T
T1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0
b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFT
Q1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAg
IENPTU1BTkQgY3AgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0
b3IvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BF
Q1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFu
ZHMuanMKKykKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09V
UkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAg
ICBERVBFTkRTICR7SW5zcGVjdG9yRmlsZXNEZXBlbmRlbmNpZXN9CisgICAgICAgICAgICAke0RF
UklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
SW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCisgICAgICAgICAgICAke1RPT0xTX0RJUn0vd3Bl
L2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkKKyAgICBDT01NQU5EICR7
VE9PTFNfRElSfS93cGUvZ2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSAt
LW91dHB1dD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdS
ZXNvdXJjZUJ1bmRsZS54bWwgJHtJbnNwZWN0b3JGaWxlc30gJHtERVJJVkVEX1NPVVJDRVNfV0VC
SU5TUEVDVE9SVUlfRElSfS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmRD
b21tYW5kcy5qcworICAgIFZFUkJBVElNCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBP
VVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVz
b3VyY2VCdW5kbGUuYworICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9S
VUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBnbGliLWNv
bXBpbGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkgLS1zb3VyY2VkaXI9JHtERVJJVkVEX1NPVVJDRVNfV0VC
SU5TUEVDVE9SVUlfRElSfSAtLXRhcmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JV
SV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jICR7REVSSVZFRF9TT1VSQ0VTX1dFQklO
U1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElN
CispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNf
V0VCSU5TUEVDVE9SVUlfRElSfS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAg
ICBERVBFTkRTICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0
b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvSW5zcGVjdG9yU2VydmVyL2Zyb250LWVuZC9pbnNwZWN0b3JQYWdlSW5kZXguaHRtbAorICAg
IENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvZnJvbnQtZW5kIC0tdGFyZ2V0
PSR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdS
ZXNvdXJjZUJ1bmRsZS5jICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJ
bnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVSQkFUSU0KKykKKworbGlzdChBUFBF
TkQgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0RFUklWRURfU09VUkNFUworICAgICR7REVSSVZF
RF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMK
KyAgICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJbnNwZWN0
b3JHUmVzb3VyY2VCdW5kbGUuYworKQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNv
dXJjZXNfTElCUkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQ
RU5EIFdQRVdlYkluc3BlY3RvclJlc291cmNlc19JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgJHtH
TElCX0lOQ0xVREVfRElSU30KKykKKworYWRkX2xpYnJhcnkoV1BFV2ViSW5zcGVjdG9yUmVzb3Vy
Y2VzIFNIQVJFRCAke1dQRVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVN9KQor
YWRkX2RlcGVuZGVuY2llcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgV2ViS2l0MikKK3Rhcmdl
dF9saW5rX2xpYnJhcmllcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgJHtXUEVXZWJJbnNwZWN0
b3JSZXNvdXJjZXNfTElCUkFSSUVTfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKFdQRVdl
Ykluc3BlY3RvclJlc291cmNlcyBQVUJMSUMgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfSU5D
TFVERV9ESVJFQ1RPUklFU30pCitpbnN0YWxsKFRBUkdFVFMgV1BFV2ViSW5zcGVjdG9yUmVzb3Vy
Y2VzIERFU1RJTkFUSU9OICIke0xJQl9JTlNUQUxMX0RJUn0iKQorCitpZiAoRVhQT1JUX0RFUFJF
Q0FURURfV0VCS0lUMl9DX0FQSSkKKyAgICBzZXQoV1BFX0lOU1RBTExFRF9XRUJLSVRfSEVBREVS
UworICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tBcnJheS5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorICAgICAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2MvV0tEYXRhLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0FQSS9jL1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmgKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGljdGlvbmFyeS5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL1dLRXZlbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJ
L2MvV0tGaW5kT3B0aW9ucy5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9X
S0dlb21ldHJ5LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLSW1hZ2Uu
aAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlQXJyYXkuaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlRGljdGlvbmFyeS5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS051bWJlci5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VMb2FkVHlwZXMuaAorICAgICAgICAk
e1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmgKKyAgICAg
ICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLU2VjdXJpdHlPcmlnaW5SZWYuaAorICAg
ICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaAorICAgICAg
ICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tUeXBlLmgKKyAgICAgICAgJHtXRUJLSVQy
X0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJMLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0FQSS9jL1dLVVJMUmVxdWVzdC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkv
Yy9XS1VSTFJlc3BvbnNlLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dL
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9BUEkvYy9XS1VzZXJDb250ZW50VVJMUGF0dGVybi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9BUEkvYy9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmgKKworICAgICAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oCisKKyAgICAgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5oCisgICAg
ICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3QuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVE
T01XaW5kb3dFeHRlbnNpb24uaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oCisgICAgICAgICR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluaXRpYWxpemUuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVj
dG9yLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaAorICAgICAgICAke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5oCisgICAg
ICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2VCYW5uZXIuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50
LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaAorICAg
ICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUdyb3VwLmgKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VM
b2FkZXJDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZU92ZXJsYXkuaAorICAgICAgICAke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVBvbGljeUNsaWVu
dC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVSYW5nZUhhbmRsZS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCisKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbVJlZi5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdFJl
Zi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dENvbm5lY3Rpb25DbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0RG93bmxvYWRDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SGlzdG9yeUNsaWVudC5oCisgICAgICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorICAg
ICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgKKyAg
ICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5oCisgICAg
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWxUeXBlcy5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmgKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVJbmZvUmVmLmgKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25BY3Rpb25S
ZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9u
RGF0YVJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmln
YXRpb25SZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZp
Z2F0aW9uUmVzcG9uc2VSZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlQ29udGV4dE1lbnVDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRmluZENsaWVudC5oCisgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGb3JtQ2xpZW50LmgK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmgKKyAg
ICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUluamVjdGVkQnVuZGxl
Q2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUxv
YWRlckNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VOYXZpZ2F0aW9uQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVBvbGljeUNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpbkxvYWRQb2xpY3kuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCisgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25TdGF0ZVJlZi5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50Q29udHJvbGxlclJl
Zi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJTY3JpcHRS
ZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0
dHJpYnV0ZXMuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tXaW5k
b3dGZWF0dXJlc1JlZi5oCisKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9D
L3dwZS9XS1ZpZXcuaAorCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9z
b3VwL1dLQ29va2llTWFuYWdlclNvdXAuaAorICAgICkKKworICAgIGluc3RhbGwoRklMRVMgJHtX
UEVfSU5TVEFMTEVEX1dFQktJVF9IRUFERVJTfQorICAgICAgICBERVNUSU5BVElPTiAiJHtDTUFL
RV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dwZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFL1dlYktpdCIK
KyAgICAgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIKKyAgICApCisKKyAgICBzZXQoV1BFX0lO
U1RBTExFRF9IRUFERVJTCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy93cGUv
V2ViS2l0LmgKKyAgICApCisKKyAgICBpbnN0YWxsKEZJTEVTICR7V1BFX0lOU1RBTExFRF9IRUFE
RVJTfQorICAgICAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dw
ZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFIgorICAgICAgICBDT01QT05FTlQgIkRldmVsb3BtZW50
IgorICAgICkKKworICAgIGluc3RhbGwoRklMRVMgJHtDTUFLRV9CSU5BUllfRElSfS93cGUtd2Vi
a2l0LnBjCisgICAgICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfS9wa2dj
b25maWciCisgICAgICAgIENPTVBPTkVOVCAiRGV2ZWxvcG1lbnQiCisgICAgKQorZW5kaWYgKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1o
ZWFkZXJzLnBsIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhl
YWRlcnMucGwKaW5kZXggYjYxZGI3ODc3NGEuLmE3ZDNhMGI2YjkyIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbApAQCAt
MzUsNyArMzUsNyBAQCB1c2UgRmlsZTo6U3BlYzo6RnVuY3Rpb25zOwogdXNlIEdldG9wdDo6TG9u
ZzsKIAogbXkgJHNyY1Jvb3QgPSByZWFscGF0aChGaWxlOjpTcGVjLT5jYXRmaWxlKGRpcm5hbWUo
YWJzX3BhdGgoJDApKSwgIi4uLy4uIikpOwotbXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAoImNhIiwg
ImNmIiwgImNvY29hIiwgIkNvY29hIiwgIkNvb3JkaW5hdGVkR3JhcGhpY3MiLCAiY3VybCIsICJl
ZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMiLCAic291cCIsICJ3aW4iKTsKK215IEBwbGF0Zm9ybVBy
ZWZpeGVzID0gKCJjYSIsICJjZiIsICJjb2NvYSIsICJDb2NvYSIsICJDb29yZGluYXRlZEdyYXBo
aWNzIiwgImN1cmwiLCAiZWZsIiwgImd0ayIsICJpb3MiLCAibWFjIiwgInNvdXAiLCAid2luIiwg
IndwZSIpOwogbXkgQGZyYW1ld29ya3MgPSAoIkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiLCAi
V2ViS2l0Iik7CiBteSBAc2tpcHBlZFByZWZpeGVzOwogbXkgQGZyYW1ld29ya0hlYWRlcnM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMmU4ZmJmYmJlNWMuLjMzYTA2OTg4
ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0zOCw2ICszOCwxMCBA
QAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2VNYWMuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChC
VUlMRElOR19XUEVfXykKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlV1BFLmg+CisjZW5kaWYKKwog
LyogV2ViS2l0MiBzaGFyZWQgdHlwZXMgKi8KIAogdHlwZWRlZiB1aW50MzJfdCBXS1R5cGVJRDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNWVmMDYyMjAyYgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKQEAgLTAsMCAr
MSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdLQmFzZVdQRV9oCisjZGVmaW5lIFdLQmFzZVdQRV9oCisKKyNpZm5kZWYgV0tC
YXNlX2gKKyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFkIG9mIHRo
aXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tWaWV3KiBXS1ZpZXdSZWY7CisKKyNlbmRpZiAvKiBXS0Jhc2VXUEVfaCAqLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjUwZWQxYWMyYjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQRV9XZWJL
aXRfaAorI2RlZmluZSBXUEVfV2ViS2l0X2gKKworI2RlZmluZSBCVUlMRElOR19XUEVfXworCisj
aW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4KKwor
Ly8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0L1dL
QXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
RGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGljdGlvbmFyeS5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9yUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2Vv
bWV0cnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tNdXRhYmxlRGljdGlvbmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS051bWJlci5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luUmVmLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVVJMLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLVVJMUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlc3BvbnNlLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CisKKy8vIEZyb20gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy8KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCdW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1
bmRsZUZyYW1lLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUluaXRpYWxpemUuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCdW5kbGVJbnNwZWN0b3IuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVOYXZpZ2F0aW9u
QWN0aW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlTm9kZUhhbmRsZS5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdl
QmFubmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQ
YWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZU92ZXJsYXkuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVQYWdlUG9saWN5Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxl
UGFnZVJlc291cmNlTG9hZENsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VV
SUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVJhbmdlSGFuZGxlLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQnVuZGxlU2NyaXB0V29ybGQuaD4KKworLy8gRnJvbSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYWNrRm9yd2FyZExpc3RJ
dGVtUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0UmVmLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbC5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0NyZWRlbnRpYWxUeXBlcy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1l
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVJbmZvUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0hpdFRlc3RSZXN1
bHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLTmF2aWdhdGlvbkRhdGFSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZp
Z2F0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VDb25m
aWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tTZXNzaW9u
U3RhdGVSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyU2NyaXB0UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLVmlldy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1dpbmRvd0ZlYXR1cmVzUmVmLmg+CisKKyNlbmRpZiAvLyBXUEVfV2Vi
S2l0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5jcHAKaW5kZXggOGFjZjUwNjkyMTAuLjIyNDM4OGVlYzY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5M
b29wLmNwcApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdvcmtRdWV1
ZVBvb2woKQogICAgIHsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpCiAgICAgICAgIG1fdGhyZWFkQ291bnRMaW1pdCA9IDE7CiAjZWxzZQogICAg
ICAgICBtX3RocmVhZENvdW50TGltaXQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6
bWF4KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9z
aXRpbmdSdW5Mb29wLmgKaW5kZXggODE2ZDQ2N2I1MTAuLjY0NWQ3YjkwZDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5o
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFE
RUQpCiAKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAj
aW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBv
c2l0b3IuY3BwCmluZGV4IDU0ZDk2MGIzZDBlLi45NmQyOTY2YmRlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAK
QEAgLTQzLDEyICs0MywxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLVJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRocmVhZGVkQ29tcG9zaXRvcjo6
Y3JlYXRlKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0
IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1l
U3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZsYWdzKQor
UmVmPFRocmVhZGVkQ29tcG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50
JiBjbGllbnQsIFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwg
ZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERv
RnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50Rmxh
Z3MpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkZWRDb21wb3NpdG9yKGNsaWVu
dCwgdmlld3BvcnRTaXplLCBzY2FsZUZhY3RvciwgbmF0aXZlU3VyZmFjZUhhbmRsZSwgZG9GcmFt
ZVN5bmMsIHBhaW50RmxhZ3MpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaHJlYWRlZENv
bXBvc2l0b3IoY2xpZW50LCB3ZWJQYWdlLCB2aWV3cG9ydFNpemUsIHNjYWxlRmFjdG9yLCBuYXRp
dmVTdXJmYWNlSGFuZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFncykpOwogfQogCi1UaHJlYWRl
ZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmIGNsaWVudCwgY29uc3QgSW50
U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3Vy
ZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6
OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKK1RocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFkZWRDb21w
b3NpdG9yKENsaWVudCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBJbnRTaXplJiB2
aWV3cG9ydFNpemUsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFu
ZGxlLCBTaG91bGREb0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRG
bGFncyBwYWludEZsYWdzKQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV92aWV3cG9y
dFNpemUodmlld3BvcnRTaXplKQogICAgICwgbV9zY2FsZUZhY3RvcihzY2FsZUZhY3RvcikKQEAg
LTY0LDEzICs2NCwyMSBAQCBUaHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihD
bGllbnQmIGNsaWVudCwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaQogICAgIG1fY2xpZW50UmVu
ZGVyc05leHRGcmFtZS5zdG9yZShmYWxzZSk7CiAgICAgbV9jb29yZGluYXRlVXBkYXRlQ29tcGxl
dGlvbldpdGhDbGllbnQuc3RvcmUoZmFsc2UpOwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1f
Y29tcG9zaXRpbmdNYW5hZ2VyLmVzdGFibGlzaENvbm5lY3Rpb24od2ViUGFnZSk7CisjZW5kaWYK
KwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBtX3NjZW5lID0gYWRvcHRSZWYo
bmV3IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSh0aGlzKSk7CisjaWYgUExBVEZPUk0oR1RLKQog
ICAgICAgICBpZiAobV9uYXRpdmVTdXJmYWNlSGFuZGxlKSB7CiAgICAgICAgICAgICBjcmVhdGVH
TENvbnRleHQoKTsKICAgICAgICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKICAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUoZmFsc2UpOworI2VsaWYg
UExBVEZPUk0oV1BFKQorICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CisjZW5kaWYK
ICAgICB9KTsKIH0KIApAQCAtODEsNiArODksOCBAQCBUaHJlYWRlZENvbXBvc2l0b3I6On5UaHJl
YWRlZENvbXBvc2l0b3IoKQogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdMQ29udGV4
dCgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyNpZiBQTEFURk9STShHVEsp
CiAgICAgQVNTRVJUKG1fbmF0aXZlU3VyZmFjZUhhbmRsZSk7CiAKICAgICBtX2NvbnRleHQgPSBH
TENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxHTE5hdGl2
ZVdpbmRvd1R5cGU+KG1fbmF0aXZlU3VyZmFjZUhhbmRsZSksICZQbGF0Zm9ybURpc3BsYXk6OnNo
YXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpKTsKQEAgLTkxLDYgKzEwMSwyMiBAQCB2b2lkIFRo
cmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKICAgICAgICAgaWYgKG1fY29udGV4
dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgICAgICBtX2NvbnRleHQtPnN3YXBJbnRl
cnZhbCgwKTsKICAgICB9CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBhdXRvJiBw
bGF0Zm9ybURpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKTsKKyAgICBS
RUxFQVNFX0FTU0VSVChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkpOwor
ICAgIG1fdGFyZ2V0ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihwbGF0Zm9ybURpc3Bs
YXkpLmNyZWF0ZUVHTFRhcmdldCgqdGhpcywgbV9jb21wb3NpdGluZ01hbmFnZXIucmVsZWFzZUNv
bm5lY3Rpb25GZCgpKTsKKyAgICBBU1NFUlQobV90YXJnZXQpOworICAgIG1fdGFyZ2V0LT5pbml0
aWFsaXplKG1fdmlld3BvcnRTaXplKTsKKworICAgIG1fY29udGV4dCA9IEdMQ29udGV4dDo6Y3Jl
YXRlQ29udGV4dEZvcldpbmRvdyhtX3RhcmdldC0+bmF0aXZlV2luZG93KCksICZwbGF0Zm9ybURp
c3BsYXkpOworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVybjsKKyNlbmRp
ZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCkBAIC0xMDAsMTYg
KzEyNiwyMyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCiAgICAgbV9j
b21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIG1fc2NlbmUtPnB1cmdlR0xSZXNvdXJjZXMoKTsK
ICAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAg
IG1fdGFyZ2V0ID0gbnVsbHB0cjsKKyNlbmRpZgogICAgICAgICBtX3NjZW5lID0gbnVsbHB0cjsK
ICAgICB9KTsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9S
KQogICAgIG1fZGlzcGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7CiAjZW5kaWYKICAg
ICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9IG51bGxwdHI7CisjaWYgVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyAgICBtX2Rpc3BsYXlSZWZyZXNoTW9uaXRvci0+
aW52YWxpZGF0ZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXRO
YXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogeworI2lm
IFBMQVRGT1JNKEdUSykKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c3RvcFVwZGF0ZXMoKTsK
ICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGhhbmRsZV0gewogICAgICAgICAvLyBBIG5ldyBuYXRp
dmUgaGFuZGxlIGNhbid0IGJlIHNldCB3aXRob3V0IGRlc3Ryb3lpbmcgdGhlIHByZXZpb3VzIG9u
ZSBmaXJzdCBpZiBhbnkuCkBAIC0xMjMsNiArMTU2LDcgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0
b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUp
CiAgICAgICAgICAgICBtX2NvbnRleHQgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgfSk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldFNjYWxlRmFjdG9yKGZsb2F0
IHNjYWxlKQpAQCAtMTQ2LDYgKzE4MCwxMCBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0
Vmlld3BvcnRTaXplKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbAogewog
ICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdmlld3BvcnRTaXplLCBzY2FsZV0gewogICAgICAgICBt
X3ZpZXdwb3J0U2l6ZSA9IHZpZXdwb3J0U2l6ZTsKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAg
IGlmIChtX3RhcmdldCkKKyAgICAgICAgICAgIG1fdGFyZ2V0LT5yZXNpemUodmlld3BvcnRTaXpl
KTsKKyNlbmRpZgogICAgICAgICBtX3NjYWxlRmFjdG9yID0gc2NhbGU7CiAgICAgICAgIG1fbmVl
ZHNSZXNpemUgPSB0cnVlOwogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c2NoZWR1bGVV
cGRhdGUoKTsKQEAgLTE4OSw5ICsyMjcsMTggQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJl
bmRlckxheWVyVHJlZSgpCiAgICAgaWYgKCFtX3NjZW5lIHx8ICFtX3NjZW5lLT5pc0FjdGl2ZSgp
KQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgaWYgKCFtX2NvbnRl
eHQpCisgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOworI2VuZGlmCisKICAgICBpZiAoIW1fY29u
dGV4dCB8fCAhbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJu
OwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1fdGFyZ2V0LT5mcmFtZVdpbGxSZW5kZXIoKTsK
KyNlbmRpZgorCiAgICAgaWYgKG1fbmVlZHNSZXNpemUpIHsKICAgICAgICAgZ2xWaWV3cG9ydCgw
LCAwLCBtX3ZpZXdwb3J0U2l6ZS53aWR0aCgpLCBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAg
ICAgICAgIG1fbmVlZHNSZXNpemUgPSBmYWxzZTsKQEAgLTIxMSw3ICsyNTgsMTMgQEAgdm9pZCBU
aHJlYWRlZENvbXBvc2l0b3I6OnJlbmRlckxheWVyVHJlZSgpCiAKICAgICBtX2NvbnRleHQtPnN3
YXBCdWZmZXJzKCk7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV90YXJnZXQtPmZyYW1lUmVu
ZGVyZWQoKTsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQogICAgIHNjZW5lVXBkYXRlRmlu
aXNoZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2NlbmVVcGRh
dGVGaW5pc2hlZCgpCkBAIC0yNzAsNSArMzIzLDMyIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9y
Ojpjb29yZGluYXRlVXBkYXRlQ29tcGxldGlvbldpdGhDbGllbnQoKQogfQogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShXUEUpCitzdGF0aWMgdm9pZCBkZWJ1Z1RocmVhZGVkQ29tcG9zaXRvckZQUygp
Cit7CisgICAgc3RhdGljIGRvdWJsZSBsYXN0VGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgc3Rh
dGljIHVuc2lnbmVkIGZyYW1lQ291bnQgPSAwOworCisgICAgZG91YmxlIGN0ID0gY3VycmVudFRp
bWUoKTsKKyAgICBmcmFtZUNvdW50Kys7CisKKyAgICBpZiAoY3QgLSBsYXN0VGltZSA+PSA1LjAp
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJUaHJlYWRlZENvbXBvc2l0b3I6IGZyYW1lIGNh
bGxiYWNrcyAlLjJmIEZQU1xuIiwgZnJhbWVDb3VudCAvIChjdCAtIGxhc3RUaW1lKSk7CisgICAg
ICAgIGxhc3RUaW1lID0gY3Q7CisgICAgICAgIGZyYW1lQ291bnQgPSAwOworICAgIH0KK30KKwor
dm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmZyYW1lQ29tcGxldGUoKQoreworICAgIEFTU0VSVCht
X2NvbXBvc2l0aW5nUnVuTG9vcC0+aXNDdXJyZW50KCkpOworICAgIHN0YXRpYyBib29sIHJlcG9y
dEZQUyA9ICEhc3RkOjpnZXRlbnYoIldQRV9USFJFQURFRF9DT01QT1NJVE9SX0ZQUyIpOworICAg
IGlmIChyZXBvcnRGUFMpCisgICAgICAgIGRlYnVnVGhyZWFkZWRDb21wb3NpdG9yRlBTKCk7CisK
KyAgICBzY2VuZVVwZGF0ZUZpbmlzaGVkKCk7Cit9CisjZW5kaWYKKwogfQogI2VuZGlmIC8vIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZENvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCA2Nzk1NGEwN2E0
Ni4uZWIxMjQ1OTc1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKQEAgLTQyLDYgKzQyLDExIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0o
V1BFKQorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1EaXNwbGF5V1BFLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogc3Ry
dWN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZTsKIH0KQEAgLTUxLDggKzU2LDEzIEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOwogY2xhc3MgQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50OwogY2xhc3MgVGhyZWFkZWREaXNwbGF5UmVmcmVz
aE1vbml0b3I7CitjbGFzcyBXZWJQYWdlOwogCi1jbGFzcyBUaHJlYWRlZENvbXBvc2l0b3IgOiBw
dWJsaWMgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8VGhyZWFkZWRDb21wb3NpdG9yPiB7CitjbGFzcyBUaHJlYWRlZENvbXBvc2l0b3Ig
OiBwdWJsaWMgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50LCBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8VGhyZWFkZWRDb21wb3NpdG9yPgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAs
IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6Q2xpZW50Cisj
ZW5kaWYKKyAgICB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkZWRDb21wb3NpdG9y
KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTY0LDcgKzc0LDcg
QEAgcHVibGljOgogCiAgICAgZW51bSBjbGFzcyBTaG91bGREb0ZyYW1lU3luYyB7IE5vLCBZZXMg
fTsKIAotICAgIHN0YXRpYyBSZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBjcmVhdGUoQ2xpZW50Jiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRp
dmVTdXJmYWNlSGFuZGxlID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0ZyYW1lU3lu
Yzo6WWVzLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CisgICAgc3Rh
dGljIFJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBXZWJQYWdlJiwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVT
dXJmYWNlSGFuZGxlID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0ZyYW1lU3luYzo6
WWVzLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CiAgICAgdmlydHVh
bCB+VGhyZWFkZWRDb21wb3NpdG9yKCk7CiAKICAgICB2b2lkIHNldE5hdGl2ZVN1cmZhY2VIYW5k
bGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCk7CkBAIC04NywxMyArOTcsMTggQEAgcHVibGljOgog
I2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgVGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3Vy
ZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBh
aW50RmxhZ3MpOworICAgIFRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmLCBXZWJQYWdlJiwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVT
dXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6
UGFpbnRGbGFncyk7CiAKICAgICAvLyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQKICAg
ICB2b2lkIHJlbmRlck5leHRGcmFtZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlld3Bv
cnQoKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXll
cklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpIG92ZXJyaWRlOwogCisjaWYgUExB
VEZPUk0oV1BFKQorICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6U3VyZmFjZTo6
Q2xpZW50CisgICAgdm9pZCBmcmFtZUNvbXBsZXRlKCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAg
IHZvaWQgcmVuZGVyTGF5ZXJUcmVlKCk7CiAgICAgdm9pZCBzY2VuZVVwZGF0ZUZpbmlzaGVkKCk7
CiAKQEAgLTEwMSw2ICsxMTYsMTIgQEAgcHJpdmF0ZToKIAogICAgIENsaWVudCYgbV9jbGllbnQ7
CiAgICAgUmVmUHRyPENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZT4gbV9zY2VuZTsKKworI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBDb21wb3NpdGluZ01hbmFnZXIgbV9jb21wb3NpdGluZ01hbmFnZXI7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFy
Z2V0PiBtX3RhcmdldDsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdM
Q29udGV4dD4gbV9jb250ZXh0OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdwb3J0U2l6
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAppbmRleCA3ZmM0ZDdjNGIz
Zi4uYTQzNWUxOWJiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgK
QEAgLTM0LDYgKzM0LDggQEAgZW51bSBEcmF3aW5nQXJlYVR5cGUgewogICAgIERyYXdpbmdBcmVh
VHlwZVRpbGVkQ29yZUFuaW1hdGlvbiwKICNlbmRpZgogICAgIERyYXdpbmdBcmVhVHlwZVJlbW90
ZUxheWVyVHJlZSwKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBEcmF3aW5nQXJlYVR5cGVXUEUK
ICNlbHNlCiAgICAgRHJhd2luZ0FyZWFUeXBlSW1wbAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAppbmRleCBjYjFmMTE4Yzg5Mi4uMTRm
ZGRlMjI0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXli
b2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJk
RXZlbnQuaApAQCAtNTEsNiArNTEsMTAgQEAgdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZl
bnQ7CiBPQkpDX0NMQVNTIFdlYkV2ZW50OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCitz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYktleWJvYXJk
RXZlbnQgewpAQCAtNjIsNiArNjYsOCBAQCBwdWJsaWM6CiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudChHZGtFdmVudCosIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYsIElucHV0
TWV0aG9kRmlsdGVyOjpFdmVudEZha2VkRm9yQ29tcG9zaXRpb24sIFZlY3RvcjxTdHJpbmc+JiYg
Y29tbWFuZHMpOwogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQoOjpXZWJFdmVudCAqKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqKTsKICNlbmRpZgogCiAj
aWYgVVNFKEFQUEtJVCkKQEAgLTcyLDYgKzc4LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNGYWtl
RXZlbnRGb3JDb21wb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmFrZUV2ZW50Rm9yQ29tcG9z
aXRpb247IH0KICNlbGlmIFBMQVRGT1JNKElPUykKICAgICA6OldlYkV2ZW50KiBuYXRpdmVFdmVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KKyNlbGlmIFBMQVRGT1JN
KFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG51bGxw
dHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVX
ZWJNb3VzZUV2ZW50LmgKaW5kZXggODhjZDE0MTA5MzguLjI4M2ZjMzM0OTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKQEAgLTM4LDYgKzM4LDEwIEBA
IE9CSkNfQ0xBU1MgTlNWaWV3OwogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZlV2ViTW91c2VF
dmVudCA6IHB1YmxpYyBXZWJNb3VzZUV2ZW50IHsKQEAgLTQ3LDYgKzUxLDggQEAgcHVibGljOgog
I2VsaWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoY29uc3QgTmF0aXZl
V2ViTW91c2VFdmVudCYpOwogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoR2RrRXZlbnQqLCBpbnQp
OworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdw
ZV9pbnB1dF9wb2ludGVyX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwogI2VuZGlm
CiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNTUsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
R2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQo
KTsgfQogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQq
IG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVu
dC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCAx
MTgxMjRjZGViYy4uODJmM2IyNGQ0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2
ZVdlYlRvdWNoRXZlbnQuaApAQCAtMzQsNiArMzQsOCBAQAogc3RydWN0IF9VSVdlYlRvdWNoRXZl
bnQ7CiAjZWxpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRyR3Rr
Lmg+CisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSA8d3BlL2lucHV0Lmg+CiAjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Niw2ICs0OCw5IEBAIHB1YmxpYzoKICAgICBOYXRp
dmVXZWJUb3VjaEV2ZW50KEdka0V2ZW50KiwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4m
Jik7CiAgICAgTmF0aXZlV2ViVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50Jik7
CiAgICAgY29uc3QgR2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRp
dmVFdmVudC5nZXQoKTsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYlRvdWNo
RXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKTsKKyAgICBjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyogbmF0aXZl
RmFsbGJhY2tUb3VjaFBvaW50KCkgY29uc3QgeyByZXR1cm4gJm1fZmFsbGJhY2tUb3VjaFBvaW50
OyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTU1LDYgKzYwLDggQEAgcHJpdmF0ZToKIAogI2lm
IFBMQVRGT1JNKEdUSykKICAgICBHVW5pcXVlUHRyPEdka0V2ZW50PiBtX25hdGl2ZUV2ZW50Owor
I2VsaWYgUExBVEZPUk0oV1BFKQorICAgIHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3
IG1fZmFsbGJhY2tUb3VjaFBvaW50OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAppbmRleCA1ZGIwYmNlOGZlYi4uMTVmOTU4NjcxNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaApAQCAtMzgs
NiArMzgsMTAgQEAgT0JKQ19DTEFTUyBOU1ZpZXc7CiB0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBH
ZGtFdmVudDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9pbnB1dF9h
eGlzX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOYXRpdmVX
ZWJXaGVlbEV2ZW50IDogcHVibGljIFdlYldoZWVsRXZlbnQgewpAQCAtNDcsNiArNTEsOCBAQCBw
dWJsaWM6CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChjb25z
dCBOYXRpdmVXZWJXaGVlbEV2ZW50Jik7CiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVu
dCopOworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwogI2VuZGlm
CiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNTUsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAgR2RrRXZl
bnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQoKTsgfQog
I2VsaWYgUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50KCkgY29uc3Qg
eyByZXR1cm4gMDsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQqIG5hdGl2
ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IGJlMTRlZWIzYmJiLi5iMmUyZjQ3MzQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTg0LDExICs4NCwxNCBAQAogI2lmIFBMQVRG
T1JNKElPUykKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSW5zcGVjdG9yT3ZlcmxheS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2FyZC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VsZWN0aW9uUmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hh
cmVkQnVmZmVyLmg+CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCisjaWYgUExBVEZPUk0oSU9T
KSB8fCBQTEFURk9STShXUEUpCisjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CisjZW5k
aWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oPgogI2VuZGlmCkBAIC0xNDkyLDYgKzE0
OTUsMjMgQEAgYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRJbWFnZT46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkSW1hZ2UmIHAKIAogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShXUEUpCit2b2lkIEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7
CisgICAgZW5jb2RlciA8PCBjb250ZW50LnRleHQ7CisgICAgZW5jb2RlciA8PCBjb250ZW50Lm1h
cmt1cDsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC50ZXh0KSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC5tYXJrdXApKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYgLy8gUExBVEZPUk0oV1BF
KQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8RGljdGF0aW9uQWx0ZXJuYXRpdmU+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRGljdGF0aW9uQWx0ZXJuYXRpdmUmIGRpY3RhdGlvbkFsdGVy
bmF0aXZlKQogewogICAgIGVuY29kZXIgPDwgZGljdGF0aW9uQWx0ZXJuYXRpdmUucmFuZ2VTdGFy
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRl
eCA3ODI0MjBkZmU4OC4uNWI4ZDYwZjM2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTEzNCw2ICsxMzQsMTIgQEAgc3RydWN0IFNvdXBO
ZXR3b3JrUHJveHlTZXR0aW5nczsKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorbmFt
ZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50czsKK30KKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOwpAQCAtNDE2LDYgKzQyMiwxMyBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlT
ZXR0aW5ncz4gewogfTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQordGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudD4geworICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdl
YkNvbnRlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBh
c3RlYm9hcmRXZWJDb250ZW50Jik7Cit9OworI2VuZGlmCisKIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5l
Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmgKaW5kZXggOTZiYmE1ZDlhMzQuLjNlOGY4MmU2ZDc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTM3
NSw3ICszNzUsNyBAQAogICAgIG1hY3JvKFBpY3RvZ3JhcGhGb250RmFtaWx5LCBwaWN0b2dyYXBo
Rm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJBcHBsZSBDb2xvciBFbW9qaSIsICIiLCAiIikg
XAogICAgIFwKIAotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZX1BSRUZF
UkVOQ0UobWFjcm8pIFwKICAgICBtYWNybyhTdGFuZGFyZEZvbnRGYW1pbHksIHN0YW5kYXJkRm9u
dEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJUaW1lcyIsICIiLCAiIikgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2ODNiODEyZjNiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50V1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJO
YXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYktleWJvYXJkRXZlbnQ6Ok5hdGl2ZVdl
YktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisg
ICAgOiBXZWJLZXlib2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRF
dmVudChldmVudCkpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZDlkNDNkZTVlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BF
LmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJN
b3VzZUV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK05hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IpCisgICAgOiBXZWJNb3VzZUV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VF
dmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViVG91
Y2hFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRvdWNo
RXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wY2M2
NjU4Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0
aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTmF0aXZlV2ViVG91Y2hFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0
b3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRp
dmVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqIGV2ZW50LCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYlRvdWNoRXZlbnQoV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3RvcikpCisgICAgLCBt
X2ZhbGxiYWNrVG91Y2hQb2ludCB7IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwsIDAs
IDAsIDAsIDAgfQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBldmVudC0+dG91Y2hw
b2ludHNfbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgcG9pbnQgPSBldmVudC0+dG91Y2hw
b2ludHNbaV07CisgICAgICAgIGlmIChwb2ludC50eXBlICE9IHdwZV9pbnB1dF90b3VjaF9ldmVu
dF90eXBlX251bGwpIHsKKyAgICAgICAgICAgIG1fZmFsbGJhY2tUb3VjaFBvaW50ID0gcG9pbnQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdl
YldoZWVsRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJX
aGVlbEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YmE5NjJlZDRkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3Bl
L05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50
RmFjdG9yeS5oIgorCisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
TmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYldo
ZWVsRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGV2ZW50LCBkZXZp
Y2VTY2FsZUZhY3RvcikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kODdhOTI3YWJiMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAo
YykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1P
VE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVk
ZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgU3RyaW5n
IGdldEV4ZWN1dGFibGVQYXRoKCkKK3sKKyAgICBDU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0
Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7CisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwo
KSkKKyAgICAgICAgcmV0dXJuIGRpcmVjdG9yeU5hbWUoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aC5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK3N0YXRpYyBTdHJpbmcgZmluZFdlYktpdFByb2Nlc3MoY29uc3QgY2hhciogcHJvY2Vz
c05hbWUpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4ZWNEaXJlY3RvcnkgPSBnX2dldGVu
digiV0VCS0lUX0VYRUNfUEFUSCIpOworICAgIGlmIChleGVjRGlyZWN0b3J5KSB7CisgICAgICAg
IFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9t
RmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWNEaXJlY3RvcnkpLCBwcm9jZXNzTmFtZSk7Cisg
ICAgICAgIGlmIChmaWxlRXhpc3RzKHByb2Nlc3NQYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBw
cm9jZXNzUGF0aDsKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0g
Z2V0RXhlY3V0YWJsZVBhdGgoKTsKKyAgICBpZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVsbCgpKSB7
CisgICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChl
eGVjdXRhYmxlUGF0aCwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4aXN0cyhwcm9j
ZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAgfQorCisgICAg
cmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKExJQkVYRUNESVIpLCBwcm9jZXNzTmFtZSk7Cit9CisKK1N0cmluZyBleGVjdXRh
YmxlUGF0aE9mV2ViUHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJX
UEVXZWJQcm9jZXNzIik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2Vz
cygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVQbHVnaW5Qcm9jZXNzIik7
Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQoreworICAgIHJl
dHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFTmV0d29ya1Byb2Nlc3MiKTsKK30KKworI2lmIEVO
QUJMRShEQVRBQkFTRV9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVBy
b2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFRGF0YWJhc2VQcm9j
ZXNzIik7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjU1NzFlMWFhYzk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsMjE1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2luY2x1ZGUg
PFdlYkNvcmUvU2Nyb2xsYmFyLmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRlIDx3cGUv
aW5wdXQuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitzdGF0aWMgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCBt
b2RpZmllcnMgPSAwOworICAgIHVuc2lnbmVkIGV2ZW50TW9kaWZpZXJzID0gZXZlbnQtPm1vZGlm
aWVyczsKKworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2Rp
Zmllcl9jb250cm9sKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRyb2xLZXk7
CisgICAgaWYgKGV2ZW50TW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX3No
aWZ0KQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OworICAgIGlmIChl
dmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9hbHQpCisgICAgICAg
IG1vZGlmaWVycyB8PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAm
IHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9tZXRhKQorICAgICAgICBtb2RpZmllcnMgfD0g
V2ViRXZlbnQ6Ok1ldGFLZXk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1v
ZGlmaWVycz4obW9kaWZpZXJzKTsKK30KKworc3RhdGljIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJT
dHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkK
K3sKKyAgICBjb25zdCBjaGFyKiBzaW5nbGVDaGFyYWN0ZXIgPSB3cGVfaW5wdXRfc2luZ2xlX2No
YXJhY3Rlcl9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24o
KSwgZXZlbnQpOworICAgIGlmIChzaW5nbGVDaGFyYWN0ZXIpCisgICAgICAgIHJldHVybiBTdHJp
bmcoc2luZ2xlQ2hhcmFjdGVyKTsKKworICAgIGdsb25nIGxlbmd0aDsKKyAgICBHVW5pcXVlUHRy
PGd1bmljaGFyMj4gdWNoYXIxNihnX3VjczRfdG9fdXRmMTYoJmV2ZW50LT51bmljb2RlLCAxLCAw
LCAmbGVuZ3RoLCBudWxscHRyKSk7CisgICAgaWYgKHVjaGFyMTYpCisgICAgICAgIHJldHVybiBT
dHJpbmcodWNoYXIxNi5nZXQoKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMg
U3RyaW5nIGlkZW50aWZpZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJv
YXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBpZGVudGlmaWVyID0gd3BlX2lu
cHV0X2lkZW50aWZpZXJfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2lu
Z2xldG9uKCksIGV2ZW50KTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFN0
cmluZyhpZGVudGlmaWVyKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiVSslMDRYIiwg
ZXZlbnQtPnVuaWNvZGUpOworfQorCitXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBl
dmVudCkKK3sKKyAgICBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nID0gc2luZ2xlQ2hhcmFj
dGVyU3RyaW5nRm9yS2V5RXZlbnQoZXZlbnQpOworICAgIFN0cmluZyBpZGVudGlmaWVyU3RyaW5n
ID0gaWRlbnRpZmllclN0cmluZ0ZvcktleUV2ZW50KGV2ZW50KTsKKworICAgIHJldHVybiBXZWJL
ZXlib2FyZEV2ZW50KGV2ZW50LT5wcmVzc2VkID8gV2ViRXZlbnQ6OktleURvd24gOiBXZWJFdmVu
dDo6S2V5VXAsCisgICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmluZywgc2luZ2xlQ2hhcmFjdGVy
U3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAorICAgICAgICB3cGVfaW5wdXRfd2luZG93c19rZXlf
Y29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwg
ZXZlbnQpLAorICAgICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwK
KyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVudC0+dGltZSk7Cit9CisKK1dl
Yk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQor
eworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOworICAgIHN3aXRj
aCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
bW90aW9uOgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAg
ICAgdHlwZSA9IGV2ZW50LT5zdGF0ZSA/IFdlYkV2ZW50OjpNb3VzZURvd24gOiBXZWJFdmVudDo6
TW91c2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAg
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b24gPSBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsK
KyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9l
dmVudF90eXBlX21vdGlvbjoKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
YnV0dG9uOgorICAgICAgICBpZiAoZXZlbnQtPmJ1dHRvbiA9PSAxKQorICAgICAgICAgICAgYnV0
dG9uID0gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQt
PmJ1dHRvbiA9PSAyKQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6UmlnaHRC
dXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMykKKyAgICAgICAgICAg
IGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHVuc2lnbmVkIGNsaWNrQ291bnQgPSAodHlw
ZSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSA/IDEgOiAwOworCisgICAgLy8gRklYTUU6IFByb3Bl
ciBidXR0b24gc3VwcG9ydC4gTW9kaWZpZXJzLiBkZWx0YVgvWS9aLiBDbGljayBjb3VudC4KKyAg
ICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBv
c2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYk1vdXNl
RXZlbnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIDAsIDAsIDAs
IGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+
dGltZSk7Cit9CisKK1dlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGFyZC1jb2RlIHRoaXMu
CisgICAgZW51bSBBeGlzIHsKKyAgICAgICAgVmVydGljYWwsCisgICAgICAgIEhvcml6b250YWws
CisgICAgICAgIFNtb290aAorICAgIH07CisKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxU
aWNrczsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgZGVsdGE7CisgICAgc3dpdGNoIChldmVudC0+
YXhpcykgeworICAgIGNhc2UgVmVydGljYWw6CisgICAgICAgIHdoZWVsVGlja3MgPSBXZWJDb3Jl
OjpGbG9hdFNpemUoMCwgZXZlbnQtPnZhbHVlIC8gc3RkOjphYnMoZXZlbnQtPnZhbHVlKSk7Cisg
ICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsKKyAgICAgICAgZGVsdGEuc2NhbGUoV2ViQ29yZTo6
U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBIb3Jpem9udGFsOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKGV2
ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSksIDApOworICAgICAgICBkZWx0YSA9
IHdoZWVsVGlja3M7CisgICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4
ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU21vb3RoOgorICAg
ICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1ZSAvIGRl
dmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH07CisKKyAgICBXZWJDb3Jl
OjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBvc2l0aW9uLnNj
YWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2Vi
RXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIGRlbHRhLCB3aGVlbFRp
Y2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8
V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKK30KKworc3RhdGljIFdlYktp
dDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBv
aW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9y
YXcqIHBvaW50KQoreworICAgIGlmIChwb2ludC0+aWQgIT0gbWFpbkV2ZW50SWQpCisgICAgICAg
IHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5Owor
CisgICAgc3dpdGNoIChwb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpUb3VjaFByZXNzZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9t
b3Rpb246CisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hNb3ZlZDsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAg
ICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIHJldHVybiBXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworfQorCitXZWJUb3Vj
aEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAg
V2ViRXZlbnQ6OlR5cGUgdHlwZSA9IFdlYkV2ZW50OjpOb1R5cGU7CisgICAgc3dpdGNoIChldmVu
dC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAg
ICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaFN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgdHlwZSA9IFdl
YkV2ZW50OjpUb3VjaE1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3Rv
dWNoX2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hFbmQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgVmVjdG9yPFdlYktp
dDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiB0b3VjaFBvaW50czsKKyAgICB0b3VjaFBvaW50cy5y
ZXNlcnZlQ2FwYWNpdHkoZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aCk7CisKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytpKSB7CisgICAg
ICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAgICBpZiAocG9p
bnQudHlwZSA9PSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnRDb29yZGluYXRlcyhw
b2ludC54LCBwb2ludC55KTsKKyAgICAgICAgcG9pbnRDb29yZGluYXRlcy5zY2FsZSgxIC8gZGV2
aWNlU2NhbGVGYWN0b3IpOworICAgICAgICB0b3VjaFBvaW50cy51bmNoZWNrZWRBcHBlbmQoCisg
ICAgICAgICAgICBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludChwb2ludC5pZCwgc3RhdGVG
b3JUb3VjaFBvaW50KGV2ZW50LT5pZCwgJnBvaW50KSwKKyAgICAgICAgICAgICAgICBwb2ludENv
b3JkaW5hdGVzLCBwb2ludENvb3JkaW5hdGVzKSk7CisgICAgfQorCisgICAgcmV0dXJuIFdlYlRv
dWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMo
MCksIGV2ZW50LT50aW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uYTJhYTAzNDUwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorCitzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50Oworc3RydWN0IHdwZV9pbnB1dF9w
b2ludGVyX2V2ZW50Oworc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudDsKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYkV2ZW50RmFjdG9yeSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFdlYktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2tleWJvYXJkX2V2ZW50Kik7CisgICAgc3RhdGljIFdlYk1vdXNlRXZlbnQgY3JlYXRlV2ViTW91
c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3Rvcik7CisgICAgc3RhdGljIFdlYldoZWVsRXZlbnQgY3JlYXRlV2ViV2hlZWxFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7Cisg
ICAgc3RhdGljIFdlYlRvdWNoRXZlbnQgY3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X3RvdWNoX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKaW5kZXggNzhhMzgwNDE1OWUuLjdiZmEwMzdkYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01NTcsNCArNTU3LDggQEAgaW5saW5lIFByb3h5
aW5nUmVmUHRyPFdlYkdyYW1tYXJEZXRhaWw+IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJE
ZXRhaWwmIGdyYW0KICNpbmNsdWRlICJXS0FQSUNhc3RHdGsuaCIKICNlbmRpZgogCisjaWYgZGVm
aW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRlICJXS0FQSUNhc3RXUEUuaCIKKyNlbmRpZgor
CiAjZW5kaWYgLy8gV0tBUElDYXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0Mvd3BlL1dLQVBJQ2FzdFdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4wZjhhMWU3MTcwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQVBJ
Q2FzdFdQRV9oCisjZGVmaW5lIFdLQVBJQ2FzdFdQRV9oCisKKyNpZm5kZWYgV0tBUElDYXN0X2gK
KyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tBUElDYXN0LmhcIiBpbnN0ZWFkIG9mIHRoaXMg
ZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKworI2luY2x1ZGUgIldLVmlldy5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorCituYW1lc3BhY2UgV0tXUEUgeworY2xhc3MgVmll
dzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dLX0FERF9BUElfTUFQUElORyhXS1ZpZXdS
ZWYsIFdLV1BFOjpWaWV3KQorCitpbmxpbmUgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mg
dG9WaWV3U3RhdGVGbGFncyhXS1ZpZXdTdGF0ZSB3a1ZpZXdTdGF0ZSkKK3sKKyAgICB1bnNpZ25l
ZCB2aWV3U3RhdGVGbGFncyA9IDA7CisKKyAgICBpZiAod2tWaWV3U3RhdGUgJiBrV0tWaWV3U3Rh
dGVJc0luV2luZG93KQorICAgICAgICB2aWV3U3RhdGVGbGFncyB8PSBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc0luV2luZG93OworICAgIGlmICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlz
VmlzaWJsZSkKKyAgICAgICAgdmlld1N0YXRlRmxhZ3MgfD0gV2ViQ29yZTo6QWN0aXZpdHlTdGF0
ZTo6SXNWaXNpYmxlOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkFjdGl2aXR5
U3RhdGU6OkZsYWdzPih2aWV3U3RhdGVGbGFncyk7Cit9CisKK30KKworI2VuZGlmIC8vIFdLQVBJ
Q2FzdFdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3Bl
L1dLVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjYmIyMzcxNWVmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1Zp
ZXcuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVmlldy5o
IgorCisjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJQYWdlQ2xp
ZW50SW1wbC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIK
KwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdL
V1BFOjpWaWV3OjpjcmVhdGUobnVsbHB0ciwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkpOworfQor
CitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVjdCB3cGVfdmlld19i
YWNrZW5kKiBiYWNrZW5kLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7
CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUoYmFja2VuZCwgKnRvSW1wbChj
b25maWd1cmF0aW9uKSkpOworfQorCitXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYg
dmlldykKK3sKKyAgICByZXR1cm4gdG9BUEkoJnRvSW1wbCh2aWV3KS0+cGFnZSgpKTsKK30KKwor
dm9pZCBXS1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3UmVmIHZpZXcsIFdLVmlld1N0YXRlIHZpZXdT
dGF0ZSkKK3sKKyAgICB0b0ltcGwodmlldyktPnNldFZpZXdTdGF0ZSh0b1ZpZXdTdGF0ZUZsYWdz
KHZpZXdTdGF0ZSkpOworfQorCit2b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmIHZp
ZXcsIGNvbnN0IFdLVmlld0NsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICB0b0ltcGwodmlldykt
PmluaXRpYWxpemVDbGllbnQoY2xpZW50KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0Mvd3BlL1dLVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li41NTllYzJiNDViNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy93cGUvV0tWaWV3LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVmlld19oCisjZGVmaW5l
IFdLVmlld19oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLR2VvbWV0cnkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZDsKKworV0tfRVhQT1JUIFdLVmlld1JlZiBXS1Zp
ZXdDcmVhdGUoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7CitXS19FWFBPUlQgV0tWaWV3UmVmIFdL
Vmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCosIFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYpOworCitXS19FWFBPUlQgV0tQYWdlUmVmIFdLVmlld0dldFBhZ2Uo
V0tWaWV3UmVmKTsKKworZW51bSB7CisgICAga1dLVmlld1N0YXRlSXNJbldpbmRvdyA9IDEgPDwg
MCwKKyAgICBrV0tWaWV3U3RhdGVJc1Zpc2libGUgPSAxIDw8IDEsCit9OwordHlwZWRlZiB1aW50
MzJfdCBXS1ZpZXdTdGF0ZTsKKworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld1N0YXRlKFdL
Vmlld1JlZiwgV0tWaWV3U3RhdGUpOworCit0eXBlZGVmIHZvaWQgKCpXS1ZpZXdGcmFtZURpc3Bs
YXllZCkoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVm
IHN0cnVjdCBXS1ZpZXdDbGllbnRCYXNlIHsKKyAgICBpbnQgdmVyc2lvbjsKKyAgICBjb25zdCB2
b2lkKiBjbGllbnRJbmZvOworfSBXS1ZpZXdDbGllbnRCYXNlOworCit0eXBlZGVmIHN0cnVjdCBX
S1ZpZXdDbGllbnRWMCB7CisgICAgV0tWaWV3Q2xpZW50QmFzZSBiYXNlOworCisgICAgLy8gdmVy
c2lvbiAwCisgICAgV0tWaWV3RnJhbWVEaXNwbGF5ZWQgZnJhbWVEaXNwbGF5ZWQ7Cit9IFdLVmll
d0NsaWVudFYwOworCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1Jl
ZiwgY29uc3QgV0tWaWV3Q2xpZW50QmFzZSopOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorCisjZW5kaWYgLy8gV0tWaWV3X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTQwNGVjNWQ5YjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFn
ZXJQcm94eS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29t
cG9zaXRpbmdNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKKyNpbmNs
dWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV1BFVmll
dy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5LmgiCisjaW5jbHVkZSA8d3BlL3ZpZXctYmFja2VuZC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5KFdL
V1BFOjpWaWV3JiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCit7Cit9CisKK0NvbXBvc2l0aW5n
TWFuYWdlclByb3h5Ojp+Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKSA9IGRlZmF1bHQ7CisKK3Zv
aWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmluaXRpYWxpemUoKQoreworICAgIG1fdmlldy5w
YWdlKCkucHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3ZpZXcu
cGFnZSgpLnBhZ2VJRCgpLCAqdGhpcyk7Cit9CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHk6OmVzdGFibGlzaENvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSGFuZGxl
KQoreworICAgIGNvbm5lY3Rpb25IYW5kbGUgPSBJUEM6OkF0dGFjaG1lbnQod3BlX3ZpZXdfYmFj
a2VuZF9nZXRfcmVuZGVyZXJfaG9zdF9mZChtX3ZpZXcuYmFja2VuZCgpKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmNhMzVjMDdjNGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaApAQCAt
MCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQXR0YWNo
bWVudDsKK30KKworbmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBDb21wb3NpdGluZ01hbmFnZXJQcm94eSBmaW5hbCA6IHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkpOworcHVibGljOgorICAgIENvbXBvc2l0aW5nTWFuYWdlclByb3h5
KFdLV1BFOjpWaWV3Jik7CisgICAgdmlydHVhbCB+Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKTsK
KworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyKSBvdmVycmlkZTsKKworICAgIHZvaWQgZXN0YWJsaXNoQ29u
bmVjdGlvbihJUEM6OkF0dGFjaG1lbnQmKTsKKworICAgIFdLV1BFOjpWaWV3JiBtX3ZpZXc7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5YTAwNTU3
Nzc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUv
Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkgewor
ICAgIEVzdGFibGlzaENvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25I
YW5kbGUpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9E
cmF3aW5nQXJlYVByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3Bl
L0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4zNzNjMGY2N2UyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEsOTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKworI2luY2x1
ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEcmF3aW5nQXJlYVByb3h5V1BFOjpEcmF3
aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IERyYXdpbmdBcmVhUHJv
eHkoRHJhd2luZ0FyZWFUeXBlV1BFLCBwYWdlKQoreworfQorCitEcmF3aW5nQXJlYVByb3h5V1BF
Ojp+RHJhd2luZ0FyZWFQcm94eVdQRSgpCit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQ
RTo6ZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6c2l6ZURpZENoYW5nZSgpCit7CisgICAg
aWYgKG1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSgwLCBmYWxzZSwgbV93ZWJQYWdlUHJveHkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbV9zaXplLCBt
X3Njcm9sbE9mZnNldCksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKK30KKwordm9pZCBEcmF3
aW5nQXJlYVByb3h5V1BFOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6ZnVuY3Rp
b248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKK3sKKyAgICBp
ZiAoIW1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkgeworICAgICAgICBjYWxsYmFja0Z1bmN0aW9u
KENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKAorICAgICAgICBbY2Fs
bGJhY2tGdW5jdGlvbl0geworICAgICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFja0Jh
c2U6OkVycm9yOjpOb25lKTsKKyAgICAgICAgfSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94
eVdQRTo6dXBkYXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUlu
Zm8mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94
eVdQRTo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3Rh
dGVJRCwgY29uc3QgVXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6ZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBj
b25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQoreworICAgIEFTU0VSVCgh
YmFja2luZ1N0b3JlU3RhdGVJRCk7CisKKyAgICBtX2xheWVyVHJlZUNvbnRleHQgPSBsYXllclRy
ZWVDb250ZXh0OworICAgIG1fd2ViUGFnZVByb3h5LmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6
ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRl
SUQsIGNvbnN0IFVwZGF0ZUluZm8mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
dWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5
V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5
V1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFmNDI3YjRjYTI5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJh
d2luZ0FyZWFQcm94eVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJE
cmF3aW5nQXJlYVByb3h5LmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVByb3h5V1BFIGZpbmFsIDogcHVi
bGljIERyYXdpbmdBcmVhUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IERyYXdpbmdBcmVh
UHJveHlXUEUoV2ViUGFnZVByb3h5Jik7CisgICAgdmlydHVhbCB+RHJhd2luZ0FyZWFQcm94eVdQ
RSgpOworCitwcml2YXRlOgorICAgIC8vIERyYXdpbmdBcmVhUHJveHkKKyAgICB2b2lkIGRldmlj
ZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaXplRGlkQ2hhbmdl
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6
ZnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4pIG92ZXJyaWRlOworCisgICAgLy8g
SVBDIG1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHVwZGF0ZSh1aW50NjRfdCBiYWNraW5nU3Rv
cmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRVcGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBV
cGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGl0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29u
c3QgVXBkYXRlSW5mbyYpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYpIG92ZXJyaWRlOworCisgICAgLy8gVGhlIGN1cnJlbnQgbGF5ZXIgdHJlZSBjb250
ZXh0LgorICAgIExheWVyVHJlZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworfTsKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMTY1MzA5NWZiNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VD
bGllbnRJbXBsLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGFnZUNsaWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKyNp
bmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxF
dmVudC5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
V1BFVmlldy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudElt
cGwoV0tXUEU6OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1fc2Nyb2xs
R2VzdHVyZUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxHZXN0dXJlQ29udHJvbGxl
cj4oKSkKK3sKK30KKworUGFnZUNsaWVudEltcGw6On5QYWdlQ2xpZW50SW1wbCgpID0gZGVmYXVs
dDsKKworc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxE
cmF3aW5nQXJlYVByb3h5V1BFPihtX3ZpZXcucGFnZSgpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpCit7Cit9CisKK1dlYkNvcmU6
OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCit7CisgICAg
cmV0dXJuIHsgfTsKK30KKworV2ViQ29yZTo6SW50U2l6ZSBQYWdlQ2xpZW50SW1wbDo6dmlld1Np
emUoKQoreworICAgIHJldHVybiBtX3ZpZXcuc2l6ZSgpOworfQorCitib29sIFBhZ2VDbGllbnRJ
bXBsOjppc1ZpZXdXaW5kb3dBY3RpdmUoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRl
KCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZTsKK30KKworYm9vbCBQ
YWdlQ2xpZW50SW1wbDo6aXNWaWV3Rm9jdXNlZCgpCit7CisgICAgcmV0dXJuIG1fdmlldy52aWV3
U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKK30KKworYm9vbCBQ
YWdlQ2xpZW50SW1wbDo6aXNWaWV3VmlzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fdmlldy52aWV3
U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZTsKK30KKworYm9vbCBQ
YWdlQ2xpZW50SW1wbDo6aXNWaWV3SW5XaW5kb3coKQoreworICAgIHJldHVybiBtX3ZpZXcudmll
d1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworfQorCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpwcm9jZXNzRGlkRXhpdCgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZFJlbGF1bmNoUHJvY2VzcygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OnBhZ2VDbG9zZWQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVmZXJlbmNlc0Rp
ZENoYW5nZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFuZ2VkKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OmRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkKK3sKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkq
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vy
c29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKQoreworfQorCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmll
d3BvcnRBdHRyaWJ1dGVzJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJF
ZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6
OlVuZG9PclJlZG8pCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxsRWRpdENv
bW1hbmRzKCkKK3sKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6Y2FuVW5kb1JlZG8oV2ViUGFn
ZVByb3h5OjpVbmRvT3JSZWRvKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykKK3sK
K30KKworV2ViQ29yZTo6RmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9EZXZpY2VT
cGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIHJlY3Q7
Cit9CisKK1dlYkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRvVXNlclNw
YWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1cm4gcmVjdDsK
K30KKworV2ViQ29yZTo6SW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXco
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50KQoreworICAgIHJldHVybiBwb2ludDsKK30K
KworV2ViQ29yZTo6SW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQoreworICAgIHJldHVybiByZWN0OworfQorCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJk
RXZlbnQmLCBib29sKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNo
RXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCB3YXNFdmVu
dEhhbmRsZWQpCit7CisgICAgaWYgKHdhc0V2ZW50SGFuZGxlZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQg
PSB0b3VjaEV2ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpOworICAgIGlmICh0b3VjaFBv
aW50LT50eXBlID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOworCisgICAgaWYgKG1fc2Ny
b2xsR2VzdHVyZUNvbnRyb2xsZXItPmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7CisgICAgICAg
IHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogYXhpc0V2ZW50ID0gbV9zY3JvbGxHZXN0dXJl
Q29udHJvbGxlci0+YXhpc0V2ZW50KCk7CisgICAgICAgIGlmIChheGlzRXZlbnQtPnR5cGUgIT0g
d3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAgcGFnZS5oYW5kbGVX
aGVlbEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1fdmlldy5w
YWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IHBvaW50ZXJFdmVudCB7CisgICAgICAg
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbCwgdG91Y2hQb2ludC0+dGltZSwKKyAg
ICAgICAgdG91Y2hQb2ludC0+eCwgdG91Y2hQb2ludC0+eSwKKyAgICAgICAgMSwgMAorICAgIH07
CisKKyAgICBzd2l0Y2ggKHRvdWNoUG9pbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF90
b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lu
cHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0
ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5
cGVfbW90aW9uOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVy
X2V2ZW50X3R5cGVfbW90aW9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAxOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAg
ICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0
dG9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAwOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYWdlLmhhbmRs
ZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudCgmcG9pbnRlckV2ZW50LCBwYWdlLmRldmlj
ZVNjYWxlRmFjdG9yKCkpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdh
c05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpCit7Cit9CisK
K1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVu
dVByb3h5KFdlYlBhZ2VQcm94eSYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKyNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVudVByb3h5
PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmLCBj
b25zdCBDb250ZXh0TWVudUNvbnRleHREYXRhJiwgY29uc3QgVXNlckRhdGEmKQoreworICAgIHJl
dHVybiBudWxscHRyOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCit7
Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBs
OjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJp
bmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVXaWxsRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEVu
ZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjp3aWxsUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0m
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVy
ZVNuYXBzaG90KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZSkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQmFja2dy
b3VuZENvbG9yKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVmVmlldygpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRlcmVmVmlldygpCit7Cit9CisKKyNpZiBFTkFCTEUo
VklERU8pCitib29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2lu
Z01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5z
UGVybWlzc2lvblJlcXVlc3QmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQoreworfQorCitX
ZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIFBhZ2VDbGllbnRJbXBsOjp1c2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6VXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jM2NmZDc4ZGZiOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGll
bnRJbXBsLmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQYWdlQ2xpZW50
LmgiCisKK25hbWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI7CisKK2NsYXNzIFBhZ2VDbGll
bnRJbXBsIGZpbmFsIDogcHVibGljIFBhZ2VDbGllbnQgeworcHVibGljOgorICAgIFBhZ2VDbGll
bnRJbXBsKFdLV1BFOjpWaWV3Jik7CisgICAgdmlydHVhbCB+UGFnZUNsaWVudEltcGwoKTsKKwor
cHJpdmF0ZToKKyAgICAvLyBQYWdlQ2xpZW50CisgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdB
cmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CisgICAg
dm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYsIGJvb2wpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQg
dmlld1Njcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3
U2l6ZSgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7
CisgICAgYm9vbCBpc1ZpZXdGb2N1c2VkKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1ZpZXdWaXNp
YmxlKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1ZpZXdJbldpbmRvdygpIG92ZXJyaWRlOworCisg
ICAgdm9pZCBwcm9jZXNzRGlkRXhpdCgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVsYXVuY2hQ
cm9jZXNzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwYWdlQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgdG9vbFRpcENo
YW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSopIG92ZXJyaWRl
OworCisgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3Im
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKSBvdmVycmlkZTsKKworICAgIHZvaWQgcmVnaXN0
ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJv
eHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFuZHMo
KSBvdmVycmlkZTsKKyAgICBib29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVk
bykgb3ZlcnJpZGU7CisgICAgdm9pZCBleGVjdXRlVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpVbmRv
T3JSZWRvKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0VG9EZXZp
Y2VTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICBXZWJDb3Jl
OjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
IG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IHJvb3RW
aWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworCisgICAgdm9p
ZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3Vj
aEV2ZW50JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisKKyAgICBS
ZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94
eSYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQ
cm94eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpIG92
ZXJyaWRlOworI2VuZGlmCisKKyAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZXhpdEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNv
bnN0IFN0cmluZyYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpIG92ZXJyaWRlOworCisgICAg
dm9pZCBuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBuYXZp
Z2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJy
aWRlOworICAgIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoYm9vbCwgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQo
KSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVtb3ZlTmF2aWdhdGlv
bkdlc3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZpbmlz
aExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWxMb2FkRm9yTWFp
bkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9y
TWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKKworICAgIHZv
aWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHJlZlZp
ZXcoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlcmVmVmlldygpIG92ZXJyaWRlOworCisjaWYgRU5B
QkxFKFZJREVPKQorICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdNZWRpYVBs
dWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Np
b25SZXF1ZXN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9s
bFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisKKyAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVycmlkZTsKKworICAg
IHZvaWQgZGlkQ2hhbmdlQ2xpcFRvU2FmZUFyZWEoYm9vbCkgb3ZlcnJpZGUgeyB9CisKKyAgICBX
S1dQRTo6VmlldyYgbV92aWV3OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEdlc3R1cmVD
b250cm9sbGVyPiBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9T
Y3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmRhMTJjOGViMzUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0w
LDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9s
bGVyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworYm9vbCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCit7CisgICAgc3dp
dGNoICh0b3VjaFBvaW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRf
dHlwZV9kb3duOgorICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3VjaFBvaW50LT50aW1lOworICAg
ICAgICBtX3N0YXJ0LnggPSB0b3VjaFBvaW50LT54OworICAgICAgICBtX3N0YXJ0LnkgPSB0b3Vj
aFBvaW50LT55OworICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKKyAgICAgICAg
bV9vZmZzZXQueSA9IHRvdWNoUG9pbnQtPnk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBj
YXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgaWYgKCFtX2hh
bmRsaW5nKSB7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWCA9IHRvdWNoUG9pbnQtPnggLSBt
X3N0YXJ0Lng7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWSA9IHRvdWNoUG9pbnQtPnkgLSBt
X3N0YXJ0Lnk7CisgICAgICAgICAgICB1aW50MzJfdCBkZWx0YVRpbWUgPSB0b3VjaFBvaW50LT50
aW1lIC0gbV9zdGFydC50aW1lOworCisgICAgICAgICAgICBpbnQgcGl4ZWxzUGVyTGluZVN0ZXAg
PSBXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCk7CisgICAgICAgICAgICBt
X2hhbmRsaW5nID0gc3RkOjphYnMoZGVsdGFYKSA+PSBwaXhlbHNQZXJMaW5lU3RlcAorICAgICAg
ICAgICAgICAgIHx8IHN0ZDo6YWJzKGRlbHRhWSkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAg
ICAgICAgICAgICB8fCBkZWx0YVRpbWUgPj0gMjAwOworICAgICAgICB9CisgICAgICAgIGlmICht
X2hhbmRsaW5nKSB7CisgICAgICAgICAgICBtX2F4aXNFdmVudCA9IHsKKyAgICAgICAgICAgICAg
ICB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAgICAgICAgICAgICAgICB0b3Vj
aFBvaW50LT50aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAgICAgICAgICAgICAgICAyLCAo
dG91Y2hQb2ludC0+eSAtIG1fb2Zmc2V0LnkpCisgICAgICAgICAgICB9OworICAgICAgICAgICAg
bV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgICAgICBtX29mZnNldC55ID0gdG91
Y2hQb2ludC0+eTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgor
ICAgICAgICBpZiAobV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9oYW5kbGluZyA9IGZhbHNl
OworICAgICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3BlX2lucHV0
X2F4aXNfZXZlbnRfdHlwZV9udWxsLAorICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAKKyAg
ICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdkMTcyNGFhZGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29u
dHJvbGxlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3cGUvaW5wdXQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBTY3JvbGxHZXN0dXJlQ29udHJvbGxl
ciB7CitwdWJsaWM6CisgICAgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisK
KyAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVudCgpIHsgcmV0dXJuICZt
X2F4aXNFdmVudDsgfQorCisgICAgYm9vbCBoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qgd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3JhdyopOworCitwcml2YXRlOgorICAgIHN0cnVjdCB7CisgICAgICAg
IHVpbnQzMl90IHRpbWUgeyAwIH07CisgICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAg
aW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9zdGFydDsKKworICAgIHN0cnVjdCB7CisgICAgICAg
IGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9vZmZz
ZXQ7CisKKyAgICBib29sIG1faGFuZGxpbmcgeyBmYWxzZSB9OworICAgIHN0cnVjdCB3cGVfaW5w
dXRfYXhpc19ldmVudCBtX2F4aXNFdmVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2Q3YjYyM2E1NTUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApAQCAtMCww
ICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCisjaW5jbHVk
ZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2
ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk5hdGl2
ZVdlYlRvdWNoRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCisjaW5j
bHVkZSAiV2ViUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNs
dWRlIDx3cGUvdmlldy1iYWNrZW5kLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25h
bWVzcGFjZSBXS1dQRSB7CisKK1ZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJh
Y2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDb25maWd1cmF0aW9uKQor
ICAgIDogbV9wYWdlQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KCp0aGlz
KSkKKyAgICAsIG1fc2l6ZSB7IDgwMCwgNjAwIH0KKyAgICAsIG1fdmlld1N0YXRlRmxhZ3MoV2Vi
Q29yZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rpdml0eVN0
YXRlOjpJc0ZvY3VzZWQgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUgfCBXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KQorICAgICwgbV9jb21wb3NpdGluZ01hbmFn
ZXJQcm94eSgqdGhpcykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBiYXNlQ29uZmlndXJh
dGlvbi5jb3B5KCk7CisgICAgYXV0byogcHJlZmVyZW5jZXMgPSBjb25maWd1cmF0aW9uLT5wcmVm
ZXJlbmNlcygpOworICAgIGlmICghcHJlZmVyZW5jZXMgJiYgY29uZmlndXJhdGlvbi0+cGFnZUdy
b3VwKCkpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMgPSAmY29uZmlndXJhdGlvbi0+cGFnZUdyb3Vw
KCktPnByZWZlcmVuY2VzKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldFByZWZlcmVuY2Vz
KHByZWZlcmVuY2VzKTsKKyAgICB9CisgICAgaWYgKHByZWZlcmVuY2VzKSB7CisgICAgICAgIHBy
ZWZlcmVuY2VzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICAg
ICAgcHJlZmVyZW5jZXMtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgICBw
cmVmZXJlbmNlcy0+c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQodHJ1ZSk7CisgICAgICAg
IHByZWZlcmVuY2VzLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2Vz
LT5zZXRXZWJTZWN1cml0eUVuYWJsZWQoZmFsc2UpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0
RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisKKyAgICBhdXRvKiBwb29sID0g
Y29uZmlndXJhdGlvbi0+cHJvY2Vzc1Bvb2woKTsKKyAgICBtX3BhZ2VQcm94eSA9IHBvb2wtPmNy
ZWF0ZVdlYlBhZ2UoKm1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisKKyAg
ICBtX2JhY2tlbmQgPSBiYWNrZW5kOworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAgICBtX2Jh
Y2tlbmQgPSB3cGVfdmlld19iYWNrZW5kX2NyZWF0ZSgpOworICAgIG1fY29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuaW5pdGlhbGl6ZSgpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNr
ZW5kX2NsaWVudCBzX2JhY2tlbmRDbGllbnQgPSB7CisgICAgICAgIC8vIHNldF9zaXplCisgICAg
ICAgIFtdKHZvaWQqIGRhdGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4o
ZGF0YSk7CisgICAgICAgICAgICB2aWV3LnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZSh3aWR0aCwg
aGVpZ2h0KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGZyYW1lX2Rpc3BsYXllZAorICAgICAg
ICBbXSh2b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3ID0gKnJl
aW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5mcmFtZURpc3Bs
YXllZCgpOworICAgICAgICB9CisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9iYWNr
ZW5kX2NsaWVudChtX2JhY2tlbmQsICZzX2JhY2tlbmRDbGllbnQsIHRoaXMpOworCisgICAgc3Rh
dGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2lucHV0X2NsaWVudCBzX2lucHV0Q2xpZW50ID0g
eworICAgICAgICAvLyBoYW5kbGVfa2V5Ym9hcmRfZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0
YSwgc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7Cisg
ICAgICAgICAgICB2aWV3LnBhZ2UoKS5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0aXZl
V2ViS2V5Ym9hcmRFdmVudChldmVudCkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVf
cG9pbnRlcl9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X3Bv
aW50ZXJfZXZlbnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0g
cmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2Uu
aGFuZGxlTW91c2VFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIHBhZ2Uu
ZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfYXhp
c19ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnBy
ZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hl
ZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2Nh
bGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfdG91Y2hfZXZlbnQK
KyAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZl
bnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0
PFZpZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3VjaEV2ZW50
KFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3Rv
cigpKSk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9pbnB1
dF9jbGllbnQobV9iYWNrZW5kLCAmc19pbnB1dENsaWVudCwgdGhpcyk7CisKKyAgICB3cGVfdmll
d19iYWNrZW5kX2luaXRpYWxpemUobV9iYWNrZW5kKTsKKworICAgIG1fcGFnZVByb3h5LT5pbml0
aWFsaXplV2ViUGFnZSgpOworfQorCitWaWV3Ojp+VmlldygpCit7CisgICAgd3BlX3ZpZXdfYmFj
a2VuZF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgVmlldzo6aW5pdGlhbGl6ZUNsaWVu
dChjb25zdCBXS1ZpZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jbGllbnQuaW5pdGlh
bGl6ZShjbGllbnQpOworfQorCit2b2lkIFZpZXc6OmZyYW1lRGlzcGxheWVkKCkKK3sKKyAgICBt
X2NsaWVudC5mcmFtZURpc3BsYXllZCgqdGhpcyk7Cit9CisKK3ZvaWQgVmlldzo6c2V0U2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisgICAg
aWYgKG1fcGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBtX3BhZ2VQcm94eS0+ZHJh
d2luZ0FyZWEoKS0+c2V0U2l6ZShzaXplLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNvcmU6Oklu
dFNpemUoKSk7Cit9CisKK3ZvaWQgVmlldzo6c2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5
U3RhdGU6OkZsYWdzIGZsYWdzKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpGbGFncyBkZWZhdWx0RmxhZ3MgPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5k
b3dJc0FjdGl2ZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKKworICAgIFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIGNoYW5nZWRGbGFncyA9IG1fdmlld1N0YXRlRmxh
Z3MgXiAoZGVmYXVsdEZsYWdzIHwgZmxhZ3MpOworICAgIG1fdmlld1N0YXRlRmxhZ3MgPSBkZWZh
dWx0RmxhZ3MgfCBmbGFnczsKKworICAgIGlmIChjaGFuZ2VkRmxhZ3MpCisgICAgICAgIG1fcGFn
ZVByb3h5LT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWRGbGFncyk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9XUEVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJiM2M5ZDg0YzlmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmll
dy5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNp
bmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJ
bXBsLmgiCisjaW5jbHVkZSAiV1BFVmlld0NsaWVudC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPG1lbW9y
eT4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VHcm91cDsKK2NsYXNzIFdlYlByb2Nl
c3NQb29sOworfQorCituYW1lc3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3IDogcHVibGljIEFQ
STo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Vmlldz4geworcHVibGljOgorICAgIHN0
YXRpYyBWaWV3KiBjcmVhdGUoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0
IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICBy
ZXR1cm4gbmV3IFZpZXcoYmFja2VuZCwgY29uZmlndXJhdGlvbik7CisgICAgfQorCisgICAgLy8g
Q2xpZW50IG1ldGhvZHMKKyAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3Q2xp
ZW50QmFzZSopOworICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoKTsKKworICAgIFdlYktpdDo6V2Vi
UGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gKm1fcGFnZVByb3h5OyB9CisKKyAgICBzdHJ1Y3Qg
d3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIHsgcmV0dXJuIG1fYmFja2VuZDsgfQorCisgICAg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQor
CisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWV3U3RhdGVGbGFnczsgfQorICAgIHZvaWQgc2V0Vmlld1N0YXRlKFdlYkNvcmU6
OkFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBWaWV3KHN0cnVjdCB3cGVf
dmlld19iYWNrZW5kKiwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYpOworICAgIHZpcnR1
YWwgflZpZXcoKTsKKworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7
CisKKyAgICBWaWV3Q2xpZW50IG1fY2xpZW50OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktp
dDo6UGFnZUNsaWVudEltcGw+IG1fcGFnZUNsaWVudDsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJQ
YWdlUHJveHk+IG1fcGFnZVByb3h5OworICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOworICAg
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlRmxhZ3M7CisKKyAgICBX
ZWJLaXQ6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5IG1fY29tcG9zaXRpbmdNYW5hZ2VyUHJveHk7
CisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIG1fYmFja2VuZDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9XUEVWaWV3Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQ
RVZpZXdDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40
NDRhYzk4ODY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldQRVZpZXdDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2lu
Y2x1ZGUgIldLQmFzZS5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKKworbmFtZXNwYWNlIFdLV1BFIHsKKwordm9pZCBWaWV3Q2xpZW50OjpmcmFtZURp
c3BsYXllZChWaWV3JiB2aWV3KQoreworICAgIGlmIChtX2NsaWVudC5mcmFtZURpc3BsYXllZCkK
KyAgICAgICAgbV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQodG9BUEkoJnZpZXcpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNWU1NTlmYWY1ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApAQCAtMCww
ICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSA8V2Vi
S2l0L1dLVmlldy5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVu
dFRyYWl0czxXS1ZpZXdDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLVmll
d0NsaWVudFYwPiBWZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK2NsYXNz
IFZpZXc7CisKK2NsYXNzIFZpZXdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tWaWV3Q2xp
ZW50QmFzZT4geworcHVibGljOgorICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoVmlldyYpOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ODIwOTJiYmZl
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxncmVzb3VyY2VzPgorICA8Z3Jlc291
cmNlIHByZWZpeD0iL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UiPgorICAgIDxmaWxl
Pmluc3BlY3RvclBhZ2VJbmRleC5odG1sPC9maWxlPgorICA8L2dyZXNvdXJjZT4KKzwvZ3Jlc291
cmNlcz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IDI3YmVjMzYyMzE1Li5mZDg0OGNjZWQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQ2hp
bGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hP
cHRpb25zJiBsYXVuY2hPCiAgICAgaWYgKG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5
KQogICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZChBU0NJ
SUxpdGVyYWwoImFsd2F5cy1ydW5zLWF0LWJhY2tncm91bmQtcHJpb3JpdHkiKSwgInRydWUiKTsK
IAotI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2lmIEVOQUJM
RShERVZFTE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICAg
ICBjb25zdCBjaGFyKiB2YXJuYW1lOwogICAgIHN3aXRjaCAobGF1bmNoT3B0aW9ucy5wcm9jZXNz
VHlwZSkgewogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViOgpAQCAt
NzksNyArNzksNyBAQCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoTwogICAgIGNvbnN0IGNoYXIqIHBy
b2Nlc3NDbWRQcmVmaXggPSBnZXRlbnYodmFybmFtZSk7CiAgICAgaWYgKHByb2Nlc3NDbWRQcmVm
aXggJiYgKnByb2Nlc3NDbWRQcmVmaXgpCiAgICAgICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc0Nt
ZFByZWZpeCA9IFN0cmluZzo6ZnJvbVVURjgocHJvY2Vzc0NtZFByZWZpeCk7Ci0jZW5kaWYgLy8g
RU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjZW5kaWYgLy8gRU5BQkxF
KERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQogfQog
CiB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5Ojpjb25uZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQ
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJ
bnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4yNjgzZTNkNzE2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKQEAgLTAs
MCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cyBMdGQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKKworI2lmIEVOQUJMRShJ
TlNQRUNUT1JfU0VSVkVSKQorCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKKyNpbmNs
dWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8Z21vZHVs
ZS5oPgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3RvclNlcnZl
cjo6cGxhdGZvcm1SZXNvdXJjZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBWZWN0b3I8Y2hh
cj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpCit7CisgICAgLy8gVGhlIHBhZ2UgbGlzdCBj
b250YWlucyBhbiB1bmZvcm1hdGVkIGxpc3Qgb2YgcGFnZXMgdGhhdCBjYW4gYmUgaW5zcGVjdGVk
IHdpdGggYSBsaW5rIHRvIG9wZW4gYSBzZXNzaW9uLgorICAgIGlmIChwYXRoID09ICIvcGFnZWxp
c3QuanNvbiIpIHsKKyAgICAgICAgYnVpbGRQYWdlTGlzdChkYXRhLCBjb250ZW50VHlwZSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBm
bGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsKKyAgICAgICAgR01vZHVsZSogcmVz
b3VyY2VzTW9kdWxlID0gZ19tb2R1bGVfb3BlbigibGliV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2Vz
LnNvIiwgR19NT0RVTEVfQklORF9MQVpZKTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZXNNb2R1bGUp
IHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiRXJyb3IgbG9hZGluZyBsaWJXUEVXZWJJbnNw
ZWN0b3JSZXNvdXJjZXMuc286ICVzIiwgZ19tb2R1bGVfZXJyb3IoKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBnX21vZHVsZV9tYWtlX3Jlc2lkZW50KHJlc291
cmNlc01vZHVsZSk7CisgICAgfSk7CisKKyAgICAvLyBQb2ludCB0aGUgZGVmYXVsdCBwYXRoIHRv
IGEgZm9ybWF0dGVkIHBhZ2UgdGhhdCBxdWVyaWVzIHRoZSBwYWdlIGxpc3QgYW5kIGRpc3BsYXkg
dGhlbS4KKyAgICBDU3RyaW5nIHJlc291cmNlUGF0aCA9IG1ha2VTdHJpbmcoIi9vcmcvd3BlL2lu
c3BlY3Rvci9Vc2VySW50ZXJmYWNlIiwgKHBhdGggPT0gIi8iID8gIi9pbnNwZWN0b3JQYWdlSW5k
ZXguaHRtbCIgOiBwYXRoKSkudXRmOCgpOworICAgIGlmIChyZXNvdXJjZVBhdGguaXNOdWxsKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJv
cjsKKyAgICBHUmVmUHRyPEdCeXRlcz4gcmVzb3VyY2VCeXRlcyA9IGFkb3B0R1JlZihnX3Jlc291
cmNlc19sb29rdXBfZGF0YShyZXNvdXJjZVBhdGguZGF0YSgpLCBHX1JFU09VUkNFX0xPT0tVUF9G
TEFHU19OT05FLCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAgICBpZiAoIXJlc291cmNlQnl0ZXMpIHsK
KyAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5FcnJvcjogIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGVycm9yLT5jb2RlKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChlcnJvci0+
bWVzc2FnZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG9jY3VycmVkIGR1cmlu
ZyBmZXRjaGluZyBpbnNwZWN0b3IgcmVzb3VyY2UgZmlsZXMuPC9ib2R5PjwvaHRtbD4iKTsKKwor
ICAgICAgICBDU3RyaW5nIGVycm9ySFRNTCA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Cisg
ICAgICAgIGRhdGEuYXBwZW5kKGVycm9ySFRNTC5kYXRhKCksIGVycm9ySFRNTC5sZW5ndGgoKSk7
CisgICAgICAgIGNvbnRlbnRUeXBlID0gInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI7CisKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJFcnJvciBmZXRjaGluZyB3ZWJpbnNwZWN0b3IgcmVzb3VyY2Ug
ZmlsZXM6ICVkLCAlcyIsIGVycm9yLT5jb2RlLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBnc2l6ZSByZXNvdXJjZURhdGFTaXplOworICAgIGdj
b25zdHBvaW50ZXIgcmVzb3VyY2VEYXRhID0gZ19ieXRlc19nZXRfZGF0YShyZXNvdXJjZUJ5dGVz
LmdldCgpLCAmcmVzb3VyY2VEYXRhU2l6ZSk7CisgICAgZGF0YS5hcHBlbmQoc3RhdGljX2Nhc3Q8
Y29uc3QgY2hhcio+KHJlc291cmNlRGF0YSksIHJlc291cmNlRGF0YVNpemUpOworCisgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gbWltZVR5cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MocmVzb3VyY2VQYXRo
LmRhdGEoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgZ3VjaGFyKj4ocmVzb3VyY2VEYXRhKSwgcmVzb3Vy
Y2VEYXRhU2l6ZSwgbnVsbHB0cikpOworICAgIGNvbnRlbnRUeXBlID0gbWltZVR5cGUuZ2V0KCk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yU2VydmVyOjpidWlsZFBh
Z2VMaXN0KFZlY3RvcjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSkKK3sKKyAgICAv
LyBjaHJvbWVkZXZ0b29scyAoaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9tZWRldnRvb2xz
KSAwLjMuOCBleHBlY3RlZCBKU09OIGZvcm1hdDoKKyAgICAvLyB7CisgICAgLy8gICJ0aXRsZSI6
ICJGb28iLAorICAgIC8vICAidXJsIjogImh0dHA6Ly9mb28iLAorICAgIC8vICAiZGV2dG9vbHNG
cm9udGVuZFVybCI6ICIvTWFpbi5odG1sP3dzPWxvY2FsaG9zdDo5MjIyL2RldnRvb2xzL3BhZ2Uv
MSIsCisgICAgLy8gICJ3ZWJTb2NrZXREZWJ1Z2dlclVybCI6ICJ3czovL2xvY2FsaG9zdDo5MjIy
L2RldnRvb2xzL3BhZ2UvMSIKKyAgICAvLyB9LAorCisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiWyAiKTsKKyAgICBDbGllbnRNYXA6Oml0ZXJh
dG9yIGVuZCA9IG1fY2xpZW50TWFwLmVuZCgpOworICAgIGZvciAoQ2xpZW50TWFwOjppdGVyYXRv
ciBpdCA9IG1fY2xpZW50TWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBX
ZWJQYWdlUHJveHkqIHdlYlBhZ2UgPSBpdC0+dmFsdWUtPmluc3BlY3RlZFBhZ2UoKTsKKyAgICAg
ICAgaWYgKGl0ICE9IG1fY2xpZW50TWFwLmJlZ2luKCkpCisgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgieyBcImlk
XCI6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIFwidGl0bGVcIjogXCIiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQod2ViUGFnZS0+cGFnZUxvYWRTdGF0ZSgpLnRpdGxlKCkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcInVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCh3ZWJQYWdlLT5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcImluc3BlY3RvclVybFwiOiBcIiIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIi9NYWluLmh0bWw/cGFnZT0iKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIoaXQtPmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
XCIsIFwiZGV2dG9vbHNGcm9udGVuZFVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIi9NYWluLmh0bWw/d3M9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJpbmRB
ZGRyZXNzKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmROdW1iZXIocG9ydCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIvZGV2dG9vbHMvcGFnZS8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaXQt
PmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwid2ViU29ja2V0RGVi
dWdnZXJVcmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3czovLyIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZChiaW5kQWRkcmVzcygpKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI6Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvcnQo
KSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2UvIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIlwiIH0iKTsKKyAgICB9CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIg
XSIpOworICAgIENTdHJpbmcgY3N0ciA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7CisgICAg
ZGF0YS5hcHBlbmQoY3N0ci5kYXRhKCksIGNzdHIubGVuZ3RoKCkpOworICAgIGNvbnRlbnRUeXBl
ID0gImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKaW5kZXggMzk5NTA2OTQ4ZWYuLmJhNzdjMmFjNzJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5j
aGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVu
Y2hlci5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgUHJvY2Vzc1R5cGUgcHJv
Y2Vzc1R5cGU7CiAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6
YXRpb25EYXRhOwogCi0jaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEsp
CisjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpKQogICAgICAgICBTdHJpbmcgcHJvY2Vzc0NtZFByZWZpeDsKICNlbmRpZgogICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nl
c3NMYXVuY2hlcldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3Bl
L1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjZkNDYwOTg2OTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTUz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorCisjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwu
aD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3BlL3JlbmRlcmVyLWhvc3QuaD4KKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMu
aD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisvLyBGSVhNRTog
TWVyZ2Ugd2l0aCBQcm9jZXNzTGF1bmNoZXJHdGs/CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHZvaWQgY2hpbGRTZXR1cEZ1bmN0aW9u
KGdwb2ludGVyIHVzZXJEYXRhKQoreworICAgIGludCBzb2NrZXQgPSBHUE9JTlRFUl9UT19JTlQo
dXNlckRhdGEpOworICAgIGNsb3NlKHNvY2tldCk7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVy
OjpsYXVuY2hQcm9jZXNzKCkKK3sKKyAgICBHUGlkIHBpZCA9IDA7CisKKyAgICBJUEM6OkNvbm5l
Y3Rpb246OlNvY2tldFBhaXIgc29ja2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxh
dGZvcm1Db25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbk9wdGlvbnM6OlNldENs
b2V4ZWNPblNlcnZlcik7CisKKyAgICBTdHJpbmcgZXhlY3V0YWJsZVBhdGg7CisgICAgQ1N0cmlu
ZyByZWFsRXhlY3V0YWJsZVBhdGg7CisgICAgc3dpdGNoIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vz
c1R5cGUpIHsKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYjoKKyAg
ICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Ok5ldHdv
cms6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9j
ZXNzKCk7CisgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorICAg
IGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U6CisgICAgICAgIGV4
ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpOworICAgICAg
ICBicmVhazsKKyNlbmRpZgorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVhbEV4ZWN1dGFibGVQYXRoID0g
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWN1dGFibGVQYXRoKTsKKyAgICBHVW5pcXVlUHRy
PGdjaGFyPiB3a1NvY2tldChnX3N0cmR1cF9wcmludGYoIiVkIiwgc29ja2V0UGFpci5jbGllbnQp
KTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiB3cGVTb2NrZXQ7CisKKyAgICB1bnNpZ25lZCBuYXJn
cyA9IDQ7IC8vIHNpemUgb2YgdGhlIGFyZ3YgYXJyYXkgZm9yIGdfc3Bhd25fYXN5bmMoKQorICAg
IGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9j
ZXNzVHlwZTo6V2ViKSB7CisgICAgICAgIHdwZVNvY2tldCA9IEdVbmlxdWVQdHI8Z2NoYXI+KGdf
c3RyZHVwX3ByaW50ZigiJWQiLCB3cGVfcmVuZGVyZXJfaG9zdF9jcmVhdGVfY2xpZW50KCkpKTsK
KyAgICAgICAgbmFyZ3MgPSA1OworICAgIH0KKworI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkK
KyAgICBWZWN0b3I8Q1N0cmluZz4gcHJlZml4QXJnczsKKyAgICBpZiAoIW1fbGF1bmNoT3B0aW9u
cy5wcm9jZXNzQ21kUHJlZml4LmlzTnVsbCgpKSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHNw
bGl0QXJnczsKKyAgICAgICAgbV9sYXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXguc3BsaXQo
JyAnLCBzcGxpdEFyZ3MpOworICAgICAgICBmb3IgKGF1dG8gaXQgPSBzcGxpdEFyZ3MuYmVnaW4o
KTsgaXQgIT0gc3BsaXRBcmdzLmVuZCgpOyBpdCsrKQorICAgICAgICAgICAgcHJlZml4QXJncy5h
cHBlbmQoaXQtPnV0ZjgoKSk7CisgICAgICAgIG5hcmdzICs9IHByZWZpeEFyZ3Muc2l6ZSgpOwor
ICAgIH0KKyNlbmRpZgorCisgICAgY2hhcioqIGFyZ3YgPSBnX25ld2EoY2hhciosIG5hcmdzKTsK
KyAgICB1bnNpZ25lZCBpID0gMDsKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCisgICAgLy8g
SWYgdGhlcmUncyBhIHByZWZpeCBjb21tYW5kLCBwdXQgaXQgYmVmb3JlIHRoZSByZXN0IG9mIHRo
ZSBhcmdzLgorICAgIGZvciAoYXV0byBpdCA9IHByZWZpeEFyZ3MuYmVnaW4oKTsgaXQgIT0gcHJl
Zml4QXJncy5lbmQoKTsgaXQrKykKKyAgICAgICAgYXJndltpKytdID0gY29uc3RfY2FzdDxjaGFy
Kj4oaXQtPmRhdGEoKSk7CisjZW5kaWYKKyAgICBhcmd2W2krK10gPSBjb25zdF9jYXN0PGNoYXIq
PihyZWFsRXhlY3V0YWJsZVBhdGguZGF0YSgpKTsKKyAgICBhcmd2W2krK10gPSB3a1NvY2tldC5n
ZXQoKTsKKyAgICBpZiAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVu
Y2hlcjo6UHJvY2Vzc1R5cGU6OldlYikKKyAgICAgICAgYXJndltpKytdID0gd3BlU29ja2V0Lmdl
dCgpOworICAgIGFyZ3ZbaSsrXSA9IG51bGxwdHI7CisKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJv
cj4gZXJyb3I7CisgICAgaWYgKCFnX3NwYXduX2FzeW5jKDAsIGFyZ3YsIDAsIEdfU1BBV05fTEVB
VkVfREVTQ1JJUFRPUlNfT1BFTiwgY2hpbGRTZXR1cEZ1bmN0aW9uLCBHSU5UX1RPX1BPSU5URVIo
c29ja2V0UGFpci5zZXJ2ZXIpLCAmcGlkLCAmZXJyb3Iub3V0UHRyKCkpKSB7CisgICAgICAgIGdf
cHJpbnRlcnIoIlVuYWJsZSB0byBmb3JrIGEgbmV3IFdlYlByb2Nlc3M6ICVzLlxuIiwgZXJyb3It
Pm1lc3NhZ2UpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICAv
LyBEb24ndCBleHBvc2UgdGhlIHBhcmVudCBzb2NrZXQgdG8gcG90ZW50aWFsIGZ1dHVyZSBjaGls
ZHJlbi4KKyAgICB3aGlsZSAoZmNudGwoc29ja2V0UGFpci5jbGllbnQsIEZfU0VURkQsIEZEX0NM
T0VYRUMpID09IC0xKQorICAgICAgICBSRUxFQVNFX0FTU0VSVChlcnJubyAhPSBFSU5UUik7CisK
KyAgICBjbG9zZShzb2NrZXRQYWlyLmNsaWVudCk7CisgICAgbV9wcm9jZXNzSWRlbnRpZmllciA9
IHBpZDsKKworICAgIC8vIFdlJ3ZlIGZpbmlzaGVkIGxhdW5jaGluZyB0aGUgcHJvY2VzcywgbWVz
c2FnZSBiYWNrIHRvIHRoZSBtYWluIHJ1biBsb29wLgorICAgIFJlZlB0cjxQcm9jZXNzTGF1bmNo
ZXI+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IHNlcnZlclNvY2tldCA9IHNvY2tldFBhaXIuc2VydmVyOworICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbcHJvdGVjdGVkVGhpcywgcGlkLCBzZXJ2ZXJTb2NrZXRdIHsKKyAgICAgICAgcHJv
dGVjdGVkVGhpcy0+ZGlkRmluaXNoTGF1bmNoaW5nUHJvY2VzcyhwaWQsIHNlcnZlclNvY2tldCk7
CisgICAgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVyOjp0ZXJtaW5hdGVQcm9jZXNzKCkK
K3sKKyAgICBpZiAobV9pc0xhdW5jaGluZykgeworICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fcHJvY2Vzc0lkZW50aWZpZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIGtpbGwobV9wcm9jZXNzSWRlbnRpZmllciwgU0lHS0lMTCk7Cisg
ICAgbV9wcm9jZXNzSWRlbnRpZmllciA9IDA7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpw
bGF0Zm9ybUludmFsaWRhdGUoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggMWM4ZWY0NjNj
YzIuLjg0N2ZiNWMzMjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVj
dG9yUHJveHkuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJQcmVmZXJl
bmNlcyYgaW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkgY29uc3Q7CiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBjcmVhdGVJ
bnNwZWN0b3JXaW5kb3coKTsKICAgICB2b2lkIHVwZGF0ZUluc3BlY3RvcldpbmRvd1RpdGxlKCkg
Y29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YXN0ZWJvYXJkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJk
UHJveHkuaAppbmRleCA0NGU4MzY1NTNiNS4uOWJiNmQ1NGNhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTk4LDYgKzk4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNldFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIHVpbnQ2NF90JiBuZXdDaGFuZ2VDb3VudCk7CiAgICAgdm9pZCBzZXRQYXN0ZWJvYXJkQnVm
ZmVyRm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlLCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIHVpbnQ2NF90IHNpemUs
IHVpbnQ2NF90JiBuZXdDaGFuZ2VDb3VudCk7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykK
ICAgICB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
Y29uc3QgV2ViU2VsZWN0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVhZEZyb21DbGlwYm9hcmQoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2ViU2VsZWN0aW9uRGF0YSYpOwpAQCAtMTA1LDcg
KzEwNiwxNCBAQCBwcml2YXRlOgogICAgIFdlYkZyYW1lUHJveHkqIG1fcHJpbWFyeVNlbGVjdGlv
bk93bmVyIHsgbnVsbHB0ciB9OwogICAgIFdlYkZyYW1lUHJveHkqIG1fZnJhbWVXcml0aW5nVG9D
bGlwYm9hcmQgeyBudWxscHRyIH07CiAjZW5kaWYgLy8gUExBVEZPUk0oR1RLKQotICAgIAorCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIHZvaWQgZ2V0UGFzdGVib2FyZFR5cGVzKFZlY3RvcjxTdHJp
bmc+JiBwYXN0ZWJvYXJkVHlwZXMpOworICAgIHZvaWQgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJk
KHVpbnQ2NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBXVEY6OlN0cmlu
ZyYpOworICAgIHZvaWQgd3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6
OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CisgICAgdm9pZCB3cml0ZVN0cmluZ1RvUGFzdGVib2Fy
ZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgor
CiAgICAgV2ViUHJvY2Vzc1Byb3h5TGlzdCBtX3dlYlByb2Nlc3NQcm94eUxpc3Q7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA3NjZiYzEyZWQzYi4uNDAxMmFkNWEzYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5p
bgpAQCAtNTgsNCArNTgsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFzdGVib2FyZFByb3h5IHsKICAg
ICBXcml0ZVRvQ2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgc3RydWN0IFdlYktpdDo6
V2ViU2VsZWN0aW9uRGF0YSBwYXN0ZWJvYXJkQ29udGVudCkKICAgICBSZWFkRnJvbUNsaXBib2Fy
ZChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJTZWxlY3Rpb25E
YXRhIHBhc3RlYm9hcmRDb250ZW50KQogI2VuZGlmCisKKyNpZiBQTEFURk9STShXUEUpCisgICAg
R2V0UGFzdGVib2FyZFR5cGVzKCkgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKQorICAgIFJlYWRT
dHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBl
KSAtPiAoU3RyaW5nIHN0cmluZykKKyAgICBXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoc3Ry
dWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50IGNvbnRlbnQpCisgICAgV3JpdGVTdHJp
bmdUb1Bhc3RlYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgdGV4dCkKKyNlbmRp
ZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXgg
ZWU0ODQ3YzkxZjguLmM4M2Q1NGU2MjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2Vi
UHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24p
CiAgICAgbm90aWZ5VGhpc1dlYlByb2Nlc3NQb29sV2FzQ3JlYXRlZCgpOwogfQogCi0jaWYgIVBM
QVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShDT0NPQSkgJiYg
IVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93
cGUvVGV4dENoZWNrZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4wMzcwZmYyYmExYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgorCisjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0
ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgVGV4dENoZWNrZXJT
dGF0ZSB0ZXh0Q2hlY2tlclN0YXRlOworCitjb25zdCBUZXh0Q2hlY2tlclN0YXRlJiBUZXh0Q2hl
Y2tlcjo6c3RhdGUoKQoreworICAgIHJldHVybiB0ZXh0Q2hlY2tlclN0YXRlOworfQorCit2b2lk
IFRleHRDaGVja2VyOjpzZXRUZXN0aW5nTW9kZShib29sKQoreworfQorCitib29sIFRleHRDaGVj
a2VyOjppc1Rlc3RpbmdNb2RlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxDaGVja2lu
Z0FsbG93ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIFRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
Ym9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpz
ZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3Rh
dGVDaGFuZ2VkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0
Q2hlY2tlcjo6Z3JhbW1hckNoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2ludDY0X3QgVGV4dENoZWNrZXI6OnVuaXF1ZVNwZWxs
RG9jdW1lbnRUYWcoV2ViUGFnZVByb3h5KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y2xvc2VTcGVsbERvY3VtZW50
V2l0aFRhZyhpbnQ2NF90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4
dENoZWNrZXI6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhpbnQ2NF90LCBTdHJpbmdWaWV3LCBpbnQz
Ml90JiwgaW50MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0
Q2hlY2tlcjo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoaW50NjRfdCwgU3RyaW5nVmlldywgVmVjdG9y
PFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+JiwgaW50MzJfdCYsIGludDMyX3QmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OnNwZWxsaW5nVUlJc1Nob3dp
bmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFRleHRDaGVja2VyOjp0b2dnbGVTcGVsbGluZ1VJSXNTaG93aW5nKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjp1cGRhdGVTcGVsbGluZ1VJV2l0
aE1pc3NwZWxsZWRXb3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6dXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFt
bWFyU3RyaW5nKGludDY0X3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEdyYW1tYXJEZXRhaWwmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmdldEd1ZXNz
ZXNGb3JXb3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGludDMyX3Qs
IFZlY3RvcjxTdHJpbmc+JiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIFRleHRDaGVja2VyOjpsZWFybldvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjppZ25vcmVXb3JkKGlu
dDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hl
Y2tlckNvbXBsZXRpb24+LCBpbnQzMl90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNWJhZWVlM2MxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApAQCAtMCwwICsxLDE1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlBhZ2VQcm94eSogV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94
eTo6Y3JlYXRlSW5zcGVjdG9yV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGlkQ2xvc2Uo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtRGlkQ2xvc2VGb3JDcmFzaCgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtSGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQnJpbmdJbnNwZWN0
ZWRQYWdlVG9Gcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdlVVJMKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd3BlL2luc3BlY3Rvci9Vc2Vy
SW50ZXJmYWNlL01haW4uaHRtbCIpOworfQorCitTdHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omlu
c3BlY3RvclRlc3RQYWdlVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9v
cmcvd3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCIpOworfQorCitTdHJpbmcg
V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvckJhc2VVUkwoKQoreworICAgIHJldHVybiBTdHJp
bmcoInJlc291cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvIik7Cit9CisK
K3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdo
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwordW5zaWdu
ZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURldGFjaCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRh
Y2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgo
dW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRhMjAyYWJlYjRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUu
Y3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eS5oIgorCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
Tm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K1N0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYpCit7
CisgICAgcmV0dXJuICJNb3ppbGxhLzUuMCAoTGludXg7IHg4Nl82NCBHTlUvTGludXgpIEFwcGxl
V2ViS2l0LzYwMS4xIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAgU2FmYXJpLzYwMS4x
IjsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBTdHJp
bmcmLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZWNlbnRTZWFyY2hlcyhj
b25zdCBTdHJpbmcmLCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybVJlbW92
ZVJlY2VudFNlYXJjaGVzKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmVkaXRvclN0
YXRlQ2hhbmdlZChjb25zdCBFZGl0b3JTdGF0ZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhkM2QwZWI0NmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwCkBAIC0w
LDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRQcm94eS5o
IgorCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgewordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldFBhc3RlYm9hcmRUeXBl
cyhWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzKQoreworICAgIFBsYXRmb3JtUGFzdGVi
b2FyZCgpLmdldFR5cGVzKHBhc3RlYm9hcmRUeXBlcyk7Cit9CisKK3ZvaWQgV2ViUGFzdGVib2Fy
ZFByb3h5OjpyZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZFR5cGUsIFdURjo6U3RyaW5nJiB2YWx1ZSkKK3sKKyAgICB2YWx1ZSA9
IFBsYXRmb3JtUGFzdGVib2FyZCgpLnJlYWRTdHJpbmcoaW5kZXgsIHBhc3RlYm9hcmRUeXBlKTsK
K30KKwordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OndyaXRlV2ViQ29udGVudFRvUGFzdGVib2Fy
ZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBQ
bGF0Zm9ybVBhc3RlYm9hcmQoKS53cml0ZShjb250ZW50KTsKK30KKwordm9pZCBXZWJQYXN0ZWJv
YXJkUHJveHk6OndyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS53
cml0ZShwYXN0ZWJvYXJkVHlwZSwgdGV4dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQ
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2VzV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmY4MWZjZGExY2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVu
Y2VzV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQ
cmVmZXJlbmNlcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1Jbml0aWFs
aXplU3RvcmUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVy
ZW5jZXM6OnBsYXRmb3JtVXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlByZWZl
cmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZUJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29s
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBs
YXRmb3JtVXBkYXRlVUludDMyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgdWludDMyX3QpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZv
cm1VcGRhdGVEb3VibGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBkb3VibGUpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRh
dGVGbG9hdFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGZsb2F0KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0U3RyaW5nVXNl
clZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRm
b3JtR2V0Qm9vbFVzZXJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29sJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQcmVmZXJl
bmNlczo6cGxhdGZvcm1HZXRVSW50MzJVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgdWlu
dDMyX3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldERvdWJsZVVzZXJWYWx1ZUZvcktleShj
b25zdCBTdHJpbmcmLCBkb3VibGUmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwZmE1MmRhZjdjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKQEAgLTAs
MCArMSwxNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1v
YmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisKKyNpbmNs
dWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3Ry
eS5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5o
PgorCisvLyBGSVhNRTogTWVyZ2Ugd2l0aCBXZWJQcm9jZXNzUG9vbEd0az8gQWJzdHJhY3QgdGhl
IGNvbW1vbiBwYXJ0cz8KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SX1NFUlZFUikKK3N0YXRpYyB2b2lkIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKQoreworICAgIHN0
YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisgICAgaWYgKGluaXRpYWxpemVkKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgU3RyaW5nIHNlcnZl
ckFkZHJlc3MoZ19nZXRlbnYoIldFQktJVF9JTlNQRUNUT1JfU0VSVkVSIikpOworCisgICAgaWYg
KCFzZXJ2ZXJBZGRyZXNzLmlzTnVsbCgpKSB7CisgICAgICAgIFN0cmluZyBiaW5kQWRkcmVzcyA9
ICIxMjcuMC4wLjEiOworICAgICAgICB1bnNpZ25lZCBzaG9ydCBwb3J0ID0gMjk5OTsKKworICAg
ICAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7CisgICAgICAgIHNlcnZlckFkZHJlc3Muc3BsaXQo
JzonLCByZXN1bHQpOworCisgICAgICAgIGlmIChyZXN1bHQuc2l6ZSgpID09IDIpIHsKKyAgICAg
ICAgICAgIGJpbmRBZGRyZXNzID0gcmVzdWx0WzBdOworICAgICAgICAgICAgYm9vbCBvayA9IGZh
bHNlOworICAgICAgICAgICAgcG9ydCA9IHJlc3VsdFsxXS50b0ludCgmb2spOworICAgICAgICAg
ICAgaWYgKCFvaykgeworICAgICAgICAgICAgICAgIHBvcnQgPSAyOTk5OworICAgICAgICAgICAg
ICAgIExPR19FUlJPUigiQ291bGRuJ3QgcGFyc2UgdGhlIHBvcnQuIFVzZSAyOTk5IGluc3RlYWQu
Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgTE9HX0VSUk9S
KCJDb3VsZG4ndCBwYXJzZSAlcywgd3JvbmcgZm9ybWF0PyBVc2UgMTI3LjAuMC4xOjI5OTkgaW5z
dGVhZC4iLCBzZXJ2ZXJBZGRyZXNzLnV0ZjgoKS5kYXRhKCkpOworCisgICAgICAgIGlmICghV2Vi
SW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5saXN0ZW4oYmluZEFkZHJlc3MsIHBvcnQpKQor
ICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBzdGFydCBsaXN0ZW5pbmcgb246IElQIGFk
ZHJlc3M9JXMsIHBvcnQ9JWQuIiwgYmluZEFkZHJlc3MudXRmOCgpLmRhdGEoKSwgcG9ydCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBMT0coSW5zcGVjdG9yU2VydmVyLCAiVG8gc3Rh
cnQgaW5zcGVjdG9yIHNlcnZlciBzZXQgV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVIgdG8gMTI3LjAu
MC4xOjI5OTkgZm9yIGV4YW1wbGUuIik7Cit9CisjZW5kaWYKKworV1RGOjpTdHJpbmcgV2ViUHJv
Y2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnko
KQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5h
bWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJhcHBjYWNoZSIsIG51bGxwdHIpKTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihj
YWNoZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVl
UHRyPGdjaGFyPiBjYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2Fj
aGVfZGlyKCksICJ3cGUiLCAibWVkaWFjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjYWNoZURpcmVjdG9yeS5n
ZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7
CisgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucmVnaXN0ZXJTaGFy
ZWRSZXNvdXJjZUxvYWRPYnNlcnZlcigpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisgICAgaW5pdEluc3Bl
Y3RvclNlcnZlcigpOworI2VuZGlmCisKKyAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJs
ZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQgfHwgY2FjaGVNb2RlbCgpID09IENhY2hlTW9kZWxE
b2N1bWVudFZpZXdlcjsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZhbGlk
YXRlQ29udGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYlBy
b2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgp
Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxl
bmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgbnVsbHB0cikp
OworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KGRhdGFiYXNlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgpCit7CisgICAg
R1VuaXF1ZVB0cjxnY2hhcj4gaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxl
bmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgImluZGV4ZWRk
YiIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihpbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0
cmluZyBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0aCgpIGNv
bnN0Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9m
aWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgImljb25kYXRhYmFzZSIsIG51
bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihkYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNz
UG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAg
ICBHVW5pcXVlUHRyPGdjaGFyPiBzdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19n
ZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIpKTsKKyAg
ICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzdG9y
YWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQ
bGF0Zm9ybURlZmF1bHRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVl
UHRyPGdjaGFyPiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19n
ZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgIm1lZGlha2V5cyIsIG51bGxwdHIpKTsKKyAgICBy
ZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihtZWRpYUtl
eXNTdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIEdVbmlx
dWVQdHI8Y2hhcj4gZGlza0NhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNl
cl9jYWNoZV9kaXIoKSwgIndwZSIsICJjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkaXNrQ2FjaGVEaXJlY3Rv
cnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVm
YXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRy
PGdjaGFyPiBqYXZhU2NyaXB0Q29yZUNvbmZpZ0RpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdf
Z2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIsICJKYXZhU2NyaXB0Q29yZURlYnVnIiwgbnVsbHB0
cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKGphdmFTY3JpcHRDb3JlQ29uZmlnRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCit7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJiMzViNjYwNmI2Li44Y2QzMWYyM2Fh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtOTU0MSw3ICs5NTQxLDcgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNj
cmlwdCA9ICJXS0JBU0VfSD0ke1RBUkdFVF9CVUlMRF9ESVJ9LyR7UFJJVkFURV9IRUFERVJTX0ZP
TERFUl9QQVRIfS9XS0Jhc2UuaFxuXG51bmlmZGVmIC1CIC1EX19BUFBMRV9fIC1VQlVJTERJTkdf
R1RLX18gLVVVU0VfU09VUCAtbyBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9
XCJcblxuY2FzZSAkPyBpblxuMClcbiAgICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZlxuICAg
IDs7XG4xKVxuICAgIG12IFwiJHtXS0JBU0VfSH1cInsudW5pZmRlZix9XG4gICAgOztcbiopXG4g
ICAgZXhpdCAxXG5lc2FjXG4iOworCQkJc2hlbGxTY3JpcHQgPSAiV0tCQVNFX0g9JHtUQVJHRVRf
QlVJTERfRElSfS8ke1BSSVZBVEVfSEVBREVSU19GT0xERVJfUEFUSH0vV0tCYXNlLmhcblxudW5p
ZmRlZiAtQiAtRF9fQVBQTEVfXyAtVUJVSUxESU5HX0dUS19fIC1VQlVJTERJTkdfV1BFX18gLVVV
U0VfU09VUCAtbyBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9XCJcblxuY2Fz
ZSAkPyBpblxuMClcbiAgICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZlxuICAgIDs7XG4xKVxu
ICAgIG12IFwiJHtXS0JBU0VfSH1cInsudW5pZmRlZix9XG4gICAgOztcbiopXG4gICAgZXhpdCAx
XG5lc2FjXG4iOwogCQl9OwogCQkzN0U1MzEwMTFCMjM5MTA5MDA3NEYwREYgLyogQ29weSBpT1Mg
U2FuZGJveCBQcm9maWxlcyBmb3IgTWFudWFsIFNhbmRib3hpbmcgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyUHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKaW5kZXggNTc1MDli
OTdhNGMuLmUyYmU4MDlkOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJl
Zml4LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCkBAIC01Nyw3ICs1Nyw3
IEBACiAKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQogI2RlZmluZSBFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFIDEKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggMTk1NTAxYWU0NGQuLmIxZjZiNjRmNGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9pZCBXZWJF
ZGl0b3JDbGllbnQ6OnJlZG8oKQogICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvKHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJQYWdlUHJv
eHk6OlJlZG8pKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvOjpSZXBs
eShyZXN1bHQpKTsKIH0KIAotI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkK
KyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXUEUp
CiB2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50
KiBldmVudCkKIHsKICAgICBpZiAobV9wYWdlLT5oYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChl
dmVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDU3ODFjODZkMmM2
Li5lZjY2ZTU4ZTZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE4
MDIsNCArMTgwMiwxMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRp
bmdJY29uKHVpbnQ2NF90IGxvYWRJZGVudGlmaWVyLCBTaGFyZWRCdQogICAgIH0KIH0KIAorYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBXZWJD
b3JlOjpVUkwmKSBjb25zdAoreworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4gZmFsc2U7
CisjZWxzZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDIxMmYxMGZkZGUxLi4zZjAz
ZTY5MzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjYyLDYgKzI2Miw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNv
cmU6OkxpbmtJY29uJiwgdWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CiAgICAgdm9pZCBmaW5p
c2hlZExvYWRpbmdJY29uKHVpbnQ2NF90IGxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpTaGFyZWRC
dWZmZXIqKSBmaW5hbDsKIAorICAgIGJvb2wgc2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBX
ZWJDb3JlOjpVUkwmKSBjb25zdCBvdmVycmlkZTsKKwogICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwog
ICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBtX3BsdWdpblZpZXc7CiAgICAgYm9vbCBtX2hhc1NlbnRS
ZXNwb25zZVRvUGx1Z2luVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApp
bmRleCA4MjMyOTBkZjQyNC4uMWFhMmQ4YmVlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKQEAgLTM3NSw0ICszNzUsMzEgQEAgUmVmPFNlbGVjdGlvbkRhdGE+IFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6cmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWIK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKIAorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIFBhc3Rl
Ym9hcmRTdHJhdGVneQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0VHlwZXMoVmVj
dG9yPFN0cmluZz4mIHR5cGVzKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJv
eHk6OkdldFBhc3RlYm9hcmRUeXBlcygpLCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpH
ZXRQYXN0ZWJvYXJkVHlwZXM6OlJlcGx5KHR5cGVzKSwgMCk7Cit9CisKK1N0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpCit7CisgICAgU3RyaW5nIHZhbHVlOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbmRl
eCwgcGFzdGVib2FyZFR5cGUpLCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkU3Ry
aW5nRnJvbVBhc3RlYm9hcmQ6OlJlcGx5KHZhbHVlKSwgMCk7CisgICAgcmV0dXJuIHZhbHVlOwor
fQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3Qg
V2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViUGFzdGVib2FyZFByb3h5OjpXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29udGVudCks
IDApOworfQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6V3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQocGFz
dGVib2FyZFR5cGUsIHRleHQpLCAwKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRl
eCA0MTkzOGVkOWViMS4uYWYwZjFhMzA0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaApAQCAtODksMTAgKzg5LDE4IEBAIHByaXZhdGU6CiAgICAgbG9uZyBzZXRQYXRobmFtZXNG
b3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgbG9uZyBzZXRT
dHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCisKICNpZiBQ
TEFURk9STShHVEspCiAgICAgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUsIGNvbnN0IFdlYkNvcmU6OlNlbGVjdGlvbkRhdGEmKSBvdmVycmlkZTsKICAg
ICBSZWY8V2ViQ29yZTo6U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQ
RSkKKyAgICB2b2lkIGdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykgb3ZlcnJpZGU7Cisg
ICAgU3RyaW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZFR5cGUpIG92ZXJyaWRlOworICAgIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQo
Y29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKSBvdmVycmlkZTsKKyAgICB2b2lk
IHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dl
YkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWQwMzRiMDI2NzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0
TWVudUNsaWVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViQ29udGV4dE1lbnVDbGllbnQuaCIKKworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQor
CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6bG9va1VwSW5EaWN0aW9uYXJ5KFdlYkNv
cmU6OkZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkNvbnRl
eHRNZW51Q2xpZW50Ojppc1NwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3BlYWsoY29u
c3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkNvbnRl
eHRNZW51Q2xpZW50OjpzdG9wU3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVO
VVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmRjYTMwMjRjZWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGll
bnRXUEUuY3BwCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJF
ZGl0b3JDbGllbnQuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L05vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CisjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gVGhlIGlkZWEgZm9yIHRoZSBhcnJheS9tYXAgYmVs
b3cgY29tZXMgZnJvbSBCbGluaydzIEVkaXRpbmdCZWhhdmlvci5jcHAuCisKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBDdHJsS2V5ICA9IDEgPDwgMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRL
ZXkgICA9IDEgPDwgMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEgPDwgMjsK
K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBNZXRhS2V5ICA9IDEgPDwgMzsKKworLy8gS2V5cyB3aXRo
IHNwZWNpYWwgbWVhbmluZy4gVGhlc2Ugd2lsbCBiZSBkZWxlZ2F0ZWQgdG8gdGhlIGVkaXRvciB1
c2luZworLy8gdGhlIGV4ZWNDb21tYW5kKCkgbWV0aG9kCitzdHJ1Y3QgS2V5RG93bkVudHJ5IHsK
KyAgICB1bnNpZ25lZCB2aXJ0dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBj
b25zdCBjaGFyKiBuYW1lOworfTsKKworc3RydWN0IEtleVByZXNzRW50cnkgeworICAgIHVuc2ln
bmVkIGNoYXJDb2RlOworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBu
YW1lOworfTsKKworc3RhdGljIGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50cmllc1tdID0g
eworICAgIHsgVktfTEVGVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIFNoaWZ0S2V5LCAg
ICAgICAgICAgIk1vdmVMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0xFRlQsICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVdvcmRMZWZ0IiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5IHwgU2hpZnRL
ZXksCisgICAgICAgICJNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgMCwgICAgICAg
ICAgICAgICAgICAiTW92ZVJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfUklHSFQsICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUmlnaHRBbmRNb2RpZnlT
ZWxlY3Rpb24iICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXksICAgICAg
ICAgICAgIk1vdmVXb3JkUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX1JJR0hULCAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRSaWdodEFuZE1vZGlmeVNl
bGVjdGlvbiIgICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAgICAgICAg
ICJNb3ZlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19V
UCwgICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX1BSSU9SLCAgU2hpZnRLZXksICAgICAgICAgICAiTW92
ZVBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwg
ICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19ET1dOLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVEb3du
QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgU2hp
ZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAg
ICB9LAorICAgIHsgVktfVVAsICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFyYWdyYXBo
QmFja3dhcmRBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBWS19ET1dOLCAgIEN0cmxLZXkg
fCBTaGlmdEtleSwgIk1vdmVQYXJhZ3JhcGhGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiAgfSwK
KyAgICB7IFZLX1BSSU9SLCAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VVcCIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTkVYVCwgICAwLCAgICAgICAgICAg
ICAgICAgICJNb3ZlUGFnZURvd24iICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19IT01FLCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZSIg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgU2hpZnRLZXksCisgICAgICAg
ICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSwgICAgICAgICAgICAi
TW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCIgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9N
RSwgICBDdHJsS2V5IHwgU2hpZnRLZXksCisgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3Vt
ZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0VORCwgICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lIiAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBTaGlmdEtleSwgICAgICAgICAg
ICJNb3ZlVG9FbmRPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisgICAgeyBWS19F
TkQsICAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAg
ICAgICAiTW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIDAsICAgICAgICAgICAgICAg
ICAgIkRlbGV0ZUJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X0JBQ0ssICAgU2hpZnRLZXksICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfREVMRVRFLCAwLCAgICAgICAgICAgICAgICAgICJE
ZWxldGVGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNL
LCAgIEN0cmxLZXksICAgICAgICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRl
V29yZEZvcndhcmQiICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0InLCAgICAgICAg
IEN0cmxLZXksICAgICAgICAgICJUb2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyAnSScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZUl0YWxp
YyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdVJywgICAgICAgICBDdHJs
S2V5LCAgICAgICAgICAiVG9nZ2xlVW5kZXJsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfRVNDQVBFLCAwLCAgICAgICAgICAgICAgICAgICJDYW5jZWwiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19PRU1fUEVSSU9ELCBDdHJsS2V5
LCAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX1RBQiwgICAgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfVEFCLCAgICBTaGlmdEtleSwgICAgICAg
ICAgICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19SRVRVUk4sIDAsICAgICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQ3RybEtleSwgICAgICAgICAgICAi
SW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVU
VVJOLCBBbHRLZXksICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2Vy
dE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwg
U2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIC8vIFRoZXNlIHByb2JhYmx5IG5lZWQgaGFuZGxpbmcgc29tZXdoZXJlIGVs
c2Ugc28gZG8gbm90IGV4ZWN1dGUgdGhlbS4gVGhlCisgICAgLy8gJ0N1dCcgY29tbWFuZCBpcyBy
ZW1vdmluZyB0ZXh0IHNvIGxldCdzIGF2b2lkIGxvc2luZyB0aGUgdXNlciBsb3NpbmcgZGF0YQor
ICAgIC8vIHVudGlsIHdlIGltcGxlbWVudCBjbGlwYm9hcmQgc3VwcG9ydCB3aGVyZXZlciBpdCBz
aG91bGQgYmUuCisgICAgeyBWS19JTlNFUlQsIEN0cmxLZXksICAgICAgICAgICAgIkNvcHkiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VSVCwgU2hp
ZnRLZXksICAgICAgICAgICAiUGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfREVMRVRFLCBTaGlmdEtleSwgICAgICAgICAgICJDdXQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQycsICAgICAgICAgQ3RybEtl
eSwgICAgICAgICAgIkNvcHkiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7ICdWJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiUGFzdGUiICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1YnLCAgICAgICAgIEN0cmxLZXkgfCBT
aGlmdEtleSwgIlBhc3RlQW5kTWF0Y2hTdHlsZSIgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyAnWCcsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIkN1dCIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdBJywgICAgICAgICBDdHJsS2V5LCAgICAgICAg
ICAiU2VsZWN0QWxsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1on
LCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJVbmRvIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyAnWicsICAgICAgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAi
UmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdZJywgICAg
ICAgICBDdHJsS2V5LCAgICAgICAgICAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfSU5TRVJULCAwLCAgICAgICAgICAgICAgICAgICJPdmVyV3Jp
dGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMgY29uc3Qg
S2V5UHJlc3NFbnRyeSBrZXlQcmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdcdCcsICAgMCwgICAg
ICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgJ1x0JywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNrdGFiIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIDAsICAgICAgICAg
ICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7ICdccicsICAgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBTaGlmdEtleSwgICAgICAg
ICAgICJJbnNlcnRMaW5lQnJlYWsiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyAnXHInLCAgIEFsdEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRLZXksICAi
SW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworc3Rh
dGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQmIGV2
ZW50KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGludCwgY29uc3QgY2hh
cio+PiBrZXlEb3duQ29tbWFuZHNNYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hN
YXA8aW50LCBjb25zdCBjaGFyKj4+IGtleVByZXNzQ29tbWFuZHNNYXA7CisKKyAgICBpZiAoa2V5
RG93bkNvbW1hbmRzTWFwLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlEb3duRW50cmllcyk7IGkrKykKKyAgICAg
ICAgICAgIGtleURvd25Db21tYW5kc01hcC5nZXQoKS5zZXQoa2V5RG93bkVudHJpZXNbaV0ubW9k
aWZpZXJzIDw8IDE2IHwga2V5RG93bkVudHJpZXNbaV0udmlydHVhbEtleSwga2V5RG93bkVudHJp
ZXNbaV0ubmFtZSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlf
TEVOR1RIKGtleVByZXNzRW50cmllcyk7IGkrKykKKyAgICAgICAgICAgIGtleVByZXNzQ29tbWFu
ZHNNYXAuZ2V0KCkuc2V0KGtleVByZXNzRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlQ
cmVzc0VudHJpZXNbaV0uY2hhckNvZGUsIGtleVByZXNzRW50cmllc1tpXS5uYW1lKTsKKyAgICB9
CisKKyAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgIGlmIChldmVudC5zaGlmdEtleSgp
KQorICAgICAgICBtb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LmFsdEtleSgp
KQorICAgICAgICBtb2RpZmllcnMgfD0gQWx0S2V5OworICAgIGlmIChldmVudC5jdHJsS2V5KCkp
CisgICAgICAgIG1vZGlmaWVycyB8PSBDdHJsS2V5OworICAgIGlmIChldmVudC5tZXRhS2V5KCkp
CisgICAgICAgIG1vZGlmaWVycyB8PSBNZXRhS2V5OworCisgICAgaWYgKGV2ZW50LnR5cGUoKSA9
PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KSB7CisgICAgICAgIGludCBtYXBLZXkgPSBtb2Rp
ZmllcnMgPDwgMTYgfCBldmVudC5rZXlDb2RlKCk7CisgICAgICAgIHJldHVybiBtYXBLZXkgPyBr
ZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuZ2V0KG1hcEtleSkgOiBudWxscHRyOworICAgIH0KKwor
ICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC5jaGFyQ29kZSgpOworICAg
IHJldHVybiBtYXBLZXkgPyBrZXlQcmVzc0NvbW1hbmRzTWFwLmdldCgpLmdldChtYXBLZXkpIDog
bnVsbHB0cjsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBL
ZXlib2FyZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBwbGF0Zm9y
bUV2ZW50KQoreworICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2ZW50KGV2
ZW50KTsKKworICAgIGlmICghY29tbWFuZE5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGZyYW1l
LmVkaXRvcigpLmNvbW1hbmQoY29tbWFuZE5hbWUpLmV4ZWN1dGUoKTsKKyAgICAgICAgZXZlbnQu
c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIERv
bid0IGluc2VydCBudWxsIG9yIGNvbnRyb2wgY2hhcmFjdGVycyBhcyB0aGV5IGNhbiByZXN1bHQg
aW4gdW5leHBlY3RlZCBiZWhhdmlvdXIKKyAgICBpZiAoZXZlbnQuY2hhckNvZGUoKSA8ICcgJykK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRG9uJ3QgaW5zZXJ0IGFueXRoaW5nIGlmIGEgbW9k
aWZpZXIgaXMgcHJlc3NlZCBhbmQgaXQgaGFzIG5vdCBiZWVuIGhhbmRsZWQgeWV0CisgICAgaWYg
KHBsYXRmb3JtRXZlbnQuY3RybEtleSgpIHx8IHBsYXRmb3JtRXZlbnQuYWx0S2V5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChmcmFtZS5lZGl0b3IoKS5pbnNlcnRUZXh0KHBsYXRmb3Jt
RXZlbnQudGV4dCgpLCAmZXZlbnQpKQorICAgICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgp
OworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVLZXlEb3duKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRF
dmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpCit7CisgICAgU3RyaW5n
IGNvbW1hbmROYW1lID0gaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpOworICAgIGlmIChjb21tYW5k
TmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHNob3VsZG4ndCBp
bnNlcnQgdGV4dCB0aHJvdWdoIHRoZSBlZGl0b3IuIExldCBXZWJDb3JlIGRlY2lkZQorICAgIC8v
IGhvdyB0byBoYW5kbGUgdGhhdCAoc2F5LCBUYWIsIHdoaWNoIGNvdWxkIGFsc28gYmUgdXNlZCB0
bworICAgIC8vIGNoYW5nZSBmb2N1cykuCisgICAgRWRpdG9yOjpDb21tYW5kIGNvbW1hbmQgPSBm
cmFtZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKTsKKyAgICBpZiAoY29tbWFuZC5pc1Rl
eHRJbnNlcnRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29tbWFuZC5leGVjdXRlKCk7
CisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGll
bnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogZXZlbnQpCit7
CisgICAgTm9kZSogbm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAgQVNTRVJU
KG5vZGUpOworICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKTsKKyAg
ICBBU1NFUlQoZnJhbWUpOworCisgICAgLy8gRklYTUU6IFJlb3JkZXIgdGhlIGNoZWNrcyBpbiBh
IG1vcmUgc2Vuc2libGUgd2F5LgorCisgICAgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50KiBw
bGF0Zm9ybUV2ZW50ID0gZXZlbnQtPmtleUV2ZW50KCk7CisgICAgaWYgKCFwbGF0Zm9ybUV2ZW50
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiB0aGlzIHdhcyBhbiBJTUUgZXZlbnQgZG9u
J3QgZG8gYW55dGhpbmcuCisgICAgaWYgKHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5
Q29kZSgpID09IFZLX1BST0NFU1NLRVkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvbid0
IGFsbG93IHRleHQgaW5zZXJ0aW9uIGZvciBub2RlcyB0aGF0IGNhbm5vdCBlZGl0LgorICAgIGlm
ICghZnJhbWUtPmVkaXRvcigpLmNhbkVkaXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
VGhpcyBpcyBqdXN0IGEgbm9ybWFsIHRleHQgaW5zZXJ0aW9uLCBzbyB3YWl0IHRvIGV4ZWN1dGUg
dGhlIGluc2VydGlvbgorICAgIC8vIHVudGlsIGEga2V5cHJlc3MgZXZlbnQgaGFwcGVucy4gVGhp
cyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBpbnNlcnRpb24gd2lsbCBub3QKKyAgICAvLyBiZSByZWZs
ZWN0ZWQgaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWVsZCB1bnRpbCB0aGUga2V5dXAgRE9NIGV2
ZW50LgorICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50
KQorICAgICAgICByZXR1cm4gaGFuZGxlS2V5UHJlc3MoKmZyYW1lLCAqZXZlbnQsICpwbGF0Zm9y
bUV2ZW50KTsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2
ZW50KQorICAgICAgICByZXR1cm4gaGFuZGxlS2V5RG93bigqZnJhbWUsICpldmVudCwgKnBsYXRm
b3JtRXZlbnQpOworfQorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRob2RL
ZXlkb3duKFdlYkNvcmU6OktleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0IFBsYXRm
b3JtS2V5Ym9hcmRFdmVudCogcGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOworICAg
IGlmIChwbGF0Zm9ybUV2ZW50ICYmIHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSgpID09IFZLX1BST0NFU1NLRVkpCisgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYWI4MzdiMGE0ZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
d3BlL1dlYlBvcHVwTWVudVdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlBvcHVwTWVudTo6c2V0VXBQ
bGF0Zm9ybURhdGEoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBsYXRmb3JtUG9wdXBNZW51RGF0
YSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNjBlOTE2Nzk5YjMuLmQzZGY0NmExODdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC03NCwxMCArNzQsMTAgQEAgVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0KFdlYlBhZ2UmIHdlYlAKICAgICAgICAgLy8gRG8gbm90IGRvIGZyYW1lIHN5bmMgd2hlbiBy
ZW5kZXJpbmcgb2Zmc2NyZWVuIGluIHRoZSB3ZWIgcHJvY2VzcyB0byBlbnN1cmUgdGhhdCBTd2Fw
QnVmZmVycyBuZXZlciBibG9ja3MuCiAgICAgICAgIC8vIFJlbmRlcmluZyB0byB0aGUgYWN0dWFs
IHNjcmVlbiB3aWxsIGhhcHBlbiBsYXRlciBhbnl3YXkgc2luY2UgdGhlIFVJIHByb2Nlc3Mgc2No
ZWR1bGVzIGEgcmVkcmF3IGZvciBldmVyeSB1cGRhdGUsCiAgICAgICAgIC8vIHRoZSBjb21wb3Np
dG9yIHdpbGwgdGFrZSBjYXJlIG9mIHN5bmNpbmcgdG8gdmJsYW5rLgotICAgICAgICBtX2NvbXBv
c2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHNj
YWxlZFNpemUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBUaHJlYWRlZENvbXBv
c2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOworICAgICAgICBtX2Nv
bXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQs
IHdlYlBhZ2UsIHNjYWxlZFNpemUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBU
aHJlYWRlZENvbXBvc2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOwog
ICAgICAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gbV9zdXJmYWNlLT5zdXJmYWNl
SUQoKTsKICAgICB9IGVsc2UKLSAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3Np
dG9yOjpjcmVhdGUobV9jb21wb3NpdG9yQ2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvcik7
CisgICAgICAgIG1fY29tcG9zaXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29t
cG9zaXRvckNsaWVudCwgd2ViUGFnZSwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IpOwogCiAgICAg
ZGlkQ2hhbmdlVmlld3BvcnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmluZGV4IDJlNzgwZDkxYmU1Li41ZjA5M2FjN2I1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEu
Y3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5oIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgIkRyYXdpbmdBcmVh
V1BFLmgiCiAjZWxzZQogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgogI2VuZGlmCkBAIC01
NSw2ICs1Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6OmNy
ZWF0ZShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiAjZW5kaWYKICAgICBjYXNlIERy
YXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZToKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOwor
I2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlV1BFOgorICAgICAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJlYVdQRT4od2ViUGFnZSwgcGFyYW1l
dGVycyk7CiAjZWxzZQogICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlSW1wbDoKICAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0FyZWFJbXBsPih3ZWJQYWdlLCBwYXJhbWV0ZXJz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCA3YWFhMjQ0NjMyYS4uM2UwZGNkNjdiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0OTcsNyArMzQ5Nyw3IEBAIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciogV2ViUGFnZTo6bm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hCiAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmdldCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09B
KQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQ
RSkKIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZ0KQogewogICAgIE5vZGUqIG5vZGUgPSBldnQtPnRhcmdldCgpLT50b05vZGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGIyMGRhNDJm
MzBhLi42NmE0ZGM5NDQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xMDE5LDcgKzEwMTksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYK
IAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9S
TShXUEUpCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IFdl
YkNvcmU6OktleWJvYXJkRXZlbnQqKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlMjNkMzQwZDkxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21w
b3NpdGluZ01hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK0NvbXBvc2l0aW5nTWFuYWdlcjo6fkNvbXBvc2l0aW5nTWFuYWdlcigpCit7CisgICAg
QVNTRVJUKG1fY29ubmVjdGlvbkZkID09IC0xKTsKK30KKwordm9pZCBDb21wb3NpdGluZ01hbmFn
ZXI6OmVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZSYgd2ViUGFnZSkKK3sKKyAgICBJUEM6OkF0
dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZTsKKyAgICB3ZWJQYWdlLnNlbmRTeW5jKE1lc3NhZ2Vz
OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6RXN0YWJsaXNoQ29ubmVjdGlvbigpLAorICAgICAg
ICBNZXNzYWdlczo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5lY3Rpb246
OlJlcGx5KGNvbm5lY3Rpb25IYW5kbGUpKTsKKworICAgIG1fY29ubmVjdGlvbkZkID0gY29ubmVj
dGlvbkhhbmRsZS5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMjFlMjc5MjIxOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oCkBAIC0wLDAgKzEsNDcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFuYWdlciBmaW5h
bCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdNYW5hZ2VyKTsKK3B1Ymxp
YzoKKyAgICBDb21wb3NpdGluZ01hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgfkNvbXBvc2l0aW5n
TWFuYWdlcigpOworCisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmKTsKKyAg
ICBpbnQgcmVsZWFzZUNvbm5lY3Rpb25GZCgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9jb25u
ZWN0aW9uRmQsIC0xKTsgfTsKKworcHJpdmF0ZToKKyAgICBpbnQgbV9jb25uZWN0aW9uRmQgeyAt
MSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNDQ3YWM4Y2IwZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFX
UEUuY3BwCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEcmF3aW5n
QXJlYVdQRS5oIgorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1
ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlSZWZy
ZXNoTW9uaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEcmF3
aW5nQXJlYVdQRTo6RHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGVX
UEUsIHdlYlBhZ2UpCit7CisgICAgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNldEZv
cmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUoMCk7Cit9CisKK0RyYXdpbmdBcmVhV1BFOjp+RHJhd2luZ0FyZWFXUEUoKQoreworfQor
Cit2b2lkIERyYXdpbmdBcmVhV1BFOjpsYXllckhvc3REaWRGbHVzaExheWVycygpCit7CisgICAg
bV93ZWJQYWdlLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OkVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUoMCwgbV9sYXllclRyZWVIb3N0LT5sYXllclRyZWVDb250ZXh0KCkp
KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0TmVlZHNEaXNwbGF5KCkKK3sKKyAgICBB
U1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5vbkNvbXBv
c2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNl
dE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEFTU0VSVCht
X2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Tm9uQ29tcG9zaXRlZENv
bnRlbnRzTmVlZERpc3BsYXlJblJlY3QocmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6
OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJikKK3sKKyAg
ICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNjcm9sbE5v
bkNvbXBvc2l0ZWRDb250ZW50cyhzY3JvbGxSZWN0KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQ
RTo6cGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkKK3sKKyAgICBpZiAobV9sYXll
clRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnBhZ2VCYWNrZ3JvdW5kVHJhbnNw
YXJlbmN5Q2hhbmdlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJlcGFpbnQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgRHJhd2luZ0FyZWFXUEU6OmZv
cmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgcmV0dXJuIG1fbGF5
ZXJUcmVlSG9zdCAmJiBtX2xheWVyVHJlZUhvc3QtPmZvcmNlUmVwYWludEFzeW5jKGNhbGxiYWNr
SUQpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVu
KGJvb2wgZnJvemVuKQoreworICAgIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbiA9IGZyb3plbjsK
K30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRlUHJl
ZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAgbV93ZWJQ
YWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoc3RvcmUu
Z2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZUNvbXBvc2l0aW5nTW9k
ZUtleSgpKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6Om1haW5GcmFtZUNvbnRlbnRTaXpl
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIGlmIChtX2xheWVy
VHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29udGVudHNTaXplQ2hhbmdlZChz
aXplKTsKK30KKworR3JhcGhpY3NMYXllckZhY3RvcnkqIERyYXdpbmdBcmVhV1BFOjpncmFwaGlj
c0xheWVyRmFjdG9yeSgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgcmV0
dXJuIG1fbGF5ZXJUcmVlSG9zdC0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5
ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQobV9sYXllclRy
ZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RDb21wb3NpdGluZ0xheWVyKGdy
YXBoaWNzTGF5ZXIpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJGbHVzaCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9s
YXllclRyZWVIb3N0LT5zY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBEcmF3aW5nQXJl
YVdQRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpCit7CisgICAg
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKK30KKworI2lmIFVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCitSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJl
ZnJlc2hNb25pdG9yPiBEcmF3aW5nQXJlYVdQRTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9y
KFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKK3sKKyAgICBpZiAobV9sYXllclRyZWVIb3N0
KQorICAgICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVEaXNwbGF5UmVmcmVzaE1v
bml0b3IoZGlzcGxheUlEKTsKKworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKK3Zv
aWQgRHJhd2luZ0FyZWFXUEU6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3Jl
OjpGcmFtZSogZnJhbWUsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5Um9vdExh
eWVyKQoreworICAgIGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0
Vmlld092ZXJsYXlSb290TGF5ZXIodmlld092ZXJsYXlSb290TGF5ZXIpOworfQorCisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQordm9pZCBEcmF3aW5nQXJlYVdQRTo6ZGlk
Q2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYmKQor
eworfQorI2VuZGlmCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhU
VVJFX01BUFBFUikKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9y
Q2hhbmdlZCgpCit7Cit9CisjZW5kaWYKKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRlQmFj
a2luZ1N0b3JlU3RhdGUodWludDY0X3QsIGJvb2wsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3Jv
bGxPZmZzZXQpCit7CisgICAgbV93ZWJQYWdlLnNldERldmljZVNjYWxlRmFjdG9yKGRldmljZVNj
YWxlRmFjdG9yKTsKKyAgICBtX3dlYlBhZ2Uuc2V0U2l6ZShzaXplKTsKKyAgICBtX3dlYlBhZ2Uu
bGF5b3V0SWZOZWVkZWQoKTsKKyAgICBtX3dlYlBhZ2Uuc2Nyb2xsTWFpbkZyYW1lSWZOb3RBdE1h
eFNjcm9sbFBvc2l0aW9uKHNjcm9sbE9mZnNldCk7CisKKyAgICBBU1NFUlQobV9sYXllclRyZWVI
b3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobV93ZWJQYWdlLnNpemUo
KSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRpZFVwZGF0ZSgpCit7Cit9CisKK3ZvaWQg
RHJhd2luZ0FyZWFXUEU6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9zdCk7Cisg
ICAgbV9sYXllclRyZWVIb3N0ID0gTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKG1fd2ViUGFnZSk7Cisg
ICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xheWVy
KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNjaGVkdWxl
ZExheWVyRmx1c2godHJ1ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdlKG1f
d2ViUGFnZS5zaXplKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDk5MTk3YzAyYWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdp
bmdBcmVhV1BFLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRyYXdpbmdB
cmVhLmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBEcmF3aW5nQXJlYVdQRSA6IHB1YmxpYyBEcmF3aW5nQXJlYSB7CitwdWJsaWM6
CisgICAgRHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVdQRSgpOworCisgICAgdm9pZCBsYXll
ckhvc3REaWRGbHVzaExheWVycygpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIC8vIERyYXdp
bmdBcmVhCisgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOworCisgICAgdm9pZCBwYWdl
QmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGZvcmNl
UmVwYWludCgpIG92ZXJyaWRlOworICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3Qg
Y2FsbGJhY2tJRCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVu
KGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbjsgfQorICAgIExheWVy
VHJlZUhvc3QqIGxheWVyVHJlZUhvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVy
VHJlZUhvc3QuZ2V0KCk7IH0KKworICAgIHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpIG92
ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYpIG92ZXJyaWRlOworICAgIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOworICAgIHZvaWQg
c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OworICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSBvdmVycmlk
ZTsKKworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisg
ICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBvdmVycmlkZTsKKyNlbmRp
ZgorCisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJh
bWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisKKyNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydEF0dHJp
YnV0ZXMoV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiYpIG92ZXJyaWRlOworI2VuZGlmCisK
KyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhUVVJFX01BUFBFUikKKyAg
ICB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRlOworI2VuZGlm
CisKKyAgICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBib29sLCBmbG9h
dCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFVwZGF0ZSgpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbnRlckFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKworICAg
IC8vIFdoZW4gdHJ1ZSwgd2UgbWFpbnRhaW4gdGhlIGxheWVyIHRyZWUgaW4gaXRzIGN1cnJlbnQg
c3RhdGUgYnkgbm90IGxlYXZpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbW9kZQorICAgIC8v
IGFuZCBub3Qgc2NoZWR1bGluZyBsYXllciBmbHVzaGVzLgorICAgIGJvb2wgbV9sYXllclRyZWVT
dGF0ZUlzRnJvemVuIHsgZmFsc2UgfTsKKworICAgIC8vIFRoZSBsYXllciB0cmVlIGhvc3QgdGhh
dCBoYW5kbGVzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgorICAgIFJlZlB0cjxMYXllclRyZWVI
b3N0PiBtX2xheWVyVHJlZUhvc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9y
VUlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNw
ZWN0b3JVSVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc0
Yzg0NGJjYmE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUkuaCIKKworI2luY2x1ZGUgIlJlbW90ZVdl
Ykluc3BlY3RvclVJLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3Rv
clVJOjpjYW5TYXZlKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNw
ZWN0b3JVSTo6bG9jYWxpemVkU3RyaW5nc1VSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCitTdHJpbmcgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQor
eworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3Rv
cldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3Bl
Y3RvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0ZTBj
NjVlMGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkluc3BlY3Rvci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViSW5zcGVjdG9yOjpjYW5TYXZlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3I6OmxvY2FsaXpl
ZFN0cmluZ3NVUkwoKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3MWMyNDZiODE4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdl
V1BFLmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVu
Y2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQor
Cit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRGV0YWNoKCkKK3sKK30KKwordm9pZCBXZWJQYWdlOjpw
bGF0Zm9ybUVkaXRvclN0YXRlKEZyYW1lJiwgRWRpdG9yU3RhdGUmLCBJbmNsdWRlUG9zdExheW91
dERhdGFIaW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6cGxhdGZvcm1QcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0
b3JlJiBzdG9yZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYlBhZ2U6
OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBVUkwmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFn
ZTo6Y2FjaGVkUmVzcG9uc2VNSU1FVHlwZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFdlYlBhZ2U6OnBs
YXRmb3JtQ2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6
Y2FjaGVkU3VnZ2VzdGVkRmlsZW5hbWVGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gV2ViUGFnZTo6Y2FjaGVkUmVzcG9uc2VEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworU3RyaW5nIFdlYlBh
Z2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01h
aW5XUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5X
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZDEzN2JjZTdj
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd3BlL1dlYlBy
b2Nlc3NNYWluV1BFLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
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
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NNYWlu
VW5peC5oIgorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2luY2x1
ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJQcm9jZXNzTWFpbiBmaW5hbDogcHVibGljIENoaWxkUHJvY2Vzc01haW5CYXNlIHsK
K3B1YmxpYzoKKyAgICBib29sIHBsYXRmb3JtSW5pdGlhbGl6ZSgpIG92ZXJyaWRlCisgICAgewor
I2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkKKyAgICAgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVQy
X1BBVVNFX1dFQl9QUk9DRVNTX09OX0xBVU5DSCIpKQorICAgICAgICAgICAgV1RGOjpzbGVlcCgz
MCk7CisjZW5kaWYKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHBh
cnNlQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKGFyZ2MgPT0gMyk7CisgICAgICAgIGlmIChhcmdjIDwgMykKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoIUNoaWxkUHJvY2Vzc01haW5CYXNlOjpw
YXJzZUNvbW1hbmRMaW5lKGFyZ2MsIGFyZ3YpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgICAgIGludCB3cGVGZCA9IGF0b2koYXJndlsyXSk7CisgICAgICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaCgKKyAgICAgICAgICAgIFt3cGVGZF0geworICAgICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGlzPFBsYXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFy
ZWREaXNwbGF5KCkpKTsKKyAgICAgICAgICAgICAgICBkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlX
UEU+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKS5pbml0aWFsaXplKHdwZUZkKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCitpbnQg
V2ViUHJvY2Vzc01haW5Vbml4KGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICByZXR1cm4g
Q2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9jZXNzLCBXZWJQcm9jZXNzTWFpbj4oYXJnYywgYXJndik7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
d3BlL3dwZS13ZWJraXQucGMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk5YzAyNTE4MTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbgpAQCAt
MCwwICsxLDExIEBACitwcmVmaXg9QENNQUtFX0lOU1RBTExfUFJFRklYQAorZXhlY19wcmVmaXg9
JHtwcmVmaXh9CitsaWJkaXI9QExJQl9JTlNUQUxMX0RJUkAKK2luY2x1ZGVkaXI9JHtwcmVmaXh9
L2luY2x1ZGUKKworTmFtZTogV2ViS2l0MgorRGVzY3JpcHRpb246IFdQRS1mbGF2b3JlZCBXZWIg
ZW5naW5lCitWZXJzaW9uOiBAUFJPSkVDVF9WRVJTSU9OQAorUmVxdWlyZXMucHJpdmF0ZTogZ2xp
Yi0yLjAgbGlic291cC0yLjQKK0xpYnM6IC1MJHtsaWJkaXJ9IC1sV1BFV2ViS2l0IC1sV1BFCitD
ZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAgLUkke2luY2x1ZGVk
aXJ9L3dwZS1AV1BFX0FQSV9WRVJTSU9OQC9XUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9G
aW5kTGliR0JNLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQyMDkxY2JmYjQyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UKQEAgLTAsMCArMSw0NiBAQAorIyAt
IFRyeSB0byBmaW5kIGdibS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBM
SUJHQk1fSU5DTFVERV9ESVJTIC0gdGhlIGdibSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBMSUJH
Qk1fTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgZ2JtLgorIworIyBDb3B5cmlnaHQgKEMp
IDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtn
X2NoZWNrX21vZHVsZXMoUENfTElCR0JNIGdibSkKKworZmluZF9wYXRoKExJQkdCTV9JTkNMVURF
X0RJUlMKKyAgICBOQU1FUyBnYm0uaAorICAgIEhJTlRTICR7UENfTElCR0JNX0lOQ0xVREVfRElS
U30gJHtQQ19MSUJHQk1fSU5DVURFRElSfQorKQorCitmaW5kX2xpYnJhcnkoTElCR0JNX0xJQlJB
UklFUworICAgIE5BTUVTIGdibQorICAgIEhJTlRTICR7UENfTElCR0JNX0xJQlJBUllfRElSU30g
JHtQQ19MSUJHQk1fTElCRElSfQorKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRh
cmRBcmdzKQorRklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKExJQkdCTSBERUZBVUxU
X01TRyBMSUJHQk1fTElCUkFSSUVTKQorCittYXJrX2FzX2FkdmFuY2VkKExJQkdCTV9JTkNMVURF
X0RJUlMgTElCR0JNX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kV1BF
QmFja2VuZC1tZXNhLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYxNjE1NGU2MTE4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UK
QEAgLTAsMCArMSw0NyBAQAorIyAtIFRyeSB0byBmaW5kIFdQRS1tZXNhLgorIyBPbmNlIGRvbmUs
IHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIFdQRV9NRVNBX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUt
bWVzYS4KKyMgIFdQRV9NRVNBX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUtbWVzYSBpbmNsdWRlIGRp
cmVjdG9yaWVzCisjICBXUEVfTUVTQV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUt
bWVzYS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmlu
ZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX1dQRV9NRVNBIFFVSUVU
IHdwZS1tZXNhKQorCitmaW5kX3BhdGgoV1BFX01FU0FfSU5DTFVERV9ESVJTCisgICAgTkFNRVMg
d3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oCisgICAgSElOVFMgJHtQ
Q19XUEVfTUVTQV9JTkNMVURFRElSfSAke1BDX1dQRV9NRVNBX0lOQ0xVREVfRElSU30KKykKKwor
ZmluZF9saWJyYXJ5KFdQRV9NRVNBX0xJQlJBUklFUworICAgIE5BTUVTIFdQRUJhY2tlbmQtbWVz
YQorICAgIEhJTlRTICR7UENfV1BFX01FU0FfTElCRElSfSAke1BDX1dQRV9NRVNBX0xJQlJBUllf
RElSU30KKykKKworbWFya19hc19hZHZhbmNlZChXUEVfTUVTQV9JTkNMVURFX0RJUlMgV1BFX01F
U0FfTElCUkFSSUVTKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQor
RklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKFdQRV9NRVNBIFJFUVVJUkVEX1ZBUlMg
V1BFX01FU0FfSU5DTFVERV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFj
a2VuZC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzdhOTNk
MDA1MTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21h
a2UKQEAgLTAsMCArMSw0NyBAQAorIyAtIFRyeSB0byBmaW5kIFdQRS4KKyMgT25jZSBkb25lLCB0
aGlzIHdpbGwgZGVmaW5lCisjCisjICBXUEVfRk9VTkQgLSBzeXN0ZW0gaGFzIFdQRS4KKyMgIFdQ
RV9JTkNMVURFX0RJUlMgLSB0aGUgV1BFIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRV9MSUJS
QVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUuCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBJ
Z2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tf
bW9kdWxlcyhQQ19XUEUgUVVJRVQgd3BlKQorCitmaW5kX3BhdGgoV1BFX0lOQ0xVREVfRElSUwor
ICAgIE5BTUVTIHdwZS9sb2FkZXIuaAorICAgIEhJTlRTICR7UENfV1BFX0lOQ0xVREVESVJ9ICR7
UENfV1BFX0lOQ0xVREVfRElSU30KKykKKworZmluZF9saWJyYXJ5KFdQRV9MSUJSQVJJRVMKKyAg
ICBOQU1FUyBXUEVCYWNrZW5kCisgICAgSElOVFMgJHtQQ19XUEVfTElCRElSfSAke1BDX1dQRV9M
SUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQoV1BFX0lOQ0xVREVfRElSUyBXUEVf
TElCUkFSSUVTKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorRklO
RF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKFdQRSBSRVFVSVJFRF9WQVJTIFdQRV9JTkNM
VURFX0RJUlMgV1BFX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25z
V1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjczNjUwMWIwYzQ2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTAsMCArMSwxNDEgQEAKK2luY2x1ZGUo
R05VSW5zdGFsbERpcnMpCisKK3NldChQUk9KRUNUX1ZFUlNJT05fTUFKT1IgMCkKK3NldChQUk9K
RUNUX1ZFUlNJT05fTUlOT1IgMCkKK3NldChQUk9KRUNUX1ZFUlNJT05fUEFUQ0ggMjAxNzA0Mjcp
CitzZXQoUFJPSkVDVF9WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfS4ke1BST0pFQ1Rf
VkVSU0lPTl9NSU5PUn0uJHtQUk9KRUNUX1ZFUlNJT05fUEFUQ0h9KQorc2V0KFdQRV9BUElfVkVS
U0lPTiAwLjEpCisKK2lmIChXVEZfQ1BVX1g4Nl82NCkKKyAgICBzZXQoRU5BQkxFX0ZUTF9ERUZB
VUxUIE9OKQorZWxzZSAoKQorICAgIHNldChFTkFCTEVfRlRMX0RFRkFVTFQgT0ZGKQorZW5kaWYg
KCkKKworV0VCS0lUX09QVElPTl9CRUdJTigpCisKKyMgV2ViS2l0MiBDIEFQSQorV0VCS0lUX09Q
VElPTl9ERUZJTkUoRVhQT1JUX0RFUFJFQ0FURURfV0VCS0lUMl9DX0FQSSAiV2hldGhlciB0byBl
eHBvcnQgdGhlIFdlYktpdDIgQyBBUEkiIFBSSVZBVEUgT0ZGKQorCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfM0RfVFJBTlNGT1JNUyBQVUJMSUMgT04pCitXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIFBV
QkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1JF
R0lPTlMgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0NTU19TRUxFQ1RPUlNfTEVWRUw0IFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9EQVRBQkFTRV9QUk9DRVNTIFBSSVZBVEUgT04pCitXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIFBVQkxJQyBP
RkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX0ZUTF9KSVQgUFJJVkFURSAke0VOQUJMRV9GVExfREVGQVVMVH0pCitXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR0FNRVBBRCBQVUJMSUMgT0ZGKQorV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dFT0xPQ0FUSU9OIFBVQkxJQyBPRkYp
CitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lO
REVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQgUFVCTElDIE9OKQor
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NPVVJDRSBQVUJM
SUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01IVE1MIFBS
SVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX0FQSSBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9UT1VDSF9FVkVOVFMgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1ZJREVPIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFT19UUkFDSyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSBQVUJMSUMgT04p
CitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCX0FOSU1BVElPTlMg
UFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJf
QVVESU8gUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1dFQkdMIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9XRUJfVElNSU5HIFBVQkxJQyBPTikKKworV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dTVFJF
QU1FUl9HTCAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgR1N0cmVhbWVyIEdMIiBQUklW
QVRFIE9GRikKKworV0VCS0lUX09QVElPTl9FTkQoKQorCitzZXQoRU5BQkxFX1dFQkNPUkUgT04p
CitzZXQoRU5BQkxFX1dFQktJVCBPRkYpCitzZXQoRU5BQkxFX1dFQktJVDIgT04pCitzZXQoRU5B
QkxFX0FQSV9URVNUUyAke0RFVkVMT1BFUl9NT0RFfSkKK3NldChFTkFCTEVfVE9PTFMgT04pCisK
K3NldChXVEZfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChKYXZhU2NyaXB0Q29yZV9MSUJSQVJZ
X1RZUEUgU1RBVElDKQorc2V0KFdlYkNvcmVfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChXZWJL
aXQyX09VVFBVVF9OQU1FIFdQRVdlYktpdCkKK3NldChXZWJLaXQyX1dlYlByb2Nlc3NfT1VUUFVU
X05BTUUgV1BFV2ViUHJvY2VzcykKK3NldChXZWJLaXQyX05ldHdvcmtQcm9jZXNzX09VVFBVVF9O
QU1FIFdQRU5ldHdvcmtQcm9jZXNzKQorc2V0KFdlYktpdDJfRGF0YWJhc2VQcm9jZXNzX09VVFBV
VF9OQU1FIFdQRURhdGFiYXNlUHJvY2VzcykKKworZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkK
K2ZpbmRfcGFja2FnZShUaHJlYWRzIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFpMSUIgUkVRVUlS
RUQpCitmaW5kX3BhY2thZ2UoR0xJQiAyLjQwLjAgUkVRVUlSRUQgQ09NUE9ORU5UUyBnaW8gZ2lv
LXVuaXggZ29iamVjdCBndGhyZWFkIGdtb2R1bGUpCitmaW5kX3BhY2thZ2UoR251VExTIDMuMC4w
IFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2UoQ2Fpcm8gMS4xMC4yIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRnJlZXR5cGUy
IDIuNC4yIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEhhcmZCdXp6IDAuOS4xOCBSRVFVSVJFRCkK
K2ZpbmRfcGFja2FnZShKUEVHIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYkdjcnlwdCAxLjYu
MCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJTb3VwIDIuNDIuMCBSRVFVSVJFRCkKK2ZpbmRf
cGFja2FnZShMaWJYbWwyIDIuOC4wIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYlhzbHQgMS4x
LjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoUE5HIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFNx
bGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXZWJQIFJFUVVJUkVEKQorCitmaW5kX3BhY2th
Z2UoT3BlbkdMRVMyIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEVHTCBSRVFVSVJFRCkKKworZmlu
ZF9wYWNrYWdlKFdQRUJhY2tlbmQgUkVRVUlSRUQpCisKK3NldChVU0VfWERHTUlNRSBPTikKKwor
aWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVfV0VCX0FVRElPKQorICAgIHNldChHU1RSRUFNRVJf
Q09NUE9ORU5UUyBhcHAgYXVkaW8gcGJ1dGlscykKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlM
RChVU0VfR1NUUkVBTUVSIFRSVUUpCisgICAgaWYgKEVOQUJMRV9WSURFTykKKyAgICAgICAgbGlz
dChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgdmlkZW8gdGFnKQorICAgIGVuZGlmICgpCisK
KyAgICBpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVS
X0NPTVBPTkVOVFMgZmZ0KQorICAgICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfV0VC
QVVESU9fR1NUUkVBTUVSIFRSVUUpCisgICAgZW5kaWYgKCkKKworICAgIGZpbmRfcGFja2FnZShH
U3RyZWFtZXIgMS4yLjMgUkVRVUlSRUQgQ09NUE9ORU5UUyAke0dTVFJFQU1FUl9DT01QT05FTlRT
fSkKKworICAgICMgRklYTUU6IFdoYXQgYWJvdXQgTVBFR1RTIHN1cHBvcnQ/IFVTRV9HU1RSRUFN
RVJfTVBFR1RTPworZW5kaWYgKCkKKworaWYgKEVOQUJMRV9NRURJQV9TVFJFQU0gT1IgRU5BQkxF
X1dFQl9SVEMpCisgICAgZmluZF9wYWNrYWdlKE9wZW5XZWJSVEMpCisgICAgaWYgKE5PVCBPUEVO
V0VCUlRDX0ZPVU5EKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJPcGVuV2ViUlRDIGlz
IG5lZWRlZCBmb3IgRU5BQkxFX01FRElBX1NUUkVBTSBhbmQgRU5BQkxFX1dFQl9SVEMuIikKKyAg
ICBlbmRpZiAoKQorICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVOV0VCUlRDIFRS
VUUpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyAgICBm
aW5kX3BhY2thZ2UoQ2Fpcm9HTCAxLjEwLjIgUkVRVUlSRUQgQ09NUE9ORU5UUyBjYWlyby1lZ2wp
CitlbmRpZiAoKQorCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XUEVfXz0xKQorYWRkX2Rl
ZmluaXRpb25zKC1EREFUQV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9EQVRBRElSfSIpCisKK3NldChV
U0VfVURJUzg2IDEpCisKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVOR0xfRVNfMiBU
UlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0VHTCBUUlVFKQorCitTRVRfQU5EX0VY
UE9TRV9UT19CVUlMRChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF8zRCBUUlVFKQorCitTRVRfQU5E
X0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVIgVFJVRSkKK1NFVF9BTkRfRVhQT1NF
X1RPX0JVSUxEKFVTRV9URVhUVVJFX01BUFBFUl9HTCBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9f
QlVJTEQoVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JV
SUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDUyBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJ
TEQoVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEIFRSVUUpCisKK3NldChGT1JXQVJE
SU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMp
CisKKyMgQnVpbGQgd2l0aCAtZnZpc2liaWxpdHk9aGlkZGVuIHRvIHJlZHVjZSB0aGUgc2l6ZSBv
ZiB0aGUgc2hhcmVkIGxpYnJhcnkuCisjIE5vdCB0byBiZSB1c2VkIHdoZW4gYnVpbGRpbmcgdGhl
IFdlYktpdFRlc3RSdW5uZXIgbGlicmFyeS4KK2lmIChOT1QgREVWRUxPUEVSX01PREUpCisgICAg
c2V0KENNQUtFX0NfRkxBR1NfUkVMRUFTRSAiJHtDTUFLRV9DX0ZMQUdTX1JFTEVBU0V9IC1mdmlz
aWJpbGl0eT1oaWRkZW4iKQorICAgIHNldChDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiJHtDTUFL
RV9DWFhfRkxBR1NfUkVMRUFTRX0gLWZ2aXNpYmlsaXR5PWhpZGRlbiAtZnZpc2liaWxpdHktaW5s
aW5lcy1oaWRkZW4iKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0
LXByb2R1Y3QtYXJjaGl2ZQppbmRleCAyYzMwMmRiY2RlYi4uOTA3YTU0NzM4MzEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQorKysgYi9U
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUKQEAgLTE3MCw3ICsx
NzAsNyBAQCBkZWYgZGlyQ29udGFpbnNkd28oZGlyZWN0b3J5KToKIAogCiBkZWYgYXJjaGl2ZUJ1
aWx0UHJvZHVjdChjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgZnVsbFBsYXRmb3JtKToKLSAgICBh
c3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJykKKyAg
ICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJywg
J3dwZScpCiAKICAgICBpZiBwbGF0Zm9ybSA9PSAnaW9zJzoKICAgICAgICAgY29tYmluZWREaXJl
Y3RvcnkgPSBvcy5wYXRoLmpvaW4oX3RvcExldmVsQnVpbGREaXJlY3RvcnksICdjb21iaW5lZC1t
YWMtYW5kLWlvcycpCkBAIC0xOTgsNyArMTk4LDcgQEAgZGVmIGFyY2hpdmVCdWlsdFByb2R1Y3Qo
Y29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGZ1bGxQbGF0Zm9ybSk6CiAKICAgICAgICAgc2h1dGls
LnJtdHJlZSh0aGluRGlyZWN0b3J5KQogCi0gICAgZWxpZiBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBw
bGF0Zm9ybSA9PSAnZWZsJzoKKyAgICBlbGlmIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3Jt
ID09ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAgICAjIE9uIEdUSysvRUZMIHdl
IGRvbid0IG5lZWQgdGhlIGludGVybWVkaWF0ZSBzdGVwIG9mIGNyZWF0aW5nIGEgdGhpbkRpcmVj
dG9yeQogICAgICAgICAjIHRvIGJlIGNvbXByZXNzZWQgaW4gYSBaSVAgZmlsZSwgYmVjYXVzZSB3
ZSBjYW4gY3JlYXRlIHRoZSBaSVAgZGlyZWN0bHkuCiAgICAgICAgICMgVGhpcyBpcyBmYXN0ZXIg
YW5kIHJlcXVpcmVzIGxlc3MgZGlzayByZXNvdXJjZXMuCkBAIC0yMzIsNyArMjMyLDcgQEAgZGVm
IHVuemlwQXJjaGl2ZShkaXJlY3RvcnlUb0V4dHJhY3RUbywgY29uZmlndXJhdGlvbik6CiAKIAog
ZGVmIGV4dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgotICAgIGFz
c2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnKQorICAg
IGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnLCAn
d3BlJykKIAogICAgIGFyY2hpdmVGaWxlID0gb3MucGF0aC5qb2luKF90b3BMZXZlbEJ1aWxkRGly
ZWN0b3J5LCBjb25maWd1cmF0aW9uICsgJy56aXAnKQogCkBAIC0yNDEsNyArMjQxLDcgQEAgZGVm
IGV4dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgogCiAgICAgaWYg
cGxhdGZvcm0gaW4gKCdtYWMnLCAnaW9zJyk6CiAgICAgICAgIHJldHVybiB1bnppcEFyY2hpdmUo
X3RvcExldmVsQnVpbGREaXJlY3RvcnksIGNvbmZpZ3VyYXRpb24pCi0gICAgZWxpZiBwbGF0Zm9y
bSA9PSAnd2luJyBvciBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJzoKKyAg
ICBlbGlmIHBsYXRmb3JtID09ICd3aW4nIG9yIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3Jt
ID09ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAgICBwcmludCAnRXh0cmFjdGlu
ZycsIF9jb25maWd1cmF0aW9uQnVpbGREaXJlY3RvcnkKICAgICAgICAgcmV0dXJuIHVuemlwQXJj
aGl2ZShfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5LCBjb25maWd1cmF0aW9uKQogCmRpZmYg
LS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlIGIvVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQppbmRleCAzYzJiMGJkN2Ez
Ni4uOTgwZjA3MWMxNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3Qt
cmVzdWx0LWFyY2hpdmUKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQt
YXJjaGl2ZQpAQCAtNDYsNyArNDYsNyBAQCBkZWYgbWFpbigpOgogICAgIHJldHVybiBhcmNoaXZl
VGVzdFJlc3VsdHMob3B0aW9ucy5jb25maWd1cmF0aW9uLCBvcHRpb25zLnBsYXRmb3JtLCBsYXlv
dXRUZXN0UmVzdWx0c0RpcikKIAogZGVmIGFyY2hpdmVUZXN0UmVzdWx0cyhjb25maWd1cmF0aW9u
LCBwbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpOgotICAgIGFzc2VydCBwbGF0Zm9ybSBp
biAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICdpb3MnKQorICAgIGFz
c2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycs
ICdpb3MnLCAnd3BlJykKIAogICAgIHRyeToKICAgICAgICAgb3MudW5saW5rKGFyY2hpdmVGaWxl
KQpAQCAtNjYsNyArNjYsNyBAQCBkZWYgYXJjaGl2ZVRlc3RSZXN1bHRzKGNvbmZpZ3VyYXRpb24s
IHBsYXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0Rpcik6CiAgICAgaWYgcGxhdGZvcm0gaW4gKCdt
YWMnLCAnaW9zJyk6CiAgICAgICAgIGlmIHN1YnByb2Nlc3MuY2FsbChbImRpdHRvIiwgIi1jIiwg
Ii1rIiwgIi0tc2VxdWVzdGVyUnNyYyIsICItLXpsaWJDb21wcmVzc2lvbkxldmVsIiwgIjIiLCBs
YXlvdXRUZXN0UmVzdWx0c0RpciwgYXJjaGl2ZUZpbGVdKToKICAgICAgICAgICAgIHJldHVybiAx
Ci0gICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJyk6
CisgICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJywg
J3dwZScpOgogICAgICAgICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJ6aXAiLCAiLXIiLCAiLTIiLCBh
cmNoaXZlRmlsZSwgIi4iXSwgY3dkPWxheW91dFRlc3RSZXN1bHRzRGlyKToKICAgICAgICAgICAg
IHJldHVybiAxCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvQ01h
a2VMaXN0cy50eHQKaW5kZXggYjMwNDliODg0MWQuLjgwZmRiOGM5NGRlIDEwMDY0NAotLS0gYS9U
b29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMjMsNiAr
MjMsMTEgQEAgZWxzZWlmICgiJHtQT1JUfSIgU1RSRVFVQUwgIkpTQ09ubHkiKQogICAgIGlmIChF
TkFCTEVfQVBJX1RFU1RTKQogICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KFRlc3RXZWJLaXRBUEkp
CiAgICAgZW5kaWYgKCkKK2Vsc2VpZiAoIiR7UE9SVH0iIFNUUkVRVUFMICJXUEUiKQorICAgIGlm
IChERVZFTE9QRVJfTU9ERSkKKyAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShJbWFnZURpZmYpCisg
ICAgICAgIGFkZF9zdWJkaXJlY3RvcnkoV2ViS2l0VGVzdFJ1bm5lcikKKyAgICBlbmRpZiAoKQog
ZW5kaWYgKCkKIAogaWYgKFdJTjMyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGViNmVlN2RlYzYwLi45NzkwMWViNWYyOSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisy
MDE3LTA0LTI4ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAg
ICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHdlYmtpdC1kZXYgdGhyZWFkOgorICAgICAgICBodHRwczovL2xpc3Rz
LndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtpdC1kZXYvMjAxNy1BcHJpbC8wMjg5MjMuaHRtbAor
CisgICAgICAgIEFkZCBXUEUgc3VwcG9ydCB0byB2YXJpb3VzIHRvb2xpbmcgc2NyaXB0cywgVGVz
dFdlYktpdEFQSSBhbmQgV2ViS2l0VGVzdFJ1bm5lci4KKyAgICAgICAgSW4tZmlsZSBjaGFuZ2Vz
IHJlbW92ZWQgZnJvbSB0aGlzIENoYW5nZUxvZyBlbnRyeSBmb3IgYnJldml0eS4KKworICAgICAg
ICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZToKKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlOgorICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisg
ICAgICAgICogU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZToKKyAgICAgICAgKiBTY3JpcHRz
L2J1aWxkLXdlYmtpdDoKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXI6
CisgICAgICAgICogU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZDoKKyAgICAgICAg
KiBTY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGliczogQWRkZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlz
dC5wbToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC93cGUucHk6IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVV0aWxpdGllc1dQRS5jcHA6IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvd3BlL21haW4uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcDogQWRkZWQuCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmguCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93
cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL3dwZS9tYWluLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIGpoYnVpbGQvamhidWlsZC13cmFwcGVyOgor
ICAgICAgICAqIHdwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5OiBB
ZGRlZC4KKyAgICAgICAgKiB3cGUvamhidWlsZC5tb2R1bGVzOiBBZGRlZC4KKyAgICAgICAgKiB3
cGUvamhidWlsZHJjOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2
aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2UucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9w
YXRjaGVzL2ZvbnRjb25maWctQy0xMS1yZXF1aXJlcy1hLXNwYWNlLWJldHdlZW4tbGl0ZXJhbC1h
bmQtaWRlbnRpZmllci5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZnJlZXR5
cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2g6IEFkZGVkLgorICAgICAg
ICAqIHdwZS9wYXRjaGVzL2dkYXRlLXN1cHByZXNzLXN0cmluZy1mb3JtYXQtbGl0ZXJhbC13YXJu
aW5nLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4
LnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAw
MS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3Bl
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1j
aGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3Bh
dGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Utc3RyZWFtcy13aXRo
LWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9n
c3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaDogQWRkZWQuCisg
ICAgICAgICogd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMt
ZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoOiBBZGRlZC4KKwogMjAxNy0wNC0yOCAgSm9h
bm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0FUS10gYXJpYS1t
b2RhbD0idHJ1ZSIgc2hvdWxkIGJlIGV4cG9zZWQgdmlhIEFUS19TVEFURV9NT0RBTApkaWZmIC0t
Z2l0IGEvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvSW1hZ2VEaWZm
L1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li40YjBlZTUzMjhiYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0ltYWdlRGlmZi9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMCwwICsxIEBACitpbmNsdWRlKENhaXJvLmNtYWtlKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZSBiL1Rvb2xzL1NjcmlwdHMvYnVp
bGQtZHVtcHJlbmRlcnRyZWUKaW5kZXggNzYxZjQzZjY5ODkuLjE3ZGQ4MjA4YjIxIDEwMDc1NQot
LS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1Njcmlw
dHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKQEAgLTY1LDggKzY1LDggQEAgY2hkaXIgRmlsZTo6U3Bl
Yy0+Y2F0ZGlyKCJUb29scyIsICJEdW1wUmVuZGVyVHJlZSIpIG9yIGRpZTsKIG15ICRyZXN1bHQ7
CiBpZiAoaXNBcHBsZUNvY29hV2ViS2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVBy
b2plY3QoIkR1bXBSZW5kZXJUcmVlIiwgJGNsZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwot
fSBlbHNpZiAoaXNHdGsoKSB8fCBpc0FueVdpbmRvd3MoKSkgewotICAgICMgR1RLIGFuZCBXaW5k
b3dzIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhp
bmcgaGVyZS4KK30gZWxzaWYgKGlzR3RrKCkgfHwgaXNXUEUoKSB8fCBpc0FueVdpbmRvd3MoKSkg
eworICAgICMgR1RLLCBXUEUgYW5kIFdpbmRvd3MgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hv
dC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBl
bHNlIHsKICAgICBkaWUgIkJ1aWxkaW5nIG5vdCBkZWZpbmVkIGZvciB0aGlzIHBsYXRmb3JtIVxu
IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0
cy9idWlsZC13ZWJraXQKaW5kZXggNzE0MmFlNjY0NzMuLjJmZWVjNjY1Y2ExIDEwMDc1NQotLS0g
YS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdApAQCAtMTAwLDYgKzEwMCw3IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtv
cHRpb25zIHRvIHBhc3MgdG8gYnVpbGQgc3lzdGVtXQogICAtLWFuYWx5emUgICAgICAgICAgICAg
ICAgICAgICAgICAgRW5hYmxlIHN0YXRpYyBhbmF5bHNpcyAoaU9TIGFuZCBNYWMgb25seSkKIAog
ICAtLWd0ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIEdUSysgcG9ydAor
ICAtLXdwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIFdQRSBwb3J0CiAg
IC0td2luY2Fpcm8gICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB1c2luZyBDYWlybyAocmF0
aGVyIHRoYW4gQ29yZUdyYXBoaWNzKSBvbiBXaW5kb3dzCiAKICAgLS1pbnNwZWN0b3ItZnJvbnRl
bmQgICAgICAgICAgICAgIENvcHkgV2ViIEluc3BlY3RvciB1c2VyIGludGVyZmFjZSByZXNvdXJj
ZXMgdG8gdGhlIGJ1aWxkIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWls
ZC13ZWJraXR0ZXN0cnVubmVyIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVy
CmluZGV4IDI0MDNmOTM2OGQzLi45NzA3ZjY0NDYzYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0
dGVzdHJ1bm5lcgpAQCAtNjEsOCArNjEsOCBAQCBjaGRpciAiVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ciIgb3IgZGllOwogbXkgJHJlc3VsdDsKIGlmIChpc0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAg
ICRyZXN1bHQgPSBidWlsZFhDb2RlUHJvamVjdCgiV2ViS2l0VGVzdFJ1bm5lciIsICRjbGVhbiwg
WGNvZGVPcHRpb25zKCksIEBBUkdWKTsKLX0gZWxzaWYgKGlzR3RrKCkpIHsKLSAgICAjIEdUSysg
YnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBo
ZXJlLgorfSBlbHNpZiAoaXNHdGsoKSB8fCBpc1dQRSgpKSB7CisgICAgIyBHVEsrIGFuZCBXUEUg
YnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBo
ZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKICAgICBkaWUgIldlYktpdFRlc3RSdW5u
ZXIgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLlxuIjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQgYi9Ub29scy9TY3JpcHRzL3Vw
ZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCmluZGV4IGQ5ZGJmZjVkZGU0Li4xMDc5YTllOGFiNSAx
MDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZAorKysg
Yi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCkBAIC0yNCw5ICsyNCwx
MCBAQCB1c2UgR2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFzc190aHJvdWdoKTsKIAogbXkgJHBs
YXRmb3JtID0gIiI7CiAkcGxhdGZvcm0gPSAiZ3RrIiBpZiBpc0d0aygpOworJHBsYXRmb3JtID0g
IndwZSIgaWYgaXNXUEUoKTsKIAogaWYgKCEkcGxhdGZvcm0pIHsKLSAgICBkaWUgIk5vIHBsYXRm
b3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrLlxuIjsKKyAg
ICBkaWUgIk5vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNl
IC0tZ3RrIG9yIC0td3BlLlxuIjsKIH0KIAogbXkgJHdpcGVPbkNoYW5nZSA9ICRFTlZ7SkhCVUlM
RF9XSVBFX09OX0NIQU5HRX0gLy8gMTsKQEAgLTEzMiw3ICsxMzMsNyBAQCBkZWxldGUgJEVOVntB
Ul9GTEFHU30gaWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlw
dHNEaXIoKSAuICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3Jt
ID0gKCAiZ3RrIiA9PiAiR1RLKyIgKTsKK215ICVwcmV0dHlQbGF0Zm9ybSA9ICggImd0ayIgPT4g
IkdUSysiLCAid3BlIiA9PiAiV1BFIiApOwogCiBpZiAoISRmb3JjZSAmJiAhamhidWlsZENvbmZp
Z3VyYXRpb25DaGFuZ2VkKCkpIHsKICAgICBwcmludCAkcHJldHR5UGxhdGZvcm17JHBsYXRmb3Jt
fSAuICIgcG9ydCBkZXBlbmRlbmNpZXMgYXJlIGFscmVhZHkgdXAgdG8gZGF0ZVxuIjsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJzIGIvVG9vbHMvU2NyaXB0
cy91cGRhdGUtd2Via2l0d3BlLWxpYnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAuLmIyM2ZiZGU2YjgzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2Via2l0d3BlLWxpYnMKQEAgLTAsMCArMSwyNCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13Cisj
IENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50
ZWwgQ29ycG9yYXRpb24KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCisKK3VzZSBGaW5kQmluOwordXNlIGxpYiAkRmluZEJpbjo6QmluOwor
dXNlIHdlYmtpdGRpcnM7CisKK215ICRzY3JpcHRzRGlyID0gcmVsYXRpdmVTY3JpcHRzRGlyKCk7
CitzeXN0ZW0oInBlcmwiLCAiJHNjcmlwdHNEaXIvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQi
LCAiLS13cGUiLCBAQVJHVikgPT0gMCBvciBkaWUgJCE7CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggYmM0
NjU0NjE3ZDEuLjZlOGUwZTdmZTU0IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRp
cnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC0xMDcsNiArMTA3LDcg
QEAgdXNlIGNvbnN0YW50IHsKICAgICBNYWMgICAgICA9PiAiTWFjIiwKICAgICBKU0NPbmx5ICA9
PiAiSlNDT25seSIsCiAgICAgV2luQ2Fpcm8gPT4gIldpbkNhaXJvIiwKKyAgICBXUEUgICAgICA9
PiAiV1BFIiwKICAgICBVbmtub3duICA9PiAiVW5rbm93biIKIH07CiAKQEAgLTQ0NSw2ICs0NDYs
NyBAQCBzdWIgYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAgICAgcHVzaChAYXJncywgJy0t
MzItYml0JykgaWYgKCRhcmNoaXRlY3R1cmUgbmUgIng4Nl82NCIgYW5kICFpc1dpbjY0KCkpOwog
ICAgIHB1c2goQGFyZ3MsICctLTY0LWJpdCcpIGlmIChpc1dpbjY0KCkpOwogICAgIHB1c2goQGFy
Z3MsICctLWd0aycpIGlmIGlzR3RrKCk7CisgICAgcHVzaChAYXJncywgJy0td3BlJykgaWYgaXNX
UEUoKTsKICAgICBwdXNoKEBhcmdzLCAnLS1qc2Mtb25seScpIGlmIGlzSlNDT25seSgpOwogICAg
IHB1c2goQGFyZ3MsICctLXdpbmNhaXJvJykgaWYgaXNXaW5DYWlybygpOwogICAgIHB1c2goQGFy
Z3MsICctLWluc3BlY3Rvci1mcm9udGVuZCcpIGlmIGlzSW5zcGVjdG9yRnJvbnRlbmQoKTsKQEAg
LTY4MCw3ICs2ODIsNyBAQCBzdWIgZXhlY3V0YWJsZVByb2R1Y3REaXIKICAgICBteSAkcHJvZHVj
dERpcmVjdG9yeSA9IHByb2R1Y3REaXIoKTsKIAogICAgIG15ICRiaW5hcnlEaXJlY3Rvcnk7Ci0g
ICAgaWYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpIHsKKyAgICBpZiAoaXNHdGsoKSB8fCBpc0pT
Q09ubHkoKSB8fCBpc1dQRSgpKSB7CiAgICAgICAgICRiaW5hcnlEaXJlY3RvcnkgPSAiYmluIjsK
ICAgICB9IGVsc2lmIChpc0FueVdpbmRvd3MoKSkgewogICAgICAgICAkYmluYXJ5RGlyZWN0b3J5
ID0gaXNXaW42NCgpID8gImJpbjY0IiA6ICJiaW4zMiI7CkBAIC05MzgsNiArOTQwLDkgQEAgc3Vi
IGJ1aWx0RHlsaWJQYXRoRm9yTmFtZQogICAgICAgICAgICAgcmV0dXJuICIkYmFzZVByb2R1Y3RE
aXIvJGxpYnJhcnlOYW1lLmludGVybWVkaWF0ZS8kY29uZmlndXJhdGlvbi8kbGlicmFyeU5hbWUu
aW50ZXJtZWRpYXRlLyRsaWJyYXJ5TmFtZS5saWIiOwogICAgICAgICB9CiAgICAgfQorICAgIGlm
IChpc1dQRSgpKSB7CisgICAgICAgIHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyL2xp
Yi9saWJXUEVXZWJLaXQuc28iOworICAgIH0KIAogICAgIGRpZSAiVW5zdXBwb3J0ZWQgcGxhdGZv
cm0sIGNhbid0IGRldGVybWluZSBidWlsdCBsaWJyYXJ5IGxvY2F0aW9ucy5cblRyeSBgYnVpbGQt
d2Via2l0IC0taGVscGAgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iOwogfQpAQCAtMTA1Miw3ICsx
MDU3LDggQEAgc3ViIGRldGVybWluZVBvcnROYW1lKCkKICAgICBteSAlYXJnVG9Qb3J0TmFtZSA9
ICgKICAgICAgICAgZ3RrID0+IEdUSywKICAgICAgICAgJ2pzYy1vbmx5JyA9PiBKU0NPbmx5LAot
ICAgICAgICB3aW5jYWlybyA9PiBXaW5DYWlybworICAgICAgICB3aW5jYWlybyA9PiBXaW5DYWly
bywKKyAgICAgICAgd3BlID0+IFdQRQogICAgICk7CiAKICAgICBmb3IgbXkgJGFyZyAoc29ydCBr
ZXlzICVhcmdUb1BvcnROYW1lKSB7CkBAIC0xMDg2LDYgKzEwOTIsNyBAQCBzdWIgZGV0ZXJtaW5l
UG9ydE5hbWUoKQogICAgICAgICAgICAgbXkgJHBvcnRzQ2hvaWNlID0gam9pbiAiXG5cdCIsIHF3
KAogICAgICAgICAgICAgICAgIC0tZ3RrCiAgICAgICAgICAgICAgICAgLS1qc2Mtb25seQorICAg
ICAgICAgICAgICAgIC0td3BlCiAgICAgICAgICAgICApOwogICAgICAgICAgICAgZGllICJQbGVh
c2Ugc3BlY2lmeSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCB1c2luZyBvbmUgb2YgdGhlIGZv
bGxvd2luZyBvcHRpb25zOiIKICAgICAgICAgICAgICAgICAuICJcblx0JHBvcnRzQ2hvaWNlXG4i
OwpAQCAtMTExMyw2ICsxMTIwLDExIEBAIHN1YiBpc0pTQ09ubHkoKQogICAgIHJldHVybiBwb3J0
TmFtZSgpIGVxIEpTQ09ubHk7CiB9CiAKK3N1YiBpc1dQRSgpCit7CisgICAgcmV0dXJuIHBvcnRO
YW1lKCkgZXEgV1BFOworfQorCiAjIERldGVybWluZSBpZiB0aGlzIGlzIGRlYmlhbiwgdWJ1bnR1
LCBsaW5zcGlyZSwgb3Igc29tZXRoaW5nIHNpbWlsYXIuCiBzdWIgaXNEZWJpYW5CYXNlZCgpCiB7
CkBAIC0xNTE2LDYgKzE1MjgsOCBAQCBzdWIgbGF1bmNoZXJQYXRoKCkKICAgICAgICAgcmV0dXJu
ICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9ydW4tbWluaWJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlz
QXBwbGVXZWJLaXQoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1
bi1zYWZhcmkiOworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkcmVs
YXRpdmVTY3JpcHRzUGF0aC9ydW4td3BlIjsKICAgICB9CiB9CiAKQEAgLTE1MjcsNiArMTU0MSw4
IEBAIHN1YiBsYXVuY2hlck5hbWUoKQogICAgICAgICByZXR1cm4gIlNhZmFyaSI7CiAgICAgfSBl
bHNpZiAoaXNBcHBsZVdpbldlYktpdCgpKSB7CiAgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIi
OworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICJXUEVMYXVuY2hlciI7
CiAgICAgfQogfQogCkBAIC0xODI2LDYgKzE4NDIsOCBAQCBzdWIgZ2V0SmhidWlsZFBhdGgoKQog
ICAgIH0KICAgICBpZiAoaXNHdGsoKSkgewogICAgICAgICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRl
cGVuZGVuY2llc0dUSyIpOworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcHVzaChA
amhidWlsZFBhdGgsICJEZXBlbmRlbmNpZXNXUEUiKTsKICAgICB9IGVsc2UgewogICAgICAgICBk
aWUgIkNhbm5vdCBnZXQgSkhCdWlsZCBwYXRoIGZvciBwbGF0Zm9ybSB0aGF0IGlzbid0IEdUSysu
XG4iOwogICAgIH0KQEAgLTE4NjYsNiArMTg4NCw4IEBAIHN1YiB3cmFwcGVyUHJlZml4SWZOZWVk
ZWQoKQogICAgICAgICBteSBAcHJlZml4ID0gKEZpbGU6OlNwZWMtPmNhdGZpbGUoc291cmNlRGly
KCksICJUb29scyIsICJqaGJ1aWxkIiwgImpoYnVpbGQtd3JhcHBlciIpKTsKICAgICAgICAgaWYg
KGlzR3RrKCkpIHsKICAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0tZ3RrIik7CisgICAgICAg
IH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0td3BlIik7
CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAcHJlZml4LCAicnVuIik7CiAKQEAgLTIwMjQsNyAr
MjA0NCw3IEBAIHN1YiBnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdAogICAgIHB1
c2ggQGFyZ3MsICctRFNIT1dfQklORElOR1NfR0VORVJBVElPTl9QUk9HUkVTUz0xJyB1bmxlc3Mg
KCR3aWxsVXNlTmluamEgJiYgLXQgU1RET1VUKTsKIAogICAgICMgU29tZSBwb3J0cyBoYXZlIHBy
b2R1Y3Rpb24gbW9kZSwgYnV0IGJ1aWxkLXdlYmtpdCBzaG91bGQgYWx3YXlzIHVzZSBkZXZlbG9w
ZXIgbW9kZS4KLSAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIgaWYgaXNHdGso
KSB8fCBpc0pTQ09ubHkoKTsKKyAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIg
aWYgaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSB8fCBpc1dQRSgpOwogCiAgICAgIyBEb24ndCB3YXJu
IHZhcmlhYmxlcyB3aGljaCBhcmVuJ3QgdXNlZCBieSBjbWFrZSBwb3J0cy4KICAgICBwdXNoIEBh
cmdzLCAiLS1uby13YXJuLXVudXNlZC1jbGkiOwpAQCAtMjEwMSw2ICsyMTIxLDEwIEBAIHN1YiBi
dWlsZENNYWtlUHJvamVjdE9yRXhpdCgkJCRAKQogICAgICAgICBzeXN0ZW0oInBlcmwiLCAiJHNv
dXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRndGstbGlicyIpID09IDAgb3IgZGll
ICQhOwogICAgIH0KIAorICAgIGlmIChpc1dQRSgpICYmIGNoZWNrRm9yQXJndW1lbnRBbmRSZW1v
dmVGcm9tQVJHVigiLS11cGRhdGUtd3BlIikpIHsKKyAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRz
b3VyY2VEaXIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMiKSA9PSAwIG9yIGRp
ZSAkITsKKyAgICB9CisKICAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJhdGVCdWls
ZFN5c3RlbUZyb21DTWFrZVByb2plY3QoJHByZWZpeFBhdGgsIEBjbWFrZUFyZ3MpKTsKICAgICBl
eGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L0ZlYXR1cmVMaXN0LnBtCmluZGV4IDJjM2FlMTFhNzMwLi4yMTRlNTYxZGRkOSAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgcHJv
aGliaXRVbmtub3duUG9ydCgpOwogCiBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4g
IjNkLXJlbmRlcmluZyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBSZW5kZXJpbmcgc3VwcG9ydCIsCi0g
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBs
ZUNvY29hV2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR0
aHJlZURUcmFuc2Zvcm1zU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfM0RfVFJB
TlNGT1JNUyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0
KCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR0aHJlZURUcmFuc2Zvcm1zU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFjY2VsZXJhdGVkLTJkLWNhbnZhcyIsIGRlc2Mg
PT4gIlRvZ2dsZSBBY2NlbGVyYXRlZCAyRCBDYW52YXMgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+
IFwkYWNjZWxlcmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyIsIGRlZmF1bHQgPT4gaXNXUEUoKSwgdmFsdWUgPT4gXCRh
Y2NlbGVyYXRlZDJEQ2FudmFzU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFsbGlub25l
LWJ1aWxkIiwgZGVzYyA9PiAiVG9nZ2xlIGFsbC1pbi1vbmUgYnVpbGQiLAogICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfQUxMSU5PTkVfQlVJTEQiLCBkZWZhdWx0ID0+IGlzV2luZG93cygpLCB2YWx1
ZSA9PiBcJGFsbEluT25lQnVpbGQgfSwKQEAgLTE4Myw3ICsxODMsNyBAQCBteSBAZmVhdHVyZXMg
PSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiIsIGRlZmF1
bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFnZVJlc29sdXRpb25TdXBwb3J0IH0sCiAK
ICAgICB7IG9wdGlvbiA9PiAiY3NzLWltYWdlLXNldCIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgaW1h
Z2Utc2V0IHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1NFVCIs
IGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFnZVNldFN1cHBvcnQgfSwKKyAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTU19JTUFHRV9TRVQiLCBkZWZhdWx0ID0+IChpc0d0aygp
IHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAogCiAgICAgeyBv
cHRpb24gPT4gImNzcy1yZWdpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBSZWdpb25zIHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX1JFR0lPTlMiLCBkZWZhdWx0ID0+IDEs
IHZhbHVlID0+IFwkY3NzUmVnaW9uc1N1cHBvcnQgfSwKQEAgLTIwNyw3ICsyMDcsNyBAQCBteSBA
ZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIiwg
ZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGRhdGFsaXN0RWxlbWVudFN1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNjID0+ICJUb2dnbGUgRGV2aWNl
IE9yaWVudGF0aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OIiwgZGVmYXVsdCA9PiBpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJGRldmljZU9y
aWVudGF0aW9uU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4g
XCRkZXZpY2VPcmllbnRhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJkb200LWV2
ZW50cy1jb25zdHJ1Y3RvciIsIGRlc2MgPT4gIkV4cG9zZSBET000IEV2ZW50cyBjb25zdHJ1Y3Rv
cnMiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IiLCBk
ZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkZG9tNEV2
ZW50c0NvbnN0cnVjdG9yIH0sCkBAIC0yMjUsNyArMjI1LDcgQEAgbXkgQGZlYXR1cmVzID0gKAog
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwg
dmFsdWUgPT4gXCRmb250TG9hZEV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJm
dGwtaml0IiwgZGVzYyA9PiAiVG9nZ2xlIEZUTEpJVCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8
IGlzSlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJGZ0bEpJVFN1cHBvcnQgfSwKKyAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygp
IHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gImZ0cGRpciIsIGRlc2MgPT4gIlRvZ2dsZSBGVFAgRGlyZWN0
b3J5IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRQRElSIiwgZGVmYXVsdCA9
PiAxLCB2YWx1ZSA9PiBcJGZ0cERpclN1cHBvcnQgfSwKQEAgLTIzNyw3ICsyMzcsNyBAQCBteSBA
ZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9
PiAwLCB2YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZ2Vv
bG9jYXRpb24iLCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0gICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQo
KSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGdlb2xvY2F0aW9uU3Vw
cG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfR0VPTE9DQVRJT04iLCBkZWZhdWx0ID0+
IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkp
LCB2YWx1ZSA9PiBcJGdlb2xvY2F0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImhp
Z2gtZHBpLWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSBIaWdoIERQSSBDYW52YXMgc3VwcG9ydCIs
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9ISUdIX0RQSV9DQU5WQVMiLCBkZWZhdWx0ID0+IChp
c0FwcGxlV2ViS2l0KCkpLCB2YWx1ZSA9PiBcJGhpZ2hEUElDYW52YXNTdXBwb3J0IH0sCkBAIC0y
NDYsNyArMjQ2LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
SUNPTkRBVEFCQVNFIiwgZGVmYXVsdCA9PiAhaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRpY29u
ZGF0YWJhc2VTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5kZXhlZC1kYXRhYmFzZSIs
IGRlc2MgPT4gIlRvZ2dsZSBJbmRleGVkIERhdGFiYXNlIHN1cHBvcnQiLAotICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdl
YktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwK
KyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChp
c0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGlu
ZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJpbnB1dC1zcGVlY2gi
LCBkZXNjID0+ICJUb2dnbGUgSW5wdXQgU3BlZWNoIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfSU5QVVRfU1BFRUNIIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGlucHV0U3Bl
ZWNoU3VwcG9ydCB9LApAQCAtMzEyLDcgKzMxMiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX01FVEVSX0VMRU1FTlQiLCBkZWZhdWx0ID0+ICFpc0FwcGxlV2lu
V2ViS2l0KCksIHZhbHVlID0+IFwkbWV0ZXJFbGVtZW50U3VwcG9ydCB9LAogCiAgICAgeyBvcHRp
b24gPT4gIm1odG1sIiwgZGVzYyA9PiAiVG9nZ2xlIE1IVE1MIHN1cHBvcnQiLAotICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfTUhUTUwiLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkbWh0
bWxTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4g
KGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkbWh0bWxTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAibW91c2UtY3Vyc29yLXNjYWxlIiwgZGVzYyA9PiAiVG9nZ2xlIFNjYWxlZCBt
b3VzZSBjdXJzb3Igc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NT1VTRV9DVVJT
T1JfU0NBTEUiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbW91c2VDdXJzb3JTY2FsZVN1cHBv
cnQgfSwKQEAgLTMyNCw3ICszMjQsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSIsIGRlZmF1bHQgPT4gMSwgdmFsdWUg
PT4gXCRoYXJkd2FyZUNvbmN1cnJlbmN5U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm5l
dHNjYXBlLXBsdWdpbi1hcGkiLCBkZXNjID0+ICJUb2dnbGUgTmV0c2NhcGUgUGx1Z2luIEFQSSBz
dXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBk
ZWZhdWx0ID0+ICFpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3Vw
cG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSIsIGRl
ZmF1bHQgPT4gKCFpc0lPU1dlYktpdCgpICYmICFpc1dQRSgpKSwgdmFsdWUgPT4gXCRuZXRzY2Fw
ZVBsdWdpbkFQSVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJub3NuaWZmIiwgZGVzYyA9
PiAiVG9nZ2xlIHN1cHBvcnQgZm9yICdYLUNvbnRlbnQtVHlwZS1PcHRpb25zOiBub3NuaWZmJyIs
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9OT1NOSUZGIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNv
Y29hV2ViS2l0KCkgfHwgaXNBcHBsZVdpbldlYktpdCgpKSwgdmFsdWUgPT4gXCRub3NuaWZmU3Vw
cG9ydCB9LApAQCAtMzM2LDcgKzMzNiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQo
KSwgdmFsdWUgPT4gXCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJwZXJmb3JtYW5jZS10aW1lbGluZSIsIGRlc2MgPT4gIlRvZ2dsZSBQZXJmb3JtYW5jZSBU
aW1lbGluZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BFUkZPUk1BTkNFX1RJ
TUVMSU5FIiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxp
bmVTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElO
RSIsIGRlZmF1bHQgPT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkcGVyZm9ybWFu
Y2VUaW1lbGluZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwcm94aW1pdHktZXZlbnRz
IiwgZGVzYyA9PiAiVG9nZ2xlIFByb3hpbWl0eSBFdmVudHMgc3VwcG9ydCIsCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBc
JHByb3hpbWl0eUV2ZW50c1N1cHBvcnQgfSwKQEAgLTM2Niw3ICszNjYsNyBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFMTE9DIiwgZGVmYXVsdCA9PiAw
LCB2YWx1ZSA9PiBcJHN5c3RlbU1hbGxvY1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ0
b3VjaC1ldmVudHMiLCBkZXNjID0+ICJUb2dnbGUgVG91Y2ggRXZlbnRzIHN1cHBvcnQiLAotICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJL
aXQoKSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKKyAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0
KCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQg
fSwKIAogICAgIHsgb3B0aW9uID0+ICJ0b3VjaC1pY29uLWxvYWRpbmciLCBkZXNjID0+ICJUb2dn
bGUgVG91Y2ggSWNvbiBMb2FkaW5nIFN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
VE9VQ0hfSUNPTl9MT0FESU5HIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHRvdWNoSWNvbkxv
YWRpbmdTdXBwb3J0IH0sCkBAIC0zNzgsMTYgKzM3OCwxNiBAQCBteSBAZmVhdHVyZXMgPSAoCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSUJSQVRJT04iLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+
IFwkdmlicmF0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInZpZGVvIiwgZGVzYyA9
PiAiVG9nZ2xlIFZpZGVvIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU8i
LCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkdmlk
ZW9TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4g
KGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHZpZGVv
U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInZpZGVvLXRyYWNrIiwgZGVzYyA9PiAiVG9n
Z2xlIFZpZGVvIFRyYWNrIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9f
VFJBQ0siLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+
IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJREVPX1RS
QUNLIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSks
IHZhbHVlID0+IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWIt
YW5pbWF0aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQW5pbWF0aW9ucyBzdXBwb3J0IiwKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BTklNQVRJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1
ZSA9PiBcJHdlYkFuaW1hdGlvbnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViLWF1
ZGlvIiwgZGVzYyA9PiAiVG9nZ2xlIFdlYiBBdWRpbyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCR3ZWJB
dWRpb1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1
bHQgPT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAid2ViLXJlcGxheSIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgUmVw
bGF5IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1JFUExBWSIsIGRlZmF1
bHQgPT4gaXNBcHBsZUNvY29hV2ViS2l0KCksIHZhbHVlID0+IFwkd2ViUmVwbGF5U3VwcG9ydCB9
LApAQCAtNDAyLDEwICs0MDIsMTAgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfV0VCX1RJTUlORyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3ZWJUaW1pbmdT
dXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViYXNzZW1ibHkiLCBkZXNjID0+ICJUb2dn
bGUgV2ViQXNzZW1ibHkgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NF
TUJMWSIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkp
KSAsIHZhbHVlID0+IFwkd2ViQXNzZW1ibHlTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9XRUJBU1NFTUJMWSIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwg
aXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkpICwgdmFsdWUgPT4gXCR3ZWJBc3NlbWJseVN1cHBvcnQg
fSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWJnbCIsIGRlc2MgPT4gIlRvZ2dsZSBXZWJHTCBzdXBw
b3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBs
ZUNvY29hV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCisg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdl
YktpdCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAid3JpdGFibGVTdHJlYW1BUEkiLCBkZXNjID0+ICJUb2dnbGUg
V3JpdGFibGVTdHJlYW0gQVBJIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV1JJ
VEFCTEVfU1RSRUFNX0FQSSIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3cml0YWJsZVN0cmVh
bUFQSVN1cHBvcnQgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDdjNmRkYzgzOWYzLi41NzJlOGE1ZTc3
ZCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzLnB5CkBAIC00MjQsNyArNDI0LDcgQEAgZGVmIF9zZXRfdXBfZGVyaXZl
ZF9vcHRpb25zKHBvcnQsIG9wdGlvbnMpOgogICAgICAgICBvcHRpb25zLnZlcmJvc2UgPSBUcnVl
CiAKICAgICAjIFRoZSBHVEsrIGFuZCBFRkwgcG9ydHMgb25seSBzdXBwb3J0IFdlYktpdDIgc28g
dGhleSBhbHdheXMgdXNlIFdLVFIuCi0gICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSA9PSAiZ3RrIiBv
ciBvcHRpb25zLnBsYXRmb3JtID09ICJlZmwiOgorICAgIGlmIG9wdGlvbnMucGxhdGZvcm0gaW4g
WyJlZmwiLCAiZ3RrIiwgIndwZSJdOgogICAgICAgICBvcHRpb25zLndlYmtpdF90ZXN0X3J1bm5l
ciA9IFRydWUKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFj
dG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CmluZGV4IDc1
ZGVlYzU3Y2JiLi5iZTA5N2ZmZWYxZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2ZhY3RvcnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3Rv
cnkucHkKQEAgLTUzLDYgKzUzLDkgQEAgZGVmIHBsYXRmb3JtX29wdGlvbnModXNlX2dsb2JzPUZh
bHNlKToKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZ3RrJywgYWN0aW9uPSdzdG9y
ZV9jb25zdCcsIGRlc3Q9J3BsYXRmb3JtJywKICAgICAgICAgICAgIGNvbnN0PSgnZ3RrKicgaWYg
dXNlX2dsb2JzIGVsc2UgJ2d0aycpLAogICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBs
YXRmb3JtPWd0ayonIGlmIHVzZV9nbG9icyBlbHNlICdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1ndGsn
KSksCisgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLXdwZScsIGFjdGlvbj0nc3RvcmVf
Y29uc3QnLCBkZXN0PSdwbGF0Zm9ybScsCisgICAgICAgICAgICBjb25zdD0oJ3dwZSonIGlmIHVz
ZV9nbG9icyBlbHNlICd3cGUnKSwKKyAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0
Zm9ybT13cGUnKSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLW5vLWluc3RhbGwn
LCBhY3Rpb249J3N0b3JlX2NvbnN0JywKICAgICAgICAgICAgIGNvbnN0PUZhbHNlLCBkZWZhdWx0
PVRydWUsIGRlc3Q9J2luc3RhbGwnLAogICAgICAgICAgICAgaGVscD0nU2tpcCBpbnN0YWxsIHN0
ZXAgZm9yIGRldmljZSBhbmQgc2ltdWxhdG9yIHRlc3RpbmcnKSwKQEAgLTkzLDYgKzk2LDcgQEAg
Y2xhc3MgUG9ydEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAgJ3Rlc3QuVGVzdFBvcnQnLAogICAg
ICAgICAnd2luLldpbkNhaXJvUG9ydCcsCiAgICAgICAgICd3aW4uV2luUG9ydCcsCisgICAgICAg
ICd3cGUuV1BFUG9ydCcsCiAgICAgKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC93cGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmIzY2QwODY1YTRlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L3dwZS5weQpAQCAtMCwwICsxLDc5IEBACisjIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0
aGUgR29vZ2xlIG5hbWUgbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdl
YmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKK2Zyb20gd2Via2l0cHkubGF5
b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0
aW9uCitmcm9tIHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5w
b3J0LmxpbnV4X2dldF9jcmFzaF9sb2cgaW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCisKKwor
Y2xhc3MgV1BFUG9ydChQb3J0KToKKyAgICBwb3J0X25hbWUgPSAid3BlIgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFdQRVBvcnQsIHNl
bGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBpZiBzZWxmLl9zaG91bGRf
dXNlX2poYnVpbGQoKToKKyAgICAgICAgICAgIHNlbGYuX2poYnVpbGRfd3JhcHBlciA9IFtzZWxm
LnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdyYXBw
ZXInKSwgJy0td3BlJywgJ3J1biddCisgICAgICAgICAgICBzZWxmLnNldF9vcHRpb25fZGVmYXVs
dCgnd3JhcHBlcicsICcgJy5qb2luKHNlbGYuX2poYnVpbGRfd3JhcHBlcikpCisKKyAgICBkZWYg
ZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICByZXR1cm4gNjAwMAorCisgICAgZGVm
IF9idWlsdF9leGVjdXRhYmxlc19wYXRoKHNlbGYsICpwYXRoKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2J1aWxkX3BhdGgoKigoJ2JpbicsKSArIHBhdGgpKQorCisgICAgZGVmIF9idWlsdF9saWJy
YXJpZXNfcGF0aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRo
KCooKCdsaWInLCkgKyBwYXRoKSkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3JpcHRzKHNl
bGYpOgorICAgICAgICByZXR1cm4gIi0td3BlIgorCisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9y
X3NlcnZlcihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52aXJvbm1lbnQgPSBz
dXBlcihXUEVQb3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUp
CisgICAgICAgIGVudmlyb25tZW50WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScKKyAg
ICAgICAgZW52aXJvbm1lbnRbJ1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSdd
ID0gc2VsZi5fYnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5z
bycpCisgICAgICAgIGVudmlyb25tZW50WydURVNUX1JVTk5FUl9URVNUX1BMVUdJTl9QQVRIJ10g
PSBzZWxmLl9idWlsZF9wYXRoKCdsaWInLCAncGx1Z2lucycpCisgICAgICAgIGVudmlyb25tZW50
WydXRUJLSVRfRVhFQ19QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdiaW4nKQorICAgICAgICBy
ZXR1cm4gZW52aXJvbm1lbnQKKworICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJh
dGlvbnMoc2VsZik6CisgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KKyAgICAgICAgZm9yIGJ1
aWxkX3R5cGUgaW4gc2VsZi5BTExfQlVJTERfVFlQRVM6CisgICAgICAgICAgICBjb25maWd1cmF0
aW9ucy5hcHBlbmQoVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBhcmNo
aXRlY3R1cmU9J3g4NicsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkpCisgICAgICAgIHJldHVybiBj
b25maWd1cmF0aW9ucworCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoc2VsZi5kcml2ZXJfbmFtZSgpKQor
CisgICAgZGVmIF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Ll9idWlsdF9leGVjdXRhYmxlc19wYXRoKCdJbWFnZURpZmYnKQorCisgICAgZGVmIF9nZXRfY3Jh
c2hfbG9nKHNlbGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgorICAg
ICAgICBuYW1lID0gIldQRVdlYlByb2Nlc3MiIGlmIG5hbWUgPT0gIldlYlByb2Nlc3MiIGVsc2Ug
bmFtZQorICAgICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdl
cl90aGFuLCBzZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVf
Y3Jhc2hfbG9nKHN0ZG91dCwgc3RkZXJyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI5Nzg0NzU1ZjM2Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtMCwwICsxLDYwIEBACitzZXQoVEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RP
UlkgIiR7Q01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9UZXN0V2ViS2l0QVBJIikKK3Nl
dChURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWV9XVEYgIiR7VEVTVFdFQktJ
VEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dURiIpCisKKyMgVGhpcyBpcyBuZWNlc3Nh
cnkgYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0byBidWlsZCBUZXN0V2ViS2l0QVBJIHdpdGggV2Vi
S2l0MgorIyBkaXNhYmxlZCBhbmQgdGhpcyB0cmlnZ2VycyB0aGUgaW5jbHVzaW9uIG9mIHRoZSBX
ZWJLaXQyIGhlYWRlcnMuCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XRUJLSVQyX18pCisK
K2FkZF9jdXN0b21fdGFyZ2V0KFRlc3RXZWJLaXRBUEktZm9yd2FyZGluZy1oZWFkZXJzCisgICAg
Q09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0
ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtURVNUV0VCS0lUQVBJX0RJ
Un0gLS1vdXRwdXQgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSAtLXBsYXRmb3JtIHdwZSAtLXBs
YXRmb3JtIHNvdXAKKyAgICBERVBFTkRTIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCisp
CisKK3NldChGb3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRSBUZXN0V2ViS2l0
QVBJLWZvcndhcmRpbmctaGVhZGVycykKKworaW5jbHVkZV9kaXJlY3RvcmllcygKKyAgICAke0ZP
UldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS9KYXZh
U2NyaXB0Q29yZQorKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTQorICAgICR7R0xJQl9J
TkNMVURFX0RJUlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKykKKworc2V0KHRlc3Rf
bWFpbl9TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL21haW4uY3BwCispCisK
K3NldChidW5kbGVfaGFybmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3Bl
L0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElS
fS93cGUvUGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwCispCisKKyMgVGVzdFdURgorCitsaXN0KEFQ
UEVORCBUZXN0V1RGX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYv
Z2xpYi9HVW5pcXVlUHRyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9n
bGliL1dvcmtRdWV1ZUdMaWIuY3BwCispCisKKyMgVGVzdFdlYkNvcmUKKworYWRkX2V4ZWN1dGFi
bGUoVGVzdFdlYkNvcmUKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzQ29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XZWJDb3JlL0hUTUxQYXJzZXJJZGlvbXMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJ
Un0vVGVzdHMvV2ViQ29yZS9MYXlvdXRVbml0LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzL1dlYkNvcmUvVVJMLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyVGVzdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
cy9XZWJDb3JlL0ZpbGVTeXN0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMv
V2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCispCisKK3RhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0
V2ViQ29yZSAke3Rlc3Rfd2ViY29yZV9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhUZXN0
V2ViQ29yZSAke0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKworYWRk
X3Rlc3QoVGVzdFdlYkNvcmUgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9S
WX0vV2ViQ29yZS9UZXN0V2ViQ29yZSkKK3NldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RXZWJDb3Jl
IFBST1BFUlRJRVMgVElNRU9VVCA2MCkKK3NldF90YXJnZXRfcHJvcGVydGllcyhUZXN0V2ViQ29y
ZSBQUk9QRVJUSUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRBUElfUlVO
VElNRV9PVVRQVVRfRElSRUNUT1JZfS9XZWJDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZkMjEyMWJkN2EyCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNw
cApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRs
ZUNvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2b2lkIEluamVj
dGVkQnVuZGxlQ29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93
cGUvUGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxh
dGZvcm1VdGlsaXRpZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5lMjFjMWVhYTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIv
R1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgeworbmFtZXNwYWNlIFV0aWwgeworCit2b2lkIHNsZWVwKGRvdWJsZSBz
ZWNvbmRzKQoreworICAgIGdfdXNsZWVwKHNlY29uZHMgKiAxMDAwMDAwKTsKK30KKworc3RhdGlj
IGNoYXIqIGdldEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoY29uc3QgY2hh
ciogdmFyaWFibGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYodmFy
aWFibGVOYW1lKTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIGdfcHJpbnRlcnIoIiVzIGVu
dmlyb25tZW50IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAgICAg
ZXhpdCgxKTsKKyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBnX2Zp
bGVuYW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKworV0tT
dHJpbmdSZWYgY3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNo
YXI+IGluamVjdGVkQnVuZGxlUGF0aChnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxl
QXNVVEY4KCJURVNUX1dFQktJVF9BUElfV0VCS0lUMl9JTkpFQ1RFRF9CVU5ETEVfUEFUSCIpKTsK
KyAgICBHVW5pcXVlUHRyPGNoYXI+IGluamVjdGVkQnVuZGxlRmlsZW5hbWUoZ19idWlsZF9maWxl
bmFtZShpbmplY3RlZEJ1bmRsZVBhdGguZ2V0KCksICJsaWJUZXN0V2ViS2l0QVBJSW5qZWN0ZWRC
dW5kbGUuc28iLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKGluamVjdGVkQnVuZGxlRmlsZW5hbWUuZ2V0KCkpOworfQorCitXS1VSTFJlZiBjcmVh
dGVVUkxGb3JSZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSwgY29uc3QgY2hhciogZXh0ZW5z
aW9uKQoreworICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGVzdFJlc291cmNlc1BhdGgoZ2V0RmlsZW5h
bWVGcm9tRW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJf
UkVTT1VSQ0VTX1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUJhc2VuYW1l
KGdfc3RyZHVwX3ByaW50ZigiJXMuJXMiLCByZXNvdXJjZSwgZXh0ZW5zaW9uKSk7CisgICAgR1Vu
aXF1ZVB0cjxjaGFyPiByZXNvdXJjZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUodGVzdFJlc291
cmNlc1BhdGguZ2V0KCksIHJlc291cmNlQmFzZW5hbWUuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBH
UmVmUHRyPEdGaWxlPiByZXNvdXJjZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0
aChyZXNvdXJjZUZpbGVuYW1lLmdldCgpKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJj
ZVVSSShnX2ZpbGVfZ2V0X3VyaShyZXNvdXJjZUZpbGUuZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tV
UkxDcmVhdGVXaXRoVVRGOENTdHJpbmcocmVzb3VyY2VVUkkuZ2V0KCkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBVdGlsCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3Bl
L21haW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjU2OGI2
YzMyZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3Bw
CkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RzQ29udHJvbGxl
ci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIFRl
c3RXZWJLaXRBUEk6OlRlc3RzQ29udHJvbGxlcjo6c2luZ2xldG9uKCkucnVuKGFyZ2MsIGFyZ3Yp
ID8gRVhJVF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmNwcAppbmRleCA1ZjM5NWJlNzM1ZS4uZDA3OTA0YjMzZjQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQogICAgIHJldHVybiBX
S0FjY2Vzc2liaWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CiB9CiAKLSNpZiAh
UExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiBSZWY8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVt
ZW50KCkKIHsKICAgICBXS0J1bmRsZVBhZ2VSZWYgcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5n
bGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRl
eCBlY2RmNWEwZjcyZi4uZDVhZWViYmNjZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmgKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IFJldGFpblB0cjxOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRs
ZXI7Ci0jZWxzZQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCiAgICAgUmVm
UHRyPEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlv
bkhhbmRsZXI7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRl
eCAwMjY0MGJlNzYxOC4uMjU4MTRlNGVlOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmNwcApAQCAtNzgsNyArNzgsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4
dEFyZWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgCiAvLyBVbnN1cHBv
cnRlZCBtZXRob2RzIG9uIHZhcmlvdXMgcGxhdGZvcm1zLiBBcyB0aGV5J3JlIGltcGxlbWVudGVk
IG9uIG90aGVyIHBsYXRmb3JtcyB0aGlzIGxpc3Qgc2hvdWxkIGJlIG1vZGlmaWVkLgotI2lmICFQ
TEFURk9STShHVEspIHx8ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaWYgKCFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShXUEUpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQogSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGlu
dCkgeyByZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lQXRPZmZz
ZXQoaW50KSB7IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmlu
ZGV4IGQxMGVlOGJiZDFhLi40MzVkZDdkYjhhYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmgKQEAgLTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VUlFbGVtZW50c1dp
dGhBdHRyaWJ1dGUoSlNTdHJpbmdSZWYsIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gPiYpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICB2b2lkIGdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gPiYpOwogICAgIHZvaWQgZ2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JiwgdW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVk
IGxlbmd0aCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGM3MWY0Y2Y2NzYwLi43NjhmNGQxNDYxMyAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCkBAIC05OCw3ICs5OCw3IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAg
ICwgbV9kYXRhYmFzZU1heFF1b3RhKC0xKQogICAgICwgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQo
ZmFsc2UpCiAgICAgLCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24oYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiIikpKQotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAsIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGVzdFJ1bm5lcjo6d2FpdFRvRHVtcFdhdGNoZG9nVGlt
ZXJGaXJlZCkKICNlbmRpZgogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBkNjM5MmU5OWNmZi4uNzA1MTI5ZDliYjIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1
ZGUgPENvcmVGb3VuZGF0aW9uL0NGUnVuTG9vcC5oPgogdHlwZWRlZiBSZXRhaW5QdHI8Q0ZSdW5M
b29wVGltZXJSZWY+IFBsYXRmb3JtVGltZXJSZWY7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogbmFtZXNwYWNlIFdUUiB7CiBjbGFzcyBUZXN0UnVubmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5lOTRjMmFhYjcwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNw
cApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5M
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsK
Kwordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNT
dHJpbmdSZWYgaWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjpwbGF0Zm9ybU5hbWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6cm9vdEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsKK30KKworUmVmPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxl
bWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y3JlYXRlKG51bGxwdHIpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCisj
ZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZDY0OTE1MGE1NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcApAQCAtMCwwICsx
LDk1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKworQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChQbGF0Zm9ybVVJRWxlbWVudCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCop
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Pj4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4mLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxk
cmVuQ291bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpl
bGVtZW50QXRQb2ludChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRl
eE9mQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gMDsKK30KKworCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRB
dEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0
SW5kZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdElu
ZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojpyb3dBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit1
bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3Rl
ZFJvd0F0SW5kZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlu
a2VkVUlFbGVtZW50cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmF0dHJpYnV0ZXNPZkRvY3VtZW50TGlua3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbigpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShK
U1N0cmluZ1JlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFs
dWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDAuMDsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVs
ZW1lbnRBcnJheUF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVl
UmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTVmFsdWVSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZh
bHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmJvb2xBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmli
dXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYW1ldGVy
aXplZEF0dHJpYnV0ZU5hbWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cm9sZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnN1YnJvbGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpyb2xlRGVzY3JpcHRpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojpjb21wdXRlZFJvbGVTdHJpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp0aXRsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmRlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHQoKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp4KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7
Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp3aWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4w
OworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQ
b2ludFkoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKwor
ZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjptaW5WYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRp
b24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNJbmNyZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzRGVjcmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0VuYWJsZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNTZWxlY3RlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZE9w
dGlvbkFjdGl2ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNv
bnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0luZGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aGllcmFyY2hpY2FsTGV2ZWwoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzcGVhaygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkg
Y29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEcm9w
RWZmZWN0cygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRleChpbnQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9z
aXRpb24oaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmJvdW5kc0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2ln
bmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1
dGVkU3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXR0cmlidXRlZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkLCB1bnNpZ25l
ZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5z
aWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVk
aWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1
ZVJlZiwgSlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRS
ZWYsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1Jl
ZiwgYm9vbCwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU1Zh
bHVlUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFk
ZXJzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mQ29sdW1ucygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmF0dHJpYnV0ZXNPZlJvd3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojpyb3dDb3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aW5kZXhJblRhYmxlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6cm93SW5kZXhSYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2ln
bmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0
UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UodW5z
aWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpk
ZWNyZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2hvd01lbnUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3MoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGls
ZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRD
aGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdElu
ZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xlYXJTZWxlY3RlZENoaWxkcmVuKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGlu
ZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50
VVJJKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTVmFsdWVS
ZWYgZnVuY3Rpb25DYWxsYmFjaykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmlj
YXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4o
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc0lnbm9yZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzU2luZ2xlTGluZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aUxpbmUo
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp0YWtlRm9jdXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbigpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRTZWxl
Y3Rpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bGluZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpwcmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIq
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4
dFRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIqLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJG
b3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2Vy
Rm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtl
ckZvckJvdW5kcyhpbnQsIGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBp
bnQsIGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6dGV4dE1hcmtlckZvclBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRl
eHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpT
U3RyaW5nUmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmluZGV4Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc1RleHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciop
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1h
cmtlckZvckluZGV4KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnNldFNlbGVjdGVkVmlzaWJsZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNjcm9sbFRvR2xvYmFsUG9pbnQoaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxl
V2l0aFN1YkZvY3VzKGludCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c3VwcG9ydGVkQWN0aW9ucygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnBhdGhEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNj
cmlwdHNEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNsYXNzTGlzdCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNl
dChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworfSAvLyBuYW1lc3BhY2UgIFdURgorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0
aXZhdGVGb250c1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uYzNjZjcyMWIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApAQCAtMCwwICsx
LDE0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCisjaW5j
bHVkZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0
aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNl
IFdUUiB7CisKK0NTdHJpbmcgdG9wTGV2ZWxQYXRoKCkKK3sKKyAgICBpZiAoY29uc3QgY2hhciog
dG9wTGV2ZWxEaXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX1RPUF9MRVZFTCIpKQorICAgICAg
ICByZXR1cm4gdG9wTGV2ZWxEaXJlY3Rvcnk7CisKKyAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQg
dmFyaWFibGUgd2Fzbid0IHByb3ZpZGVkIHRoZW4gYXNzdW1lIHdlIHdlcmUgYnVpbHQgaW50bwor
ICAgIC8vIFdlYktpdEJ1aWxkL0RlYnVnIG9yIFdlYktpdEJ1aWxkL1JlbGVhc2UuIE9idmlvdXNs
eSB0aGlzIHdpbGwgZmFpbCBpZiB0aGUgYnVpbGQKKyAgICAvLyBkaXJlY3RvcnkgaXMgbm9uLXN0
YW5kYXJkLCBidXQgd2UgY2FuJ3QgZG8gbXVjaCBtb3JlIGFib3V0IHRoaXMuCisgICAgR1VuaXF1
ZVB0cjxjaGFyPiBwYXJlbnRQYXRoKGdfcGF0aF9nZXRfZGlybmFtZShnZXRDdXJyZW50RXhlY3V0
YWJsZVBhdGgoKS5kYXRhKCkpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGxheW91dFRlc3RzUGF0
aChnX2J1aWxkX2ZpbGVuYW1lKHBhcmVudFBhdGguZ2V0KCksICIuLiIsICIuLiIsICIuLiIsIG51
bGxwdHIpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGFic29sdXRlVG9wTGV2ZWxQYXRoKHJlYWxw
YXRoKGxheW91dFRlc3RzUGF0aC5nZXQoKSwgMCkpOworICAgIHJldHVybiBhYnNvbHV0ZVRvcExl
dmVsUGF0aC5nZXQoKTsKK30KKworQ1N0cmluZyBnZXRPdXRwdXREaXIoKQoreworICAgIGNvbnN0
IGNoYXIqIHdlYmtpdE91dHB1dERpciA9IGdfZ2V0ZW52KCJXRUJLSVRfT1VUUFVURElSIik7Cisg
ICAgaWYgKHdlYmtpdE91dHB1dERpcikKKyAgICAgICAgcmV0dXJuIHdlYmtpdE91dHB1dERpcjsK
KworICAgIEdVbmlxdWVQdHI8Y2hhcj4gb3V0cHV0RGlyKGdfYnVpbGRfZmlsZW5hbWUodG9wTGV2
ZWxQYXRoKCkuZGF0YSgpLCAiV2ViS2l0QnVpbGQiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIG91
dHB1dERpci5nZXQoKTsKK30KKworc3RhdGljIENTdHJpbmcgZ2V0Rm9udHNQYXRoKCkKK3sKKyAg
ICBDU3RyaW5nIHdlYmtpdE91dHB1dERpciA9IGdldE91dHB1dERpcigpOworICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gZm9udHNQYXRoKGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEo
KSwgIkRlcGVuZGVuY2llc1dQRSIsICJSb290IiwgIndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgbnVs
bHB0cikpOworICAgIGlmIChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0
PEdGaWxlVGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfRElSKSkpCisg
ICAgICAgIHJldHVybiBmb250c1BhdGguZ2V0KCk7CisKKyAgICAvLyBUcnkgYWx0ZXJuYXRpdmUg
Zm9udHMgcGF0aC4KKyAgICBmb250c1BhdGgucmVzZXQoZ19idWlsZF9maWxlbmFtZSh3ZWJraXRP
dXRwdXREaXIuZGF0YSgpLCAid2Via2l0Z3RrLXRlc3QtZm9udHMiLCBOVUxMKSk7CisgICAgaWYg
KGdfZmlsZV90ZXN0KGZvbnRzUGF0aC5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJ
TEVfVEVTVF9FWElTVFMgfCBHX0ZJTEVfVEVTVF9JU19ESVIpKSkKKyAgICAgICAgcmV0dXJuIGZv
bnRzUGF0aC5nZXQoKTsKKworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisKK3ZvaWQgYWN0aXZh
dGVGb250cygpCit7CisgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVRfU0tJUF9XRUJLSVRURVNUUlVO
TkVSX0ZPTlRDT05GSUdfSU5JVElBTElaQVRJT04iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
RmNJbml0KCk7CisKKyAgICAvLyBJZiBhIHRlc3QgcmVzdWx0ZWQgYSBmb250IGJlaW5nIGFkZGVk
IG9yIHJlbW92ZWQgdmlhIHRoZSBAZm9udC1mYWNlIHJ1bGUsIHRoZW4KKyAgICAvLyB3ZSB3YW50
IHRvIHJlc2V0IHRoZSBGb250Q29uZmlnIGNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBpdCBmcm9t
IGFmZmVjdGluZyBvdGhlciB0ZXN0cy4KKyAgICBzdGF0aWMgaW50IG51bUZvbnRzID0gMDsKKyAg
ICBGY0ZvbnRTZXQqIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGlj
YXRpb24pOworICAgIGlmIChhcHBGb250U2V0ICYmIG51bUZvbnRzICYmIGFwcEZvbnRTZXQtPm5m
b250ID09IG51bUZvbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBMb2FkIG91ciBjb25m
aWd1cmF0aW9uIGZpbGUsIHdoaWNoIHNldHMgdXAgcHJvcGVyIGFsaWFzZXMgZm9yIGZhbWlseQor
ICAgIC8vIG5hbWVzIGxpa2Ugc2Fucywgc2VyaWYgYW5kIG1vbm9zcGFjZS4KKyAgICBGY0NvbmZp
ZyogY29uZmlnID0gRmNDb25maWdDcmVhdGUoKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250
Q29uZmlnRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgImZvbnRzLmNv
bmYiLCBudWxscHRyKSk7CisgICAgaWYgKCFnX2ZpbGVfdGVzdChmb250Q29uZmlnRmlsZW5hbWUu
Z2V0KCksIEdfRklMRV9URVNUX0lTX1JFR1VMQVIpKQorICAgICAgICBnX2Vycm9yKCJDYW5ub3Qg
ZmluZCBmb250cy5jb25mIGF0ICVzXG4iLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworICAg
IGlmICghRmNDb25maWdQYXJzZUFuZExvYWQoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hh
cjgqPihmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpLCB0cnVlKSkKKyAgICAgICAgZ19lcnJvcigi
Q291bGRuJ3QgbG9hZCBmb250IGNvbmZpZ3VyYXRpb24gZmlsZSBmcm9tOiAlcyIsIGZvbnRDb25m
aWdGaWxlbmFtZS5nZXQoKSk7CisKKyAgICBDU3RyaW5nIGZvbnRzUGF0aCA9IGdldEZvbnRzUGF0
aCgpOworICAgIGlmIChmb250c1BhdGguaXNOdWxsKCkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxk
IG5vdCBsb2NhdGUgdGVzdCBmb250cyBhdCAlcy4gSXMgV0VCS0lUX1RPUF9MRVZFTCBzZXQ/Iiwg
Zm9udHNQYXRoLmRhdGEoKSk7CisKKyAgICBHVW5pcXVlUHRyPEdEaXI+IGZvbnRzRGlyZWN0b3J5
KGdfZGlyX29wZW4oZm9udHNQYXRoLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAgIHdoaWxlIChj
b25zdCBjaGFyKiBkaXJlY3RvcnlFbnRyeSA9IGdfZGlyX3JlYWRfbmFtZShmb250c0RpcmVjdG9y
eS5nZXQoKSkpIHsKKyAgICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5
LCAiLnR0ZiIpICYmICFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLm90ZiIpKQor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRQYXRo
KGdfYnVpbGRfZmlsZW5hbWUoZm9udHNQYXRoLmRhdGEoKSwgZGlyZWN0b3J5RW50cnksIG51bGxw
dHIpKTsKKyAgICAgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBGY0NoYXI4Kj4oZm9udFBhdGguZ2V0KCkpKSkKKyAgICAgICAgICAg
IGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFBhdGguZ2V0KCkpOwor
ICAgIH0KKworICAgIC8vIEFoZW0gaXMgdXNlZCBieSBtYW55IGxheW91dCB0ZXN0cy4KKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBhaGVtRm9udEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNf
Q09ORl9ESVIsICJBSEVNX19fXy5UVEYiLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0Fw
cEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oYWhlbUZvbnRG
aWxlbmFtZS5nZXQoKSkpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0
ICVzISIsIGFoZW1Gb250RmlsZW5hbWUuZ2V0KCkpOyAKKworICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBmb250RmlsZW5hbWVzW10gPSB7CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMTAwLnR0
ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMjAwLnR0ZiIsCisgICAgICAgICJXZWJL
aXRXZWlnaHRXYXRjaGVyMzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNDAw
LnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNTAwLnR0ZiIsCisgICAgICAgICJX
ZWJLaXRXZWlnaHRXYXRjaGVyNjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVy
NzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiIsCisgICAgICAg
ICJXZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiIsCisgICAgICAgIDAKKyAgICB9OworCisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGZvbnRGaWxlbmFtZXNbaV07ICsraSkgeworICAgICAgICBHVW5p
cXVlUHRyPGdjaGFyPiBmb250RmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJ
UiwgIi4uIiwgIi4uIiwgImZvbnRzIiwgZm9udEZpbGVuYW1lc1tpXSwgbnVsbHB0cikpOworICAg
ICAgICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0
PEZjQ2hhcjgqPihmb250RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNv
dWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udEZpbGVuYW1lLmdldCgpKTsgCisgICAgfQor
CisgICAgLy8gQSBmb250IHdpdGggbm8gdmFsaWQgRm9udGNvbmZpZyBlbmNvZGluZyB0byB0ZXN0
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ1MgorICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUoZ19idWlsZF9maWxl
bmFtZShGT05UU19DT05GX0RJUiwgIkZvbnRXaXRoTm9WYWxpZEVuY29kaW5nLmZvbiIsIG51bGxw
dHIpKTsKKyAgICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJl
dF9jYXN0PEZjQ2hhcjgqPihmb250V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lLmdldCgpKSkp
CisgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFdpdGhO
b1ZhbGlkRW5jb2RpbmdGaWxlbmFtZS5nZXQoKSk7IAorCisgICAgaWYgKCFGY0NvbmZpZ1NldEN1
cnJlbnQoY29uZmlnKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IHNldCB0aGUgY3VycmVu
dCBmb250IGNvbmZpZ3VyYXRpb24hIik7CisKKyAgICBudW1Gb250cyA9IEZjQ29uZmlnR2V0Rm9u
dHMoY29uZmlnLCBGY1NldEFwcGxpY2F0aW9uKS0+bmZvbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93
cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4yNDA4MWZmM2EyOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcApA
QCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5o
IgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1Jbml0
aWFsaXplKFdLVHlwZVJlZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BF
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5u
ZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZjE0ZmZk
ZDA1NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlRlc3RSdW5uZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5n
UmVmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gVGVzdFJ1bm5lcjo6aW5zcGVjdG9yVGVzdFN0dWJVUkwoKQoreworICAgIHJldHVybiBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiIik7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW52
YWxpZGF0ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkKK3sKKyAgICBtX3dhaXRUb0R1bXBXYXRj
aGRvZ1RpbWVyLnN0b3AoKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpwbGF0Zm9ybUluaXRpYWxp
emUoKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hk
b2dUaW1lcklmTmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIu
aXNBY3RpdmUoKSkKKyAgICAgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydE9uZVNo
b3QobV90aW1lb3V0IC8gMTAwMC4wKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi40YTg2MmQ2OWFmYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NyBAQAorZmluZF9w
YWNrYWdlKExpYkdCTSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1lc2EgUkVR
VUlSRUQpCisKK2FkZF9jdXN0b21fdGFyZ2V0KFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1o
ZWFkZXJzCisgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2Ny
aXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtXRUJL
SVRfVEVTVFJVTk5FUl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1w
bGF0Zm9ybSB3cGUKKykKKworc2V0KEZvcndhcmRpbmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5l
cl9OQU1FIFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzKQorCitsaXN0KEFQUEVO
RCBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0v
Y2Fpcm8vVGVzdEludm9jYXRpb25DYWlyby5jcHAKKworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJf
RElSfS93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVS
X0RJUn0vd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5F
Ul9ESVJ9L3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5F
Ul9ESVJ9L3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVS
X0RJUn0vd3BlL21haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5D
TFVERV9ESVJFQ1RPUklFUworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9JbmplY3RlZEJ1
bmRsZS93cGUKKyAgICAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtDQUlST19JTkNM
VURFX0RJUlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0xJQkdCTV9JTkNMVURF
X0RJUlN9CisgICAgJHtXUEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdl
YktpdFRlc3RSdW5uZXJfTElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtH
TElCX0xJQlJBUklFU30KKyAgICAke0xJQkdCTV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTUVTQV9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZV9TT1VSQ0VTCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dw
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVS
X0lOSkVDVEVEQlVORExFX0RJUn0vd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwCisg
ICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY3RpdmF0ZUZv
bnRzV1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93
cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RF
REJVTkRMRV9ESVJ9L3dwZS9UZXN0UnVubmVyV1BFLmNwcAorKQorCithZGRfZGVmaW5pdGlvbnMo
CisgICAgLURGT05UU19DT05GX0RJUj0iJHtUT09MU19ESVJ9L1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L2ZvbnRzIgorICAgIC1EVE9QX0xFVkVMX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IDBmMTU4NjEzZDJhLi44
N2U4ZjdkYTYwNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdl
YlZpZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBA
IC01MCw2ICs1MCwxMSBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdldDsKIHR5
cGVkZWYgV0tWaWV3UmVmIFBsYXRmb3JtV0tWaWV3OwogdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRm
b3JtV2luZG93OwogdHlwZWRlZiBjYWlyb19zdXJmYWNlX3QgKlBsYXRmb3JtSW1hZ2U7CisjZWxp
ZiBQTEFURk9STShXUEUpCitjbGFzcyBIZWFkbGVzc1ZpZXdCYWNrZW5kOwordHlwZWRlZiBXS1Zp
ZXdSZWYgUGxhdGZvcm1XS1ZpZXc7Cit0eXBlZGVmIEhlYWRsZXNzVmlld0JhY2tlbmQqIFBsYXRm
b3JtV2luZG93OwordHlwZWRlZiBjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtSW1hZ2U7CiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdUUiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDQ3YTE3ZTBmZmJhLi4yNDk3ZDRhOGRhMyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTc2Nyw3ICs3NjcsNyBAQCBib29sIFRlc3RD
b250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25z
JiBvcHRpb25zKQogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBkb2luZyB0aGlzLCBpdCBzaG91bGQg
cHJvYmFibHkgYmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAgdG9vLgogICAgIHJlc2V0UHJlZmVy
ZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKLSNpZiAhUExBVEZPUk0oQ09DT0Ep
CisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIFdLVGV4dENoZWNr
ZXJDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQ
cm94eVdQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5
V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTFlZTBmYzJl
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNl
bmRlclByb3h5V1BFLmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRXZlbnRTZW5kZXJQcm94eS5oIgorCituYW1lc3BhY2UgV1RSIHsKKworRXZlbnRTZW5kZXJQ
cm94eTo6RXZlbnRTZW5kZXJQcm94eShUZXN0Q29udHJvbGxlciogdGVzdENvbnRyb2xsZXIpCisg
ICAgOiBtX3Rlc3RDb250cm9sbGVyKHRlc3RDb250cm9sbGVyKQorICAgICwgbV90aW1lKDApCisg
ICAgLCBtX2xlZnRNb3VzZUJ1dHRvbkRvd24oZmFsc2UpCisgICAgLCBtX2NsaWNrQ291bnQoMCkK
KyAgICAsIG1fY2xpY2tUaW1lKDApCisgICAgLCBtX2NsaWNrQnV0dG9uKGtXS0V2ZW50TW91c2VC
dXR0b25Ob0J1dHRvbikKK3sKK30KKworRXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJv
eHkoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRG93bih1bnNpZ25lZCwg
V0tFdmVudE1vZGlmaWVycykKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVVw
KHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJzKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6Om1vdXNlTW92ZVRvKGRvdWJsZSwgZG91YmxlKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6Om1vdXNlU2Nyb2xsQnkoaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBp
bnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91c2VT
Y3JvbGxCeShpbnQsIGludCwgYm9vbCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojps
ZWFwRm9yd2FyZChpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihX
S1N0cmluZ1JlZiwgV0tFdmVudE1vZGlmaWVycywgdW5zaWduZWQpCit7Cit9CisKK3ZvaWQgRXZl
bnRTZW5kZXJQcm94eTo6YWRkVG91Y2hQb2ludChpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVu
dFNlbmRlclByb3h5Ojp1cGRhdGVUb3VjaFBvaW50KGludCwgaW50LCBpbnQpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0VG91Y2hNb2RpZmllcihXS0V2ZW50TW9kaWZpZXJzLCBi
b29sKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNldFRvdWNoUG9pbnRSYWRpdXMo
aW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hTdGFydCgpCit7
Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hNb3ZlKCkKK3sKK30KKwordm9pZCBF
dmVudFNlbmRlclByb3h5Ojp0b3VjaEVuZCgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6dG91Y2hDYW5jZWwoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNsZWFyVG91
Y2hQb2ludHMoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBv
aW50KGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50
KGludCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi41NjBiNDBhM2VmYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCkBAIC0wLDAgKzEs
MjUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisK
KyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3Rk
Lmg+CisKKy8vIEZJWE1FOiBEZXBsb3kgZ29vZCBwcmFjdGljZXMgYW5kIGNsZWFuIHVwIEdCTSBy
ZXNvdXJjZXMgYXQgcHJvY2VzcyBleGl0Lgorc3RhdGljIEVHTERpc3BsYXkgZ2V0RUdMRGlzcGxh
eSgpCit7CisgICAgc3RhdGljIEVHTERpc3BsYXkgc19kaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7
CisgICAgaWYgKHNfZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgeworICAgICAgICBpbnQgZmQg
PSBvcGVuKCIvZGV2L2RyaS9yZW5kZXJEMTI4IiwgT19SRFdSIHwgT19DTE9FWEVDIHwgT19OT0NU
VFkgfCBPX05PTkJMT0NLKTsKKyAgICAgICAgaWYgKGZkIDwgMCkKKyAgICAgICAgICAgIHJldHVy
biBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBzdHJ1Y3QgZ2JtX2RldmljZSogZGV2aWNlID0g
Z2JtX2NyZWF0ZV9kZXZpY2UoZmQpOworICAgICAgICBpZiAoIWRldmljZSkKKyAgICAgICAgICAg
IHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBl
Z2xHZXREaXNwbGF5KGRldmljZSk7CisgICAgICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQ
TEFZKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIGlmICgh
ZWdsSW5pdGlhbGl6ZShkaXNwbGF5LCBudWxscHRyLCBudWxscHRyKSkKKyAgICAgICAgICAgIHJl
dHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBpZiAoIWVnbEJpbmRBUEkoRUdMX09QRU5H
TF9FU19BUEkpKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAg
IHNfZGlzcGxheSA9IGRpc3BsYXk7CisgICAgfQorCisgICAgcmV0dXJuIHNfZGlzcGxheTsKK30K
KworSGVhZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFja2VuZCgpCit7CisgICAgbV9l
Z2wuZGlzcGxheSA9IGdldEVHTERpc3BsYXkoKTsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQg
Y29uZmlnQXR0cmlidXRlc1sxM10gPSB7CisgICAgICAgIEVHTF9TVVJGQUNFX1RZUEUsIEVHTF9X
SU5ET1dfQklULAorICAgICAgICBFR0xfUkVEX1NJWkUsIDEsCisgICAgICAgIEVHTF9HUkVFTl9T
SVpFLCAxLAorICAgICAgICBFR0xfQkxVRV9TSVpFLCAxLAorICAgICAgICBFR0xfQUxQSEFfU0la
RSwgMSwKKyAgICAgICAgRUdMX1JFTkRFUkFCTEVfVFlQRSwgRUdMX09QRU5HTF9FUzJfQklULAor
ICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAgICBFR0xpbnQgbnVtQ29uZmlnczsKKyAgICBF
R0xCb29sZWFuIHJldCA9IGVnbENob29zZUNvbmZpZyhtX2VnbC5kaXNwbGF5LCBjb25maWdBdHRy
aWJ1dGVzLCAmbV9lZ2wuY29uZmlnLCAxLCAmbnVtQ29uZmlncyk7CisgICAgaWYgKCFyZXQgfHwg
IW51bUNvbmZpZ3MpCisgICAgICAgIHJldHVybjsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQg
Y29udGV4dEF0dHJpYnV0ZXNbM10gPSB7CisgICAgICAgIEVHTF9DT05URVhUX0NMSUVOVF9WRVJT
SU9OLCAyLAorICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAgICBtX2VnbC5jb250ZXh0ID0g
ZWdsQ3JlYXRlQ29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb25maWcsIEVHTF9OT19DT05U
RVhULCBjb250ZXh0QXR0cmlidXRlcyk7CisgICAgaWYgKG1fZWdsLmNvbnRleHQgPT0gRUdMX05P
X0NPTlRFWFQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZWdsTWFrZUN1cnJlbnQobV9l
Z2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9lZ2wuY3JlYXRlSW1hZ2UgPSByZWludGVycHJl
dF9jYXN0PFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbENy
ZWF0ZUltYWdlS0hSIikpOworICAgIG1fZWdsLmRlc3Ryb3lJbWFnZSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8UEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbERlc3Ry
b3lJbWFnZUtIUiIpKTsKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRleHR1cmUyRE9FUyA9IHJlaW50
ZXJwcmV0X2Nhc3Q8UEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0M+KGVnbEdldFBy
b2NBZGRyZXNzKCJnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTIikpOworCisgICAgbV9leHBv
cnRhYmxlID0gd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jcmVhdGUo
JnNfZXhwb3J0YWJsZUNsaWVudCwgdGhpcyk7CisKKyAgICBtX3VwZGF0ZVNvdXJjZSA9IGdfdGlt
ZW91dF9zb3VyY2VfbmV3KG1fZnJhbWVSYXRlIC8gMTAwMCk7CisgICAgZ19zb3VyY2Vfc2V0X2Nh
bGxiYWNrKG1fdXBkYXRlU291cmNlLAorICAgICAgICBbXShncG9pbnRlciBkYXRhKSAtPiBnYm9v
bGVhbiB7CisgICAgICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNz
Vmlld0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAgICAgIGJhY2tlbmQucGVyZm9ybVVwZGF0ZSgp
OworICAgICAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgIH0sIHRoaXMsIG51bGxwdHIpOwor
ICAgIGdfc291cmNlX2F0dGFjaChtX3VwZGF0ZVNvdXJjZSwgZ19tYWluX2NvbnRleHRfZGVmYXVs
dCgpKTsKK30KKworSGVhZGxlc3NWaWV3QmFja2VuZDo6fkhlYWRsZXNzVmlld0JhY2tlbmQoKQor
eworICAgIGlmIChtX3VwZGF0ZVNvdXJjZSkKKyAgICAgICAgZ19zb3VyY2VfZGVzdHJveShtX3Vw
ZGF0ZVNvdXJjZSk7CisKKyAgICBpZiAoYXV0byBpbWFnZSA9IHN0ZDo6Z2V0PDA+KG1fcGVuZGlu
Z0ltYWdlLnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5
LCBpbWFnZSk7CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdl
LnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFn
ZSk7CisKKyAgICBmb3IgKGF1dG8gaXQgOiBtX2V4cG9ydE1hcCkgeworICAgICAgICBpbnQgZmQg
PSBpdC5zZWNvbmQ7CisgICAgICAgIGlmIChmZCA+PSAwKQorICAgICAgICAgICAgY2xvc2UoZmQp
OworICAgIH0KKworICAgIGlmIChtX2VnbC5jb250ZXh0KQorICAgICAgICBlZ2xEZXN0cm95Q29u
dGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb250ZXh0KTsKK30KKworc3RydWN0IHdwZV92aWV3
X2JhY2tlbmQqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmJhY2tlbmQoKSBjb25zdAoreworICAgIHJl
dHVybiB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2dldF92aWV3X2Jh
Y2tlbmQobV9leHBvcnRhYmxlKTsKK30KKworY2Fpcm9fc3VyZmFjZV90KiBIZWFkbGVzc1ZpZXdC
YWNrZW5kOjpjcmVhdGVTbmFwc2hvdCgpCit7CisgICAgcGVyZm9ybVVwZGF0ZSgpOworCisgICAg
RUdMSW1hZ2VLSFIgaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCk7Cisg
ICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB1aW50MzJfdCB3
aWR0aCA9IHN0ZDo6Z2V0PDE+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKyAgICB1aW50MzJfdCBo
ZWlnaHQgPSBzdGQ6OmdldDwyPihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisKKyAgICB1aW50OF90
KiBidWZmZXIgPSBuZXcgdWludDhfdFs0ICogd2lkdGggKiBoZWlnaHRdOworICAgIGJvb2wgc3Vj
Y2Vzc2Z1bFNuYXBzaG90ID0gZmFsc2U7CisKKyAgICBtYWtlQ3VycmVudCgpOworCisgICAgR0x1
aW50IGltYWdlVGV4dHVyZTsKKyAgICBnbEdlblRleHR1cmVzKDEsICZpbWFnZVRleHR1cmUpOwor
ICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgaW1hZ2VUZXh0dXJlKTsKKyAgICBnbFRl
eFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5F
QVIpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19G
SUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdM
X1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICBnbFRleFBhcmFtZXRlcmko
R0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAg
IGdsVGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBHTF9CR1JBX0VYVCwgd2lkdGgsIGhlaWdo
dCwgMCwgR0xfQkdSQV9FWFQsIEdMX1VOU0lHTkVEX0JZVEUsIG51bGxwdHIpOworCisgICAgbV9l
Z2wuaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMoR0xfVEVYVFVSRV8yRCwgaW1hZ2UpOworICAgIGds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CisKKyAgICBHTHVpbnQgaW1hZ2VGcmFtZWJ1
ZmZlcjsKKyAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAg
Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGltYWdlRnJhbWVidWZmZXIpOworICAg
IGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1F
TlQwLCBHTF9URVhUVVJFXzJELCBpbWFnZVRleHR1cmUsIDApOworCisgICAgZ2xGbHVzaCgpOwor
ICAgIGlmIChnbENoZWNrRnJhbWVidWZmZXJTdGF0dXMoR0xfRlJBTUVCVUZGRVIpID09IEdMX0ZS
QU1FQlVGRkVSX0NPTVBMRVRFKSB7CisgICAgICAgIGdsUmVhZFBpeGVscygwLCAwLCB3aWR0aCwg
aGVpZ2h0LCBHTF9CR1JBX0VYVCwgR0xfVU5TSUdORURfQllURSwgYnVmZmVyKTsKKyAgICAgICAg
c3VjY2Vzc2Z1bFNuYXBzaG90ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBnbEJpbmRGcmFtZWJ1ZmZl
cihHTF9GUkFNRUJVRkZFUiwgMCk7CisgICAgZ2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJmltYWdl
RnJhbWVidWZmZXIpOworICAgIGdsRGVsZXRlVGV4dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisK
KyAgICBpZiAoIXN1Y2Nlc3NmdWxTbmFwc2hvdCkgeworICAgICAgICBkZWxldGVbXSBidWZmZXI7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCog
aW1hZ2VTdXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVy
LAorICAgICAgICBDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0LCBjYWlyb19mb3Jt
YXRfc3RyaWRlX2Zvcl93aWR0aChDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCkpOworICAgIGNh
aXJvX3N1cmZhY2VfbWFya19kaXJ0eShpbWFnZVN1cmZhY2UpOworCisgICAgc3RhdGljIGNhaXJv
X3VzZXJfZGF0YV9rZXlfdCBidWZmZXJLZXk7CisgICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9k
YXRhKGltYWdlU3VyZmFjZSwgJmJ1ZmZlcktleSwgYnVmZmVyLAorICAgICAgICBbXSh2b2lkKiBk
YXRhKSB7CisgICAgICAgICAgICBhdXRvKiBidWZmZXIgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4o
ZGF0YSk7CisgICAgICAgICAgICBkZWxldGVbXSBidWZmZXI7CisgICAgICAgIH0pOworCisgICAg
cmV0dXJuIGltYWdlU3VyZmFjZTsKK30KKworYm9vbCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjptYWtl
Q3VycmVudCgpCit7CisgICAgcmV0dXJuIGVnbE1ha2VDdXJyZW50KG1fZWdsLmRpc3BsYXksIEVH
TF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgbV9lZ2wuY29udGV4dCk7Cit9CisKK3ZvaWQg
SGVhZGxlc3NWaWV3QmFja2VuZDo6cGVyZm9ybVVwZGF0ZSgpCit7CisgICAgaWYgKCFtX3BlbmRp
bmdJbWFnZS5maXJzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd3BlX21lc2Ffdmlld19iYWNr
ZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9mcmFtZV9jb21wbGV0ZShtX2V4cG9ydGFi
bGUpOworICAgIGlmIChtX2xvY2tlZEltYWdlLmZpcnN0KSB7CisgICAgICAgIHdwZV9tZXNhX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZGlzcGF0Y2hfcmVsZWFzZV9idWZmZXIobV9l
eHBvcnRhYmxlLCBtX2xvY2tlZEltYWdlLmZpcnN0KTsKKyAgICAgICAgbV9lZ2wuZGVzdHJveUlt
YWdlKG1fZWdsLmRpc3BsYXksIHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSk7Cisg
ICAgfQorCisgICAgbV9sb2NrZWRJbWFnZSA9IG1fcGVuZGluZ0ltYWdlOworICAgIG1fcGVuZGlu
Z0ltYWdlID0gc3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50
MzJfdCwgdWludDMyX3Q+PiB7IH07Cit9CisKK3N0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRf
ZXhwb3J0YWJsZV9kbWFfYnVmX2NsaWVudCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpzX2V4cG9ydGFi
bGVDbGllbnQgPSB7CisgICAgLy8gZXhwb3J0X2RtYV9idWYKKyAgICBbXSh2b2lkKiBkYXRhLCBz
dHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kYXRhKiBpbWFn
ZURhdGEpCisgICAgeworICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRs
ZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKworICAgICAgICBhdXRvIGl0ID0gYmFja2VuZC5tX2V4
cG9ydE1hcC5lbmQoKTsKKyAgICAgICAgaWYgKGltYWdlRGF0YS0+ZmQgPj0gMCkgeworICAgICAg
ICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSkg
PT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisKKyAgICAgICAgICAgIGl0ID0gYmFja2Vu
ZC5tX2V4cG9ydE1hcC5pbnNlcnQoeyBpbWFnZURhdGEtPmhhbmRsZSwgaW1hZ2VEYXRhLT5mZCB9
KS5maXJzdDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydChiYWNrZW5kLm1f
ZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpICE9IGJhY2tlbmQubV9leHBvcnRNYXAu
ZW5kKCkpOworICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VE
YXRhLT5oYW5kbGUpOworICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0KGl0ICE9IGJhY2tlbmQu
bV9leHBvcnRNYXAuZW5kKCkpOworICAgICAgICB1aW50MzJfdCBoYW5kbGUgPSBpdC0+Zmlyc3Q7
CisgICAgICAgIGludDMyX3QgZmQgPSBpdC0+c2Vjb25kOworCisgICAgICAgIGJhY2tlbmQubWFr
ZUN1cnJlbnQoKTsKKworICAgICAgICBFR0xpbnQgYXR0cmlidXRlc1tdID0geworICAgICAgICAg
ICAgRUdMX1dJRFRILCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+d2lkdGgpLAorICAg
ICAgICAgICAgRUdMX0hFSUdIVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPmhlaWdo
dCksCisgICAgICAgICAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19FWFQsIHN0YXRpY19jYXN0PEVH
TGludD4oaW1hZ2VEYXRhLT5mb3JtYXQpLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUw
X0ZEX0VYVCwgZmQsCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfT0ZGU0VUX0VYVCwg
MCwKKyAgICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9QSVRDSF9FWFQsIHN0YXRpY19jYXN0
PEVHTGludD4oaW1hZ2VEYXRhLT5zdHJpZGUpLAorICAgICAgICAgICAgRUdMX05PTkUsCisgICAg
ICAgIH07CisgICAgICAgIEVHTEltYWdlS0hSIGltYWdlID0gYmFja2VuZC5tX2VnbC5jcmVhdGVJ
bWFnZShiYWNrZW5kLm1fZWdsLmRpc3BsYXksIEVHTF9OT19DT05URVhULCBFR0xfTElOVVhfRE1B
X0JVRl9FWFQsIG51bGxwdHIsIGF0dHJpYnV0ZXMpOworICAgICAgICBiYWNrZW5kLm1fcGVuZGlu
Z0ltYWdlID0geyBpbWFnZURhdGEtPmhhbmRsZSwgc3RkOjptYWtlX3R1cGxlKGltYWdlLCBpbWFn
ZURhdGEtPndpZHRoLCBpbWFnZURhdGEtPmhlaWdodCkgfTsKKyAgICB9LAorfTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjIxODYxMjFhOGMKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKQEAg
LTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGdibS5oPgorI2luY2x1ZGUgPEVHTC9l
Z2wuaD4KKyNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+Cisj
aW5jbHVkZSA8R0xFUzIvZ2wyZXh0Lmg+CisjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDxn
bGliLmg+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx3cGUtbWVzYS92aWV3
LWJhY2tlbmQtZXhwb3J0YWJsZS1kbWEtYnVmLmg+CisKK2NsYXNzIEhlYWRsZXNzVmlld0JhY2tl
bmQgeworcHVibGljOgorICAgIEhlYWRsZXNzVmlld0JhY2tlbmQoKTsKKyAgICB+SGVhZGxlc3NW
aWV3QmFja2VuZCgpOworCisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQoKSBj
b25zdDsKKworICAgIGNhaXJvX3N1cmZhY2VfdCogY3JlYXRlU25hcHNob3QoKTsKKworcHJpdmF0
ZToKKyAgICBib29sIG1ha2VDdXJyZW50KCk7CisgICAgdm9pZCBwZXJmb3JtVXBkYXRlKCk7CisK
KyAgICBzdGF0aWMgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9i
dWZfY2xpZW50IHNfZXhwb3J0YWJsZUNsaWVudDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIEVH
TERpc3BsYXkgZGlzcGxheTsKKyAgICAgICAgRUdMQ29uZmlnIGNvbmZpZzsKKyAgICAgICAgRUdM
Q29udGV4dCBjb250ZXh0OworCisgICAgICAgIFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQyBjcmVh
dGVJbWFnZTsKKyAgICAgICAgUEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQyBkZXN0cm95SW1hZ2U7
CisgICAgICAgIFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJFMkRPRVNQUk9DIGltYWdlVGFyZ2V0
VGV4dHVyZTJET0VTOworICAgIH0gbV9lZ2w7CisKKyAgICBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19i
YWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1ZiogbV9leHBvcnRhYmxlOworCisgICAgc3RkOjp1bm9y
ZGVyZWRfbWFwPHVpbnQzMl90LCBpbnQzMl90PiBtX2V4cG9ydE1hcDsKKyAgICBzdGQ6OnBhaXI8
dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1f
cGVuZGluZ0ltYWdlIHsgfTsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdM
SW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fbG9ja2VkSW1hZ2UgeyB9OworCisgICAg
R1NvdXJjZSogbV91cGRhdGVTb3VyY2U7CisgICAgZ2ludDY0IG1fZnJhbWVSYXRlIHsgR19VU0VD
X1BFUl9TRUMgLyA2MCB9OworfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9Q
bGF0Zm9ybVdlYlZpZXdXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi45MTY4YTkzNGMxMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorCisjaW5jbHVkZSAiSGVhZGxlc3NW
aWV3QmFja2VuZC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0ltYWdlQ2Fpcm8uaD4KKyNpbmNsdWRl
IDxjYWlyby5oPgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK1BsYXRmb3JtV2ViVmlldzo6
UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBtX3dpbmRvd0lzS2V5KHRydWUpCisgICAg
LCBtX29wdGlvbnMob3B0aW9ucykKK3sKKyAgICBtX3dpbmRvdyA9IG5ldyBIZWFkbGVzc1ZpZXdC
YWNrZW5kOworICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChtX3dpbmRv
dy0+YmFja2VuZCgpLCBjb25maWd1cmF0aW9uKTsKK30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxh
dGZvcm1XZWJWaWV3KCkKK3sKKyAgICBkZWxldGUgbV93aW5kb3c7Cit9CisKK3ZvaWQgUGxhdGZv
cm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCwgdW5zaWduZWQsIFdlYlZpZXdTaXppbmdNb2Rl
KQoreworfQorCitXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdlKCkKK3sKKyAgICByZXR1
cm4gV0tWaWV3R2V0UGFnZShtX3ZpZXcpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9j
dXMoKQoreworfQorCitXS1JlY3QgUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dGcmFtZSgpCit7Cisg
ICAgcmV0dXJuIFdLUmVjdCB7IDAsIDAsIDEsIDEgfTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZp
ZXc6OnNldFdpbmRvd0ZyYW1lKFdLUmVjdCwgV2ViVmlld1NpemluZ01vZGUpCit7Cit9CisKK3Zv
aWQgUGxhdGZvcm1XZWJWaWV3OjpkaWRJbml0aWFsaXplQ2xpZW50cygpCit7Cit9CisKK3ZvaWQg
UGxhdGZvcm1XZWJWaWV3OjphZGRDaHJvbWVJbnB1dEZpZWxkKCkKK3sKK30KKwordm9pZCBQbGF0
Zm9ybVdlYlZpZXc6OnJlbW92ZUNocm9tZUlucHV0RmllbGQoKQoreworfQorCit2b2lkIFBsYXRm
b3JtV2ViVmlldzo6YWRkVG9XaW5kb3coKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6
cmVtb3ZlRnJvbVdpbmRvdygpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5k
b3dJc0tleShib29sIHdpbmRvd0lzS2V5KQoreworICAgIG1fd2luZG93SXNLZXkgPSB3aW5kb3dJ
c0tleTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6Om1ha2VXZWJWaWV3Rmlyc3RSZXNwb25k
ZXIoKQoreworfQorCitjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25h
cHNob3RJbWFnZSgpCit7CisgICAgeworICAgICAgICBzdHJ1Y3QgVGltZW91dFRpbWVyIHsKKyAg
ICAgICAgICAgIFRpbWVvdXRUaW1lcigpCisgICAgICAgICAgICAgICAgOiB0aW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZUaW1lb3V0VGltZXI6OmZpcmVkKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIHRpbWVyLnN0YXJ0T25lU2hvdCgxLjAgLyA2MCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIHZvaWQgZmlyZWQoKSB7IFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7IH0K
KyAgICAgICAgICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVvdXRUaW1lcj4gdGltZXI7CisgICAgICAg
IH0gdGltZW91dFRpbWVyOworCisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5ydW4oKTsKKyAgICB9
CisKKyAgICBjYWlyb19zdXJmYWNlX3QqIGltYWdlU3VyZmFjZSA9IG1fd2luZG93LT5jcmVhdGVT
bmFwc2hvdCgpOworICAgIHJldHVybiBpbWFnZVN1cmZhY2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1X
ZWJWaWV3OjpjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0KQoreworfQorCit2b2lkIFBs
YXRmb3JtV2ViVmlldzo6c2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKQoreworfQor
Citib29sIFBsYXRmb3JtV2ViVmlldzo6dmlld1N1cHBvcnRzT3B0aW9ucyhjb25zdCBUZXN0T3B0
aW9ucyYpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJW
aWV3Ojpmb3JjZVdpbmRvd0ZyYW1lc0NoYW5nZWQoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
VFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVy
V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGNjM2RlZGU5ODYKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxl
cldQRS5jcHAKQEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RD
b250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgewor
Cit2b2lkIFRlc3RDb250cm9sbGVyOjpub3RpZnlEb25lKCkKK3sKKyAgICBSdW5Mb29wOjptYWlu
KCkuc3RvcCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRIaWRkZW4oYm9vbCkKK3sK
K30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKwor
V0tQcmVmZXJlbmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygpCit7
CisgICAgcmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdlR3JvdXAuZ2V0KCkp
OworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCkKK3sKK30KKwor
c3RhdGljIEdNYWluQ29udGV4dCogdGhyZWFkRGVmYXVsdENvbnRleHQoKQoreworICAgIGlmIChH
TWFpbkNvbnRleHQqIGNvbnRleHQgPSBnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQo
KSkKKyAgICAgICAgcmV0dXJuIGNvbnRleHQ7CisgICAgcmV0dXJuIGdfbWFpbl9jb250ZXh0X2Rl
ZmF1bHQoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29s
JiBjb25kaXRpb24sIGRvdWJsZSB0aW1lb3V0KQoreworICAgIHN0cnVjdCBUaW1lb3V0VGltZXIg
eworICAgICAgICBUaW1lb3V0VGltZXIoKQorICAgICAgICAgICAgOiB0aW1lcihSdW5Mb29wOjpt
YWluKCksIHRoaXMsICZUaW1lb3V0VGltZXI6OmZpcmVkKQorICAgICAgICB7IH0KKworICAgICAg
ICB2b2lkIGZpcmVkKCkgeyBSdW5Mb29wOjptYWluKCkuc3RvcCgpOyB9CisgICAgICAgIFJ1bkxv
b3A6OlRpbWVyPFRpbWVvdXRUaW1lcj4gdGltZXI7CisgICAgfSB0aW1lb3V0VGltZXI7CisKKyAg
ICB0aW1lb3V0VGltZXIudGltZXIuc2V0UHJpb3JpdHkoR19QUklPUklUWV9ERUZBVUxUX0lETEUp
OworICAgIGlmICh0aW1lb3V0ID49IDApCisgICAgICAgIHRpbWVvdXRUaW1lci50aW1lci5zdGFy
dE9uZVNob3QodGltZW91dCk7CisKKyAgICBSdW5Mb29wOjptYWluKCkucnVuKCk7CisKKyAgICB0
aW1lb3V0VGltZXIudGltZXIuc3RvcCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybURpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYpCit7Cit9CisK
K3N0YXRpYyBjaGFyKiBnZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKGNvbnN0IGNo
YXIqIHZhcmlhYmxlTmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZh
cmlhYmxlTmFtZSk7CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IiVzIGVudmlyb25tZW50IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAg
ICAgICAgZXhpdCgwKTsKKyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVy
biBnX2ZpbGVuYW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7
CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdldEVudmlyb25tZW50VmFyaWFibGVBc1VURjhT
dHJpbmcoIlRFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSIpKTsKKyAgICBtX2lu
amVjdGVkQnVuZGxlUGF0aC5hZG9wdChXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhwYXRo
LmdldCgpKSk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemVUZXN0UGx1Z2lu
RGlyZWN0b3J5KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoUGxhdGZv
cm1XZWJWaWV3KikKK3sKK30KKworV0tDb250ZXh0UmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bUNvbnRleHQoKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitjb25zdCBjaGFyKiBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcoKQoreworICAgIHJldHVy
biBudWxscHRyOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZp
ZXdGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKK3sKK30KKwordm9pZCBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkKK3sKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6dXBkYXRlUGxhdGZvcm1TcGVjaWZpY1Rlc3RPcHRpb25z
Rm9yVGVzdChUZXN0T3B0aW9ucyYsIGNvbnN0IHN0ZDo6c3RyaW5nJikgY29uc3QKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dw
ZS9tYWluLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42Y2YyYjdmZjMyMQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKworaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIFdUUjo6VGVzdENvbnRyb2xsZXIgY29u
dHJvbGxlcihhcmdjLCBjb25zdF9jYXN0PGNvbnN0IGNoYXIqKj4oYXJndikpOworICAgIHJldHVy
biAwOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIgYi9Ub29s
cy9qaGJ1aWxkL2poYnVpbGQtd3JhcHBlcgppbmRleCBmNmM0MDNkMzFiMC4uZTNlZWNkZmNlODcg
MTAwNzU1Ci0tLSBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCisrKyBiL1Rvb2xzL2po
YnVpbGQvamhidWlsZC13cmFwcGVyCkBAIC0zMSw2ICszMSw4IEBAIGRlZiBkZXRlcm1pbmVfcGxh
dGZvcm0oKToKICAgICAgICAgcmV0dXJuICJlZmwiOwogICAgIGlmICctLWd0aycgaW4gc3lzLmFy
Z3Y6CiAgICAgICAgIHJldHVybiAiZ3RrIjsKKyAgICBpZiAnLS13cGUnIGluIHN5cy5hcmd2Ogor
ICAgICAgICByZXR1cm4gIndwZSIKICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBwbGF0Zm9ybSBz
cGVjaWZpZWQgZm9yIGpoYnVpbGQtd3JhcHBlci4nKQogCiB0cnk6CmRpZmYgLS1naXQgYS9Ub29s
cy93cGUvZ2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSBiL1Rvb2xzL3dw
ZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwLi43OGYxNDEwNjk4MgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5CkBAIC0w
LDAgKzEsNzYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGdsb2IKK2ltcG9ydCBvcwor
aW1wb3J0IHN5cworCitDT01QUkVTU0lCTEVfRVhURU5TSU9OUyA9IFsnLmh0bWwnLCAnLmpzJywg
Jy5jc3MnLCAnLnN2ZyddCitCQVNFX0RJUiA9ICdXZWJJbnNwZWN0b3JVSS8nCisKKworZGVmIGdl
dF9maWxlbmFtZXMoYXJncyk6CisgICAgZmlsZW5hbWVzID0gW10KKworICAgIGZvciBwYXR0ZXJu
IGluIGFyZ3M6CisgICAgICAgIHBhdGhzID0gZ2xvYi5nbG9iKHBhdHRlcm4pCisgICAgICAgIGZv
ciBmaWxlbmFtZSBpbiBwYXRoczoKKyAgICAgICAgICAgIGJhc2VfZGlyX2luZGV4ID0gZmlsZW5h
bWUucmZpbmQoQkFTRV9ESVIpCisgICAgICAgICAgICBpZiBiYXNlX2Rpcl9pbmRleCAhPSAtMToK
KyAgICAgICAgICAgICAgICBuYW1lID0gZmlsZW5hbWVbYmFzZV9kaXJfaW5kZXggKyBsZW4oQkFT
RV9ESVIpOl0KKyAgICAgICAgICAgICAgICAjIFRoZSByZXN1bHQgc2hvdWxkIHVzZSBmb3J3YXJk
IHNsYXNoZXMsIHRodXMgbWFrZSBzdXJlIGFueSBvcy1zcGVjaWZpYworICAgICAgICAgICAgICAg
ICMgc2VwYXJhdG9yLCBhZGRlZCBieSB0aGUgZ2xvYi5nbG9iKCkgY2FsbCwgaXMgcHJvcGVybHkg
cmVwbGFjZWQKKyAgICAgICAgICAgICAgICBpZiBvcy5zZXAgIT0gJy8nOgorICAgICAgICAgICAg
ICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKG9zLnNlcCwgJy8nKQorICAgICAgICAgICAgICAg
IGZpbGVuYW1lcy5hcHBlbmQobmFtZSkKKyAgICByZXR1cm4gZmlsZW5hbWVzCisKKworZGVmIGlz
X2NvbXByZXNzaWJsZShmaWxlbmFtZSk6CisgICAgcmV0dXJuIG9zLnBhdGguc3BsaXRleHQoZmls
ZW5hbWUpWzFdIGluIENPTVBSRVNTSUJMRV9FWFRFTlNJT05TCisKKworaWYgX19uYW1lX18gPT0g
Il9fbWFpbl9fIjoKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlw
dGlvbj0nR2VuZXJhdGUgYSBHUmVzb3VyY2VzIGZpbGUgZm9yIHRoZSBpbnNwZWN0b3IuJykKKyAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW91dHB1dCcsIG5hcmdzPSc/JywgdHlwZT1hcmdwYXJz
ZS5GaWxlVHlwZSgndycpLCBkZWZhdWx0PXN5cy5zdGRvdXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSd0aGUgb3V0cHV0IGZpbGUnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2Zp
bGVuYW1lcycsIG1ldGF2YXI9J0ZJTEVTJywgbmFyZ3M9JysnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0ndGhlIGxpc3Qgb2YgZmlsZXMgdG8gaW5jbHVkZScpCisKKyAgICBhcmdzID0g
cGFyc2VyLnBhcnNlX2FyZ3Moc3lzLmFyZ3ZbMTpdKQorCisgICAgYXJncy5vdXRwdXQud3JpdGUo
XAorICAgICIiIjw/eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVURi04Pz4KKyAgICA8Z3Jlc291
cmNlcz4KKyAgICAgICAgPGdyZXNvdXJjZSBwcmVmaXg9Ii9vcmcvd3BlL2luc3BlY3RvciI+Cisi
IiIpCisKKyAgICBmb3IgZmlsZW5hbWUgaW4gZ2V0X2ZpbGVuYW1lcyhhcmdzLmZpbGVuYW1lcyk6
CisgICAgICAgIGxpbmUgPSAnICAgICAgICAgICAgPGZpbGUnCisgICAgICAgIGlmIGlzX2NvbXBy
ZXNzaWJsZShmaWxlbmFtZSk6CisgICAgICAgICAgICBsaW5lICs9ICcgY29tcHJlc3NlZD0idHJ1
ZSInCisgICAgICAgIGlmICdJbWFnZXMvZ3RrLycgaW4gZmlsZW5hbWU6CisgICAgICAgICAgICBs
aW5lICs9ICcgYWxpYXM9IiVzIicgJSBmaWxlbmFtZS5yZXBsYWNlKCdndGsvJywgJycpCisgICAg
ICAgIGxpbmUgKz0gJz4lczwvZmlsZT5cbicgJSBmaWxlbmFtZQorCisgICAgICAgIGFyZ3Mub3V0
cHV0LndyaXRlKGxpbmUpCisKKyAgICBhcmdzLm91dHB1dC53cml0ZShcCisgICAgIiIiICAgIDwv
Z3Jlc291cmNlPgorPC9ncmVzb3VyY2VzPgorIiIiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2po
YnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJlZDc1NjI2NGEyCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwpAQCAtMCwwICsxLDI0NiBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIj8+Cis8IURPQ1RZUEUgbW9kdWxlc2V0IFNZU1RFTSAibW9kdWxlc2V0LmR0ZCI+Cis8
P3htbC1zdHlsZXNoZWV0IHR5cGU9InRleHQveHNsIiBocmVmPSJtb2R1bGVzZXQueHNsIj8+Cis8
bW9kdWxlc2V0PgorCisgIDxtZXRhbW9kdWxlIGlkPSJ3ZWJraXR3cGUtdGVzdGluZy1kZXBlbmRl
bmNpZXMiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4K
KyAgICAgIDxkZXAgcGFja2FnZT0ibGlic291cCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJjYWly
byIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJk
aWN0cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBh
Y2thZ2U9ImZyZWV0eXBlNiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id2F5bGFu
ZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1n
b29kIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhZCIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJnc3QtbGliYXYiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlIi8+CisgICAg
ICA8ZGVwIHBhY2thZ2U9IndwZS1tZXNhIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvbWV0
YW1vZHVsZT4KKworICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJl
Lm9yZy1taXJyb3IiCisgICAgICBocmVmPSJodHRwOi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJj
ZXMucmVkaGF0LmNvbS8iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRw
Lmdub21lLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBv
c2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgaHJl
Zj0iaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJh
bGwiIG5hbWU9ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWRl
c2t0b3Aub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9IndheWxhbmQu
ZnJlZWRlc2t0b3Aub3JnIgorICAgICAgaHJlZj0iaHR0cDovL3dheWxhbmQuZnJlZWRlc2t0b3Au
b3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9ImdpdCIgbmFtZT0iZ2l0aHViLmNvbSIKKyAgICAg
IGhyZWY9ImdpdDovL2dpdGh1Yi5jb20iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIg
bmFtZT0iZ3N0cmVhbWVyIgorICAgICAgaHJlZj0iaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3Rv
cC5vcmcvc3JjLyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJ4a2Jjb21t
b24ub3JnIgorICAgICAgaHJlZj0iaHR0cDovL3hrYmNvbW1vbi5vcmciLz4KKyAgPHJlcG9zaXRv
cnkgdHlwZT0idGFyYmFsbCIgbmFtZT0ic2F2YW5uYWguZ251Lm9yZyIKKyAgICAgIGhyZWY9Imh0
dHA6Ly9kb3dubG9hZC5zYXZhbm5haC5nbnUub3JnL3JlbGVhc2VzLyIvPgorCisgIDxhdXRvdG9v
bHMgaWQ9ImxpYmZmaSIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVs
ZT0ibGliZmZpL2xpYmZmaS0zLjAuMTAudGFyLmd6IiB2ZXJzaW9uPSIzLjAuMTAiCisgICAgICAg
ICAgICAgcmVwbz0ic291cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgICAgICAgIGhhc2g9InNo
YTI1NjpmMDFlYjkwMjdlOWViNTZhZWFlZWY2MzY2NDk4Nzc3NTZkNDc1ZDcxNGVmOGI0N2Y2Mjdm
NjViYzVmM2I0OTJmIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIi
CisgICAgICAgICAgICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9n
ZW5hcmdzPSItLWRpc2FibGUtZHRyYWNlIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRl
cCBwYWNrYWdlPSJsaWJmZmkiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1v
ZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2dsaWIvMi40NC9nbGliLTIuNDQuMS50YXIueHoiIHZl
cnNpb249IjIuNDQuMSIKKyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAg
ICAgICBoYXNoPSJzaGEyNTY6ODgxMWRlYWNhZjhhNTAzZDBhOWI3MDE3NzdlYTA3OWNhNmE0Mjc3
YmUxMGUzZDczMGQyMTEyNzM1ZDVlY2EwNyI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi13YXJu
aW5nLWZpeC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnZGF0ZS1zdXBw
cmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaCIgc3RyaXA9IjEiLz4KKyAg
ICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYi1uZXR3
b3JraW5nIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+
CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291
cmNlcy9nbGliLW5ldHdvcmtpbmcvMi40Mi9nbGliLW5ldHdvcmtpbmctMi40Mi4wLnRhci54eiIg
dmVyc2lvbj0iMi40Mi4wIgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAg
ICAgICAgIGhhc2g9InNoYTI1NjozMDRkZDllNGMwY2VkNjkwOTQzMDBlMGI5ZTY2Y2QyZWFhZTcx
NjFiOWZjMzE4NjUzNmQxMTQ1ODY3N2Q4MjBkIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRv
dG9vbHMgaWQ9ImxpYnNvdXAiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1n
bm9tZSAtLWRpc2FibGUtaW50cm9zcGVjdGlvbiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZ2xpYi1uZXR3b3JraW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+Cisg
ICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNDgvbGlic291
cC0yLjQ4LjAudGFyLnh6IiB2ZXJzaW9uPSIyLjQ4LjAiCisgICAgICAgICAgICByZXBvPSJmdHAu
Z25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmVhMzRkZDY0ZmU0NDM0MzQ0NWRh
ZjZkZDY5MGQwNjkxZTlkOTczNDY4ZGU0NDg3OGRhOTczNzFjMTZkODk3ODQiLz4KKyAgPC9hdXRv
dG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZm9udHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVp
bGRzPSJubyIKKyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2gg
cmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZm9udHMu
Z2l0IiBjaGVja291dGRpcj0id2Via2l0Z3RrLXRlc3QtZm9udHMiIHRhZz0iMC4wLjUiLz4KKyAg
PC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZGljdHMiIHN1cHBvcnRzLW5vbi1zcmNk
aXItYnVpbGRzPSJubyIKKyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxi
cmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3Qt
ZGljdHMuZ2l0IiBjaGVja291dGRpcj0id2Via2l0Z3RrLXRlc3QtZGljdHMiIHRhZz0iMC4wLjEi
Lz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZnJlZXR5cGU2IiBhdXRvZ2Vu
LXNoPSJjb25maWd1cmUiPgorICAgIDxicmFuY2ggbW9kdWxlPSJmcmVldHlwZS9mcmVldHlwZS0y
LjQuMTEudGFyLmJ6MiIgdmVyc2lvbj0iMi40LjExIgorICAgICAgICAgICAgcmVwbz0ic2F2YW5u
YWguZ251Lm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjplZjlkMGJjYjY0NjQ3ZDllNTEy
NWRjNzUzNGQ3Y2EzNzFjOTgzMTBmZWM4NzY3N2M0MTBmMzk3ZjcxZmZiZTNmIgorICAgICAgICAg
ICAgbWQ1c3VtPSJiOTM0MzU0ODg5NDI0ODZjOGQwY2EyMmU4Zjc2ODAzNCI+CisgICAgICA8cGF0
Y2ggZmlsZT0iZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2gi
IHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9v
bHMgaWQ9ImZvbnRjb25maWciIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVuZGVu
Y2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNp
ZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9mb250
Y29uZmlnLTIuMTEuMS50YXIuZ3oiIHZlcnNpb249IjIuMTEuMSIKKyAgICAgICAgICAgIHJlcG89
ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjpiNmIwNjZjN2RjZTNm
NDM2ZmRjMGRmYmFlOWQzNjEyMmIzODA5NGY0ZjUzYmQ4ZGZmZDQ1ZTE5NWIwNTQwZDhkIgorICAg
ICAgICAgICAgbWQ1c3VtPSJlNzVlMzAzYjRmNzc1NmMyYjE2MjAzYTU3YWM4N2ViYSI+CisgICAg
PC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBh
dXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgIGF1dG9nZW5hcmdzPSItLXdpdGgtY2Fpcm89
bm8gLS13aXRoLWdsaWI9bm8gLS13aXRoLWZyZWV0eXBlPXllcyI+CisgICAgPGRlcGVuZGVuY2ll
cz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+
CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enot
MS4zLjMudGFyLmJ6MiIKKyAgICAgICAgICAgIHZlcnNpb249IjEuMy4zIgorICAgICAgICAgICAg
Y2hlY2tvdXRkaXI9ImhhcmZidXp6LTEuMy4zIgorICAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0
b3Aub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjI2MjA5ODcxMTVhNDEyMmI0NzMyMTYx
MGRjY2JjYzE4ZjdmMTIxMTE1ZmQ3Yjg4ZGM4YTY5NWM4YjY2Y2IzYzkiCisgICAgICAgICAgICBt
ZDVzdW09Ijk3YWUxNWE3MmE5M2YxZjI3MzI0YTJiOGQ5YmQzYjFkIj4KKyAgICA8L2JyYW5jaD4K
KyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0icGl4bWFuIgorICAgICAgICAgICAg
IGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1lbmFi
bGUtZ3RrPW5vIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvcGl4bWFuLTAuMzIuNi50
YXIuZ3oiIHZlcnNpb249IjAuMzIuNiIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mu
b3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjNkZmVkMTNiODA2MGVhZGFiZjBhNDk0NWM3
MDQ1Yjc3OTNjYzdlM2U5MTBlNzQ4YThiYjBmMGRjM2U3OTQ5MDQiLz4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0iY2Fpcm8iIGF1dG9nZW5hcmdzPSItLWVuYWJsZS1lZ2w9eWVz
IC0tZW5hYmxlLWdsZXN2MiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iZ2xpYiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVw
IHBhY2thZ2U9InBpeG1hbiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9k
dWxlPSJyZWxlYXNlcy9jYWlyby0xLjE0LjgudGFyLnh6IiB2ZXJzaW9uPSIxLjE0LjgiCisgICAg
ICAgICAgICByZXBvPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTE6
YzZmN2I5OTk4NmY5M2M5ZGY3ODY1M2MzZTZhM2I1MDQzZjY1MTQ1ZSI+CisgICAgICA8cGF0Y2gg
ZmlsZT0iY2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoIiBzdHJp
cD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlk
PSJ4a2Jjb21tb24iPgorICAgIDxicmFuY2ggbW9kdWxlPSJkb3dubG9hZC9saWJ4a2Jjb21tb24t
MC41LjAudGFyLnh6IiB2ZXJzaW9uPSIwLjUuMCIKKyAgICAgICAgICAgIHJlcG89InhrYmNvbW1v
bi5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGExOjcxMjc5OTNiZmI2OWUxM2NkZmYyNWZiOGIz
YzhmMjZjZTZiZTViZmEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0id2F5
bGFuZCIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1kb2N1bWVudGF0aW9uIj4KKyAgICA8YnJhbmNo
IG1vZHVsZT0icmVsZWFzZXMvd2F5bGFuZC0xLjkuMC50YXIueHoiIHZlcnNpb249IjEuOS4wIgor
ICAgICAgICAgICAgcmVwbz0id2F5bGFuZC5mcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBo
YXNoPSJzaGEyNTY6OWM4NzcwNzIwYWEwMDM0NDc5NzM1ZjU4YTRkYzRjYTliMTcyZWNmZWRlMjhm
NTEzNDMxMmUxMzViNzMwMWVmYSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlk
PSJvcmMiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmln
dXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0ib3JjL29yYy0wLjQuMTcudGFyLmd6IiB2ZXJzaW9u
PSIwLjQuMTciCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNo
PSJzaGEyNTY6NGZjN2NjYTQ4YzU5ZmZmMjNhZmVlNzhmYjY0MmNkYmRlMDAxZjU2NDAxYzhmNDdi
OTVhMTY1NzhkMWQ1ZDdlOCIKKyAgICAgICAgICAgIG1kNXN1bT0iYWYxYmYzZGFiOWU2OWYzYzM2
ZjM4OTI4NWUyYTEyYTEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0
cmVhbWVyIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3Rr
LWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ib3JjIi8+Cisg
ICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdHJlYW1lci9nc3RyZWFt
ZXItJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0i
Z3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjVhMzcyMmZiOTMwMmRkOTc3YzE3
Y2VkNDI0MDI5M2RjNzc3Y2I3MTZkYzk4YzhjY2E2M2Q3NWMyN2U1ZTMxMDciCisgICAgICAgICAg
ICBtZDVzdW09IjcxMWFkYTc5YjYzZTQ3YWM5NmFkYjRlNTQ0NGRjOTA4Ij4KKyAgICAgIDxwYXRj
aCBmaWxlPSJnc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3Ry
ZWFtLWlmLXRoZS0ucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWJhc2UiCisgICAgICAgICAgICAg
YXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2Fi
bGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAg
ICA8ZGVwIHBhY2thZ2U9ImdzdHJlYW1lciIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxi
cmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9u
fS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgor
ICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjE1YTlkZTk4NWNkMjY1YzM0NGUzNTlmNWIxOTM0N2Rm
NDAyMWI3NjExZWQyYzJkOTE5MTdjYjkwMGYyZmFkNmYiCisgICAgICAgICAgICBtZDVzdW09IjU0
MjFlZGZlYjc0NzlkNWY1Nzc2ZTkxN2JhMzBlMjRlIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxh
dXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWdvb2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0
b2dlbmFyZ3M9Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3Rr
LWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdp
bnMtYmFzZSIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorCisgICAgPGJyYW5jaCBtb2R1bGU9Imdz
dC1wbHVnaW5zLWdvb2QvZ3N0LXBsdWdpbnMtZ29vZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lv
bj0iMS44LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNo
PSJzaGEyNTY6MjEwM2UxNzkyMWQ2Nzg5NGU4MmVhZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYy
NWJmYmM4M2ZmZWFkMDk3MiIKKyAgICAgICAgICAgIG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4
YTY0YzMxMmRlMDNkNDciPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNl
LXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZp
bGU9ImdzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1m
aXJzdC1tb29mLWZvci1mci5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9h
dXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtYmFkIiBhdXRvZ2VuLXNo
PSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0
ay1kb2MgLS1kaXNhYmxlLWludHJvc3BlY3Rpb24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAg
ICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4K
KyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3Zl
cnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFt
ZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MGJiZDU4ZjM2MzczNGZjMGM0YTYyMGIyZDZm
YjAxZDQyN2ZkYWZkYmRhN2I5MGI0ZTE1ZDAzYjc1MWNhNDBmNSIKKyAgICAgICAgICAgIG1kNXN1
bT0iZTUwOGRhMmE4YTVjM2QxMjI2NGZlMzQxNWJlMmY0NTEiPgorICAgICAgPHBhdGNoIGZpbGU9
ImdzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIiBz
dHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNj
ZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2giIHN0
cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMg
aWQ9ImdzdC1saWJhdiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRo
LWxpYmF2LWV4dHJhLWNvbmZpZ3VyZT0nLS1kaXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9j
Ij4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1i
YXNlIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJh
di9nc3QtbGliYXYtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAg
ICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjQ0YTQ5MTA4YzM1
MzFiNWFjNGYzNDZhMjI0N2NkN2ZiYWZiMGU4YWIzOTQzOTRjYjZkNzVhNzAzMDBiMzg5MzMiCisg
ICAgICAgICAgICBtZDVzdW09Ijg1ZjFhMDQ3NjA2Y2E5ZTA4NDkzZDdiNmI0MmRmNDYyIi8+Cisg
IDwvYXV0b3Rvb2xzPgorCisgIDxjbWFrZSBpZD0id3BlIj4KKyAgICA8YnJhbmNoIHJlcG89Imdp
dGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLmdpdCIK
KyAgICAgICAgICAgIHRhZz0iNWUyYTI5ZDJjY2M2MzdmNzEyMmJhNzJjMWQ2MmVmNjY5YjQyZjA1
YyIgLz4KKyAgPC9jbWFrZT4KKworICA8Y21ha2UgaWQ9IndwZS1tZXNhIj4KKyAgICA8ZGVwZW5k
ZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9
ImdsaWIiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9IndheWxhbmQiIC8+CisgICAgICA8ZGVwIHBh
Y2thZ2U9InhrYmNvbW1vbiIgLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIHJl
cG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5k
LW1lc2EuZ2l0IgorICAgICAgICAgICAgdGFnPSI5OTQ1NzUzZjkzMzdmZDY3YWYwOTgyMThiNzgx
OTMzN2FiYTIxMTQxIiAvPgorICA8L2NtYWtlPgorPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9U
b29scy93cGUvamhidWlsZHJjIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTJmYTg4ZDcyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy93cGUvamhidWlsZHJjCkBAIC0wLDAgKzEsMjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhv
bgorIyBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisj
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBzeXMKK2ltcG9y
dCBvcworCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShf
X2ZpbGVfXyksICIuLi9qaGJ1aWxkIikgKQoraW1wb3J0IGpoYnVpbGRyY19jb21tb24KK2poYnVp
bGRyY19jb21tb24uaW5pdChnbG9iYWxzKCksICJ3cGUiKQorIyBFbmFibGUgYnVpbGRkaXIgIT0g
c3JjZGlyIGJ1aWxkcy4KK2J1aWxkcm9vdCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUo
Y2hlY2tvdXRyb290KSwgIkJ1aWxkIikKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2Nh
aXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaCBiL1Rvb2xzL3dwZS9w
YXRjaGVzL2NhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDQ2ZGY0NWI2ZjMKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3It
ZWdsLXN1cmZhY2UucGF0Y2gKQEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gYTRlMGRhZjE4YmY4MjUy
NDYzZjY2ZDc1ZWVmNDk5Y2ZmZmEzMjU2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206
IFphbiBEb2JlcnNlayA8emRvYmVyc2VrQGlnYWxpYS5jb20+CitEYXRlOiBNb24sIDE3IE5vdiAy
MDE0IDAxOjIzOjE1IC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBjYWlyb19lZ2xfZGV2aWNl
X2NyZWF0ZV9mb3JfZWdsX3N1cmZhY2UoKS4KKworLS0tCisgc3JjL2NhaXJvLWVnbC1jb250ZXh0
LmMgfCA2NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t
Cisgc3JjL2NhaXJvLWdsLmggICAgICAgICAgfCAgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDYw
IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8t
ZWdsLWNvbnRleHQuYyBiL3NyYy9jYWlyby1lZ2wtY29udGV4dC5jCitpbmRleCBiZjcwNGM2Li5i
ZTJiY2Y5IDEwMDY0NAorLS0tIGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMKKysrKyBiL3NyYy9j
YWlyby1lZ2wtY29udGV4dC5jCitAQCAtNDgsNyArNDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fp
cm9fZWdsX2NvbnRleHQgeworICAgICBFR0xEaXNwbGF5IGRpc3BsYXk7CisgICAgIEVHTENvbnRl
eHQgY29udGV4dDsKKyAKKy0gICAgRUdMU3VyZmFjZSBkdW1teV9zdXJmYWNlOworKyAgICBFR0xT
dXJmYWNlIHN1cmZhY2U7CisrICAgIGNhaXJvX2Jvb2xfdCBpc19kdW1teV9zdXJmYWNlOworIAor
ICAgICBFR0xDb250ZXh0IHByZXZpb3VzX2NvbnRleHQ7CisgICAgIEVHTFN1cmZhY2UgcHJldmlv
dXNfc3VyZmFjZTsKK0BAIC03NCw3ICs3NSw3IEBAIF9lZ2xfZ2V0X2N1cnJlbnRfc3VyZmFjZSAo
Y2Fpcm9fZWdsX2NvbnRleHRfdCAqY3R4KQorIHsKKyAgICAgaWYgKGN0eC0+YmFzZS5jdXJyZW50
X3RhcmdldCA9PSBOVUxMIHx8CisgICAgICAgICBfY2Fpcm9fZ2xfc3VyZmFjZV9pc190ZXh0dXJl
IChjdHgtPmJhc2UuY3VycmVudF90YXJnZXQpKSB7CistCXJldHVybiAgY3R4LT5kdW1teV9zdXJm
YWNlOworKwlyZXR1cm4gIGN0eC0+c3VyZmFjZTsKKyAgICAgfQorIAorICAgICByZXR1cm4gKChj
YWlyb19lZ2xfc3VyZmFjZV90ICopIGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCktPmVnbDsKK0BA
IC0xNTEsOCArMTUyLDggQEAgX2VnbF9kZXN0cm95ICh2b2lkICphYnN0cmFjdF9jdHgpCisgCisg
ICAgIGVnbE1ha2VDdXJyZW50IChjdHgtPmRpc3BsYXksCisgCQkgICAgRUdMX05PX1NVUkZBQ0Us
IEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CistICAgIGlmIChjdHgtPmR1bW15X3N1
cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4
LT5kaXNwbGF5LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKyAgICBpZiAoY3R4LT5pc19kdW1teV9z
dXJmYWNlICYmIGN0eC0+c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkKKysgICAgICAgIGVnbERl
c3Ryb3lTdXJmYWNlIChjdHgtPmRpc3BsYXksIGN0eC0+c3VyZmFjZSk7CisgfQorIAorIHN0YXRp
YyBjYWlyb19ib29sX3QKK0BAIC0yMTgsMTMgKzIxOSwxNCBAQCBjYWlyb19lZ2xfZGV2aWNlX2Ny
ZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsKQorIAllZ2xRdWVyeUNvbnRleHQg
KGRweSwgZWdsLCBFR0xfQ09ORklHX0lELCAmY29uZmlnX2F0dHJpYnNbMV0pOworIAllZ2xDaG9v
c2VDb25maWcgKGRweSwgY29uZmlnX2F0dHJpYnMsICZjb25maWcsIDEsICZudW1Db25maWdzKTsK
KyAKKy0JY3R4LT5kdW1teV9zdXJmYWNlID0gZWdsQ3JlYXRlUGJ1ZmZlclN1cmZhY2UgKGRweSwg
Y29uZmlnLCBhdHRyaWJzKTsKKy0JaWYgKGN0eC0+ZHVtbXlfc3VyZmFjZSA9PSBOVUxMKSB7Cisr
CWN0eC0+aXNfZHVtbXlfc3VyZmFjZSA9IFRSVUU7CisrCWN0eC0+c3VyZmFjZSA9IGVnbENyZWF0
ZVBidWZmZXJTdXJmYWNlIChkcHksIGNvbmZpZywgYXR0cmlicyk7CisrCWlmIChjdHgtPnN1cmZh
Y2UgPT0gTlVMTCkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xf
Y29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9Cisg
CistCWlmICghZWdsTWFrZUN1cnJlbnQgKGRweSwgY3R4LT5kdW1teV9zdXJmYWNlLCBjdHgtPmR1
bW15X3N1cmZhY2UsIGVnbCkpIHsKKysJaWYgKCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBjdHgtPnN1
cmZhY2UsIGN0eC0+c3VyZmFjZSwgZWdsKSkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJl
dHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19N
RU1PUlkpOworIAl9CitAQCAtMjM4LDggKzI0MCw1NCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0
ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsKQorIAorICAgICBzdGF0dXMgPSBfY2Fp
cm9fZ2xfY29udGV4dF9pbml0ICgmY3R4LT5iYXNlKTsKKyAgICAgaWYgKHVubGlrZWx5IChzdGF0
dXMpKSB7CistCWlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistCSAg
ICBlZ2xEZXN0cm95U3VyZmFjZSAoZHB5LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKwlpZiAoY3R4
LT5zdXJmYWNlICE9IEVHTF9OT19TVVJGQUNFKQorKwkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRw
eSwgY3R4LT5zdXJmYWNlKTsKKysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250
ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVzKTsKKysgICAgfQorKworKyAgICBlZ2xNYWtlQ3Vy
cmVudCAoZHB5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhU
KTsKKysKKysgICAgcmV0dXJuICZjdHgtPmJhc2UuYmFzZTsKKyt9CisrCisrY2Fpcm9fZGV2aWNl
X3QgKgorK2NhaXJvX2VnbF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxh
eSBkcHksIEVHTENvbnRleHQgZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpCisreworKyAgICBjYWly
b19lZ2xfY29udGV4dF90ICpjdHg7CisrICAgIGNhaXJvX3N0YXR1c190IHN0YXR1czsKKysKKysg
ICAgY3R4ID0gY2FsbG9jICgxLCBzaXplb2YgKGNhaXJvX2VnbF9jb250ZXh0X3QpKTsKKysgICAg
aWYgKHVubGlrZWx5IChjdHggPT0gTlVMTCkpCisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9j
cmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworKworKyAgICBjdHgtPmRp
c3BsYXkgPSBkcHk7CisrICAgIGN0eC0+Y29udGV4dCA9IGVnbDsKKysgICAgY3R4LT5zdXJmYWNl
ID0gc3VyZmFjZTsKKysKKysgICAgY3R4LT5iYXNlLmFjcXVpcmUgPSBfZWdsX2FjcXVpcmU7Cisr
ICAgIGN0eC0+YmFzZS5yZWxlYXNlID0gX2VnbF9yZWxlYXNlOworKyAgICBjdHgtPmJhc2UubWFr
ZV9jdXJyZW50ID0gX2VnbF9tYWtlX2N1cnJlbnQ7CisrICAgIGN0eC0+YmFzZS5zd2FwX2J1ZmZl
cnMgPSBfZWdsX3N3YXBfYnVmZmVyczsKKysgICAgY3R4LT5iYXNlLmRlc3Ryb3kgPSBfZWdsX2Rl
c3Ryb3k7CisrCisrICAgIC8qIFdlIGFyZSBhYm91dCB0aGUgY2hhbmdlIHRoZSBjdXJyZW50IHN0
YXRlIG9mIEVHTCwgc28gd2Ugc2hvdWxkCisrICAgICAqIHF1ZXJ5IHRoZSBwcmUtZXhpc3Rpbmcg
c3VyZmFjZSBub3cgaW5zdGVhZCBvZiBsYXRlci4gKi8KKysgICAgX2VnbF9xdWVyeV9jdXJyZW50
X3N0YXRlIChjdHgpOworKworKwlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHksIHN1cmZhY2UsIHN1
cmZhY2UsIGVnbCkpIHsKKysJICAgIGZyZWUgKGN0eCk7CisrCSAgICByZXR1cm4gX2NhaXJvX2ds
X2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKysJfQor
KworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfZGlzcGF0Y2hfaW5pdCAoJmN0eC0+YmFzZS5kaXNw
YXRjaCwgZWdsR2V0UHJvY0FkZHJlc3MpOworKyAgICBpZiAodW5saWtlbHkgKHN0YXR1cykpIHsK
KysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJv
ciAoc3RhdHVzKTsKKysgICAgfQorKworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9p
bml0ICgmY3R4LT5iYXNlKTsKKysgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CisgCWZyZWUg
KGN0eCk7CisgCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1
cyk7CisgICAgIH0KK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZ2wuaCBiL3NyYy9jYWlyby1nbC5o
CitpbmRleCA5ZmQ3NjA4Li5hOTRmNTgxIDEwMDY0NAorLS0tIGEvc3JjL2NhaXJvLWdsLmgKKysr
KyBiL3NyYy9jYWlyby1nbC5oCitAQCAtMTMyLDYgKzEzMiw5IEBAIGNhaXJvX2dsX3N1cmZhY2Vf
Y3JlYXRlX2Zvcl9kYyAoY2Fpcm9fZGV2aWNlX3QJCSpkZXZpY2UsCisgY2Fpcm9fcHVibGljIGNh
aXJvX2RldmljZV90ICoKKyBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHks
IEVHTENvbnRleHQgZWdsKTsKKyAKKytjYWlyb19wdWJsaWMgY2Fpcm9fZGV2aWNlX3QgKgorK2Nh
aXJvX2VnbF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVH
TENvbnRleHQgZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpOworKworIGNhaXJvX3B1YmxpYyBjYWly
b19zdXJmYWNlX3QgKgorIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9lZ2wgKGNhaXJvX2Rl
dmljZV90CSpkZXZpY2UsCisgCQkJCSBFR0xTdXJmYWNlCSBlZ2wsCmRpZmYgLS1naXQgYS9Ub29s
cy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxp
dGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmln
LUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0
Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZTBhNTQxZGJjCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVp
cmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoCkBAIC0wLDAg
KzEsMzAgQEAKK0Zyb20gNzA2OWQ3MTdlOTgyYWRjZjhlMWQzMDBjYmQxMGVlYzYzMjJhNjVjOSBN
b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFraXJhIFRBR09IIDxha2lyYUB0YWdvaC5v
cmc+CitEYXRlOiBTdW4sIDIyIEFwciAyMDEyIDIxOjQwOjQ0ICswOTAwCitTdWJqZWN0OiBbUEFU
Q0hdIEMrKzExIHJlcXVpcmVzIGEgc3BhY2UgYmV0d2VlbiBsaXRlcmFsIGFuZCBpZGVudGlmaWVy
CisKK1JlcG9ydGVkIGJ5IEJ1Z2FuaW5pCistLS0KKyBmb250Y29uZmlnL2ZvbnRjb25maWcuaCB8
IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo
LSkKKworZGlmZiAtLWdpdCBhL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oIGIvZm9udGNvbmZpZy9m
b250Y29uZmlnLmgKK2luZGV4IDBlMmNhNTAuLmIyN2NjYjUgMTAwNjQ0CistLS0gYS9mb250Y29u
ZmlnL2ZvbnRjb25maWcuaAorKysrIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK0BAIC0xMTIs
OSArMTEyLDkgQEAgdHlwZWRlZiBpbnQJCUZjQm9vbDsKKyAjZGVmaW5lIEZDX0RFQ09SQVRJVkUJ
ICAgICJkZWNvcmF0aXZlIgkvKiBCb29sIC0gdHJ1ZSBpZiBzdHlsZSBpcyBhIGRlY29yYXRpdmUg
dmFyaWFudCAqLworICNkZWZpbmUgRkNfTENEX0ZJTFRFUgkgICAgImxjZGZpbHRlciIJCS8qIElu
dCAqLworIAorLSNkZWZpbmUgRkNfQ0FDSEVfU1VGRklYCQkgICAgIi5jYWNoZS0iRkNfQ0FDSEVf
VkVSU0lPTgorLSNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iRkNf
Q0FDSEVfVkVSU0lPTgorLSNkZWZpbmUgRkNfVVNFUl9DQUNIRV9GSUxFCSAgICAiLmZvbnRzLmNh
Y2hlLSJGQ19DQUNIRV9WRVJTSU9OCisrI2RlZmluZSBGQ19DQUNIRV9TVUZGSVgJCSAgICAiLmNh
Y2hlLSIgRkNfQ0FDSEVfVkVSU0lPTgorKyNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJm
b250cy5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKysjZGVmaW5lIEZDX1VTRVJfQ0FDSEVfRklM
RQkgICAgIi5mb250cy5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKyAKKyAvKiBBZGp1c3Qgb3V0
bGluZSByYXN0ZXJpemVyICovCisgI2RlZmluZSBGQ19DSEFSX1dJRFRICSAgICAiY2hhcndpZHRo
IgkvKiBJbnQgKi8KKy0tIAorMS44LjMuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hl
cy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCBiL1Rvb2xz
L3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBh
dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZmZlNzZiNGVmMAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1
ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gZTA0Njkz
NzJiZTM4NzBhNWFkNjBiMmM0NTg2ZTljMjgxMzU3YmQyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw
MDEKK0Zyb206IFdlcm5lciBMZW1iZXJnIDx3bEBnbnUub3JnPgorRGF0ZTogVHVlLCAyMiBKYW4g
MjAxMyAxMDowNzowNyArMDAwMAorU3ViamVjdDogW3RydWV0eXBlXSBGaXggZm9udCBoZWlnaHQu
CisKKyogc3JjL3RydWV0eXBlL3R0b2Jqcy5jICh0dF9zaXplX3Jlc2V0KTogVGhlIFdpbmRvd3Mg
cmVuZGVyaW5nCitlbmdpbmUgdXNlcyByb3VuZGVkIHZhbHVlcyBvZiB0aGUgYXNjZW5kZXIgYW5k
IGRlc2NlbmRlciB0byBjb21wdXRlCit0aGUgVHJ1ZVR5cGUgZm9udCBoZWlnaHQuCistLS0KK2Rp
ZmYgLS1naXQgYS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMK
K2luZGV4IGM2MWIyMTguLjU5MGI2NmMgMTAwNjQ0CistLS0gYS9zcmMvdHJ1ZXR5cGUvdHRvYmpz
LmMKKysrKyBiL3NyYy90cnVldHlwZS90dG9ianMuYworQEAgLTQsNyArNCw3IEBACisgLyogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKi8KKyAvKiAgICBPYmplY3RzIG1hbmFnZXIgKGJvZHkpLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCistLyogIENvcHlyaWdodCAxOTk2LTIwMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKysvKiAgQ29weXJpZ2h0IDE5OTYtMjAxMyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICBE
YXZpZCBUdXJuZXIsIFJvYmVydCBXaWxoZWxtLCBhbmQgV2VybmVyIExlbWJlcmcuICAgICAgICAg
ICAgICAgICAgICAgICovCisgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgVGhpcyBmaWxlIGlz
IHBhcnQgb2YgdGhlIEZyZWVUeXBlIHByb2plY3QsIGFuZCBtYXkgb25seSBiZSB1c2VkLCAgICAg
ICAqLworQEAgLTExNzcsMTEgKzExNzcsMTIgQEAKKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRf
TXVsRml4KCBmYWNlLT5yb290LmFzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAg
ICBtZXRyaWNzLT5kZXNjZW5kZXIgPQorICAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgo
IGZhY2UtPnJvb3QuZGVzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKy0gICAgICBtZXRy
aWNzLT5oZWlnaHQgPQorLSAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJv
b3QuaGVpZ2h0LCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5tYXhfYWR2
YW5jZSA9CisgICAgICAgICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5tYXhf
YWR2YW5jZV93aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNz
LT54X3NjYWxlICkgKTsKKysKKysgICAgICAvKiB0aGUgaGVpZ2h0IGlzIGRlcml2ZWQgZnJvbSBy
b3VuZGVkIHZhbHVlcyAqLworKyAgICAgIG1ldHJpY3MtPmhlaWdodCA9IG1ldHJpY3MtPmFzY2Vu
ZGVyIC0gbWV0cmljcy0+ZGVzY2VuZGVyOworICAgICB9CisgCisgICAgIC8qIGNvbXB1dGUgbmV3
IHRyYW5zZm9ybWF0aW9uICovCistLQorY2dpdCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvVG9vbHMv
d3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcu
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxp
dGVyYWwtd2FybmluZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uOTBjYjk1MWExOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0
ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaApAQCAtMCwwICsx
LDI5IEBACitGcm9tIDNhN2VmZDU5OGQzOTM2NmMyYzlkZTBkZWYyZmRmYjM1ZTVlOWYyYTEgTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBjb3lwdSA8Y295cHVAc2RmLm9yZz4KK0RhdGU6
IE1vbiwgOCBGZWIgMjAxNiAwMDowNjowNiArMDIwMAorU3ViamVjdDogW1BBVENIIDEvMV0gZ2Rh
dGU6IFN1cHByZXNzIHN0cmluZyBmb3JtYXQgbGl0ZXJhbCB3YXJuaW5nCisKK05ld2VyIHZlcnNp
b25zIG9mIEdDQyBlbWl0IGFuIGVycm9yIGhlcmUsIGJ1dCB3ZSBrbm93IGl0J3Mgc2FmZS4KK2h0
dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLzc2MTU1MAorLS0tCisgZ2xpYi9nZGF0ZS5jIHwgMyAr
KysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nbGli
L2dkYXRlLmMgYi9nbGliL2dkYXRlLmMKK2luZGV4IDRhZWNlMDIuLmNkYzczNWMgMTAwNjQ0Cist
LS0gYS9nbGliL2dkYXRlLmMKKysrKyBiL2dsaWIvZ2RhdGUuYworQEAgLTI0OTQsNyArMjQ5NCwx
MCBAQCBnX2RhdGVfc3RyZnRpbWUgKGdjaGFyICAgICAgICpzLAorICAgICAgICAqIHJlY29nbml6
ZSB3aGV0aGVyIHN0cmZ0aW1lIGFjdHVhbGx5IGZhaWxlZCBvciBqdXN0IHJldHVybmVkICIiLgor
ICAgICAgICAqLworICAgICAgIHRtcGJ1ZlswXSA9ICdcMSc7CisrICAgICAgI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2Zvcm1hdC1ub25saXRlcmFsIgorICAgICAgIHRtcGxlbiA9IHN0cmZ0aW1lICh0bXBidWYsIHRt
cGJ1ZnNpemUsIGxvY2FsZV9mb3JtYXQsICZ0bSk7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBwb3AKKyAKKyAgICAgICBpZiAodG1wbGVuID09IDAgJiYgdG1wYnVmWzBdICE9ICdcMCcp
CisgICAgICAgICB7CistLSAKKzIuNy4wCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVz
L2dsaWItd2FybmluZy1maXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmct
Zml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZmFmNGQx
MWYyYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1m
aXgucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorRnJvbSA5ZjkwZWU1ZWVjY2Q0N2YzOWM3YTAzZGNk
Nzg2YjEyNWExOWMxOTVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFlbCBD
YXRhbnphcm8gPG1jYXRhbnphcm9AZ25vbWUub3JnPgorRGF0ZTogU2F0LCAxMyBKdW4gMjAxNSAy
Mjo1MjozMyAtMDUwMAorU3ViamVjdDogW1BBVENIXSBnZW5tYXJzaGFsOiBzaWxlbmNlIHJlZ2lz
dGVyIHN0b3JhZ2UgY2xhc3Mgd2FybmluZ3MKKworVXNpbmcgdGhlIHJlZ2lzdGVyIGtleXdvcmQg
dHJpZ2dlcnMgd2FybmluZ3Mgb24gbm90ZXdvcnRoeSBjb21waWxlcnMKKyhjbGFuZyksIHNpbmNl
IGl0J3MgZGVwcmVjYXRlZCBpbiBDKysgYW5kIGF0IGRhbmdlciBvZiBiZWluZyByZW1vdmVkCitm
cm9tIHRoZSBsYW5ndWFnZS4gVGhlcmUgaXMgbm8gcmVhc29uIHRvIHVzZSBpdCBzaW5jZSBpdCBp
c24ndCAxOTgwCithbnltb3JlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzUwOTE4CistLS0KKyBnb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jIHwgNiArKyst
LS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitk
aWZmIC0tZ2l0IGEvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYyBiL2dvYmplY3QvZ2xpYi1nZW5t
YXJzaGFsLmMKK2luZGV4IGJlNDE1MWEuLmNhNzhhNmYgMTAwNjQ0CistLS0gYS9nb2JqZWN0L2ds
aWItZ2VubWFyc2hhbC5jCisrKysgYi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitAQCAtNDEy
LDkgKzQxMiw5IEBAIGdlbmVyYXRlX21hcnNoYWwgKGNvbnN0IGdjaGFyICpzaWduYW1lLAorICAg
ICAgIGdfZnByaW50ZiAoZm91dCwgIiVzJXMgZGF0YTIpO1xuIiwgaW5kZW50IChpbmQpLCBwYWQg
KCJncG9pbnRlciIpKTsKKyAKKyAgICAgICAvKiBjZmlsZSBtYXJzaGFsIHZhcmlhYmxlcyAqLwor
LSAgICAgIGdfZnByaW50ZiAoZm91dCwgIiAgcmVnaXN0ZXIgR01hcnNoYWxGdW5jXyVzIGNhbGxi
YWNrO1xuIiwgc2lnbmFtZSk7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBH
Q0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4iKTsKKy0gICAgICBnX2Zwcmlu
dGYgKGZvdXQsICIgIHJlZ2lzdGVyIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIpOworKyAgICAg
IGdfZnByaW50ZiAoZm91dCwgIiAgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFt
ZSk7CisrICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3Vy
ZSopIGNsb3N1cmU7XG4iKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIGdwb2ludGVyIGRh
dGExLCBkYXRhMjtcbiIpOworICAgICAgIGlmIChzaWctPnJhcmctPnNldHRlcikKKyAJZ19mcHJp
bnRmIChmb3V0LCAiICAlcyB2X3JldHVybjtcbiIsIHNpZy0+cmFyZy0+Y3R5cGUpOworIAorLS0g
CisyLjQuMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL3dw
ZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4w
LnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0
LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjVkMTA2NGVkNWU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMv
Z3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKQEAg
LTAsMCArMSwyMzYgQEAKK0Zyb20gZTkzODkzMzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0
NDg2YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJl
ZGhhdC5jb20+CitEYXRlOiBXZWQsIDI2IE9jdCAyMDE2IDE0OjUxOjAxICswMjAwCitTdWJqZWN0
OiBbUEFUQ0hdIGR0bHM6IHBvcnQgdG8gT3BlblNTTCAxLjEuMAorCitDaGFuZ2VzIGFyZToKKwor
LSBVc2UgdGhlIHdyYXBwZXIgZnVuY3Rpb25zIHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4g
IFRvIHByZXNlcnZlCisgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBk
ZWZpbml0aW9ucworCistIFJlbW92ZSB0aGUgdXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wt
PmQxLT5zZW50X21lc3NhZ2VzKSIsIHNpbmNlCisgIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50CisK
Ky0gVXNlIFJTQV9nZW5lcmF0ZV9rZXlfZXggaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0Ff
Z2VuZXJhdGVfa2V5CisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NzM1NDAKKy0tLQorIGV4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysr
KysKKyBleHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlv
bnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2Vy
dGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCA5NWZiYjgz
Li5jMWM5NjAyIDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysr
KyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMTk5LDcgKzE5OSwyMiBAQCBp
bml0X2dlbmVyYXRlZCAoR3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKKyAgICAgcHJpdi0+cHJp
dmF0ZV9rZXkgPSBOVUxMOworICAgICByZXR1cm47CisgICB9CisrCisrICAvKiBYWFg6IFJTQV9n
ZW5lcmF0ZV9rZXkgaXMgYWN0dWFsbHkgZGVwcmVjYXRlZCBpbiAwLjkuOCAqLworKyNpZiBPUEVO
U1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9r
ZXkgKDIwNDgsIFJTQV9GNCwgTlVMTCwgTlVMTCk7CisrI2Vsc2UKKysgIHJzYSA9IFJTQV9uZXcg
KCk7CisrICBpZiAocnNhICE9IE5VTEwpIHsKKysgICAgQklHTlVNICplID0gQk5fbmV3ICgpOwor
KyAgICBpZiAoZSAhPSBOVUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCisrICAgICAgICAm
JiBSU0FfZ2VuZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisrICAgICAgUlNB
X2ZyZWUgKHJzYSk7CisrICAgICAgcnNhID0gTlVMTDsKKysgICAgfQorKyAgICBCTl9mcmVlIChl
KTsKKysgIH0KKysjZW5kaWYKKyAKKyAgIGlmICghcnNhKSB7CisgICAgIEdTVF9XQVJOSU5HX09C
SkVDVCAoc2VsZiwgImZhaWxlZCB0byBnZW5lcmF0ZSBSU0EiKTsKK2RpZmYgLS1naXQgYS9leHQv
ZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYwor
aW5kZXggMzZmNmQ2My4uNzI4ZjVhNyAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25u
ZWN0aW9uLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKK0BAIC00Miw2ICs0
Miw4IEBACisgI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3Ns
Lmg+CisgCisrI2luY2x1ZGUgPHN0cmluZy5oPgorKworIEdTVF9ERUJVR19DQVRFR09SWV9TVEFU
SUMgKGdzdF9kdGxzX2Nvbm5lY3Rpb25fZGVidWcpOworICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxU
IGdzdF9kdGxzX2Nvbm5lY3Rpb25fZGVidWcKKyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0
RHRsc0Nvbm5lY3Rpb24sIGdzdF9kdGxzX2Nvbm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCitAQCAt
MjE2LDYgKzIxOCwzOCBAQCBnc3RfZHRsc19jb25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICog
Z29iamVjdCkKKyAgIEdfT0JKRUNUX0NMQVNTIChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9j
bGFzcyktPmZpbmFsaXplIChnb2JqZWN0KTsKKyB9CisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9O
VU1CRVIgPCAweDEwMTAwMDAxTAorK3N0YXRpYyB2b2lkCisrQklPX3NldF9kYXRhIChCSU8gKiBi
aW8sIHZvaWQgKnB0cikKKyt7CisrICBiaW8tPnB0ciA9IHB0cjsKKyt9CisrCisrc3RhdGljIHZv
aWQgKgorK0JJT19nZXRfZGF0YSAoQklPICogYmlvKQorK3sKKysgIHJldHVybiBiaW8tPnB0cjsK
Kyt9CisrCisrc3RhdGljIHZvaWQKKytCSU9fc2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBz
aHV0ZG93bikKKyt7CisrICBiaW8tPnNodXRkb3duID0gc2h1dGRvd247CisrfQorKworK3N0YXRp
YyB2b2lkCisrQklPX3NldF9pbml0IChCSU8gKiBiaW8sIGludCBpbml0KQorK3sKKysgIGJpby0+
aW5pdCA9IGluaXQ7CisrfQorKworK3N0YXRpYyBYNTA5ICoKKytYNTA5X1NUT1JFX0NUWF9nZXQw
X2NlcnQgKFg1MDlfU1RPUkVfQ1RYICogY3R4KQorK3sKKysgIHJldHVybiBjdHgtPmNlcnQ7Cisr
fQorKyNlbmRpZgorKworIHN0YXRpYyB2b2lkCisgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJv
cGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgIGNvbnN0IEdWYWx1
ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogcHNwZWMpCitAQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9k
dGxzX2Nvbm5lY3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9w
X2lkLAorICAgICAgIHByaXYtPmJpbyA9IEJJT19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rp
b24gKCkpOworICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmJpbyk7CisgCistICAgICAg
cHJpdi0+YmlvLT5wdHIgPSBzZWxmOworKyAgICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBz
ZWxmKTsKKyAgICAgICBTU0xfc2V0X2JpbyAocHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJp
byk7CisgCisgICAgICAgU1NMX3NldF92ZXJpZnkgKHByaXYtPnNzbCwKK0BAIC01NzMsNiArNjA3
LDcgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICog
c3RyKQorICAgc3RhdGVzIHw9ICghICFTU0xfd2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7
CisgICBzdGF0ZXMgfD0gKCEgIVNTTF93YW50X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOworIAor
KyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIEdTVF9MT0dfT0JK
RUNUIChzZWxmLCAiJXM6IHJvbGU9JXMgYnVmPSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAorICAg
ICAgIHN0ciwKKyAgICAgICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAor
QEAgLTU4MSw2ICs2MTYsMTUgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYs
IGNvbnN0IGdjaGFyICogc3RyKQorICAgICAgIHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAorICAg
ICAgIHByaXYtPmJpb19idWZmZXJfbGVuLAorICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAo
cHJpdi0+c3NsKSwgU1NMX3N0YXRlX3N0cmluZ19sb25nIChwcml2LT5zc2wpKTsKKysjZWxzZQor
KyAgR1NUX0xPR19PQkpFQ1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwl
eCAlcyIsCisrICAgICAgc3RyLAorKyAgICAgIHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDog
InNlcnZlciIsCisrICAgICAgcHJpdi0+YmlvX2J1ZmZlciwKKysgICAgICBwcml2LT5iaW9fYnVm
ZmVyX29mZnNldCwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKysgICAgICBzdGF0ZXMs
IFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+
c3NsKSk7CisrI2VuZGlmCisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNzM3LDcgKzc4MSw3IEBA
IG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NU
WCAqIHg1MDlfY3R4KQorICAgc2VsZiA9IFNTTF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9u
X2V4X2luZGV4KTsKKyAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNU
SU9OIChzZWxmKSwgRkFMU0UpOworIAorLSAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4
NTA5X2N0eC0+Y2VydCk7CisrICBwZW0gPSBfZ3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RP
UkVfQ1RYX2dldDBfY2VydCAoeDUwOV9jdHgpKTsKKyAKKyAgIGlmICghcGVtKSB7CisgICAgIEdT
VF9XQVJOSU5HX09CSkVDVCAoc2VsZiwKK0BAIC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJp
ZnlfY2FsbGJhY2sgKGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgp
CisgICAgICAgZ2ludCBsZW47CisgCisgICAgICAgbGVuID0KKy0gICAgICAgICAgWDUwOV9OQU1F
X3ByaW50X2V4IChiaW8sIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAx
LAorKyAgICAgICAgICBYNTA5X05BTUVfcHJpbnRfZXggKGJpbywKKysgICAgICAgICAgWDUwOV9n
ZXRfc3ViamVjdF9uYW1lIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEs
CisgICAgICAgICAgIFhOX0ZMQUdfTVVMVElMSU5FKTsKKyAgICAgICBCSU9fcmVhZCAoYmlvLCBi
dWZmZXIsIGxlbik7CisgICAgICAgYnVmZmVyW2xlbl0gPSAnXDAnOworQEAgLTc3Nyw2ICs4MjIs
NyBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9S
RV9DVFggKiB4NTA5X2N0eCkKKyAgICAgIyMjIyMjIyMgICMjIyMgICMjIyMjIyMKKyAqLworIAor
KyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyBzdGF0aWMgQklPX01F
VEhPRCBjdXN0b21fYmlvX21ldGhvZHMgPSB7CisgICBCSU9fVFlQRV9CSU8sCisgICAic3RyZWFt
IiwKK0BAIC03OTUsMTEgKzg0MSwzNCBAQCBCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lk
KQorIHsKKyAgIHJldHVybiAmY3VzdG9tX2Jpb19tZXRob2RzOworIH0KKysjZWxzZQorK3N0YXRp
YyBCSU9fTUVUSE9EICpjdXN0b21fYmlvX21ldGhvZHM7CisrCisrc3RhdGljIEJJT19NRVRIT0Qg
KgorK0JJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKHZvaWQpCisreworKyAgaWYgKGN1c3RvbV9i
aW9fbWV0aG9kcyAhPSBOVUxMKQorKyAgICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworKwor
KyAgY3VzdG9tX2Jpb19tZXRob2RzID0gQklPX21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJl
YW0iKTsKKysgIGlmIChjdXN0b21fYmlvX21ldGhvZHMgPT0gTlVMTAorKyAgICAgIHx8ICFCSU9f
bWV0aF9zZXRfd3JpdGUgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKKysg
ICAgICB8fCAhQklPX21ldGhfc2V0X3JlYWQgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhv
ZF9yZWFkKQorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2Rz
LCBiaW9fbWV0aG9kX2N0cmwpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3Rv
bV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9uZXcpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9k
ZXN0cm95IChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfZnJlZSkpIHsKKysgICAgQklP
X21ldGhfZnJlZSAoY3VzdG9tX2Jpb19tZXRob2RzKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9
CisrCisrICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworK30KKysjZW5kaWYKKyAKKyBzdGF0
aWMgaW50CisgYmlvX21ldGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBp
bnQgc2l6ZSkKKyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5F
Q1RJT04gKGJpby0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNf
Q09OTkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAKKyAgIEdTVF9MT0dfT0JKRUNUIChz
ZWxmLCAiQklPOiB3cml0aW5nICVkIiwgc2l6ZSk7CisgCitAQCAtODI0LDcgKzg5Myw3IEBAIGJp
b19tZXRob2Rfd3JpdGUgKEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisg
c3RhdGljIGludAorIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVy
LCBpbnQgc2l6ZSkKKyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NP
Tk5FQ1RJT04gKGJpby0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RU
TFNfQ09OTkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAgIEdzdER0bHNDb25uZWN0aW9u
UHJpdmF0ZSAqcHJpdiA9IHNlbGYtPnByaXY7CisgICBndWludCBpbnRlcm5hbF9zaXplOworICAg
Z2ludCBjb3B5X3NpemU7CitAQCAtODY4LDcgKzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklP
ICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyBzdGF0aWMgbG9uZworIGJpb19t
ZXRob2RfY3RybCAoQklPICogYmlvLCBpbnQgY21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCisg
eworLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8t
PnB0cik7CisrICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04g
KEJJT19nZXRfZGF0YSAoYmlvKSk7CisgICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYg
PSBzZWxmLT5wcml2OworIAorICAgc3dpdGNoIChjbWQpIHsKK0BAIC05MTYsOCArOTg1LDggQEAg
YmlvX21ldGhvZF9uZXcgKEJJTyAqIGJpbykKKyB7CisgICBHU1RfTE9HX09CSkVDVCAoTlVMTCwg
IkJJTzogbmV3Iik7CisgCistICBiaW8tPnNodXRkb3duID0gMDsKKy0gIGJpby0+aW5pdCA9IDE7
CisrICBCSU9fc2V0X3NodXRkb3duIChiaW8sIDApOworKyAgQklPX3NldF9pbml0IChiaW8sIDEp
OworIAorICAgcmV0dXJuIDE7CisgfQorQEAgLTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2Zy
ZWUgKEJJTyAqIGJpbykKKyAgICAgcmV0dXJuIDA7CisgICB9CisgCistICBHU1RfTE9HX09CSkVD
VCAoR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpLCAiQklPIGZyZWUiKTsKKysgIEdTVF9M
T0dfT0JKRUNUIChHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklP
IGZyZWUiKTsKKyAgIHJldHVybiAwOworIH0KKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rv
b2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgt
ZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hl
cy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5n
LWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5jNjY4NzczNzBjNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVz
L2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmct
aW4tUlNBX2dlbmVyYXRlX2sucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSAzYTA2OTE5M2Uy
NTM2NGViZGFjYWM4NmY0YjAzMDIyYzE1MWVhMjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor
RnJvbTogPT9VVEYtOD9xP1NlYmFzdGlhbj0yMERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNlbnRy
aWN1bGFyLmNvbT4KK0RhdGU6IE1vbiwgMTQgTm92IDIwMTYgMTE6MzI6MTcgKzAyMDAKK1N1Ympl
Y3Q6IFtQQVRDSF0gZHRsc2NlcnRpZmljYXRlOiBGaXggZXJyb3IgY2hlY2tpbmcgaW4gUlNBX2dl
bmVyYXRlX2tleV9leCgpCisgdXNhZ2UKKworV2FzIGJyb2tlbiBkdXJpbmcgdGhlIHBvcnQgZm9y
IE9wZW5TU0wgMS4xLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzc0MzI4CistLS0KKyBleHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyB8IDcgKysrKy0t
LQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2Rp
ZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0
bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCBjMWM5NjAyLi5jMmQ5YmIyIDEwMDY0NAorLS0tIGEvZXh0
L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZp
Y2F0ZS5jCitAQCAtMjA3LDEyICsyMDcsMTMgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0
aWZpY2F0ZSAqIHNlbGYpCisgICByc2EgPSBSU0FfbmV3ICgpOworICAgaWYgKHJzYSAhPSBOVUxM
KSB7CisgICAgIEJJR05VTSAqZSA9IEJOX25ldyAoKTsKKy0gICAgaWYgKGUgIT0gTlVMTCAmJiBC
Tl9zZXRfd29yZCAoZSwgUlNBX0Y0KQorLSAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAo
cnNhLCAyMDQ4LCBlLCBOVUxMKSkgeworKyAgICBpZiAoZSA9PSBOVUxMIHx8ICFCTl9zZXRfd29y
ZCAoZSwgUlNBX0Y0KQorKyAgICAgICAgfHwgIVJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0
OCwgZSwgTlVMTCkpIHsKKyAgICAgICBSU0FfZnJlZSAocnNhKTsKKyAgICAgICByc2EgPSBOVUxM
OworICAgICB9CistICAgIEJOX2ZyZWUgKGUpOworKyAgICBpZiAoZSkKKysgICAgICBCTl9mcmVl
IChlKTsKKyAgIH0KKyAjZW5kaWYKKyAKKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xz
L3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVh
bXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29m
LWZvci1mci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2E2
MGRiNDc3MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lu
cy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3It
ZnIucGF0Y2gKQEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJi
ZmE0NTZmMWVkNGU1ZGI0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhhYmllciBS
b2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorRGF0ZTogVGh1LCA3IEFwciAy
MDE2IDEzOjU3OjE2ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhw
b3NlIHN0cmVhbXMgd2l0aCBmaXJzdCBtb29mIGZvcgorIGZyYWdtZW50ZWQgZm9ybWF0IgorCitU
aGlzIHJldmVydHMgY29tbWl0IGQ4YmI2Njg3ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2
YWQuCistLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8
ICAxIC0KKyAyIGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygt
KQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVt
dXguYworaW5kZXggMzliZTE2My4uOTYzNmI0YiAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRk
ZW11eC5jCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTYwOSw3ICs2MDksNiBAQCBn
c3RfcXRkZW11eF9pbml0IChHc3RRVERlbXV4ICogcXRkZW11eCkKKyAgIHF0ZGVtdXgtPnN0YXRl
ID0gUVRERU1VWF9TVEFURV9JTklUSUFMOworICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7
CisgICBxdGRlbXV4LT5wb3N0ZWRfcmVkaXJlY3QgPSBGQUxTRTsKKy0gIHF0ZGVtdXgtPnBlbmRp
bmdfY29uZmlndXJlID0gRkFMU0U7CisgICBxdGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OworICAg
cXRkZW11eC0+dG9kcm9wID0gMDsKKyAgIHF0ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9u
ZXcgKCk7CitAQCAtMjA0OSw3ICsyMDQ4LDYgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVt
dXggKiBxdGRlbXV4LCBnYm9vbGVhbiBoYXJkKQorICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRk
ZW11eC0+bWVkaWFfY2FwcywgTlVMTCk7CisgICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7Cisg
ICAgIHF0ZGVtdXgtPmdvdF9tb292ID0gRkFMU0U7CistICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29u
ZmlndXJlID0gRkFMU0U7CisgICB9IGVsc2UgaWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7CisgICAg
IGdzdF9mbG93X2NvbWJpbmVyX3Jlc2V0IChxdGRlbXV4LT5mbG93Y29tYmluZXIpOworICAgICBm
b3IgKG4gPSAwOyBuIDwgcXRkZW11eC0+bl9zdHJlYW1zOyBuKyspCitAQCAtNjEwNCw3ICs2MTAy
LDYgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdi
b29sZWFuIGZvcmNlKQorICAgICAgICAgICAgICZmb3VyY2MpOworICAgICAgICAgaWYgKGZvdXJj
YyA9PSBGT1VSQ0NfbW9vdikgeworICAgICAgICAgICBnaW50IG47CistICAgICAgICAgIGdib29s
ZWFuIGdvdF9zYW1wbGVzID0gRkFMU0U7CisgCisgICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdt
ZW50ZWQgc2V0dXAgd2UgY291bGQgdHJ5IHRvIHNjYW4gZm9yIG1vcmUKKyAgICAgICAgICAgICog
YW5kIGVuZCB1cCBhdCB0aGUgdGhlIG1vb3YgKGFmdGVyIG1kYXQpIGFnYWluICovCitAQCAtNjEz
NiwyNyArNjEzMywxOSBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXgg
KiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAg
KGRlbXV4LCBkZW11eC0+bW9vdl9ub2RlKTsKKyAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3Ry
ZWUgKGRlbXV4KTsKKyAgICAgICAgICAgICBxdGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgp
OworKyAgICAgICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KQorKyAgICAgICAgICAgICAgcXRk
ZW11eF9leHBvc2Vfc3RyZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAgIGVsc2UgeworIAorLSAg
ICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAg
ICAgICAgICAgIFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAg
ICAgICAgICAgICAgZ290X3NhbXBsZXMgfD0gc3RyZWFtLT5zdGJsX2luZGV4ID49IDA7CistICAg
ICAgICAgICAgfQorLSAgICAgICAgICAgIGlmICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3Nh
bXBsZXMpIHsKKy0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KSB7CistICAgICAg
ICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKy0gICAgICAgICAgICAg
IH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJl
YW1zOyBuKyspIHsKKy0gICAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBk
ZW11eC0+c3RyZWFtc1tuXTsKKy0gICAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1
cmVfc3RyZWFtIChkZW11eCwgc3RyZWFtKTsKKy0gICAgICAgICAgICAgICAgfQorKyAgICAgICAg
ICAgICAgZm9yIChuID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworKyAgICAgICAg
ICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKysKKysg
ICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVh
bSk7CisgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19z
ZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRp
bmdfY29uZmlndXJlID0gRkFMU0U7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAg
ICAgIGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IFRSVUU7CisgICAgICAgICAgICAgfQorIAor
ICAgICAgICAgICAgIGRlbXV4LT5nb3RfbW9vdiA9IFRSVUU7CisrICAgICAgICAgICAgZ3N0X3F0
ZGVtdXhfY2hlY2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKKyAKKyAgICAgICAgICAg
ICAvKiBmcmFnbWVudGVkIHN0cmVhbXMgaGVhZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0
b21zICovCisgICAgICAgICAgICAgaWYgKCFkZW11eC0+ZnJhZ21lbnRlZCkgeworQEAgLTYxNzUs
NyArNjE2NCw2IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRl
bXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAgICAgICAgICAgICBndWludDY0IGRpc3QgPSAwOworICAg
ICAgICAgICAgIEdzdENsb2NrVGltZSBwcmV2X3B0czsKKyAgICAgICAgICAgICBndWludDY0IHBy
ZXZfb2Zmc2V0OworLSAgICAgICAgICAgIGdpbnQgbjsKKyAKKyAgICAgICAgICAgICBHU1RfREVC
VUdfT0JKRUNUIChkZW11eCwgIlBhcnNpbmcgW21vb2ZdIik7CisgCitAQCAtNjIwOSwyNSArNjE5
NywxNSBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwg
Z2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKyAg
ICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgLyog
aW4gTVNTIHdlIG5lZWQgdG8gZXhwb3NlIHRoZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFz
IHdlIHdvbid0IGdldCBhIG1vb3YgCistICAgICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBm
b3JtYXQgbmVlZCB0byBiZSBleHBvc2VkIGlmIGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBk
YXRhICovCistICAgICAgICAgICAgaWYgKGRlbXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGlu
Z19jb25maWd1cmUpIHsKKy0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKKy0g
ICAgICAgICAgICAgICAgaWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CistICAgICAg
ICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OworLSAgICAgICAgICAgICAgICAgIGdzdF9z
ZWdtZW50X2luaXQgKCZzZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworLSAgICAgICAgICAgICAg
ICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOwor
LSAgICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRf
bmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg
ICAgICBxdGRlbXV4X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7CistICAgICAgICAgICAgICB9IGVs
c2UgeworLSAgICAgICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsg
bisrKSB7CistICAgICAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgt
PnN0cmVhbXNbbl07CistICAgICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0
cmVhbSAoZGVtdXgsIHN0cmVhbSk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAv
KiBpbiBNU1Mgd2UgbmVlZCB0byBleHBvc2UgdGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2Yg
YXMgd2Ugd29uJ3QgZ2V0IGEgbW9vdiAqLworKyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21v
ZGUgJiYgIWRlbXV4LT5leHBvc2VkKSB7CisrICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5k
aW5nX25ld3NlZ21lbnQpIHsKKysgICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50Owor
KyAgICAgICAgICAgICAgICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9U
SU1FKTsKKysgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVu
ZGluZ19uZXdzZWdtZW50Iik7CisrICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3Nl
Z21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKyAgICAgICAgICAgICAg
IH0KKy0gICAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50
IChkZW11eCk7CistICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxT
RTsKKysgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKyAgICAg
ICAgICAgICB9CisgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgR1NUX0RFQlVHX09C
SkVDVCAoZGVtdXgsICJEaXNjYXJkaW5nIFttb29mXSIpOworZGlmZiAtLWdpdCBhL2dzdC9pc29t
cDQvcXRkZW11eC5oIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK2luZGV4IDYwNjEyMTUuLmVjZjBj
NjMgMTAwNjQ0CistLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9x
dGRlbXV4LmgKK0BAIC04OSw3ICs4OSw2IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBnYm9v
bGVhbiBwb3N0ZWRfcmVkaXJlY3Q7CisgCisgICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLwor
LSAgZ2Jvb2xlYW4gcGVuZGluZ19jb25maWd1cmU7CisgICBndWludCBuZWVkZWRieXRlczsKKyAg
IGd1aW50IHRvZHJvcDsKKyAgIEdzdEFkYXB0ZXIgKmFkYXB0ZXI7CistLSAKKzIuOC4wLnJjMwor
CmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUt
dGZkdC1kZWNvZGUtdGltZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xZTlkZDk3Zjc5MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dw
ZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNo
CkBAIC0wLDAgKzEsMTQ2IEBACitGcm9tIDQ2ZDNlMGZhYTkyMjY0MzA5NGE1ZTQ2YTMyZTRmODJm
Nzc0YWU3NzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/RW5yaXF1
ZT0yME9jYT1DMz1CMWE9MjBHb256PUMzPUExbGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KK0Rh
dGU6IFR1ZSwgMTAgTm92IDIwMTUgMTM6MDk6MDAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNl
IHRoZSB0ZmR0IGRlY29kZSB0aW1lIHdoZW4gaXQncyBzaWduaWZpY2FudGx5IGRpZmZlcmVudAor
IHRoYW4gdGhlIHRpbWUgaW4gdGhlIGxhc3Qgc2FtcGxlIGlmIGFsd2F5cy1ob25vci10ZmR0IGlz
IGVuYWJsZWQKKworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1
NDIzMAorLS0tCisgZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCA3MiArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgZ3N0L2lzb21wNC9xdGRlbXV4Lmgg
fCAgMSArCisgMiBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQg
YS9nc3QvaXNvbXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA4ODA1
OTVlLi5kOGI1NGYwIDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dz
dC9pc29tcDQvcXRkZW11eC5jCitAQCAtNTM1LDYgKzUzNSwxMSBAQCBzdGF0aWMgdm9pZCBnc3Rf
cXRkZW11eF9hcHBlbmRfcHJvdGVjdGlvbl9zeXN0ZW1faWQgKEdzdFFURGVtdXggKiBxdGRlbXV4
LAorICAgICBjb25zdCBnY2hhciAqIGlkKTsKKyBzdGF0aWMgdm9pZCBxdGRlbXV4X2dzdF9zdHJ1
Y3R1cmVfZnJlZSAoR3N0U3RydWN0dXJlICogZ3N0c3RydWN0dXJlKTsKKyAKKytzdGF0aWMgdm9p
ZCBnc3RfcXRkZW11eF9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3Bf
aWQsCisrICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Cisrc3Rh
dGljIHZvaWQgZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWlu
dCBwcm9wX2lkLAorKyAgICBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworKwor
IHN0YXRpYyB2b2lkCisgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICog
a2xhc3MpCisgeworQEAgLTU0Niw4ICs1NTEsMjEgQEAgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAo
R3N0UVREZW11eENsYXNzICoga2xhc3MpCisgCisgICBwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xh
c3NfcGVla19wYXJlbnQgKGtsYXNzKTsKKyAKKysgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0
eSA9IGdzdF9xdGRlbXV4X3NldF9wcm9wZXJ0eTsKKysgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9w
ZXJ0eSA9IGdzdF9xdGRlbXV4X2dldF9wcm9wZXJ0eTsKKysKKyAgIGdvYmplY3RfY2xhc3MtPmRp
c3Bvc2UgPSBnc3RfcXRkZW11eF9kaXNwb3NlOworIAorKyAvKioKKysgICAqIEdzdFF0RGVtdXg6
OmFsd2F5cy1ob25vci10ZmR0OgorKyAgICoKKysgICAqIFJlcXVlc3RzIHRoZSBkZW11eGVyIHRv
IHJlc3BlY3Qgd2hhdCB0aGUgVEZEVCBhdG9tIHNheXMgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVz
ZW50YXRpb24gdGltZXN0YW1wcy4gRGVmYXVsdHMgdG8gRkFMU0UuCisrICAgKi8KKysgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdvYmplY3RfY2xhc3MsIFBST1BfQUxXQVlTX0hP
Tk9SX1RGRFQsCisrICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4gKCJhbHdheXMtaG9ub3ItdGZk
dCIsICJBbHdheXMgaG9ub3IgVEZEVCIsCisrICAgICAgICAgICJXaGVuIGVuYWJsZWQsIFRGRFQg
YXRvbSB3aWxsIGFsd2F5cyBiZSByZXNwZWN0ZWQgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50
YXRpb24gdGltZXN0YW1wcyIsCisrICAgICAgICAgIEZBTFNFLCBHX1BBUkFNX1JFQURXUklURSB8
IEdfUEFSQU1fU1RBVElDX1NUUklOR1MpKTsKKysKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmNoYW5n
ZV9zdGF0ZSA9IEdTVF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpOwor
ICNpZiAwCisgICBnc3RlbGVtZW50X2NsYXNzLT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BU
UiAoZ3N0X3F0ZGVtdXhfc2V0X2luZGV4KTsKK0BAIC02MTEsNiArNjI5LDcgQEAgZ3N0X3F0ZGVt
dXhfaW5pdCAoR3N0UVREZW11eCAqIHF0ZGVtdXgpCisgICBxdGRlbXV4LT5jZW5jX2F1eF9pbmZv
X3NpemVzID0gTlVMTDsKKyAgIHF0ZGVtdXgtPmNlbmNfYXV4X3NhbXBsZV9jb3VudCA9IDA7Cisg
ICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMgPSBOVUxMOworKyAgcXRkZW11eC0+YWx3
YXlzX2hvbm9yX3RmZHQgPSBGQUxTRTsKKyAgIGdfcXVldWVfaW5pdCAoJnF0ZGVtdXgtPnByb3Rl
Y3Rpb25fZXZlbnRfcXVldWUpOworICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNlZ21l
bnQsIEdTVF9GT1JNQVRfVElNRSk7CisgICBxdGRlbXV4LT5mbG93Y29tYmluZXIgPSBnc3RfZmxv
d19jb21iaW5lcl9uZXcgKCk7CitAQCAtNjM5LDYgKzY1OCw0MiBAQCBnc3RfcXRkZW11eF9kaXNw
b3NlIChHT2JqZWN0ICogb2JqZWN0KQorIH0KKyAKKyBzdGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4
X3NldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgY29u
c3QgR1ZhbHVlICogdmFsdWUsIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4
ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQp
IHsKKysgICAgY2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1Rf
TE9DSyAocXRkZW11eCk7CisrICAgICAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBnX3Zh
bHVlX2dldF9ib29sZWFuICh2YWx1ZSk7CisrICAgICAgR1NUX09CSkVDVF9VTkxPQ0sgKHF0ZGVt
dXgpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5f
SU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJl
YWs7CisrICB9CisrfQorKworK3N0YXRpYyB2b2lkCisrZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5
IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUgKiB2YWx1ZSwKKysgICAg
R1BhcmFtU3BlYyAqIHBzcGVjKQorK3sKKysgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRE
RU1VWCAob2JqZWN0KTsKKysKKysgIHN3aXRjaCAocHJvcF9pZCkgeworKyAgICBjYXNlIFBST1Bf
QUxXQVlTX0hPTk9SX1RGRFQ6CisrICAgICAgR1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsKKysg
ICAgICBnX3ZhbHVlX3NldF9ib29sZWFuICh2YWx1ZSwgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3Rm
ZHQpOworKyAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsK
KysgICAgZGVmYXVsdDoKKysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQg
KG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytz
dGF0aWMgdm9pZAorIGdzdF9xdGRlbXV4X3Bvc3Rfbm9fcGxheWFibGVfc3RyZWFtX2Vycm9yIChH
c3RRVERlbXV4ICogcXRkZW11eCkKKyB7CisgICBpZiAocXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0
KSB7CitAQCAtMjk5NSw2ICszMDUwLDE2IEBAIHF0ZGVtdXhfcGFyc2VfdHJ1biAoR3N0UVREZW11
eCAqIHF0ZGVtdXgsIEdzdEJ5dGVSZWFkZXIgKiB0cnVuLAorICAgICAgICAgICBzdHJlYW0tPnNh
bXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS50aW1lc3RhbXAgKworICAgICAgICAgICBzdHJl
YW0tPnNhbXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbjsKKyAKKysgICAgICAv
KiBJZiB3ZSdyZSBhbHdheXMgaG9ub3JpbmcgVEZEVCBhbmQgdGhlcmUncyBhIHNpZ25pZmljYXRp
dmUgZGlmZmVyZW5jZQorKyAgICAgICAqIGJldHdlZW4gdGhlIGRlY29kZV90cyBhbmQgdGhlIHRp
bWVzdGFtcCwgcHJlZmVyIGRlY29kZV90cyAqLworKyAgICAgIGlmIChxdGRlbXV4LT5hbHdheXNf
aG9ub3JfdGZkdCA9PSBUUlVFCisrICAgICAgICAgICYmIGFicyAoZGVjb2RlX3RzIC0gdGltZXN0
YW1wKSA+CisrICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFd
LmR1cmF0aW9uKSB7CisrICAgICAgICBHU1RfSU5GT19PQkpFQ1QgKHF0ZGVtdXgsCisrICAgICAg
ICAgICAgImRlY29kZV90cyBpcyBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIHRpbWVzdGFt
cCwgdXNpbmcgZGVjb2RlX3RzIik7CisrICAgICAgICB0aW1lc3RhbXAgPSBkZWNvZGVfdHM7Cisr
ICAgICAgfQorKworICAgICAgIGdzdF90cyA9IFFUU1RSRUFNVElNRV9UT19HU1RUSU1FIChzdHJl
YW0sIHRpbWVzdGFtcCk7CisgICAgICAgR1NUX0lORk9fT0JKRUNUIChxdGRlbXV4LCAiZmlyc3Qg
c2FtcGxlIHRzICUiIEdTVF9USU1FX0ZPUk1BVAorICAgICAgICAgICAiIChleHRlbmRzIHByZXZp
b3VzIHNhbXBsZXMpIiwgR1NUX1RJTUVfQVJHUyAoZ3N0X3RzKSk7CitkaWZmIC0tZ2l0IGEvZ3N0
L2lzb21wNC9xdGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAoraW5kZXggNTNiZDA3MS4u
ZWNmMGM2MyAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5oCisrKysgYi9nc3QvaXNv
bXA0L3F0ZGVtdXguaAorQEAgLTE1NCwxMiArMTU0LDIwIEBAIHN0cnVjdCBfR3N0UVREZW11eCB7
CisgICBndWludDggKmNlbmNfYXV4X2luZm9fc2l6ZXM7CisgICBndWludDMyIGNlbmNfYXV4X3Nh
bXBsZV9jb3VudDsKKyAKKysgIGdib29sZWFuIGFsd2F5c19ob25vcl90ZmR0OworIH07CisgCisg
c3RydWN0IF9Hc3RRVERlbXV4Q2xhc3MgeworICAgR3N0RWxlbWVudENsYXNzIHBhcmVudF9jbGFz
czsKKyB9OworIAorKy8qIHByb3BzICovCisrZW51bQorK3sKKysgIFBST1BfMCwKKysgIFBST1Bf
QUxXQVlTX0hPTk9SX1RGRFQKKyt9OworKworIEdUeXBlIGdzdF9xdGRlbXV4X2dldF90eXBlICh2
b2lkKTsKKyAKKyBHX0VORF9ERUNMUworLS0gCisyLjYuMQorCmRpZmYgLS1naXQgYS9Ub29scy93
cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3du
c3RyZWFtLWlmLXRoZS0ucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZp
bmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2gKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0NDZiZDU0NGMzCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1h
LUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zy
b20gNWU0M2VlNTk4OWQ3YjUxZGNiMzE0NWJkOTk3NTI1MjQ3YTNkNjJkYyBNb24gU2VwIDE3IDAw
OjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNl
YmFzdGlhbkBjZW50cmljdWxhci5jb20+CitEYXRlOiBXZWQsIDExIE1heSAyMDE2IDE1OjA2OjM5
ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIHR5cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50
IGRvd25zdHJlYW0gaWYgdGhlIHNpbmtwYWQgaXMKKyBub3QgaW4gUFVMTCBtb2RlCisKK1RoZSBv
dGhlciBzaWduYWwgaGFuZGxlcnMgb2YgdGhlIHR5cGUtZm91bmQgc2lnbmFsIG1pZ2h0IGhhdmUg
cmVhY3RpdmF0ZWQKK3R5cGVmaW5kIGluIFBVTEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQ
UyBldmVudCBhdCB0aGF0IHBvaW50IHdvdWxkIGNhdXNlCitkZWFkbG9ja3MgYW5kIGlzIGluIGdl
bmVyYWwgdW5leHBlY3RlZCBieSBlbGVtZW50cyB0aGF0IGFyZSBpbiBQVUxMIG1vZGUuCisKK2h0
dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDYKKy0tLQorIHBs
dWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hh
bmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL2VsZW1lbnRzL2dz
dHR5cGVmaW5kZWxlbWVudC5jIGIvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQu
YworaW5kZXggYzY4NjQxMi4uNDUzZmY3NSAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvZWxlbWVudHMv
Z3N0dHlwZWZpbmRlbGVtZW50LmMKKysrKyBiL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRl
bGVtZW50LmMKK0BAIC0xNzksNiArMTc5LDEwIEBAIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZl
X3R5cGUgKEdzdFR5cGVGaW5kRWxlbWVudCAqIHR5cGVmaW5kLAorICAgR1NUX0lORk9fT0JKRUNU
ICh0eXBlZmluZCwgImZvdW5kIGNhcHMgJSIgR1NUX1BUUl9GT1JNQVQgIiwgcHJvYmFiaWxpdHk9
JXUiLAorICAgICAgIGNhcHMsIHByb2JhYmlsaXR5KTsKKyAKKysgIC8qIERvIG5vdGhpbmcgaWYg
ZG93bnN0cmVhbSBpcyBwdWxsaW5nIGZyb20gdXMgKi8KKysgIGlmIChHU1RfUEFEX01PREUgKHR5
cGVmaW5kLT5zcmMpID09IEdTVF9QQURfTU9ERV9QVUxMKQorKyAgICByZXR1cm47CisrCisgICBH
U1RfT0JKRUNUX0xPQ0sgKHR5cGVmaW5kKTsKKyAKKyAgIC8qIE5vdyBhY3R1YWxseSBzZW5kIHRo
ZSBDQVBTIGV2ZW50IGRvd25zdHJlYW0uCistLSAKKzIuOC4xCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308590</attachid>
            <date>2017-04-28 13:30:16 -0700</date>
            <delta_ts>2017-05-04 02:32:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>502834</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDJhNGQxZGI4YWJiLi4wYzM1ZDY2MGI1YyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA0LTI4ICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdlYmtpdC1kZXYg
dGhyZWFkOgorICAgICAgICBodHRwczovL2xpc3RzLndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtp
dC1kZXYvMjAxNy1BcHJpbC8wMjg5MjMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IEFkZCB0aGUgV1BFIHBvcnQgaWRlbnRpZmllci4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvRmlu
ZExpYkdCTS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNr
ZW5kLW1lc2EuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kV1BFQmFj
a2VuZC5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21h
a2U6IEFkZGVkLgorCiAyMDE3LTA0LTI1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ29jb2FdW1dpbl0gRW5hYmxlIG9mIFgtQ29udGVudC1UeXBlLU9wdGlv
bnM6IG5vc25pZmYgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2NjFjNDlkYWVh
Yy4uYjcwMWI5MmQ3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDE3LTA0LTI4ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAg
ICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAq
IHNoZWxsL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKwogMjAxNy0wNC0yOCAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IGluc3RydW1lbnRhdGlvbiBm
cm9tIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAwODYgdGhhdCBp
cyBubyBsb25nZXIgbmVlZGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYTg0YTA1ZDQwZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtMCwwICsxLDIzIEBACitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQorbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtXVEZfRElSfQor
KQorCitzZXQoV1BFX0lOU1RBTExFRF9KQVZBU0NSSVBUQ09SRV9IRUFERVJTCisgICAgQVBJL0pT
QmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisgICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAg
ICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5cGVkQXJyYXkuaAorICAgIEFQSS9KU1Zh
bHVlUmVmLmgKKyAgICBBUEkvSmF2YVNjcmlwdC5oCisgICAgQVBJL1dlYktpdEF2YWlsYWJpbGl0
eS5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hF
QURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUt
JHtXUEVfQVBJX1ZFUlNJT059L1dQRS9KYXZhU2NyaXB0Q29yZSIKKyAgICBDT01QT05FTlQgIkRl
dmVsb3BtZW50IgorKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BF
LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjMxODNhMmIw
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3QoQVBQRU5EIEpTQ19MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCmluZGV4IDZh
NGMxODBmYWFjLi41ZjU4NjA1Yzg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDE3LTA0LTI4ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0u
aDoKKyAgICAgICAgQWxsb3cgYnVpbGRpbmcgV1BFIG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHBy
b3ZpZGUgWDExIGxpYnJhcmllcy4KKwogMjAxNy0wNC0yMCAgS29uc3RhbnRpbiBUb2thcmV2ICA8
YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgW2NtYWtlXSBEZWZpbmUgRk9SV0FSRElOR19I
RUFERVJTX0RJUiBpbiBXZWJLaXRGUyBhbmQgdXNlIGl0IGV2ZXJ5d2hlcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCmluZGV4IDk5OWY2
ZTI4YjJjLi45YmI3NTkxMGFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
aW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9p
bmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCkBAIC05OSw3ICs5OSw3IEBAIHR5cGVkZWYgc3RydWN0
IEFOYXRpdmVXaW5kb3cqICAgICAgICAgICBFR0xOYXRpdmVXaW5kb3dUeXBlOwogdHlwZWRlZiBz
dHJ1Y3QgZWdsX25hdGl2ZV9waXhtYXBfdCogICAgIEVHTE5hdGl2ZVBpeG1hcFR5cGU7CiB0eXBl
ZGVmIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdMTmF0aXZlRGlzcGxheVR5cGU7
CiAKLSNlbGlmIGRlZmluZWQoVVNFX09aT05FKQorI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpIHx8
IGRlZmluZWQoVVNFX1dQRSkKIAogdHlwZWRlZiBpbnRwdHJfdCBFR0xOYXRpdmVEaXNwbGF5VHlw
ZTsKIHR5cGVkZWYgaW50cHRyX3QgRUdMTmF0aXZlV2luZG93VHlwZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZjc3ZDQxZTkw
NDIuLmM0M2QxMzhhNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA0LTI4ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BF
IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4K
KyAgICAgICAgKiB3dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaDoKKwogMjAxNy0wNC0y
NyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
TW92ZSBVVUlEIGZyb20gV2ViQ29yZS9wbGF0Zm9ybSB0byBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDAy
ZWNmNDE3MTQ4Li40ZTYxMDEyNmI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC00NjEsNiArNDYxLDggQEAK
IC8qIFBMQVRGT1JNKFdJTikgKi8KICNpZiBkZWZpbmVkKEJVSUxESU5HX0dUS19fKQogI2RlZmlu
ZSBXVEZfUExBVEZPUk1fR1RLIDEKKyNlbGlmIGRlZmluZWQoQlVJTERJTkdfV1BFX18pCisjZGVm
aW5lIFdURl9QTEFURk9STV9XUEUgMQogI2VsaWYgZGVmaW5lZChCVUlMRElOR19KU0NPTkxZX18p
CiAvKiBKU0NPbmx5IGRvZXMgbm90IHByb3ZpZGUgUExBVEZPUk0oKSBtYWNybyAqLwogI2VsaWYg
T1MoTUFDX09TX1gpCkBAIC01MDUsNyArNTA3LDcgQEAKICNkZWZpbmUgVVNFX0NBIDEKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KQogI2RlZmluZSBVU0VfQ0FJUk8gMQogI2RlZmluZSBVU0VfR0xJQiAxCiAjZGVmaW5lIFVTRV9G
UkVFVFlQRSAxCkBAIC02MjEsNyArNjIzLDcgQEAKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoSEFW
RV9BQ0NFU1NJQklMSVRZKQotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lOKSB8fCBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgSEFWRV9BQ0NFU1NJQklMSVRZ
IDEKICNlbmRpZgogI2VuZGlmIC8qICFkZWZpbmVkKEhBVkVfQUNDRVNTSUJJTElUWSkgKi8KQEAg
LTc3MSw3ICs3NzMsNyBAQAogI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCiAjZW5kaWYKIC8qIEVu
YWJsZSB0aGUgREZHIEpJVCBvbiBBUk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUyBhbmQgUXQvR1RL
KyBMaW51eC4gKi8KLSNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKEdUSykpCisjaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUo
QVJNNjQpKSAmJiAoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkpCiAjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcg
SklUIG9uIEFSTSBhbmQgTUlQUy4gKi8KQEAgLTk1OCw3ICs5NjAsNyBAQAogCiAvKiBDU1MgU2Vs
ZWN0b3IgSklUIENvbXBpbGVyICovCiAjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19TRUxFQ1RPUl9K
SVQpCi0jaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAm
JiBQTEFURk9STShJT1MpKSkgJiYgRU5BQkxFKEpJVCkgJiYgKE9TKERBUldJTikgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVN
QjIpICYmIFBMQVRGT1JNKElPUykpKSAmJiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiAjZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNU
T1JfSklUIDEKICNlbHNlCiAjZGVmaW5lIEVOQUJMRV9DU1NfU0VMRUNUT1JfSklUIDAKQEAgLTEw
MjUsNyArMTAyNyw3IEBACiAjZGVmaW5lIFVTRV9FWFBPUlRfTUFDUk9TX0ZPUl9URVNUSU5HIDEK
ICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfVU5JWF9ET01BSU5fU09DS0VUUyAxCiAjZW5kaWYKIApAQCAt
MTA3NSwxMSArMTA3NywxMSBAQAogI2RlZmluZSBVU0VfVklERU9UT09MQk9YIDEKICNlbmRpZgog
Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JNKFdJTikg
JiYgIVVTRShXSU5HREkpKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkgfHwgKFBMQVRGT1JNKFdJTikgJiYgIVVTRShXSU5HREkpKQogI2RlZmlu
ZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgVVNFX1JFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FX0RJU1BMQVlfTU9OSVRPUiAxCiAjZW5kaWYKIApAQCAtMTE0Miw3ICsxMTQ0LDcgQEAK
ICNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX1VTQUdFIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
R1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogI3VuZGVmIEVOQUJMRV9P
UEVOVFlQRV9WRVJUSUNBTAogI2RlZmluZSBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwgMQogI2Rl
ZmluZSBFTkFCTEVfQ1NTM19URVhUX0RFQ09SQVRJT05fU0tJUF9JTksgMQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGI4MzFl
ZWUwM2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5jbWFr
ZQpAQCAtMCwwICsxLDI4IEBACitsaXN0KEFQUEVORCBXVEZfU09VUkNFUworICAgIFBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlc1VuaXguY3BwCisgICAgVW5pU3RkRXh0cmFzLmNwcAorCisg
ICAgZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcAorCisgICAgZ2xpYi9HTGliVXRpbGl0aWVz
LmNwcAorICAgIGdsaWIvR1JlZlB0ci5jcHAKKyAgICBnbGliL01haW5UaHJlYWRHTGliLmNwcAor
ICAgIGdsaWIvUnVuTG9vcEdMaWIuY3BwCisKKyAgICBsaW51eC9DdXJyZW50UHJvY2Vzc01lbW9y
eVN0YXR1cy5jcHAKKyAgICBsaW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKKwor
ICAgIHRleHQvdW5peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVVW5peC5jcHAKKykKKwor
bGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUworICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorICAg
ICR7R0xJQl9HT0JKRUNUX0xJQlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgIHB0
aHJlYWQKKyAgICAke1pMSUJfTElCUkFSSUVTfQorKQorCitsaXN0KEFQUEVORCBXVEZfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CispCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oIGIvU291cmNlL1dURi93
dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAppbmRleCA4ZDI0N2MzMWU1Ni4uYzlhNDU2
NzUxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcFNvdXJjZVByaW9y
aXR5LmgKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaApA
QCAtMjMsNiArMjMsOCBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmIFBMQVRGT1JNKEdUSykK
KwogLy8gVGhpcyBpcyBhIGdsb2JhbCBlbnVtIHRvIGRlZmluZSBwcmlvcml0aWVzIHVzZWQgYnkg
R0xpYiBydW4gbG9vcCBzb3VyY2VzLgogLy8gSW4gR0xpYiwgcHJpb3JpdGllcyBhcmUgcmVwcmVz
ZW50ZWQgYnkgYW4gaW50ZWdlciB3aGVyZSBsb3dlciB2YWx1ZXMgbWVhbgogLy8gaGlnaGVyIHBy
aW9yaXR5LiBUaGUgZm9sbG93aW5nIG1hY3JvcyBhcmUgZGVmaW5lZCBpbiBHTGliOgpAQCAtODAs
NiArODIsMzMgQEAgZW51bSBSdW5Mb29wU291cmNlUHJpb3JpdHkgewogICAgIERpc2tDYWNoZVdy
aXRlID0gMjAwLAogfTsKIAorI2VsaWYgUExBVEZPUk0oV1BFKQorCitlbnVtIFJ1bkxvb3BTb3Vy
Y2VQcmlvcml0eSB7CisgICAgUnVuTG9vcERpc3BhdGNoZXIgPSAtNzAsCisgICAgUnVuTG9vcFRp
bWVyID0gLTcwLAorCisgICAgTWFpblRocmVhZERpc3BhdGNoZXJUaW1lciA9IC02MCwKKworICAg
IE1lbW9yeVByZXNzdXJlSGFuZGxlclRpbWVyID0gLTgwLAorCisgICAgSmF2YXNjcmlwdFRpbWVy
ID0gLTYwLAorICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lciA9IC02MCwKKworICAgIExheWVyRmx1
c2hUaW1lciA9IC03MCwKKyAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JUaW1lciA9IC03MCwKKwor
ICAgIENvbXBvc2l0aW5nVGhyZWFkVXBkYXRlVGltZXIgPSAtNzAsCisKKyAgICBSZWxlYXNlVW51
c2VkUmVzb3VyY2VzVGltZXIgPSAtNzAsCisKKyAgICBBc3luY0lPTmV0d29yayA9IC03MCwKKyAg
ICBEaXNrQ2FjaGVSZWFkID0gLTcwLAorICAgIERpc2tDYWNoZVdyaXRlID0gLTYwCit9OworCisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6UnVuTG9vcFNvdXJjZVBy
aW9yaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwMzE4N2VhMWI5NC4uM2JmZThmN2ExMTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDA1LDcgKzQwMDUsOCBAQCBpZiAoRU5BQkxFX0dS
QVBISUNTX0NPTlRFWFRfM0QgQU5EIE5PVCBXSU4zMikKICAgICBzZXRfcHJvcGVydHkoVEFSR0VU
IEFOR0xFU3VwcG9ydAogICAgICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAg
ICAgIEFOR0xFX0VOQUJMRV9FU1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAg
ICBBTkdMRV9FTkFCTEVfR0xTTAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05T
fSkKIAogICAgIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRF
CiAgICAgICAgICIke1RISVJEUEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YjEzZDJm
OTY2NS4uYmI5NGY4NDhhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAxNy0wNC0y
OCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJl
YW0gdGhlIFdQRSBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzExMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICB3ZWJraXQtZGV2IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQu
b3JnL3BpcGVybWFpbC93ZWJraXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAg
ICBFeGlzdGluZyBmaWxlcyBtb3N0bHkgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0o
V1BFKSBidWlsZCBndWFyZHMuCisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20g
dGhpcyBDaGFuZ2VMb2cgZW50cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAuCisgICAgICAgICogY29u
ZmlnLmg6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAgICAgKiBj
cnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6
CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL3dwZS9FZGl0
b3JXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgICogcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vQ3Vyc29yLmg6CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9EcmFnSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6
CisgICAgICAgICogcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
YXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZv
cm0vU2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9BTkdMRVdlYktpdEJyaWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybURpc3BsYXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xD
b250ZXh0RUdMLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0
RUdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9C
dXNHTGliLmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93cGUvSWNvbldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy93cGUvSW1hZ2VXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3Jt
RGlzcGxheVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dwZS9Q
bGF0Zm9ybURpc3BsYXlXUEUuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL0N1cnNv
cldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS93cGUvUGFzdGVib2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0v
d3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvUmVuZGVyVGhl
bWVXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hl
ZWxFdmVudC5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAg
ICogcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9TY3JvbGxiYXJUaGVtZVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAg
ICAgICAqIHBsYXRmb3JtL3dwZS9UaGVtZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL3dwZS9UaGVtZVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKwogMjAx
Ny0wNC0yOCAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0FUS10gYXJpYS1tb2RhbD0idHJ1ZSIgc2hvdWxkIGJlIGV4cG9zZWQgdmlhIEFUS19TVEFURV9N
T0RBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggMDY0ZjNhNzIwMWUuLjk1ODJkNWU2ZjBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wNC0yOCAgWmFuIERvYmVyc2Vr
ICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9Q
bGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisKIDIwMTctMDQtMjUgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV1bV2luXSBFbmFibGUgb2YgWC1Db250
ZW50LVR5cGUtT3B0aW9uczogbm9zbmlmZiBoZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Bs
YXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43
NzVjMTg5ODRhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSwzIEBACitsaXN0KEFQUEVORCBQQUxfU09VUkNFUwor
ICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvRGlnZXN0R0NyeXB0LmNwcAorKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDExN2Vl
ZDFlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFr
ZQpAQCAtMCwwICsxLDMwNCBAQAoraW5jbHVkZShwbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UpCitp
bmNsdWRlKHBsYXRmb3JtL0ltYWdlRGVjb2RlcnMuY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL0xp
bnV4LmNtYWtlKQoraW5jbHVkZShwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlKQorCisjIEFs
bG93IGJ1aWxkaW5nIEFOR0xFIG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHByb3ZpZGUgWDExIGhl
YWRlcnMuCitpZiAoUE9SVCBTVFJFUVVBTCAiV1BFIikKKyAgICBsaXN0KEFQUEVORCBBTkdMRV9Q
TEFURk9STV9ERUZJTklUSU9OUyAiVVNFX1dQRSIpCitlbmRpZiAoKQorCitsaXN0KEFQUEVORCBX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVND
UklQVENPUkVfRElSfSIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElS
fS9pbnNwZWN0b3IiCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9CisgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9
L0FQSSIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2VtYmxlciIKKyAgICAiJHtKQVZB
U0NSSVBUQ09SRV9ESVJ9L2J5dGVjb2RlIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0
ZWNvbXBpbGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgorICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
ZG9taml0IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKKyAgICAiJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L2RlYnVnZ2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50ZXJw
cmV0ZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9qaXQiCisgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9sbGludCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BhcnNlciIKKyAg
ICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3Byb2ZpbGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vcnVudGltZSIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3lhcnIiCisgICAgIiR7
VEhJUkRQQVJUWV9ESVJ9L0FOR0xFLyIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvaW5j
bHVkZS9LSFIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2NhaXJvIgorICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFw
aGljcy9nbHgiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBl
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6LyIKKyAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmciCisgICAgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL3dwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZCIK
KyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZSIKKyAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS90ZXh0L2ljdSIKKyAgICAke1dURl9ESVJ9CispCisKK2xpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUworICAgIGFjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCisg
ICAgYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKKworICAgIGxv
YWRlci9zb3VwL0NhY2hlZFJhd1Jlc291cmNlU291cC5jcHAKKyAgICBsb2FkZXIvc291cC9TdWJy
ZXNvdXJjZUxvYWRlclNvdXAuY3BwCisKKyAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVN0aWNreU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAor
ICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcAorICAgIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorCisgICAgcGFnZS9zY3JvbGxpbmcv
Y29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhp
Y3MuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdT
dGF0ZU5vZGVDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorCisgICAgcGxhdGZvcm0vQ3Vyc29yLmNw
cAorICAgIHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCisgICAgcGxhdGZvcm0vVGhlbWUuY3BwCisKKyAgICBwbGF0Zm9ybS9hdWRp
by9nbGliL0F1ZGlvQnVzR0xpYi5jcHAKKworICAgIHBsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xp
Yi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorICAgIHBsYXRmb3Jt
L2dsaWIvS2V5ZWREZWNvZGVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL0tleWVkRW5jb2Rl
ckdsaWIuY3BwCisgICAgcGxhdGZvcm0vZ2xpYi9NYWluVGhyZWFkU2hhcmVkVGltZXJHTGliLmNw
cAorICAgIHBsYXRmb3JtL2dsaWIvU1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKyAgICBwbGF0Zm9y
bS9nbGliL1NoYXJlZEJ1ZmZlckdsaWIuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HTENv
bnRleHQuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9XT0ZG
RmlsZUZvcm1hdC5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9y
ZUJhY2tlbmRDYWlyb0ltcGwuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9V
dGlsaXRpZXMuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRmxvYXRSZWN0Q2Fpcm8u
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhZGllbnRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VD
YWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUGF0dGVybkNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRm
b3JtQ29udGV4dENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3Jt
UGF0aENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJvLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4Q2Fpcm8u
Y3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAorCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9HbHlwaFBhZ2VUcmVlTm9kZUZy
ZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3Ry
ZWFtZXJDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhU
ZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0hhcmZCdXp6RmFjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNo
YXBlci5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0xDb21tb24uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xFUy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9y
YXJ5T3BlbkdMU2V0dGluZy5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlVmVydGljYWxEYXRhLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRm
b3JtRGlzcGxheVdQRS5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0lt
YWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
ZXJ0aWZpY2F0ZUluZm8uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9DcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0dSZWZQdHJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVNlcnZl
clNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNw
cAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25l
dHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsv
c291cC9TeW5jaHJvbm91c0xvYWRlckNsaWVudFNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKKworICAgIHBsYXRmb3JtL3NvdXAv
U2hhcmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCisKKyAg
ICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcAorICAgIHBsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAorICAgIHBsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCisKKyAgICBwbGF0Zm9ybS91bml4L0xv
Z2dpbmdVbml4LmNwcAorCisgICAgcGxhdGZvcm0veGRnL01JTUVUeXBlUmVnaXN0cnlYZGcuY3Bw
CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVQbGF0Zm9ybVdQRV9TT1VSQ0VTCisgICAgZWRpdGlu
Zy93cGUvRWRpdG9yV1BFLmNwcAorCisgICAgcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcAor
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JbWFnZVdQRS5jcHAKKworICAgIHBsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwCisgICAgcGxh
dGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1Bhc3Rl
Ym9hcmRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5j
cHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcAorICAgIHBsYXRm
b3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUmVuZGVyVGhl
bWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcAorICAgIHBs
YXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvVGhlbWVXUEUuY3BwCisg
ICAgcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKKykKKworbGlzdChBUFBFTkQgV2ViQ29yZV9V
U0VSX0FHRU5UX1NUWUxFX1NIRUVUUworICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFj
b250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5jc3MKKykKKworc2V0KFdlYkNvcmVfVVNFUl9BR0VO
VF9TQ1JJUFRTCisgICAgJHtXRUJDT1JFX0RJUn0vRW5nbGlzaC5scHJvai9tZWRpYUNvbnRyb2xz
TG9jYWxpemVkU3RyaW5ncy5qcworICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFjb250
cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qcworKQorCitzZXQoV2ViQ29yZV9VU0VSX0FHRU5UX1ND
UklQVFNfREVQRU5ERU5DSUVTICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVt
ZVdQRS5jcHApCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCisgICAgJHtDQUlST19M
SUJSQVJJRVN9CisgICAgJHtFR0xfTElCUkFSSUVTfQorICAgICR7Rk9OVENPTkZJR19MSUJSQVJJ
RVN9CisgICAgJHtGUkVFVFlQRTJfTElCUkFSSUVTfQorICAgICR7R0xJQl9HSU9fTElCUkFSSUVT
fQorICAgICR7R0xJQl9HTU9EVUxFX0xJQlJBUklFU30KKyAgICAke0dMSUJfR09CSkVDVF9MSUJS
QVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAgICAke0dOVVRMU19MSUJSQVJJRVN9Cisg
ICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9CisgICAgJHtJQ1VfTElCUkFSSUVTfQorICAgICR7TElC
R0NSWVBUX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBfTElCUkFSSUVTfQorICAgICR7TElCWE1M
Ml9MSUJSQVJJRVN9CisgICAgJHtMSUJYU0xUX0xJQlJBUklFU30KKyAgICAke1NRTElURV9MSUJS
QVJJRVN9CisgICAgJHtXUEVfTElCUkFSSUVTfQorKQorCitsaXN0KEFQUEVORCBXZWJDb3JlX0lO
Q0xVREVfRElSRUNUT1JJRVMKKyAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KKyAgICAke0VHTF9J
TkNMVURFX0RJUlN9CisgICAgJHtGT05UQ09ORklHX0lOQ0xVREVfRElSU30KKyAgICAke0ZSRUVU
WVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0dOVVRM
U19JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9JTkNMVURFX0RJUlN9CisgICAgJHtJQ1Vf
SU5DTFVERV9ESVJTfQorICAgICR7TElCR0NSWVBUX0lOQ0xVREVfRElSU30KKyAgICAke0xJQlNP
VVBfSU5DTFVERV9ESVJTfQorICAgICR7TElCWE1MMl9JTkNMVURFX0RJUn0KKyAgICAke0xJQlhT
TFRfSU5DTFVERV9ESVJ9CisgICAgJHtTUUxJVEVfSU5DTFVERV9ESVJ9CisgICAgJHtXUEVfSU5D
TFVERV9ESVJTfQorKQorCithZGRfbGlicmFyeShXZWJDb3JlUGxhdGZvcm1XUEUgJHtXZWJDb3Jl
X0xJQlJBUllfVFlQRX0gJHtXZWJDb3JlUGxhdGZvcm1XUEVfU09VUkNFU30pCithZGRfZGVwZW5k
ZW5jaWVzKFdlYkNvcmVQbGF0Zm9ybVdQRSBXZWJDb3JlKQorV0VCS0lUX1NFVF9FWFRSQV9DT01Q
SUxFUl9GTEFHUyhXZWJDb3JlUGxhdGZvcm1XUEUpCit0YXJnZXRfaW5jbHVkZV9kaXJlY3Rvcmll
cyhXZWJDb3JlUGxhdGZvcm1XUEUgUFJJVkFURQorICAgICR7V2ViQ29yZV9JTkNMVURFX0RJUkVD
VE9SSUVTfQorKQordGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoV2ViQ29yZVBsYXRmb3JtV1BF
IFNZU1RFTSBQUklWQVRFCisgICAgJHtXZWJDb3JlX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVT
fQorKQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdlYkNvcmVQbGF0Zm9ybVdQRQorICAgICR7V2Vi
Q29yZV9MSUJSQVJJRVN9CispCisKK2lmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKKyAgICBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5j
cHAKKyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAorICAgICAgICBj
cnlwdG8vQ3J5cHRvS2V5LmNwcAorICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAg
ICAgICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAorCisgICAgICAgIGNyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DVFIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19HQ00uY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19LVy5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtRUNESC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
RUNEU0EuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYu
Y3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCisg
ICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5jcHAKKyAgICAg
ICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAK
KyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3Yx
XzUuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQ
LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAor
ICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCisgICAg
ICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKKyAgICAgICAg
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAorICAgICAgICBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCisKKyAgICAgICAgY3J5cHRv
L2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8v
Z2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DRkJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9n
Y3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfR0NNR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1FQ0RIR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0Ny
eXB0b0FsZ29yaXRobUVDRFNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0
b0FsZ29yaXRobUhLREZHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxn
b3JpdGhtSE1BQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0
aG1QQktERjJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGht
UlNBRVNfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUEdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9LZXlFQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlS
U0FHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvU2VyaWFsaXplZENyeXB0b0tleVdy
YXBHQ3J5cHQuY3BwCisKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAorICAg
ICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHAKKyAgICAgICAg
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwCisgICAgICAgIGNyeXB0
by9rZXlzL0NyeXB0b0tleUVDLmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlITUFD
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisgICAgICAgIGNyeXB0
by9rZXlzL0NyeXB0b0tleVJhdy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2Vy
aWFsaXphdGlvblJhdy5jcHAKKyAgICApCitlbmRpZiAoKQorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGRkM2Y1NTM0Njlm
Li5iZjE4NGVhYzQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTY2LDYgKzY2LDggQEAgdHlwZWRlZiBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbGlmIFBM
QVRGT1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogdHlwZWRl
ZiBzdHJ1Y3QgX0F0a09iamVjdCBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKKyNlbGlmIFBM
QVRGT1JNKFdQRSkKK2NsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+IHsgfTsKICNlbHNlCiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbmRpZgpAQCAtMTExNiw2ICsxMTE4LDggQEAg
cHJvdGVjdGVkOgogICAgIENPTVB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93cmFw
cGVyOwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEF0a09iamVjdCogbV93cmFwcGVyOworI2Vs
aWYgUExBVEZPUk0oV1BFKQorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4g
bV93cmFwcGVyOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xNTQxNTk0YWRlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCkBAIC0wLDAgKzEs
NjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlEZXRh
Y2htZW50VHlwZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVt
ZW50Q2hhbmdlZChOb2RlKiwgTm9kZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBlOTRjNTk5NGNhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9i
amVjdFdQRS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJ
Z2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFj
aG1lbnQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKaW5k
ZXggZDVkNDNmZTRkZjQuLjE4MDk5MGViZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b25maWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaApAQCAtMTA0LDcgKzEwNCw3IEBA
CiAjZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oV1BFKQogI2RlZmluZSBVU0VfTkVXX1RIRU1FIDEKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAppbmRleCA0NDNhNjgyMTVhYi4uNGM3
ZDAyOThlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eUVDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaApAQCAt
MzYsNyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0NFQ0NyeXB0b3IgKkNDRUNDcnlwdG9yUmVm
OwogdHlwZWRlZiBDQ0VDQ3J5cHRvclJlZiBQbGF0Zm9ybUVDS2V5OwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5
X3NleHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBn
Y3J5X3NleHAqIFBsYXRmb3JtRUNLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8va2V5cy9DcnlwdG9LZXlSU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0
b0tleVJTQS5oCmluZGV4IDMwNWJkNGM0M2EwLi40MWJjZTg1OWVhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBz
dHJ1Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwogdHlwZWRlZiBDQ1JTQUNyeXB0
b3JSZWYgUGxhdGZvcm1SU0FLZXk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIC8vIGdjcnlfc2V4cCogZXF1YXRlcyBnY3J5
X3NleHBfdC4KIHN0cnVjdCBnY3J5X3NleHA7CiB0eXBlZGVmIGdjcnlfc2V4cCogUGxhdGZvcm1S
U0FLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZTlhMjk2NGVlNWIuLmU2MDAx
NzM5ZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xMjQ2LDEzICsxMjQ2LDEz
IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBh
Y3Rpb24pCiAgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VE
b2N1bWVudChkb2N1bWVudCgpKTsKIAogICAgICAgICBpZiAoaW1hZ2VFbGVtZW50KSB7Ci0jaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgICAgICB3cml0ZUltYWdlVG9Q
YXN0ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgKmltYWdlRWxl
bWVudCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1lbnQoKS50aXRsZSgpKTsKICNlbHNlCiAgICAg
ICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgq
aW1hZ2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgpLnRpdGxlKCkpOwogI2Vu
ZGlmCiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252
ZXJ0IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KQEAg
LTEzNzcsNyArMTM3Nyw3IEBAIHZvaWQgRWRpdG9yOjpjb3B5SW1hZ2UoY29uc3QgSGl0VGVzdFJl
c3VsdCYgcmVzdWx0KQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICB1cmwgPSByZXN1
bHQuYWJzb2x1dGVJbWFnZVVSTCgpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCiAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29w
eUFuZFBhc3RlKCksICplbGVtZW50LCB1cmwsIHJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOwog
I2Vsc2UKICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFn
ZSgqZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0RGlzcGxheVN0cmluZygpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCmluZGV4IDg3NjcyMGY4MTViLi5kODg0YjdlNTZiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCkBAIC00NjcsNyArNDY3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0
cmluZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6
UmVzcGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJv
YXJkKFBhc3RlYm9hcmQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlSW1hZ2VUb1Bh
c3RlYm9hcmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmIGltYWdlRWxlbWVudCwgY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihQYXN0ZWJvYXJk
V3JpdGVyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRp
dG9yV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQyOTRjZDk4NDdlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9yV1BFLmNwcApAQCAt
MCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIKKworI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIm1hcmt1
cC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tUGFzdGVib2FyZERhdGEoUGFzdGVib2FyZCYgcGFzdGVi
b2FyZCwgRnJhbWUmIGZyYW1lLCBSYW5nZSYgcmFuZ2UsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJv
b2wmIGNob3NlUGxhaW5UZXh0KQoreworICAgIGNob3NlUGxhaW5UZXh0ID0gZmFsc2U7CisKKyAg
ICBWZWN0b3I8U3RyaW5nPiB0eXBlcyA9IHBhc3RlYm9hcmQudHlwZXMoKTsKKyAgICBpZiAodHlw
ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5j
b250YWlucygidGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiKSAmJiBmcmFtZS5kb2N1bWVudCgpKSB7
CisgICAgICAgIFN0cmluZyBtYXJrdXAgPSBwYXN0ZWJvYXJkLnJlYWRTdHJpbmcoInRleHQvaHRt
bDtjaGFyc2V0PXV0Zi04Iik7CisgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoKmZyYW1lLmRvY3VtZW50KCksIG1h
cmt1cCwgZW1wdHlTdHJpbmcoKSwgRGlzYWxsb3dTY3JpcHRpbmdBbmRQbHVnaW5Db250ZW50KSkK
KyAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisKKyAgICBpZiAoIWFsbG93UGxh
aW5UZXh0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5jb250YWlu
cygidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IikpIHsKKyAgICAgICAgY2hvc2VQbGFpblRleHQg
PSB0cnVlOworICAgICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0g
Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dChyYW5nZSwgcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0
L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkpCisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQ7Cisg
ICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgRWRpdG9yOjp3cml0ZVNlbGVj
dGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKQoreworICAgIFBhc3RlYm9h
cmRXZWJDb250ZW50IHBhc3RlYm9hcmRDb250ZW50OworICAgIHBhc3RlYm9hcmRDb250ZW50LnRl
eHQgPSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsKKyAgICBwYXN0ZWJvYXJkQ29udGVu
dC5tYXJrdXAgPSBjcmVhdGVNYXJrdXAoKnNlbGVjdGVkUmFuZ2UoKSwgbnVsbHB0ciwgQW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25Mb2NhbFVSTHMpOworICAgIHBhc3Rl
Ym9hcmQud3JpdGUocGFzdGVib2FyZENvbnRlbnQpOworfQorCit2b2lkIEVkaXRvcjo6d3JpdGVJ
bWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBFZGl0b3I6OnBh
c3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgYm9vbCBhbGxvd1BsYWlu
VGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQorewor
ICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJhbmdlKCk7CisgICAgaWYgKCFyYW5n
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKKyAgICBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21QYXN0ZWJv
YXJkRGF0YSgqcGFzdGVib2FyZCwgbV9mcmFtZSwgKnJhbmdlLCBhbGxvd1BsYWluVGV4dCwgY2hv
c2VQbGFpblRleHQpOworICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChm
cmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6UGFzdGVkKSkKKyAgICAgICAgcGFz
dGVBc0ZyYWdtZW50KCpmcmFnbWVudCwgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoKnBh
c3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgbWFpbEJsb2NrcXVvdGVIYW5kbGluZyk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApp
bmRleCA3OTUyY2FiZjgyNS4uNzFjMDNiN2ZjOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjppc0luc2lk
ZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYgd2luZG93UG9pbnQpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAh
UExBVEZPUk0oV1BFKQogCiBib29sIEV2ZW50SGFuZGxlcjo6c2hvdWxkVHVyblZlcnRpY2FsVGlj
a3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3BlL0V2
ZW50SGFuZGxlcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJX
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMTRlMGZlM2Jm
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3BlL0V2ZW50SGFuZGxl
cldQRS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV2ZW50
SGFuZGxlci5oIgorCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNv
bnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZp
ZXcoKQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCisgICAgICAgIHBh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRGcmFtZSgmbV9mcmFtZSk7Cit9CisKK2Jv
b2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChjb25zdCBN
b3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3Vz
ZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VE
b3duRXZlbnRUb1dpZGdldChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjp3aWRnZXREaWRI
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdldCYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRI
YW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSZXN1bHRzJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlTW92ZUV2ZW50VG9TdWJm
cmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgRnJhbWUqLCBIaXRUZXN0UmVzdWx0
KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVy
PiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkFsdEtleTsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50b0hvcml6b250YWwo
Y29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ3Vyc29yLmgKaW5kZXggY2RjZjI2NWYyNjAuLjVlOTExZDcwOGIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNzQsNiArNzQsOCBAQCB1c2luZyBQbGF0Zm9ybUN1cnNv
ciA9IFJlZlB0cjxTaGFyZWRDdXJzb3I+OwogdXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBOU0N1cnNv
ciAqOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBHUmVmUHRy
PEdka0N1cnNvcj47CisjZWxpZiBQTEFURk9STShXUEUpCit1c2luZyBQbGF0Zm9ybUN1cnNvciA9
IHZvaWQqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0Rh
dGEuaAppbmRleCA2ODkxOTdmN2I1Ni4uNTBjZWI4NmM1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RHJhZ0RhdGEuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBT
ZWxlY3Rpb25EYXRhOwogfQogdHlwZWRlZiBXZWJDb3JlOjpTZWxlY3Rpb25EYXRhKiBEcmFnRGF0
YVJlZjsKLSNlbGlmIFBMQVRGT1JNKElPUykKKyNlbGlmIFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oV1BFKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGUzMjU1ZDE5YWQyLi41NTIxMzFkZDBjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsKIE9CSkNfQ0xBU1MgTlNJbWFnZTsKICNlbGlmIFBMQVRG
T1JNKFdJTikKIHR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyogSEJJVE1BUDsKLSNlbGlmIFBMQVRG
T1JNKEdUSykKKyNlbGlmIFVTRShDQUlSTykKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2Vu
ZGlmCiAKQEAgLTY0LDcgKzY0LDcgQEAgdHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gRHJh
Z0ltYWdlUmVmOwogdHlwZWRlZiBSZXRhaW5QdHI8TlNJbWFnZT4gRHJhZ0ltYWdlUmVmOwogI2Vs
aWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBIQklUTUFQIERyYWdJbWFnZVJlZjsKLSNlbGlmIFBM
QVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRl
ZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBEcmFnSW1hZ2VSZWY7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IDE5NWI2NzZiYzJiLi4xZDgwYjRjMTgzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtMTk4LDcgKzE5OCw3IEBAIFdF
QkNPUkVfRVhQT1JUIGJvb2wgZmlsZXNIYXZlU2FtZVZvbHVtZShjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKTsKIFJldGFpblB0cjxDRlVSTFJlZj4gcGF0aEFzVVJMKGNvbnN0IFN0cmluZyYp
OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXUEUpCiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYpOwogQ1N0
cmluZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKIENTdHJpbmcgc2hhcmVkUmVzb3VyY2Vz
UGF0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNo
YXJlZFRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRU
aW1lci5jcHAKaW5kZXggNzc4Y2FjMmQ5OGIuLmRkYTY4MmViODQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKQEAgLTM0LDcgKzM0
LDcgQEAgTWFpblRocmVhZFNoYXJlZFRpbWVyJiBNYWluVGhyZWFkU2hhcmVkVGltZXI6OnNpbmds
ZXRvbigpCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogTWFpblRocmVhZFNoYXJlZFRpbWVy
OjpNYWluVGhyZWFkU2hhcmVkVGltZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuaAppbmRleCA1OTBmNjg5NGFkMy4uNDkwNzMwZjE0
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRU
aW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1l
ci5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2VuZGlm
CiAKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBNYWluVGhyZWFkU2hhcmVkVGltZXIo
KTsKIAogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2ZpcmVkRnVuY3Rpb247Ci0jaWYgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFJ1bkxv
b3A6OlRpbWVyPE1haW5UaHJlYWRTaGFyZWRUaW1lcj4gbV90aW1lcjsKICNlbmRpZgogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCA0MjllMWFmMTQwMC4uNmU2ZjIxNjVm
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTYyLDcgKzYyLDcgQEAg
ZW51bSBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgeyBEZWZhdWx0
U2VsZWN0ZWRUZXh0VHlwZSwgSW5jbHUKIC8vIEZvciB3cml0aW5nIHRvIHRoZSBwYXN0ZWJvYXJk
LiBHZW5lcmFsbHkgc29ydGVkIHdpdGggdGhlIHJpY2hlc3QgZm9ybWF0cyBvbiB0b3AuCiAKIHN0
cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7Ci0jaWYgIShQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdJTikpCisjaWYgIShQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZP
Uk0oV1BFKSkKICAgICBXRUJDT1JFX0VYUE9SVCBQYXN0ZWJvYXJkV2ViQ29udGVudCgpOwogICAg
IFdFQkNPUkVfRVhQT1JUIH5QYXN0ZWJvYXJkV2ViQ29udGVudCgpOwogICAgIGJvb2wgY2FuU21h
cnRDb3B5T3JEZWxldGU7CkBAIC04MCw2ICs4MCwxMCBAQCBzdHJ1Y3QgUGFzdGVib2FyZFdlYkNv
bnRlbnQgewogICAgIFN0cmluZyB0ZXh0OwogICAgIFN0cmluZyBtYXJrdXA7CiAjZW5kaWYKKyNp
ZiBQTEFURk9STShXUEUpCisgICAgU3RyaW5nIHRleHQ7CisgICAgU3RyaW5nIG1hcmt1cDsKKyNl
bmRpZgogfTsKIAogc3RydWN0IFBhc3RlYm9hcmRVUkwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCBkNzJmMTIwZmNmYy4uM2M2ZGE2YzdiYWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oCkBAIC03
MywxMCArNzMsMTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgbG9uZyBzZXRQYXRobmFtZXNGb3JU
eXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgbG9uZyBzZXRT
dHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUsIGNvbnN0IFNlbGVjdGlvbkRhdGEmKSA9IDA7CiAgICAgdmlydHVhbCBS
ZWY8U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgPSAwOwogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKKworI2lmIFBMQVRGT1JNKFdQ
RSkKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKSA9IDA7
CisgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3cml0
ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwg
Y29uc3QgU3RyaW5nJikgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Q
YXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1QYXN0ZWJvYXJkLmgKaW5kZXggODVhOGM5ZmMwNWMuLjIzZjZmMzBjNTJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtNDAsNiArNDAs
MTAgQEAgT0JKQ19DTEFTUyBOU1Bhc3RlYm9hcmQ7CiBPQkpDX0NMQVNTIFVJUGFzdGVib2FyZDsK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9wYXN0ZWJvYXJkOworI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7CkBAIC01Myw3ICs1Nyw3
IEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKIGNsYXNzIFBsYXRmb3JtUGFzdGVib2Fy
ZCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUGxhdGZvcm1QYXN0ZWJv
YXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwotI2lmIFBMQVRGT1JNKElPUykKKyNp
ZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCBQbGF0
Zm9ybVBhc3RlYm9hcmQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBmaWxl
bmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFR5
cGVzQnlGaWRlbGl0eUZvckl0ZW1BdEluZGV4KFZlY3RvcjxTdHJpbmc+JiB0eXBlcywgaW50IGlu
ZGV4KTsKQEAgLTExMCw2ICsxMTQsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKEdUSykKICAg
ICBHdGtDbGlwYm9hcmQqIG1fY2xpcGJvYXJkOwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQor
ICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZCogbV9wYXN0ZWJvYXJkOworI2VuZGlmCiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKaW5kZXggNWJhZDNj
ZDBkNTYuLjY0ZTM1NjM5NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVn
aXN0cnkuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzZWN1cmVT
Y2hlbWVzKCkKICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoImFib3V0Iik7CiAgICAg
ICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJkYXRhIik7CiAgICAgICAgIHNlY3VyZVNjaGVt
ZXMuZ2V0KCkuYWRkKCJ3c3MiKTsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJyZXNv
dXJjZSIpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRleCA1NWI0
OWE0ZGRjNy4uNWQ3YWE0OGE3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1dpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBAIC02MSw2
ICs2MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrQ29udGFpbmVyIEd0a0NvbnRhaW5lcjsKIHR5
cGVkZWYgR3RrV2lkZ2V0KiBQbGF0Zm9ybVdpZGdldDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
V1BFKQordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVdpZGdldDsKKyNlbmRpZgorCiB0eXBlZGVmIFBs
YXRmb3JtV2lkZ2V0IFBsYXRmb3JtUGFnZUNsaWVudDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dM
aWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIu
Y3BwCmluZGV4IDc5MWJmYTM5NjM2Li44MTk3NWI2NGE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcApAQCAtMjcsMTEgKzI3
LDE3IEBACiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nbGli
L0dVbmlxdWVQdHIuaD4KIAorI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgQVVESU9fR1JFU09V
UkNFX1BBVEggIi9vcmcvd2Via2l0Z3RrL3Jlc291cmNlcy9hdWRpbyIKKyNlbGlmIFBMQVRGT1JN
KFdQRSkKKyNkZWZpbmUgQVVESU9fR1JFU09VUkNFX1BBVEggIi9vcmcvd2Via2l0d3BlL3Jlc291
cmNlcy9hdWRpbyIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8
QXVkaW9CdXM+IEF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiBuYW1l
LCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aChnX3N0cmR1
cF9wcmludGYoIi9vcmcvd2Via2l0Z3RrL3Jlc291cmNlcy9hdWRpby8lcyIsIG5hbWUpKTsKKyAg
ICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ19zdHJkdXBfcHJpbnRmKEFVRElPX0dSRVNPVVJDRV9Q
QVRIICIvJXMiLCBuYW1lKSk7CiAgICAgR1JlZlB0cjxHQnl0ZXM+IGRhdGEgPSBhZG9wdEdSZWYo
Z19yZXNvdXJjZXNfbG9va3VwX2RhdGEocGF0aC5nZXQoKSwgR19SRVNPVVJDRV9MT09LVVBfRkxB
R1NfTk9ORSwgbnVsbHB0cikpOwogICAgIEFTU0VSVChkYXRhKTsKICAgICByZXR1cm4gY3JlYXRl
QnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGdfYnl0ZXNfZ2V0X2RhdGEoZGF0YS5nZXQoKSwgbnVs
bHB0ciksIGdfYnl0ZXNfZ2V0X3NpemUoZGF0YS5nZXQoKSksIGZhbHNlLCBzYW1wbGVSYXRlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKaW5k
ZXggM2NkNTQ3Yjc3YTYuLjI2NTEwNDdlMWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMyw5IEBAIENTdHJpbmcg
c2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAgICAgaWYgKCFjYWNoZWRQYXRoLmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm4gY2FjaGVkUGF0aDsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBHVW5pcXVl
UHRyPGdjaGFyPiBkYXRhUGF0aChnX2J1aWxkX2ZpbGVuYW1lKERBVEFfRElSLCAid3BlIiwgbnVs
bHB0cikpOworI2VsaWYgUExBVEZPUk0oR1RLKQogI2lmIE9TKFdJTkRPV1MpCiAgICAgSE1PRFVM
RSBobW9kdWxlID0gMDsKICAgICBHZXRNb2R1bGVIYW5kbGVFeEEoR0VUX01PRFVMRV9IQU5ETEVf
RVhfRkxBR19GUk9NX0FERFJFU1MsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHNoYXJlZFJlc291
cmNlc1BhdGgpLCAmaG1vZHVsZSk7CkBAIC0yMjIsNiArMjI1LDcgQEAgQ1N0cmluZyBzaGFyZWRS
ZXNvdXJjZXNQYXRoKCkKICNlbHNlCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBhdGgoZ19i
dWlsZF9maWxlbmFtZShEQVRBX0RJUiwgIndlYmtpdGd0ay0iIFdFQktJVEdUS19BUElfVkVSU0lP
Tl9TVFJJTkcsIE5VTEwpKTsKICNlbmRpZgorI2VuZGlmCiAKICAgICBjYWNoZWRQYXRoID0gZGF0
YVBhdGguZ2V0KCk7CiAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAppbmRleCA5MTE0ZTc2
Yzc1OS4uMmFjY2ZhZDE1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUg
PE9wZW5HTC9nbC5oPgogI2VsaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgIk9wZW5HTEVTU2hp
bXMuaCIKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2lmIFVTRShPUEVOR0xfRVNfMikKICNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApp
bmRleCA3MGY1ODczOTJmNi4uYzE1YmVjNWU5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoUGxhdGZv
cm1EaXNwbGF5JiBkaXNwCiAgICAgfQogI2VuZGlmCiAKLSNpZiBVU0UoRUdMKSB8fCBQTEFURk9S
TShXQVlMQU5EKQorI2lmIFVTRShFR0wpIHx8IFBMQVRGT1JNKFdBWUxBTkQpIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBpZiAoYXV0byBlZ2xDb250ZXh0ID0gR0xDb250ZXh0RUdMOjpjcmVhdGVTaGFy
aW5nQ29udGV4dChkaXNwbGF5KSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUoZWdsQ29udGV4dCk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgK
aW5kZXggMmMwZWEyN2UxOTMuLjlkNmRiMTcyYWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApAQCAtMjUsNyArMjUsMTQgQEAKICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KIAogI2lmIFVTRShFR0wpICYmICFQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oV1BFKQorLy8gRklYTUU6IEZvciBub3cgZGVmYXVsdCB0byB0aGUgR0JNIEVHTCBw
bGF0Zm9ybSwgYnV0IHRoaXMgc2hvdWxkIHJlYWxseSBiZQorLy8gc29tZWhvdyBkZWR1Y2libGUg
ZnJvbSB0aGUgYnVpbGQgY29uZmlndXJhdGlvbi4KKyNkZWZpbmUgX19HQk1fXyAxCisjaW5jbHVk
ZSA8RUdML2VnbHBsYXRmb3JtLmg+CisjZWxzZQogI2luY2x1ZGUgImVnbHBsYXRmb3JtLmgiCisj
ZW5kaWYKIHR5cGVkZWYgRUdMTmF0aXZlV2luZG93VHlwZSBHTE5hdGl2ZVdpbmRvd1R5cGU7CiAj
ZWxzZQogdHlwZWRlZiB1aW50NjRfdCBHTE5hdGl2ZVdpbmRvd1R5cGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCA3
ZDgwZDViNDViNC4uYjJiNzk1MjU0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNjAsNyArNjAsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIE9CSkNfQ0xBU1Mg
V2ViR0xMYXllcjsKLSNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOX0NBSVJPKQor
I2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pIHx8IFBMQVRGT1JNKFdQ
RSkKIHR5cGVkZWYgdW5zaWduZWQgaW50IEdMdWludDsKICNlbmRpZgogCkBAIC0xMzczLDcgKzEz
NzMsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNoYWRlck5hbWVIYXNoPiBu
YW1lSGFzaE1hcEZvclNoYWRlcnM7CiAKLSNpZiAoKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V0lOKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAoKFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV0lOKSB8fCBQTEFURk9STShXUEUpKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQogICAgIGZyaWVu
ZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0xFUzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5z
aW9uczNET3BlbkdMRVM+IG1fZXh0ZW5zaW9uczsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKaW5kZXggYjRlOTUxNTcyMTcuLmFi
N2M2YjhmMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9P
cGVuR0xFU1NoaW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3Bl
bkdMRVNTaGltcy5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIE9wZW5HTEVTU2hpbXNfaAog
I2RlZmluZSBPcGVuR0xFU1NoaW1zX2gKIAotI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V0lOKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUp
CiAjZGVmaW5lIGdsQmluZEZyYW1lYnVmZmVyRVhUIGdsQmluZEZyYW1lYnVmZmVyCiAjZGVmaW5l
IGdsRnJhbWVidWZmZXJUZXh0dXJlMkRFWFQgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRAogI2RlZmlu
ZSBnbEJpbmRSZW5kZXJidWZmZXJFWFQgZ2xCaW5kUmVuZGVyYnVmZmVyCkBAIC00NSw2ICs0NSw3
IEBACiAjZGVmaW5lIGdsSXNGcmFtZWJ1ZmZlckVYVCBnbElzRnJhbWVidWZmZXIKICNkZWZpbmUg
Z2xHZW5lcmF0ZU1pcG1hcEVYVCBnbEdlbmVyYXRlTWlwbWFwCiAjZGVmaW5lIEdMX0RFUFRIX0FU
VEFDSE1FTlRfRVhUIEdMX0RFUFRIX0FUVEFDSE1FTlQKKyNkZWZpbmUgR0xfQ09MT1JfQVRUQUNI
TUVOVDBfRVhUIEdMX0NPTE9SX0FUVEFDSE1FTlQwCiAjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0NP
TVBMRVRFX0VYVCBHTF9GUkFNRUJVRkZFUl9DT01QTEVURQogI2RlZmluZSBHTF9GUkFNRUJVRkZF
Ul9FWFQgR0xfRlJBTUVCVUZGRVIKICNkZWZpbmUgR0xfREVQVEgyNF9TVEVOQ0lMOF9FWFQgR0xf
REVQVEgyNF9TVEVOQ0lMOF9PRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmluZGV4IDY3ZWZiY2ViOGIzLi4xYjcxOTU0ZjU1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bURpc3BsYXkuY3BwCkBAIC00Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxh
eVdpbi5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxhdGZvcm1E
aXNwbGF5V1BFLmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxnZGsv
Z2RrLmg+CiAjZW5kaWYKQEAgLTEwMCw2ICsxMDQsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtRGlzcGxheT4gUGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9ybURpc3BsYXkoKQogICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVgxMT4obnVsbHB0cik7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
bGF0Zm9ybURpc3BsYXlXUEU+KCk7CisjZW5kaWYKKwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAppbmRleCBmNzY0YzJkNDUxZi4uY2I1ZmExZWYz
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
RGlzcGxheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
RGlzcGxheS5oCkBAIC01NCw2ICs1NCw5IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShXSU4pCiAg
ICAgICAgIFdpbmRvd3MsCiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgIFdQRSwK
KyNlbmRpZgogICAgIH07CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRF
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVH
TC5jcHAKaW5kZXggMWMxY2VjMjZhY2YuLjlmZTc1NWZjNThmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcApAQCAtMjA0
LDYgKzIwNCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6
OmNyZWF0ZVNoYXJpbmdDb250ZXh0KFBsYXRmb3JtRGlzcGxheQogICAgIGlmIChlZ2xCaW5kQVBJ
KGdFR0xBUElWZXJzaW9uKSA9PSBFR0xfRkFMU0UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CisjaWYgUExBVEZPUk0oV1BFKQorICAgIGlmIChwbGF0Zm9ybURpc3BsYXkudHlwZSgpID09IFBs
YXRmb3JtRGlzcGxheTo6VHlwZTo6V1BFKSB7CisgICAgICAgIGlmIChhdXRvIGNvbnRleHQgPSBj
cmVhdGVXUEVDb250ZXh0KHBsYXRmb3JtRGlzcGxheSkpCisgICAgICAgICAgICByZXR1cm4gY29u
dGV4dDsKKyAgICB9CisjZW5kaWYKKwogICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZVN1cmZhY2Vs
ZXNzQ29udGV4dChwbGF0Zm9ybURpc3BsYXkpOwogICAgIGlmICghY29udGV4dCkgewogI2lmIFBM
QVRGT1JNKFgxMSkKQEAgLTI1MSw2ICsyNTgsOSBAQCBHTENvbnRleHRFR0w6On5HTENvbnRleHRF
R0woKQogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCiAgICAgZGVzdHJveVdheWxhbmRXaW5kb3coKTsK
ICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBkZXN0cm95V1BFVGFyZ2V0KCk7CisjZW5k
aWYKIH0KIAogYm9vbCBHTENvbnRleHRFR0w6OmNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVy
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRFR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRFR0wuaAppbmRleCBlNWEzMzU5N2Q3Yi4uOWEwMzNmZWIyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKQEAgLTMyLDYg
KzMyLDEwIEBACiBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdzsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
V1BFKQorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorI2VuZGlmCisKIHR5cGVkZWYg
dm9pZCAqRUdMQ29uZmlnOwogdHlwZWRlZiB2b2lkICpFR0xDb250ZXh0OwogdHlwZWRlZiB2b2lk
ICpFR0xEaXNwbGF5OwpAQCAtNzMsNiArNzcsOSBAQCBwcml2YXRlOgogICAgIEdMQ29udGV4dEVH
TChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0LCBFR0xTdXJmYWNlLCBXbFVuaXF1ZVB0cjxz
dHJ1Y3Qgd2xfc3VyZmFjZT4mJiwgc3RydWN0IHdsX2VnbF93aW5kb3cqKTsKICAgICB2b2lkIGRl
c3Ryb3lXYXlsYW5kV2luZG93KCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgdm9p
ZCBkZXN0cm95V1BFVGFyZ2V0KCk7CisjZW5kaWYKIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8R0xDb250ZXh0RUdMPiBjcmVhdGVXaW5kb3dDb250ZXh0KEdMTmF0aXZlV2luZG93VHlwZSwg
UGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIpOwog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVQYnVmZmVyQ29u
dGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVsbHB0
cik7CkBAIC04NSw2ICs5Miw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxHTENvbnRleHRFR0w+IGNyZWF0ZVdheWxhbmRDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYsIEVH
TENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKICAgICBzdGF0aWMgRUdMU3VyZmFj
ZSBjcmVhdGVXaW5kb3dTdXJmYWNlV2F5bGFuZChFR0xEaXNwbGF5LCBFR0xDb25maWcsIEdMTmF0
aXZlV2luZG93VHlwZSk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVdQRUNvbnRleHQoUGxhdGZvcm1EaXNw
bGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIpOworI2VuZGlmCiAKICAg
ICBzdGF0aWMgYm9vbCBnZXRFR0xDb25maWcoRUdMRGlzcGxheSwgRUdMQ29uZmlnKiwgRUdMU3Vy
ZmFjZVR5cGUpOwogCkBAIC05OCw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIFdsVW5pcXVlUHRy
PHN0cnVjdCB3bF9zdXJmYWNlPiBtX3dsU3VyZmFjZTsKICAgICBzdHJ1Y3Qgd2xfZWdsX3dpbmRv
dyogbV93bFdpbmRvdyB7IG51bGxwdHIgfTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ+
IG1fd3BlVGFyZ2V0OworI2VuZGlmCiAjaWYgVVNFKENBSVJPKQogICAgIGNhaXJvX2RldmljZV90
KiBtX2NhaXJvRGV2aWNlIHsgbnVsbHB0ciB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjNmNDJkNzY0MgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRF
R0xXUEUuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisKKyNpZiBVU0UoRUdMKSAmJiBQTEFU
Rk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6
OmNyZWF0ZVdQRUNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiBwbGF0Zm9ybURpc3BsYXksIEVHTENv
bnRleHQgc2hhcmluZ0NvbnRleHQpCit7CisgICAgYXV0byBvZmZzY3JlZW5UYXJnZXQgPSBkb3du
Y2FzdDxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkuY3JlYXRlRUdMT2Zmc2Ny
ZWVuVGFyZ2V0KCk7CisgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlV2luZG93Q29udGV4dChvZmZz
Y3JlZW5UYXJnZXQtPm5hdGl2ZVdpbmRvdygpLCBwbGF0Zm9ybURpc3BsYXksIHNoYXJpbmdDb250
ZXh0KTsKKyAgICBpZiAoY29udGV4dCkKKyAgICAgICAgY29udGV4dC0+bV93cGVUYXJnZXQgPSBX
VEZNb3ZlKG9mZnNjcmVlblRhcmdldCk7CisgICAgcmV0dXJuIGNvbnRleHQ7Cit9CisKK3ZvaWQg
R0xDb250ZXh0RUdMOjpkZXN0cm95V1BFVGFyZ2V0KCkKK3sKKyAgICBtX3dwZVRhcmdldCA9IG51
bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShFR0wp
ICYmIFBMQVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCBjZGEwNTM0MjI1Ny4uY2E0ZjA5MDc0NzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAK
QEAgLTU5LDcgKzU5LDkgQEAKICNlbmRpZgogCiAjaWYgVVNFKEVHTCkKKyNpZiAhUExBVEZPUk0o
V1BFKQogI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgorI2VuZGlmCiAjaW5jbHVkZSA8Z3N0L2ds
L2VnbC9nc3RnbGRpc3BsYXlfZWdsLmg+CiAjZW5kaWYKIApAQCAtNjksNiArNzEsOCBAQAogCiAj
aWYgUExBVEZPUk0oV0FZTEFORCkKICNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmgi
CisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgiCiAj
ZW5kaWYKIAogLy8gZ3N0Z2xhcGkuaCBtYXkgaW5jbHVkZSBlZ2xwbGF0Zm9ybS5oIGFuZCBpdCBp
bmNsdWRlcyBYLmgsIHdoaWNoCkBAIC00MzgsNiArNDQyLDExIEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZTo6ZW5zdXJlR3N0R0xDb250ZXh0KCkKICAgICAgICAgICAgIG1f
Z2xEaXNwbGF5ID0gR1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRoX2Vn
bF9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KHNoYXJlZERpc3BsYXkp
LmVnbERpc3BsYXkoKSkpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgIEFT
U0VSVChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KHNoYXJlZERpc3BsYXkpKTsKKyAgICAgICAgbV9n
bERpc3BsYXkgPSBHU1RfR0xfRElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWds
X2Rpc3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihzaGFyZWREaXNwbGF5KS5lZ2xE
aXNwbGF5KCkpKTsKKyNlbmRpZgorCiAgICAgICAgIEFTU0VSVChtX2dsRGlzcGxheSk7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAppbmRl
eCBjN2EwZWM3ZjI1Mi4uMTI2NWUwMDFkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMjM2LDYgKzIzNiw5IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnByZXBhcmVUZXh0dXJlKCkKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJ
Zk5lY2Vzc2FyeSgpOwogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQor
I2lmIFVTRShPUEVOR0xfRVNfMikKKyAgICA6OmdsRmx1c2goKTsKKyNlbmRpZgogICAgIHN0ZDo6
c3dhcChtX3RleHR1cmUsIG1fY29tcG9zaXRvclRleHR1cmUpOwogICAgIHN0ZDo6c3dhcChtX3Rl
eHR1cmUsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CiAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihH
TF9GUkFNRUJVRkZFUiwgbV9mYm8pOwpAQCAtMzk4LDcgKzQwMSw3IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OmNoZWNrVmFyeWluZ3NQYWNraW5nKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hh
ZGVyLCBQbGF0CiAgICAgICAgIHZhcmlhYmxlcy5wdXNoX2JhY2sodmFyeWluZ1N5bWJvbCk7CiAK
ICAgICBHQzNEaW50IG1heFZhcnlpbmdWZWN0b3JzID0gMDsKLSNpZiAhUExBVEZPUk0oSU9TKSAm
JiAhKChQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykpICYmIFVTRShPUEVOR0xfRVNfMikp
CisjaWYgIVBMQVRGT1JNKElPUykgJiYgISgoUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgR0MzRGludCBtYXhW
YXJ5aW5nRmxvYXRzID0gMDsKICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTUFYX1ZBUllJTkdfRkxP
QVRTLCAmbWF4VmFyeWluZ0Zsb2F0cyk7CiAgICAgbWF4VmFyeWluZ1ZlY3RvcnMgPSBtYXhWYXJ5
aW5nRmxvYXRzIC8gNDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dwZS9JY29uV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JY29uV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDNj
MzdiZGY4YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93cGUvSWNvbldQRS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSWNvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ljb246On5JY29uKCkKK3sK
K30KKwordm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
KQoreworfQorCitSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d3BlL0ltYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9J
bWFnZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVhYTMw
YTg1NjZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3BlL0ltYWdlV1BFLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJCaXRtYXBJbWFnZS5oIgorCisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3ZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQorewor
fQorCitQYXNzUmVmUHRyPEltYWdlPiBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3Qg
Y2hhciogcmVzb3VyY2UpCit7CisgICAgc3RkOjpmcHJpbnRmKHN0ZGVyciwgIldBUk5JTkc6IHRy
eWluZyB0byBsb2FkIHBsYXRmb3JtIHJlc291cmNlICclcydcbiIsIHJlc291cmNlKTsKKyAgICBy
ZXR1cm4gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZv
cm1EaXNwbGF5V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9Q
bGF0Zm9ybURpc3BsYXlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi40ZDViYjFkMWY0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCkBAIC0wLDAgKzEsMTM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCisjaWYgUExBVEZP
Uk0oV1BFKQorCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5o
IgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDx3cGUvcmVuZGVyZXItYmFja2VuZC1l
Z2wuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybURpc3BsYXlXUEU6OlBsYXRm
b3JtRGlzcGxheVdQRSgpID0gZGVmYXVsdDsKKworUGxhdGZvcm1EaXNwbGF5V1BFOjp+UGxhdGZv
cm1EaXNwbGF5V1BFKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZGVzdHJveSht
X2JhY2tlbmQpOworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6aW5pdGlhbGl6ZShpbnQg
aG9zdEZkKQoreworICAgIG1fYmFja2VuZCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9jcmVh
dGUoaG9zdEZkKTsKKworICAgIG1fZWdsRGlzcGxheSA9IGVnbEdldERpc3BsYXkod3BlX3JlbmRl
cmVyX2JhY2tlbmRfZWdsX2dldF9uYXRpdmVfZGlzcGxheShtX2JhY2tlbmQpKTsKKyAgICBpZiAo
bV9lZ2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiUGxhdGZvcm1EaXNwbGF5V1BFOiBjb3VsZCBub3QgY3JlYXRlIHRoZSBFR0wgZGlzcGxheS5c
biIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUGxhdGZvcm1EaXNwbGF5Ojppbml0
aWFsaXplRUdMRGlzcGxheSgpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5
V1BFOjpFR0xUYXJnZXQ+IFBsYXRmb3JtRGlzcGxheVdQRTo6Y3JlYXRlRUdMVGFyZ2V0KEVHTFRh
cmdldDo6Q2xpZW50JiBjbGllbnQsIGludCBob3N0RmQpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8RUdMVGFyZ2V0PigqdGhpcywgY2xpZW50LCBob3N0RmQpOworfQorCitzdGQ6OnVu
aXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ+IFBsYXRmb3Jt
RGlzcGxheVdQRTo6Y3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCkKK3sKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxFR0xPZmZzY3JlZW5UYXJnZXQ+KCp0aGlzKTsKK30KKworUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkVHTFRhcmdldChjb25zdCBQbGF0Zm9ybURpc3BsYXlXUEUm
IGRpc3BsYXksIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVudCwg
aW50IGhvc3RGZCkKKyAgICA6IG1fZGlzcGxheShkaXNwbGF5KQorICAgICwgbV9jbGllbnQoY2xp
ZW50KQoreworICAgIG1fYmFja2VuZCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRf
Y3JlYXRlKGhvc3RGZCk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5k
X2VnbF90YXJnZXRfY2xpZW50IHNfY2xpZW50ID0geworICAgICAgICAvLyBmcmFtZV9jb21wbGV0
ZQorICAgICAgICBbXSh2b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBz
dXJmYWNlID0gKnJlaW50ZXJwcmV0X2Nhc3Q8RUdMVGFyZ2V0Kj4oZGF0YSk7CisgICAgICAgICAg
ICBzdXJmYWNlLm1fY2xpZW50LmZyYW1lQ29tcGxldGUoKTsKKyAgICAgICAgfSwKKyAgICB9Owor
ICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfc2V0X2NsaWVudChtX2JhY2tlbmQs
ICZzX2NsaWVudCwgdGhpcyk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0Ojp+
RUdMVGFyZ2V0KCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2Rlc3Ry
b3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6
aW5pdGlhbGl6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9yZW5kZXJlcl9iYWNr
ZW5kX2VnbF90YXJnZXRfaW5pdGlhbGl6ZShtX2JhY2tlbmQsIG1fZGlzcGxheS5tX2JhY2tlbmQs
CisgICAgICAgIHN0ZDo6bWF4KDAsIHNpemUud2lkdGgoKSksIHN0ZDo6bWF4KDAsIHNpemUuaGVp
Z2h0KCkpKTsKK30KKworRUdMTmF0aXZlV2luZG93VHlwZSBQbGF0Zm9ybURpc3BsYXlXUEU6OkVH
TFRhcmdldDo6bmF0aXZlV2luZG93KCkgY29uc3QKK3sKKyAgICByZXR1cm4gd3BlX3JlbmRlcmVy
X2JhY2tlbmRfZWdsX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRvdyhtX2JhY2tlbmQpOworfQorCit2
b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpyZXNpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X3Jlc2l6ZShtX2Jh
Y2tlbmQsIHN0ZDo6bWF4KDAsIHNpemUud2lkdGgoKSksIHN0ZDo6bWF4KDAsIHNpemUuaGVpZ2h0
KCkpKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVXaWxs
UmVuZGVyKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2ZyYW1lX3dp
bGxfcmVuZGVyKG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xU
YXJnZXQ6OmZyYW1lUmVuZGVyZWQoKQoreworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90
YXJnZXRfZnJhbWVfcmVuZGVyZWQobV9iYWNrZW5kKTsKK30KKworUGxhdGZvcm1EaXNwbGF5V1BF
OjpFR0xPZmZzY3JlZW5UYXJnZXQ6OkVHTE9mZnNjcmVlblRhcmdldChjb25zdCBQbGF0Zm9ybURp
c3BsYXlXUEUmIGRpc3BsYXkpCit7CisgICAgbV90YXJnZXQgPSB3cGVfcmVuZGVyZXJfYmFja2Vu
ZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9jcmVhdGUoKTsKKyAgICB3cGVfcmVuZGVyZXJfYmFja2Vu
ZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9pbml0aWFsaXplKG1fdGFyZ2V0LCBkaXNwbGF5Lm1fYmFj
a2VuZCk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0Ojp+RUdM
T2Zmc2NyZWVuVGFyZ2V0KCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2Ny
ZWVuX3RhcmdldF9kZXN0cm95KG1fdGFyZ2V0KTsKK30KKworRUdMTmF0aXZlV2luZG93VHlwZSBQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldDo6bmF0aXZlV2luZG93KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJn
ZXRfZ2V0X25hdGl2ZV93aW5kb3cobV90YXJnZXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU5YjE1MmUzNzg3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxh
eVdQRS5oCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNs
dWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKworLy8gRklYTUU6IEZvciBub3cgZGVmYXVsdCB0byB0
aGUgR0JNIEVHTCBwbGF0Zm9ybSwgYnV0IHRoaXMgc2hvdWxkIHJlYWxseSBiZQorLy8gc29tZWhv
dyBkZWR1Y2libGUgZnJvbSB0aGUgYnVpbGQgY29uZmlndXJhdGlvbi4KKyNkZWZpbmUgX19HQk1f
XyAxCisjaW5jbHVkZSA8RUdML2VnbHBsYXRmb3JtLmg+CisKK3N0cnVjdCB3cGVfcmVuZGVyZXJf
YmFja2VuZF9lZ2w7CitzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldDsKK3N0
cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldDsKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHTENvbnRleHQ7CitjbGFzcyBJbnRTaXplOworCitjbGFz
cyBQbGF0Zm9ybURpc3BsYXlXUEUgZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1EaXNwbGF5IHsKK3B1
YmxpYzoKKyAgICBQbGF0Zm9ybURpc3BsYXlXUEUoKTsKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybURp
c3BsYXlXUEUoKTsKKworICAgIHZvaWQgaW5pdGlhbGl6ZShpbnQpOworCisgICAgY2xhc3MgRUdM
VGFyZ2V0IHsKKyAgICBwdWJsaWM6CisgICAgICAgIGNsYXNzIENsaWVudCB7CisgICAgICAgIHB1
YmxpYzoKKyAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZUNvbXBsZXRlKCkgPSAwOworICAg
ICAgICB9OworCisgICAgICAgIEVHTFRhcmdldChjb25zdCBQbGF0Zm9ybURpc3BsYXlXUEUmLCBD
bGllbnQmLCBpbnQpOworICAgICAgICB+RUdMVGFyZ2V0KCk7CisKKyAgICAgICAgdm9pZCBpbml0
aWFsaXplKGNvbnN0IEludFNpemUmKTsKKyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlwZSBuYXRp
dmVXaW5kb3coKSBjb25zdDsKKworICAgICAgICB2b2lkIHJlc2l6ZShjb25zdCBJbnRTaXplJik7
CisKKyAgICAgICAgdm9pZCBmcmFtZVdpbGxSZW5kZXIoKTsKKyAgICAgICAgdm9pZCBmcmFtZVJl
bmRlcmVkKCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBjb25zdCBQbGF0Zm9ybURpc3BsYXlX
UEUmIG1fZGlzcGxheTsKKyAgICAgICAgQ2xpZW50JiBtX2NsaWVudDsKKyAgICAgICAgc3RydWN0
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXQqIG1fYmFja2VuZDsKKyAgICB9OworCisg
ICAgY2xhc3MgRUdMT2Zmc2NyZWVuVGFyZ2V0IHsKKyAgICBwdWJsaWM6CisgICAgICAgIEVHTE9m
ZnNjcmVlblRhcmdldChjb25zdCBQbGF0Zm9ybURpc3BsYXlXUEUmKTsKKyAgICAgICAgfkVHTE9m
ZnNjcmVlblRhcmdldCgpOworCisgICAgICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2lu
ZG93KCkgY29uc3Q7CisKKyAgICBwcml2YXRlOgorICAgICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVy
X2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXQqIG1fdGFyZ2V0OworICAgIH07CisKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8RUdMVGFyZ2V0PiBjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGll
bnQmLCBpbnQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xPZmZzY3JlZW5UYXJnZXQ+IGNyZWF0
ZUVHTE9mZnNjcmVlblRhcmdldCgpOworCitwcml2YXRlOgorICAgIFR5cGUgdHlwZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6V1BFOyB9CisKKyAgICBz
dHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsKiBtX2JhY2tlbmQ7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfUExBVEZPUk1fRElTUExB
WShQbGF0Zm9ybURpc3BsYXlXUEUsIFdQRSkKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0ZGM5NTVmOTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3Vyc29yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5hNzYwMTk2OTcxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dwZS9Mb2NhbGl6ZWRTdHJpbmdzV1BFLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiX1NlYXJjaCB0aGUgV2ViIik7Cit9CisKK1N0cmluZyB1bmFjY2VwdGFibGVUTFNDZXJ0
aWZpY2F0ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlVuYWNjZXB0YWJsZSBU
TFMgY2VydGlmaWNhdGUiKTsKK30KKworU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFy
KiBrZXkpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7
Cit9CisKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3Rl
Ym9hcmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzc4MDA4M2ZkMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJk
V1BFLmNwcApAQCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
YXN0ZWJvYXJkLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBh
c3RlYm9hcmRTdHJhdGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFBhc3RlYm9hcmQ+KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
YXN0ZWJvYXJkPigpOworfQorCitQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKK3sKK30KKworYm9v
bCBQYXN0ZWJvYXJkOjpoYXNEYXRhKCkKK3sKKyAgICAvLyBGSVhNRTogR2V0dGluZyB0aGUgbGlz
dCBvZiB0eXBlcyBmb3IgdGhpcyBpcyB3YXN0ZWZ1bC4gRG8gdGhpcyBpbiB0aGUgVUkgcHJvY2Vz
cy4KKyAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4gIXR5cGVz
LmlzRW1wdHkoKTsKK30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQorewor
ICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0
ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMpOworICAgIHJldHVybiB0eXBlczsKK30K
KworU3RyaW5nIFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKQorewor
ICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJl
YWRTdHJpbmdGcm9tUGFzdGVib2FyZCgwLCB0eXBlKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3
cml0ZVN0cmluZyhjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAg
ICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0
ZWJvYXJkKHR5cGUsIHRleHQpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKK3sKK30K
Kwordm9pZCBQYXN0ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIFBh
c3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKK3sKKyAgICB0ZXh0LnRl
eHQgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJp
bmdGcm9tUGFzdGVib2FyZCgwLCAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Iik7Cit9CisKK3Zv
aWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0
ZWJvYXJkVVJMJiB1cmwpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRT
dHJhdGVneSgpLT53cml0ZVRvUGFzdGVib2FyZCgidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Iiwg
dXJsLnVybC5zdHJpbmcoKSk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVUcnVzdHdvcnRo
eVdlYlVSTHNQYm9hcmRUeXBlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZElt
YWdlJikKK3sKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2Vi
Q29udGVudCYgY29udGVudCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2Fy
ZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKGNvbnRlbnQpOworfQorCitWZWN0b3I8U3Ry
aW5nPiBQYXN0ZWJvYXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICByZXR1cm4gVmVjdG9yPFN0
cmluZz4oKTsKK30KKworYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZU1hcmt1cChjb25zdCBT
dHJpbmcmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCwgU21hcnRSZXBsYWNlT3B0aW9uKQoreworICAgIHdyaXRlU3RyaW5nKCJ0ZXh0
L3BsYWluO2NoYXJzZXQ9dXRmLTgiLCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0
ZVBhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZCYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3Jt
S2V5Ym9hcmRFdmVudFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmZhNGYzOGUxMWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGxhdGZv
cm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29s
IGJhY2t3YXJkc0NvbXBhdGliaWxpdHkpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3du
KTsKKyAgICBtX3R5cGUgPSB0eXBlOworICAgIGlmIChiYWNrd2FyZHNDb21wYXRpYmlsaXR5KQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlE
b3duKSB7CisgICAgICAgIG1fdGV4dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9kaWZpZWRU
ZXh0ID0gU3RyaW5nKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0g
U3RyaW5nKCk7CisgICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAgICB9Cit9
CisKK2Jvb2wgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0
Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYsIGJvb2wmLCBib29sJiwgYm9vbCYpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmU0NTZlZWUyZGYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKQEAgLTAsMCArMSwx
MTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtUGFzdGVib2FyZC5oIgorCisj
aW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDx3cGUvcGFz
dGVib2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGxhdGZvcm1QYXN0ZWJv
YXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJikKKyAgICA6IG1fcGFzdGVib2Fy
ZCh3cGVfcGFzdGVib2FyZF9nZXRfc2luZ2xldG9uKCkpCit7CisgICAgQVNTRVJUKG1fcGFzdGVi
b2FyZCk7Cit9CisKK1BsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1QYXN0ZWJvYXJkKCkKKyAg
ICA6IG1fcGFzdGVib2FyZCh3cGVfcGFzdGVib2FyZF9nZXRfc2luZ2xldG9uKCkpCit7CisgICAg
QVNTRVJUKG1fcGFzdGVib2FyZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjpnZXRU
eXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ192ZWN0b3IgcGFzdGVib2FyZFR5cGVzID0geyBudWxscHRyLCAwIH07CisgICAgd3Bl
X3Bhc3RlYm9hcmRfZ2V0X3R5cGVzKG1fcGFzdGVib2FyZCwgJnBhc3RlYm9hcmRUeXBlcyk7CisK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGFzdGVib2FyZFR5cGVzLmxlbmd0aDsgKytp
KSB7CisgICAgICAgIGF1dG8mIHR5cGVTdHJpbmcgPSBwYXN0ZWJvYXJkVHlwZXMuc3RyaW5nc1tp
XTsKKyAgICAgICAgdHlwZXMuYXBwZW5kKFN0cmluZyh0eXBlU3RyaW5nLmRhdGEsIHR5cGVTdHJp
bmcubGVuZ3RoKSk7CisgICAgfQorCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3ZlY3Rvcl9m
cmVlKCZwYXN0ZWJvYXJkVHlwZXMpOworfQorCitTdHJpbmcgUGxhdGZvcm1QYXN0ZWJvYXJkOjpy
ZWFkU3RyaW5nKGludCwgY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHN0cnVjdCB3cGVfcGFz
dGVib2FyZF9zdHJpbmcgc3RyaW5nOworICAgIHdwZV9wYXN0ZWJvYXJkX2dldF9zdHJpbmcobV9w
YXN0ZWJvYXJkLCB0eXBlLnV0ZjgoKS5kYXRhKCksICZzdHJpbmcpOworCisgICAgU3RyaW5nIHJl
dHVyblZhbHVlKHN0cmluZy5kYXRhLCBzdHJpbmcubGVuZ3RoKTsKKworICAgIHdwZV9wYXN0ZWJv
YXJkX3N0cmluZ19mcmVlKCZzdHJpbmcpOworICAgIHJldHVybiByZXR1cm5WYWx1ZTsKK30KKwor
dm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50
JiBjb250ZW50KQoreworICAgIHN0YXRpYyBjb25zdCBjaGFyIHBsYWluVGV4dFtdID0gInRleHQv
cGxhaW47Y2hhcnNldD11dGYtOCI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgaHRtbFRleHRbXSA9
ICJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCI7CisKKyAgICBDU3RyaW5nIHRleHRTdHJpbmcgPSBj
b250ZW50LnRleHQudXRmOCgpOworICAgIENTdHJpbmcgbWFya3VwU3RyaW5nID0gY29udGVudC5t
YXJrdXAudXRmOCgpOworCisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19wYWlyIHBh
aXJzW10gPSB7CisgICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0ciwgMCB9IH0sCisg
ICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0ciwgMCB9IH0sCisgICAgfTsKKyAgICB3
cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0udHlwZSwgcGxhaW5UZXh0
LCBzdHJsZW4ocGxhaW5UZXh0KSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxp
emUoJnBhaXJzWzBdLnN0cmluZywgdGV4dFN0cmluZy5kYXRhKCksIHRleHRTdHJpbmcubGVuZ3Ro
KCkpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1sxXS50eXBl
LCBodG1sVGV4dCwgc3RybGVuKGh0bWxUZXh0KSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X2luaXRpYWxpemUoJnBhaXJzWzFdLnN0cmluZywgbWFya3VwU3RyaW5nLmRhdGEoKSwgbWFya3Vw
U3RyaW5nLmxlbmd0aCgpKTsKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX21hcCBt
YXAgPSB7IHBhaXJzLCAyIH07CisKKyAgICB3cGVfcGFzdGVib2FyZF93cml0ZShtX3Bhc3RlYm9h
cmQsICZtYXApOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBdLnR5
cGUpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS5zdHJpbmcpOwor
ICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1sxXS50eXBlKTsKKyAgICB3cGVf
cGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMV0uc3RyaW5nKTsKK30KKwordm9pZCBQbGF0
Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBz
dHJpbmcpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19wYWlyIHBhaXJzW10g
PSB7CisgICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0ciwgMCB9IH0sCisgICAgfTsK
KyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0udHlwZSwgdHlw
ZS51dGY4KCkuZGF0YSgpLCB0eXBlLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgd3BlX3Bhc3RlYm9h
cmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzBdLnN0cmluZywgc3RyaW5nLnV0ZjgoKS5kYXRh
KCksIHN0cmluZy51dGY4KCkubGVuZ3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfbWFwIG1hcCA9IHsgcGFpcnMsIDEgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dyaXRl
KG1fcGFzdGVib2FyZCwgJm1hcCk7CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgm
cGFpcnNbMF0udHlwZSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBd
LnN0cmluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3JlZW5XUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMDhlYjdkZThjOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKQEAgLTAsMCAr
MSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKworI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworaW50IHNjcmVlbkRlcHRoKFdpZGdldCopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMjQ7Cit9CisKK2ludCBzY3JlZW5EZXB0aFBlckNvbXBv
bmVudChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDg7Cit9
CisKK2Jvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xv
cnMoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworRmxvYXRSZWN0IHNjcmVlblJlY3QoV2lk
Z2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9hdFJlY3QoMCwg
MCwgMTAyNCwgNjQwKTsKK30KKworRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0
KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9hdFJlY3QoMCwgMCwg
MTAyNCwgNjQwKTsKK30KKworYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoV2lkZ2V0
KikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNTllMzNiZGNjMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKQEAg
LTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVXUEUuaCIK
KworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVXNlckFnZW50U2NyaXB0
cy5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgiCisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxSZW5kZXJU
aGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZShQYWdlKikKK3sKKyAgICBzdGF0aWMgUmVu
ZGVyVGhlbWUmIHRoZW1lID0gUmVuZGVyVGhlbWVXUEU6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKKyAg
ICByZXR1cm4gdGhlbWU7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVXUEU6OnVwZGF0ZUNhY2hlZFN5
c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJikg
Y29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVX
UEU6OmV4dHJhRGVmYXVsdFN0eWxlU2hlZXQoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworI2lmIEVOQUJMRShWSURFTykKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6bWVkaWFDb250cm9s
c1N0eWxlU2hlZXQoKQoreworICAgIHJldHVybiBBU0NJSUxpdGVyYWwobWVkaWFDb250cm9sc0Jh
c2VVc2VyQWdlbnRTdHlsZVNoZWV0KTsKK30KKworU3RyaW5nIFJlbmRlclRoZW1lV1BFOjptZWRp
YUNvbnRyb2xzU2NyaXB0KCkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7Cisg
ICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0xvY2FsaXplZFN0cmluZ3NKYXZh
U2NyaXB0LCBzaXplb2YobWVkaWFDb250cm9sc0xvY2FsaXplZFN0cmluZ3NKYXZhU2NyaXB0KSk7
CisgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0Jhc2VKYXZhU2NyaXB0LCBz
aXplb2YobWVkaWFDb250cm9sc0Jhc2VKYXZhU2NyaXB0KSk7CisgICAgcmV0dXJuIHNjcmlwdEJ1
aWxkZXIudG9TdHJpbmcoKTsKK30KKyNlbmRpZgorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWZiMmZlODk0YzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaApAQCAtMCwwICsx
LDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlclRoZW1l
V1BFIGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1lIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFJlbmRlclRoZW1lPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVuZGVyVGhlbWVXUEUpOworICAgIH0KKworICAgIFN0cmluZyBleHRyYURlZmF1bHRTdHls
ZVNoZWV0KCkgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIFN0cmluZyBtZWRpYUNv
bnRyb2xzU3R5bGVTaGVldCgpIG92ZXJyaWRlOworICAgIFN0cmluZyBtZWRpYUNvbnRyb2xzU2Ny
aXB0KCkgb3ZlcnJpZGU7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBSZW5kZXJUaGVtZVdQRSgp
ID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5SZW5kZXJUaGVtZVdQRSgpID0gZGVmYXVsdDsKKwor
ICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZv
bnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3Jv
bGxiYXJUaGVtZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFy
VGhlbWVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjlm
ZTVkNGQ4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9T
Y3JvbGxiYXJUaGVtZVdQRS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU2Nyb2xsYmFyVGhlbWVXUEUuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzQnV0
dG9ucyhTY3JvbGxiYXImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK2Jvb2wgU2Nyb2xsYmFyVGhlbWVXUEU6Omhhc1RodW1iKFNjcm9sbGJhciYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworSW50UmVjdCBT
Y3JvbGxiYXJUaGVtZVdQRTo6YmFja0J1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFy
dCwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7
Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFyVGhlbWVXUEU6OmZvcndhcmRCdXR0b25SZWN0KFNjcm9s
bGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gSW50UmVjdCgpOworfQorCitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjp0cmFj
a1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBJbnRSZWN0KCk7Cit9CisKK1Njcm9sbGJhclRoZW1lJiBTY3JvbGxiYXJUaGVtZTo6bmF0
aXZlVGhlbWUoKQoreworICAgIHN0YXRpYyBTY3JvbGxiYXJUaGVtZVdQRSB0aGVtZTsKKyAgICBy
ZXR1cm4gdGhlbWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY3MTg1YWRhMjlkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmgKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Nyb2xsYmFyVGhlbWVXUEUgZmluYWwgOiBwdWJs
aWMgU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUgeworcHVibGljOgorICAgIFNjcm9sbGJhclRoZW1l
V1BFKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflNjcm9sbGJhclRoZW1lV1BFKCkgPSBkZWZh
dWx0OworCisgICAgYm9vbCBoYXNCdXR0b25zKFNjcm9sbGJhciYpIG92ZXJyaWRlOworICAgIGJv
b2wgaGFzVGh1bWIoU2Nyb2xsYmFyJikgb3ZlcnJpZGU7CisKKyAgICBJbnRSZWN0IGJhY2tCdXR0
b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkg
b3ZlcnJpZGU7CisgICAgSW50UmVjdCBmb3J3YXJkQnV0dG9uUmVjdChTY3JvbGxiYXImLCBTY3Jv
bGxiYXJQYXJ0LCBib29sIHBhaW50aW5nID0gZmFsc2UpIG92ZXJyaWRlOworICAgIEludFJlY3Qg
dHJhY2tSZWN0KFNjcm9sbGJhciYsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93cGUvU291bmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Nv
dW5kV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTkxNDc3
YTQ1OTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291
bmRXUEUuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdW5k
LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3ZvaWQgc3lzdGVtQmVlcCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1RoZW1lV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1YWQ5NzczZDg0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNw
cApAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGhlbWVXUEUuaCIK
KworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VGhlbWVXUEU+IHRoZW1lOworICAgIHJldHVybiAmdGhl
bWUuZ2V0KCk7Cit9CisKK0xlbmd0aFNpemUgVGhlbWVXUEU6OmNvbnRyb2xTaXplKENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgY29uc3QgTGVuZ3RoU2l6
ZSYgem9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikgY29uc3QKK3sKKyAgICBpZiAoIXpvb21l
ZFNpemUud2lkdGguaXNJbnRyaW5zaWNPckF1dG8oKSAmJiAhem9vbWVkU2l6ZS5oZWlnaHQuaXNJ
bnRyaW5zaWNPckF1dG8oKSkKKyAgICAgICAgcmV0dXJuIFRoZW1lOjpjb250cm9sU2l6ZShwYXJ0
LCBmb250Q2FzY2FkZSwgem9vbWVkU2l6ZSwgem9vbUZhY3Rvcik7CisKKyAgICBzd2l0Y2ggKHBh
cnQpIHsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAg
ICAgcmV0dXJuIExlbmd0aFNpemUgeyBMZW5ndGgoMTIsIEZpeGVkKSwgTGVuZ3RoKDEyLCBGaXhl
ZCkgfTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4g
VGhlbWU6OmNvbnRyb2xTaXplKHBhcnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFj
dG9yKTsKK30KKwordm9pZCBUaGVtZVdQRTo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJv
bFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9h
dCkKK3sKKyAgICBzd2l0Y2ggKHBhcnQpIHsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICAg
ICAgcGFpbnRDaGVja2JveChzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3Ip
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcGFpbnRSYWRp
byhzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFB1c2hCdXR0b25QYXJ0OgorICAgICAgICBwYWludEJ1dHRvbihzdGF0ZXMs
IGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50
Q2hlY2tib3goQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXplIGNvcm5l
cigyLCAyKTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJlY3QsIGNv
cm5lciwgY29ybmVyLCBjb3JuZXIsIGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAgIHBhdGgu
YWRkUm91bmRlZFJlY3Qocm91bmRlZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3Io
bWFrZVJHQigyMjQsIDIyNCwgMjI0KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKwor
ICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tl
Q29sb3IobWFrZVJHQig5NCwgOTQsIDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgp
OworCisgICAgaWYgKHN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0
ZSkgeworICAgICAgICBhdXRvJiByZWN0ID0gcm91bmRlZFJlY3QucmVjdCgpOworCisgICAgICAg
IFBhdGggY2hlY2tlclBhdGg7CisgICAgICAgIGNoZWNrZXJQYXRoLm1vdmVUbyhGbG9hdFBvaW50
KHJlY3QueCgpICsgMywgcmVjdC5tYXhZKCkgLSAzKSk7CisgICAgICAgIGNoZWNrZXJQYXRoLmFk
ZExpbmVUbyhGbG9hdFBvaW50KHJlY3QubWF4WCgpIC0gMywgcmVjdC55KCkgKyAzKSk7CisKKyAg
ICAgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoMik7CisgICAgICAgIGNvbnRleHQuc2V0
U3Ryb2tlQ29sb3IobWFrZVJHQig4NCwgODQsIDg0KSk7CisgICAgICAgIGNvbnRleHQuc3Ryb2tl
UGF0aChjaGVja2VyUGF0aCk7CisgICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludFJhZGlv
KENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
U2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFk
ZEVsbGlwc2Uoem9vbWVkUmVjdCk7CisKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihtYWtlUkdC
KDIyNCwgMjI0LCAyMjQpKTsKKyAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisgICAgY29u
dGV4dC5zZXRTdHJva2VUaGlja25lc3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvciht
YWtlUkdCKDk0LCA5NCwgOTQpKTsKKyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisKKyAg
ICBpZiAoc3RhdGVzLnN0YXRlcygpICYgQ29udHJvbFN0YXRlczo6Q2hlY2tlZFN0YXRlKSB7Cisg
ICAgICAgIEZsb2F0UmVjdCBjaGVja2VyUmVjdCA9IHpvb21lZFJlY3Q7CisgICAgICAgIGNoZWNr
ZXJSZWN0LmluZmxhdGUoLTMpOworCisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7CisgICAgICAg
IGNoZWNrZXJQYXRoLmFkZEVsbGlwc2UoY2hlY2tlclJlY3QpOworCisgICAgICAgIGNvbnRleHQu
c2V0RmlsbENvbG9yKG1ha2VSR0IoODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LmZpbGxQ
YXRoKGNoZWNrZXJQYXRoKTsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50QnV0dG9u
KENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
U2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3JuZXIoMiwgMik7
CisgICAgRmxvYXRSb3VuZGVkUmVjdCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBjb3JuZXIsIGNv
cm5lciwgY29ybmVyLCBjb3JuZXIpOworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZFJvdW5k
ZWRSZWN0KHJvdW5kZWRSZWN0KTsKKworICAgIENvbG9yIGZpbGxDb2xvciA9IHN0YXRlcy5zdGF0
ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OlByZXNzZWRTdGF0ZSA/IG1ha2VSR0IoMjQ0LCAyNDQsIDI0
NCkgOiBtYWtlUkdCKDIyNCwgMjI0LCAyMjQpOworICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGZp
bGxDb2xvcik7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0
U3Ryb2tlVGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5
NCwgOTQsIDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
VGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43MzlmNWMxZTFjYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCkBAIC0wLDAg
KzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJUaGVtZS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFRoZW1lV1BFIDogcHVibGljIFRoZW1lIHsKK3B1YmxpYzoKKyAgICBUaGVt
ZVdQRSgpIHsgfQorICAgIHZpcnR1YWwgflRoZW1lV1BFKCkgeyB9CisKKyAgICBMZW5ndGhTaXpl
IGNvbnRyb2xTaXplKENvbnRyb2xQYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYsIGNvbnN0IExlbmd0
aFNpemUmLCBmbG9hdCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHBhaW50KENvbnRyb2xQ
YXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jiwg
ZmxvYXQsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxvYXQpIG92ZXJyaWRlOworCitwcml2YXRlOgor
ICAgIHZvaWQgcGFpbnRDaGVja2JveChDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworICAgIHZvaWQgcGFpbnRSYWRpbyhDb250cm9sU3Rh
dGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworICAgIHZv
aWQgcGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYsIGZsb2F0KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjYyZGYwY2M2YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2lkZ2V0LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0
IHdpZGdldCkKK3sKKyAgICBpbml0KHdpZGdldCk7Cit9CisKK1dpZGdldDo6fldpZGdldCgpCit7
CisgICAgQVNTRVJUKCFwYXJlbnQoKSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBXaWRnZXQ6OnNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fZnJh
bWUgPSByZWN0OworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ludFJlY3QgV2lkZ2V0Ojpm
cmFtZVJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lOworfQorCit2b2lkIFdpZGdl
dDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3Im
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzaG93KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6aGlkZSgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggZWNkYmI1MTMxYzcuLjg5ZDcxZDAwOTFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsOTggQEAKKzIwMTctMDQtMjggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2Via2l0LWRldiB0aHJlYWQ6CisgICAgICAgIGh0
dHBzOi8vbGlzdHMud2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8yMDE3LUFwcmlsLzAy
ODkyMy5odG1sCisKKyAgICAgICAgRXhpc3RpbmcgZmlsZXMgY2hhbmdlZCB0byBwcm9wZXJseSB1
c2UgUExBVEZPUk0oV1BFKSBidWlsZCBndWFyZHMgb3Igb3RoZXIKKyAgICAgICAgV1BFLXNwZWNp
ZmljIGFkZGl0aW9ucyAoZS5nLiBwYXN0ZWJvYXJkIHN1cHBvcnQpLgorICAgICAgICBJbi1maWxl
IGNoYW5nZXMgcmVtb3ZlZCBmcm9tIHRoaXMgQ2hhbmdlTG9nIGVudHJ5IGZvciBicmV2aXR5Lgor
CisgICAgICAgICogUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwOgorICAgICAg
ICAqIFBsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRl
LWZvcndhcmRpbmctaGVhZGVycy5wbDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6
CisgICAgICAgICogU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC9B
UEkvYy93cGUvV2ViS2l0Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwOgorICAgICAg
ICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3Np
dGluZ1J1bkxvb3AuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKiBTaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9y
Lmg6CisgICAgICAgICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAqIFNoYXJl
ZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYk1v
dXNlRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oOgorICAg
ICAgICAqIFNoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6
CisgICAgICAgICogU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAg
ICAqIFNoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQv
d3BlL05hdGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dwZS9OYXRpdmVX
ZWJXaGVlbEV2ZW50V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL3dwZS9XZWJFdmVudEZhY3Rvcnku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy93cGUvV0tBUElDYXN0V1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
cmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9XUEVWaWV3Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L1dQRVZpZXdDbGllbnQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVu
dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1
bmRsZS54bWw6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9y
U2VydmVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nl
c3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xh
dW5jaGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1Rl
eHRDaGVja2VyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL3dwZS9XZWJJbnNw
ZWN0b3JQcm94eVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUGFn
ZVByb3h5V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdB
cmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFByb3h5V1BF
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmguCisgICAgICAgICogVUlQcm9jZXNzL3dwZS9X
ZWJQcm9jZXNzUG9vbFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJD
b250ZXh0TWVudUNsaWVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3QuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9Db21wb3NpdGluZ01hbmFnZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJh
d2luZ0FyZWFXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L0RyYXdpbmdBcmVhV1BFLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93
cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJJbnNwZWN0b3JXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdl
V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oLgorICAgICAgICAq
IFdlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHdwZS93cGUtd2Vi
a2l0LnBjLmluOiBBZGRlZC4KKwogMjAxNy0wNC0yOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgVGVhY2ggV2ViUHJvY2Vzc1Bvb2wgdG8gdHJhY2sgYSBtYXAg
b2YgU2Vzc2lvbklEcyB0byBXZWJQYWdlUHJveHlzIHRvIG1hbmFnZSB0aGVpciBsaWZldGltZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0
b3IuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3Iu
Y3BwCmluZGV4IDE0MzI5YjkzODkxLi44ZDEwMWNmNGYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcApAQCAtNTEsNiArNTEs
OSBAQCB2b2lkIEdTb2NrZXRNb25pdG9yOjpzdGFydChHU29ja2V0KiBzb2NrZXQsIEdJT0NvbmRp
dGlvbiBjb25kaXRpb24sIFJ1bkxvb3AmIHJ1bgogICAgIGdfc291cmNlX3NldF9uYW1lKG1fc291
cmNlLmdldCgpLCAiW1dlYktpdF0gU29ja2V0IG1vbml0b3IiKTsKICAgICBtX2NhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayk7CiAgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fc291cmNlLmdl
dCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihzb2NrZXRTb3VyY2VDYWxsYmFjayks
IHRoaXMsIG51bGxwdHIpOworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBnX3NvdXJjZV9zZXRfcHJp
b3JpdHkobV9zb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfSElHSCArIDMwKTsKKyNlbmRpZgogICAg
IGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5nZXQoKSwgcnVuTG9vcC5tYWluQ29udGV4dCgpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uMzljZWE2YTE1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDQ3MyBAQAorZmlsZShNQUtFX0RJUkVDVE9S
WSAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0pCisKK2NvbmZpZ3VyZV9maWxlKHdwZS93
cGUtd2Via2l0LnBjLmluICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5wYyBAT05MWSkK
KworYWRkX2RlZmluaXRpb25zKC1EV0VCS0lUMl9DT01QSUxBVElPTikKKworYWRkX2RlZmluaXRp
b25zKC1ETElCRVhFQ0RJUj0iJHtMSUJFWEVDX0lOU1RBTExfRElSfSIpCisKK3NldChXZWJLaXQy
X1VTRV9QUkVGSVhfSEVBREVSIE9OKQorCithZGRfY3VzdG9tX3RhcmdldCh3ZWJraXQyd3BlLWZv
cndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lU
Ml9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIC0taW5jbHVkZS1w
YXRoICR7V0VCS0lUMl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1w
bGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3VwCispCisKK3NldChXRUJLSVQyX0VYVFJBX0RFUEVO
REVOQ0lFUworICAgIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCispCisKK2xpc3QoQVBQ
RU5EIFdlYlByb2Nlc3NfU09VUkNFUworICAgIFdlYlByb2Nlc3MvRW50cnlQb2ludC91bml4L1dl
YlByb2Nlc3NNYWluLmNwcAorKQorCitsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VT
CisgICAgTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC91bml4L05ldHdvcmtQcm9jZXNzTWFpbi5j
cHAKKykKKworbGlzdChBUFBFTkQgRGF0YWJhc2VQcm9jZXNzX1NPVVJDRVMKKyAgICBEYXRhYmFz
ZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0RhdGFiYXNlUHJvY2Vzc01haW4uY3BwCispCisKK2xp
c3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUworICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3Rv
Y29scy9zb3VwL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCisKKyAgICBOZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2RlcnNTb3VwLmNwcAorICAgIE5ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwCisKKyAgICBOZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Byb2Nlc3NTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25T
b3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRT
b3VwLmNwcAorCisgICAgUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCisKKyAg
ICBQbGF0Zm9ybS9JUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAKKyAgICBQbGF0Zm9ybS9JUEMv
dW5peC9Db25uZWN0aW9uVW5peC5jcHAKKworICAgIFBsYXRmb3JtL2NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuY3BwCisKKyAgICBQbGF0Zm9ybS9nbGliL01vZHVs
ZUdsaWIuY3BwCisKKyAgICBQbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAorICAgIFBsYXRm
b3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKworICAgIFBsdWdpblByb2Nlc3MvdW5peC9Q
bHVnaW5Db250cm9sbGVyUHJveHlVbml4LmNwcAorICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVn
aW5Qcm9jZXNzTWFpblVuaXguY3BwCisgICAgUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nl
c3NVbml4LmNwcAorCisgICAgU2hhcmVkL0FQSS9jL2NhaXJvL1dLSW1hZ2VDYWlyby5jcHAKKwor
ICAgIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9zb3VwL0F1dGhlbnRpY2F0aW9uTWFuYWdlclNvdXAu
Y3BwCisKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzU2NlbmUuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvU2ltcGxlVmlld3Bv
cnRDb250cm9sbGVyLmNwcAorCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFj
ZS5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
VGhyZWFkZWRDb21wb3NpdG9yLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3Ro
cmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKKworICAg
IFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5jcHAK
KworICAgIFNoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKKworICAgIFNoYXJl
ZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCisKKyAgICBTaGFyZWQvbGludXgvV2ViTWVtb3J5U2Ft
cGxlckxpbnV4LmNwcAorCisgICAgU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291
cC5jcHAKKyAgICBTaGFyZWQvc291cC9XZWJFcnJvcnNTb3VwLmNwcAorCisgICAgU2hhcmVkL3Vu
aXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKKworICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3Bw
CisgICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93
cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKKwor
ICAgIFVJUHJvY2Vzcy9CYWNraW5nU3RvcmUuY3BwCisgICAgVUlQcm9jZXNzL0RlZmF1bHRVbmRv
Q29udHJvbGxlci5jcHAKKyAgICBVSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nTm9u
ZS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3Bw
CisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKworICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAorCisg
ICAgVUlQcm9jZXNzL0FQSS9DL2NhaXJvL1dLSWNvbkRhdGFiYXNlQ2Fpcm8uY3BwCisKKyAgICBV
SVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nvb2tpZU1hbmFnZXJTb3VwLmNwcAorCisgICAgVUlQcm9j
ZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3Np
dGluZ01hbmFnZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVBy
b3h5V1BFLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAorICAg
IFVJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcAorICAgIFVJUHJv
Y2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0Ns
aWVudC5jcHAKKworICAgIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRT
ZXJ2ZXJTb3VwLmNwcAorCisgICAgVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5z
cGVjdG9yU2VydmVyV1BFLmNwcAorCisgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNz
TGF1bmNoZXJXUEUuY3BwCisKKyAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9T
dG9yZVVuaXguY3BwCisgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5Qcm9jZXNzUHJv
eHlVbml4LmNwcAorCisgICAgVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisK
KyAgICBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvdW5peC9XZWJzaXRlRGF0YVN0b3JlVW5peC5jcHAK
KworICAgIFVJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAKKworICAgIFVJUHJv
Y2Vzcy9nc3RyZWFtZXIvSW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVz
dC5jcHAKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQcm94eUdTdHJlYW1lci5jcHAK
KworICAgIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwCisKKyAgICBV
SVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcAorICAgIFVJUHJvY2Vz
cy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy93cGUvVGV4dENo
ZWNrZXJXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAK
KyAgICBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3Bl
L1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVu
Y2VzV1BFLmNwcAorICAgIFVJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCisKKyAg
ICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKyAgICBX
ZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJLaXRTb3VwQ29va2llSmFyU3FsaXRlLmNwcAorCisg
ICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9nbGliL0luamVjdGVkQnVuZGxlR2xpYi5jcHAK
KworICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNw
cAorCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250
ZXh0TWVudUNsaWVudFdQRS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9X
ZWJFZGl0b3JDbGllbnRXUEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUv
V2ViUG9wdXBNZW51V1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0FjY2VsZXJhdGVk
U3VyZmFjZS5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0FyZWFBbGxvY2F0b3IuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3QuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvVXBkYXRlQXRsYXMuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0cmVhbWVyL1dl
YlBhZ2VHU3RyZWFtZXIuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0
aW5nTWFuYWdlci5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BF
LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCisg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAorCisgICAgV2ViUHJvY2Vz
cy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCisgICAgV2ViUHJvY2Vzcy9z
b3VwL1dlYlByb2Nlc3NTb3VwLmNwcAorCisgICAgV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01h
aW5XUEUuY3BwCisKKyAgICAjIEZJWE1FLUdXU0hBUkU6CisgICAgRGF0YWJhc2VQcm9jZXNzL2d0
ay9EYXRhYmFzZVByb2Nlc3NNYWluR3RrLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX01F
U1NBR0VTX0lOX0ZJTEVTCisgICAgVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9ERVJJVkVEX1NPVVJD
RVMKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dS
ZXNvdXJjZUJ1bmRsZS5jCispCisKK3NldChXZWJLaXQyUmVzb3VyY2VzCispCisKK2lmIChFTkFC
TEVfV0VCX0FVRElPKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdDJSZXNvdXJjZXMKKyAgICAgICAg
IiAgICAgICAgPGZpbGUgYWxpYXM9XCJhdWRpby9Db21wb3NpdGVcIj5Db21wb3NpdGUud2F2PC9m
aWxlPlxuIgorICAgICkKK2VuZGlmICgpCisKK2ZpbGUoV1JJVEUgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgIjw/
eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVURi04Pz5cbiIKKyAgICAiPGdyZXNvdXJjZXM+XG4i
CisgICAgIiAgICA8Z3Jlc291cmNlIHByZWZpeD1cIi9vcmcvd2Via2l0d3BlL3Jlc291cmNlc1wi
PlxuIgorICAgICR7V2ViS2l0MlJlc291cmNlc30KKyAgICAiICAgIDwvZ3Jlc291cmNlPlxuIgor
ICAgICI8L2dyZXNvdXJjZXM+XG4iCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQ
VVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3Vy
Y2VCdW5kbGUuYworICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dl
YktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBnbGliLWNvbXBp
bGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9T
b3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMgLS10YXJnZXQ9JHtERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYyAk
e0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1
bmRsZS54bWwKKyAgICBWRVJCQVRJTQorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVf
RElSRUNUT1JJRVMKKyAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSIKKyAgICAiJHtERVJJ
VkVEX1NPVVJDRVNfRElSfSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgor
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkIgorICAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L0RhdGFiYXNlUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vz
cy9DdXN0b21Qcm90b2NvbHMvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL3Nv
dXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL3VuaXgiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L1BsYXRmb3JtL0lQQy9nbGliIgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9y
bS9JUEMvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vY2xhc3NpZmllciIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvciIKKyAgICAiJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC91bml4IgorICAgICIk
e1dFQktJVDJfRElSfS9TaGFyZWQvd3BlIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvY2Fpcm8iCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9zb3VwIgor
ICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvd3BlIgorICAgICIke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9saW51eCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3Nv
dXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlIgorICAg
ICIke1dURl9ESVJ9L3d0Zi9ndGsvIgorICAgICIke1dURl9ESVJ9L3d0Zi9nb2JqZWN0IgorICAg
ICIke1dURl9ESVJ9IgorICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7RUdMX0lOQ0xV
REVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lOQ0xV
REVfRElSU30KKyAgICAke0dTVFJFQU1FUl9JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9J
TkNMVURFX0RJUlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKyAgICAke1dQRV9JTkNM
VURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfTElCUkFSSUVTCisgICAgV2ViQ29y
ZVBsYXRmb3JtV1BFCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRTJfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgJHtHU1RSRUFNRVJfTElCUkFSSUVT
fQorICAgICR7SEFSRkJVWlpfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9Cisg
ICAgJHtXUEVfTElCUkFSSUVTfQorKQorCitzZXQoSW5zcGVjdG9yRmlsZXMKKyAgICAke0NNQUtF
X1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlLyouaHRtbAorICAgICR7Q01BS0VfU09VUkNFX0RJUn0v
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS8qLmpzCisgICAgJHtDTUFL
RV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy8qLmNzcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0v
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRGVidWcvKi5jc3MKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVn
LyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9E
SVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJy
b3IvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvRXh0ZXJuYWwvRVNMaW50LyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VzcHJpbWEvKi5q
cworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL2d0ay8qLnBuZworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL2d0ay8qLnN2ZworICAgICR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzLyou
anMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3hpZXMvKi5qcworICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC8qLmpzCisgICAg
JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy8qLmNzcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvKi5qcworICAg
ICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
V29ya2Vycy9IZWFwU25hcHNob3QvKi5qcworKQorCitmaWxlKEdMT0IgSW5zcGVjdG9yRmlsZXNE
ZXBlbmRlbmNpZXMKKyAgICAke0luc3BlY3RvckZpbGVzfQorKQorCisjIERlcml2ZWRTb3VyY2Vz
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMgaXMK
KyMgZXhwZWN0ZWQgaW4gRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC8uCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9T
T1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0
b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFT
Q1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAg
IENPTU1BTkQgY3AgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0
b3IvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BF
Q1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFu
ZHMuanMKKykKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09V
UkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAg
ICBERVBFTkRTICR7SW5zcGVjdG9yRmlsZXNEZXBlbmRlbmNpZXN9CisgICAgICAgICAgICAke0RF
UklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
SW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCisgICAgICAgICAgICAke1RPT0xTX0RJUn0vd3Bl
L2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkKKyAgICBDT01NQU5EICR7
VE9PTFNfRElSfS93cGUvZ2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSAt
LW91dHB1dD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdS
ZXNvdXJjZUJ1bmRsZS54bWwgJHtJbnNwZWN0b3JGaWxlc30gJHtERVJJVkVEX1NPVVJDRVNfV0VC
SU5TUEVDVE9SVUlfRElSfS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmRD
b21tYW5kcy5qcworICAgIFZFUkJBVElNCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBP
VVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVz
b3VyY2VCdW5kbGUuYworICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9S
VUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBnbGliLWNv
bXBpbGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkgLS1zb3VyY2VkaXI9JHtERVJJVkVEX1NPVVJDRVNfV0VC
SU5TUEVDVE9SVUlfRElSfSAtLXRhcmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JV
SV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jICR7REVSSVZFRF9TT1VSQ0VTX1dFQklO
U1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElN
CispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNf
V0VCSU5TUEVDVE9SVUlfRElSfS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAg
ICBERVBFTkRTICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0
b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvSW5zcGVjdG9yU2VydmVyL2Zyb250LWVuZC9pbnNwZWN0b3JQYWdlSW5kZXguaHRtbAorICAg
IENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvZnJvbnQtZW5kIC0tdGFyZ2V0
PSR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdS
ZXNvdXJjZUJ1bmRsZS5jICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJ
bnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVSQkFUSU0KKykKKworbGlzdChBUFBF
TkQgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0RFUklWRURfU09VUkNFUworICAgICR7REVSSVZF
RF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMK
KyAgICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJbnNwZWN0
b3JHUmVzb3VyY2VCdW5kbGUuYworKQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNv
dXJjZXNfTElCUkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQ
RU5EIFdQRVdlYkluc3BlY3RvclJlc291cmNlc19JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgJHtH
TElCX0lOQ0xVREVfRElSU30KKykKKworYWRkX2xpYnJhcnkoV1BFV2ViSW5zcGVjdG9yUmVzb3Vy
Y2VzIFNIQVJFRCAke1dQRVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVN9KQor
YWRkX2RlcGVuZGVuY2llcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgV2ViS2l0MikKK3Rhcmdl
dF9saW5rX2xpYnJhcmllcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgJHtXUEVXZWJJbnNwZWN0
b3JSZXNvdXJjZXNfTElCUkFSSUVTfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKFdQRVdl
Ykluc3BlY3RvclJlc291cmNlcyBQVUJMSUMgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfSU5D
TFVERV9ESVJFQ1RPUklFU30pCitpbnN0YWxsKFRBUkdFVFMgV1BFV2ViSW5zcGVjdG9yUmVzb3Vy
Y2VzIERFU1RJTkFUSU9OICIke0xJQl9JTlNUQUxMX0RJUn0iKQorCitpZiAoRVhQT1JUX0RFUFJF
Q0FURURfV0VCS0lUMl9DX0FQSSkKKyAgICBzZXQoV1BFX0lOU1RBTExFRF9XRUJLSVRfSEVBREVS
UworICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tBcnJheS5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorICAgICAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2MvV0tEYXRhLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0FQSS9jL1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmgKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGljdGlvbmFyeS5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL1dLRXZlbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJ
L2MvV0tGaW5kT3B0aW9ucy5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9X
S0dlb21ldHJ5LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLSW1hZ2Uu
aAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlQXJyYXkuaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlRGljdGlvbmFyeS5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS051bWJlci5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VMb2FkVHlwZXMuaAorICAgICAgICAk
e1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmgKKyAgICAg
ICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLU2VjdXJpdHlPcmlnaW5SZWYuaAorICAg
ICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaAorICAgICAg
ICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tUeXBlLmgKKyAgICAgICAgJHtXRUJLSVQy
X0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJMLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0FQSS9jL1dLVVJMUmVxdWVzdC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkv
Yy9XS1VSTFJlc3BvbnNlLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dL
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9BUEkvYy9XS1VzZXJDb250ZW50VVJMUGF0dGVybi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9BUEkvYy9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmgKKworICAgICAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oCisKKyAgICAgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5oCisgICAg
ICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3QuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVE
T01XaW5kb3dFeHRlbnNpb24uaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oCisgICAgICAgICR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluaXRpYWxpemUuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVj
dG9yLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaAorICAgICAgICAke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5oCisgICAg
ICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2VCYW5uZXIuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50
LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaAorICAg
ICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUdyb3VwLmgKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VM
b2FkZXJDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZU92ZXJsYXkuaAorICAgICAgICAke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVBvbGljeUNsaWVu
dC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVSYW5nZUhhbmRsZS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCisKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbVJlZi5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdFJl
Zi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dENvbm5lY3Rpb25DbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0RG93bmxvYWRDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SGlzdG9yeUNsaWVudC5oCisgICAgICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorICAg
ICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgKKyAg
ICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5oCisgICAg
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWxUeXBlcy5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmgKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVJbmZvUmVmLmgKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25BY3Rpb25S
ZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9u
RGF0YVJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmln
YXRpb25SZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZp
Z2F0aW9uUmVzcG9uc2VSZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlQ29udGV4dE1lbnVDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRmluZENsaWVudC5oCisgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGb3JtQ2xpZW50LmgK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmgKKyAg
ICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUluamVjdGVkQnVuZGxl
Q2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUxv
YWRlckNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VOYXZpZ2F0aW9uQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVBvbGljeUNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpbkxvYWRQb2xpY3kuaAorICAgICAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCisgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25TdGF0ZVJlZi5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50Q29udHJvbGxlclJl
Zi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJTY3JpcHRS
ZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0
dHJpYnV0ZXMuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tXaW5k
b3dGZWF0dXJlc1JlZi5oCisKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9D
L3dwZS9XS1ZpZXcuaAorCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9z
b3VwL1dLQ29va2llTWFuYWdlclNvdXAuaAorICAgICkKKworICAgIGluc3RhbGwoRklMRVMgJHtX
UEVfSU5TVEFMTEVEX1dFQktJVF9IRUFERVJTfQorICAgICAgICBERVNUSU5BVElPTiAiJHtDTUFL
RV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dwZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFL1dlYktpdCIK
KyAgICAgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIKKyAgICApCisKKyAgICBzZXQoV1BFX0lO
U1RBTExFRF9IRUFERVJTCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy93cGUv
V2ViS2l0LmgKKyAgICApCisKKyAgICBpbnN0YWxsKEZJTEVTICR7V1BFX0lOU1RBTExFRF9IRUFE
RVJTfQorICAgICAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dw
ZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFIgorICAgICAgICBDT01QT05FTlQgIkRldmVsb3BtZW50
IgorICAgICkKKworICAgIGluc3RhbGwoRklMRVMgJHtDTUFLRV9CSU5BUllfRElSfS93cGUtd2Vi
a2l0LnBjCisgICAgICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfS9wa2dj
b25maWciCisgICAgICAgIENPTVBPTkVOVCAiRGV2ZWxvcG1lbnQiCisgICAgKQorZW5kaWYgKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1o
ZWFkZXJzLnBsIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhl
YWRlcnMucGwKaW5kZXggYjYxZGI3ODc3NGEuLmE3ZDNhMGI2YjkyIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbApAQCAt
MzUsNyArMzUsNyBAQCB1c2UgRmlsZTo6U3BlYzo6RnVuY3Rpb25zOwogdXNlIEdldG9wdDo6TG9u
ZzsKIAogbXkgJHNyY1Jvb3QgPSByZWFscGF0aChGaWxlOjpTcGVjLT5jYXRmaWxlKGRpcm5hbWUo
YWJzX3BhdGgoJDApKSwgIi4uLy4uIikpOwotbXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAoImNhIiwg
ImNmIiwgImNvY29hIiwgIkNvY29hIiwgIkNvb3JkaW5hdGVkR3JhcGhpY3MiLCAiY3VybCIsICJl
ZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMiLCAic291cCIsICJ3aW4iKTsKK215IEBwbGF0Zm9ybVBy
ZWZpeGVzID0gKCJjYSIsICJjZiIsICJjb2NvYSIsICJDb2NvYSIsICJDb29yZGluYXRlZEdyYXBo
aWNzIiwgImN1cmwiLCAiZWZsIiwgImd0ayIsICJpb3MiLCAibWFjIiwgInNvdXAiLCAid2luIiwg
IndwZSIpOwogbXkgQGZyYW1ld29ya3MgPSAoIkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiLCAi
V2ViS2l0Iik7CiBteSBAc2tpcHBlZFByZWZpeGVzOwogbXkgQGZyYW1ld29ya0hlYWRlcnM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMmU4ZmJmYmJlNWMuLjMzYTA2OTg4
ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0zOCw2ICszOCwxMCBA
QAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2VNYWMuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChC
VUlMRElOR19XUEVfXykKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlV1BFLmg+CisjZW5kaWYKKwog
LyogV2ViS2l0MiBzaGFyZWQgdHlwZXMgKi8KIAogdHlwZWRlZiB1aW50MzJfdCBXS1R5cGVJRDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNWVmMDYyMjAyYgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKQEAgLTAsMCAr
MSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdLQmFzZVdQRV9oCisjZGVmaW5lIFdLQmFzZVdQRV9oCisKKyNpZm5kZWYgV0tC
YXNlX2gKKyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFkIG9mIHRo
aXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tWaWV3KiBXS1ZpZXdSZWY7CisKKyNlbmRpZiAvKiBXS0Jhc2VXUEVfaCAqLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjUwZWQxYWMyYjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQRV9XZWJL
aXRfaAorI2RlZmluZSBXUEVfV2ViS2l0X2gKKworI2RlZmluZSBCVUlMRElOR19XUEVfXworCisj
aW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4KKwor
Ly8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0L1dL
QXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
RGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGljdGlvbmFyeS5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9yUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2Vv
bWV0cnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tNdXRhYmxlRGljdGlvbmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS051bWJlci5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luUmVmLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVVJMLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLVVJMUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlc3BvbnNlLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CisKKy8vIEZyb20gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy8KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCdW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1
bmRsZUZyYW1lLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUluaXRpYWxpemUuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCdW5kbGVJbnNwZWN0b3IuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVOYXZpZ2F0aW9u
QWN0aW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlTm9kZUhhbmRsZS5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdl
QmFubmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQ
YWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZU92ZXJsYXkuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVQYWdlUG9saWN5Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxl
UGFnZVJlc291cmNlTG9hZENsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VV
SUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVJhbmdlSGFuZGxlLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQnVuZGxlU2NyaXB0V29ybGQuaD4KKworLy8gRnJvbSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYWNrRm9yd2FyZExpc3RJ
dGVtUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0UmVmLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbC5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0NyZWRlbnRpYWxUeXBlcy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1l
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVJbmZvUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0hpdFRlc3RSZXN1
bHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLTmF2aWdhdGlvbkRhdGFSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZp
Z2F0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VDb25m
aWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tTZXNzaW9u
U3RhdGVSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyU2NyaXB0UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLVmlldy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1dpbmRvd0ZlYXR1cmVzUmVmLmg+CisKKyNlbmRpZiAvLyBXUEVfV2Vi
S2l0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5jcHAKaW5kZXggOGFjZjUwNjkyMTAuLjIyNDM4OGVlYzY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5M
b29wLmNwcApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdvcmtRdWV1
ZVBvb2woKQogICAgIHsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpCiAgICAgICAgIG1fdGhyZWFkQ291bnRMaW1pdCA9IDE7CiAjZWxzZQogICAg
ICAgICBtX3RocmVhZENvdW50TGltaXQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6
bWF4KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9z
aXRpbmdSdW5Mb29wLmgKaW5kZXggODE2ZDQ2N2I1MTAuLjY0NWQ3YjkwZDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5o
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFE
RUQpCiAKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAj
aW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBv
c2l0b3IuY3BwCmluZGV4IDU0ZDk2MGIzZDBlLi45NmQyOTY2YmRlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAK
QEAgLTQzLDEyICs0MywxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLVJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRocmVhZGVkQ29tcG9zaXRvcjo6
Y3JlYXRlKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0
IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1l
U3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZsYWdzKQor
UmVmPFRocmVhZGVkQ29tcG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50
JiBjbGllbnQsIFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwg
ZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERv
RnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50Rmxh
Z3MpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkZWRDb21wb3NpdG9yKGNsaWVu
dCwgdmlld3BvcnRTaXplLCBzY2FsZUZhY3RvciwgbmF0aXZlU3VyZmFjZUhhbmRsZSwgZG9GcmFt
ZVN5bmMsIHBhaW50RmxhZ3MpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaHJlYWRlZENv
bXBvc2l0b3IoY2xpZW50LCB3ZWJQYWdlLCB2aWV3cG9ydFNpemUsIHNjYWxlRmFjdG9yLCBuYXRp
dmVTdXJmYWNlSGFuZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFncykpOwogfQogCi1UaHJlYWRl
ZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmIGNsaWVudCwgY29uc3QgSW50
U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3Vy
ZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6
OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKK1RocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFkZWRDb21w
b3NpdG9yKENsaWVudCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBJbnRTaXplJiB2
aWV3cG9ydFNpemUsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFu
ZGxlLCBTaG91bGREb0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRG
bGFncyBwYWludEZsYWdzKQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV92aWV3cG9y
dFNpemUodmlld3BvcnRTaXplKQogICAgICwgbV9zY2FsZUZhY3RvcihzY2FsZUZhY3RvcikKQEAg
LTY0LDEzICs2NCwyMSBAQCBUaHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihD
bGllbnQmIGNsaWVudCwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaQogICAgIG1fY2xpZW50UmVu
ZGVyc05leHRGcmFtZS5zdG9yZShmYWxzZSk7CiAgICAgbV9jb29yZGluYXRlVXBkYXRlQ29tcGxl
dGlvbldpdGhDbGllbnQuc3RvcmUoZmFsc2UpOwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1f
Y29tcG9zaXRpbmdNYW5hZ2VyLmVzdGFibGlzaENvbm5lY3Rpb24od2ViUGFnZSk7CisjZW5kaWYK
KwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBtX3NjZW5lID0gYWRvcHRSZWYo
bmV3IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSh0aGlzKSk7CisjaWYgUExBVEZPUk0oR1RLKQog
ICAgICAgICBpZiAobV9uYXRpdmVTdXJmYWNlSGFuZGxlKSB7CiAgICAgICAgICAgICBjcmVhdGVH
TENvbnRleHQoKTsKICAgICAgICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKICAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUoZmFsc2UpOworI2VsaWYg
UExBVEZPUk0oV1BFKQorICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CisjZW5kaWYK
ICAgICB9KTsKIH0KIApAQCAtODEsNiArODksOCBAQCBUaHJlYWRlZENvbXBvc2l0b3I6On5UaHJl
YWRlZENvbXBvc2l0b3IoKQogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdMQ29udGV4
dCgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyNpZiBQTEFURk9STShHVEsp
CiAgICAgQVNTRVJUKG1fbmF0aXZlU3VyZmFjZUhhbmRsZSk7CiAKICAgICBtX2NvbnRleHQgPSBH
TENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxHTE5hdGl2
ZVdpbmRvd1R5cGU+KG1fbmF0aXZlU3VyZmFjZUhhbmRsZSksICZQbGF0Zm9ybURpc3BsYXk6OnNo
YXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpKTsKQEAgLTkxLDYgKzEwMSwyMiBAQCB2b2lkIFRo
cmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKICAgICAgICAgaWYgKG1fY29udGV4
dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgICAgICBtX2NvbnRleHQtPnN3YXBJbnRl
cnZhbCgwKTsKICAgICB9CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBhdXRvJiBw
bGF0Zm9ybURpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKTsKKyAgICBS
RUxFQVNFX0FTU0VSVChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkpOwor
ICAgIG1fdGFyZ2V0ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihwbGF0Zm9ybURpc3Bs
YXkpLmNyZWF0ZUVHTFRhcmdldCgqdGhpcywgbV9jb21wb3NpdGluZ01hbmFnZXIucmVsZWFzZUNv
bm5lY3Rpb25GZCgpKTsKKyAgICBBU1NFUlQobV90YXJnZXQpOworICAgIG1fdGFyZ2V0LT5pbml0
aWFsaXplKG1fdmlld3BvcnRTaXplKTsKKworICAgIG1fY29udGV4dCA9IEdMQ29udGV4dDo6Y3Jl
YXRlQ29udGV4dEZvcldpbmRvdyhtX3RhcmdldC0+bmF0aXZlV2luZG93KCksICZwbGF0Zm9ybURp
c3BsYXkpOworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVybjsKKyNlbmRp
ZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCkBAIC0xMDAsMTYg
KzEyNiwyMyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCiAgICAgbV9j
b21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIG1fc2NlbmUtPnB1cmdlR0xSZXNvdXJjZXMoKTsK
ICAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAg
IG1fdGFyZ2V0ID0gbnVsbHB0cjsKKyNlbmRpZgogICAgICAgICBtX3NjZW5lID0gbnVsbHB0cjsK
ICAgICB9KTsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9S
KQogICAgIG1fZGlzcGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7CiAjZW5kaWYKICAg
ICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9IG51bGxwdHI7CisjaWYgVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyAgICBtX2Rpc3BsYXlSZWZyZXNoTW9uaXRvci0+
aW52YWxpZGF0ZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXRO
YXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogeworI2lm
IFBMQVRGT1JNKEdUSykKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c3RvcFVwZGF0ZXMoKTsK
ICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGhhbmRsZV0gewogICAgICAgICAvLyBBIG5ldyBuYXRp
dmUgaGFuZGxlIGNhbid0IGJlIHNldCB3aXRob3V0IGRlc3Ryb3lpbmcgdGhlIHByZXZpb3VzIG9u
ZSBmaXJzdCBpZiBhbnkuCkBAIC0xMjMsNiArMTU2LDcgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0
b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUp
CiAgICAgICAgICAgICBtX2NvbnRleHQgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgfSk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldFNjYWxlRmFjdG9yKGZsb2F0
IHNjYWxlKQpAQCAtMTQ2LDYgKzE4MCwxMCBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0
Vmlld3BvcnRTaXplKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbAogewog
ICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdmlld3BvcnRTaXplLCBzY2FsZV0gewogICAgICAgICBt
X3ZpZXdwb3J0U2l6ZSA9IHZpZXdwb3J0U2l6ZTsKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAg
IGlmIChtX3RhcmdldCkKKyAgICAgICAgICAgIG1fdGFyZ2V0LT5yZXNpemUodmlld3BvcnRTaXpl
KTsKKyNlbmRpZgogICAgICAgICBtX3NjYWxlRmFjdG9yID0gc2NhbGU7CiAgICAgICAgIG1fbmVl
ZHNSZXNpemUgPSB0cnVlOwogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c2NoZWR1bGVV
cGRhdGUoKTsKQEAgLTE4OSw5ICsyMjcsMTggQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJl
bmRlckxheWVyVHJlZSgpCiAgICAgaWYgKCFtX3NjZW5lIHx8ICFtX3NjZW5lLT5pc0FjdGl2ZSgp
KQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgaWYgKCFtX2NvbnRl
eHQpCisgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOworI2VuZGlmCisKICAgICBpZiAoIW1fY29u
dGV4dCB8fCAhbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJu
OwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1fdGFyZ2V0LT5mcmFtZVdpbGxSZW5kZXIoKTsK
KyNlbmRpZgorCiAgICAgaWYgKG1fbmVlZHNSZXNpemUpIHsKICAgICAgICAgZ2xWaWV3cG9ydCgw
LCAwLCBtX3ZpZXdwb3J0U2l6ZS53aWR0aCgpLCBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAg
ICAgICAgIG1fbmVlZHNSZXNpemUgPSBmYWxzZTsKQEAgLTIxMSw3ICsyNTgsMTMgQEAgdm9pZCBU
aHJlYWRlZENvbXBvc2l0b3I6OnJlbmRlckxheWVyVHJlZSgpCiAKICAgICBtX2NvbnRleHQtPnN3
YXBCdWZmZXJzKCk7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV90YXJnZXQtPmZyYW1lUmVu
ZGVyZWQoKTsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQogICAgIHNjZW5lVXBkYXRlRmlu
aXNoZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2NlbmVVcGRh
dGVGaW5pc2hlZCgpCkBAIC0yNzAsNSArMzIzLDMyIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9y
Ojpjb29yZGluYXRlVXBkYXRlQ29tcGxldGlvbldpdGhDbGllbnQoKQogfQogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShXUEUpCitzdGF0aWMgdm9pZCBkZWJ1Z1RocmVhZGVkQ29tcG9zaXRvckZQUygp
Cit7CisgICAgc3RhdGljIGRvdWJsZSBsYXN0VGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgc3Rh
dGljIHVuc2lnbmVkIGZyYW1lQ291bnQgPSAwOworCisgICAgZG91YmxlIGN0ID0gY3VycmVudFRp
bWUoKTsKKyAgICBmcmFtZUNvdW50Kys7CisKKyAgICBpZiAoY3QgLSBsYXN0VGltZSA+PSA1LjAp
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJUaHJlYWRlZENvbXBvc2l0b3I6IGZyYW1lIGNh
bGxiYWNrcyAlLjJmIEZQU1xuIiwgZnJhbWVDb3VudCAvIChjdCAtIGxhc3RUaW1lKSk7CisgICAg
ICAgIGxhc3RUaW1lID0gY3Q7CisgICAgICAgIGZyYW1lQ291bnQgPSAwOworICAgIH0KK30KKwor
dm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmZyYW1lQ29tcGxldGUoKQoreworICAgIEFTU0VSVCht
X2NvbXBvc2l0aW5nUnVuTG9vcC0+aXNDdXJyZW50KCkpOworICAgIHN0YXRpYyBib29sIHJlcG9y
dEZQUyA9ICEhc3RkOjpnZXRlbnYoIldQRV9USFJFQURFRF9DT01QT1NJVE9SX0ZQUyIpOworICAg
IGlmIChyZXBvcnRGUFMpCisgICAgICAgIGRlYnVnVGhyZWFkZWRDb21wb3NpdG9yRlBTKCk7CisK
KyAgICBzY2VuZVVwZGF0ZUZpbmlzaGVkKCk7Cit9CisjZW5kaWYKKwogfQogI2VuZGlmIC8vIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZENvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCA2Nzk1NGEwN2E0
Ni4uZWIxMjQ1OTc1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKQEAgLTQyLDYgKzQyLDExIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0o
V1BFKQorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1EaXNwbGF5V1BFLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogc3Ry
dWN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZTsKIH0KQEAgLTUxLDggKzU2LDEzIEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOwogY2xhc3MgQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50OwogY2xhc3MgVGhyZWFkZWREaXNwbGF5UmVmcmVz
aE1vbml0b3I7CitjbGFzcyBXZWJQYWdlOwogCi1jbGFzcyBUaHJlYWRlZENvbXBvc2l0b3IgOiBw
dWJsaWMgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8VGhyZWFkZWRDb21wb3NpdG9yPiB7CitjbGFzcyBUaHJlYWRlZENvbXBvc2l0b3Ig
OiBwdWJsaWMgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50LCBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8VGhyZWFkZWRDb21wb3NpdG9yPgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAs
IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6Q2xpZW50Cisj
ZW5kaWYKKyAgICB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkZWRDb21wb3NpdG9y
KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTY0LDcgKzc0LDcg
QEAgcHVibGljOgogCiAgICAgZW51bSBjbGFzcyBTaG91bGREb0ZyYW1lU3luYyB7IE5vLCBZZXMg
fTsKIAotICAgIHN0YXRpYyBSZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBjcmVhdGUoQ2xpZW50Jiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRp
dmVTdXJmYWNlSGFuZGxlID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0ZyYW1lU3lu
Yzo6WWVzLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CisgICAgc3Rh
dGljIFJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBXZWJQYWdlJiwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVT
dXJmYWNlSGFuZGxlID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0ZyYW1lU3luYzo6
WWVzLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CiAgICAgdmlydHVh
bCB+VGhyZWFkZWRDb21wb3NpdG9yKCk7CiAKICAgICB2b2lkIHNldE5hdGl2ZVN1cmZhY2VIYW5k
bGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCk7CkBAIC04NywxMyArOTcsMTggQEAgcHVibGljOgog
I2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgVGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3Vy
ZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBh
aW50RmxhZ3MpOworICAgIFRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmLCBXZWJQYWdlJiwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVT
dXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6
UGFpbnRGbGFncyk7CiAKICAgICAvLyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQKICAg
ICB2b2lkIHJlbmRlck5leHRGcmFtZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlld3Bv
cnQoKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXll
cklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpIG92ZXJyaWRlOwogCisjaWYgUExB
VEZPUk0oV1BFKQorICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6U3VyZmFjZTo6
Q2xpZW50CisgICAgdm9pZCBmcmFtZUNvbXBsZXRlKCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAg
IHZvaWQgcmVuZGVyTGF5ZXJUcmVlKCk7CiAgICAgdm9pZCBzY2VuZVVwZGF0ZUZpbmlzaGVkKCk7
CiAKQEAgLTEwMSw2ICsxMTYsMTIgQEAgcHJpdmF0ZToKIAogICAgIENsaWVudCYgbV9jbGllbnQ7
CiAgICAgUmVmUHRyPENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZT4gbV9zY2VuZTsKKworI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBDb21wb3NpdGluZ01hbmFnZXIgbV9jb21wb3NpdGluZ01hbmFnZXI7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFy
Z2V0PiBtX3RhcmdldDsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdM
Q29udGV4dD4gbV9jb250ZXh0OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdwb3J0U2l6
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAppbmRleCA3ZmM0ZDdjNGIz
Zi4uYTQzNWUxOWJiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgK
QEAgLTM0LDYgKzM0LDggQEAgZW51bSBEcmF3aW5nQXJlYVR5cGUgewogICAgIERyYXdpbmdBcmVh
VHlwZVRpbGVkQ29yZUFuaW1hdGlvbiwKICNlbmRpZgogICAgIERyYXdpbmdBcmVhVHlwZVJlbW90
ZUxheWVyVHJlZSwKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBEcmF3aW5nQXJlYVR5cGVXUEUK
ICNlbHNlCiAgICAgRHJhd2luZ0FyZWFUeXBlSW1wbAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAppbmRleCBjYjFmMTE4Yzg5Mi4uMTRm
ZGRlMjI0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXli
b2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJk
RXZlbnQuaApAQCAtNTEsNiArNTEsMTAgQEAgdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZl
bnQ7CiBPQkpDX0NMQVNTIFdlYkV2ZW50OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCitz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYktleWJvYXJk
RXZlbnQgewpAQCAtNjIsNiArNjYsOCBAQCBwdWJsaWM6CiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudChHZGtFdmVudCosIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYsIElucHV0
TWV0aG9kRmlsdGVyOjpFdmVudEZha2VkRm9yQ29tcG9zaXRpb24sIFZlY3RvcjxTdHJpbmc+JiYg
Y29tbWFuZHMpOwogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQoOjpXZWJFdmVudCAqKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqKTsKICNlbmRpZgogCiAj
aWYgVVNFKEFQUEtJVCkKQEAgLTcyLDYgKzc4LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNGYWtl
RXZlbnRGb3JDb21wb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmFrZUV2ZW50Rm9yQ29tcG9z
aXRpb247IH0KICNlbGlmIFBMQVRGT1JNKElPUykKICAgICA6OldlYkV2ZW50KiBuYXRpdmVFdmVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KKyNlbGlmIFBMQVRGT1JN
KFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG51bGxw
dHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVX
ZWJNb3VzZUV2ZW50LmgKaW5kZXggODhjZDE0MTA5MzguLjI4M2ZjMzM0OTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKQEAgLTM4LDYgKzM4LDEwIEBA
IE9CSkNfQ0xBU1MgTlNWaWV3OwogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZlV2ViTW91c2VF
dmVudCA6IHB1YmxpYyBXZWJNb3VzZUV2ZW50IHsKQEAgLTQ3LDYgKzUxLDggQEAgcHVibGljOgog
I2VsaWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoY29uc3QgTmF0aXZl
V2ViTW91c2VFdmVudCYpOwogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoR2RrRXZlbnQqLCBpbnQp
OworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdw
ZV9pbnB1dF9wb2ludGVyX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwogI2VuZGlm
CiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNTUsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
R2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQo
KTsgfQogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQq
IG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVu
dC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCAx
MTgxMjRjZGViYy4uODJmM2IyNGQ0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2
ZVdlYlRvdWNoRXZlbnQuaApAQCAtMzQsNiArMzQsOCBAQAogc3RydWN0IF9VSVdlYlRvdWNoRXZl
bnQ7CiAjZWxpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRyR3Rr
Lmg+CisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSA8d3BlL2lucHV0Lmg+CiAjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Niw2ICs0OCw5IEBAIHB1YmxpYzoKICAgICBOYXRp
dmVXZWJUb3VjaEV2ZW50KEdka0V2ZW50KiwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4m
Jik7CiAgICAgTmF0aXZlV2ViVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50Jik7
CiAgICAgY29uc3QgR2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRp
dmVFdmVudC5nZXQoKTsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYlRvdWNo
RXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKTsKKyAgICBjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyogbmF0aXZl
RmFsbGJhY2tUb3VjaFBvaW50KCkgY29uc3QgeyByZXR1cm4gJm1fZmFsbGJhY2tUb3VjaFBvaW50
OyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTU1LDYgKzYwLDggQEAgcHJpdmF0ZToKIAogI2lm
IFBMQVRGT1JNKEdUSykKICAgICBHVW5pcXVlUHRyPEdka0V2ZW50PiBtX25hdGl2ZUV2ZW50Owor
I2VsaWYgUExBVEZPUk0oV1BFKQorICAgIHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3
IG1fZmFsbGJhY2tUb3VjaFBvaW50OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAppbmRleCA1ZGIwYmNlOGZlYi4uMTVmOTU4NjcxNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaApAQCAtMzgs
NiArMzgsMTAgQEAgT0JKQ19DTEFTUyBOU1ZpZXc7CiB0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBH
ZGtFdmVudDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9pbnB1dF9h
eGlzX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOYXRpdmVX
ZWJXaGVlbEV2ZW50IDogcHVibGljIFdlYldoZWVsRXZlbnQgewpAQCAtNDcsNiArNTEsOCBAQCBw
dWJsaWM6CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChjb25z
dCBOYXRpdmVXZWJXaGVlbEV2ZW50Jik7CiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVu
dCopOworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwogI2VuZGlm
CiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNTUsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAgR2RrRXZl
bnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQoKTsgfQog
I2VsaWYgUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50KCkgY29uc3Qg
eyByZXR1cm4gMDsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQqIG5hdGl2
ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IGJlMTRlZWIzYmJiLi5iMmUyZjQ3MzQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTg0LDExICs4NCwxNCBAQAogI2lmIFBMQVRG
T1JNKElPUykKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSW5zcGVjdG9yT3ZlcmxheS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2FyZC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VsZWN0aW9uUmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hh
cmVkQnVmZmVyLmg+CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCisjaWYgUExBVEZPUk0oSU9T
KSB8fCBQTEFURk9STShXUEUpCisjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CisjZW5k
aWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oPgogI2VuZGlmCkBAIC0xNDkyLDYgKzE0
OTUsMjMgQEAgYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRJbWFnZT46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkSW1hZ2UmIHAKIAogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShXUEUpCit2b2lkIEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7
CisgICAgZW5jb2RlciA8PCBjb250ZW50LnRleHQ7CisgICAgZW5jb2RlciA8PCBjb250ZW50Lm1h
cmt1cDsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC50ZXh0KSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC5tYXJrdXApKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYgLy8gUExBVEZPUk0oV1BF
KQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8RGljdGF0aW9uQWx0ZXJuYXRpdmU+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgRGljdGF0aW9uQWx0ZXJuYXRpdmUmIGRpY3RhdGlvbkFsdGVy
bmF0aXZlKQogewogICAgIGVuY29kZXIgPDwgZGljdGF0aW9uQWx0ZXJuYXRpdmUucmFuZ2VTdGFy
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRl
eCA3ODI0MjBkZmU4OC4uNWI4ZDYwZjM2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTEzNCw2ICsxMzQsMTIgQEAgc3RydWN0IFNvdXBO
ZXR3b3JrUHJveHlTZXR0aW5nczsKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorbmFt
ZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50czsKK30KKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOwpAQCAtNDE2LDYgKzQyMiwxMyBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlT
ZXR0aW5ncz4gewogfTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQordGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudD4geworICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdl
YkNvbnRlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBh
c3RlYm9hcmRXZWJDb250ZW50Jik7Cit9OworI2VuZGlmCisKIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5l
Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmgKaW5kZXggOTZiYmE1ZDlhMzQuLjNlOGY4MmU2ZDc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTM3
NSw3ICszNzUsNyBAQAogICAgIG1hY3JvKFBpY3RvZ3JhcGhGb250RmFtaWx5LCBwaWN0b2dyYXBo
Rm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJBcHBsZSBDb2xvciBFbW9qaSIsICIiLCAiIikg
XAogICAgIFwKIAotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZX1BSRUZF
UkVOQ0UobWFjcm8pIFwKICAgICBtYWNybyhTdGFuZGFyZEZvbnRGYW1pbHksIHN0YW5kYXJkRm9u
dEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJUaW1lcyIsICIiLCAiIikgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2ODNiODEyZjNiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50V1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJO
YXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYktleWJvYXJkRXZlbnQ6Ok5hdGl2ZVdl
YktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisg
ICAgOiBXZWJLZXlib2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRF
dmVudChldmVudCkpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZDlkNDNkZTVlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BF
LmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJN
b3VzZUV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK05hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IpCisgICAgOiBXZWJNb3VzZUV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VF
dmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViVG91
Y2hFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRvdWNo
RXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wY2M2
NjU4Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0
aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTmF0aXZlV2ViVG91Y2hFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0
b3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRp
dmVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqIGV2ZW50LCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYlRvdWNoRXZlbnQoV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3RvcikpCisgICAgLCBt
X2ZhbGxiYWNrVG91Y2hQb2ludCB7IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwsIDAs
IDAsIDAsIDAgfQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBldmVudC0+dG91Y2hw
b2ludHNfbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgcG9pbnQgPSBldmVudC0+dG91Y2hw
b2ludHNbaV07CisgICAgICAgIGlmIChwb2ludC50eXBlICE9IHdwZV9pbnB1dF90b3VjaF9ldmVu
dF90eXBlX251bGwpIHsKKyAgICAgICAgICAgIG1fZmFsbGJhY2tUb3VjaFBvaW50ID0gcG9pbnQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdl
YldoZWVsRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJX
aGVlbEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YmE5NjJlZDRkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3Bl
L05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50
RmFjdG9yeS5oIgorCisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
TmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYldo
ZWVsRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGV2ZW50LCBkZXZp
Y2VTY2FsZUZhY3RvcikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kODdhOTI3YWJiMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAo
YykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1P
VE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVk
ZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgU3RyaW5n
IGdldEV4ZWN1dGFibGVQYXRoKCkKK3sKKyAgICBDU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0
Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7CisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwo
KSkKKyAgICAgICAgcmV0dXJuIGRpcmVjdG9yeU5hbWUoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aC5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK3N0YXRpYyBTdHJpbmcgZmluZFdlYktpdFByb2Nlc3MoY29uc3QgY2hhciogcHJvY2Vz
c05hbWUpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4ZWNEaXJlY3RvcnkgPSBnX2dldGVu
digiV0VCS0lUX0VYRUNfUEFUSCIpOworICAgIGlmIChleGVjRGlyZWN0b3J5KSB7CisgICAgICAg
IFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9t
RmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWNEaXJlY3RvcnkpLCBwcm9jZXNzTmFtZSk7Cisg
ICAgICAgIGlmIChmaWxlRXhpc3RzKHByb2Nlc3NQYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBw
cm9jZXNzUGF0aDsKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0g
Z2V0RXhlY3V0YWJsZVBhdGgoKTsKKyAgICBpZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVsbCgpKSB7
CisgICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChl
eGVjdXRhYmxlUGF0aCwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4aXN0cyhwcm9j
ZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAgfQorCisgICAg
cmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKExJQkVYRUNESVIpLCBwcm9jZXNzTmFtZSk7Cit9CisKK1N0cmluZyBleGVjdXRh
YmxlUGF0aE9mV2ViUHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJX
UEVXZWJQcm9jZXNzIik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2Vz
cygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVQbHVnaW5Qcm9jZXNzIik7
Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQoreworICAgIHJl
dHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFTmV0d29ya1Byb2Nlc3MiKTsKK30KKworI2lmIEVO
QUJMRShEQVRBQkFTRV9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVBy
b2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFRGF0YWJhc2VQcm9j
ZXNzIik7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjU1NzFlMWFhYzk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsMjE1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2luY2x1ZGUg
PFdlYkNvcmUvU2Nyb2xsYmFyLmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRlIDx3cGUv
aW5wdXQuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitzdGF0aWMgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCBt
b2RpZmllcnMgPSAwOworICAgIHVuc2lnbmVkIGV2ZW50TW9kaWZpZXJzID0gZXZlbnQtPm1vZGlm
aWVyczsKKworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2Rp
Zmllcl9jb250cm9sKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRyb2xLZXk7
CisgICAgaWYgKGV2ZW50TW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX3No
aWZ0KQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OworICAgIGlmIChl
dmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9hbHQpCisgICAgICAg
IG1vZGlmaWVycyB8PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAm
IHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9tZXRhKQorICAgICAgICBtb2RpZmllcnMgfD0g
V2ViRXZlbnQ6Ok1ldGFLZXk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1v
ZGlmaWVycz4obW9kaWZpZXJzKTsKK30KKworc3RhdGljIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJT
dHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkK
K3sKKyAgICBjb25zdCBjaGFyKiBzaW5nbGVDaGFyYWN0ZXIgPSB3cGVfaW5wdXRfc2luZ2xlX2No
YXJhY3Rlcl9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24o
KSwgZXZlbnQpOworICAgIGlmIChzaW5nbGVDaGFyYWN0ZXIpCisgICAgICAgIHJldHVybiBTdHJp
bmcoc2luZ2xlQ2hhcmFjdGVyKTsKKworICAgIGdsb25nIGxlbmd0aDsKKyAgICBHVW5pcXVlUHRy
PGd1bmljaGFyMj4gdWNoYXIxNihnX3VjczRfdG9fdXRmMTYoJmV2ZW50LT51bmljb2RlLCAxLCAw
LCAmbGVuZ3RoLCBudWxscHRyKSk7CisgICAgaWYgKHVjaGFyMTYpCisgICAgICAgIHJldHVybiBT
dHJpbmcodWNoYXIxNi5nZXQoKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMg
U3RyaW5nIGlkZW50aWZpZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJv
YXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBpZGVudGlmaWVyID0gd3BlX2lu
cHV0X2lkZW50aWZpZXJfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2lu
Z2xldG9uKCksIGV2ZW50KTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFN0
cmluZyhpZGVudGlmaWVyKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiVSslMDRYIiwg
ZXZlbnQtPnVuaWNvZGUpOworfQorCitXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBl
dmVudCkKK3sKKyAgICBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nID0gc2luZ2xlQ2hhcmFj
dGVyU3RyaW5nRm9yS2V5RXZlbnQoZXZlbnQpOworICAgIFN0cmluZyBpZGVudGlmaWVyU3RyaW5n
ID0gaWRlbnRpZmllclN0cmluZ0ZvcktleUV2ZW50KGV2ZW50KTsKKworICAgIHJldHVybiBXZWJL
ZXlib2FyZEV2ZW50KGV2ZW50LT5wcmVzc2VkID8gV2ViRXZlbnQ6OktleURvd24gOiBXZWJFdmVu
dDo6S2V5VXAsCisgICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmluZywgc2luZ2xlQ2hhcmFjdGVy
U3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAorICAgICAgICB3cGVfaW5wdXRfd2luZG93c19rZXlf
Y29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwg
ZXZlbnQpLAorICAgICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwK
KyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVudC0+dGltZSk7Cit9CisKK1dl
Yk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQor
eworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOworICAgIHN3aXRj
aCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
bW90aW9uOgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAg
ICAgdHlwZSA9IGV2ZW50LT5zdGF0ZSA/IFdlYkV2ZW50OjpNb3VzZURvd24gOiBXZWJFdmVudDo6
TW91c2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAg
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b24gPSBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsK
KyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9l
dmVudF90eXBlX21vdGlvbjoKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
YnV0dG9uOgorICAgICAgICBpZiAoZXZlbnQtPmJ1dHRvbiA9PSAxKQorICAgICAgICAgICAgYnV0
dG9uID0gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQt
PmJ1dHRvbiA9PSAyKQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6UmlnaHRC
dXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMykKKyAgICAgICAgICAg
IGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHVuc2lnbmVkIGNsaWNrQ291bnQgPSAodHlw
ZSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSA/IDEgOiAwOworCisgICAgLy8gRklYTUU6IFByb3Bl
ciBidXR0b24gc3VwcG9ydC4gTW9kaWZpZXJzLiBkZWx0YVgvWS9aLiBDbGljayBjb3VudC4KKyAg
ICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBv
c2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYk1vdXNl
RXZlbnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIDAsIDAsIDAs
IGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+
dGltZSk7Cit9CisKK1dlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGFyZC1jb2RlIHRoaXMu
CisgICAgZW51bSBBeGlzIHsKKyAgICAgICAgVmVydGljYWwsCisgICAgICAgIEhvcml6b250YWws
CisgICAgICAgIFNtb290aAorICAgIH07CisKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxU
aWNrczsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgZGVsdGE7CisgICAgc3dpdGNoIChldmVudC0+
YXhpcykgeworICAgIGNhc2UgVmVydGljYWw6CisgICAgICAgIHdoZWVsVGlja3MgPSBXZWJDb3Jl
OjpGbG9hdFNpemUoMCwgZXZlbnQtPnZhbHVlIC8gc3RkOjphYnMoZXZlbnQtPnZhbHVlKSk7Cisg
ICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsKKyAgICAgICAgZGVsdGEuc2NhbGUoV2ViQ29yZTo6
U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBIb3Jpem9udGFsOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKGV2
ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSksIDApOworICAgICAgICBkZWx0YSA9
IHdoZWVsVGlja3M7CisgICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4
ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU21vb3RoOgorICAg
ICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1ZSAvIGRl
dmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH07CisKKyAgICBXZWJDb3Jl
OjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBvc2l0aW9uLnNj
YWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2Vi
RXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIGRlbHRhLCB3aGVlbFRp
Y2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8
V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKK30KKworc3RhdGljIFdlYktp
dDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBv
aW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9y
YXcqIHBvaW50KQoreworICAgIGlmIChwb2ludC0+aWQgIT0gbWFpbkV2ZW50SWQpCisgICAgICAg
IHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5Owor
CisgICAgc3dpdGNoIChwb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpUb3VjaFByZXNzZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9t
b3Rpb246CisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hNb3ZlZDsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAg
ICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIHJldHVybiBXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworfQorCitXZWJUb3Vj
aEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAg
V2ViRXZlbnQ6OlR5cGUgdHlwZSA9IFdlYkV2ZW50OjpOb1R5cGU7CisgICAgc3dpdGNoIChldmVu
dC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAg
ICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaFN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgdHlwZSA9IFdl
YkV2ZW50OjpUb3VjaE1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3Rv
dWNoX2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hFbmQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgVmVjdG9yPFdlYktp
dDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiB0b3VjaFBvaW50czsKKyAgICB0b3VjaFBvaW50cy5y
ZXNlcnZlQ2FwYWNpdHkoZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aCk7CisKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytpKSB7CisgICAg
ICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAgICBpZiAocG9p
bnQudHlwZSA9PSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnRDb29yZGluYXRlcyhw
b2ludC54LCBwb2ludC55KTsKKyAgICAgICAgcG9pbnRDb29yZGluYXRlcy5zY2FsZSgxIC8gZGV2
aWNlU2NhbGVGYWN0b3IpOworICAgICAgICB0b3VjaFBvaW50cy51bmNoZWNrZWRBcHBlbmQoCisg
ICAgICAgICAgICBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludChwb2ludC5pZCwgc3RhdGVG
b3JUb3VjaFBvaW50KGV2ZW50LT5pZCwgJnBvaW50KSwKKyAgICAgICAgICAgICAgICBwb2ludENv
b3JkaW5hdGVzLCBwb2ludENvb3JkaW5hdGVzKSk7CisgICAgfQorCisgICAgcmV0dXJuIFdlYlRv
dWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMo
MCksIGV2ZW50LT50aW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uYTJhYTAzNDUwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorCitzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50Oworc3RydWN0IHdwZV9pbnB1dF9w
b2ludGVyX2V2ZW50Oworc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudDsKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYkV2ZW50RmFjdG9yeSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFdlYktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2tleWJvYXJkX2V2ZW50Kik7CisgICAgc3RhdGljIFdlYk1vdXNlRXZlbnQgY3JlYXRlV2ViTW91
c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3Rvcik7CisgICAgc3RhdGljIFdlYldoZWVsRXZlbnQgY3JlYXRlV2ViV2hlZWxFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7Cisg
ICAgc3RhdGljIFdlYlRvdWNoRXZlbnQgY3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X3RvdWNoX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKaW5kZXggNzhhMzgwNDE1OWUuLjdiZmEwMzdkYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01NTcsNCArNTU3LDggQEAgaW5saW5lIFByb3h5
aW5nUmVmUHRyPFdlYkdyYW1tYXJEZXRhaWw+IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJE
ZXRhaWwmIGdyYW0KICNpbmNsdWRlICJXS0FQSUNhc3RHdGsuaCIKICNlbmRpZgogCisjaWYgZGVm
aW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRlICJXS0FQSUNhc3RXUEUuaCIKKyNlbmRpZgor
CiAjZW5kaWYgLy8gV0tBUElDYXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0Mvd3BlL1dLQVBJQ2FzdFdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4wZjhhMWU3MTcwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQVBJ
Q2FzdFdQRV9oCisjZGVmaW5lIFdLQVBJQ2FzdFdQRV9oCisKKyNpZm5kZWYgV0tBUElDYXN0X2gK
KyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tBUElDYXN0LmhcIiBpbnN0ZWFkIG9mIHRoaXMg
ZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKworI2luY2x1ZGUgIldLVmlldy5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorCituYW1lc3BhY2UgV0tXUEUgeworY2xhc3MgVmll
dzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dLX0FERF9BUElfTUFQUElORyhXS1ZpZXdS
ZWYsIFdLV1BFOjpWaWV3KQorCitpbmxpbmUgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mg
dG9WaWV3U3RhdGVGbGFncyhXS1ZpZXdTdGF0ZSB3a1ZpZXdTdGF0ZSkKK3sKKyAgICB1bnNpZ25l
ZCB2aWV3U3RhdGVGbGFncyA9IDA7CisKKyAgICBpZiAod2tWaWV3U3RhdGUgJiBrV0tWaWV3U3Rh
dGVJc0luV2luZG93KQorICAgICAgICB2aWV3U3RhdGVGbGFncyB8PSBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc0luV2luZG93OworICAgIGlmICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlz
VmlzaWJsZSkKKyAgICAgICAgdmlld1N0YXRlRmxhZ3MgfD0gV2ViQ29yZTo6QWN0aXZpdHlTdGF0
ZTo6SXNWaXNpYmxlOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkFjdGl2aXR5
U3RhdGU6OkZsYWdzPih2aWV3U3RhdGVGbGFncyk7Cit9CisKK30KKworI2VuZGlmIC8vIFdLQVBJ
Q2FzdFdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3Bl
L1dLVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjYmIyMzcxNWVmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1Zp
ZXcuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVmlldy5o
IgorCisjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJQYWdlQ2xp
ZW50SW1wbC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIK
KwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdL
V1BFOjpWaWV3OjpjcmVhdGUobnVsbHB0ciwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkpOworfQor
CitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVjdCB3cGVfdmlld19i
YWNrZW5kKiBiYWNrZW5kLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7
CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUoYmFja2VuZCwgKnRvSW1wbChj
b25maWd1cmF0aW9uKSkpOworfQorCitXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYg
dmlldykKK3sKKyAgICByZXR1cm4gdG9BUEkoJnRvSW1wbCh2aWV3KS0+cGFnZSgpKTsKK30KKwor
dm9pZCBXS1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3UmVmIHZpZXcsIFdLVmlld1N0YXRlIHZpZXdT
dGF0ZSkKK3sKKyAgICB0b0ltcGwodmlldyktPnNldFZpZXdTdGF0ZSh0b1ZpZXdTdGF0ZUZsYWdz
KHZpZXdTdGF0ZSkpOworfQorCit2b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmIHZp
ZXcsIGNvbnN0IFdLVmlld0NsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICB0b0ltcGwodmlldykt
PmluaXRpYWxpemVDbGllbnQoY2xpZW50KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0Mvd3BlL1dLVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li41NTllYzJiNDViNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy93cGUvV0tWaWV3LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVmlld19oCisjZGVmaW5l
IFdLVmlld19oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLR2VvbWV0cnkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZDsKKworV0tfRVhQT1JUIFdLVmlld1JlZiBXS1Zp
ZXdDcmVhdGUoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7CitXS19FWFBPUlQgV0tWaWV3UmVmIFdL
Vmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCosIFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYpOworCitXS19FWFBPUlQgV0tQYWdlUmVmIFdLVmlld0dldFBhZ2Uo
V0tWaWV3UmVmKTsKKworZW51bSB7CisgICAga1dLVmlld1N0YXRlSXNJbldpbmRvdyA9IDEgPDwg
MCwKKyAgICBrV0tWaWV3U3RhdGVJc1Zpc2libGUgPSAxIDw8IDEsCit9OwordHlwZWRlZiB1aW50
MzJfdCBXS1ZpZXdTdGF0ZTsKKworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld1N0YXRlKFdL
Vmlld1JlZiwgV0tWaWV3U3RhdGUpOworCit0eXBlZGVmIHZvaWQgKCpXS1ZpZXdGcmFtZURpc3Bs
YXllZCkoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVm
IHN0cnVjdCBXS1ZpZXdDbGllbnRCYXNlIHsKKyAgICBpbnQgdmVyc2lvbjsKKyAgICBjb25zdCB2
b2lkKiBjbGllbnRJbmZvOworfSBXS1ZpZXdDbGllbnRCYXNlOworCit0eXBlZGVmIHN0cnVjdCBX
S1ZpZXdDbGllbnRWMCB7CisgICAgV0tWaWV3Q2xpZW50QmFzZSBiYXNlOworCisgICAgLy8gdmVy
c2lvbiAwCisgICAgV0tWaWV3RnJhbWVEaXNwbGF5ZWQgZnJhbWVEaXNwbGF5ZWQ7Cit9IFdLVmll
d0NsaWVudFYwOworCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1Jl
ZiwgY29uc3QgV0tWaWV3Q2xpZW50QmFzZSopOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorCisjZW5kaWYgLy8gV0tWaWV3X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTQwNGVjNWQ5YjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFn
ZXJQcm94eS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29t
cG9zaXRpbmdNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKKyNpbmNs
dWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV1BFVmll
dy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5LmgiCisjaW5jbHVkZSA8d3BlL3ZpZXctYmFja2VuZC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5KFdL
V1BFOjpWaWV3JiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCit7Cit9CisKK0NvbXBvc2l0aW5n
TWFuYWdlclByb3h5Ojp+Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKSA9IGRlZmF1bHQ7CisKK3Zv
aWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmluaXRpYWxpemUoKQoreworICAgIG1fdmlldy5w
YWdlKCkucHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3ZpZXcu
cGFnZSgpLnBhZ2VJRCgpLCAqdGhpcyk7Cit9CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHk6OmVzdGFibGlzaENvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSGFuZGxl
KQoreworICAgIGNvbm5lY3Rpb25IYW5kbGUgPSBJUEM6OkF0dGFjaG1lbnQod3BlX3ZpZXdfYmFj
a2VuZF9nZXRfcmVuZGVyZXJfaG9zdF9mZChtX3ZpZXcuYmFja2VuZCgpKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmNhMzVjMDdjNGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaApAQCAt
MCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQXR0YWNo
bWVudDsKK30KKworbmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBDb21wb3NpdGluZ01hbmFnZXJQcm94eSBmaW5hbCA6IHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkpOworcHVibGljOgorICAgIENvbXBvc2l0aW5nTWFuYWdlclByb3h5
KFdLV1BFOjpWaWV3Jik7CisgICAgdmlydHVhbCB+Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKTsK
KworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyKSBvdmVycmlkZTsKKworICAgIHZvaWQgZXN0YWJsaXNoQ29u
bmVjdGlvbihJUEM6OkF0dGFjaG1lbnQmKTsKKworICAgIFdLV1BFOjpWaWV3JiBtX3ZpZXc7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5YTAwNTU3
Nzc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUv
Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkgewor
ICAgIEVzdGFibGlzaENvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25I
YW5kbGUpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9E
cmF3aW5nQXJlYVByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3Bl
L0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4zNzNjMGY2N2UyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEsOTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKworI2luY2x1
ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEcmF3aW5nQXJlYVByb3h5V1BFOjpEcmF3
aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IERyYXdpbmdBcmVhUHJv
eHkoRHJhd2luZ0FyZWFUeXBlV1BFLCBwYWdlKQoreworfQorCitEcmF3aW5nQXJlYVByb3h5V1BF
Ojp+RHJhd2luZ0FyZWFQcm94eVdQRSgpCit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQ
RTo6ZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6c2l6ZURpZENoYW5nZSgpCit7CisgICAg
aWYgKG1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSgwLCBmYWxzZSwgbV93ZWJQYWdlUHJveHkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbV9zaXplLCBt
X3Njcm9sbE9mZnNldCksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKK30KKwordm9pZCBEcmF3
aW5nQXJlYVByb3h5V1BFOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6ZnVuY3Rp
b248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKK3sKKyAgICBp
ZiAoIW1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkgeworICAgICAgICBjYWxsYmFja0Z1bmN0aW9u
KENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKAorICAgICAgICBbY2Fs
bGJhY2tGdW5jdGlvbl0geworICAgICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFja0Jh
c2U6OkVycm9yOjpOb25lKTsKKyAgICAgICAgfSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94
eVdQRTo6dXBkYXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUlu
Zm8mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94
eVdQRTo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3Rh
dGVJRCwgY29uc3QgVXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6ZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBj
b25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQoreworICAgIEFTU0VSVCgh
YmFja2luZ1N0b3JlU3RhdGVJRCk7CisKKyAgICBtX2xheWVyVHJlZUNvbnRleHQgPSBsYXllclRy
ZWVDb250ZXh0OworICAgIG1fd2ViUGFnZVByb3h5LmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6
ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRl
SUQsIGNvbnN0IFVwZGF0ZUluZm8mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
dWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5
V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5
V1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFmNDI3YjRjYTI5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJh
d2luZ0FyZWFQcm94eVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJE
cmF3aW5nQXJlYVByb3h5LmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVByb3h5V1BFIGZpbmFsIDogcHVi
bGljIERyYXdpbmdBcmVhUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IERyYXdpbmdBcmVh
UHJveHlXUEUoV2ViUGFnZVByb3h5Jik7CisgICAgdmlydHVhbCB+RHJhd2luZ0FyZWFQcm94eVdQ
RSgpOworCitwcml2YXRlOgorICAgIC8vIERyYXdpbmdBcmVhUHJveHkKKyAgICB2b2lkIGRldmlj
ZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaXplRGlkQ2hhbmdl
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6
ZnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4pIG92ZXJyaWRlOworCisgICAgLy8g
SVBDIG1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHVwZGF0ZSh1aW50NjRfdCBiYWNraW5nU3Rv
cmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRVcGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBV
cGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGl0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29u
c3QgVXBkYXRlSW5mbyYpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYpIG92ZXJyaWRlOworCisgICAgLy8gVGhlIGN1cnJlbnQgbGF5ZXIgdHJlZSBjb250
ZXh0LgorICAgIExheWVyVHJlZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworfTsKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMTY1MzA5NWZiNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VD
bGllbnRJbXBsLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGFnZUNsaWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKyNp
bmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxF
dmVudC5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
V1BFVmlldy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudElt
cGwoV0tXUEU6OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1fc2Nyb2xs
R2VzdHVyZUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxHZXN0dXJlQ29udHJvbGxl
cj4oKSkKK3sKK30KKworUGFnZUNsaWVudEltcGw6On5QYWdlQ2xpZW50SW1wbCgpID0gZGVmYXVs
dDsKKworc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxE
cmF3aW5nQXJlYVByb3h5V1BFPihtX3ZpZXcucGFnZSgpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpCit7Cit9CisKK1dlYkNvcmU6
OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCit7CisgICAg
cmV0dXJuIHsgfTsKK30KKworV2ViQ29yZTo6SW50U2l6ZSBQYWdlQ2xpZW50SW1wbDo6dmlld1Np
emUoKQoreworICAgIHJldHVybiBtX3ZpZXcuc2l6ZSgpOworfQorCitib29sIFBhZ2VDbGllbnRJ
bXBsOjppc1ZpZXdXaW5kb3dBY3RpdmUoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRl
KCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZTsKK30KKworYm9vbCBQ
YWdlQ2xpZW50SW1wbDo6aXNWaWV3Rm9jdXNlZCgpCit7CisgICAgcmV0dXJuIG1fdmlldy52aWV3
U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKK30KKworYm9vbCBQ
YWdlQ2xpZW50SW1wbDo6aXNWaWV3VmlzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fdmlldy52aWV3
U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZTsKK30KKworYm9vbCBQ
YWdlQ2xpZW50SW1wbDo6aXNWaWV3SW5XaW5kb3coKQoreworICAgIHJldHVybiBtX3ZpZXcudmll
d1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworfQorCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpwcm9jZXNzRGlkRXhpdCgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZFJlbGF1bmNoUHJvY2VzcygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OnBhZ2VDbG9zZWQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVmZXJlbmNlc0Rp
ZENoYW5nZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFuZ2VkKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OmRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkKK3sKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkq
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vy
c29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKQoreworfQorCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmll
d3BvcnRBdHRyaWJ1dGVzJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJF
ZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6
OlVuZG9PclJlZG8pCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxsRWRpdENv
bW1hbmRzKCkKK3sKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6Y2FuVW5kb1JlZG8oV2ViUGFn
ZVByb3h5OjpVbmRvT3JSZWRvKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykKK3sK
K30KKworV2ViQ29yZTo6RmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9EZXZpY2VT
cGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIHJlY3Q7
Cit9CisKK1dlYkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRvVXNlclNw
YWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1cm4gcmVjdDsK
K30KKworV2ViQ29yZTo6SW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXco
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50KQoreworICAgIHJldHVybiBwb2ludDsKK30K
KworV2ViQ29yZTo6SW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQoreworICAgIHJldHVybiByZWN0OworfQorCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJk
RXZlbnQmLCBib29sKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNo
RXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCB3YXNFdmVu
dEhhbmRsZWQpCit7CisgICAgaWYgKHdhc0V2ZW50SGFuZGxlZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQg
PSB0b3VjaEV2ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpOworICAgIGlmICh0b3VjaFBv
aW50LT50eXBlID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOworCisgICAgaWYgKG1fc2Ny
b2xsR2VzdHVyZUNvbnRyb2xsZXItPmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7CisgICAgICAg
IHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogYXhpc0V2ZW50ID0gbV9zY3JvbGxHZXN0dXJl
Q29udHJvbGxlci0+YXhpc0V2ZW50KCk7CisgICAgICAgIGlmIChheGlzRXZlbnQtPnR5cGUgIT0g
d3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAgcGFnZS5oYW5kbGVX
aGVlbEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1fdmlldy5w
YWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IHBvaW50ZXJFdmVudCB7CisgICAgICAg
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbCwgdG91Y2hQb2ludC0+dGltZSwKKyAg
ICAgICAgdG91Y2hQb2ludC0+eCwgdG91Y2hQb2ludC0+eSwKKyAgICAgICAgMSwgMAorICAgIH07
CisKKyAgICBzd2l0Y2ggKHRvdWNoUG9pbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF90
b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lu
cHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0
ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5
cGVfbW90aW9uOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVy
X2V2ZW50X3R5cGVfbW90aW9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAxOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAg
ICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0
dG9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAwOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYWdlLmhhbmRs
ZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudCgmcG9pbnRlckV2ZW50LCBwYWdlLmRldmlj
ZVNjYWxlRmFjdG9yKCkpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdh
c05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpCit7Cit9CisK
K1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVu
dVByb3h5KFdlYlBhZ2VQcm94eSYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKyNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVudVByb3h5
PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmLCBj
b25zdCBDb250ZXh0TWVudUNvbnRleHREYXRhJiwgY29uc3QgVXNlckRhdGEmKQoreworICAgIHJl
dHVybiBudWxscHRyOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCit7
Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBs
OjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJp
bmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVXaWxsRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEVu
ZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjp3aWxsUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0m
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVy
ZVNuYXBzaG90KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZSkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQmFja2dy
b3VuZENvbG9yKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVmVmlldygpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRlcmVmVmlldygpCit7Cit9CisKKyNpZiBFTkFCTEUo
VklERU8pCitib29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2lu
Z01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5z
UGVybWlzc2lvblJlcXVlc3QmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQoreworfQorCitX
ZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIFBhZ2VDbGllbnRJbXBsOjp1c2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6VXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jM2NmZDc4ZGZiOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGll
bnRJbXBsLmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQYWdlQ2xpZW50
LmgiCisKK25hbWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI7CisKK2NsYXNzIFBhZ2VDbGll
bnRJbXBsIGZpbmFsIDogcHVibGljIFBhZ2VDbGllbnQgeworcHVibGljOgorICAgIFBhZ2VDbGll
bnRJbXBsKFdLV1BFOjpWaWV3Jik7CisgICAgdmlydHVhbCB+UGFnZUNsaWVudEltcGwoKTsKKwor
cHJpdmF0ZToKKyAgICAvLyBQYWdlQ2xpZW50CisgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdB
cmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7CisgICAg
dm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYsIGJvb2wpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQg
dmlld1Njcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3
U2l6ZSgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7
CisgICAgYm9vbCBpc1ZpZXdGb2N1c2VkKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1ZpZXdWaXNp
YmxlKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1ZpZXdJbldpbmRvdygpIG92ZXJyaWRlOworCisg
ICAgdm9pZCBwcm9jZXNzRGlkRXhpdCgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVsYXVuY2hQ
cm9jZXNzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwYWdlQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgdG9vbFRpcENo
YW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSopIG92ZXJyaWRl
OworCisgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3Im
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKSBvdmVycmlkZTsKKworICAgIHZvaWQgcmVnaXN0
ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJv
eHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFuZHMo
KSBvdmVycmlkZTsKKyAgICBib29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVk
bykgb3ZlcnJpZGU7CisgICAgdm9pZCBleGVjdXRlVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpVbmRv
T3JSZWRvKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0VG9EZXZp
Y2VTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICBXZWJDb3Jl
OjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
IG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IHJvb3RW
aWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworCisgICAgdm9p
ZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3Vj
aEV2ZW50JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisKKyAgICBS
ZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94
eSYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQ
cm94eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpIG92
ZXJyaWRlOworI2VuZGlmCisKKyAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZXhpdEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNv
bnN0IFN0cmluZyYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpIG92ZXJyaWRlOworCisgICAg
dm9pZCBuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBuYXZp
Z2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJy
aWRlOworICAgIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoYm9vbCwgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQo
KSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVtb3ZlTmF2aWdhdGlv
bkdlc3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZpbmlz
aExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWxMb2FkRm9yTWFp
bkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9y
TWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKKworICAgIHZv
aWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHJlZlZp
ZXcoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlcmVmVmlldygpIG92ZXJyaWRlOworCisjaWYgRU5B
QkxFKFZJREVPKQorICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdNZWRpYVBs
dWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Np
b25SZXF1ZXN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9s
bFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisKKyAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVycmlkZTsKKworICAg
IHZvaWQgZGlkQ2hhbmdlQ2xpcFRvU2FmZUFyZWEoYm9vbCkgb3ZlcnJpZGUgeyB9CisKKyAgICBX
S1dQRTo6VmlldyYgbV92aWV3OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEdlc3R1cmVD
b250cm9sbGVyPiBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9T
Y3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmRhMTJjOGViMzUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0w
LDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9s
bGVyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworYm9vbCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCit7CisgICAgc3dp
dGNoICh0b3VjaFBvaW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRf
dHlwZV9kb3duOgorICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3VjaFBvaW50LT50aW1lOworICAg
ICAgICBtX3N0YXJ0LnggPSB0b3VjaFBvaW50LT54OworICAgICAgICBtX3N0YXJ0LnkgPSB0b3Vj
aFBvaW50LT55OworICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKKyAgICAgICAg
bV9vZmZzZXQueSA9IHRvdWNoUG9pbnQtPnk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBj
YXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgaWYgKCFtX2hh
bmRsaW5nKSB7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWCA9IHRvdWNoUG9pbnQtPnggLSBt
X3N0YXJ0Lng7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWSA9IHRvdWNoUG9pbnQtPnkgLSBt
X3N0YXJ0Lnk7CisgICAgICAgICAgICB1aW50MzJfdCBkZWx0YVRpbWUgPSB0b3VjaFBvaW50LT50
aW1lIC0gbV9zdGFydC50aW1lOworCisgICAgICAgICAgICBpbnQgcGl4ZWxzUGVyTGluZVN0ZXAg
PSBXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCk7CisgICAgICAgICAgICBt
X2hhbmRsaW5nID0gc3RkOjphYnMoZGVsdGFYKSA+PSBwaXhlbHNQZXJMaW5lU3RlcAorICAgICAg
ICAgICAgICAgIHx8IHN0ZDo6YWJzKGRlbHRhWSkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAg
ICAgICAgICAgICB8fCBkZWx0YVRpbWUgPj0gMjAwOworICAgICAgICB9CisgICAgICAgIGlmICht
X2hhbmRsaW5nKSB7CisgICAgICAgICAgICBtX2F4aXNFdmVudCA9IHsKKyAgICAgICAgICAgICAg
ICB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAgICAgICAgICAgICAgICB0b3Vj
aFBvaW50LT50aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAgICAgICAgICAgICAgICAyLCAo
dG91Y2hQb2ludC0+eSAtIG1fb2Zmc2V0LnkpCisgICAgICAgICAgICB9OworICAgICAgICAgICAg
bV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgICAgICBtX29mZnNldC55ID0gdG91
Y2hQb2ludC0+eTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgor
ICAgICAgICBpZiAobV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9oYW5kbGluZyA9IGZhbHNl
OworICAgICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3BlX2lucHV0
X2F4aXNfZXZlbnRfdHlwZV9udWxsLAorICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAKKyAg
ICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdkMTcyNGFhZGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29u
dHJvbGxlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3cGUvaW5wdXQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBTY3JvbGxHZXN0dXJlQ29udHJvbGxl
ciB7CitwdWJsaWM6CisgICAgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisK
KyAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVudCgpIHsgcmV0dXJuICZt
X2F4aXNFdmVudDsgfQorCisgICAgYm9vbCBoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qgd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3JhdyopOworCitwcml2YXRlOgorICAgIHN0cnVjdCB7CisgICAgICAg
IHVpbnQzMl90IHRpbWUgeyAwIH07CisgICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAg
aW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9zdGFydDsKKworICAgIHN0cnVjdCB7CisgICAgICAg
IGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9vZmZz
ZXQ7CisKKyAgICBib29sIG1faGFuZGxpbmcgeyBmYWxzZSB9OworICAgIHN0cnVjdCB3cGVfaW5w
dXRfYXhpc19ldmVudCBtX2F4aXNFdmVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2Q3YjYyM2E1NTUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApAQCAtMCww
ICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCisjaW5jbHVk
ZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2
ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk5hdGl2
ZVdlYlRvdWNoRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCisjaW5j
bHVkZSAiV2ViUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNs
dWRlIDx3cGUvdmlldy1iYWNrZW5kLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25h
bWVzcGFjZSBXS1dQRSB7CisKK1ZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJh
Y2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDb25maWd1cmF0aW9uKQor
ICAgIDogbV9wYWdlQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KCp0aGlz
KSkKKyAgICAsIG1fc2l6ZSB7IDgwMCwgNjAwIH0KKyAgICAsIG1fdmlld1N0YXRlRmxhZ3MoV2Vi
Q29yZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rpdml0eVN0
YXRlOjpJc0ZvY3VzZWQgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUgfCBXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KQorICAgICwgbV9jb21wb3NpdGluZ01hbmFn
ZXJQcm94eSgqdGhpcykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBiYXNlQ29uZmlndXJh
dGlvbi5jb3B5KCk7CisgICAgYXV0byogcHJlZmVyZW5jZXMgPSBjb25maWd1cmF0aW9uLT5wcmVm
ZXJlbmNlcygpOworICAgIGlmICghcHJlZmVyZW5jZXMgJiYgY29uZmlndXJhdGlvbi0+cGFnZUdy
b3VwKCkpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMgPSAmY29uZmlndXJhdGlvbi0+cGFnZUdyb3Vw
KCktPnByZWZlcmVuY2VzKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldFByZWZlcmVuY2Vz
KHByZWZlcmVuY2VzKTsKKyAgICB9CisgICAgaWYgKHByZWZlcmVuY2VzKSB7CisgICAgICAgIHBy
ZWZlcmVuY2VzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICAg
ICAgcHJlZmVyZW5jZXMtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgICBw
cmVmZXJlbmNlcy0+c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQodHJ1ZSk7CisgICAgICAg
IHByZWZlcmVuY2VzLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2Vz
LT5zZXRXZWJTZWN1cml0eUVuYWJsZWQoZmFsc2UpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0
RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisKKyAgICBhdXRvKiBwb29sID0g
Y29uZmlndXJhdGlvbi0+cHJvY2Vzc1Bvb2woKTsKKyAgICBtX3BhZ2VQcm94eSA9IHBvb2wtPmNy
ZWF0ZVdlYlBhZ2UoKm1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisKKyAg
ICBtX2JhY2tlbmQgPSBiYWNrZW5kOworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAgICBtX2Jh
Y2tlbmQgPSB3cGVfdmlld19iYWNrZW5kX2NyZWF0ZSgpOworICAgIG1fY29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuaW5pdGlhbGl6ZSgpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNr
ZW5kX2NsaWVudCBzX2JhY2tlbmRDbGllbnQgPSB7CisgICAgICAgIC8vIHNldF9zaXplCisgICAg
ICAgIFtdKHZvaWQqIGRhdGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4o
ZGF0YSk7CisgICAgICAgICAgICB2aWV3LnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZSh3aWR0aCwg
aGVpZ2h0KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGZyYW1lX2Rpc3BsYXllZAorICAgICAg
ICBbXSh2b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3ID0gKnJl
aW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5mcmFtZURpc3Bs
YXllZCgpOworICAgICAgICB9CisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9iYWNr
ZW5kX2NsaWVudChtX2JhY2tlbmQsICZzX2JhY2tlbmRDbGllbnQsIHRoaXMpOworCisgICAgc3Rh
dGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2lucHV0X2NsaWVudCBzX2lucHV0Q2xpZW50ID0g
eworICAgICAgICAvLyBoYW5kbGVfa2V5Ym9hcmRfZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0
YSwgc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7Cisg
ICAgICAgICAgICB2aWV3LnBhZ2UoKS5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0aXZl
V2ViS2V5Ym9hcmRFdmVudChldmVudCkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVf
cG9pbnRlcl9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X3Bv
aW50ZXJfZXZlbnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0g
cmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2Uu
aGFuZGxlTW91c2VFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIHBhZ2Uu
ZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfYXhp
c19ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnBy
ZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hl
ZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2Nh
bGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfdG91Y2hfZXZlbnQK
KyAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZl
bnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0
PFZpZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3VjaEV2ZW50
KFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3Rv
cigpKSk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9pbnB1
dF9jbGllbnQobV9iYWNrZW5kLCAmc19pbnB1dENsaWVudCwgdGhpcyk7CisKKyAgICB3cGVfdmll
d19iYWNrZW5kX2luaXRpYWxpemUobV9iYWNrZW5kKTsKKworICAgIG1fcGFnZVByb3h5LT5pbml0
aWFsaXplV2ViUGFnZSgpOworfQorCitWaWV3Ojp+VmlldygpCit7CisgICAgd3BlX3ZpZXdfYmFj
a2VuZF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgVmlldzo6aW5pdGlhbGl6ZUNsaWVu
dChjb25zdCBXS1ZpZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jbGllbnQuaW5pdGlh
bGl6ZShjbGllbnQpOworfQorCit2b2lkIFZpZXc6OmZyYW1lRGlzcGxheWVkKCkKK3sKKyAgICBt
X2NsaWVudC5mcmFtZURpc3BsYXllZCgqdGhpcyk7Cit9CisKK3ZvaWQgVmlldzo6c2V0U2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisgICAg
aWYgKG1fcGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBtX3BhZ2VQcm94eS0+ZHJh
d2luZ0FyZWEoKS0+c2V0U2l6ZShzaXplLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNvcmU6Oklu
dFNpemUoKSk7Cit9CisKK3ZvaWQgVmlldzo6c2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5
U3RhdGU6OkZsYWdzIGZsYWdzKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpGbGFncyBkZWZhdWx0RmxhZ3MgPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5k
b3dJc0FjdGl2ZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKKworICAgIFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIGNoYW5nZWRGbGFncyA9IG1fdmlld1N0YXRlRmxh
Z3MgXiAoZGVmYXVsdEZsYWdzIHwgZmxhZ3MpOworICAgIG1fdmlld1N0YXRlRmxhZ3MgPSBkZWZh
dWx0RmxhZ3MgfCBmbGFnczsKKworICAgIGlmIChjaGFuZ2VkRmxhZ3MpCisgICAgICAgIG1fcGFn
ZVByb3h5LT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWRGbGFncyk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9XUEVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJiM2M5ZDg0YzlmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmll
dy5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNp
bmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJ
bXBsLmgiCisjaW5jbHVkZSAiV1BFVmlld0NsaWVudC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPG1lbW9y
eT4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VHcm91cDsKK2NsYXNzIFdlYlByb2Nl
c3NQb29sOworfQorCituYW1lc3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3IDogcHVibGljIEFQ
STo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Vmlldz4geworcHVibGljOgorICAgIHN0
YXRpYyBWaWV3KiBjcmVhdGUoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0
IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICBy
ZXR1cm4gbmV3IFZpZXcoYmFja2VuZCwgY29uZmlndXJhdGlvbik7CisgICAgfQorCisgICAgLy8g
Q2xpZW50IG1ldGhvZHMKKyAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3Q2xp
ZW50QmFzZSopOworICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoKTsKKworICAgIFdlYktpdDo6V2Vi
UGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gKm1fcGFnZVByb3h5OyB9CisKKyAgICBzdHJ1Y3Qg
d3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIHsgcmV0dXJuIG1fYmFja2VuZDsgfQorCisgICAg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQor
CisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWV3U3RhdGVGbGFnczsgfQorICAgIHZvaWQgc2V0Vmlld1N0YXRlKFdlYkNvcmU6
OkFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBWaWV3KHN0cnVjdCB3cGVf
dmlld19iYWNrZW5kKiwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYpOworICAgIHZpcnR1
YWwgflZpZXcoKTsKKworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7
CisKKyAgICBWaWV3Q2xpZW50IG1fY2xpZW50OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktp
dDo6UGFnZUNsaWVudEltcGw+IG1fcGFnZUNsaWVudDsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJQ
YWdlUHJveHk+IG1fcGFnZVByb3h5OworICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOworICAg
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlRmxhZ3M7CisKKyAgICBX
ZWJLaXQ6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5IG1fY29tcG9zaXRpbmdNYW5hZ2VyUHJveHk7
CisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIG1fYmFja2VuZDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9XUEVWaWV3Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQ
RVZpZXdDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40
NDRhYzk4ODY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldQRVZpZXdDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2lu
Y2x1ZGUgIldLQmFzZS5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKKworbmFtZXNwYWNlIFdLV1BFIHsKKwordm9pZCBWaWV3Q2xpZW50OjpmcmFtZURp
c3BsYXllZChWaWV3JiB2aWV3KQoreworICAgIGlmIChtX2NsaWVudC5mcmFtZURpc3BsYXllZCkK
KyAgICAgICAgbV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQodG9BUEkoJnZpZXcpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNWU1NTlmYWY1ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApAQCAtMCww
ICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSA8V2Vi
S2l0L1dLVmlldy5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVu
dFRyYWl0czxXS1ZpZXdDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLVmll
d0NsaWVudFYwPiBWZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK2NsYXNz
IFZpZXc7CisKK2NsYXNzIFZpZXdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tWaWV3Q2xp
ZW50QmFzZT4geworcHVibGljOgorICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoVmlldyYpOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ODIwOTJiYmZl
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxncmVzb3VyY2VzPgorICA8Z3Jlc291
cmNlIHByZWZpeD0iL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UiPgorICAgIDxmaWxl
Pmluc3BlY3RvclBhZ2VJbmRleC5odG1sPC9maWxlPgorICA8L2dyZXNvdXJjZT4KKzwvZ3Jlc291
cmNlcz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IDI3YmVjMzYyMzE1Li5mZDg0OGNjZWQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQ2hp
bGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hP
cHRpb25zJiBsYXVuY2hPCiAgICAgaWYgKG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5
KQogICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZChBU0NJ
SUxpdGVyYWwoImFsd2F5cy1ydW5zLWF0LWJhY2tncm91bmQtcHJpb3JpdHkiKSwgInRydWUiKTsK
IAotI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2lmIEVOQUJM
RShERVZFTE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICAg
ICBjb25zdCBjaGFyKiB2YXJuYW1lOwogICAgIHN3aXRjaCAobGF1bmNoT3B0aW9ucy5wcm9jZXNz
VHlwZSkgewogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViOgpAQCAt
NzksNyArNzksNyBAQCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoTwogICAgIGNvbnN0IGNoYXIqIHBy
b2Nlc3NDbWRQcmVmaXggPSBnZXRlbnYodmFybmFtZSk7CiAgICAgaWYgKHByb2Nlc3NDbWRQcmVm
aXggJiYgKnByb2Nlc3NDbWRQcmVmaXgpCiAgICAgICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc0Nt
ZFByZWZpeCA9IFN0cmluZzo6ZnJvbVVURjgocHJvY2Vzc0NtZFByZWZpeCk7Ci0jZW5kaWYgLy8g
RU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjZW5kaWYgLy8gRU5BQkxF
KERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQogfQog
CiB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5Ojpjb25uZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQ
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJ
bnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4yNjgzZTNkNzE2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKQEAgLTAs
MCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cyBMdGQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKKworI2lmIEVOQUJMRShJ
TlNQRUNUT1JfU0VSVkVSKQorCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKKyNpbmNs
dWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8Z21vZHVs
ZS5oPgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3RvclNlcnZl
cjo6cGxhdGZvcm1SZXNvdXJjZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBWZWN0b3I8Y2hh
cj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpCit7CisgICAgLy8gVGhlIHBhZ2UgbGlzdCBj
b250YWlucyBhbiB1bmZvcm1hdGVkIGxpc3Qgb2YgcGFnZXMgdGhhdCBjYW4gYmUgaW5zcGVjdGVk
IHdpdGggYSBsaW5rIHRvIG9wZW4gYSBzZXNzaW9uLgorICAgIGlmIChwYXRoID09ICIvcGFnZWxp
c3QuanNvbiIpIHsKKyAgICAgICAgYnVpbGRQYWdlTGlzdChkYXRhLCBjb250ZW50VHlwZSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBm
bGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsKKyAgICAgICAgR01vZHVsZSogcmVz
b3VyY2VzTW9kdWxlID0gZ19tb2R1bGVfb3BlbigibGliV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2Vz
LnNvIiwgR19NT0RVTEVfQklORF9MQVpZKTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZXNNb2R1bGUp
IHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiRXJyb3IgbG9hZGluZyBsaWJXUEVXZWJJbnNw
ZWN0b3JSZXNvdXJjZXMuc286ICVzIiwgZ19tb2R1bGVfZXJyb3IoKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBnX21vZHVsZV9tYWtlX3Jlc2lkZW50KHJlc291
cmNlc01vZHVsZSk7CisgICAgfSk7CisKKyAgICAvLyBQb2ludCB0aGUgZGVmYXVsdCBwYXRoIHRv
IGEgZm9ybWF0dGVkIHBhZ2UgdGhhdCBxdWVyaWVzIHRoZSBwYWdlIGxpc3QgYW5kIGRpc3BsYXkg
dGhlbS4KKyAgICBDU3RyaW5nIHJlc291cmNlUGF0aCA9IG1ha2VTdHJpbmcoIi9vcmcvd3BlL2lu
c3BlY3Rvci9Vc2VySW50ZXJmYWNlIiwgKHBhdGggPT0gIi8iID8gIi9pbnNwZWN0b3JQYWdlSW5k
ZXguaHRtbCIgOiBwYXRoKSkudXRmOCgpOworICAgIGlmIChyZXNvdXJjZVBhdGguaXNOdWxsKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJv
cjsKKyAgICBHUmVmUHRyPEdCeXRlcz4gcmVzb3VyY2VCeXRlcyA9IGFkb3B0R1JlZihnX3Jlc291
cmNlc19sb29rdXBfZGF0YShyZXNvdXJjZVBhdGguZGF0YSgpLCBHX1JFU09VUkNFX0xPT0tVUF9G
TEFHU19OT05FLCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAgICBpZiAoIXJlc291cmNlQnl0ZXMpIHsK
KyAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5FcnJvcjogIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGVycm9yLT5jb2RlKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChlcnJvci0+
bWVzc2FnZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG9jY3VycmVkIGR1cmlu
ZyBmZXRjaGluZyBpbnNwZWN0b3IgcmVzb3VyY2UgZmlsZXMuPC9ib2R5PjwvaHRtbD4iKTsKKwor
ICAgICAgICBDU3RyaW5nIGVycm9ySFRNTCA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Cisg
ICAgICAgIGRhdGEuYXBwZW5kKGVycm9ySFRNTC5kYXRhKCksIGVycm9ySFRNTC5sZW5ndGgoKSk7
CisgICAgICAgIGNvbnRlbnRUeXBlID0gInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI7CisKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJFcnJvciBmZXRjaGluZyB3ZWJpbnNwZWN0b3IgcmVzb3VyY2Ug
ZmlsZXM6ICVkLCAlcyIsIGVycm9yLT5jb2RlLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBnc2l6ZSByZXNvdXJjZURhdGFTaXplOworICAgIGdj
b25zdHBvaW50ZXIgcmVzb3VyY2VEYXRhID0gZ19ieXRlc19nZXRfZGF0YShyZXNvdXJjZUJ5dGVz
LmdldCgpLCAmcmVzb3VyY2VEYXRhU2l6ZSk7CisgICAgZGF0YS5hcHBlbmQoc3RhdGljX2Nhc3Q8
Y29uc3QgY2hhcio+KHJlc291cmNlRGF0YSksIHJlc291cmNlRGF0YVNpemUpOworCisgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gbWltZVR5cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MocmVzb3VyY2VQYXRo
LmRhdGEoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgZ3VjaGFyKj4ocmVzb3VyY2VEYXRhKSwgcmVzb3Vy
Y2VEYXRhU2l6ZSwgbnVsbHB0cikpOworICAgIGNvbnRlbnRUeXBlID0gbWltZVR5cGUuZ2V0KCk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yU2VydmVyOjpidWlsZFBh
Z2VMaXN0KFZlY3RvcjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSkKK3sKKyAgICAv
LyBjaHJvbWVkZXZ0b29scyAoaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9tZWRldnRvb2xz
KSAwLjMuOCBleHBlY3RlZCBKU09OIGZvcm1hdDoKKyAgICAvLyB7CisgICAgLy8gICJ0aXRsZSI6
ICJGb28iLAorICAgIC8vICAidXJsIjogImh0dHA6Ly9mb28iLAorICAgIC8vICAiZGV2dG9vbHNG
cm9udGVuZFVybCI6ICIvTWFpbi5odG1sP3dzPWxvY2FsaG9zdDo5MjIyL2RldnRvb2xzL3BhZ2Uv
MSIsCisgICAgLy8gICJ3ZWJTb2NrZXREZWJ1Z2dlclVybCI6ICJ3czovL2xvY2FsaG9zdDo5MjIy
L2RldnRvb2xzL3BhZ2UvMSIKKyAgICAvLyB9LAorCisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiWyAiKTsKKyAgICBDbGllbnRNYXA6Oml0ZXJh
dG9yIGVuZCA9IG1fY2xpZW50TWFwLmVuZCgpOworICAgIGZvciAoQ2xpZW50TWFwOjppdGVyYXRv
ciBpdCA9IG1fY2xpZW50TWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBX
ZWJQYWdlUHJveHkqIHdlYlBhZ2UgPSBpdC0+dmFsdWUtPmluc3BlY3RlZFBhZ2UoKTsKKyAgICAg
ICAgaWYgKGl0ICE9IG1fY2xpZW50TWFwLmJlZ2luKCkpCisgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgieyBcImlk
XCI6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIFwidGl0bGVcIjogXCIiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQod2ViUGFnZS0+cGFnZUxvYWRTdGF0ZSgpLnRpdGxlKCkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcInVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCh3ZWJQYWdlLT5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcImluc3BlY3RvclVybFwiOiBcIiIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIi9NYWluLmh0bWw/cGFnZT0iKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIoaXQtPmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
XCIsIFwiZGV2dG9vbHNGcm9udGVuZFVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIi9NYWluLmh0bWw/d3M9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJpbmRB
ZGRyZXNzKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmROdW1iZXIocG9ydCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIvZGV2dG9vbHMvcGFnZS8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaXQt
PmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwid2ViU29ja2V0RGVi
dWdnZXJVcmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3czovLyIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZChiaW5kQWRkcmVzcygpKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI6Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvcnQo
KSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2UvIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIlwiIH0iKTsKKyAgICB9CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIg
XSIpOworICAgIENTdHJpbmcgY3N0ciA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7CisgICAg
ZGF0YS5hcHBlbmQoY3N0ci5kYXRhKCksIGNzdHIubGVuZ3RoKCkpOworICAgIGNvbnRlbnRUeXBl
ID0gImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKaW5kZXggMzk5NTA2OTQ4ZWYuLmJhNzdjMmFjNzJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5j
aGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVu
Y2hlci5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgUHJvY2Vzc1R5cGUgcHJv
Y2Vzc1R5cGU7CiAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6
YXRpb25EYXRhOwogCi0jaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEsp
CisjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpKQogICAgICAgICBTdHJpbmcgcHJvY2Vzc0NtZFByZWZpeDsKICNlbmRpZgogICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nl
c3NMYXVuY2hlcldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3Bl
L1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjZkNDYwOTg2OTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTUz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorCisjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwu
aD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3BlL3JlbmRlcmVyLWhvc3QuaD4KKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMu
aD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisvLyBGSVhNRTog
TWVyZ2Ugd2l0aCBQcm9jZXNzTGF1bmNoZXJHdGs/CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHZvaWQgY2hpbGRTZXR1cEZ1bmN0aW9u
KGdwb2ludGVyIHVzZXJEYXRhKQoreworICAgIGludCBzb2NrZXQgPSBHUE9JTlRFUl9UT19JTlQo
dXNlckRhdGEpOworICAgIGNsb3NlKHNvY2tldCk7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVy
OjpsYXVuY2hQcm9jZXNzKCkKK3sKKyAgICBHUGlkIHBpZCA9IDA7CisKKyAgICBJUEM6OkNvbm5l
Y3Rpb246OlNvY2tldFBhaXIgc29ja2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxh
dGZvcm1Db25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbk9wdGlvbnM6OlNldENs
b2V4ZWNPblNlcnZlcik7CisKKyAgICBTdHJpbmcgZXhlY3V0YWJsZVBhdGg7CisgICAgQ1N0cmlu
ZyByZWFsRXhlY3V0YWJsZVBhdGg7CisgICAgc3dpdGNoIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vz
c1R5cGUpIHsKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYjoKKyAg
ICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Ok5ldHdv
cms6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9j
ZXNzKCk7CisgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorICAg
IGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U6CisgICAgICAgIGV4
ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpOworICAgICAg
ICBicmVhazsKKyNlbmRpZgorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVhbEV4ZWN1dGFibGVQYXRoID0g
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWN1dGFibGVQYXRoKTsKKyAgICBHVW5pcXVlUHRy
PGdjaGFyPiB3a1NvY2tldChnX3N0cmR1cF9wcmludGYoIiVkIiwgc29ja2V0UGFpci5jbGllbnQp
KTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiB3cGVTb2NrZXQ7CisKKyAgICB1bnNpZ25lZCBuYXJn
cyA9IDQ7IC8vIHNpemUgb2YgdGhlIGFyZ3YgYXJyYXkgZm9yIGdfc3Bhd25fYXN5bmMoKQorICAg
IGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9j
ZXNzVHlwZTo6V2ViKSB7CisgICAgICAgIHdwZVNvY2tldCA9IEdVbmlxdWVQdHI8Z2NoYXI+KGdf
c3RyZHVwX3ByaW50ZigiJWQiLCB3cGVfcmVuZGVyZXJfaG9zdF9jcmVhdGVfY2xpZW50KCkpKTsK
KyAgICAgICAgbmFyZ3MgPSA1OworICAgIH0KKworI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkK
KyAgICBWZWN0b3I8Q1N0cmluZz4gcHJlZml4QXJnczsKKyAgICBpZiAoIW1fbGF1bmNoT3B0aW9u
cy5wcm9jZXNzQ21kUHJlZml4LmlzTnVsbCgpKSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHNw
bGl0QXJnczsKKyAgICAgICAgbV9sYXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXguc3BsaXQo
JyAnLCBzcGxpdEFyZ3MpOworICAgICAgICBmb3IgKGF1dG8gaXQgPSBzcGxpdEFyZ3MuYmVnaW4o
KTsgaXQgIT0gc3BsaXRBcmdzLmVuZCgpOyBpdCsrKQorICAgICAgICAgICAgcHJlZml4QXJncy5h
cHBlbmQoaXQtPnV0ZjgoKSk7CisgICAgICAgIG5hcmdzICs9IHByZWZpeEFyZ3Muc2l6ZSgpOwor
ICAgIH0KKyNlbmRpZgorCisgICAgY2hhcioqIGFyZ3YgPSBnX25ld2EoY2hhciosIG5hcmdzKTsK
KyAgICB1bnNpZ25lZCBpID0gMDsKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCisgICAgLy8g
SWYgdGhlcmUncyBhIHByZWZpeCBjb21tYW5kLCBwdXQgaXQgYmVmb3JlIHRoZSByZXN0IG9mIHRo
ZSBhcmdzLgorICAgIGZvciAoYXV0byBpdCA9IHByZWZpeEFyZ3MuYmVnaW4oKTsgaXQgIT0gcHJl
Zml4QXJncy5lbmQoKTsgaXQrKykKKyAgICAgICAgYXJndltpKytdID0gY29uc3RfY2FzdDxjaGFy
Kj4oaXQtPmRhdGEoKSk7CisjZW5kaWYKKyAgICBhcmd2W2krK10gPSBjb25zdF9jYXN0PGNoYXIq
PihyZWFsRXhlY3V0YWJsZVBhdGguZGF0YSgpKTsKKyAgICBhcmd2W2krK10gPSB3a1NvY2tldC5n
ZXQoKTsKKyAgICBpZiAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVu
Y2hlcjo6UHJvY2Vzc1R5cGU6OldlYikKKyAgICAgICAgYXJndltpKytdID0gd3BlU29ja2V0Lmdl
dCgpOworICAgIGFyZ3ZbaSsrXSA9IG51bGxwdHI7CisKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJv
cj4gZXJyb3I7CisgICAgaWYgKCFnX3NwYXduX2FzeW5jKDAsIGFyZ3YsIDAsIEdfU1BBV05fTEVB
VkVfREVTQ1JJUFRPUlNfT1BFTiwgY2hpbGRTZXR1cEZ1bmN0aW9uLCBHSU5UX1RPX1BPSU5URVIo
c29ja2V0UGFpci5zZXJ2ZXIpLCAmcGlkLCAmZXJyb3Iub3V0UHRyKCkpKSB7CisgICAgICAgIGdf
cHJpbnRlcnIoIlVuYWJsZSB0byBmb3JrIGEgbmV3IFdlYlByb2Nlc3M6ICVzLlxuIiwgZXJyb3It
Pm1lc3NhZ2UpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICAv
LyBEb24ndCBleHBvc2UgdGhlIHBhcmVudCBzb2NrZXQgdG8gcG90ZW50aWFsIGZ1dHVyZSBjaGls
ZHJlbi4KKyAgICB3aGlsZSAoZmNudGwoc29ja2V0UGFpci5jbGllbnQsIEZfU0VURkQsIEZEX0NM
T0VYRUMpID09IC0xKQorICAgICAgICBSRUxFQVNFX0FTU0VSVChlcnJubyAhPSBFSU5UUik7CisK
KyAgICBjbG9zZShzb2NrZXRQYWlyLmNsaWVudCk7CisgICAgbV9wcm9jZXNzSWRlbnRpZmllciA9
IHBpZDsKKworICAgIC8vIFdlJ3ZlIGZpbmlzaGVkIGxhdW5jaGluZyB0aGUgcHJvY2VzcywgbWVz
c2FnZSBiYWNrIHRvIHRoZSBtYWluIHJ1biBsb29wLgorICAgIFJlZlB0cjxQcm9jZXNzTGF1bmNo
ZXI+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IHNlcnZlclNvY2tldCA9IHNvY2tldFBhaXIuc2VydmVyOworICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbcHJvdGVjdGVkVGhpcywgcGlkLCBzZXJ2ZXJTb2NrZXRdIHsKKyAgICAgICAgcHJv
dGVjdGVkVGhpcy0+ZGlkRmluaXNoTGF1bmNoaW5nUHJvY2VzcyhwaWQsIHNlcnZlclNvY2tldCk7
CisgICAgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVyOjp0ZXJtaW5hdGVQcm9jZXNzKCkK
K3sKKyAgICBpZiAobV9pc0xhdW5jaGluZykgeworICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fcHJvY2Vzc0lkZW50aWZpZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIGtpbGwobV9wcm9jZXNzSWRlbnRpZmllciwgU0lHS0lMTCk7Cisg
ICAgbV9wcm9jZXNzSWRlbnRpZmllciA9IDA7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpw
bGF0Zm9ybUludmFsaWRhdGUoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggMWM4ZWY0NjNj
YzIuLjg0N2ZiNWMzMjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVj
dG9yUHJveHkuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJQcmVmZXJl
bmNlcyYgaW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkgY29uc3Q7CiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBjcmVhdGVJ
bnNwZWN0b3JXaW5kb3coKTsKICAgICB2b2lkIHVwZGF0ZUluc3BlY3RvcldpbmRvd1RpdGxlKCkg
Y29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YXN0ZWJvYXJkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJk
UHJveHkuaAppbmRleCA0NGU4MzY1NTNiNS4uOWJiNmQ1NGNhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTk4LDYgKzk4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNldFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIHVpbnQ2NF90JiBuZXdDaGFuZ2VDb3VudCk7CiAgICAgdm9pZCBzZXRQYXN0ZWJvYXJkQnVm
ZmVyRm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlLCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIHVpbnQ2NF90IHNpemUs
IHVpbnQ2NF90JiBuZXdDaGFuZ2VDb3VudCk7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykK
ICAgICB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
Y29uc3QgV2ViU2VsZWN0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVhZEZyb21DbGlwYm9hcmQoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2ViU2VsZWN0aW9uRGF0YSYpOwpAQCAtMTA1LDcg
KzEwNiwxNCBAQCBwcml2YXRlOgogICAgIFdlYkZyYW1lUHJveHkqIG1fcHJpbWFyeVNlbGVjdGlv
bk93bmVyIHsgbnVsbHB0ciB9OwogICAgIFdlYkZyYW1lUHJveHkqIG1fZnJhbWVXcml0aW5nVG9D
bGlwYm9hcmQgeyBudWxscHRyIH07CiAjZW5kaWYgLy8gUExBVEZPUk0oR1RLKQotICAgIAorCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIHZvaWQgZ2V0UGFzdGVib2FyZFR5cGVzKFZlY3RvcjxTdHJp
bmc+JiBwYXN0ZWJvYXJkVHlwZXMpOworICAgIHZvaWQgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJk
KHVpbnQ2NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBXVEY6OlN0cmlu
ZyYpOworICAgIHZvaWQgd3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6
OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CisgICAgdm9pZCB3cml0ZVN0cmluZ1RvUGFzdGVib2Fy
ZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgor
CiAgICAgV2ViUHJvY2Vzc1Byb3h5TGlzdCBtX3dlYlByb2Nlc3NQcm94eUxpc3Q7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA3NjZiYzEyZWQzYi4uNDAxMmFkNWEzYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5p
bgpAQCAtNTgsNCArNTgsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFzdGVib2FyZFByb3h5IHsKICAg
ICBXcml0ZVRvQ2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgc3RydWN0IFdlYktpdDo6
V2ViU2VsZWN0aW9uRGF0YSBwYXN0ZWJvYXJkQ29udGVudCkKICAgICBSZWFkRnJvbUNsaXBib2Fy
ZChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJTZWxlY3Rpb25E
YXRhIHBhc3RlYm9hcmRDb250ZW50KQogI2VuZGlmCisKKyNpZiBQTEFURk9STShXUEUpCisgICAg
R2V0UGFzdGVib2FyZFR5cGVzKCkgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKQorICAgIFJlYWRT
dHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBl
KSAtPiAoU3RyaW5nIHN0cmluZykKKyAgICBXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoc3Ry
dWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50IGNvbnRlbnQpCisgICAgV3JpdGVTdHJp
bmdUb1Bhc3RlYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgdGV4dCkKKyNlbmRp
ZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXgg
ZWU0ODQ3YzkxZjguLmM4M2Q1NGU2MjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2Vi
UHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24p
CiAgICAgbm90aWZ5VGhpc1dlYlByb2Nlc3NQb29sV2FzQ3JlYXRlZCgpOwogfQogCi0jaWYgIVBM
QVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShDT0NPQSkgJiYg
IVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93
cGUvVGV4dENoZWNrZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4wMzcwZmYyYmExYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgorCisjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0
ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgVGV4dENoZWNrZXJT
dGF0ZSB0ZXh0Q2hlY2tlclN0YXRlOworCitjb25zdCBUZXh0Q2hlY2tlclN0YXRlJiBUZXh0Q2hl
Y2tlcjo6c3RhdGUoKQoreworICAgIHJldHVybiB0ZXh0Q2hlY2tlclN0YXRlOworfQorCit2b2lk
IFRleHRDaGVja2VyOjpzZXRUZXN0aW5nTW9kZShib29sKQoreworfQorCitib29sIFRleHRDaGVj
a2VyOjppc1Rlc3RpbmdNb2RlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxDaGVja2lu
Z0FsbG93ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIFRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
Ym9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpz
ZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3Rh
dGVDaGFuZ2VkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0
Q2hlY2tlcjo6Z3JhbW1hckNoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2ludDY0X3QgVGV4dENoZWNrZXI6OnVuaXF1ZVNwZWxs
RG9jdW1lbnRUYWcoV2ViUGFnZVByb3h5KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y2xvc2VTcGVsbERvY3VtZW50
V2l0aFRhZyhpbnQ2NF90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4
dENoZWNrZXI6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhpbnQ2NF90LCBTdHJpbmdWaWV3LCBpbnQz
Ml90JiwgaW50MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0
Q2hlY2tlcjo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoaW50NjRfdCwgU3RyaW5nVmlldywgVmVjdG9y
PFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+JiwgaW50MzJfdCYsIGludDMyX3QmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OnNwZWxsaW5nVUlJc1Nob3dp
bmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFRleHRDaGVja2VyOjp0b2dnbGVTcGVsbGluZ1VJSXNTaG93aW5nKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjp1cGRhdGVTcGVsbGluZ1VJV2l0
aE1pc3NwZWxsZWRXb3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6dXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFt
bWFyU3RyaW5nKGludDY0X3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEdyYW1tYXJEZXRhaWwmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmdldEd1ZXNz
ZXNGb3JXb3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGludDMyX3Qs
IFZlY3RvcjxTdHJpbmc+JiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIFRleHRDaGVja2VyOjpsZWFybldvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjppZ25vcmVXb3JkKGlu
dDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hl
Y2tlckNvbXBsZXRpb24+LCBpbnQzMl90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNWJhZWVlM2MxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApAQCAtMCwwICsxLDE1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlBhZ2VQcm94eSogV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94
eTo6Y3JlYXRlSW5zcGVjdG9yV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGlkQ2xvc2Uo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtRGlkQ2xvc2VGb3JDcmFzaCgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtSGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQnJpbmdJbnNwZWN0
ZWRQYWdlVG9Gcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdlVVJMKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd3BlL2luc3BlY3Rvci9Vc2Vy
SW50ZXJmYWNlL01haW4uaHRtbCIpOworfQorCitTdHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omlu
c3BlY3RvclRlc3RQYWdlVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9v
cmcvd3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCIpOworfQorCitTdHJpbmcg
V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvckJhc2VVUkwoKQoreworICAgIHJldHVybiBTdHJp
bmcoInJlc291cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvIik7Cit9CisK
K3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdo
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwordW5zaWdu
ZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURldGFjaCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRh
Y2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgo
dW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRhMjAyYWJlYjRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUu
Y3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eS5oIgorCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
Tm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K1N0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYpCit7
CisgICAgcmV0dXJuICJNb3ppbGxhLzUuMCAoTGludXg7IHg4Nl82NCBHTlUvTGludXgpIEFwcGxl
V2ViS2l0LzYwMS4xIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAgU2FmYXJpLzYwMS4x
IjsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBTdHJp
bmcmLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZWNlbnRTZWFyY2hlcyhj
b25zdCBTdHJpbmcmLCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybVJlbW92
ZVJlY2VudFNlYXJjaGVzKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmVkaXRvclN0
YXRlQ2hhbmdlZChjb25zdCBFZGl0b3JTdGF0ZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhkM2QwZWI0NmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwCkBAIC0w
LDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRQcm94eS5o
IgorCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgewordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldFBhc3RlYm9hcmRUeXBl
cyhWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzKQoreworICAgIFBsYXRmb3JtUGFzdGVi
b2FyZCgpLmdldFR5cGVzKHBhc3RlYm9hcmRUeXBlcyk7Cit9CisKK3ZvaWQgV2ViUGFzdGVib2Fy
ZFByb3h5OjpyZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZFR5cGUsIFdURjo6U3RyaW5nJiB2YWx1ZSkKK3sKKyAgICB2YWx1ZSA9
IFBsYXRmb3JtUGFzdGVib2FyZCgpLnJlYWRTdHJpbmcoaW5kZXgsIHBhc3RlYm9hcmRUeXBlKTsK
K30KKwordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OndyaXRlV2ViQ29udGVudFRvUGFzdGVib2Fy
ZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBQ
bGF0Zm9ybVBhc3RlYm9hcmQoKS53cml0ZShjb250ZW50KTsKK30KKwordm9pZCBXZWJQYXN0ZWJv
YXJkUHJveHk6OndyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS53
cml0ZShwYXN0ZWJvYXJkVHlwZSwgdGV4dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQ
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2VzV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmY4MWZjZGExY2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVu
Y2VzV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQ
cmVmZXJlbmNlcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1Jbml0aWFs
aXplU3RvcmUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVy
ZW5jZXM6OnBsYXRmb3JtVXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlByZWZl
cmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZUJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29s
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBs
YXRmb3JtVXBkYXRlVUludDMyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgdWludDMyX3QpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZv
cm1VcGRhdGVEb3VibGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBkb3VibGUpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRh
dGVGbG9hdFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGZsb2F0KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0U3RyaW5nVXNl
clZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRm
b3JtR2V0Qm9vbFVzZXJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29sJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQcmVmZXJl
bmNlczo6cGxhdGZvcm1HZXRVSW50MzJVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgdWlu
dDMyX3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldERvdWJsZVVzZXJWYWx1ZUZvcktleShj
b25zdCBTdHJpbmcmLCBkb3VibGUmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwZmE1MmRhZjdjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKQEAgLTAs
MCArMSwxNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1v
YmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisKKyNpbmNs
dWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3Ry
eS5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5o
PgorCisvLyBGSVhNRTogTWVyZ2Ugd2l0aCBXZWJQcm9jZXNzUG9vbEd0az8gQWJzdHJhY3QgdGhl
IGNvbW1vbiBwYXJ0cz8KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SX1NFUlZFUikKK3N0YXRpYyB2b2lkIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKQoreworICAgIHN0
YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisgICAgaWYgKGluaXRpYWxpemVkKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgU3RyaW5nIHNlcnZl
ckFkZHJlc3MoZ19nZXRlbnYoIldFQktJVF9JTlNQRUNUT1JfU0VSVkVSIikpOworCisgICAgaWYg
KCFzZXJ2ZXJBZGRyZXNzLmlzTnVsbCgpKSB7CisgICAgICAgIFN0cmluZyBiaW5kQWRkcmVzcyA9
ICIxMjcuMC4wLjEiOworICAgICAgICB1bnNpZ25lZCBzaG9ydCBwb3J0ID0gMjk5OTsKKworICAg
ICAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7CisgICAgICAgIHNlcnZlckFkZHJlc3Muc3BsaXQo
JzonLCByZXN1bHQpOworCisgICAgICAgIGlmIChyZXN1bHQuc2l6ZSgpID09IDIpIHsKKyAgICAg
ICAgICAgIGJpbmRBZGRyZXNzID0gcmVzdWx0WzBdOworICAgICAgICAgICAgYm9vbCBvayA9IGZh
bHNlOworICAgICAgICAgICAgcG9ydCA9IHJlc3VsdFsxXS50b0ludCgmb2spOworICAgICAgICAg
ICAgaWYgKCFvaykgeworICAgICAgICAgICAgICAgIHBvcnQgPSAyOTk5OworICAgICAgICAgICAg
ICAgIExPR19FUlJPUigiQ291bGRuJ3QgcGFyc2UgdGhlIHBvcnQuIFVzZSAyOTk5IGluc3RlYWQu
Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgTE9HX0VSUk9S
KCJDb3VsZG4ndCBwYXJzZSAlcywgd3JvbmcgZm9ybWF0PyBVc2UgMTI3LjAuMC4xOjI5OTkgaW5z
dGVhZC4iLCBzZXJ2ZXJBZGRyZXNzLnV0ZjgoKS5kYXRhKCkpOworCisgICAgICAgIGlmICghV2Vi
SW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5saXN0ZW4oYmluZEFkZHJlc3MsIHBvcnQpKQor
ICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBzdGFydCBsaXN0ZW5pbmcgb246IElQIGFk
ZHJlc3M9JXMsIHBvcnQ9JWQuIiwgYmluZEFkZHJlc3MudXRmOCgpLmRhdGEoKSwgcG9ydCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBMT0coSW5zcGVjdG9yU2VydmVyLCAiVG8gc3Rh
cnQgaW5zcGVjdG9yIHNlcnZlciBzZXQgV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVIgdG8gMTI3LjAu
MC4xOjI5OTkgZm9yIGV4YW1wbGUuIik7Cit9CisjZW5kaWYKKworV1RGOjpTdHJpbmcgV2ViUHJv
Y2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnko
KQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5h
bWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJhcHBjYWNoZSIsIG51bGxwdHIpKTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihj
YWNoZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVl
UHRyPGdjaGFyPiBjYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2Fj
aGVfZGlyKCksICJ3cGUiLCAibWVkaWFjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjYWNoZURpcmVjdG9yeS5n
ZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7
CisgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucmVnaXN0ZXJTaGFy
ZWRSZXNvdXJjZUxvYWRPYnNlcnZlcigpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisgICAgaW5pdEluc3Bl
Y3RvclNlcnZlcigpOworI2VuZGlmCisKKyAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJs
ZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQgfHwgY2FjaGVNb2RlbCgpID09IENhY2hlTW9kZWxE
b2N1bWVudFZpZXdlcjsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZhbGlk
YXRlQ29udGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYlBy
b2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgp
Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxl
bmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgbnVsbHB0cikp
OworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KGRhdGFiYXNlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgpCit7CisgICAg
R1VuaXF1ZVB0cjxnY2hhcj4gaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxl
bmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgImluZGV4ZWRk
YiIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihpbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0
cmluZyBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0aCgpIGNv
bnN0Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9m
aWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgImljb25kYXRhYmFzZSIsIG51
bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihkYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNz
UG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAg
ICBHVW5pcXVlUHRyPGdjaGFyPiBzdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19n
ZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIpKTsKKyAg
ICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzdG9y
YWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQ
bGF0Zm9ybURlZmF1bHRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVl
UHRyPGdjaGFyPiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19n
ZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgIm1lZGlha2V5cyIsIG51bGxwdHIpKTsKKyAgICBy
ZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihtZWRpYUtl
eXNTdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIEdVbmlx
dWVQdHI8Y2hhcj4gZGlza0NhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNl
cl9jYWNoZV9kaXIoKSwgIndwZSIsICJjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkaXNrQ2FjaGVEaXJlY3Rv
cnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVm
YXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRy
PGdjaGFyPiBqYXZhU2NyaXB0Q29yZUNvbmZpZ0RpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdf
Z2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIsICJKYXZhU2NyaXB0Q29yZURlYnVnIiwgbnVsbHB0
cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKGphdmFTY3JpcHRDb3JlQ29uZmlnRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCit7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJiMzViNjYwNmI2Li44Y2QzMWYyM2Fh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtOTU0MSw3ICs5NTQxLDcgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNj
cmlwdCA9ICJXS0JBU0VfSD0ke1RBUkdFVF9CVUlMRF9ESVJ9LyR7UFJJVkFURV9IRUFERVJTX0ZP
TERFUl9QQVRIfS9XS0Jhc2UuaFxuXG51bmlmZGVmIC1CIC1EX19BUFBMRV9fIC1VQlVJTERJTkdf
R1RLX18gLVVVU0VfU09VUCAtbyBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9
XCJcblxuY2FzZSAkPyBpblxuMClcbiAgICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZlxuICAg
IDs7XG4xKVxuICAgIG12IFwiJHtXS0JBU0VfSH1cInsudW5pZmRlZix9XG4gICAgOztcbiopXG4g
ICAgZXhpdCAxXG5lc2FjXG4iOworCQkJc2hlbGxTY3JpcHQgPSAiV0tCQVNFX0g9JHtUQVJHRVRf
QlVJTERfRElSfS8ke1BSSVZBVEVfSEVBREVSU19GT0xERVJfUEFUSH0vV0tCYXNlLmhcblxudW5p
ZmRlZiAtQiAtRF9fQVBQTEVfXyAtVUJVSUxESU5HX0dUS19fIC1VQlVJTERJTkdfV1BFX18gLVVV
U0VfU09VUCAtbyBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9XCJcblxuY2Fz
ZSAkPyBpblxuMClcbiAgICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZlxuICAgIDs7XG4xKVxu
ICAgIG12IFwiJHtXS0JBU0VfSH1cInsudW5pZmRlZix9XG4gICAgOztcbiopXG4gICAgZXhpdCAx
XG5lc2FjXG4iOwogCQl9OwogCQkzN0U1MzEwMTFCMjM5MTA5MDA3NEYwREYgLyogQ29weSBpT1Mg
U2FuZGJveCBQcm9maWxlcyBmb3IgTWFudWFsIFNhbmRib3hpbmcgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyUHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKaW5kZXggNTc1MDli
OTdhNGMuLmUyYmU4MDlkOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJl
Zml4LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCkBAIC01Nyw3ICs1Nyw3
IEBACiAKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQogI2RlZmluZSBFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFIDEKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggMTk1NTAxYWU0NGQuLmIxZjZiNjRmNGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9pZCBXZWJF
ZGl0b3JDbGllbnQ6OnJlZG8oKQogICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvKHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJQYWdlUHJv
eHk6OlJlZG8pKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvOjpSZXBs
eShyZXN1bHQpKTsKIH0KIAotI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkK
KyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXUEUp
CiB2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50
KiBldmVudCkKIHsKICAgICBpZiAobV9wYWdlLT5oYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChl
dmVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDU3ODFjODZkMmM2
Li5lZjY2ZTU4ZTZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE4
MDIsNCArMTgwMiwxMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRp
bmdJY29uKHVpbnQ2NF90IGxvYWRJZGVudGlmaWVyLCBTaGFyZWRCdQogICAgIH0KIH0KIAorYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBXZWJD
b3JlOjpVUkwmKSBjb25zdAoreworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4gZmFsc2U7
CisjZWxzZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDIxMmYxMGZkZGUxLi4zZjAz
ZTY5MzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjYyLDYgKzI2Miw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNv
cmU6OkxpbmtJY29uJiwgdWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CiAgICAgdm9pZCBmaW5p
c2hlZExvYWRpbmdJY29uKHVpbnQ2NF90IGxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpTaGFyZWRC
dWZmZXIqKSBmaW5hbDsKIAorICAgIGJvb2wgc2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBX
ZWJDb3JlOjpVUkwmKSBjb25zdCBvdmVycmlkZTsKKwogICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwog
ICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBtX3BsdWdpblZpZXc7CiAgICAgYm9vbCBtX2hhc1NlbnRS
ZXNwb25zZVRvUGx1Z2luVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApp
bmRleCA4MjMyOTBkZjQyNC4uMWFhMmQ4YmVlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKQEAgLTM3NSw0ICszNzUsMzEgQEAgUmVmPFNlbGVjdGlvbkRhdGE+IFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6cmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWIK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKIAorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIFBhc3Rl
Ym9hcmRTdHJhdGVneQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0VHlwZXMoVmVj
dG9yPFN0cmluZz4mIHR5cGVzKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJv
eHk6OkdldFBhc3RlYm9hcmRUeXBlcygpLCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpH
ZXRQYXN0ZWJvYXJkVHlwZXM6OlJlcGx5KHR5cGVzKSwgMCk7Cit9CisKK1N0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpCit7CisgICAgU3RyaW5nIHZhbHVlOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbmRl
eCwgcGFzdGVib2FyZFR5cGUpLCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkU3Ry
aW5nRnJvbVBhc3RlYm9hcmQ6OlJlcGx5KHZhbHVlKSwgMCk7CisgICAgcmV0dXJuIHZhbHVlOwor
fQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3Qg
V2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViUGFzdGVib2FyZFByb3h5OjpXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29udGVudCks
IDApOworfQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6V3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQocGFz
dGVib2FyZFR5cGUsIHRleHQpLCAwKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRl
eCA0MTkzOGVkOWViMS4uYWYwZjFhMzA0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaApAQCAtODksMTAgKzg5LDE4IEBAIHByaXZhdGU6CiAgICAgbG9uZyBzZXRQYXRobmFtZXNG
b3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgbG9uZyBzZXRT
dHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCisKICNpZiBQ
TEFURk9STShHVEspCiAgICAgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUsIGNvbnN0IFdlYkNvcmU6OlNlbGVjdGlvbkRhdGEmKSBvdmVycmlkZTsKICAg
ICBSZWY8V2ViQ29yZTo6U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQ
RSkKKyAgICB2b2lkIGdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykgb3ZlcnJpZGU7Cisg
ICAgU3RyaW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZFR5cGUpIG92ZXJyaWRlOworICAgIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQo
Y29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKSBvdmVycmlkZTsKKyAgICB2b2lk
IHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dl
YkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWQwMzRiMDI2NzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0
TWVudUNsaWVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViQ29udGV4dE1lbnVDbGllbnQuaCIKKworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQor
CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6bG9va1VwSW5EaWN0aW9uYXJ5KFdlYkNv
cmU6OkZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkNvbnRl
eHRNZW51Q2xpZW50Ojppc1NwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3BlYWsoY29u
c3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkNvbnRl
eHRNZW51Q2xpZW50OjpzdG9wU3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVO
VVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmRjYTMwMjRjZWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGll
bnRXUEUuY3BwCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJF
ZGl0b3JDbGllbnQuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L05vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CisjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gVGhlIGlkZWEgZm9yIHRoZSBhcnJheS9tYXAgYmVs
b3cgY29tZXMgZnJvbSBCbGluaydzIEVkaXRpbmdCZWhhdmlvci5jcHAuCisKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBDdHJsS2V5ICA9IDEgPDwgMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRL
ZXkgICA9IDEgPDwgMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEgPDwgMjsK
K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBNZXRhS2V5ICA9IDEgPDwgMzsKKworLy8gS2V5cyB3aXRo
IHNwZWNpYWwgbWVhbmluZy4gVGhlc2Ugd2lsbCBiZSBkZWxlZ2F0ZWQgdG8gdGhlIGVkaXRvciB1
c2luZworLy8gdGhlIGV4ZWNDb21tYW5kKCkgbWV0aG9kCitzdHJ1Y3QgS2V5RG93bkVudHJ5IHsK
KyAgICB1bnNpZ25lZCB2aXJ0dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBj
b25zdCBjaGFyKiBuYW1lOworfTsKKworc3RydWN0IEtleVByZXNzRW50cnkgeworICAgIHVuc2ln
bmVkIGNoYXJDb2RlOworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBu
YW1lOworfTsKKworc3RhdGljIGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50cmllc1tdID0g
eworICAgIHsgVktfTEVGVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIFNoaWZ0S2V5LCAg
ICAgICAgICAgIk1vdmVMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0xFRlQsICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVdvcmRMZWZ0IiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5IHwgU2hpZnRL
ZXksCisgICAgICAgICJNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgMCwgICAgICAg
ICAgICAgICAgICAiTW92ZVJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfUklHSFQsICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUmlnaHRBbmRNb2RpZnlT
ZWxlY3Rpb24iICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXksICAgICAg
ICAgICAgIk1vdmVXb3JkUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX1JJR0hULCAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRSaWdodEFuZE1vZGlmeVNl
bGVjdGlvbiIgICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAgICAgICAg
ICJNb3ZlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19V
UCwgICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX1BSSU9SLCAgU2hpZnRLZXksICAgICAgICAgICAiTW92
ZVBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwg
ICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19ET1dOLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVEb3du
QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgU2hp
ZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAg
ICB9LAorICAgIHsgVktfVVAsICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFyYWdyYXBo
QmFja3dhcmRBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBWS19ET1dOLCAgIEN0cmxLZXkg
fCBTaGlmdEtleSwgIk1vdmVQYXJhZ3JhcGhGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiAgfSwK
KyAgICB7IFZLX1BSSU9SLCAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VVcCIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTkVYVCwgICAwLCAgICAgICAgICAg
ICAgICAgICJNb3ZlUGFnZURvd24iICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19IT01FLCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZSIg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgU2hpZnRLZXksCisgICAgICAg
ICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSwgICAgICAgICAgICAi
TW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCIgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9N
RSwgICBDdHJsS2V5IHwgU2hpZnRLZXksCisgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3Vt
ZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0VORCwgICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lIiAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBTaGlmdEtleSwgICAgICAgICAg
ICJNb3ZlVG9FbmRPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisgICAgeyBWS19F
TkQsICAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAg
ICAgICAiTW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIDAsICAgICAgICAgICAgICAg
ICAgIkRlbGV0ZUJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X0JBQ0ssICAgU2hpZnRLZXksICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfREVMRVRFLCAwLCAgICAgICAgICAgICAgICAgICJE
ZWxldGVGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNL
LCAgIEN0cmxLZXksICAgICAgICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRl
V29yZEZvcndhcmQiICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0InLCAgICAgICAg
IEN0cmxLZXksICAgICAgICAgICJUb2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyAnSScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZUl0YWxp
YyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdVJywgICAgICAgICBDdHJs
S2V5LCAgICAgICAgICAiVG9nZ2xlVW5kZXJsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfRVNDQVBFLCAwLCAgICAgICAgICAgICAgICAgICJDYW5jZWwiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19PRU1fUEVSSU9ELCBDdHJsS2V5
LCAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX1RBQiwgICAgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfVEFCLCAgICBTaGlmdEtleSwgICAgICAg
ICAgICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19SRVRVUk4sIDAsICAgICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQ3RybEtleSwgICAgICAgICAgICAi
SW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVU
VVJOLCBBbHRLZXksICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2Vy
dE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwg
U2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIC8vIFRoZXNlIHByb2JhYmx5IG5lZWQgaGFuZGxpbmcgc29tZXdoZXJlIGVs
c2Ugc28gZG8gbm90IGV4ZWN1dGUgdGhlbS4gVGhlCisgICAgLy8gJ0N1dCcgY29tbWFuZCBpcyBy
ZW1vdmluZyB0ZXh0IHNvIGxldCdzIGF2b2lkIGxvc2luZyB0aGUgdXNlciBsb3NpbmcgZGF0YQor
ICAgIC8vIHVudGlsIHdlIGltcGxlbWVudCBjbGlwYm9hcmQgc3VwcG9ydCB3aGVyZXZlciBpdCBz
aG91bGQgYmUuCisgICAgeyBWS19JTlNFUlQsIEN0cmxLZXksICAgICAgICAgICAgIkNvcHkiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VSVCwgU2hp
ZnRLZXksICAgICAgICAgICAiUGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfREVMRVRFLCBTaGlmdEtleSwgICAgICAgICAgICJDdXQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQycsICAgICAgICAgQ3RybEtl
eSwgICAgICAgICAgIkNvcHkiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7ICdWJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiUGFzdGUiICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1YnLCAgICAgICAgIEN0cmxLZXkgfCBT
aGlmdEtleSwgIlBhc3RlQW5kTWF0Y2hTdHlsZSIgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyAnWCcsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIkN1dCIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdBJywgICAgICAgICBDdHJsS2V5LCAgICAgICAg
ICAiU2VsZWN0QWxsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1on
LCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJVbmRvIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyAnWicsICAgICAgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAi
UmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdZJywgICAg
ICAgICBDdHJsS2V5LCAgICAgICAgICAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfSU5TRVJULCAwLCAgICAgICAgICAgICAgICAgICJPdmVyV3Jp
dGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMgY29uc3Qg
S2V5UHJlc3NFbnRyeSBrZXlQcmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdcdCcsICAgMCwgICAg
ICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgJ1x0JywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNrdGFiIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIDAsICAgICAgICAg
ICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7ICdccicsICAgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBTaGlmdEtleSwgICAgICAg
ICAgICJJbnNlcnRMaW5lQnJlYWsiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyAnXHInLCAgIEFsdEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRLZXksICAi
SW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworc3Rh
dGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQmIGV2
ZW50KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGludCwgY29uc3QgY2hh
cio+PiBrZXlEb3duQ29tbWFuZHNNYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hN
YXA8aW50LCBjb25zdCBjaGFyKj4+IGtleVByZXNzQ29tbWFuZHNNYXA7CisKKyAgICBpZiAoa2V5
RG93bkNvbW1hbmRzTWFwLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlEb3duRW50cmllcyk7IGkrKykKKyAgICAg
ICAgICAgIGtleURvd25Db21tYW5kc01hcC5nZXQoKS5zZXQoa2V5RG93bkVudHJpZXNbaV0ubW9k
aWZpZXJzIDw8IDE2IHwga2V5RG93bkVudHJpZXNbaV0udmlydHVhbEtleSwga2V5RG93bkVudHJp
ZXNbaV0ubmFtZSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlf
TEVOR1RIKGtleVByZXNzRW50cmllcyk7IGkrKykKKyAgICAgICAgICAgIGtleVByZXNzQ29tbWFu
ZHNNYXAuZ2V0KCkuc2V0KGtleVByZXNzRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlQ
cmVzc0VudHJpZXNbaV0uY2hhckNvZGUsIGtleVByZXNzRW50cmllc1tpXS5uYW1lKTsKKyAgICB9
CisKKyAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgIGlmIChldmVudC5zaGlmdEtleSgp
KQorICAgICAgICBtb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LmFsdEtleSgp
KQorICAgICAgICBtb2RpZmllcnMgfD0gQWx0S2V5OworICAgIGlmIChldmVudC5jdHJsS2V5KCkp
CisgICAgICAgIG1vZGlmaWVycyB8PSBDdHJsS2V5OworICAgIGlmIChldmVudC5tZXRhS2V5KCkp
CisgICAgICAgIG1vZGlmaWVycyB8PSBNZXRhS2V5OworCisgICAgaWYgKGV2ZW50LnR5cGUoKSA9
PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KSB7CisgICAgICAgIGludCBtYXBLZXkgPSBtb2Rp
ZmllcnMgPDwgMTYgfCBldmVudC5rZXlDb2RlKCk7CisgICAgICAgIHJldHVybiBtYXBLZXkgPyBr
ZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuZ2V0KG1hcEtleSkgOiBudWxscHRyOworICAgIH0KKwor
ICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC5jaGFyQ29kZSgpOworICAg
IHJldHVybiBtYXBLZXkgPyBrZXlQcmVzc0NvbW1hbmRzTWFwLmdldCgpLmdldChtYXBLZXkpIDog
bnVsbHB0cjsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBL
ZXlib2FyZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBwbGF0Zm9y
bUV2ZW50KQoreworICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2ZW50KGV2
ZW50KTsKKworICAgIGlmICghY29tbWFuZE5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGZyYW1l
LmVkaXRvcigpLmNvbW1hbmQoY29tbWFuZE5hbWUpLmV4ZWN1dGUoKTsKKyAgICAgICAgZXZlbnQu
c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIERv
bid0IGluc2VydCBudWxsIG9yIGNvbnRyb2wgY2hhcmFjdGVycyBhcyB0aGV5IGNhbiByZXN1bHQg
aW4gdW5leHBlY3RlZCBiZWhhdmlvdXIKKyAgICBpZiAoZXZlbnQuY2hhckNvZGUoKSA8ICcgJykK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRG9uJ3QgaW5zZXJ0IGFueXRoaW5nIGlmIGEgbW9k
aWZpZXIgaXMgcHJlc3NlZCBhbmQgaXQgaGFzIG5vdCBiZWVuIGhhbmRsZWQgeWV0CisgICAgaWYg
KHBsYXRmb3JtRXZlbnQuY3RybEtleSgpIHx8IHBsYXRmb3JtRXZlbnQuYWx0S2V5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChmcmFtZS5lZGl0b3IoKS5pbnNlcnRUZXh0KHBsYXRmb3Jt
RXZlbnQudGV4dCgpLCAmZXZlbnQpKQorICAgICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgp
OworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVLZXlEb3duKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRF
dmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpCit7CisgICAgU3RyaW5n
IGNvbW1hbmROYW1lID0gaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpOworICAgIGlmIChjb21tYW5k
TmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHNob3VsZG4ndCBp
bnNlcnQgdGV4dCB0aHJvdWdoIHRoZSBlZGl0b3IuIExldCBXZWJDb3JlIGRlY2lkZQorICAgIC8v
IGhvdyB0byBoYW5kbGUgdGhhdCAoc2F5LCBUYWIsIHdoaWNoIGNvdWxkIGFsc28gYmUgdXNlZCB0
bworICAgIC8vIGNoYW5nZSBmb2N1cykuCisgICAgRWRpdG9yOjpDb21tYW5kIGNvbW1hbmQgPSBm
cmFtZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKTsKKyAgICBpZiAoY29tbWFuZC5pc1Rl
eHRJbnNlcnRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29tbWFuZC5leGVjdXRlKCk7
CisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGll
bnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogZXZlbnQpCit7
CisgICAgTm9kZSogbm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAgQVNTRVJU
KG5vZGUpOworICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKTsKKyAg
ICBBU1NFUlQoZnJhbWUpOworCisgICAgLy8gRklYTUU6IFJlb3JkZXIgdGhlIGNoZWNrcyBpbiBh
IG1vcmUgc2Vuc2libGUgd2F5LgorCisgICAgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50KiBw
bGF0Zm9ybUV2ZW50ID0gZXZlbnQtPmtleUV2ZW50KCk7CisgICAgaWYgKCFwbGF0Zm9ybUV2ZW50
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiB0aGlzIHdhcyBhbiBJTUUgZXZlbnQgZG9u
J3QgZG8gYW55dGhpbmcuCisgICAgaWYgKHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5
Q29kZSgpID09IFZLX1BST0NFU1NLRVkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvbid0
IGFsbG93IHRleHQgaW5zZXJ0aW9uIGZvciBub2RlcyB0aGF0IGNhbm5vdCBlZGl0LgorICAgIGlm
ICghZnJhbWUtPmVkaXRvcigpLmNhbkVkaXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
VGhpcyBpcyBqdXN0IGEgbm9ybWFsIHRleHQgaW5zZXJ0aW9uLCBzbyB3YWl0IHRvIGV4ZWN1dGUg
dGhlIGluc2VydGlvbgorICAgIC8vIHVudGlsIGEga2V5cHJlc3MgZXZlbnQgaGFwcGVucy4gVGhp
cyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBpbnNlcnRpb24gd2lsbCBub3QKKyAgICAvLyBiZSByZWZs
ZWN0ZWQgaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWVsZCB1bnRpbCB0aGUga2V5dXAgRE9NIGV2
ZW50LgorICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50
KQorICAgICAgICByZXR1cm4gaGFuZGxlS2V5UHJlc3MoKmZyYW1lLCAqZXZlbnQsICpwbGF0Zm9y
bUV2ZW50KTsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2
ZW50KQorICAgICAgICByZXR1cm4gaGFuZGxlS2V5RG93bigqZnJhbWUsICpldmVudCwgKnBsYXRm
b3JtRXZlbnQpOworfQorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRob2RL
ZXlkb3duKFdlYkNvcmU6OktleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0IFBsYXRm
b3JtS2V5Ym9hcmRFdmVudCogcGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOworICAg
IGlmIChwbGF0Zm9ybUV2ZW50ICYmIHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSgpID09IFZLX1BST0NFU1NLRVkpCisgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYWI4MzdiMGE0ZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
d3BlL1dlYlBvcHVwTWVudVdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlBvcHVwTWVudTo6c2V0VXBQ
bGF0Zm9ybURhdGEoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBsYXRmb3JtUG9wdXBNZW51RGF0
YSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNjBlOTE2Nzk5YjMuLmQzZGY0NmExODdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC03NCwxMCArNzQsMTAgQEAgVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0KFdlYlBhZ2UmIHdlYlAKICAgICAgICAgLy8gRG8gbm90IGRvIGZyYW1lIHN5bmMgd2hlbiBy
ZW5kZXJpbmcgb2Zmc2NyZWVuIGluIHRoZSB3ZWIgcHJvY2VzcyB0byBlbnN1cmUgdGhhdCBTd2Fw
QnVmZmVycyBuZXZlciBibG9ja3MuCiAgICAgICAgIC8vIFJlbmRlcmluZyB0byB0aGUgYWN0dWFs
IHNjcmVlbiB3aWxsIGhhcHBlbiBsYXRlciBhbnl3YXkgc2luY2UgdGhlIFVJIHByb2Nlc3Mgc2No
ZWR1bGVzIGEgcmVkcmF3IGZvciBldmVyeSB1cGRhdGUsCiAgICAgICAgIC8vIHRoZSBjb21wb3Np
dG9yIHdpbGwgdGFrZSBjYXJlIG9mIHN5bmNpbmcgdG8gdmJsYW5rLgotICAgICAgICBtX2NvbXBv
c2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHNj
YWxlZFNpemUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBUaHJlYWRlZENvbXBv
c2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOworICAgICAgICBtX2Nv
bXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQs
IHdlYlBhZ2UsIHNjYWxlZFNpemUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBU
aHJlYWRlZENvbXBvc2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOwog
ICAgICAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gbV9zdXJmYWNlLT5zdXJmYWNl
SUQoKTsKICAgICB9IGVsc2UKLSAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3Np
dG9yOjpjcmVhdGUobV9jb21wb3NpdG9yQ2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvcik7
CisgICAgICAgIG1fY29tcG9zaXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29t
cG9zaXRvckNsaWVudCwgd2ViUGFnZSwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IpOwogCiAgICAg
ZGlkQ2hhbmdlVmlld3BvcnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmluZGV4IDJlNzgwZDkxYmU1Li41ZjA5M2FjN2I1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEu
Y3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5oIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgIkRyYXdpbmdBcmVh
V1BFLmgiCiAjZWxzZQogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgogI2VuZGlmCkBAIC01
NSw2ICs1Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6OmNy
ZWF0ZShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiAjZW5kaWYKICAgICBjYXNlIERy
YXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZToKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOwor
I2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlV1BFOgorICAgICAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJlYVdQRT4od2ViUGFnZSwgcGFyYW1l
dGVycyk7CiAjZWxzZQogICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlSW1wbDoKICAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0FyZWFJbXBsPih3ZWJQYWdlLCBwYXJhbWV0ZXJz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCA3YWFhMjQ0NjMyYS4uM2UwZGNkNjdiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0OTcsNyArMzQ5Nyw3IEBAIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciogV2ViUGFnZTo6bm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hCiAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmdldCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09B
KQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQ
RSkKIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZ0KQogewogICAgIE5vZGUqIG5vZGUgPSBldnQtPnRhcmdldCgpLT50b05vZGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGIyMGRhNDJm
MzBhLi42NmE0ZGM5NDQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xMDE5LDcgKzEwMTksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYK
IAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9S
TShXUEUpCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IFdl
YkNvcmU6OktleWJvYXJkRXZlbnQqKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlMjNkMzQwZDkxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21w
b3NpdGluZ01hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK0NvbXBvc2l0aW5nTWFuYWdlcjo6fkNvbXBvc2l0aW5nTWFuYWdlcigpCit7CisgICAg
QVNTRVJUKG1fY29ubmVjdGlvbkZkID09IC0xKTsKK30KKwordm9pZCBDb21wb3NpdGluZ01hbmFn
ZXI6OmVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZSYgd2ViUGFnZSkKK3sKKyAgICBJUEM6OkF0
dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZTsKKyAgICB3ZWJQYWdlLnNlbmRTeW5jKE1lc3NhZ2Vz
OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6RXN0YWJsaXNoQ29ubmVjdGlvbigpLAorICAgICAg
ICBNZXNzYWdlczo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5lY3Rpb246
OlJlcGx5KGNvbm5lY3Rpb25IYW5kbGUpKTsKKworICAgIG1fY29ubmVjdGlvbkZkID0gY29ubmVj
dGlvbkhhbmRsZS5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMjFlMjc5MjIxOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oCkBAIC0wLDAgKzEsNDcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFuYWdlciBmaW5h
bCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdNYW5hZ2VyKTsKK3B1Ymxp
YzoKKyAgICBDb21wb3NpdGluZ01hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgfkNvbXBvc2l0aW5n
TWFuYWdlcigpOworCisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmKTsKKyAg
ICBpbnQgcmVsZWFzZUNvbm5lY3Rpb25GZCgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9jb25u
ZWN0aW9uRmQsIC0xKTsgfTsKKworcHJpdmF0ZToKKyAgICBpbnQgbV9jb25uZWN0aW9uRmQgeyAt
MSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNDQ3YWM4Y2IwZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFX
UEUuY3BwCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEcmF3aW5n
QXJlYVdQRS5oIgorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1
ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlSZWZy
ZXNoTW9uaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEcmF3
aW5nQXJlYVdQRTo6RHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGVX
UEUsIHdlYlBhZ2UpCit7CisgICAgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNldEZv
cmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUoMCk7Cit9CisKK0RyYXdpbmdBcmVhV1BFOjp+RHJhd2luZ0FyZWFXUEUoKQoreworfQor
Cit2b2lkIERyYXdpbmdBcmVhV1BFOjpsYXllckhvc3REaWRGbHVzaExheWVycygpCit7CisgICAg
bV93ZWJQYWdlLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OkVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUoMCwgbV9sYXllclRyZWVIb3N0LT5sYXllclRyZWVDb250ZXh0KCkp
KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0TmVlZHNEaXNwbGF5KCkKK3sKKyAgICBB
U1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5vbkNvbXBv
c2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNl
dE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEFTU0VSVCht
X2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Tm9uQ29tcG9zaXRlZENv
bnRlbnRzTmVlZERpc3BsYXlJblJlY3QocmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6
OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJikKK3sKKyAg
ICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNjcm9sbE5v
bkNvbXBvc2l0ZWRDb250ZW50cyhzY3JvbGxSZWN0KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQ
RTo6cGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkKK3sKKyAgICBpZiAobV9sYXll
clRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnBhZ2VCYWNrZ3JvdW5kVHJhbnNw
YXJlbmN5Q2hhbmdlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJlcGFpbnQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgRHJhd2luZ0FyZWFXUEU6OmZv
cmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgcmV0dXJuIG1fbGF5
ZXJUcmVlSG9zdCAmJiBtX2xheWVyVHJlZUhvc3QtPmZvcmNlUmVwYWludEFzeW5jKGNhbGxiYWNr
SUQpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVu
KGJvb2wgZnJvemVuKQoreworICAgIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbiA9IGZyb3plbjsK
K30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRlUHJl
ZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAgbV93ZWJQ
YWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoc3RvcmUu
Z2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZUNvbXBvc2l0aW5nTW9k
ZUtleSgpKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6Om1haW5GcmFtZUNvbnRlbnRTaXpl
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIGlmIChtX2xheWVy
VHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29udGVudHNTaXplQ2hhbmdlZChz
aXplKTsKK30KKworR3JhcGhpY3NMYXllckZhY3RvcnkqIERyYXdpbmdBcmVhV1BFOjpncmFwaGlj
c0xheWVyRmFjdG9yeSgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgcmV0
dXJuIG1fbGF5ZXJUcmVlSG9zdC0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5
ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQobV9sYXllclRy
ZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RDb21wb3NpdGluZ0xheWVyKGdy
YXBoaWNzTGF5ZXIpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJGbHVzaCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9s
YXllclRyZWVIb3N0LT5zY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBEcmF3aW5nQXJl
YVdQRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpCit7CisgICAg
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKK30KKworI2lmIFVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCitSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJl
ZnJlc2hNb25pdG9yPiBEcmF3aW5nQXJlYVdQRTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9y
KFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKK3sKKyAgICBpZiAobV9sYXllclRyZWVIb3N0
KQorICAgICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVEaXNwbGF5UmVmcmVzaE1v
bml0b3IoZGlzcGxheUlEKTsKKworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKK3Zv
aWQgRHJhd2luZ0FyZWFXUEU6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3Jl
OjpGcmFtZSogZnJhbWUsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5Um9vdExh
eWVyKQoreworICAgIGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0
Vmlld092ZXJsYXlSb290TGF5ZXIodmlld092ZXJsYXlSb290TGF5ZXIpOworfQorCisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQordm9pZCBEcmF3aW5nQXJlYVdQRTo6ZGlk
Q2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYmKQor
eworfQorI2VuZGlmCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhU
VVJFX01BUFBFUikKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9y
Q2hhbmdlZCgpCit7Cit9CisjZW5kaWYKKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRlQmFj
a2luZ1N0b3JlU3RhdGUodWludDY0X3QsIGJvb2wsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3Jv
bGxPZmZzZXQpCit7CisgICAgbV93ZWJQYWdlLnNldERldmljZVNjYWxlRmFjdG9yKGRldmljZVNj
YWxlRmFjdG9yKTsKKyAgICBtX3dlYlBhZ2Uuc2V0U2l6ZShzaXplKTsKKyAgICBtX3dlYlBhZ2Uu
bGF5b3V0SWZOZWVkZWQoKTsKKyAgICBtX3dlYlBhZ2Uuc2Nyb2xsTWFpbkZyYW1lSWZOb3RBdE1h
eFNjcm9sbFBvc2l0aW9uKHNjcm9sbE9mZnNldCk7CisKKyAgICBBU1NFUlQobV9sYXllclRyZWVI
b3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobV93ZWJQYWdlLnNpemUo
KSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRpZFVwZGF0ZSgpCit7Cit9CisKK3ZvaWQg
RHJhd2luZ0FyZWFXUEU6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9zdCk7Cisg
ICAgbV9sYXllclRyZWVIb3N0ID0gTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKG1fd2ViUGFnZSk7Cisg
ICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xheWVy
KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNjaGVkdWxl
ZExheWVyRmx1c2godHJ1ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdlKG1f
d2ViUGFnZS5zaXplKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDk5MTk3YzAyYWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdp
bmdBcmVhV1BFLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRyYXdpbmdB
cmVhLmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBEcmF3aW5nQXJlYVdQRSA6IHB1YmxpYyBEcmF3aW5nQXJlYSB7CitwdWJsaWM6
CisgICAgRHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVdQRSgpOworCisgICAgdm9pZCBsYXll
ckhvc3REaWRGbHVzaExheWVycygpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIC8vIERyYXdp
bmdBcmVhCisgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOworCisgICAgdm9pZCBwYWdl
QmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGZvcmNl
UmVwYWludCgpIG92ZXJyaWRlOworICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3Qg
Y2FsbGJhY2tJRCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVu
KGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbjsgfQorICAgIExheWVy
VHJlZUhvc3QqIGxheWVyVHJlZUhvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVy
VHJlZUhvc3QuZ2V0KCk7IH0KKworICAgIHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpIG92
ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYpIG92ZXJyaWRlOworICAgIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOworICAgIHZvaWQg
c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OworICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSBvdmVycmlk
ZTsKKworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisg
ICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBvdmVycmlkZTsKKyNlbmRp
ZgorCisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJh
bWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisKKyNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydEF0dHJp
YnV0ZXMoV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiYpIG92ZXJyaWRlOworI2VuZGlmCisK
KyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhUVVJFX01BUFBFUikKKyAg
ICB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRlOworI2VuZGlm
CisKKyAgICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBib29sLCBmbG9h
dCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFVwZGF0ZSgpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbnRlckFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKworICAg
IC8vIFdoZW4gdHJ1ZSwgd2UgbWFpbnRhaW4gdGhlIGxheWVyIHRyZWUgaW4gaXRzIGN1cnJlbnQg
c3RhdGUgYnkgbm90IGxlYXZpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbW9kZQorICAgIC8v
IGFuZCBub3Qgc2NoZWR1bGluZyBsYXllciBmbHVzaGVzLgorICAgIGJvb2wgbV9sYXllclRyZWVT
dGF0ZUlzRnJvemVuIHsgZmFsc2UgfTsKKworICAgIC8vIFRoZSBsYXllciB0cmVlIGhvc3QgdGhh
dCBoYW5kbGVzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgorICAgIFJlZlB0cjxMYXllclRyZWVI
b3N0PiBtX2xheWVyVHJlZUhvc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9y
VUlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNw
ZWN0b3JVSVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc0
Yzg0NGJjYmE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUkuaCIKKworI2luY2x1ZGUgIlJlbW90ZVdl
Ykluc3BlY3RvclVJLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3Rv
clVJOjpjYW5TYXZlKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNw
ZWN0b3JVSTo6bG9jYWxpemVkU3RyaW5nc1VSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCitTdHJpbmcgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQor
eworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3Rv
cldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3Bl
Y3RvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0ZTBj
NjVlMGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkluc3BlY3Rvci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViSW5zcGVjdG9yOjpjYW5TYXZlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3I6OmxvY2FsaXpl
ZFN0cmluZ3NVUkwoKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3MWMyNDZiODE4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdl
V1BFLmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVu
Y2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQor
Cit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRGV0YWNoKCkKK3sKK30KKwordm9pZCBXZWJQYWdlOjpw
bGF0Zm9ybUVkaXRvclN0YXRlKEZyYW1lJiwgRWRpdG9yU3RhdGUmLCBJbmNsdWRlUG9zdExheW91
dERhdGFIaW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6cGxhdGZvcm1QcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0
b3JlJiBzdG9yZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYlBhZ2U6
OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBVUkwmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFn
ZTo6Y2FjaGVkUmVzcG9uc2VNSU1FVHlwZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFdlYlBhZ2U6OnBs
YXRmb3JtQ2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6
Y2FjaGVkU3VnZ2VzdGVkRmlsZW5hbWVGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gV2ViUGFnZTo6Y2FjaGVkUmVzcG9uc2VEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworU3RyaW5nIFdlYlBh
Z2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01h
aW5XUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5X
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZDEzN2JjZTdj
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd3BlL1dlYlBy
b2Nlc3NNYWluV1BFLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
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
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NNYWlu
VW5peC5oIgorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2luY2x1
ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJQcm9jZXNzTWFpbiBmaW5hbDogcHVibGljIENoaWxkUHJvY2Vzc01haW5CYXNlIHsK
K3B1YmxpYzoKKyAgICBib29sIHBsYXRmb3JtSW5pdGlhbGl6ZSgpIG92ZXJyaWRlCisgICAgewor
I2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkKKyAgICAgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVQy
X1BBVVNFX1dFQl9QUk9DRVNTX09OX0xBVU5DSCIpKQorICAgICAgICAgICAgV1RGOjpzbGVlcCgz
MCk7CisjZW5kaWYKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHBh
cnNlQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKGFyZ2MgPT0gMyk7CisgICAgICAgIGlmIChhcmdjIDwgMykKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoIUNoaWxkUHJvY2Vzc01haW5CYXNlOjpw
YXJzZUNvbW1hbmRMaW5lKGFyZ2MsIGFyZ3YpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgICAgIGludCB3cGVGZCA9IGF0b2koYXJndlsyXSk7CisgICAgICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaCgKKyAgICAgICAgICAgIFt3cGVGZF0geworICAgICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGlzPFBsYXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFy
ZWREaXNwbGF5KCkpKTsKKyAgICAgICAgICAgICAgICBkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlX
UEU+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKS5pbml0aWFsaXplKHdwZUZkKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCitpbnQg
V2ViUHJvY2Vzc01haW5Vbml4KGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICByZXR1cm4g
Q2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9jZXNzLCBXZWJQcm9jZXNzTWFpbj4oYXJnYywgYXJndik7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
d3BlL3dwZS13ZWJraXQucGMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk5YzAyNTE4MTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbgpAQCAt
MCwwICsxLDExIEBACitwcmVmaXg9QENNQUtFX0lOU1RBTExfUFJFRklYQAorZXhlY19wcmVmaXg9
JHtwcmVmaXh9CitsaWJkaXI9QExJQl9JTlNUQUxMX0RJUkAKK2luY2x1ZGVkaXI9JHtwcmVmaXh9
L2luY2x1ZGUKKworTmFtZTogV2ViS2l0MgorRGVzY3JpcHRpb246IFdQRS1mbGF2b3JlZCBXZWIg
ZW5naW5lCitWZXJzaW9uOiBAUFJPSkVDVF9WRVJTSU9OQAorUmVxdWlyZXMucHJpdmF0ZTogZ2xp
Yi0yLjAgbGlic291cC0yLjQKK0xpYnM6IC1MJHtsaWJkaXJ9IC1sV1BFV2ViS2l0IC1sV1BFCitD
ZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAgLUkke2luY2x1ZGVk
aXJ9L3dwZS1AV1BFX0FQSV9WRVJTSU9OQC9XUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9G
aW5kTGliR0JNLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQyMDkxY2JmYjQyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UKQEAgLTAsMCArMSw0NiBAQAorIyAt
IFRyeSB0byBmaW5kIGdibS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBM
SUJHQk1fSU5DTFVERV9ESVJTIC0gdGhlIGdibSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBMSUJH
Qk1fTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgZ2JtLgorIworIyBDb3B5cmlnaHQgKEMp
IDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtn
X2NoZWNrX21vZHVsZXMoUENfTElCR0JNIGdibSkKKworZmluZF9wYXRoKExJQkdCTV9JTkNMVURF
X0RJUlMKKyAgICBOQU1FUyBnYm0uaAorICAgIEhJTlRTICR7UENfTElCR0JNX0lOQ0xVREVfRElS
U30gJHtQQ19MSUJHQk1fSU5DVURFRElSfQorKQorCitmaW5kX2xpYnJhcnkoTElCR0JNX0xJQlJB
UklFUworICAgIE5BTUVTIGdibQorICAgIEhJTlRTICR7UENfTElCR0JNX0xJQlJBUllfRElSU30g
JHtQQ19MSUJHQk1fTElCRElSfQorKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRh
cmRBcmdzKQorRklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKExJQkdCTSBERUZBVUxU
X01TRyBMSUJHQk1fTElCUkFSSUVTKQorCittYXJrX2FzX2FkdmFuY2VkKExJQkdCTV9JTkNMVURF
X0RJUlMgTElCR0JNX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kV1BF
QmFja2VuZC1tZXNhLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYxNjE1NGU2MTE4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UK
QEAgLTAsMCArMSw0NyBAQAorIyAtIFRyeSB0byBmaW5kIFdQRS1tZXNhLgorIyBPbmNlIGRvbmUs
IHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIFdQRV9NRVNBX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUt
bWVzYS4KKyMgIFdQRV9NRVNBX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUtbWVzYSBpbmNsdWRlIGRp
cmVjdG9yaWVzCisjICBXUEVfTUVTQV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUt
bWVzYS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmlu
ZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX1dQRV9NRVNBIFFVSUVU
IHdwZS1tZXNhKQorCitmaW5kX3BhdGgoV1BFX01FU0FfSU5DTFVERV9ESVJTCisgICAgTkFNRVMg
d3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oCisgICAgSElOVFMgJHtQ
Q19XUEVfTUVTQV9JTkNMVURFRElSfSAke1BDX1dQRV9NRVNBX0lOQ0xVREVfRElSU30KKykKKwor
ZmluZF9saWJyYXJ5KFdQRV9NRVNBX0xJQlJBUklFUworICAgIE5BTUVTIFdQRUJhY2tlbmQtbWVz
YQorICAgIEhJTlRTICR7UENfV1BFX01FU0FfTElCRElSfSAke1BDX1dQRV9NRVNBX0xJQlJBUllf
RElSU30KKykKKworbWFya19hc19hZHZhbmNlZChXUEVfTUVTQV9JTkNMVURFX0RJUlMgV1BFX01F
U0FfTElCUkFSSUVTKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQor
RklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKFdQRV9NRVNBIFJFUVVJUkVEX1ZBUlMg
V1BFX01FU0FfSU5DTFVERV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFj
a2VuZC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzdhOTNk
MDA1MTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21h
a2UKQEAgLTAsMCArMSw0NyBAQAorIyAtIFRyeSB0byBmaW5kIFdQRS4KKyMgT25jZSBkb25lLCB0
aGlzIHdpbGwgZGVmaW5lCisjCisjICBXUEVfRk9VTkQgLSBzeXN0ZW0gaGFzIFdQRS4KKyMgIFdQ
RV9JTkNMVURFX0RJUlMgLSB0aGUgV1BFIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRV9MSUJS
QVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUuCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBJ
Z2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tf
bW9kdWxlcyhQQ19XUEUgUVVJRVQgd3BlKQorCitmaW5kX3BhdGgoV1BFX0lOQ0xVREVfRElSUwor
ICAgIE5BTUVTIHdwZS9sb2FkZXIuaAorICAgIEhJTlRTICR7UENfV1BFX0lOQ0xVREVESVJ9ICR7
UENfV1BFX0lOQ0xVREVfRElSU30KKykKKworZmluZF9saWJyYXJ5KFdQRV9MSUJSQVJJRVMKKyAg
ICBOQU1FUyBXUEVCYWNrZW5kCisgICAgSElOVFMgJHtQQ19XUEVfTElCRElSfSAke1BDX1dQRV9M
SUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQoV1BFX0lOQ0xVREVfRElSUyBXUEVf
TElCUkFSSUVTKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorRklO
RF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKFdQRSBSRVFVSVJFRF9WQVJTIFdQRV9JTkNM
VURFX0RJUlMgV1BFX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25z
V1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjczNjUwMWIwYzQ2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTAsMCArMSwxNDEgQEAKK2luY2x1ZGUo
R05VSW5zdGFsbERpcnMpCisKK3NldChQUk9KRUNUX1ZFUlNJT05fTUFKT1IgMCkKK3NldChQUk9K
RUNUX1ZFUlNJT05fTUlOT1IgMCkKK3NldChQUk9KRUNUX1ZFUlNJT05fUEFUQ0ggMjAxNzA0Mjcp
CitzZXQoUFJPSkVDVF9WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfS4ke1BST0pFQ1Rf
VkVSU0lPTl9NSU5PUn0uJHtQUk9KRUNUX1ZFUlNJT05fUEFUQ0h9KQorc2V0KFdQRV9BUElfVkVS
U0lPTiAwLjEpCisKK2lmIChXVEZfQ1BVX1g4Nl82NCkKKyAgICBzZXQoRU5BQkxFX0ZUTF9ERUZB
VUxUIE9OKQorZWxzZSAoKQorICAgIHNldChFTkFCTEVfRlRMX0RFRkFVTFQgT0ZGKQorZW5kaWYg
KCkKKworV0VCS0lUX09QVElPTl9CRUdJTigpCisKKyMgV2ViS2l0MiBDIEFQSQorV0VCS0lUX09Q
VElPTl9ERUZJTkUoRVhQT1JUX0RFUFJFQ0FURURfV0VCS0lUMl9DX0FQSSAiV2hldGhlciB0byBl
eHBvcnQgdGhlIFdlYktpdDIgQyBBUEkiIFBSSVZBVEUgT0ZGKQorCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfM0RfVFJBTlNGT1JNUyBQVUJMSUMgT04pCitXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIFBV
QkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1JF
R0lPTlMgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0NTU19TRUxFQ1RPUlNfTEVWRUw0IFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9EQVRBQkFTRV9QUk9DRVNTIFBSSVZBVEUgT04pCitXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIFBVQkxJQyBP
RkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX0ZUTF9KSVQgUFJJVkFURSAke0VOQUJMRV9GVExfREVGQVVMVH0pCitXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR0FNRVBBRCBQVUJMSUMgT0ZGKQorV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dFT0xPQ0FUSU9OIFBVQkxJQyBPRkYp
CitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lO
REVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQgUFVCTElDIE9OKQor
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NPVVJDRSBQVUJM
SUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01IVE1MIFBS
SVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX0FQSSBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9UT1VDSF9FVkVOVFMgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1ZJREVPIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFT19UUkFDSyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSBQVUJMSUMgT04p
CitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCX0FOSU1BVElPTlMg
UFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJf
QVVESU8gUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1dFQkdMIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9XRUJfVElNSU5HIFBVQkxJQyBPTikKKworV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dTVFJF
QU1FUl9HTCAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgR1N0cmVhbWVyIEdMIiBQUklW
QVRFIE9GRikKKworV0VCS0lUX09QVElPTl9FTkQoKQorCitzZXQoRU5BQkxFX1dFQkNPUkUgT04p
CitzZXQoRU5BQkxFX1dFQktJVCBPRkYpCitzZXQoRU5BQkxFX1dFQktJVDIgT04pCitzZXQoRU5B
QkxFX0FQSV9URVNUUyAke0RFVkVMT1BFUl9NT0RFfSkKK3NldChFTkFCTEVfVE9PTFMgT04pCisK
K3NldChXVEZfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChKYXZhU2NyaXB0Q29yZV9MSUJSQVJZ
X1RZUEUgU1RBVElDKQorc2V0KFdlYkNvcmVfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChXZWJL
aXQyX09VVFBVVF9OQU1FIFdQRVdlYktpdCkKK3NldChXZWJLaXQyX1dlYlByb2Nlc3NfT1VUUFVU
X05BTUUgV1BFV2ViUHJvY2VzcykKK3NldChXZWJLaXQyX05ldHdvcmtQcm9jZXNzX09VVFBVVF9O
QU1FIFdQRU5ldHdvcmtQcm9jZXNzKQorc2V0KFdlYktpdDJfRGF0YWJhc2VQcm9jZXNzX09VVFBV
VF9OQU1FIFdQRURhdGFiYXNlUHJvY2VzcykKKworZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkK
K2ZpbmRfcGFja2FnZShUaHJlYWRzIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFpMSUIgUkVRVUlS
RUQpCitmaW5kX3BhY2thZ2UoR0xJQiAyLjQwLjAgUkVRVUlSRUQgQ09NUE9ORU5UUyBnaW8gZ2lv
LXVuaXggZ29iamVjdCBndGhyZWFkIGdtb2R1bGUpCitmaW5kX3BhY2thZ2UoR251VExTIDMuMC4w
IFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2UoQ2Fpcm8gMS4xMC4yIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRnJlZXR5cGUy
IDIuNC4yIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEhhcmZCdXp6IDAuOS4xOCBSRVFVSVJFRCkK
K2ZpbmRfcGFja2FnZShKUEVHIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYkdjcnlwdCAxLjYu
MCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJTb3VwIDIuNDIuMCBSRVFVSVJFRCkKK2ZpbmRf
cGFja2FnZShMaWJYbWwyIDIuOC4wIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYlhzbHQgMS4x
LjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoUE5HIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFNx
bGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXZWJQIFJFUVVJUkVEKQorCitmaW5kX3BhY2th
Z2UoT3BlbkdMRVMyIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEVHTCBSRVFVSVJFRCkKKworZmlu
ZF9wYWNrYWdlKFdQRUJhY2tlbmQgUkVRVUlSRUQpCisKK3NldChVU0VfWERHTUlNRSBPTikKKwor
aWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVfV0VCX0FVRElPKQorICAgIHNldChHU1RSRUFNRVJf
Q09NUE9ORU5UUyBhcHAgYXVkaW8gcGJ1dGlscykKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlM
RChVU0VfR1NUUkVBTUVSIFRSVUUpCisgICAgaWYgKEVOQUJMRV9WSURFTykKKyAgICAgICAgbGlz
dChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgdmlkZW8gdGFnKQorICAgIGVuZGlmICgpCisK
KyAgICBpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVS
X0NPTVBPTkVOVFMgZmZ0KQorICAgICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfV0VC
QVVESU9fR1NUUkVBTUVSIFRSVUUpCisgICAgZW5kaWYgKCkKKworICAgIGZpbmRfcGFja2FnZShH
U3RyZWFtZXIgMS4yLjMgUkVRVUlSRUQgQ09NUE9ORU5UUyAke0dTVFJFQU1FUl9DT01QT05FTlRT
fSkKKworICAgICMgRklYTUU6IFdoYXQgYWJvdXQgTVBFR1RTIHN1cHBvcnQ/IFVTRV9HU1RSRUFN
RVJfTVBFR1RTPworZW5kaWYgKCkKKworaWYgKEVOQUJMRV9NRURJQV9TVFJFQU0gT1IgRU5BQkxF
X1dFQl9SVEMpCisgICAgZmluZF9wYWNrYWdlKE9wZW5XZWJSVEMpCisgICAgaWYgKE5PVCBPUEVO
V0VCUlRDX0ZPVU5EKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJPcGVuV2ViUlRDIGlz
IG5lZWRlZCBmb3IgRU5BQkxFX01FRElBX1NUUkVBTSBhbmQgRU5BQkxFX1dFQl9SVEMuIikKKyAg
ICBlbmRpZiAoKQorICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVOV0VCUlRDIFRS
VUUpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyAgICBm
aW5kX3BhY2thZ2UoQ2Fpcm9HTCAxLjEwLjIgUkVRVUlSRUQgQ09NUE9ORU5UUyBjYWlyby1lZ2wp
CitlbmRpZiAoKQorCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XUEVfXz0xKQorYWRkX2Rl
ZmluaXRpb25zKC1EREFUQV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9EQVRBRElSfSIpCisKK3NldChV
U0VfVURJUzg2IDEpCisKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVOR0xfRVNfMiBU
UlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0VHTCBUUlVFKQorCitTRVRfQU5EX0VY
UE9TRV9UT19CVUlMRChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF8zRCBUUlVFKQorCitTRVRfQU5E
X0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVIgVFJVRSkKK1NFVF9BTkRfRVhQT1NF
X1RPX0JVSUxEKFVTRV9URVhUVVJFX01BUFBFUl9HTCBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9f
QlVJTEQoVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JV
SUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDUyBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJ
TEQoVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEIFRSVUUpCisKK3NldChGT1JXQVJE
SU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMp
CisKKyMgQnVpbGQgd2l0aCAtZnZpc2liaWxpdHk9aGlkZGVuIHRvIHJlZHVjZSB0aGUgc2l6ZSBv
ZiB0aGUgc2hhcmVkIGxpYnJhcnkuCisjIE5vdCB0byBiZSB1c2VkIHdoZW4gYnVpbGRpbmcgdGhl
IFdlYktpdFRlc3RSdW5uZXIgbGlicmFyeS4KK2lmIChOT1QgREVWRUxPUEVSX01PREUpCisgICAg
c2V0KENNQUtFX0NfRkxBR1NfUkVMRUFTRSAiJHtDTUFLRV9DX0ZMQUdTX1JFTEVBU0V9IC1mdmlz
aWJpbGl0eT1oaWRkZW4iKQorICAgIHNldChDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiJHtDTUFL
RV9DWFhfRkxBR1NfUkVMRUFTRX0gLWZ2aXNpYmlsaXR5PWhpZGRlbiAtZnZpc2liaWxpdHktaW5s
aW5lcy1oaWRkZW4iKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBw
b3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0
LXByb2R1Y3QtYXJjaGl2ZQppbmRleCAyYzMwMmRiY2RlYi4uOTA3YTU0NzM4MzEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQorKysgYi9U
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUKQEAgLTE3MCw3ICsx
NzAsNyBAQCBkZWYgZGlyQ29udGFpbnNkd28oZGlyZWN0b3J5KToKIAogCiBkZWYgYXJjaGl2ZUJ1
aWx0UHJvZHVjdChjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgZnVsbFBsYXRmb3JtKToKLSAgICBh
c3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJykKKyAg
ICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJywg
J3dwZScpCiAKICAgICBpZiBwbGF0Zm9ybSA9PSAnaW9zJzoKICAgICAgICAgY29tYmluZWREaXJl
Y3RvcnkgPSBvcy5wYXRoLmpvaW4oX3RvcExldmVsQnVpbGREaXJlY3RvcnksICdjb21iaW5lZC1t
YWMtYW5kLWlvcycpCkBAIC0xOTgsNyArMTk4LDcgQEAgZGVmIGFyY2hpdmVCdWlsdFByb2R1Y3Qo
Y29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGZ1bGxQbGF0Zm9ybSk6CiAKICAgICAgICAgc2h1dGls
LnJtdHJlZSh0aGluRGlyZWN0b3J5KQogCi0gICAgZWxpZiBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBw
bGF0Zm9ybSA9PSAnZWZsJzoKKyAgICBlbGlmIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3Jt
ID09ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAgICAjIE9uIEdUSysvRUZMIHdl
IGRvbid0IG5lZWQgdGhlIGludGVybWVkaWF0ZSBzdGVwIG9mIGNyZWF0aW5nIGEgdGhpbkRpcmVj
dG9yeQogICAgICAgICAjIHRvIGJlIGNvbXByZXNzZWQgaW4gYSBaSVAgZmlsZSwgYmVjYXVzZSB3
ZSBjYW4gY3JlYXRlIHRoZSBaSVAgZGlyZWN0bHkuCiAgICAgICAgICMgVGhpcyBpcyBmYXN0ZXIg
YW5kIHJlcXVpcmVzIGxlc3MgZGlzayByZXNvdXJjZXMuCkBAIC0yMzIsNyArMjMyLDcgQEAgZGVm
IHVuemlwQXJjaGl2ZShkaXJlY3RvcnlUb0V4dHJhY3RUbywgY29uZmlndXJhdGlvbik6CiAKIAog
ZGVmIGV4dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgotICAgIGFz
c2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnKQorICAg
IGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnLCAn
d3BlJykKIAogICAgIGFyY2hpdmVGaWxlID0gb3MucGF0aC5qb2luKF90b3BMZXZlbEJ1aWxkRGly
ZWN0b3J5LCBjb25maWd1cmF0aW9uICsgJy56aXAnKQogCkBAIC0yNDEsNyArMjQxLDcgQEAgZGVm
IGV4dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgogCiAgICAgaWYg
cGxhdGZvcm0gaW4gKCdtYWMnLCAnaW9zJyk6CiAgICAgICAgIHJldHVybiB1bnppcEFyY2hpdmUo
X3RvcExldmVsQnVpbGREaXJlY3RvcnksIGNvbmZpZ3VyYXRpb24pCi0gICAgZWxpZiBwbGF0Zm9y
bSA9PSAnd2luJyBvciBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJzoKKyAg
ICBlbGlmIHBsYXRmb3JtID09ICd3aW4nIG9yIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3Jt
ID09ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAgICBwcmludCAnRXh0cmFjdGlu
ZycsIF9jb25maWd1cmF0aW9uQnVpbGREaXJlY3RvcnkKICAgICAgICAgcmV0dXJuIHVuemlwQXJj
aGl2ZShfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5LCBjb25maWd1cmF0aW9uKQogCmRpZmYg
LS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlIGIvVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQppbmRleCAzYzJiMGJkN2Ez
Ni4uOTgwZjA3MWMxNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3Qt
cmVzdWx0LWFyY2hpdmUKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQt
YXJjaGl2ZQpAQCAtNDYsNyArNDYsNyBAQCBkZWYgbWFpbigpOgogICAgIHJldHVybiBhcmNoaXZl
VGVzdFJlc3VsdHMob3B0aW9ucy5jb25maWd1cmF0aW9uLCBvcHRpb25zLnBsYXRmb3JtLCBsYXlv
dXRUZXN0UmVzdWx0c0RpcikKIAogZGVmIGFyY2hpdmVUZXN0UmVzdWx0cyhjb25maWd1cmF0aW9u
LCBwbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpOgotICAgIGFzc2VydCBwbGF0Zm9ybSBp
biAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICdpb3MnKQorICAgIGFz
c2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycs
ICdpb3MnLCAnd3BlJykKIAogICAgIHRyeToKICAgICAgICAgb3MudW5saW5rKGFyY2hpdmVGaWxl
KQpAQCAtNjYsNyArNjYsNyBAQCBkZWYgYXJjaGl2ZVRlc3RSZXN1bHRzKGNvbmZpZ3VyYXRpb24s
IHBsYXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0Rpcik6CiAgICAgaWYgcGxhdGZvcm0gaW4gKCdt
YWMnLCAnaW9zJyk6CiAgICAgICAgIGlmIHN1YnByb2Nlc3MuY2FsbChbImRpdHRvIiwgIi1jIiwg
Ii1rIiwgIi0tc2VxdWVzdGVyUnNyYyIsICItLXpsaWJDb21wcmVzc2lvbkxldmVsIiwgIjIiLCBs
YXlvdXRUZXN0UmVzdWx0c0RpciwgYXJjaGl2ZUZpbGVdKToKICAgICAgICAgICAgIHJldHVybiAx
Ci0gICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJyk6
CisgICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJywg
J3dwZScpOgogICAgICAgICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJ6aXAiLCAiLXIiLCAiLTIiLCBh
cmNoaXZlRmlsZSwgIi4iXSwgY3dkPWxheW91dFRlc3RSZXN1bHRzRGlyKToKICAgICAgICAgICAg
IHJldHVybiAxCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvQ01h
a2VMaXN0cy50eHQKaW5kZXggYjMwNDliODg0MWQuLjgwZmRiOGM5NGRlIDEwMDY0NAotLS0gYS9U
b29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMjMsNiAr
MjMsMTEgQEAgZWxzZWlmICgiJHtQT1JUfSIgU1RSRVFVQUwgIkpTQ09ubHkiKQogICAgIGlmIChF
TkFCTEVfQVBJX1RFU1RTKQogICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KFRlc3RXZWJLaXRBUEkp
CiAgICAgZW5kaWYgKCkKK2Vsc2VpZiAoIiR7UE9SVH0iIFNUUkVRVUFMICJXUEUiKQorICAgIGlm
IChERVZFTE9QRVJfTU9ERSkKKyAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShJbWFnZURpZmYpCisg
ICAgICAgIGFkZF9zdWJkaXJlY3RvcnkoV2ViS2l0VGVzdFJ1bm5lcikKKyAgICBlbmRpZiAoKQog
ZW5kaWYgKCkKIAogaWYgKFdJTjMyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGViNmVlN2RlYzYwLi45NzkwMWViNWYyOSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisy
MDE3LTA0LTI4ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAg
ICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHdlYmtpdC1kZXYgdGhyZWFkOgorICAgICAgICBodHRwczovL2xpc3Rz
LndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtpdC1kZXYvMjAxNy1BcHJpbC8wMjg5MjMuaHRtbAor
CisgICAgICAgIEFkZCBXUEUgc3VwcG9ydCB0byB2YXJpb3VzIHRvb2xpbmcgc2NyaXB0cywgVGVz
dFdlYktpdEFQSSBhbmQgV2ViS2l0VGVzdFJ1bm5lci4KKyAgICAgICAgSW4tZmlsZSBjaGFuZ2Vz
IHJlbW92ZWQgZnJvbSB0aGlzIENoYW5nZUxvZyBlbnRyeSBmb3IgYnJldml0eS4KKworICAgICAg
ICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZToKKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlOgorICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisg
ICAgICAgICogU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZToKKyAgICAgICAgKiBTY3JpcHRz
L2J1aWxkLXdlYmtpdDoKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXI6
CisgICAgICAgICogU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZDoKKyAgICAgICAg
KiBTY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGliczogQWRkZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlz
dC5wbToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC93cGUucHk6IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVV0aWxpdGllc1dQRS5jcHA6IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvd3BlL21haW4uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcDogQWRkZWQuCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmguCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93
cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL3dwZS9tYWluLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIGpoYnVpbGQvamhidWlsZC13cmFwcGVyOgor
ICAgICAgICAqIHdwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5OiBB
ZGRlZC4KKyAgICAgICAgKiB3cGUvamhidWlsZC5tb2R1bGVzOiBBZGRlZC4KKyAgICAgICAgKiB3
cGUvamhidWlsZHJjOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2
aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2UucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9w
YXRjaGVzL2ZvbnRjb25maWctQy0xMS1yZXF1aXJlcy1hLXNwYWNlLWJldHdlZW4tbGl0ZXJhbC1h
bmQtaWRlbnRpZmllci5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZnJlZXR5
cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2g6IEFkZGVkLgorICAgICAg
ICAqIHdwZS9wYXRjaGVzL2dkYXRlLXN1cHByZXNzLXN0cmluZy1mb3JtYXQtbGl0ZXJhbC13YXJu
aW5nLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4
LnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAw
MS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3Bl
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1j
aGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3Bh
dGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Utc3RyZWFtcy13aXRo
LWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9n
c3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaDogQWRkZWQuCisg
ICAgICAgICogd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMt
ZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoOiBBZGRlZC4KKwogMjAxNy0wNC0yOCAgSm9h
bm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0FUS10gYXJpYS1t
b2RhbD0idHJ1ZSIgc2hvdWxkIGJlIGV4cG9zZWQgdmlhIEFUS19TVEFURV9NT0RBTApkaWZmIC0t
Z2l0IGEvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvSW1hZ2VEaWZm
L1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li40YjBlZTUzMjhiYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0ltYWdlRGlmZi9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMCwwICsxIEBACitpbmNsdWRlKENhaXJvLmNtYWtlKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZSBiL1Rvb2xzL1NjcmlwdHMvYnVp
bGQtZHVtcHJlbmRlcnRyZWUKaW5kZXggNzYxZjQzZjY5ODkuLjE3ZGQ4MjA4YjIxIDEwMDc1NQot
LS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1Njcmlw
dHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKQEAgLTY1LDggKzY1LDggQEAgY2hkaXIgRmlsZTo6U3Bl
Yy0+Y2F0ZGlyKCJUb29scyIsICJEdW1wUmVuZGVyVHJlZSIpIG9yIGRpZTsKIG15ICRyZXN1bHQ7
CiBpZiAoaXNBcHBsZUNvY29hV2ViS2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVBy
b2plY3QoIkR1bXBSZW5kZXJUcmVlIiwgJGNsZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwot
fSBlbHNpZiAoaXNHdGsoKSB8fCBpc0FueVdpbmRvd3MoKSkgewotICAgICMgR1RLIGFuZCBXaW5k
b3dzIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhp
bmcgaGVyZS4KK30gZWxzaWYgKGlzR3RrKCkgfHwgaXNXUEUoKSB8fCBpc0FueVdpbmRvd3MoKSkg
eworICAgICMgR1RLLCBXUEUgYW5kIFdpbmRvd3MgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hv
dC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBl
bHNlIHsKICAgICBkaWUgIkJ1aWxkaW5nIG5vdCBkZWZpbmVkIGZvciB0aGlzIHBsYXRmb3JtIVxu
IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0
cy9idWlsZC13ZWJraXQKaW5kZXggNzE0MmFlNjY0NzMuLjJmZWVjNjY1Y2ExIDEwMDc1NQotLS0g
YS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdApAQCAtMTAwLDYgKzEwMCw3IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtv
cHRpb25zIHRvIHBhc3MgdG8gYnVpbGQgc3lzdGVtXQogICAtLWFuYWx5emUgICAgICAgICAgICAg
ICAgICAgICAgICAgRW5hYmxlIHN0YXRpYyBhbmF5bHNpcyAoaU9TIGFuZCBNYWMgb25seSkKIAog
ICAtLWd0ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIEdUSysgcG9ydAor
ICAtLXdwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIFdQRSBwb3J0CiAg
IC0td2luY2Fpcm8gICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB1c2luZyBDYWlybyAocmF0
aGVyIHRoYW4gQ29yZUdyYXBoaWNzKSBvbiBXaW5kb3dzCiAKICAgLS1pbnNwZWN0b3ItZnJvbnRl
bmQgICAgICAgICAgICAgIENvcHkgV2ViIEluc3BlY3RvciB1c2VyIGludGVyZmFjZSByZXNvdXJj
ZXMgdG8gdGhlIGJ1aWxkIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWls
ZC13ZWJraXR0ZXN0cnVubmVyIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVy
CmluZGV4IDI0MDNmOTM2OGQzLi45NzA3ZjY0NDYzYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0
dGVzdHJ1bm5lcgpAQCAtNjEsOCArNjEsOCBAQCBjaGRpciAiVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ciIgb3IgZGllOwogbXkgJHJlc3VsdDsKIGlmIChpc0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAg
ICRyZXN1bHQgPSBidWlsZFhDb2RlUHJvamVjdCgiV2ViS2l0VGVzdFJ1bm5lciIsICRjbGVhbiwg
WGNvZGVPcHRpb25zKCksIEBBUkdWKTsKLX0gZWxzaWYgKGlzR3RrKCkpIHsKLSAgICAjIEdUSysg
YnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBo
ZXJlLgorfSBlbHNpZiAoaXNHdGsoKSB8fCBpc1dQRSgpKSB7CisgICAgIyBHVEsrIGFuZCBXUEUg
YnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBo
ZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKICAgICBkaWUgIldlYktpdFRlc3RSdW5u
ZXIgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLlxuIjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQgYi9Ub29scy9TY3JpcHRzL3Vw
ZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCmluZGV4IGQ5ZGJmZjVkZGU0Li4xMDc5YTllOGFiNSAx
MDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZAorKysg
Yi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCkBAIC0yNCw5ICsyNCwx
MCBAQCB1c2UgR2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFzc190aHJvdWdoKTsKIAogbXkgJHBs
YXRmb3JtID0gIiI7CiAkcGxhdGZvcm0gPSAiZ3RrIiBpZiBpc0d0aygpOworJHBsYXRmb3JtID0g
IndwZSIgaWYgaXNXUEUoKTsKIAogaWYgKCEkcGxhdGZvcm0pIHsKLSAgICBkaWUgIk5vIHBsYXRm
b3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrLlxuIjsKKyAg
ICBkaWUgIk5vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNl
IC0tZ3RrIG9yIC0td3BlLlxuIjsKIH0KIAogbXkgJHdpcGVPbkNoYW5nZSA9ICRFTlZ7SkhCVUlM
RF9XSVBFX09OX0NIQU5HRX0gLy8gMTsKQEAgLTEzMiw3ICsxMzMsNyBAQCBkZWxldGUgJEVOVntB
Ul9GTEFHU30gaWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlw
dHNEaXIoKSAuICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3Jt
ID0gKCAiZ3RrIiA9PiAiR1RLKyIgKTsKK215ICVwcmV0dHlQbGF0Zm9ybSA9ICggImd0ayIgPT4g
IkdUSysiLCAid3BlIiA9PiAiV1BFIiApOwogCiBpZiAoISRmb3JjZSAmJiAhamhidWlsZENvbmZp
Z3VyYXRpb25DaGFuZ2VkKCkpIHsKICAgICBwcmludCAkcHJldHR5UGxhdGZvcm17JHBsYXRmb3Jt
fSAuICIgcG9ydCBkZXBlbmRlbmNpZXMgYXJlIGFscmVhZHkgdXAgdG8gZGF0ZVxuIjsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJzIGIvVG9vbHMvU2NyaXB0
cy91cGRhdGUtd2Via2l0d3BlLWxpYnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAuLmIyM2ZiZGU2YjgzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2Via2l0d3BlLWxpYnMKQEAgLTAsMCArMSwyNCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13Cisj
IENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50
ZWwgQ29ycG9yYXRpb24KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCisKK3VzZSBGaW5kQmluOwordXNlIGxpYiAkRmluZEJpbjo6QmluOwor
dXNlIHdlYmtpdGRpcnM7CisKK215ICRzY3JpcHRzRGlyID0gcmVsYXRpdmVTY3JpcHRzRGlyKCk7
CitzeXN0ZW0oInBlcmwiLCAiJHNjcmlwdHNEaXIvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQi
LCAiLS13cGUiLCBAQVJHVikgPT0gMCBvciBkaWUgJCE7CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggYmM0
NjU0NjE3ZDEuLjZlOGUwZTdmZTU0IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRp
cnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC0xMDcsNiArMTA3LDcg
QEAgdXNlIGNvbnN0YW50IHsKICAgICBNYWMgICAgICA9PiAiTWFjIiwKICAgICBKU0NPbmx5ICA9
PiAiSlNDT25seSIsCiAgICAgV2luQ2Fpcm8gPT4gIldpbkNhaXJvIiwKKyAgICBXUEUgICAgICA9
PiAiV1BFIiwKICAgICBVbmtub3duICA9PiAiVW5rbm93biIKIH07CiAKQEAgLTQ0NSw2ICs0NDYs
NyBAQCBzdWIgYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAgICAgcHVzaChAYXJncywgJy0t
MzItYml0JykgaWYgKCRhcmNoaXRlY3R1cmUgbmUgIng4Nl82NCIgYW5kICFpc1dpbjY0KCkpOwog
ICAgIHB1c2goQGFyZ3MsICctLTY0LWJpdCcpIGlmIChpc1dpbjY0KCkpOwogICAgIHB1c2goQGFy
Z3MsICctLWd0aycpIGlmIGlzR3RrKCk7CisgICAgcHVzaChAYXJncywgJy0td3BlJykgaWYgaXNX
UEUoKTsKICAgICBwdXNoKEBhcmdzLCAnLS1qc2Mtb25seScpIGlmIGlzSlNDT25seSgpOwogICAg
IHB1c2goQGFyZ3MsICctLXdpbmNhaXJvJykgaWYgaXNXaW5DYWlybygpOwogICAgIHB1c2goQGFy
Z3MsICctLWluc3BlY3Rvci1mcm9udGVuZCcpIGlmIGlzSW5zcGVjdG9yRnJvbnRlbmQoKTsKQEAg
LTY4MCw3ICs2ODIsNyBAQCBzdWIgZXhlY3V0YWJsZVByb2R1Y3REaXIKICAgICBteSAkcHJvZHVj
dERpcmVjdG9yeSA9IHByb2R1Y3REaXIoKTsKIAogICAgIG15ICRiaW5hcnlEaXJlY3Rvcnk7Ci0g
ICAgaWYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpIHsKKyAgICBpZiAoaXNHdGsoKSB8fCBpc0pT
Q09ubHkoKSB8fCBpc1dQRSgpKSB7CiAgICAgICAgICRiaW5hcnlEaXJlY3RvcnkgPSAiYmluIjsK
ICAgICB9IGVsc2lmIChpc0FueVdpbmRvd3MoKSkgewogICAgICAgICAkYmluYXJ5RGlyZWN0b3J5
ID0gaXNXaW42NCgpID8gImJpbjY0IiA6ICJiaW4zMiI7CkBAIC05MzgsNiArOTQwLDkgQEAgc3Vi
IGJ1aWx0RHlsaWJQYXRoRm9yTmFtZQogICAgICAgICAgICAgcmV0dXJuICIkYmFzZVByb2R1Y3RE
aXIvJGxpYnJhcnlOYW1lLmludGVybWVkaWF0ZS8kY29uZmlndXJhdGlvbi8kbGlicmFyeU5hbWUu
aW50ZXJtZWRpYXRlLyRsaWJyYXJ5TmFtZS5saWIiOwogICAgICAgICB9CiAgICAgfQorICAgIGlm
IChpc1dQRSgpKSB7CisgICAgICAgIHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyL2xp
Yi9saWJXUEVXZWJLaXQuc28iOworICAgIH0KIAogICAgIGRpZSAiVW5zdXBwb3J0ZWQgcGxhdGZv
cm0sIGNhbid0IGRldGVybWluZSBidWlsdCBsaWJyYXJ5IGxvY2F0aW9ucy5cblRyeSBgYnVpbGQt
d2Via2l0IC0taGVscGAgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iOwogfQpAQCAtMTA1Miw3ICsx
MDU3LDggQEAgc3ViIGRldGVybWluZVBvcnROYW1lKCkKICAgICBteSAlYXJnVG9Qb3J0TmFtZSA9
ICgKICAgICAgICAgZ3RrID0+IEdUSywKICAgICAgICAgJ2pzYy1vbmx5JyA9PiBKU0NPbmx5LAot
ICAgICAgICB3aW5jYWlybyA9PiBXaW5DYWlybworICAgICAgICB3aW5jYWlybyA9PiBXaW5DYWly
bywKKyAgICAgICAgd3BlID0+IFdQRQogICAgICk7CiAKICAgICBmb3IgbXkgJGFyZyAoc29ydCBr
ZXlzICVhcmdUb1BvcnROYW1lKSB7CkBAIC0xMDg2LDYgKzEwOTIsNyBAQCBzdWIgZGV0ZXJtaW5l
UG9ydE5hbWUoKQogICAgICAgICAgICAgbXkgJHBvcnRzQ2hvaWNlID0gam9pbiAiXG5cdCIsIHF3
KAogICAgICAgICAgICAgICAgIC0tZ3RrCiAgICAgICAgICAgICAgICAgLS1qc2Mtb25seQorICAg
ICAgICAgICAgICAgIC0td3BlCiAgICAgICAgICAgICApOwogICAgICAgICAgICAgZGllICJQbGVh
c2Ugc3BlY2lmeSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCB1c2luZyBvbmUgb2YgdGhlIGZv
bGxvd2luZyBvcHRpb25zOiIKICAgICAgICAgICAgICAgICAuICJcblx0JHBvcnRzQ2hvaWNlXG4i
OwpAQCAtMTExMyw2ICsxMTIwLDExIEBAIHN1YiBpc0pTQ09ubHkoKQogICAgIHJldHVybiBwb3J0
TmFtZSgpIGVxIEpTQ09ubHk7CiB9CiAKK3N1YiBpc1dQRSgpCit7CisgICAgcmV0dXJuIHBvcnRO
YW1lKCkgZXEgV1BFOworfQorCiAjIERldGVybWluZSBpZiB0aGlzIGlzIGRlYmlhbiwgdWJ1bnR1
LCBsaW5zcGlyZSwgb3Igc29tZXRoaW5nIHNpbWlsYXIuCiBzdWIgaXNEZWJpYW5CYXNlZCgpCiB7
CkBAIC0xNTE2LDYgKzE1MjgsOCBAQCBzdWIgbGF1bmNoZXJQYXRoKCkKICAgICAgICAgcmV0dXJu
ICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9ydW4tbWluaWJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlz
QXBwbGVXZWJLaXQoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1
bi1zYWZhcmkiOworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkcmVs
YXRpdmVTY3JpcHRzUGF0aC9ydW4td3BlIjsKICAgICB9CiB9CiAKQEAgLTE1MjcsNiArMTU0MSw4
IEBAIHN1YiBsYXVuY2hlck5hbWUoKQogICAgICAgICByZXR1cm4gIlNhZmFyaSI7CiAgICAgfSBl
bHNpZiAoaXNBcHBsZVdpbldlYktpdCgpKSB7CiAgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIi
OworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICJXUEVMYXVuY2hlciI7
CiAgICAgfQogfQogCkBAIC0xODI2LDYgKzE4NDIsOCBAQCBzdWIgZ2V0SmhidWlsZFBhdGgoKQog
ICAgIH0KICAgICBpZiAoaXNHdGsoKSkgewogICAgICAgICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRl
cGVuZGVuY2llc0dUSyIpOworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcHVzaChA
amhidWlsZFBhdGgsICJEZXBlbmRlbmNpZXNXUEUiKTsKICAgICB9IGVsc2UgewogICAgICAgICBk
aWUgIkNhbm5vdCBnZXQgSkhCdWlsZCBwYXRoIGZvciBwbGF0Zm9ybSB0aGF0IGlzbid0IEdUSysu
XG4iOwogICAgIH0KQEAgLTE4NjYsNiArMTg4NCw4IEBAIHN1YiB3cmFwcGVyUHJlZml4SWZOZWVk
ZWQoKQogICAgICAgICBteSBAcHJlZml4ID0gKEZpbGU6OlNwZWMtPmNhdGZpbGUoc291cmNlRGly
KCksICJUb29scyIsICJqaGJ1aWxkIiwgImpoYnVpbGQtd3JhcHBlciIpKTsKICAgICAgICAgaWYg
KGlzR3RrKCkpIHsKICAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0tZ3RrIik7CisgICAgICAg
IH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0td3BlIik7
CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAcHJlZml4LCAicnVuIik7CiAKQEAgLTIwMjQsNyAr
MjA0NCw3IEBAIHN1YiBnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdAogICAgIHB1
c2ggQGFyZ3MsICctRFNIT1dfQklORElOR1NfR0VORVJBVElPTl9QUk9HUkVTUz0xJyB1bmxlc3Mg
KCR3aWxsVXNlTmluamEgJiYgLXQgU1RET1VUKTsKIAogICAgICMgU29tZSBwb3J0cyBoYXZlIHBy
b2R1Y3Rpb24gbW9kZSwgYnV0IGJ1aWxkLXdlYmtpdCBzaG91bGQgYWx3YXlzIHVzZSBkZXZlbG9w
ZXIgbW9kZS4KLSAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIgaWYgaXNHdGso
KSB8fCBpc0pTQ09ubHkoKTsKKyAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIg
aWYgaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSB8fCBpc1dQRSgpOwogCiAgICAgIyBEb24ndCB3YXJu
IHZhcmlhYmxlcyB3aGljaCBhcmVuJ3QgdXNlZCBieSBjbWFrZSBwb3J0cy4KICAgICBwdXNoIEBh
cmdzLCAiLS1uby13YXJuLXVudXNlZC1jbGkiOwpAQCAtMjEwMSw2ICsyMTIxLDEwIEBAIHN1YiBi
dWlsZENNYWtlUHJvamVjdE9yRXhpdCgkJCRAKQogICAgICAgICBzeXN0ZW0oInBlcmwiLCAiJHNv
dXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRndGstbGlicyIpID09IDAgb3IgZGll
ICQhOwogICAgIH0KIAorICAgIGlmIChpc1dQRSgpICYmIGNoZWNrRm9yQXJndW1lbnRBbmRSZW1v
dmVGcm9tQVJHVigiLS11cGRhdGUtd3BlIikpIHsKKyAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRz
b3VyY2VEaXIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMiKSA9PSAwIG9yIGRp
ZSAkITsKKyAgICB9CisKICAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJhdGVCdWls
ZFN5c3RlbUZyb21DTWFrZVByb2plY3QoJHByZWZpeFBhdGgsIEBjbWFrZUFyZ3MpKTsKICAgICBl
eGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L0ZlYXR1cmVMaXN0LnBtCmluZGV4IDJjM2FlMTFhNzMwLi4yMTRlNTYxZGRkOSAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgcHJv
aGliaXRVbmtub3duUG9ydCgpOwogCiBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4g
IjNkLXJlbmRlcmluZyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBSZW5kZXJpbmcgc3VwcG9ydCIsCi0g
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBs
ZUNvY29hV2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR0
aHJlZURUcmFuc2Zvcm1zU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfM0RfVFJB
TlNGT1JNUyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0
KCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR0aHJlZURUcmFuc2Zvcm1zU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFjY2VsZXJhdGVkLTJkLWNhbnZhcyIsIGRlc2Mg
PT4gIlRvZ2dsZSBBY2NlbGVyYXRlZCAyRCBDYW52YXMgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+
IFwkYWNjZWxlcmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyIsIGRlZmF1bHQgPT4gaXNXUEUoKSwgdmFsdWUgPT4gXCRh
Y2NlbGVyYXRlZDJEQ2FudmFzU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFsbGlub25l
LWJ1aWxkIiwgZGVzYyA9PiAiVG9nZ2xlIGFsbC1pbi1vbmUgYnVpbGQiLAogICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfQUxMSU5PTkVfQlVJTEQiLCBkZWZhdWx0ID0+IGlzV2luZG93cygpLCB2YWx1
ZSA9PiBcJGFsbEluT25lQnVpbGQgfSwKQEAgLTE4Myw3ICsxODMsNyBAQCBteSBAZmVhdHVyZXMg
PSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiIsIGRlZmF1
bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFnZVJlc29sdXRpb25TdXBwb3J0IH0sCiAK
ICAgICB7IG9wdGlvbiA9PiAiY3NzLWltYWdlLXNldCIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgaW1h
Z2Utc2V0IHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1NFVCIs
IGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFnZVNldFN1cHBvcnQgfSwKKyAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTU19JTUFHRV9TRVQiLCBkZWZhdWx0ID0+IChpc0d0aygp
IHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAogCiAgICAgeyBv
cHRpb24gPT4gImNzcy1yZWdpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBSZWdpb25zIHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX1JFR0lPTlMiLCBkZWZhdWx0ID0+IDEs
IHZhbHVlID0+IFwkY3NzUmVnaW9uc1N1cHBvcnQgfSwKQEAgLTIwNyw3ICsyMDcsNyBAQCBteSBA
ZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIiwg
ZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGRhdGFsaXN0RWxlbWVudFN1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNjID0+ICJUb2dnbGUgRGV2aWNl
IE9yaWVudGF0aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OIiwgZGVmYXVsdCA9PiBpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJGRldmljZU9y
aWVudGF0aW9uU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4g
XCRkZXZpY2VPcmllbnRhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJkb200LWV2
ZW50cy1jb25zdHJ1Y3RvciIsIGRlc2MgPT4gIkV4cG9zZSBET000IEV2ZW50cyBjb25zdHJ1Y3Rv
cnMiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IiLCBk
ZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkZG9tNEV2
ZW50c0NvbnN0cnVjdG9yIH0sCkBAIC0yMjUsNyArMjI1LDcgQEAgbXkgQGZlYXR1cmVzID0gKAog
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwg
dmFsdWUgPT4gXCRmb250TG9hZEV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJm
dGwtaml0IiwgZGVzYyA9PiAiVG9nZ2xlIEZUTEpJVCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8
IGlzSlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJGZ0bEpJVFN1cHBvcnQgfSwKKyAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygp
IHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gImZ0cGRpciIsIGRlc2MgPT4gIlRvZ2dsZSBGVFAgRGlyZWN0
b3J5IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRQRElSIiwgZGVmYXVsdCA9
PiAxLCB2YWx1ZSA9PiBcJGZ0cERpclN1cHBvcnQgfSwKQEAgLTIzNyw3ICsyMzcsNyBAQCBteSBA
ZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9
PiAwLCB2YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZ2Vv
bG9jYXRpb24iLCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0gICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQo
KSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGdlb2xvY2F0aW9uU3Vw
cG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfR0VPTE9DQVRJT04iLCBkZWZhdWx0ID0+
IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkp
LCB2YWx1ZSA9PiBcJGdlb2xvY2F0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImhp
Z2gtZHBpLWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSBIaWdoIERQSSBDYW52YXMgc3VwcG9ydCIs
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9ISUdIX0RQSV9DQU5WQVMiLCBkZWZhdWx0ID0+IChp
c0FwcGxlV2ViS2l0KCkpLCB2YWx1ZSA9PiBcJGhpZ2hEUElDYW52YXNTdXBwb3J0IH0sCkBAIC0y
NDYsNyArMjQ2LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
SUNPTkRBVEFCQVNFIiwgZGVmYXVsdCA9PiAhaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRpY29u
ZGF0YWJhc2VTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5kZXhlZC1kYXRhYmFzZSIs
IGRlc2MgPT4gIlRvZ2dsZSBJbmRleGVkIERhdGFiYXNlIHN1cHBvcnQiLAotICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdl
YktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwK
KyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChp
c0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGlu
ZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJpbnB1dC1zcGVlY2gi
LCBkZXNjID0+ICJUb2dnbGUgSW5wdXQgU3BlZWNoIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfSU5QVVRfU1BFRUNIIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGlucHV0U3Bl
ZWNoU3VwcG9ydCB9LApAQCAtMzEyLDcgKzMxMiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX01FVEVSX0VMRU1FTlQiLCBkZWZhdWx0ID0+ICFpc0FwcGxlV2lu
V2ViS2l0KCksIHZhbHVlID0+IFwkbWV0ZXJFbGVtZW50U3VwcG9ydCB9LAogCiAgICAgeyBvcHRp
b24gPT4gIm1odG1sIiwgZGVzYyA9PiAiVG9nZ2xlIE1IVE1MIHN1cHBvcnQiLAotICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfTUhUTUwiLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkbWh0
bWxTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4g
KGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkbWh0bWxTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAibW91c2UtY3Vyc29yLXNjYWxlIiwgZGVzYyA9PiAiVG9nZ2xlIFNjYWxlZCBt
b3VzZSBjdXJzb3Igc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NT1VTRV9DVVJT
T1JfU0NBTEUiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbW91c2VDdXJzb3JTY2FsZVN1cHBv
cnQgfSwKQEAgLTMyNCw3ICszMjQsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSIsIGRlZmF1bHQgPT4gMSwgdmFsdWUg
PT4gXCRoYXJkd2FyZUNvbmN1cnJlbmN5U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm5l
dHNjYXBlLXBsdWdpbi1hcGkiLCBkZXNjID0+ICJUb2dnbGUgTmV0c2NhcGUgUGx1Z2luIEFQSSBz
dXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBk
ZWZhdWx0ID0+ICFpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3Vw
cG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSIsIGRl
ZmF1bHQgPT4gKCFpc0lPU1dlYktpdCgpICYmICFpc1dQRSgpKSwgdmFsdWUgPT4gXCRuZXRzY2Fw
ZVBsdWdpbkFQSVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJub3NuaWZmIiwgZGVzYyA9
PiAiVG9nZ2xlIHN1cHBvcnQgZm9yICdYLUNvbnRlbnQtVHlwZS1PcHRpb25zOiBub3NuaWZmJyIs
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9OT1NOSUZGIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNv
Y29hV2ViS2l0KCkgfHwgaXNBcHBsZVdpbldlYktpdCgpKSwgdmFsdWUgPT4gXCRub3NuaWZmU3Vw
cG9ydCB9LApAQCAtMzM2LDcgKzMzNiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQo
KSwgdmFsdWUgPT4gXCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJwZXJmb3JtYW5jZS10aW1lbGluZSIsIGRlc2MgPT4gIlRvZ2dsZSBQZXJmb3JtYW5jZSBU
aW1lbGluZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BFUkZPUk1BTkNFX1RJ
TUVMSU5FIiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxp
bmVTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElO
RSIsIGRlZmF1bHQgPT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkcGVyZm9ybWFu
Y2VUaW1lbGluZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwcm94aW1pdHktZXZlbnRz
IiwgZGVzYyA9PiAiVG9nZ2xlIFByb3hpbWl0eSBFdmVudHMgc3VwcG9ydCIsCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBc
JHByb3hpbWl0eUV2ZW50c1N1cHBvcnQgfSwKQEAgLTM2Niw3ICszNjYsNyBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFMTE9DIiwgZGVmYXVsdCA9PiAw
LCB2YWx1ZSA9PiBcJHN5c3RlbU1hbGxvY1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ0
b3VjaC1ldmVudHMiLCBkZXNjID0+ICJUb2dnbGUgVG91Y2ggRXZlbnRzIHN1cHBvcnQiLAotICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJL
aXQoKSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKKyAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0
KCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQg
fSwKIAogICAgIHsgb3B0aW9uID0+ICJ0b3VjaC1pY29uLWxvYWRpbmciLCBkZXNjID0+ICJUb2dn
bGUgVG91Y2ggSWNvbiBMb2FkaW5nIFN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
VE9VQ0hfSUNPTl9MT0FESU5HIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHRvdWNoSWNvbkxv
YWRpbmdTdXBwb3J0IH0sCkBAIC0zNzgsMTYgKzM3OCwxNiBAQCBteSBAZmVhdHVyZXMgPSAoCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSUJSQVRJT04iLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+
IFwkdmlicmF0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInZpZGVvIiwgZGVzYyA9
PiAiVG9nZ2xlIFZpZGVvIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU8i
LCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkdmlk
ZW9TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4g
KGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHZpZGVv
U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInZpZGVvLXRyYWNrIiwgZGVzYyA9PiAiVG9n
Z2xlIFZpZGVvIFRyYWNrIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9f
VFJBQ0siLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+
IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJREVPX1RS
QUNLIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSks
IHZhbHVlID0+IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWIt
YW5pbWF0aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQW5pbWF0aW9ucyBzdXBwb3J0IiwKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BTklNQVRJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1
ZSA9PiBcJHdlYkFuaW1hdGlvbnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViLWF1
ZGlvIiwgZGVzYyA9PiAiVG9nZ2xlIFdlYiBBdWRpbyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCR3ZWJB
dWRpb1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1
bHQgPT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAid2ViLXJlcGxheSIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgUmVw
bGF5IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1JFUExBWSIsIGRlZmF1
bHQgPT4gaXNBcHBsZUNvY29hV2ViS2l0KCksIHZhbHVlID0+IFwkd2ViUmVwbGF5U3VwcG9ydCB9
LApAQCAtNDAyLDEwICs0MDIsMTAgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfV0VCX1RJTUlORyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3ZWJUaW1pbmdT
dXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViYXNzZW1ibHkiLCBkZXNjID0+ICJUb2dn
bGUgV2ViQXNzZW1ibHkgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NF
TUJMWSIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkp
KSAsIHZhbHVlID0+IFwkd2ViQXNzZW1ibHlTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9XRUJBU1NFTUJMWSIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwg
aXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkpICwgdmFsdWUgPT4gXCR3ZWJBc3NlbWJseVN1cHBvcnQg
fSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWJnbCIsIGRlc2MgPT4gIlRvZ2dsZSBXZWJHTCBzdXBw
b3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBs
ZUNvY29hV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCisg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdl
YktpdCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAid3JpdGFibGVTdHJlYW1BUEkiLCBkZXNjID0+ICJUb2dnbGUg
V3JpdGFibGVTdHJlYW0gQVBJIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV1JJ
VEFCTEVfU1RSRUFNX0FQSSIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3cml0YWJsZVN0cmVh
bUFQSVN1cHBvcnQgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDdjNmRkYzgzOWYzLi41NzJlOGE1ZTc3
ZCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzLnB5CkBAIC00MjQsNyArNDI0LDcgQEAgZGVmIF9zZXRfdXBfZGVyaXZl
ZF9vcHRpb25zKHBvcnQsIG9wdGlvbnMpOgogICAgICAgICBvcHRpb25zLnZlcmJvc2UgPSBUcnVl
CiAKICAgICAjIFRoZSBHVEsrIGFuZCBFRkwgcG9ydHMgb25seSBzdXBwb3J0IFdlYktpdDIgc28g
dGhleSBhbHdheXMgdXNlIFdLVFIuCi0gICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSA9PSAiZ3RrIiBv
ciBvcHRpb25zLnBsYXRmb3JtID09ICJlZmwiOgorICAgIGlmIG9wdGlvbnMucGxhdGZvcm0gaW4g
WyJlZmwiLCAiZ3RrIiwgIndwZSJdOgogICAgICAgICBvcHRpb25zLndlYmtpdF90ZXN0X3J1bm5l
ciA9IFRydWUKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFj
dG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CmluZGV4IDc1
ZGVlYzU3Y2JiLi5iZTA5N2ZmZWYxZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2ZhY3RvcnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3Rv
cnkucHkKQEAgLTUzLDYgKzUzLDkgQEAgZGVmIHBsYXRmb3JtX29wdGlvbnModXNlX2dsb2JzPUZh
bHNlKToKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZ3RrJywgYWN0aW9uPSdzdG9y
ZV9jb25zdCcsIGRlc3Q9J3BsYXRmb3JtJywKICAgICAgICAgICAgIGNvbnN0PSgnZ3RrKicgaWYg
dXNlX2dsb2JzIGVsc2UgJ2d0aycpLAogICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBs
YXRmb3JtPWd0ayonIGlmIHVzZV9nbG9icyBlbHNlICdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1ndGsn
KSksCisgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLXdwZScsIGFjdGlvbj0nc3RvcmVf
Y29uc3QnLCBkZXN0PSdwbGF0Zm9ybScsCisgICAgICAgICAgICBjb25zdD0oJ3dwZSonIGlmIHVz
ZV9nbG9icyBlbHNlICd3cGUnKSwKKyAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0
Zm9ybT13cGUnKSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLW5vLWluc3RhbGwn
LCBhY3Rpb249J3N0b3JlX2NvbnN0JywKICAgICAgICAgICAgIGNvbnN0PUZhbHNlLCBkZWZhdWx0
PVRydWUsIGRlc3Q9J2luc3RhbGwnLAogICAgICAgICAgICAgaGVscD0nU2tpcCBpbnN0YWxsIHN0
ZXAgZm9yIGRldmljZSBhbmQgc2ltdWxhdG9yIHRlc3RpbmcnKSwKQEAgLTkzLDYgKzk2LDcgQEAg
Y2xhc3MgUG9ydEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAgJ3Rlc3QuVGVzdFBvcnQnLAogICAg
ICAgICAnd2luLldpbkNhaXJvUG9ydCcsCiAgICAgICAgICd3aW4uV2luUG9ydCcsCisgICAgICAg
ICd3cGUuV1BFUG9ydCcsCiAgICAgKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC93cGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmIzY2QwODY1YTRlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L3dwZS5weQpAQCAtMCwwICsxLDc5IEBACisjIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0
aGUgR29vZ2xlIG5hbWUgbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdl
YmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKK2Zyb20gd2Via2l0cHkubGF5
b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0
aW9uCitmcm9tIHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5w
b3J0LmxpbnV4X2dldF9jcmFzaF9sb2cgaW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCisKKwor
Y2xhc3MgV1BFUG9ydChQb3J0KToKKyAgICBwb3J0X25hbWUgPSAid3BlIgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFdQRVBvcnQsIHNl
bGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBpZiBzZWxmLl9zaG91bGRf
dXNlX2poYnVpbGQoKToKKyAgICAgICAgICAgIHNlbGYuX2poYnVpbGRfd3JhcHBlciA9IFtzZWxm
LnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdyYXBw
ZXInKSwgJy0td3BlJywgJ3J1biddCisgICAgICAgICAgICBzZWxmLnNldF9vcHRpb25fZGVmYXVs
dCgnd3JhcHBlcicsICcgJy5qb2luKHNlbGYuX2poYnVpbGRfd3JhcHBlcikpCisKKyAgICBkZWYg
ZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICByZXR1cm4gNjAwMAorCisgICAgZGVm
IF9idWlsdF9leGVjdXRhYmxlc19wYXRoKHNlbGYsICpwYXRoKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2J1aWxkX3BhdGgoKigoJ2JpbicsKSArIHBhdGgpKQorCisgICAgZGVmIF9idWlsdF9saWJy
YXJpZXNfcGF0aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRo
KCooKCdsaWInLCkgKyBwYXRoKSkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3JpcHRzKHNl
bGYpOgorICAgICAgICByZXR1cm4gIi0td3BlIgorCisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9y
X3NlcnZlcihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52aXJvbm1lbnQgPSBz
dXBlcihXUEVQb3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUp
CisgICAgICAgIGVudmlyb25tZW50WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScKKyAg
ICAgICAgZW52aXJvbm1lbnRbJ1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSdd
ID0gc2VsZi5fYnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5z
bycpCisgICAgICAgIGVudmlyb25tZW50WydURVNUX1JVTk5FUl9URVNUX1BMVUdJTl9QQVRIJ10g
PSBzZWxmLl9idWlsZF9wYXRoKCdsaWInLCAncGx1Z2lucycpCisgICAgICAgIGVudmlyb25tZW50
WydXRUJLSVRfRVhFQ19QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdiaW4nKQorICAgICAgICBy
ZXR1cm4gZW52aXJvbm1lbnQKKworICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJh
dGlvbnMoc2VsZik6CisgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KKyAgICAgICAgZm9yIGJ1
aWxkX3R5cGUgaW4gc2VsZi5BTExfQlVJTERfVFlQRVM6CisgICAgICAgICAgICBjb25maWd1cmF0
aW9ucy5hcHBlbmQoVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBhcmNo
aXRlY3R1cmU9J3g4NicsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkpCisgICAgICAgIHJldHVybiBj
b25maWd1cmF0aW9ucworCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoc2VsZi5kcml2ZXJfbmFtZSgpKQor
CisgICAgZGVmIF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Ll9idWlsdF9leGVjdXRhYmxlc19wYXRoKCdJbWFnZURpZmYnKQorCisgICAgZGVmIF9nZXRfY3Jh
c2hfbG9nKHNlbGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgorICAg
ICAgICBuYW1lID0gIldQRVdlYlByb2Nlc3MiIGlmIG5hbWUgPT0gIldlYlByb2Nlc3MiIGVsc2Ug
bmFtZQorICAgICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdl
cl90aGFuLCBzZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVf
Y3Jhc2hfbG9nKHN0ZG91dCwgc3RkZXJyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI5Nzg0NzU1ZjM2Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtMCwwICsxLDYwIEBACitzZXQoVEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RP
UlkgIiR7Q01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9UZXN0V2ViS2l0QVBJIikKK3Nl
dChURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWV9XVEYgIiR7VEVTVFdFQktJ
VEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dURiIpCisKKyMgVGhpcyBpcyBuZWNlc3Nh
cnkgYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0byBidWlsZCBUZXN0V2ViS2l0QVBJIHdpdGggV2Vi
S2l0MgorIyBkaXNhYmxlZCBhbmQgdGhpcyB0cmlnZ2VycyB0aGUgaW5jbHVzaW9uIG9mIHRoZSBX
ZWJLaXQyIGhlYWRlcnMuCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XRUJLSVQyX18pCisK
K2FkZF9jdXN0b21fdGFyZ2V0KFRlc3RXZWJLaXRBUEktZm9yd2FyZGluZy1oZWFkZXJzCisgICAg
Q09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0
ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtURVNUV0VCS0lUQVBJX0RJ
Un0gLS1vdXRwdXQgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSAtLXBsYXRmb3JtIHdwZSAtLXBs
YXRmb3JtIHNvdXAKKyAgICBERVBFTkRTIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCisp
CisKK3NldChGb3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRSBUZXN0V2ViS2l0
QVBJLWZvcndhcmRpbmctaGVhZGVycykKKworaW5jbHVkZV9kaXJlY3RvcmllcygKKyAgICAke0ZP
UldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS9KYXZh
U2NyaXB0Q29yZQorKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTQorICAgICR7R0xJQl9J
TkNMVURFX0RJUlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKykKKworc2V0KHRlc3Rf
bWFpbl9TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL21haW4uY3BwCispCisK
K3NldChidW5kbGVfaGFybmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3Bl
L0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElS
fS93cGUvUGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwCispCisKKyMgVGVzdFdURgorCitsaXN0KEFQ
UEVORCBUZXN0V1RGX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYv
Z2xpYi9HVW5pcXVlUHRyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9n
bGliL1dvcmtRdWV1ZUdMaWIuY3BwCispCisKKyMgVGVzdFdlYkNvcmUKKworYWRkX2V4ZWN1dGFi
bGUoVGVzdFdlYkNvcmUKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzQ29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XZWJDb3JlL0hUTUxQYXJzZXJJZGlvbXMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJ
Un0vVGVzdHMvV2ViQ29yZS9MYXlvdXRVbml0LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzL1dlYkNvcmUvVVJMLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyVGVzdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
cy9XZWJDb3JlL0ZpbGVTeXN0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMv
V2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCispCisKK3RhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0
V2ViQ29yZSAke3Rlc3Rfd2ViY29yZV9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhUZXN0
V2ViQ29yZSAke0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKworYWRk
X3Rlc3QoVGVzdFdlYkNvcmUgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9S
WX0vV2ViQ29yZS9UZXN0V2ViQ29yZSkKK3NldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RXZWJDb3Jl
IFBST1BFUlRJRVMgVElNRU9VVCA2MCkKK3NldF90YXJnZXRfcHJvcGVydGllcyhUZXN0V2ViQ29y
ZSBQUk9QRVJUSUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRBUElfUlVO
VElNRV9PVVRQVVRfRElSRUNUT1JZfS9XZWJDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZkMjEyMWJkN2EyCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNw
cApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRs
ZUNvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2b2lkIEluamVj
dGVkQnVuZGxlQ29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93
cGUvUGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxh
dGZvcm1VdGlsaXRpZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5lMjFjMWVhYTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIv
R1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgeworbmFtZXNwYWNlIFV0aWwgeworCit2b2lkIHNsZWVwKGRvdWJsZSBz
ZWNvbmRzKQoreworICAgIGdfdXNsZWVwKHNlY29uZHMgKiAxMDAwMDAwKTsKK30KKworc3RhdGlj
IGNoYXIqIGdldEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoY29uc3QgY2hh
ciogdmFyaWFibGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYodmFy
aWFibGVOYW1lKTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIGdfcHJpbnRlcnIoIiVzIGVu
dmlyb25tZW50IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAgICAg
ZXhpdCgxKTsKKyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBnX2Zp
bGVuYW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKworV0tT
dHJpbmdSZWYgY3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNo
YXI+IGluamVjdGVkQnVuZGxlUGF0aChnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxl
QXNVVEY4KCJURVNUX1dFQktJVF9BUElfV0VCS0lUMl9JTkpFQ1RFRF9CVU5ETEVfUEFUSCIpKTsK
KyAgICBHVW5pcXVlUHRyPGNoYXI+IGluamVjdGVkQnVuZGxlRmlsZW5hbWUoZ19idWlsZF9maWxl
bmFtZShpbmplY3RlZEJ1bmRsZVBhdGguZ2V0KCksICJsaWJUZXN0V2ViS2l0QVBJSW5qZWN0ZWRC
dW5kbGUuc28iLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKGluamVjdGVkQnVuZGxlRmlsZW5hbWUuZ2V0KCkpOworfQorCitXS1VSTFJlZiBjcmVh
dGVVUkxGb3JSZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSwgY29uc3QgY2hhciogZXh0ZW5z
aW9uKQoreworICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGVzdFJlc291cmNlc1BhdGgoZ2V0RmlsZW5h
bWVGcm9tRW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJf
UkVTT1VSQ0VTX1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUJhc2VuYW1l
KGdfc3RyZHVwX3ByaW50ZigiJXMuJXMiLCByZXNvdXJjZSwgZXh0ZW5zaW9uKSk7CisgICAgR1Vu
aXF1ZVB0cjxjaGFyPiByZXNvdXJjZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUodGVzdFJlc291
cmNlc1BhdGguZ2V0KCksIHJlc291cmNlQmFzZW5hbWUuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBH
UmVmUHRyPEdGaWxlPiByZXNvdXJjZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0
aChyZXNvdXJjZUZpbGVuYW1lLmdldCgpKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJj
ZVVSSShnX2ZpbGVfZ2V0X3VyaShyZXNvdXJjZUZpbGUuZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tV
UkxDcmVhdGVXaXRoVVRGOENTdHJpbmcocmVzb3VyY2VVUkkuZ2V0KCkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBVdGlsCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3Bl
L21haW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjU2OGI2
YzMyZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3Bw
CkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RzQ29udHJvbGxl
ci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIFRl
c3RXZWJLaXRBUEk6OlRlc3RzQ29udHJvbGxlcjo6c2luZ2xldG9uKCkucnVuKGFyZ2MsIGFyZ3Yp
ID8gRVhJVF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmNwcAppbmRleCA1ZjM5NWJlNzM1ZS4uZDA3OTA0YjMzZjQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQogICAgIHJldHVybiBX
S0FjY2Vzc2liaWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CiB9CiAKLSNpZiAh
UExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiBSZWY8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVt
ZW50KCkKIHsKICAgICBXS0J1bmRsZVBhZ2VSZWYgcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5n
bGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRl
eCBlY2RmNWEwZjcyZi4uZDVhZWViYmNjZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmgKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IFJldGFpblB0cjxOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRs
ZXI7Ci0jZWxzZQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCiAgICAgUmVm
UHRyPEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlv
bkhhbmRsZXI7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRl
eCAwMjY0MGJlNzYxOC4uMjU4MTRlNGVlOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmNwcApAQCAtNzgsNyArNzgsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4
dEFyZWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgCiAvLyBVbnN1cHBv
cnRlZCBtZXRob2RzIG9uIHZhcmlvdXMgcGxhdGZvcm1zLiBBcyB0aGV5J3JlIGltcGxlbWVudGVk
IG9uIG90aGVyIHBsYXRmb3JtcyB0aGlzIGxpc3Qgc2hvdWxkIGJlIG1vZGlmaWVkLgotI2lmICFQ
TEFURk9STShHVEspIHx8ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaWYgKCFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShXUEUpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQogSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGlu
dCkgeyByZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lQXRPZmZz
ZXQoaW50KSB7IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmlu
ZGV4IGQxMGVlOGJiZDFhLi40MzVkZDdkYjhhYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmgKQEAgLTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VUlFbGVtZW50c1dp
dGhBdHRyaWJ1dGUoSlNTdHJpbmdSZWYsIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gPiYpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICB2b2lkIGdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gPiYpOwogICAgIHZvaWQgZ2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JiwgdW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVk
IGxlbmd0aCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGM3MWY0Y2Y2NzYwLi43NjhmNGQxNDYxMyAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCkBAIC05OCw3ICs5OCw3IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAg
ICwgbV9kYXRhYmFzZU1heFF1b3RhKC0xKQogICAgICwgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQo
ZmFsc2UpCiAgICAgLCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24oYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiIikpKQotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAsIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGVzdFJ1bm5lcjo6d2FpdFRvRHVtcFdhdGNoZG9nVGlt
ZXJGaXJlZCkKICNlbmRpZgogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBkNjM5MmU5OWNmZi4uNzA1MTI5ZDliYjIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1
ZGUgPENvcmVGb3VuZGF0aW9uL0NGUnVuTG9vcC5oPgogdHlwZWRlZiBSZXRhaW5QdHI8Q0ZSdW5M
b29wVGltZXJSZWY+IFBsYXRmb3JtVGltZXJSZWY7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogbmFtZXNwYWNlIFdUUiB7CiBjbGFzcyBUZXN0UnVubmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5lOTRjMmFhYjcwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNw
cApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5M
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsK
Kwordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNT
dHJpbmdSZWYgaWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjpwbGF0Zm9ybU5hbWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6cm9vdEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsKK30KKworUmVmPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxl
bWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y3JlYXRlKG51bGxwdHIpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCisj
ZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZDY0OTE1MGE1NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcApAQCAtMCwwICsx
LDk1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKworQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChQbGF0Zm9ybVVJRWxlbWVudCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCop
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Pj4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4mLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxk
cmVuQ291bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpl
bGVtZW50QXRQb2ludChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRl
eE9mQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gMDsKK30KKworCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRB
dEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0
SW5kZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdElu
ZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojpyb3dBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit1
bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3Rl
ZFJvd0F0SW5kZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlu
a2VkVUlFbGVtZW50cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmF0dHJpYnV0ZXNPZkRvY3VtZW50TGlua3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbigpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShK
U1N0cmluZ1JlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFs
dWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDAuMDsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVs
ZW1lbnRBcnJheUF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVl
UmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTVmFsdWVSZWYgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZh
bHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmJvb2xBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmli
dXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYW1ldGVy
aXplZEF0dHJpYnV0ZU5hbWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cm9sZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnN1YnJvbGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpyb2xlRGVzY3JpcHRpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojpjb21wdXRlZFJvbGVTdHJpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp0aXRsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmRlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHQoKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp4KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7
Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp3aWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4w
OworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQ
b2ludFkoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKwor
ZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjptaW5WYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRp
b24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNJbmNyZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzRGVjcmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0VuYWJsZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNTZWxlY3RlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZE9w
dGlvbkFjdGl2ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNv
bnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0luZGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aGllcmFyY2hpY2FsTGV2ZWwoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzcGVhaygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkg
Y29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEcm9w
RWZmZWN0cygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRleChpbnQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9z
aXRpb24oaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmJvdW5kc0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2ln
bmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1
dGVkU3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXR0cmlidXRlZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkLCB1bnNpZ25l
ZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5z
aWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVk
aWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1
ZVJlZiwgSlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRS
ZWYsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1Jl
ZiwgYm9vbCwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU1Zh
bHVlUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFk
ZXJzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mQ29sdW1ucygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmF0dHJpYnV0ZXNPZlJvd3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojpyb3dDb3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aW5kZXhJblRhYmxlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6cm93SW5kZXhSYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2ln
bmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0
UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UodW5z
aWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpk
ZWNyZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2hvd01lbnUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3MoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGls
ZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRD
aGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdElu
ZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xlYXJTZWxlY3RlZENoaWxkcmVuKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGlu
ZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50
VVJJKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTVmFsdWVS
ZWYgZnVuY3Rpb25DYWxsYmFjaykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmlj
YXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4o
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc0lnbm9yZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzU2luZ2xlTGluZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aUxpbmUo
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp0YWtlRm9jdXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbigpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRTZWxl
Y3Rpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bGluZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpwcmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIq
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4
dFRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIqLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJG
b3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2Vy
Rm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtl
ckZvckJvdW5kcyhpbnQsIGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBp
bnQsIGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6dGV4dE1hcmtlckZvclBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRl
eHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpT
U3RyaW5nUmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmluZGV4Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc1RleHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciop
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1h
cmtlckZvckluZGV4KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnNldFNlbGVjdGVkVmlzaWJsZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNjcm9sbFRvR2xvYmFsUG9pbnQoaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxl
V2l0aFN1YkZvY3VzKGludCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c3VwcG9ydGVkQWN0aW9ucygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnBhdGhEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNj
cmlwdHNEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNsYXNzTGlzdCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNl
dChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworfSAvLyBuYW1lc3BhY2UgIFdURgorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0
aXZhdGVGb250c1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uYzNjZjcyMWIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApAQCAtMCwwICsx
LDE0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCisjaW5j
bHVkZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0
aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNl
IFdUUiB7CisKK0NTdHJpbmcgdG9wTGV2ZWxQYXRoKCkKK3sKKyAgICBpZiAoY29uc3QgY2hhciog
dG9wTGV2ZWxEaXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX1RPUF9MRVZFTCIpKQorICAgICAg
ICByZXR1cm4gdG9wTGV2ZWxEaXJlY3Rvcnk7CisKKyAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQg
dmFyaWFibGUgd2Fzbid0IHByb3ZpZGVkIHRoZW4gYXNzdW1lIHdlIHdlcmUgYnVpbHQgaW50bwor
ICAgIC8vIFdlYktpdEJ1aWxkL0RlYnVnIG9yIFdlYktpdEJ1aWxkL1JlbGVhc2UuIE9idmlvdXNs
eSB0aGlzIHdpbGwgZmFpbCBpZiB0aGUgYnVpbGQKKyAgICAvLyBkaXJlY3RvcnkgaXMgbm9uLXN0
YW5kYXJkLCBidXQgd2UgY2FuJ3QgZG8gbXVjaCBtb3JlIGFib3V0IHRoaXMuCisgICAgR1VuaXF1
ZVB0cjxjaGFyPiBwYXJlbnRQYXRoKGdfcGF0aF9nZXRfZGlybmFtZShnZXRDdXJyZW50RXhlY3V0
YWJsZVBhdGgoKS5kYXRhKCkpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGxheW91dFRlc3RzUGF0
aChnX2J1aWxkX2ZpbGVuYW1lKHBhcmVudFBhdGguZ2V0KCksICIuLiIsICIuLiIsICIuLiIsIG51
bGxwdHIpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGFic29sdXRlVG9wTGV2ZWxQYXRoKHJlYWxw
YXRoKGxheW91dFRlc3RzUGF0aC5nZXQoKSwgMCkpOworICAgIHJldHVybiBhYnNvbHV0ZVRvcExl
dmVsUGF0aC5nZXQoKTsKK30KKworQ1N0cmluZyBnZXRPdXRwdXREaXIoKQoreworICAgIGNvbnN0
IGNoYXIqIHdlYmtpdE91dHB1dERpciA9IGdfZ2V0ZW52KCJXRUJLSVRfT1VUUFVURElSIik7Cisg
ICAgaWYgKHdlYmtpdE91dHB1dERpcikKKyAgICAgICAgcmV0dXJuIHdlYmtpdE91dHB1dERpcjsK
KworICAgIEdVbmlxdWVQdHI8Y2hhcj4gb3V0cHV0RGlyKGdfYnVpbGRfZmlsZW5hbWUodG9wTGV2
ZWxQYXRoKCkuZGF0YSgpLCAiV2ViS2l0QnVpbGQiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIG91
dHB1dERpci5nZXQoKTsKK30KKworc3RhdGljIENTdHJpbmcgZ2V0Rm9udHNQYXRoKCkKK3sKKyAg
ICBDU3RyaW5nIHdlYmtpdE91dHB1dERpciA9IGdldE91dHB1dERpcigpOworICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gZm9udHNQYXRoKGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEo
KSwgIkRlcGVuZGVuY2llc1dQRSIsICJSb290IiwgIndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgbnVs
bHB0cikpOworICAgIGlmIChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0
PEdGaWxlVGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfRElSKSkpCisg
ICAgICAgIHJldHVybiBmb250c1BhdGguZ2V0KCk7CisKKyAgICAvLyBUcnkgYWx0ZXJuYXRpdmUg
Zm9udHMgcGF0aC4KKyAgICBmb250c1BhdGgucmVzZXQoZ19idWlsZF9maWxlbmFtZSh3ZWJraXRP
dXRwdXREaXIuZGF0YSgpLCAid2Via2l0Z3RrLXRlc3QtZm9udHMiLCBOVUxMKSk7CisgICAgaWYg
KGdfZmlsZV90ZXN0KGZvbnRzUGF0aC5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJ
TEVfVEVTVF9FWElTVFMgfCBHX0ZJTEVfVEVTVF9JU19ESVIpKSkKKyAgICAgICAgcmV0dXJuIGZv
bnRzUGF0aC5nZXQoKTsKKworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisKK3ZvaWQgYWN0aXZh
dGVGb250cygpCit7CisgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVRfU0tJUF9XRUJLSVRURVNUUlVO
TkVSX0ZPTlRDT05GSUdfSU5JVElBTElaQVRJT04iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
RmNJbml0KCk7CisKKyAgICAvLyBJZiBhIHRlc3QgcmVzdWx0ZWQgYSBmb250IGJlaW5nIGFkZGVk
IG9yIHJlbW92ZWQgdmlhIHRoZSBAZm9udC1mYWNlIHJ1bGUsIHRoZW4KKyAgICAvLyB3ZSB3YW50
IHRvIHJlc2V0IHRoZSBGb250Q29uZmlnIGNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBpdCBmcm9t
IGFmZmVjdGluZyBvdGhlciB0ZXN0cy4KKyAgICBzdGF0aWMgaW50IG51bUZvbnRzID0gMDsKKyAg
ICBGY0ZvbnRTZXQqIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGlj
YXRpb24pOworICAgIGlmIChhcHBGb250U2V0ICYmIG51bUZvbnRzICYmIGFwcEZvbnRTZXQtPm5m
b250ID09IG51bUZvbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBMb2FkIG91ciBjb25m
aWd1cmF0aW9uIGZpbGUsIHdoaWNoIHNldHMgdXAgcHJvcGVyIGFsaWFzZXMgZm9yIGZhbWlseQor
ICAgIC8vIG5hbWVzIGxpa2Ugc2Fucywgc2VyaWYgYW5kIG1vbm9zcGFjZS4KKyAgICBGY0NvbmZp
ZyogY29uZmlnID0gRmNDb25maWdDcmVhdGUoKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250
Q29uZmlnRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgImZvbnRzLmNv
bmYiLCBudWxscHRyKSk7CisgICAgaWYgKCFnX2ZpbGVfdGVzdChmb250Q29uZmlnRmlsZW5hbWUu
Z2V0KCksIEdfRklMRV9URVNUX0lTX1JFR1VMQVIpKQorICAgICAgICBnX2Vycm9yKCJDYW5ub3Qg
ZmluZCBmb250cy5jb25mIGF0ICVzXG4iLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworICAg
IGlmICghRmNDb25maWdQYXJzZUFuZExvYWQoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hh
cjgqPihmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpLCB0cnVlKSkKKyAgICAgICAgZ19lcnJvcigi
Q291bGRuJ3QgbG9hZCBmb250IGNvbmZpZ3VyYXRpb24gZmlsZSBmcm9tOiAlcyIsIGZvbnRDb25m
aWdGaWxlbmFtZS5nZXQoKSk7CisKKyAgICBDU3RyaW5nIGZvbnRzUGF0aCA9IGdldEZvbnRzUGF0
aCgpOworICAgIGlmIChmb250c1BhdGguaXNOdWxsKCkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxk
IG5vdCBsb2NhdGUgdGVzdCBmb250cyBhdCAlcy4gSXMgV0VCS0lUX1RPUF9MRVZFTCBzZXQ/Iiwg
Zm9udHNQYXRoLmRhdGEoKSk7CisKKyAgICBHVW5pcXVlUHRyPEdEaXI+IGZvbnRzRGlyZWN0b3J5
KGdfZGlyX29wZW4oZm9udHNQYXRoLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAgIHdoaWxlIChj
b25zdCBjaGFyKiBkaXJlY3RvcnlFbnRyeSA9IGdfZGlyX3JlYWRfbmFtZShmb250c0RpcmVjdG9y
eS5nZXQoKSkpIHsKKyAgICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5
LCAiLnR0ZiIpICYmICFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLm90ZiIpKQor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRQYXRo
KGdfYnVpbGRfZmlsZW5hbWUoZm9udHNQYXRoLmRhdGEoKSwgZGlyZWN0b3J5RW50cnksIG51bGxw
dHIpKTsKKyAgICAgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBGY0NoYXI4Kj4oZm9udFBhdGguZ2V0KCkpKSkKKyAgICAgICAgICAg
IGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFBhdGguZ2V0KCkpOwor
ICAgIH0KKworICAgIC8vIEFoZW0gaXMgdXNlZCBieSBtYW55IGxheW91dCB0ZXN0cy4KKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBhaGVtRm9udEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNf
Q09ORl9ESVIsICJBSEVNX19fXy5UVEYiLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0Fw
cEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oYWhlbUZvbnRG
aWxlbmFtZS5nZXQoKSkpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0
ICVzISIsIGFoZW1Gb250RmlsZW5hbWUuZ2V0KCkpOyAKKworICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBmb250RmlsZW5hbWVzW10gPSB7CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMTAwLnR0
ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMjAwLnR0ZiIsCisgICAgICAgICJXZWJL
aXRXZWlnaHRXYXRjaGVyMzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNDAw
LnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNTAwLnR0ZiIsCisgICAgICAgICJX
ZWJLaXRXZWlnaHRXYXRjaGVyNjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVy
NzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiIsCisgICAgICAg
ICJXZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiIsCisgICAgICAgIDAKKyAgICB9OworCisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGZvbnRGaWxlbmFtZXNbaV07ICsraSkgeworICAgICAgICBHVW5p
cXVlUHRyPGdjaGFyPiBmb250RmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJ
UiwgIi4uIiwgIi4uIiwgImZvbnRzIiwgZm9udEZpbGVuYW1lc1tpXSwgbnVsbHB0cikpOworICAg
ICAgICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0
PEZjQ2hhcjgqPihmb250RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNv
dWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udEZpbGVuYW1lLmdldCgpKTsgCisgICAgfQor
CisgICAgLy8gQSBmb250IHdpdGggbm8gdmFsaWQgRm9udGNvbmZpZyBlbmNvZGluZyB0byB0ZXN0
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ1MgorICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUoZ19idWlsZF9maWxl
bmFtZShGT05UU19DT05GX0RJUiwgIkZvbnRXaXRoTm9WYWxpZEVuY29kaW5nLmZvbiIsIG51bGxw
dHIpKTsKKyAgICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJl
dF9jYXN0PEZjQ2hhcjgqPihmb250V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lLmdldCgpKSkp
CisgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFdpdGhO
b1ZhbGlkRW5jb2RpbmdGaWxlbmFtZS5nZXQoKSk7IAorCisgICAgaWYgKCFGY0NvbmZpZ1NldEN1
cnJlbnQoY29uZmlnKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IHNldCB0aGUgY3VycmVu
dCBmb250IGNvbmZpZ3VyYXRpb24hIik7CisKKyAgICBudW1Gb250cyA9IEZjQ29uZmlnR2V0Rm9u
dHMoY29uZmlnLCBGY1NldEFwcGxpY2F0aW9uKS0+bmZvbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93
cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4yNDA4MWZmM2EyOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcApA
QCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5o
IgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1Jbml0
aWFsaXplKFdLVHlwZVJlZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BF
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5u
ZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZjE0ZmZk
ZDA1NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlRlc3RSdW5uZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5n
UmVmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gVGVzdFJ1bm5lcjo6aW5zcGVjdG9yVGVzdFN0dWJVUkwoKQoreworICAgIHJldHVybiBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiIik7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW52
YWxpZGF0ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkKK3sKKyAgICBtX3dhaXRUb0R1bXBXYXRj
aGRvZ1RpbWVyLnN0b3AoKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpwbGF0Zm9ybUluaXRpYWxp
emUoKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hk
b2dUaW1lcklmTmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIu
aXNBY3RpdmUoKSkKKyAgICAgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydE9uZVNo
b3QobV90aW1lb3V0IC8gMTAwMC4wKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi40YTg2MmQ2OWFmYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NyBAQAorZmluZF9w
YWNrYWdlKExpYkdCTSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1lc2EgUkVR
VUlSRUQpCisKK2FkZF9jdXN0b21fdGFyZ2V0KFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1o
ZWFkZXJzCisgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2Ny
aXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtXRUJL
SVRfVEVTVFJVTk5FUl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1w
bGF0Zm9ybSB3cGUKKykKKworc2V0KEZvcndhcmRpbmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5l
cl9OQU1FIFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzKQorCitsaXN0KEFQUEVO
RCBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0v
Y2Fpcm8vVGVzdEludm9jYXRpb25DYWlyby5jcHAKKworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJf
RElSfS93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVS
X0RJUn0vd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5F
Ul9ESVJ9L3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5F
Ul9ESVJ9L3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVS
X0RJUn0vd3BlL21haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5D
TFVERV9ESVJFQ1RPUklFUworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9JbmplY3RlZEJ1
bmRsZS93cGUKKyAgICAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtDQUlST19JTkNM
VURFX0RJUlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0xJQkdCTV9JTkNMVURF
X0RJUlN9CisgICAgJHtXUEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdl
YktpdFRlc3RSdW5uZXJfTElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtH
TElCX0xJQlJBUklFU30KKyAgICAke0xJQkdCTV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTUVTQV9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZV9TT1VSQ0VTCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dw
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVS
X0lOSkVDVEVEQlVORExFX0RJUn0vd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwCisg
ICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY3RpdmF0ZUZv
bnRzV1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93
cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RF
REJVTkRMRV9ESVJ9L3dwZS9UZXN0UnVubmVyV1BFLmNwcAorKQorCithZGRfZGVmaW5pdGlvbnMo
CisgICAgLURGT05UU19DT05GX0RJUj0iJHtUT09MU19ESVJ9L1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L2ZvbnRzIgorICAgIC1EVE9QX0xFVkVMX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IDBmMTU4NjEzZDJhLi44
N2U4ZjdkYTYwNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdl
YlZpZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBA
IC01MCw2ICs1MCwxMSBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdldDsKIHR5
cGVkZWYgV0tWaWV3UmVmIFBsYXRmb3JtV0tWaWV3OwogdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRm
b3JtV2luZG93OwogdHlwZWRlZiBjYWlyb19zdXJmYWNlX3QgKlBsYXRmb3JtSW1hZ2U7CisjZWxp
ZiBQTEFURk9STShXUEUpCitjbGFzcyBIZWFkbGVzc1ZpZXdCYWNrZW5kOwordHlwZWRlZiBXS1Zp
ZXdSZWYgUGxhdGZvcm1XS1ZpZXc7Cit0eXBlZGVmIEhlYWRsZXNzVmlld0JhY2tlbmQqIFBsYXRm
b3JtV2luZG93OwordHlwZWRlZiBjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtSW1hZ2U7CiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdUUiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDQ3YTE3ZTBmZmJhLi4yNDk3ZDRhOGRhMyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTc2Nyw3ICs3NjcsNyBAQCBib29sIFRlc3RD
b250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25z
JiBvcHRpb25zKQogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBkb2luZyB0aGlzLCBpdCBzaG91bGQg
cHJvYmFibHkgYmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAgdG9vLgogICAgIHJlc2V0UHJlZmVy
ZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKLSNpZiAhUExBVEZPUk0oQ09DT0Ep
CisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIFdLVGV4dENoZWNr
ZXJDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQ
cm94eVdQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5
V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTFlZTBmYzJl
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNl
bmRlclByb3h5V1BFLmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRXZlbnRTZW5kZXJQcm94eS5oIgorCituYW1lc3BhY2UgV1RSIHsKKworRXZlbnRTZW5kZXJQ
cm94eTo6RXZlbnRTZW5kZXJQcm94eShUZXN0Q29udHJvbGxlciogdGVzdENvbnRyb2xsZXIpCisg
ICAgOiBtX3Rlc3RDb250cm9sbGVyKHRlc3RDb250cm9sbGVyKQorICAgICwgbV90aW1lKDApCisg
ICAgLCBtX2xlZnRNb3VzZUJ1dHRvbkRvd24oZmFsc2UpCisgICAgLCBtX2NsaWNrQ291bnQoMCkK
KyAgICAsIG1fY2xpY2tUaW1lKDApCisgICAgLCBtX2NsaWNrQnV0dG9uKGtXS0V2ZW50TW91c2VC
dXR0b25Ob0J1dHRvbikKK3sKK30KKworRXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJv
eHkoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRG93bih1bnNpZ25lZCwg
V0tFdmVudE1vZGlmaWVycykKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVVw
KHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJzKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6Om1vdXNlTW92ZVRvKGRvdWJsZSwgZG91YmxlKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6Om1vdXNlU2Nyb2xsQnkoaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBp
bnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91c2VT
Y3JvbGxCeShpbnQsIGludCwgYm9vbCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojps
ZWFwRm9yd2FyZChpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihX
S1N0cmluZ1JlZiwgV0tFdmVudE1vZGlmaWVycywgdW5zaWduZWQpCit7Cit9CisKK3ZvaWQgRXZl
bnRTZW5kZXJQcm94eTo6YWRkVG91Y2hQb2ludChpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVu
dFNlbmRlclByb3h5Ojp1cGRhdGVUb3VjaFBvaW50KGludCwgaW50LCBpbnQpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0VG91Y2hNb2RpZmllcihXS0V2ZW50TW9kaWZpZXJzLCBi
b29sKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNldFRvdWNoUG9pbnRSYWRpdXMo
aW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hTdGFydCgpCit7
Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hNb3ZlKCkKK3sKK30KKwordm9pZCBF
dmVudFNlbmRlclByb3h5Ojp0b3VjaEVuZCgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6dG91Y2hDYW5jZWwoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNsZWFyVG91
Y2hQb2ludHMoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBv
aW50KGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50
KGludCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi41NjBiNDBhM2VmYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCkBAIC0wLDAgKzEs
MjUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisK
KyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3Rk
Lmg+CisKKy8vIEZJWE1FOiBEZXBsb3kgZ29vZCBwcmFjdGljZXMgYW5kIGNsZWFuIHVwIEdCTSBy
ZXNvdXJjZXMgYXQgcHJvY2VzcyBleGl0Lgorc3RhdGljIEVHTERpc3BsYXkgZ2V0RUdMRGlzcGxh
eSgpCit7CisgICAgc3RhdGljIEVHTERpc3BsYXkgc19kaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7
CisgICAgaWYgKHNfZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgeworICAgICAgICBpbnQgZmQg
PSBvcGVuKCIvZGV2L2RyaS9yZW5kZXJEMTI4IiwgT19SRFdSIHwgT19DTE9FWEVDIHwgT19OT0NU
VFkgfCBPX05PTkJMT0NLKTsKKyAgICAgICAgaWYgKGZkIDwgMCkKKyAgICAgICAgICAgIHJldHVy
biBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBzdHJ1Y3QgZ2JtX2RldmljZSogZGV2aWNlID0g
Z2JtX2NyZWF0ZV9kZXZpY2UoZmQpOworICAgICAgICBpZiAoIWRldmljZSkKKyAgICAgICAgICAg
IHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBl
Z2xHZXREaXNwbGF5KGRldmljZSk7CisgICAgICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQ
TEFZKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIGlmICgh
ZWdsSW5pdGlhbGl6ZShkaXNwbGF5LCBudWxscHRyLCBudWxscHRyKSkKKyAgICAgICAgICAgIHJl
dHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBpZiAoIWVnbEJpbmRBUEkoRUdMX09QRU5H
TF9FU19BUEkpKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAg
IHNfZGlzcGxheSA9IGRpc3BsYXk7CisgICAgfQorCisgICAgcmV0dXJuIHNfZGlzcGxheTsKK30K
KworSGVhZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFja2VuZCgpCit7CisgICAgbV9l
Z2wuZGlzcGxheSA9IGdldEVHTERpc3BsYXkoKTsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQg
Y29uZmlnQXR0cmlidXRlc1sxM10gPSB7CisgICAgICAgIEVHTF9TVVJGQUNFX1RZUEUsIEVHTF9X
SU5ET1dfQklULAorICAgICAgICBFR0xfUkVEX1NJWkUsIDEsCisgICAgICAgIEVHTF9HUkVFTl9T
SVpFLCAxLAorICAgICAgICBFR0xfQkxVRV9TSVpFLCAxLAorICAgICAgICBFR0xfQUxQSEFfU0la
RSwgMSwKKyAgICAgICAgRUdMX1JFTkRFUkFCTEVfVFlQRSwgRUdMX09QRU5HTF9FUzJfQklULAor
ICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAgICBFR0xpbnQgbnVtQ29uZmlnczsKKyAgICBF
R0xCb29sZWFuIHJldCA9IGVnbENob29zZUNvbmZpZyhtX2VnbC5kaXNwbGF5LCBjb25maWdBdHRy
aWJ1dGVzLCAmbV9lZ2wuY29uZmlnLCAxLCAmbnVtQ29uZmlncyk7CisgICAgaWYgKCFyZXQgfHwg
IW51bUNvbmZpZ3MpCisgICAgICAgIHJldHVybjsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQg
Y29udGV4dEF0dHJpYnV0ZXNbM10gPSB7CisgICAgICAgIEVHTF9DT05URVhUX0NMSUVOVF9WRVJT
SU9OLCAyLAorICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAgICBtX2VnbC5jb250ZXh0ID0g
ZWdsQ3JlYXRlQ29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb25maWcsIEVHTF9OT19DT05U
RVhULCBjb250ZXh0QXR0cmlidXRlcyk7CisgICAgaWYgKG1fZWdsLmNvbnRleHQgPT0gRUdMX05P
X0NPTlRFWFQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZWdsTWFrZUN1cnJlbnQobV9l
Z2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9lZ2wuY3JlYXRlSW1hZ2UgPSByZWludGVycHJl
dF9jYXN0PFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbENy
ZWF0ZUltYWdlS0hSIikpOworICAgIG1fZWdsLmRlc3Ryb3lJbWFnZSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8UEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbERlc3Ry
b3lJbWFnZUtIUiIpKTsKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRleHR1cmUyRE9FUyA9IHJlaW50
ZXJwcmV0X2Nhc3Q8UEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0M+KGVnbEdldFBy
b2NBZGRyZXNzKCJnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTIikpOworCisgICAgbV9leHBv
cnRhYmxlID0gd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jcmVhdGUo
JnNfZXhwb3J0YWJsZUNsaWVudCwgdGhpcyk7CisKKyAgICBtX3VwZGF0ZVNvdXJjZSA9IGdfdGlt
ZW91dF9zb3VyY2VfbmV3KG1fZnJhbWVSYXRlIC8gMTAwMCk7CisgICAgZ19zb3VyY2Vfc2V0X2Nh
bGxiYWNrKG1fdXBkYXRlU291cmNlLAorICAgICAgICBbXShncG9pbnRlciBkYXRhKSAtPiBnYm9v
bGVhbiB7CisgICAgICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNz
Vmlld0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAgICAgIGJhY2tlbmQucGVyZm9ybVVwZGF0ZSgp
OworICAgICAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgIH0sIHRoaXMsIG51bGxwdHIpOwor
ICAgIGdfc291cmNlX2F0dGFjaChtX3VwZGF0ZVNvdXJjZSwgZ19tYWluX2NvbnRleHRfZGVmYXVs
dCgpKTsKK30KKworSGVhZGxlc3NWaWV3QmFja2VuZDo6fkhlYWRsZXNzVmlld0JhY2tlbmQoKQor
eworICAgIGlmIChtX3VwZGF0ZVNvdXJjZSkKKyAgICAgICAgZ19zb3VyY2VfZGVzdHJveShtX3Vw
ZGF0ZVNvdXJjZSk7CisKKyAgICBpZiAoYXV0byBpbWFnZSA9IHN0ZDo6Z2V0PDA+KG1fcGVuZGlu
Z0ltYWdlLnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5
LCBpbWFnZSk7CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdl
LnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFn
ZSk7CisKKyAgICBmb3IgKGF1dG8gaXQgOiBtX2V4cG9ydE1hcCkgeworICAgICAgICBpbnQgZmQg
PSBpdC5zZWNvbmQ7CisgICAgICAgIGlmIChmZCA+PSAwKQorICAgICAgICAgICAgY2xvc2UoZmQp
OworICAgIH0KKworICAgIGlmIChtX2VnbC5jb250ZXh0KQorICAgICAgICBlZ2xEZXN0cm95Q29u
dGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb250ZXh0KTsKK30KKworc3RydWN0IHdwZV92aWV3
X2JhY2tlbmQqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmJhY2tlbmQoKSBjb25zdAoreworICAgIHJl
dHVybiB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2dldF92aWV3X2Jh
Y2tlbmQobV9leHBvcnRhYmxlKTsKK30KKworY2Fpcm9fc3VyZmFjZV90KiBIZWFkbGVzc1ZpZXdC
YWNrZW5kOjpjcmVhdGVTbmFwc2hvdCgpCit7CisgICAgcGVyZm9ybVVwZGF0ZSgpOworCisgICAg
RUdMSW1hZ2VLSFIgaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCk7Cisg
ICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB1aW50MzJfdCB3
aWR0aCA9IHN0ZDo6Z2V0PDE+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKyAgICB1aW50MzJfdCBo
ZWlnaHQgPSBzdGQ6OmdldDwyPihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisKKyAgICB1aW50OF90
KiBidWZmZXIgPSBuZXcgdWludDhfdFs0ICogd2lkdGggKiBoZWlnaHRdOworICAgIGJvb2wgc3Vj
Y2Vzc2Z1bFNuYXBzaG90ID0gZmFsc2U7CisKKyAgICBtYWtlQ3VycmVudCgpOworCisgICAgR0x1
aW50IGltYWdlVGV4dHVyZTsKKyAgICBnbEdlblRleHR1cmVzKDEsICZpbWFnZVRleHR1cmUpOwor
ICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgaW1hZ2VUZXh0dXJlKTsKKyAgICBnbFRl
eFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5F
QVIpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19G
SUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdM
X1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICBnbFRleFBhcmFtZXRlcmko
R0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAg
IGdsVGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBHTF9CR1JBX0VYVCwgd2lkdGgsIGhlaWdo
dCwgMCwgR0xfQkdSQV9FWFQsIEdMX1VOU0lHTkVEX0JZVEUsIG51bGxwdHIpOworCisgICAgbV9l
Z2wuaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMoR0xfVEVYVFVSRV8yRCwgaW1hZ2UpOworICAgIGds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CisKKyAgICBHTHVpbnQgaW1hZ2VGcmFtZWJ1
ZmZlcjsKKyAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAg
Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGltYWdlRnJhbWVidWZmZXIpOworICAg
IGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1F
TlQwLCBHTF9URVhUVVJFXzJELCBpbWFnZVRleHR1cmUsIDApOworCisgICAgZ2xGbHVzaCgpOwor
ICAgIGlmIChnbENoZWNrRnJhbWVidWZmZXJTdGF0dXMoR0xfRlJBTUVCVUZGRVIpID09IEdMX0ZS
QU1FQlVGRkVSX0NPTVBMRVRFKSB7CisgICAgICAgIGdsUmVhZFBpeGVscygwLCAwLCB3aWR0aCwg
aGVpZ2h0LCBHTF9CR1JBX0VYVCwgR0xfVU5TSUdORURfQllURSwgYnVmZmVyKTsKKyAgICAgICAg
c3VjY2Vzc2Z1bFNuYXBzaG90ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBnbEJpbmRGcmFtZWJ1ZmZl
cihHTF9GUkFNRUJVRkZFUiwgMCk7CisgICAgZ2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJmltYWdl
RnJhbWVidWZmZXIpOworICAgIGdsRGVsZXRlVGV4dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisK
KyAgICBpZiAoIXN1Y2Nlc3NmdWxTbmFwc2hvdCkgeworICAgICAgICBkZWxldGVbXSBidWZmZXI7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCog
aW1hZ2VTdXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVy
LAorICAgICAgICBDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0LCBjYWlyb19mb3Jt
YXRfc3RyaWRlX2Zvcl93aWR0aChDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCkpOworICAgIGNh
aXJvX3N1cmZhY2VfbWFya19kaXJ0eShpbWFnZVN1cmZhY2UpOworCisgICAgc3RhdGljIGNhaXJv
X3VzZXJfZGF0YV9rZXlfdCBidWZmZXJLZXk7CisgICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9k
YXRhKGltYWdlU3VyZmFjZSwgJmJ1ZmZlcktleSwgYnVmZmVyLAorICAgICAgICBbXSh2b2lkKiBk
YXRhKSB7CisgICAgICAgICAgICBhdXRvKiBidWZmZXIgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4o
ZGF0YSk7CisgICAgICAgICAgICBkZWxldGVbXSBidWZmZXI7CisgICAgICAgIH0pOworCisgICAg
cmV0dXJuIGltYWdlU3VyZmFjZTsKK30KKworYm9vbCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjptYWtl
Q3VycmVudCgpCit7CisgICAgcmV0dXJuIGVnbE1ha2VDdXJyZW50KG1fZWdsLmRpc3BsYXksIEVH
TF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgbV9lZ2wuY29udGV4dCk7Cit9CisKK3ZvaWQg
SGVhZGxlc3NWaWV3QmFja2VuZDo6cGVyZm9ybVVwZGF0ZSgpCit7CisgICAgaWYgKCFtX3BlbmRp
bmdJbWFnZS5maXJzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd3BlX21lc2Ffdmlld19iYWNr
ZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9mcmFtZV9jb21wbGV0ZShtX2V4cG9ydGFi
bGUpOworICAgIGlmIChtX2xvY2tlZEltYWdlLmZpcnN0KSB7CisgICAgICAgIHdwZV9tZXNhX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZGlzcGF0Y2hfcmVsZWFzZV9idWZmZXIobV9l
eHBvcnRhYmxlLCBtX2xvY2tlZEltYWdlLmZpcnN0KTsKKyAgICAgICAgbV9lZ2wuZGVzdHJveUlt
YWdlKG1fZWdsLmRpc3BsYXksIHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSk7Cisg
ICAgfQorCisgICAgbV9sb2NrZWRJbWFnZSA9IG1fcGVuZGluZ0ltYWdlOworICAgIG1fcGVuZGlu
Z0ltYWdlID0gc3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50
MzJfdCwgdWludDMyX3Q+PiB7IH07Cit9CisKK3N0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRf
ZXhwb3J0YWJsZV9kbWFfYnVmX2NsaWVudCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpzX2V4cG9ydGFi
bGVDbGllbnQgPSB7CisgICAgLy8gZXhwb3J0X2RtYV9idWYKKyAgICBbXSh2b2lkKiBkYXRhLCBz
dHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kYXRhKiBpbWFn
ZURhdGEpCisgICAgeworICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRs
ZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKworICAgICAgICBhdXRvIGl0ID0gYmFja2VuZC5tX2V4
cG9ydE1hcC5lbmQoKTsKKyAgICAgICAgaWYgKGltYWdlRGF0YS0+ZmQgPj0gMCkgeworICAgICAg
ICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSkg
PT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisKKyAgICAgICAgICAgIGl0ID0gYmFja2Vu
ZC5tX2V4cG9ydE1hcC5pbnNlcnQoeyBpbWFnZURhdGEtPmhhbmRsZSwgaW1hZ2VEYXRhLT5mZCB9
KS5maXJzdDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydChiYWNrZW5kLm1f
ZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpICE9IGJhY2tlbmQubV9leHBvcnRNYXAu
ZW5kKCkpOworICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VE
YXRhLT5oYW5kbGUpOworICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0KGl0ICE9IGJhY2tlbmQu
bV9leHBvcnRNYXAuZW5kKCkpOworICAgICAgICB1aW50MzJfdCBoYW5kbGUgPSBpdC0+Zmlyc3Q7
CisgICAgICAgIGludDMyX3QgZmQgPSBpdC0+c2Vjb25kOworCisgICAgICAgIGJhY2tlbmQubWFr
ZUN1cnJlbnQoKTsKKworICAgICAgICBFR0xpbnQgYXR0cmlidXRlc1tdID0geworICAgICAgICAg
ICAgRUdMX1dJRFRILCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+d2lkdGgpLAorICAg
ICAgICAgICAgRUdMX0hFSUdIVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPmhlaWdo
dCksCisgICAgICAgICAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19FWFQsIHN0YXRpY19jYXN0PEVH
TGludD4oaW1hZ2VEYXRhLT5mb3JtYXQpLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUw
X0ZEX0VYVCwgZmQsCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfT0ZGU0VUX0VYVCwg
MCwKKyAgICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9QSVRDSF9FWFQsIHN0YXRpY19jYXN0
PEVHTGludD4oaW1hZ2VEYXRhLT5zdHJpZGUpLAorICAgICAgICAgICAgRUdMX05PTkUsCisgICAg
ICAgIH07CisgICAgICAgIEVHTEltYWdlS0hSIGltYWdlID0gYmFja2VuZC5tX2VnbC5jcmVhdGVJ
bWFnZShiYWNrZW5kLm1fZWdsLmRpc3BsYXksIEVHTF9OT19DT05URVhULCBFR0xfTElOVVhfRE1B
X0JVRl9FWFQsIG51bGxwdHIsIGF0dHJpYnV0ZXMpOworICAgICAgICBiYWNrZW5kLm1fcGVuZGlu
Z0ltYWdlID0geyBpbWFnZURhdGEtPmhhbmRsZSwgc3RkOjptYWtlX3R1cGxlKGltYWdlLCBpbWFn
ZURhdGEtPndpZHRoLCBpbWFnZURhdGEtPmhlaWdodCkgfTsKKyAgICB9LAorfTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjIxODYxMjFhOGMKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKQEAg
LTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGdibS5oPgorI2luY2x1ZGUgPEVHTC9l
Z2wuaD4KKyNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+Cisj
aW5jbHVkZSA8R0xFUzIvZ2wyZXh0Lmg+CisjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDxn
bGliLmg+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx3cGUtbWVzYS92aWV3
LWJhY2tlbmQtZXhwb3J0YWJsZS1kbWEtYnVmLmg+CisKK2NsYXNzIEhlYWRsZXNzVmlld0JhY2tl
bmQgeworcHVibGljOgorICAgIEhlYWRsZXNzVmlld0JhY2tlbmQoKTsKKyAgICB+SGVhZGxlc3NW
aWV3QmFja2VuZCgpOworCisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQoKSBj
b25zdDsKKworICAgIGNhaXJvX3N1cmZhY2VfdCogY3JlYXRlU25hcHNob3QoKTsKKworcHJpdmF0
ZToKKyAgICBib29sIG1ha2VDdXJyZW50KCk7CisgICAgdm9pZCBwZXJmb3JtVXBkYXRlKCk7CisK
KyAgICBzdGF0aWMgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9i
dWZfY2xpZW50IHNfZXhwb3J0YWJsZUNsaWVudDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIEVH
TERpc3BsYXkgZGlzcGxheTsKKyAgICAgICAgRUdMQ29uZmlnIGNvbmZpZzsKKyAgICAgICAgRUdM
Q29udGV4dCBjb250ZXh0OworCisgICAgICAgIFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQyBjcmVh
dGVJbWFnZTsKKyAgICAgICAgUEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQyBkZXN0cm95SW1hZ2U7
CisgICAgICAgIFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJFMkRPRVNQUk9DIGltYWdlVGFyZ2V0
VGV4dHVyZTJET0VTOworICAgIH0gbV9lZ2w7CisKKyAgICBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19i
YWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1ZiogbV9leHBvcnRhYmxlOworCisgICAgc3RkOjp1bm9y
ZGVyZWRfbWFwPHVpbnQzMl90LCBpbnQzMl90PiBtX2V4cG9ydE1hcDsKKyAgICBzdGQ6OnBhaXI8
dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1f
cGVuZGluZ0ltYWdlIHsgfTsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdM
SW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fbG9ja2VkSW1hZ2UgeyB9OworCisgICAg
R1NvdXJjZSogbV91cGRhdGVTb3VyY2U7CisgICAgZ2ludDY0IG1fZnJhbWVSYXRlIHsgR19VU0VD
X1BFUl9TRUMgLyA2MCB9OworfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9Q
bGF0Zm9ybVdlYlZpZXdXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi45MTY4YTkzNGMxMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorCisjaW5jbHVkZSAiSGVhZGxlc3NW
aWV3QmFja2VuZC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0ltYWdlQ2Fpcm8uaD4KKyNpbmNsdWRl
IDxjYWlyby5oPgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK1BsYXRmb3JtV2ViVmlldzo6
UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBtX3dpbmRvd0lzS2V5KHRydWUpCisgICAg
LCBtX29wdGlvbnMob3B0aW9ucykKK3sKKyAgICBtX3dpbmRvdyA9IG5ldyBIZWFkbGVzc1ZpZXdC
YWNrZW5kOworICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChtX3dpbmRv
dy0+YmFja2VuZCgpLCBjb25maWd1cmF0aW9uKTsKK30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxh
dGZvcm1XZWJWaWV3KCkKK3sKKyAgICBkZWxldGUgbV93aW5kb3c7Cit9CisKK3ZvaWQgUGxhdGZv
cm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCwgdW5zaWduZWQsIFdlYlZpZXdTaXppbmdNb2Rl
KQoreworfQorCitXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdlKCkKK3sKKyAgICByZXR1
cm4gV0tWaWV3R2V0UGFnZShtX3ZpZXcpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9j
dXMoKQoreworfQorCitXS1JlY3QgUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dGcmFtZSgpCit7Cisg
ICAgcmV0dXJuIFdLUmVjdCB7IDAsIDAsIDEsIDEgfTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZp
ZXc6OnNldFdpbmRvd0ZyYW1lKFdLUmVjdCwgV2ViVmlld1NpemluZ01vZGUpCit7Cit9CisKK3Zv
aWQgUGxhdGZvcm1XZWJWaWV3OjpkaWRJbml0aWFsaXplQ2xpZW50cygpCit7Cit9CisKK3ZvaWQg
UGxhdGZvcm1XZWJWaWV3OjphZGRDaHJvbWVJbnB1dEZpZWxkKCkKK3sKK30KKwordm9pZCBQbGF0
Zm9ybVdlYlZpZXc6OnJlbW92ZUNocm9tZUlucHV0RmllbGQoKQoreworfQorCit2b2lkIFBsYXRm
b3JtV2ViVmlldzo6YWRkVG9XaW5kb3coKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6
cmVtb3ZlRnJvbVdpbmRvdygpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5k
b3dJc0tleShib29sIHdpbmRvd0lzS2V5KQoreworICAgIG1fd2luZG93SXNLZXkgPSB3aW5kb3dJ
c0tleTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6Om1ha2VXZWJWaWV3Rmlyc3RSZXNwb25k
ZXIoKQoreworfQorCitjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25h
cHNob3RJbWFnZSgpCit7CisgICAgeworICAgICAgICBzdHJ1Y3QgVGltZW91dFRpbWVyIHsKKyAg
ICAgICAgICAgIFRpbWVvdXRUaW1lcigpCisgICAgICAgICAgICAgICAgOiB0aW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZUaW1lb3V0VGltZXI6OmZpcmVkKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIHRpbWVyLnN0YXJ0T25lU2hvdCgxLjAgLyA2MCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIHZvaWQgZmlyZWQoKSB7IFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7IH0K
KyAgICAgICAgICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVvdXRUaW1lcj4gdGltZXI7CisgICAgICAg
IH0gdGltZW91dFRpbWVyOworCisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5ydW4oKTsKKyAgICB9
CisKKyAgICBjYWlyb19zdXJmYWNlX3QqIGltYWdlU3VyZmFjZSA9IG1fd2luZG93LT5jcmVhdGVT
bmFwc2hvdCgpOworICAgIHJldHVybiBpbWFnZVN1cmZhY2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1X
ZWJWaWV3OjpjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0KQoreworfQorCit2b2lkIFBs
YXRmb3JtV2ViVmlldzo6c2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKQoreworfQor
Citib29sIFBsYXRmb3JtV2ViVmlldzo6dmlld1N1cHBvcnRzT3B0aW9ucyhjb25zdCBUZXN0T3B0
aW9ucyYpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJW
aWV3Ojpmb3JjZVdpbmRvd0ZyYW1lc0NoYW5nZWQoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
VFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVy
V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGNjM2RlZGU5ODYKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxl
cldQRS5jcHAKQEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RD
b250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgewor
Cit2b2lkIFRlc3RDb250cm9sbGVyOjpub3RpZnlEb25lKCkKK3sKKyAgICBSdW5Mb29wOjptYWlu
KCkuc3RvcCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRIaWRkZW4oYm9vbCkKK3sK
K30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKwor
V0tQcmVmZXJlbmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygpCit7
CisgICAgcmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdlR3JvdXAuZ2V0KCkp
OworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCkKK3sKK30KKwor
c3RhdGljIEdNYWluQ29udGV4dCogdGhyZWFkRGVmYXVsdENvbnRleHQoKQoreworICAgIGlmIChH
TWFpbkNvbnRleHQqIGNvbnRleHQgPSBnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQo
KSkKKyAgICAgICAgcmV0dXJuIGNvbnRleHQ7CisgICAgcmV0dXJuIGdfbWFpbl9jb250ZXh0X2Rl
ZmF1bHQoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29s
JiBjb25kaXRpb24sIGRvdWJsZSB0aW1lb3V0KQoreworICAgIHN0cnVjdCBUaW1lb3V0VGltZXIg
eworICAgICAgICBUaW1lb3V0VGltZXIoKQorICAgICAgICAgICAgOiB0aW1lcihSdW5Mb29wOjpt
YWluKCksIHRoaXMsICZUaW1lb3V0VGltZXI6OmZpcmVkKQorICAgICAgICB7IH0KKworICAgICAg
ICB2b2lkIGZpcmVkKCkgeyBSdW5Mb29wOjptYWluKCkuc3RvcCgpOyB9CisgICAgICAgIFJ1bkxv
b3A6OlRpbWVyPFRpbWVvdXRUaW1lcj4gdGltZXI7CisgICAgfSB0aW1lb3V0VGltZXI7CisKKyAg
ICB0aW1lb3V0VGltZXIudGltZXIuc2V0UHJpb3JpdHkoR19QUklPUklUWV9ERUZBVUxUX0lETEUp
OworICAgIGlmICh0aW1lb3V0ID49IDApCisgICAgICAgIHRpbWVvdXRUaW1lci50aW1lci5zdGFy
dE9uZVNob3QodGltZW91dCk7CisKKyAgICBSdW5Mb29wOjptYWluKCkucnVuKCk7CisKKyAgICB0
aW1lb3V0VGltZXIudGltZXIuc3RvcCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybURpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYpCit7Cit9CisK
K3N0YXRpYyBjaGFyKiBnZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKGNvbnN0IGNo
YXIqIHZhcmlhYmxlTmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZh
cmlhYmxlTmFtZSk7CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IiVzIGVudmlyb25tZW50IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAg
ICAgICAgZXhpdCgwKTsKKyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVy
biBnX2ZpbGVuYW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7
CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdldEVudmlyb25tZW50VmFyaWFibGVBc1VURjhT
dHJpbmcoIlRFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSIpKTsKKyAgICBtX2lu
amVjdGVkQnVuZGxlUGF0aC5hZG9wdChXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhwYXRo
LmdldCgpKSk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemVUZXN0UGx1Z2lu
RGlyZWN0b3J5KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoUGxhdGZv
cm1XZWJWaWV3KikKK3sKK30KKworV0tDb250ZXh0UmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bUNvbnRleHQoKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitjb25zdCBjaGFyKiBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcoKQoreworICAgIHJldHVy
biBudWxscHRyOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZp
ZXdGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKK3sKK30KKwordm9pZCBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkKK3sKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6dXBkYXRlUGxhdGZvcm1TcGVjaWZpY1Rlc3RPcHRpb25z
Rm9yVGVzdChUZXN0T3B0aW9ucyYsIGNvbnN0IHN0ZDo6c3RyaW5nJikgY29uc3QKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dw
ZS9tYWluLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42Y2YyYjdmZjMyMQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKworaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIFdUUjo6VGVzdENvbnRyb2xsZXIgY29u
dHJvbGxlcihhcmdjLCBjb25zdF9jYXN0PGNvbnN0IGNoYXIqKj4oYXJndikpOworICAgIHJldHVy
biAwOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIgYi9Ub29s
cy9qaGJ1aWxkL2poYnVpbGQtd3JhcHBlcgppbmRleCBmNmM0MDNkMzFiMC4uZTNlZWNkZmNlODcg
MTAwNzU1Ci0tLSBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCisrKyBiL1Rvb2xzL2po
YnVpbGQvamhidWlsZC13cmFwcGVyCkBAIC0zMSw2ICszMSw4IEBAIGRlZiBkZXRlcm1pbmVfcGxh
dGZvcm0oKToKICAgICAgICAgcmV0dXJuICJlZmwiOwogICAgIGlmICctLWd0aycgaW4gc3lzLmFy
Z3Y6CiAgICAgICAgIHJldHVybiAiZ3RrIjsKKyAgICBpZiAnLS13cGUnIGluIHN5cy5hcmd2Ogor
ICAgICAgICByZXR1cm4gIndwZSIKICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBwbGF0Zm9ybSBz
cGVjaWZpZWQgZm9yIGpoYnVpbGQtd3JhcHBlci4nKQogCiB0cnk6CmRpZmYgLS1naXQgYS9Ub29s
cy93cGUvZ2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSBiL1Rvb2xzL3dw
ZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwLi43OGYxNDEwNjk4MgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5CkBAIC0w
LDAgKzEsNzYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGdsb2IKK2ltcG9ydCBvcwor
aW1wb3J0IHN5cworCitDT01QUkVTU0lCTEVfRVhURU5TSU9OUyA9IFsnLmh0bWwnLCAnLmpzJywg
Jy5jc3MnLCAnLnN2ZyddCitCQVNFX0RJUiA9ICdXZWJJbnNwZWN0b3JVSS8nCisKKworZGVmIGdl
dF9maWxlbmFtZXMoYXJncyk6CisgICAgZmlsZW5hbWVzID0gW10KKworICAgIGZvciBwYXR0ZXJu
IGluIGFyZ3M6CisgICAgICAgIHBhdGhzID0gZ2xvYi5nbG9iKHBhdHRlcm4pCisgICAgICAgIGZv
ciBmaWxlbmFtZSBpbiBwYXRoczoKKyAgICAgICAgICAgIGJhc2VfZGlyX2luZGV4ID0gZmlsZW5h
bWUucmZpbmQoQkFTRV9ESVIpCisgICAgICAgICAgICBpZiBiYXNlX2Rpcl9pbmRleCAhPSAtMToK
KyAgICAgICAgICAgICAgICBuYW1lID0gZmlsZW5hbWVbYmFzZV9kaXJfaW5kZXggKyBsZW4oQkFT
RV9ESVIpOl0KKyAgICAgICAgICAgICAgICAjIFRoZSByZXN1bHQgc2hvdWxkIHVzZSBmb3J3YXJk
IHNsYXNoZXMsIHRodXMgbWFrZSBzdXJlIGFueSBvcy1zcGVjaWZpYworICAgICAgICAgICAgICAg
ICMgc2VwYXJhdG9yLCBhZGRlZCBieSB0aGUgZ2xvYi5nbG9iKCkgY2FsbCwgaXMgcHJvcGVybHkg
cmVwbGFjZWQKKyAgICAgICAgICAgICAgICBpZiBvcy5zZXAgIT0gJy8nOgorICAgICAgICAgICAg
ICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKG9zLnNlcCwgJy8nKQorICAgICAgICAgICAgICAg
IGZpbGVuYW1lcy5hcHBlbmQobmFtZSkKKyAgICByZXR1cm4gZmlsZW5hbWVzCisKKworZGVmIGlz
X2NvbXByZXNzaWJsZShmaWxlbmFtZSk6CisgICAgcmV0dXJuIG9zLnBhdGguc3BsaXRleHQoZmls
ZW5hbWUpWzFdIGluIENPTVBSRVNTSUJMRV9FWFRFTlNJT05TCisKKworaWYgX19uYW1lX18gPT0g
Il9fbWFpbl9fIjoKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlw
dGlvbj0nR2VuZXJhdGUgYSBHUmVzb3VyY2VzIGZpbGUgZm9yIHRoZSBpbnNwZWN0b3IuJykKKyAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW91dHB1dCcsIG5hcmdzPSc/JywgdHlwZT1hcmdwYXJz
ZS5GaWxlVHlwZSgndycpLCBkZWZhdWx0PXN5cy5zdGRvdXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSd0aGUgb3V0cHV0IGZpbGUnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2Zp
bGVuYW1lcycsIG1ldGF2YXI9J0ZJTEVTJywgbmFyZ3M9JysnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0ndGhlIGxpc3Qgb2YgZmlsZXMgdG8gaW5jbHVkZScpCisKKyAgICBhcmdzID0g
cGFyc2VyLnBhcnNlX2FyZ3Moc3lzLmFyZ3ZbMTpdKQorCisgICAgYXJncy5vdXRwdXQud3JpdGUo
XAorICAgICIiIjw/eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVURi04Pz4KKyAgICA8Z3Jlc291
cmNlcz4KKyAgICAgICAgPGdyZXNvdXJjZSBwcmVmaXg9Ii9vcmcvd3BlL2luc3BlY3RvciI+Cisi
IiIpCisKKyAgICBmb3IgZmlsZW5hbWUgaW4gZ2V0X2ZpbGVuYW1lcyhhcmdzLmZpbGVuYW1lcyk6
CisgICAgICAgIGxpbmUgPSAnICAgICAgICAgICAgPGZpbGUnCisgICAgICAgIGlmIGlzX2NvbXBy
ZXNzaWJsZShmaWxlbmFtZSk6CisgICAgICAgICAgICBsaW5lICs9ICcgY29tcHJlc3NlZD0idHJ1
ZSInCisgICAgICAgIGlmICdJbWFnZXMvZ3RrLycgaW4gZmlsZW5hbWU6CisgICAgICAgICAgICBs
aW5lICs9ICcgYWxpYXM9IiVzIicgJSBmaWxlbmFtZS5yZXBsYWNlKCdndGsvJywgJycpCisgICAg
ICAgIGxpbmUgKz0gJz4lczwvZmlsZT5cbicgJSBmaWxlbmFtZQorCisgICAgICAgIGFyZ3Mub3V0
cHV0LndyaXRlKGxpbmUpCisKKyAgICBhcmdzLm91dHB1dC53cml0ZShcCisgICAgIiIiICAgIDwv
Z3Jlc291cmNlPgorPC9ncmVzb3VyY2VzPgorIiIiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2po
YnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJlZDc1NjI2NGEyCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwpAQCAtMCwwICsxLDI0NiBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIj8+Cis8IURPQ1RZUEUgbW9kdWxlc2V0IFNZU1RFTSAibW9kdWxlc2V0LmR0ZCI+Cis8
P3htbC1zdHlsZXNoZWV0IHR5cGU9InRleHQveHNsIiBocmVmPSJtb2R1bGVzZXQueHNsIj8+Cis8
bW9kdWxlc2V0PgorCisgIDxtZXRhbW9kdWxlIGlkPSJ3ZWJraXR3cGUtdGVzdGluZy1kZXBlbmRl
bmNpZXMiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4K
KyAgICAgIDxkZXAgcGFja2FnZT0ibGlic291cCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJjYWly
byIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJk
aWN0cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBh
Y2thZ2U9ImZyZWV0eXBlNiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id2F5bGFu
ZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1n
b29kIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhZCIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJnc3QtbGliYXYiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlIi8+CisgICAg
ICA8ZGVwIHBhY2thZ2U9IndwZS1tZXNhIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvbWV0
YW1vZHVsZT4KKworICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJl
Lm9yZy1taXJyb3IiCisgICAgICBocmVmPSJodHRwOi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJj
ZXMucmVkaGF0LmNvbS8iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRw
Lmdub21lLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBv
c2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgaHJl
Zj0iaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJh
bGwiIG5hbWU9ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWRl
c2t0b3Aub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9IndheWxhbmQu
ZnJlZWRlc2t0b3Aub3JnIgorICAgICAgaHJlZj0iaHR0cDovL3dheWxhbmQuZnJlZWRlc2t0b3Au
b3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9ImdpdCIgbmFtZT0iZ2l0aHViLmNvbSIKKyAgICAg
IGhyZWY9ImdpdDovL2dpdGh1Yi5jb20iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIg
bmFtZT0iZ3N0cmVhbWVyIgorICAgICAgaHJlZj0iaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3Rv
cC5vcmcvc3JjLyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJ4a2Jjb21t
b24ub3JnIgorICAgICAgaHJlZj0iaHR0cDovL3hrYmNvbW1vbi5vcmciLz4KKyAgPHJlcG9zaXRv
cnkgdHlwZT0idGFyYmFsbCIgbmFtZT0ic2F2YW5uYWguZ251Lm9yZyIKKyAgICAgIGhyZWY9Imh0
dHA6Ly9kb3dubG9hZC5zYXZhbm5haC5nbnUub3JnL3JlbGVhc2VzLyIvPgorCisgIDxhdXRvdG9v
bHMgaWQ9ImxpYmZmaSIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVs
ZT0ibGliZmZpL2xpYmZmaS0zLjAuMTAudGFyLmd6IiB2ZXJzaW9uPSIzLjAuMTAiCisgICAgICAg
ICAgICAgcmVwbz0ic291cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgICAgICAgIGhhc2g9InNo
YTI1NjpmMDFlYjkwMjdlOWViNTZhZWFlZWY2MzY2NDk4Nzc3NTZkNDc1ZDcxNGVmOGI0N2Y2Mjdm
NjViYzVmM2I0OTJmIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIi
CisgICAgICAgICAgICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9n
ZW5hcmdzPSItLWRpc2FibGUtZHRyYWNlIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRl
cCBwYWNrYWdlPSJsaWJmZmkiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1v
ZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2dsaWIvMi40NC9nbGliLTIuNDQuMS50YXIueHoiIHZl
cnNpb249IjIuNDQuMSIKKyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAg
ICAgICBoYXNoPSJzaGEyNTY6ODgxMWRlYWNhZjhhNTAzZDBhOWI3MDE3NzdlYTA3OWNhNmE0Mjc3
YmUxMGUzZDczMGQyMTEyNzM1ZDVlY2EwNyI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi13YXJu
aW5nLWZpeC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnZGF0ZS1zdXBw
cmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaCIgc3RyaXA9IjEiLz4KKyAg
ICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYi1uZXR3
b3JraW5nIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+
CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291
cmNlcy9nbGliLW5ldHdvcmtpbmcvMi40Mi9nbGliLW5ldHdvcmtpbmctMi40Mi4wLnRhci54eiIg
dmVyc2lvbj0iMi40Mi4wIgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAg
ICAgICAgIGhhc2g9InNoYTI1NjozMDRkZDllNGMwY2VkNjkwOTQzMDBlMGI5ZTY2Y2QyZWFhZTcx
NjFiOWZjMzE4NjUzNmQxMTQ1ODY3N2Q4MjBkIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRv
dG9vbHMgaWQ9ImxpYnNvdXAiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1n
bm9tZSAtLWRpc2FibGUtaW50cm9zcGVjdGlvbiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZ2xpYi1uZXR3b3JraW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+Cisg
ICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNDgvbGlic291
cC0yLjQ4LjAudGFyLnh6IiB2ZXJzaW9uPSIyLjQ4LjAiCisgICAgICAgICAgICByZXBvPSJmdHAu
Z25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmVhMzRkZDY0ZmU0NDM0MzQ0NWRh
ZjZkZDY5MGQwNjkxZTlkOTczNDY4ZGU0NDg3OGRhOTczNzFjMTZkODk3ODQiLz4KKyAgPC9hdXRv
dG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZm9udHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVp
bGRzPSJubyIKKyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2gg
cmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZm9udHMu
Z2l0IiBjaGVja291dGRpcj0id2Via2l0Z3RrLXRlc3QtZm9udHMiIHRhZz0iMC4wLjUiLz4KKyAg
PC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZGljdHMiIHN1cHBvcnRzLW5vbi1zcmNk
aXItYnVpbGRzPSJubyIKKyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxi
cmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3Qt
ZGljdHMuZ2l0IiBjaGVja291dGRpcj0id2Via2l0Z3RrLXRlc3QtZGljdHMiIHRhZz0iMC4wLjEi
Lz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZnJlZXR5cGU2IiBhdXRvZ2Vu
LXNoPSJjb25maWd1cmUiPgorICAgIDxicmFuY2ggbW9kdWxlPSJmcmVldHlwZS9mcmVldHlwZS0y
LjQuMTEudGFyLmJ6MiIgdmVyc2lvbj0iMi40LjExIgorICAgICAgICAgICAgcmVwbz0ic2F2YW5u
YWguZ251Lm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjplZjlkMGJjYjY0NjQ3ZDllNTEy
NWRjNzUzNGQ3Y2EzNzFjOTgzMTBmZWM4NzY3N2M0MTBmMzk3ZjcxZmZiZTNmIgorICAgICAgICAg
ICAgbWQ1c3VtPSJiOTM0MzU0ODg5NDI0ODZjOGQwY2EyMmU4Zjc2ODAzNCI+CisgICAgICA8cGF0
Y2ggZmlsZT0iZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2gi
IHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9v
bHMgaWQ9ImZvbnRjb25maWciIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVuZGVu
Y2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNp
ZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9mb250
Y29uZmlnLTIuMTEuMS50YXIuZ3oiIHZlcnNpb249IjIuMTEuMSIKKyAgICAgICAgICAgIHJlcG89
ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjpiNmIwNjZjN2RjZTNm
NDM2ZmRjMGRmYmFlOWQzNjEyMmIzODA5NGY0ZjUzYmQ4ZGZmZDQ1ZTE5NWIwNTQwZDhkIgorICAg
ICAgICAgICAgbWQ1c3VtPSJlNzVlMzAzYjRmNzc1NmMyYjE2MjAzYTU3YWM4N2ViYSI+CisgICAg
PC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBh
dXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgIGF1dG9nZW5hcmdzPSItLXdpdGgtY2Fpcm89
bm8gLS13aXRoLWdsaWI9bm8gLS13aXRoLWZyZWV0eXBlPXllcyI+CisgICAgPGRlcGVuZGVuY2ll
cz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+
CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enot
MS4zLjMudGFyLmJ6MiIKKyAgICAgICAgICAgIHZlcnNpb249IjEuMy4zIgorICAgICAgICAgICAg
Y2hlY2tvdXRkaXI9ImhhcmZidXp6LTEuMy4zIgorICAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0
b3Aub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjI2MjA5ODcxMTVhNDEyMmI0NzMyMTYx
MGRjY2JjYzE4ZjdmMTIxMTE1ZmQ3Yjg4ZGM4YTY5NWM4YjY2Y2IzYzkiCisgICAgICAgICAgICBt
ZDVzdW09Ijk3YWUxNWE3MmE5M2YxZjI3MzI0YTJiOGQ5YmQzYjFkIj4KKyAgICA8L2JyYW5jaD4K
KyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0icGl4bWFuIgorICAgICAgICAgICAg
IGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1lbmFi
bGUtZ3RrPW5vIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvcGl4bWFuLTAuMzIuNi50
YXIuZ3oiIHZlcnNpb249IjAuMzIuNiIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mu
b3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjNkZmVkMTNiODA2MGVhZGFiZjBhNDk0NWM3
MDQ1Yjc3OTNjYzdlM2U5MTBlNzQ4YThiYjBmMGRjM2U3OTQ5MDQiLz4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0iY2Fpcm8iIGF1dG9nZW5hcmdzPSItLWVuYWJsZS1lZ2w9eWVz
IC0tZW5hYmxlLWdsZXN2MiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iZ2xpYiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVw
IHBhY2thZ2U9InBpeG1hbiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9k
dWxlPSJyZWxlYXNlcy9jYWlyby0xLjE0LjgudGFyLnh6IiB2ZXJzaW9uPSIxLjE0LjgiCisgICAg
ICAgICAgICByZXBvPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTE6
YzZmN2I5OTk4NmY5M2M5ZGY3ODY1M2MzZTZhM2I1MDQzZjY1MTQ1ZSI+CisgICAgICA8cGF0Y2gg
ZmlsZT0iY2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoIiBzdHJp
cD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlk
PSJ4a2Jjb21tb24iPgorICAgIDxicmFuY2ggbW9kdWxlPSJkb3dubG9hZC9saWJ4a2Jjb21tb24t
MC41LjAudGFyLnh6IiB2ZXJzaW9uPSIwLjUuMCIKKyAgICAgICAgICAgIHJlcG89InhrYmNvbW1v
bi5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGExOjcxMjc5OTNiZmI2OWUxM2NkZmYyNWZiOGIz
YzhmMjZjZTZiZTViZmEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0id2F5
bGFuZCIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1kb2N1bWVudGF0aW9uIj4KKyAgICA8YnJhbmNo
IG1vZHVsZT0icmVsZWFzZXMvd2F5bGFuZC0xLjkuMC50YXIueHoiIHZlcnNpb249IjEuOS4wIgor
ICAgICAgICAgICAgcmVwbz0id2F5bGFuZC5mcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBo
YXNoPSJzaGEyNTY6OWM4NzcwNzIwYWEwMDM0NDc5NzM1ZjU4YTRkYzRjYTliMTcyZWNmZWRlMjhm
NTEzNDMxMmUxMzViNzMwMWVmYSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlk
PSJvcmMiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmln
dXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0ib3JjL29yYy0wLjQuMTcudGFyLmd6IiB2ZXJzaW9u
PSIwLjQuMTciCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNo
PSJzaGEyNTY6NGZjN2NjYTQ4YzU5ZmZmMjNhZmVlNzhmYjY0MmNkYmRlMDAxZjU2NDAxYzhmNDdi
OTVhMTY1NzhkMWQ1ZDdlOCIKKyAgICAgICAgICAgIG1kNXN1bT0iYWYxYmYzZGFiOWU2OWYzYzM2
ZjM4OTI4NWUyYTEyYTEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0
cmVhbWVyIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3Rr
LWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ib3JjIi8+Cisg
ICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdHJlYW1lci9nc3RyZWFt
ZXItJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0i
Z3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjVhMzcyMmZiOTMwMmRkOTc3YzE3
Y2VkNDI0MDI5M2RjNzc3Y2I3MTZkYzk4YzhjY2E2M2Q3NWMyN2U1ZTMxMDciCisgICAgICAgICAg
ICBtZDVzdW09IjcxMWFkYTc5YjYzZTQ3YWM5NmFkYjRlNTQ0NGRjOTA4Ij4KKyAgICAgIDxwYXRj
aCBmaWxlPSJnc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3Ry
ZWFtLWlmLXRoZS0ucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWJhc2UiCisgICAgICAgICAgICAg
YXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2Fi
bGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAg
ICA8ZGVwIHBhY2thZ2U9ImdzdHJlYW1lciIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxi
cmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9u
fS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgor
ICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjE1YTlkZTk4NWNkMjY1YzM0NGUzNTlmNWIxOTM0N2Rm
NDAyMWI3NjExZWQyYzJkOTE5MTdjYjkwMGYyZmFkNmYiCisgICAgICAgICAgICBtZDVzdW09IjU0
MjFlZGZlYjc0NzlkNWY1Nzc2ZTkxN2JhMzBlMjRlIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxh
dXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWdvb2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0
b2dlbmFyZ3M9Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3Rr
LWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdp
bnMtYmFzZSIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorCisgICAgPGJyYW5jaCBtb2R1bGU9Imdz
dC1wbHVnaW5zLWdvb2QvZ3N0LXBsdWdpbnMtZ29vZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lv
bj0iMS44LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNo
PSJzaGEyNTY6MjEwM2UxNzkyMWQ2Nzg5NGU4MmVhZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYy
NWJmYmM4M2ZmZWFkMDk3MiIKKyAgICAgICAgICAgIG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4
YTY0YzMxMmRlMDNkNDciPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNl
LXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZp
bGU9ImdzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1m
aXJzdC1tb29mLWZvci1mci5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9h
dXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtYmFkIiBhdXRvZ2VuLXNo
PSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0
ay1kb2MgLS1kaXNhYmxlLWludHJvc3BlY3Rpb24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAg
ICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4K
KyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3Zl
cnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFt
ZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MGJiZDU4ZjM2MzczNGZjMGM0YTYyMGIyZDZm
YjAxZDQyN2ZkYWZkYmRhN2I5MGI0ZTE1ZDAzYjc1MWNhNDBmNSIKKyAgICAgICAgICAgIG1kNXN1
bT0iZTUwOGRhMmE4YTVjM2QxMjI2NGZlMzQxNWJlMmY0NTEiPgorICAgICAgPHBhdGNoIGZpbGU9
ImdzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIiBz
dHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNj
ZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2giIHN0
cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMg
aWQ9ImdzdC1saWJhdiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRo
LWxpYmF2LWV4dHJhLWNvbmZpZ3VyZT0nLS1kaXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9j
Ij4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1i
YXNlIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJh
di9nc3QtbGliYXYtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAg
ICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjQ0YTQ5MTA4YzM1
MzFiNWFjNGYzNDZhMjI0N2NkN2ZiYWZiMGU4YWIzOTQzOTRjYjZkNzVhNzAzMDBiMzg5MzMiCisg
ICAgICAgICAgICBtZDVzdW09Ijg1ZjFhMDQ3NjA2Y2E5ZTA4NDkzZDdiNmI0MmRmNDYyIi8+Cisg
IDwvYXV0b3Rvb2xzPgorCisgIDxjbWFrZSBpZD0id3BlIj4KKyAgICA8YnJhbmNoIHJlcG89Imdp
dGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLmdpdCIK
KyAgICAgICAgICAgIHRhZz0iNWUyYTI5ZDJjY2M2MzdmNzEyMmJhNzJjMWQ2MmVmNjY5YjQyZjA1
YyIgLz4KKyAgPC9jbWFrZT4KKworICA8Y21ha2UgaWQ9IndwZS1tZXNhIj4KKyAgICA8ZGVwZW5k
ZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9
ImdsaWIiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9IndheWxhbmQiIC8+CisgICAgICA8ZGVwIHBh
Y2thZ2U9InhrYmNvbW1vbiIgLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIHJl
cG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5k
LW1lc2EuZ2l0IgorICAgICAgICAgICAgdGFnPSI5OTQ1NzUzZjkzMzdmZDY3YWYwOTgyMThiNzgx
OTMzN2FiYTIxMTQxIiAvPgorICA8L2NtYWtlPgorPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9U
b29scy93cGUvamhidWlsZHJjIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTJmYTg4ZDcyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy93cGUvamhidWlsZHJjCkBAIC0wLDAgKzEsMjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhv
bgorIyBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisj
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBzeXMKK2ltcG9y
dCBvcworCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShf
X2ZpbGVfXyksICIuLi9qaGJ1aWxkIikgKQoraW1wb3J0IGpoYnVpbGRyY19jb21tb24KK2poYnVp
bGRyY19jb21tb24uaW5pdChnbG9iYWxzKCksICJ3cGUiKQorIyBFbmFibGUgYnVpbGRkaXIgIT0g
c3JjZGlyIGJ1aWxkcy4KK2J1aWxkcm9vdCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUo
Y2hlY2tvdXRyb290KSwgIkJ1aWxkIikKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2Nh
aXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaCBiL1Rvb2xzL3dwZS9w
YXRjaGVzL2NhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDQ2ZGY0NWI2ZjMKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3It
ZWdsLXN1cmZhY2UucGF0Y2gKQEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gYTRlMGRhZjE4YmY4MjUy
NDYzZjY2ZDc1ZWVmNDk5Y2ZmZmEzMjU2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206
IFphbiBEb2JlcnNlayA8emRvYmVyc2VrQGlnYWxpYS5jb20+CitEYXRlOiBNb24sIDE3IE5vdiAy
MDE0IDAxOjIzOjE1IC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBjYWlyb19lZ2xfZGV2aWNl
X2NyZWF0ZV9mb3JfZWdsX3N1cmZhY2UoKS4KKworLS0tCisgc3JjL2NhaXJvLWVnbC1jb250ZXh0
LmMgfCA2NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t
Cisgc3JjL2NhaXJvLWdsLmggICAgICAgICAgfCAgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDYw
IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8t
ZWdsLWNvbnRleHQuYyBiL3NyYy9jYWlyby1lZ2wtY29udGV4dC5jCitpbmRleCBiZjcwNGM2Li5i
ZTJiY2Y5IDEwMDY0NAorLS0tIGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMKKysrKyBiL3NyYy9j
YWlyby1lZ2wtY29udGV4dC5jCitAQCAtNDgsNyArNDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fp
cm9fZWdsX2NvbnRleHQgeworICAgICBFR0xEaXNwbGF5IGRpc3BsYXk7CisgICAgIEVHTENvbnRl
eHQgY29udGV4dDsKKyAKKy0gICAgRUdMU3VyZmFjZSBkdW1teV9zdXJmYWNlOworKyAgICBFR0xT
dXJmYWNlIHN1cmZhY2U7CisrICAgIGNhaXJvX2Jvb2xfdCBpc19kdW1teV9zdXJmYWNlOworIAor
ICAgICBFR0xDb250ZXh0IHByZXZpb3VzX2NvbnRleHQ7CisgICAgIEVHTFN1cmZhY2UgcHJldmlv
dXNfc3VyZmFjZTsKK0BAIC03NCw3ICs3NSw3IEBAIF9lZ2xfZ2V0X2N1cnJlbnRfc3VyZmFjZSAo
Y2Fpcm9fZWdsX2NvbnRleHRfdCAqY3R4KQorIHsKKyAgICAgaWYgKGN0eC0+YmFzZS5jdXJyZW50
X3RhcmdldCA9PSBOVUxMIHx8CisgICAgICAgICBfY2Fpcm9fZ2xfc3VyZmFjZV9pc190ZXh0dXJl
IChjdHgtPmJhc2UuY3VycmVudF90YXJnZXQpKSB7CistCXJldHVybiAgY3R4LT5kdW1teV9zdXJm
YWNlOworKwlyZXR1cm4gIGN0eC0+c3VyZmFjZTsKKyAgICAgfQorIAorICAgICByZXR1cm4gKChj
YWlyb19lZ2xfc3VyZmFjZV90ICopIGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCktPmVnbDsKK0BA
IC0xNTEsOCArMTUyLDggQEAgX2VnbF9kZXN0cm95ICh2b2lkICphYnN0cmFjdF9jdHgpCisgCisg
ICAgIGVnbE1ha2VDdXJyZW50IChjdHgtPmRpc3BsYXksCisgCQkgICAgRUdMX05PX1NVUkZBQ0Us
IEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CistICAgIGlmIChjdHgtPmR1bW15X3N1
cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4
LT5kaXNwbGF5LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKyAgICBpZiAoY3R4LT5pc19kdW1teV9z
dXJmYWNlICYmIGN0eC0+c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkKKysgICAgICAgIGVnbERl
c3Ryb3lTdXJmYWNlIChjdHgtPmRpc3BsYXksIGN0eC0+c3VyZmFjZSk7CisgfQorIAorIHN0YXRp
YyBjYWlyb19ib29sX3QKK0BAIC0yMTgsMTMgKzIxOSwxNCBAQCBjYWlyb19lZ2xfZGV2aWNlX2Ny
ZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsKQorIAllZ2xRdWVyeUNvbnRleHQg
KGRweSwgZWdsLCBFR0xfQ09ORklHX0lELCAmY29uZmlnX2F0dHJpYnNbMV0pOworIAllZ2xDaG9v
c2VDb25maWcgKGRweSwgY29uZmlnX2F0dHJpYnMsICZjb25maWcsIDEsICZudW1Db25maWdzKTsK
KyAKKy0JY3R4LT5kdW1teV9zdXJmYWNlID0gZWdsQ3JlYXRlUGJ1ZmZlclN1cmZhY2UgKGRweSwg
Y29uZmlnLCBhdHRyaWJzKTsKKy0JaWYgKGN0eC0+ZHVtbXlfc3VyZmFjZSA9PSBOVUxMKSB7Cisr
CWN0eC0+aXNfZHVtbXlfc3VyZmFjZSA9IFRSVUU7CisrCWN0eC0+c3VyZmFjZSA9IGVnbENyZWF0
ZVBidWZmZXJTdXJmYWNlIChkcHksIGNvbmZpZywgYXR0cmlicyk7CisrCWlmIChjdHgtPnN1cmZh
Y2UgPT0gTlVMTCkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xf
Y29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9Cisg
CistCWlmICghZWdsTWFrZUN1cnJlbnQgKGRweSwgY3R4LT5kdW1teV9zdXJmYWNlLCBjdHgtPmR1
bW15X3N1cmZhY2UsIGVnbCkpIHsKKysJaWYgKCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBjdHgtPnN1
cmZhY2UsIGN0eC0+c3VyZmFjZSwgZWdsKSkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJl
dHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19N
RU1PUlkpOworIAl9CitAQCAtMjM4LDggKzI0MCw1NCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0
ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsKQorIAorICAgICBzdGF0dXMgPSBfY2Fp
cm9fZ2xfY29udGV4dF9pbml0ICgmY3R4LT5iYXNlKTsKKyAgICAgaWYgKHVubGlrZWx5IChzdGF0
dXMpKSB7CistCWlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistCSAg
ICBlZ2xEZXN0cm95U3VyZmFjZSAoZHB5LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKwlpZiAoY3R4
LT5zdXJmYWNlICE9IEVHTF9OT19TVVJGQUNFKQorKwkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRw
eSwgY3R4LT5zdXJmYWNlKTsKKysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250
ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVzKTsKKysgICAgfQorKworKyAgICBlZ2xNYWtlQ3Vy
cmVudCAoZHB5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhU
KTsKKysKKysgICAgcmV0dXJuICZjdHgtPmJhc2UuYmFzZTsKKyt9CisrCisrY2Fpcm9fZGV2aWNl
X3QgKgorK2NhaXJvX2VnbF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxh
eSBkcHksIEVHTENvbnRleHQgZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpCisreworKyAgICBjYWly
b19lZ2xfY29udGV4dF90ICpjdHg7CisrICAgIGNhaXJvX3N0YXR1c190IHN0YXR1czsKKysKKysg
ICAgY3R4ID0gY2FsbG9jICgxLCBzaXplb2YgKGNhaXJvX2VnbF9jb250ZXh0X3QpKTsKKysgICAg
aWYgKHVubGlrZWx5IChjdHggPT0gTlVMTCkpCisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9j
cmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworKworKyAgICBjdHgtPmRp
c3BsYXkgPSBkcHk7CisrICAgIGN0eC0+Y29udGV4dCA9IGVnbDsKKysgICAgY3R4LT5zdXJmYWNl
ID0gc3VyZmFjZTsKKysKKysgICAgY3R4LT5iYXNlLmFjcXVpcmUgPSBfZWdsX2FjcXVpcmU7Cisr
ICAgIGN0eC0+YmFzZS5yZWxlYXNlID0gX2VnbF9yZWxlYXNlOworKyAgICBjdHgtPmJhc2UubWFr
ZV9jdXJyZW50ID0gX2VnbF9tYWtlX2N1cnJlbnQ7CisrICAgIGN0eC0+YmFzZS5zd2FwX2J1ZmZl
cnMgPSBfZWdsX3N3YXBfYnVmZmVyczsKKysgICAgY3R4LT5iYXNlLmRlc3Ryb3kgPSBfZWdsX2Rl
c3Ryb3k7CisrCisrICAgIC8qIFdlIGFyZSBhYm91dCB0aGUgY2hhbmdlIHRoZSBjdXJyZW50IHN0
YXRlIG9mIEVHTCwgc28gd2Ugc2hvdWxkCisrICAgICAqIHF1ZXJ5IHRoZSBwcmUtZXhpc3Rpbmcg
c3VyZmFjZSBub3cgaW5zdGVhZCBvZiBsYXRlci4gKi8KKysgICAgX2VnbF9xdWVyeV9jdXJyZW50
X3N0YXRlIChjdHgpOworKworKwlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHksIHN1cmZhY2UsIHN1
cmZhY2UsIGVnbCkpIHsKKysJICAgIGZyZWUgKGN0eCk7CisrCSAgICByZXR1cm4gX2NhaXJvX2ds
X2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKysJfQor
KworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfZGlzcGF0Y2hfaW5pdCAoJmN0eC0+YmFzZS5kaXNw
YXRjaCwgZWdsR2V0UHJvY0FkZHJlc3MpOworKyAgICBpZiAodW5saWtlbHkgKHN0YXR1cykpIHsK
KysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJv
ciAoc3RhdHVzKTsKKysgICAgfQorKworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9p
bml0ICgmY3R4LT5iYXNlKTsKKysgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CisgCWZyZWUg
KGN0eCk7CisgCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1
cyk7CisgICAgIH0KK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZ2wuaCBiL3NyYy9jYWlyby1nbC5o
CitpbmRleCA5ZmQ3NjA4Li5hOTRmNTgxIDEwMDY0NAorLS0tIGEvc3JjL2NhaXJvLWdsLmgKKysr
KyBiL3NyYy9jYWlyby1nbC5oCitAQCAtMTMyLDYgKzEzMiw5IEBAIGNhaXJvX2dsX3N1cmZhY2Vf
Y3JlYXRlX2Zvcl9kYyAoY2Fpcm9fZGV2aWNlX3QJCSpkZXZpY2UsCisgY2Fpcm9fcHVibGljIGNh
aXJvX2RldmljZV90ICoKKyBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHks
IEVHTENvbnRleHQgZWdsKTsKKyAKKytjYWlyb19wdWJsaWMgY2Fpcm9fZGV2aWNlX3QgKgorK2Nh
aXJvX2VnbF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVH
TENvbnRleHQgZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpOworKworIGNhaXJvX3B1YmxpYyBjYWly
b19zdXJmYWNlX3QgKgorIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9lZ2wgKGNhaXJvX2Rl
dmljZV90CSpkZXZpY2UsCisgCQkJCSBFR0xTdXJmYWNlCSBlZ2wsCmRpZmYgLS1naXQgYS9Ub29s
cy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxp
dGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmln
LUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0
Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZTBhNTQxZGJjCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVp
cmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoCkBAIC0wLDAg
KzEsMzAgQEAKK0Zyb20gNzA2OWQ3MTdlOTgyYWRjZjhlMWQzMDBjYmQxMGVlYzYzMjJhNjVjOSBN
b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFraXJhIFRBR09IIDxha2lyYUB0YWdvaC5v
cmc+CitEYXRlOiBTdW4sIDIyIEFwciAyMDEyIDIxOjQwOjQ0ICswOTAwCitTdWJqZWN0OiBbUEFU
Q0hdIEMrKzExIHJlcXVpcmVzIGEgc3BhY2UgYmV0d2VlbiBsaXRlcmFsIGFuZCBpZGVudGlmaWVy
CisKK1JlcG9ydGVkIGJ5IEJ1Z2FuaW5pCistLS0KKyBmb250Y29uZmlnL2ZvbnRjb25maWcuaCB8
IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo
LSkKKworZGlmZiAtLWdpdCBhL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oIGIvZm9udGNvbmZpZy9m
b250Y29uZmlnLmgKK2luZGV4IDBlMmNhNTAuLmIyN2NjYjUgMTAwNjQ0CistLS0gYS9mb250Y29u
ZmlnL2ZvbnRjb25maWcuaAorKysrIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK0BAIC0xMTIs
OSArMTEyLDkgQEAgdHlwZWRlZiBpbnQJCUZjQm9vbDsKKyAjZGVmaW5lIEZDX0RFQ09SQVRJVkUJ
ICAgICJkZWNvcmF0aXZlIgkvKiBCb29sIC0gdHJ1ZSBpZiBzdHlsZSBpcyBhIGRlY29yYXRpdmUg
dmFyaWFudCAqLworICNkZWZpbmUgRkNfTENEX0ZJTFRFUgkgICAgImxjZGZpbHRlciIJCS8qIElu
dCAqLworIAorLSNkZWZpbmUgRkNfQ0FDSEVfU1VGRklYCQkgICAgIi5jYWNoZS0iRkNfQ0FDSEVf
VkVSU0lPTgorLSNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iRkNf
Q0FDSEVfVkVSU0lPTgorLSNkZWZpbmUgRkNfVVNFUl9DQUNIRV9GSUxFCSAgICAiLmZvbnRzLmNh
Y2hlLSJGQ19DQUNIRV9WRVJTSU9OCisrI2RlZmluZSBGQ19DQUNIRV9TVUZGSVgJCSAgICAiLmNh
Y2hlLSIgRkNfQ0FDSEVfVkVSU0lPTgorKyNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJm
b250cy5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKysjZGVmaW5lIEZDX1VTRVJfQ0FDSEVfRklM
RQkgICAgIi5mb250cy5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKyAKKyAvKiBBZGp1c3Qgb3V0
bGluZSByYXN0ZXJpemVyICovCisgI2RlZmluZSBGQ19DSEFSX1dJRFRICSAgICAiY2hhcndpZHRo
IgkvKiBJbnQgKi8KKy0tIAorMS44LjMuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hl
cy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCBiL1Rvb2xz
L3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBh
dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZmZlNzZiNGVmMAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1
ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gZTA0Njkz
NzJiZTM4NzBhNWFkNjBiMmM0NTg2ZTljMjgxMzU3YmQyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw
MDEKK0Zyb206IFdlcm5lciBMZW1iZXJnIDx3bEBnbnUub3JnPgorRGF0ZTogVHVlLCAyMiBKYW4g
MjAxMyAxMDowNzowNyArMDAwMAorU3ViamVjdDogW3RydWV0eXBlXSBGaXggZm9udCBoZWlnaHQu
CisKKyogc3JjL3RydWV0eXBlL3R0b2Jqcy5jICh0dF9zaXplX3Jlc2V0KTogVGhlIFdpbmRvd3Mg
cmVuZGVyaW5nCitlbmdpbmUgdXNlcyByb3VuZGVkIHZhbHVlcyBvZiB0aGUgYXNjZW5kZXIgYW5k
IGRlc2NlbmRlciB0byBjb21wdXRlCit0aGUgVHJ1ZVR5cGUgZm9udCBoZWlnaHQuCistLS0KK2Rp
ZmYgLS1naXQgYS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMK
K2luZGV4IGM2MWIyMTguLjU5MGI2NmMgMTAwNjQ0CistLS0gYS9zcmMvdHJ1ZXR5cGUvdHRvYmpz
LmMKKysrKyBiL3NyYy90cnVldHlwZS90dG9ianMuYworQEAgLTQsNyArNCw3IEBACisgLyogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKi8KKyAvKiAgICBPYmplY3RzIG1hbmFnZXIgKGJvZHkpLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCistLyogIENvcHlyaWdodCAxOTk2LTIwMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKysvKiAgQ29weXJpZ2h0IDE5OTYtMjAxMyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICBE
YXZpZCBUdXJuZXIsIFJvYmVydCBXaWxoZWxtLCBhbmQgV2VybmVyIExlbWJlcmcuICAgICAgICAg
ICAgICAgICAgICAgICovCisgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgVGhpcyBmaWxlIGlz
IHBhcnQgb2YgdGhlIEZyZWVUeXBlIHByb2plY3QsIGFuZCBtYXkgb25seSBiZSB1c2VkLCAgICAg
ICAqLworQEAgLTExNzcsMTEgKzExNzcsMTIgQEAKKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRf
TXVsRml4KCBmYWNlLT5yb290LmFzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAg
ICBtZXRyaWNzLT5kZXNjZW5kZXIgPQorICAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgo
IGZhY2UtPnJvb3QuZGVzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKy0gICAgICBtZXRy
aWNzLT5oZWlnaHQgPQorLSAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJv
b3QuaGVpZ2h0LCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5tYXhfYWR2
YW5jZSA9CisgICAgICAgICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5tYXhf
YWR2YW5jZV93aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNz
LT54X3NjYWxlICkgKTsKKysKKysgICAgICAvKiB0aGUgaGVpZ2h0IGlzIGRlcml2ZWQgZnJvbSBy
b3VuZGVkIHZhbHVlcyAqLworKyAgICAgIG1ldHJpY3MtPmhlaWdodCA9IG1ldHJpY3MtPmFzY2Vu
ZGVyIC0gbWV0cmljcy0+ZGVzY2VuZGVyOworICAgICB9CisgCisgICAgIC8qIGNvbXB1dGUgbmV3
IHRyYW5zZm9ybWF0aW9uICovCistLQorY2dpdCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvVG9vbHMv
d3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcu
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxp
dGVyYWwtd2FybmluZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uOTBjYjk1MWExOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0
ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaApAQCAtMCwwICsx
LDI5IEBACitGcm9tIDNhN2VmZDU5OGQzOTM2NmMyYzlkZTBkZWYyZmRmYjM1ZTVlOWYyYTEgTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBjb3lwdSA8Y295cHVAc2RmLm9yZz4KK0RhdGU6
IE1vbiwgOCBGZWIgMjAxNiAwMDowNjowNiArMDIwMAorU3ViamVjdDogW1BBVENIIDEvMV0gZ2Rh
dGU6IFN1cHByZXNzIHN0cmluZyBmb3JtYXQgbGl0ZXJhbCB3YXJuaW5nCisKK05ld2VyIHZlcnNp
b25zIG9mIEdDQyBlbWl0IGFuIGVycm9yIGhlcmUsIGJ1dCB3ZSBrbm93IGl0J3Mgc2FmZS4KK2h0
dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLzc2MTU1MAorLS0tCisgZ2xpYi9nZGF0ZS5jIHwgMyAr
KysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nbGli
L2dkYXRlLmMgYi9nbGliL2dkYXRlLmMKK2luZGV4IDRhZWNlMDIuLmNkYzczNWMgMTAwNjQ0Cist
LS0gYS9nbGliL2dkYXRlLmMKKysrKyBiL2dsaWIvZ2RhdGUuYworQEAgLTI0OTQsNyArMjQ5NCwx
MCBAQCBnX2RhdGVfc3RyZnRpbWUgKGdjaGFyICAgICAgICpzLAorICAgICAgICAqIHJlY29nbml6
ZSB3aGV0aGVyIHN0cmZ0aW1lIGFjdHVhbGx5IGZhaWxlZCBvciBqdXN0IHJldHVybmVkICIiLgor
ICAgICAgICAqLworICAgICAgIHRtcGJ1ZlswXSA9ICdcMSc7CisrICAgICAgI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2Zvcm1hdC1ub25saXRlcmFsIgorICAgICAgIHRtcGxlbiA9IHN0cmZ0aW1lICh0bXBidWYsIHRt
cGJ1ZnNpemUsIGxvY2FsZV9mb3JtYXQsICZ0bSk7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBwb3AKKyAKKyAgICAgICBpZiAodG1wbGVuID09IDAgJiYgdG1wYnVmWzBdICE9ICdcMCcp
CisgICAgICAgICB7CistLSAKKzIuNy4wCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVz
L2dsaWItd2FybmluZy1maXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmct
Zml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZmFmNGQx
MWYyYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1m
aXgucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorRnJvbSA5ZjkwZWU1ZWVjY2Q0N2YzOWM3YTAzZGNk
Nzg2YjEyNWExOWMxOTVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFlbCBD
YXRhbnphcm8gPG1jYXRhbnphcm9AZ25vbWUub3JnPgorRGF0ZTogU2F0LCAxMyBKdW4gMjAxNSAy
Mjo1MjozMyAtMDUwMAorU3ViamVjdDogW1BBVENIXSBnZW5tYXJzaGFsOiBzaWxlbmNlIHJlZ2lz
dGVyIHN0b3JhZ2UgY2xhc3Mgd2FybmluZ3MKKworVXNpbmcgdGhlIHJlZ2lzdGVyIGtleXdvcmQg
dHJpZ2dlcnMgd2FybmluZ3Mgb24gbm90ZXdvcnRoeSBjb21waWxlcnMKKyhjbGFuZyksIHNpbmNl
IGl0J3MgZGVwcmVjYXRlZCBpbiBDKysgYW5kIGF0IGRhbmdlciBvZiBiZWluZyByZW1vdmVkCitm
cm9tIHRoZSBsYW5ndWFnZS4gVGhlcmUgaXMgbm8gcmVhc29uIHRvIHVzZSBpdCBzaW5jZSBpdCBp
c24ndCAxOTgwCithbnltb3JlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzUwOTE4CistLS0KKyBnb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jIHwgNiArKyst
LS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitk
aWZmIC0tZ2l0IGEvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYyBiL2dvYmplY3QvZ2xpYi1nZW5t
YXJzaGFsLmMKK2luZGV4IGJlNDE1MWEuLmNhNzhhNmYgMTAwNjQ0CistLS0gYS9nb2JqZWN0L2ds
aWItZ2VubWFyc2hhbC5jCisrKysgYi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitAQCAtNDEy
LDkgKzQxMiw5IEBAIGdlbmVyYXRlX21hcnNoYWwgKGNvbnN0IGdjaGFyICpzaWduYW1lLAorICAg
ICAgIGdfZnByaW50ZiAoZm91dCwgIiVzJXMgZGF0YTIpO1xuIiwgaW5kZW50IChpbmQpLCBwYWQg
KCJncG9pbnRlciIpKTsKKyAKKyAgICAgICAvKiBjZmlsZSBtYXJzaGFsIHZhcmlhYmxlcyAqLwor
LSAgICAgIGdfZnByaW50ZiAoZm91dCwgIiAgcmVnaXN0ZXIgR01hcnNoYWxGdW5jXyVzIGNhbGxi
YWNrO1xuIiwgc2lnbmFtZSk7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBH
Q0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4iKTsKKy0gICAgICBnX2Zwcmlu
dGYgKGZvdXQsICIgIHJlZ2lzdGVyIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIpOworKyAgICAg
IGdfZnByaW50ZiAoZm91dCwgIiAgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFt
ZSk7CisrICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3Vy
ZSopIGNsb3N1cmU7XG4iKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIGdwb2ludGVyIGRh
dGExLCBkYXRhMjtcbiIpOworICAgICAgIGlmIChzaWctPnJhcmctPnNldHRlcikKKyAJZ19mcHJp
bnRmIChmb3V0LCAiICAlcyB2X3JldHVybjtcbiIsIHNpZy0+cmFyZy0+Y3R5cGUpOworIAorLS0g
CisyLjQuMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL3dw
ZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4w
LnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0
LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjVkMTA2NGVkNWU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMv
Z3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKQEAg
LTAsMCArMSwyMzYgQEAKK0Zyb20gZTkzODkzMzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0
NDg2YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJl
ZGhhdC5jb20+CitEYXRlOiBXZWQsIDI2IE9jdCAyMDE2IDE0OjUxOjAxICswMjAwCitTdWJqZWN0
OiBbUEFUQ0hdIGR0bHM6IHBvcnQgdG8gT3BlblNTTCAxLjEuMAorCitDaGFuZ2VzIGFyZToKKwor
LSBVc2UgdGhlIHdyYXBwZXIgZnVuY3Rpb25zIHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4g
IFRvIHByZXNlcnZlCisgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBk
ZWZpbml0aW9ucworCistIFJlbW92ZSB0aGUgdXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wt
PmQxLT5zZW50X21lc3NhZ2VzKSIsIHNpbmNlCisgIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50CisK
Ky0gVXNlIFJTQV9nZW5lcmF0ZV9rZXlfZXggaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0Ff
Z2VuZXJhdGVfa2V5CisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NzM1NDAKKy0tLQorIGV4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysr
KysKKyBleHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlv
bnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2Vy
dGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCA5NWZiYjgz
Li5jMWM5NjAyIDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysr
KyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMTk5LDcgKzE5OSwyMiBAQCBp
bml0X2dlbmVyYXRlZCAoR3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKKyAgICAgcHJpdi0+cHJp
dmF0ZV9rZXkgPSBOVUxMOworICAgICByZXR1cm47CisgICB9CisrCisrICAvKiBYWFg6IFJTQV9n
ZW5lcmF0ZV9rZXkgaXMgYWN0dWFsbHkgZGVwcmVjYXRlZCBpbiAwLjkuOCAqLworKyNpZiBPUEVO
U1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9r
ZXkgKDIwNDgsIFJTQV9GNCwgTlVMTCwgTlVMTCk7CisrI2Vsc2UKKysgIHJzYSA9IFJTQV9uZXcg
KCk7CisrICBpZiAocnNhICE9IE5VTEwpIHsKKysgICAgQklHTlVNICplID0gQk5fbmV3ICgpOwor
KyAgICBpZiAoZSAhPSBOVUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCisrICAgICAgICAm
JiBSU0FfZ2VuZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisrICAgICAgUlNB
X2ZyZWUgKHJzYSk7CisrICAgICAgcnNhID0gTlVMTDsKKysgICAgfQorKyAgICBCTl9mcmVlIChl
KTsKKysgIH0KKysjZW5kaWYKKyAKKyAgIGlmICghcnNhKSB7CisgICAgIEdTVF9XQVJOSU5HX09C
SkVDVCAoc2VsZiwgImZhaWxlZCB0byBnZW5lcmF0ZSBSU0EiKTsKK2RpZmYgLS1naXQgYS9leHQv
ZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYwor
aW5kZXggMzZmNmQ2My4uNzI4ZjVhNyAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25u
ZWN0aW9uLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKK0BAIC00Miw2ICs0
Miw4IEBACisgI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3Ns
Lmg+CisgCisrI2luY2x1ZGUgPHN0cmluZy5oPgorKworIEdTVF9ERUJVR19DQVRFR09SWV9TVEFU
SUMgKGdzdF9kdGxzX2Nvbm5lY3Rpb25fZGVidWcpOworICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxU
IGdzdF9kdGxzX2Nvbm5lY3Rpb25fZGVidWcKKyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0
RHRsc0Nvbm5lY3Rpb24sIGdzdF9kdGxzX2Nvbm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCitAQCAt
MjE2LDYgKzIxOCwzOCBAQCBnc3RfZHRsc19jb25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICog
Z29iamVjdCkKKyAgIEdfT0JKRUNUX0NMQVNTIChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9j
bGFzcyktPmZpbmFsaXplIChnb2JqZWN0KTsKKyB9CisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9O
VU1CRVIgPCAweDEwMTAwMDAxTAorK3N0YXRpYyB2b2lkCisrQklPX3NldF9kYXRhIChCSU8gKiBi
aW8sIHZvaWQgKnB0cikKKyt7CisrICBiaW8tPnB0ciA9IHB0cjsKKyt9CisrCisrc3RhdGljIHZv
aWQgKgorK0JJT19nZXRfZGF0YSAoQklPICogYmlvKQorK3sKKysgIHJldHVybiBiaW8tPnB0cjsK
Kyt9CisrCisrc3RhdGljIHZvaWQKKytCSU9fc2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBz
aHV0ZG93bikKKyt7CisrICBiaW8tPnNodXRkb3duID0gc2h1dGRvd247CisrfQorKworK3N0YXRp
YyB2b2lkCisrQklPX3NldF9pbml0IChCSU8gKiBiaW8sIGludCBpbml0KQorK3sKKysgIGJpby0+
aW5pdCA9IGluaXQ7CisrfQorKworK3N0YXRpYyBYNTA5ICoKKytYNTA5X1NUT1JFX0NUWF9nZXQw
X2NlcnQgKFg1MDlfU1RPUkVfQ1RYICogY3R4KQorK3sKKysgIHJldHVybiBjdHgtPmNlcnQ7Cisr
fQorKyNlbmRpZgorKworIHN0YXRpYyB2b2lkCisgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJv
cGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgIGNvbnN0IEdWYWx1
ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogcHNwZWMpCitAQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9k
dGxzX2Nvbm5lY3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9w
X2lkLAorICAgICAgIHByaXYtPmJpbyA9IEJJT19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rp
b24gKCkpOworICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmJpbyk7CisgCistICAgICAg
cHJpdi0+YmlvLT5wdHIgPSBzZWxmOworKyAgICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBz
ZWxmKTsKKyAgICAgICBTU0xfc2V0X2JpbyAocHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJp
byk7CisgCisgICAgICAgU1NMX3NldF92ZXJpZnkgKHByaXYtPnNzbCwKK0BAIC01NzMsNiArNjA3
LDcgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICog
c3RyKQorICAgc3RhdGVzIHw9ICghICFTU0xfd2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7
CisgICBzdGF0ZXMgfD0gKCEgIVNTTF93YW50X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOworIAor
KyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIEdTVF9MT0dfT0JK
RUNUIChzZWxmLCAiJXM6IHJvbGU9JXMgYnVmPSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAorICAg
ICAgIHN0ciwKKyAgICAgICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAor
QEAgLTU4MSw2ICs2MTYsMTUgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYs
IGNvbnN0IGdjaGFyICogc3RyKQorICAgICAgIHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAorICAg
ICAgIHByaXYtPmJpb19idWZmZXJfbGVuLAorICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAo
cHJpdi0+c3NsKSwgU1NMX3N0YXRlX3N0cmluZ19sb25nIChwcml2LT5zc2wpKTsKKysjZWxzZQor
KyAgR1NUX0xPR19PQkpFQ1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwl
eCAlcyIsCisrICAgICAgc3RyLAorKyAgICAgIHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDog
InNlcnZlciIsCisrICAgICAgcHJpdi0+YmlvX2J1ZmZlciwKKysgICAgICBwcml2LT5iaW9fYnVm
ZmVyX29mZnNldCwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKysgICAgICBzdGF0ZXMs
IFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+
c3NsKSk7CisrI2VuZGlmCisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNzM3LDcgKzc4MSw3IEBA
IG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NU
WCAqIHg1MDlfY3R4KQorICAgc2VsZiA9IFNTTF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9u
X2V4X2luZGV4KTsKKyAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNU
SU9OIChzZWxmKSwgRkFMU0UpOworIAorLSAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4
NTA5X2N0eC0+Y2VydCk7CisrICBwZW0gPSBfZ3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RP
UkVfQ1RYX2dldDBfY2VydCAoeDUwOV9jdHgpKTsKKyAKKyAgIGlmICghcGVtKSB7CisgICAgIEdT
VF9XQVJOSU5HX09CSkVDVCAoc2VsZiwKK0BAIC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJp
ZnlfY2FsbGJhY2sgKGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgp
CisgICAgICAgZ2ludCBsZW47CisgCisgICAgICAgbGVuID0KKy0gICAgICAgICAgWDUwOV9OQU1F
X3ByaW50X2V4IChiaW8sIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAx
LAorKyAgICAgICAgICBYNTA5X05BTUVfcHJpbnRfZXggKGJpbywKKysgICAgICAgICAgWDUwOV9n
ZXRfc3ViamVjdF9uYW1lIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEs
CisgICAgICAgICAgIFhOX0ZMQUdfTVVMVElMSU5FKTsKKyAgICAgICBCSU9fcmVhZCAoYmlvLCBi
dWZmZXIsIGxlbik7CisgICAgICAgYnVmZmVyW2xlbl0gPSAnXDAnOworQEAgLTc3Nyw2ICs4MjIs
NyBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9S
RV9DVFggKiB4NTA5X2N0eCkKKyAgICAgIyMjIyMjIyMgICMjIyMgICMjIyMjIyMKKyAqLworIAor
KyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyBzdGF0aWMgQklPX01F
VEhPRCBjdXN0b21fYmlvX21ldGhvZHMgPSB7CisgICBCSU9fVFlQRV9CSU8sCisgICAic3RyZWFt
IiwKK0BAIC03OTUsMTEgKzg0MSwzNCBAQCBCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lk
KQorIHsKKyAgIHJldHVybiAmY3VzdG9tX2Jpb19tZXRob2RzOworIH0KKysjZWxzZQorK3N0YXRp
YyBCSU9fTUVUSE9EICpjdXN0b21fYmlvX21ldGhvZHM7CisrCisrc3RhdGljIEJJT19NRVRIT0Qg
KgorK0JJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKHZvaWQpCisreworKyAgaWYgKGN1c3RvbV9i
aW9fbWV0aG9kcyAhPSBOVUxMKQorKyAgICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworKwor
KyAgY3VzdG9tX2Jpb19tZXRob2RzID0gQklPX21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJl
YW0iKTsKKysgIGlmIChjdXN0b21fYmlvX21ldGhvZHMgPT0gTlVMTAorKyAgICAgIHx8ICFCSU9f
bWV0aF9zZXRfd3JpdGUgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKKysg
ICAgICB8fCAhQklPX21ldGhfc2V0X3JlYWQgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhv
ZF9yZWFkKQorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2Rz
LCBiaW9fbWV0aG9kX2N0cmwpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3Rv
bV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9uZXcpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9k
ZXN0cm95IChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfZnJlZSkpIHsKKysgICAgQklP
X21ldGhfZnJlZSAoY3VzdG9tX2Jpb19tZXRob2RzKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9
CisrCisrICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworK30KKysjZW5kaWYKKyAKKyBzdGF0
aWMgaW50CisgYmlvX21ldGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBp
bnQgc2l6ZSkKKyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5F
Q1RJT04gKGJpby0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNf
Q09OTkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAKKyAgIEdTVF9MT0dfT0JKRUNUIChz
ZWxmLCAiQklPOiB3cml0aW5nICVkIiwgc2l6ZSk7CisgCitAQCAtODI0LDcgKzg5Myw3IEBAIGJp
b19tZXRob2Rfd3JpdGUgKEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisg
c3RhdGljIGludAorIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVy
LCBpbnQgc2l6ZSkKKyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NP
Tk5FQ1RJT04gKGJpby0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RU
TFNfQ09OTkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAgIEdzdER0bHNDb25uZWN0aW9u
UHJpdmF0ZSAqcHJpdiA9IHNlbGYtPnByaXY7CisgICBndWludCBpbnRlcm5hbF9zaXplOworICAg
Z2ludCBjb3B5X3NpemU7CitAQCAtODY4LDcgKzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklP
ICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyBzdGF0aWMgbG9uZworIGJpb19t
ZXRob2RfY3RybCAoQklPICogYmlvLCBpbnQgY21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCisg
eworLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8t
PnB0cik7CisrICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04g
KEJJT19nZXRfZGF0YSAoYmlvKSk7CisgICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYg
PSBzZWxmLT5wcml2OworIAorICAgc3dpdGNoIChjbWQpIHsKK0BAIC05MTYsOCArOTg1LDggQEAg
YmlvX21ldGhvZF9uZXcgKEJJTyAqIGJpbykKKyB7CisgICBHU1RfTE9HX09CSkVDVCAoTlVMTCwg
IkJJTzogbmV3Iik7CisgCistICBiaW8tPnNodXRkb3duID0gMDsKKy0gIGJpby0+aW5pdCA9IDE7
CisrICBCSU9fc2V0X3NodXRkb3duIChiaW8sIDApOworKyAgQklPX3NldF9pbml0IChiaW8sIDEp
OworIAorICAgcmV0dXJuIDE7CisgfQorQEAgLTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2Zy
ZWUgKEJJTyAqIGJpbykKKyAgICAgcmV0dXJuIDA7CisgICB9CisgCistICBHU1RfTE9HX09CSkVD
VCAoR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpLCAiQklPIGZyZWUiKTsKKysgIEdTVF9M
T0dfT0JKRUNUIChHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklP
IGZyZWUiKTsKKyAgIHJldHVybiAwOworIH0KKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rv
b2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgt
ZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hl
cy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5n
LWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5jNjY4NzczNzBjNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVz
L2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmct
aW4tUlNBX2dlbmVyYXRlX2sucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSAzYTA2OTE5M2Uy
NTM2NGViZGFjYWM4NmY0YjAzMDIyYzE1MWVhMjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor
RnJvbTogPT9VVEYtOD9xP1NlYmFzdGlhbj0yMERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNlbnRy
aWN1bGFyLmNvbT4KK0RhdGU6IE1vbiwgMTQgTm92IDIwMTYgMTE6MzI6MTcgKzAyMDAKK1N1Ympl
Y3Q6IFtQQVRDSF0gZHRsc2NlcnRpZmljYXRlOiBGaXggZXJyb3IgY2hlY2tpbmcgaW4gUlNBX2dl
bmVyYXRlX2tleV9leCgpCisgdXNhZ2UKKworV2FzIGJyb2tlbiBkdXJpbmcgdGhlIHBvcnQgZm9y
IE9wZW5TU0wgMS4xLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzc0MzI4CistLS0KKyBleHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyB8IDcgKysrKy0t
LQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2Rp
ZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0
bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCBjMWM5NjAyLi5jMmQ5YmIyIDEwMDY0NAorLS0tIGEvZXh0
L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZp
Y2F0ZS5jCitAQCAtMjA3LDEyICsyMDcsMTMgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0
aWZpY2F0ZSAqIHNlbGYpCisgICByc2EgPSBSU0FfbmV3ICgpOworICAgaWYgKHJzYSAhPSBOVUxM
KSB7CisgICAgIEJJR05VTSAqZSA9IEJOX25ldyAoKTsKKy0gICAgaWYgKGUgIT0gTlVMTCAmJiBC
Tl9zZXRfd29yZCAoZSwgUlNBX0Y0KQorLSAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAo
cnNhLCAyMDQ4LCBlLCBOVUxMKSkgeworKyAgICBpZiAoZSA9PSBOVUxMIHx8ICFCTl9zZXRfd29y
ZCAoZSwgUlNBX0Y0KQorKyAgICAgICAgfHwgIVJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0
OCwgZSwgTlVMTCkpIHsKKyAgICAgICBSU0FfZnJlZSAocnNhKTsKKyAgICAgICByc2EgPSBOVUxM
OworICAgICB9CistICAgIEJOX2ZyZWUgKGUpOworKyAgICBpZiAoZSkKKysgICAgICBCTl9mcmVl
IChlKTsKKyAgIH0KKyAjZW5kaWYKKyAKKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xz
L3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVh
bXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29m
LWZvci1mci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2E2
MGRiNDc3MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lu
cy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3It
ZnIucGF0Y2gKQEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJi
ZmE0NTZmMWVkNGU1ZGI0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhhYmllciBS
b2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorRGF0ZTogVGh1LCA3IEFwciAy
MDE2IDEzOjU3OjE2ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhw
b3NlIHN0cmVhbXMgd2l0aCBmaXJzdCBtb29mIGZvcgorIGZyYWdtZW50ZWQgZm9ybWF0IgorCitU
aGlzIHJldmVydHMgY29tbWl0IGQ4YmI2Njg3ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2
YWQuCistLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8
ICAxIC0KKyAyIGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygt
KQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVt
dXguYworaW5kZXggMzliZTE2My4uOTYzNmI0YiAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRk
ZW11eC5jCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTYwOSw3ICs2MDksNiBAQCBn
c3RfcXRkZW11eF9pbml0IChHc3RRVERlbXV4ICogcXRkZW11eCkKKyAgIHF0ZGVtdXgtPnN0YXRl
ID0gUVRERU1VWF9TVEFURV9JTklUSUFMOworICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7
CisgICBxdGRlbXV4LT5wb3N0ZWRfcmVkaXJlY3QgPSBGQUxTRTsKKy0gIHF0ZGVtdXgtPnBlbmRp
bmdfY29uZmlndXJlID0gRkFMU0U7CisgICBxdGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OworICAg
cXRkZW11eC0+dG9kcm9wID0gMDsKKyAgIHF0ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9u
ZXcgKCk7CitAQCAtMjA0OSw3ICsyMDQ4LDYgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVt
dXggKiBxdGRlbXV4LCBnYm9vbGVhbiBoYXJkKQorICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRk
ZW11eC0+bWVkaWFfY2FwcywgTlVMTCk7CisgICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7Cisg
ICAgIHF0ZGVtdXgtPmdvdF9tb292ID0gRkFMU0U7CistICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29u
ZmlndXJlID0gRkFMU0U7CisgICB9IGVsc2UgaWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7CisgICAg
IGdzdF9mbG93X2NvbWJpbmVyX3Jlc2V0IChxdGRlbXV4LT5mbG93Y29tYmluZXIpOworICAgICBm
b3IgKG4gPSAwOyBuIDwgcXRkZW11eC0+bl9zdHJlYW1zOyBuKyspCitAQCAtNjEwNCw3ICs2MTAy
LDYgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdi
b29sZWFuIGZvcmNlKQorICAgICAgICAgICAgICZmb3VyY2MpOworICAgICAgICAgaWYgKGZvdXJj
YyA9PSBGT1VSQ0NfbW9vdikgeworICAgICAgICAgICBnaW50IG47CistICAgICAgICAgIGdib29s
ZWFuIGdvdF9zYW1wbGVzID0gRkFMU0U7CisgCisgICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdt
ZW50ZWQgc2V0dXAgd2UgY291bGQgdHJ5IHRvIHNjYW4gZm9yIG1vcmUKKyAgICAgICAgICAgICog
YW5kIGVuZCB1cCBhdCB0aGUgdGhlIG1vb3YgKGFmdGVyIG1kYXQpIGFnYWluICovCitAQCAtNjEz
NiwyNyArNjEzMywxOSBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXgg
KiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAg
KGRlbXV4LCBkZW11eC0+bW9vdl9ub2RlKTsKKyAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3Ry
ZWUgKGRlbXV4KTsKKyAgICAgICAgICAgICBxdGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgp
OworKyAgICAgICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KQorKyAgICAgICAgICAgICAgcXRk
ZW11eF9leHBvc2Vfc3RyZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAgIGVsc2UgeworIAorLSAg
ICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAg
ICAgICAgICAgIFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAg
ICAgICAgICAgICAgZ290X3NhbXBsZXMgfD0gc3RyZWFtLT5zdGJsX2luZGV4ID49IDA7CistICAg
ICAgICAgICAgfQorLSAgICAgICAgICAgIGlmICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3Nh
bXBsZXMpIHsKKy0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KSB7CistICAgICAg
ICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKy0gICAgICAgICAgICAg
IH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJl
YW1zOyBuKyspIHsKKy0gICAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBk
ZW11eC0+c3RyZWFtc1tuXTsKKy0gICAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1
cmVfc3RyZWFtIChkZW11eCwgc3RyZWFtKTsKKy0gICAgICAgICAgICAgICAgfQorKyAgICAgICAg
ICAgICAgZm9yIChuID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworKyAgICAgICAg
ICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKysKKysg
ICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVh
bSk7CisgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19z
ZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRp
bmdfY29uZmlndXJlID0gRkFMU0U7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAg
ICAgIGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IFRSVUU7CisgICAgICAgICAgICAgfQorIAor
ICAgICAgICAgICAgIGRlbXV4LT5nb3RfbW9vdiA9IFRSVUU7CisrICAgICAgICAgICAgZ3N0X3F0
ZGVtdXhfY2hlY2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKKyAKKyAgICAgICAgICAg
ICAvKiBmcmFnbWVudGVkIHN0cmVhbXMgaGVhZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0
b21zICovCisgICAgICAgICAgICAgaWYgKCFkZW11eC0+ZnJhZ21lbnRlZCkgeworQEAgLTYxNzUs
NyArNjE2NCw2IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRl
bXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAgICAgICAgICAgICBndWludDY0IGRpc3QgPSAwOworICAg
ICAgICAgICAgIEdzdENsb2NrVGltZSBwcmV2X3B0czsKKyAgICAgICAgICAgICBndWludDY0IHBy
ZXZfb2Zmc2V0OworLSAgICAgICAgICAgIGdpbnQgbjsKKyAKKyAgICAgICAgICAgICBHU1RfREVC
VUdfT0JKRUNUIChkZW11eCwgIlBhcnNpbmcgW21vb2ZdIik7CisgCitAQCAtNjIwOSwyNSArNjE5
NywxNSBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwg
Z2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKyAg
ICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgLyog
aW4gTVNTIHdlIG5lZWQgdG8gZXhwb3NlIHRoZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFz
IHdlIHdvbid0IGdldCBhIG1vb3YgCistICAgICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBm
b3JtYXQgbmVlZCB0byBiZSBleHBvc2VkIGlmIGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBk
YXRhICovCistICAgICAgICAgICAgaWYgKGRlbXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGlu
Z19jb25maWd1cmUpIHsKKy0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKKy0g
ICAgICAgICAgICAgICAgaWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CistICAgICAg
ICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OworLSAgICAgICAgICAgICAgICAgIGdzdF9z
ZWdtZW50X2luaXQgKCZzZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworLSAgICAgICAgICAgICAg
ICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOwor
LSAgICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRf
bmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg
ICAgICBxdGRlbXV4X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7CistICAgICAgICAgICAgICB9IGVs
c2UgeworLSAgICAgICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsg
bisrKSB7CistICAgICAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgt
PnN0cmVhbXNbbl07CistICAgICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0
cmVhbSAoZGVtdXgsIHN0cmVhbSk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAv
KiBpbiBNU1Mgd2UgbmVlZCB0byBleHBvc2UgdGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2Yg
YXMgd2Ugd29uJ3QgZ2V0IGEgbW9vdiAqLworKyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21v
ZGUgJiYgIWRlbXV4LT5leHBvc2VkKSB7CisrICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5k
aW5nX25ld3NlZ21lbnQpIHsKKysgICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50Owor
KyAgICAgICAgICAgICAgICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9U
SU1FKTsKKysgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVu
ZGluZ19uZXdzZWdtZW50Iik7CisrICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3Nl
Z21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKyAgICAgICAgICAgICAg
IH0KKy0gICAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50
IChkZW11eCk7CistICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxT
RTsKKysgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKyAgICAg
ICAgICAgICB9CisgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgR1NUX0RFQlVHX09C
SkVDVCAoZGVtdXgsICJEaXNjYXJkaW5nIFttb29mXSIpOworZGlmZiAtLWdpdCBhL2dzdC9pc29t
cDQvcXRkZW11eC5oIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK2luZGV4IDYwNjEyMTUuLmVjZjBj
NjMgMTAwNjQ0CistLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9x
dGRlbXV4LmgKK0BAIC04OSw3ICs4OSw2IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBnYm9v
bGVhbiBwb3N0ZWRfcmVkaXJlY3Q7CisgCisgICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLwor
LSAgZ2Jvb2xlYW4gcGVuZGluZ19jb25maWd1cmU7CisgICBndWludCBuZWVkZWRieXRlczsKKyAg
IGd1aW50IHRvZHJvcDsKKyAgIEdzdEFkYXB0ZXIgKmFkYXB0ZXI7CistLSAKKzIuOC4wLnJjMwor
CmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUt
dGZkdC1kZWNvZGUtdGltZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xZTlkZDk3Zjc5MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dw
ZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNo
CkBAIC0wLDAgKzEsMTQ2IEBACitGcm9tIDQ2ZDNlMGZhYTkyMjY0MzA5NGE1ZTQ2YTMyZTRmODJm
Nzc0YWU3NzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/RW5yaXF1
ZT0yME9jYT1DMz1CMWE9MjBHb256PUMzPUExbGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KK0Rh
dGU6IFR1ZSwgMTAgTm92IDIwMTUgMTM6MDk6MDAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNl
IHRoZSB0ZmR0IGRlY29kZSB0aW1lIHdoZW4gaXQncyBzaWduaWZpY2FudGx5IGRpZmZlcmVudAor
IHRoYW4gdGhlIHRpbWUgaW4gdGhlIGxhc3Qgc2FtcGxlIGlmIGFsd2F5cy1ob25vci10ZmR0IGlz
IGVuYWJsZWQKKworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1
NDIzMAorLS0tCisgZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCA3MiArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgZ3N0L2lzb21wNC9xdGRlbXV4Lmgg
fCAgMSArCisgMiBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQg
YS9nc3QvaXNvbXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA4ODA1
OTVlLi5kOGI1NGYwIDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dz
dC9pc29tcDQvcXRkZW11eC5jCitAQCAtNTM1LDYgKzUzNSwxMSBAQCBzdGF0aWMgdm9pZCBnc3Rf
cXRkZW11eF9hcHBlbmRfcHJvdGVjdGlvbl9zeXN0ZW1faWQgKEdzdFFURGVtdXggKiBxdGRlbXV4
LAorICAgICBjb25zdCBnY2hhciAqIGlkKTsKKyBzdGF0aWMgdm9pZCBxdGRlbXV4X2dzdF9zdHJ1
Y3R1cmVfZnJlZSAoR3N0U3RydWN0dXJlICogZ3N0c3RydWN0dXJlKTsKKyAKKytzdGF0aWMgdm9p
ZCBnc3RfcXRkZW11eF9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3Bf
aWQsCisrICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Cisrc3Rh
dGljIHZvaWQgZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWlu
dCBwcm9wX2lkLAorKyAgICBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworKwor
IHN0YXRpYyB2b2lkCisgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICog
a2xhc3MpCisgeworQEAgLTU0Niw4ICs1NTEsMjEgQEAgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAo
R3N0UVREZW11eENsYXNzICoga2xhc3MpCisgCisgICBwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xh
c3NfcGVla19wYXJlbnQgKGtsYXNzKTsKKyAKKysgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0
eSA9IGdzdF9xdGRlbXV4X3NldF9wcm9wZXJ0eTsKKysgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9w
ZXJ0eSA9IGdzdF9xdGRlbXV4X2dldF9wcm9wZXJ0eTsKKysKKyAgIGdvYmplY3RfY2xhc3MtPmRp
c3Bvc2UgPSBnc3RfcXRkZW11eF9kaXNwb3NlOworIAorKyAvKioKKysgICAqIEdzdFF0RGVtdXg6
OmFsd2F5cy1ob25vci10ZmR0OgorKyAgICoKKysgICAqIFJlcXVlc3RzIHRoZSBkZW11eGVyIHRv
IHJlc3BlY3Qgd2hhdCB0aGUgVEZEVCBhdG9tIHNheXMgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVz
ZW50YXRpb24gdGltZXN0YW1wcy4gRGVmYXVsdHMgdG8gRkFMU0UuCisrICAgKi8KKysgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdvYmplY3RfY2xhc3MsIFBST1BfQUxXQVlTX0hP
Tk9SX1RGRFQsCisrICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4gKCJhbHdheXMtaG9ub3ItdGZk
dCIsICJBbHdheXMgaG9ub3IgVEZEVCIsCisrICAgICAgICAgICJXaGVuIGVuYWJsZWQsIFRGRFQg
YXRvbSB3aWxsIGFsd2F5cyBiZSByZXNwZWN0ZWQgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50
YXRpb24gdGltZXN0YW1wcyIsCisrICAgICAgICAgIEZBTFNFLCBHX1BBUkFNX1JFQURXUklURSB8
IEdfUEFSQU1fU1RBVElDX1NUUklOR1MpKTsKKysKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmNoYW5n
ZV9zdGF0ZSA9IEdTVF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpOwor
ICNpZiAwCisgICBnc3RlbGVtZW50X2NsYXNzLT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BU
UiAoZ3N0X3F0ZGVtdXhfc2V0X2luZGV4KTsKK0BAIC02MTEsNiArNjI5LDcgQEAgZ3N0X3F0ZGVt
dXhfaW5pdCAoR3N0UVREZW11eCAqIHF0ZGVtdXgpCisgICBxdGRlbXV4LT5jZW5jX2F1eF9pbmZv
X3NpemVzID0gTlVMTDsKKyAgIHF0ZGVtdXgtPmNlbmNfYXV4X3NhbXBsZV9jb3VudCA9IDA7Cisg
ICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMgPSBOVUxMOworKyAgcXRkZW11eC0+YWx3
YXlzX2hvbm9yX3RmZHQgPSBGQUxTRTsKKyAgIGdfcXVldWVfaW5pdCAoJnF0ZGVtdXgtPnByb3Rl
Y3Rpb25fZXZlbnRfcXVldWUpOworICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNlZ21l
bnQsIEdTVF9GT1JNQVRfVElNRSk7CisgICBxdGRlbXV4LT5mbG93Y29tYmluZXIgPSBnc3RfZmxv
d19jb21iaW5lcl9uZXcgKCk7CitAQCAtNjM5LDYgKzY1OCw0MiBAQCBnc3RfcXRkZW11eF9kaXNw
b3NlIChHT2JqZWN0ICogb2JqZWN0KQorIH0KKyAKKyBzdGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4
X3NldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgY29u
c3QgR1ZhbHVlICogdmFsdWUsIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4
ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQp
IHsKKysgICAgY2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1Rf
TE9DSyAocXRkZW11eCk7CisrICAgICAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBnX3Zh
bHVlX2dldF9ib29sZWFuICh2YWx1ZSk7CisrICAgICAgR1NUX09CSkVDVF9VTkxPQ0sgKHF0ZGVt
dXgpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5f
SU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJl
YWs7CisrICB9CisrfQorKworK3N0YXRpYyB2b2lkCisrZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5
IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUgKiB2YWx1ZSwKKysgICAg
R1BhcmFtU3BlYyAqIHBzcGVjKQorK3sKKysgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRE
RU1VWCAob2JqZWN0KTsKKysKKysgIHN3aXRjaCAocHJvcF9pZCkgeworKyAgICBjYXNlIFBST1Bf
QUxXQVlTX0hPTk9SX1RGRFQ6CisrICAgICAgR1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsKKysg
ICAgICBnX3ZhbHVlX3NldF9ib29sZWFuICh2YWx1ZSwgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3Rm
ZHQpOworKyAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsK
KysgICAgZGVmYXVsdDoKKysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQg
KG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytz
dGF0aWMgdm9pZAorIGdzdF9xdGRlbXV4X3Bvc3Rfbm9fcGxheWFibGVfc3RyZWFtX2Vycm9yIChH
c3RRVERlbXV4ICogcXRkZW11eCkKKyB7CisgICBpZiAocXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0
KSB7CitAQCAtMjk5NSw2ICszMDUwLDE2IEBAIHF0ZGVtdXhfcGFyc2VfdHJ1biAoR3N0UVREZW11
eCAqIHF0ZGVtdXgsIEdzdEJ5dGVSZWFkZXIgKiB0cnVuLAorICAgICAgICAgICBzdHJlYW0tPnNh
bXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS50aW1lc3RhbXAgKworICAgICAgICAgICBzdHJl
YW0tPnNhbXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbjsKKyAKKysgICAgICAv
KiBJZiB3ZSdyZSBhbHdheXMgaG9ub3JpbmcgVEZEVCBhbmQgdGhlcmUncyBhIHNpZ25pZmljYXRp
dmUgZGlmZmVyZW5jZQorKyAgICAgICAqIGJldHdlZW4gdGhlIGRlY29kZV90cyBhbmQgdGhlIHRp
bWVzdGFtcCwgcHJlZmVyIGRlY29kZV90cyAqLworKyAgICAgIGlmIChxdGRlbXV4LT5hbHdheXNf
aG9ub3JfdGZkdCA9PSBUUlVFCisrICAgICAgICAgICYmIGFicyAoZGVjb2RlX3RzIC0gdGltZXN0
YW1wKSA+CisrICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFd
LmR1cmF0aW9uKSB7CisrICAgICAgICBHU1RfSU5GT19PQkpFQ1QgKHF0ZGVtdXgsCisrICAgICAg
ICAgICAgImRlY29kZV90cyBpcyBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIHRpbWVzdGFt
cCwgdXNpbmcgZGVjb2RlX3RzIik7CisrICAgICAgICB0aW1lc3RhbXAgPSBkZWNvZGVfdHM7Cisr
ICAgICAgfQorKworICAgICAgIGdzdF90cyA9IFFUU1RSRUFNVElNRV9UT19HU1RUSU1FIChzdHJl
YW0sIHRpbWVzdGFtcCk7CisgICAgICAgR1NUX0lORk9fT0JKRUNUIChxdGRlbXV4LCAiZmlyc3Qg
c2FtcGxlIHRzICUiIEdTVF9USU1FX0ZPUk1BVAorICAgICAgICAgICAiIChleHRlbmRzIHByZXZp
b3VzIHNhbXBsZXMpIiwgR1NUX1RJTUVfQVJHUyAoZ3N0X3RzKSk7CitkaWZmIC0tZ2l0IGEvZ3N0
L2lzb21wNC9xdGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAoraW5kZXggNTNiZDA3MS4u
ZWNmMGM2MyAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5oCisrKysgYi9nc3QvaXNv
bXA0L3F0ZGVtdXguaAorQEAgLTE1NCwxMiArMTU0LDIwIEBAIHN0cnVjdCBfR3N0UVREZW11eCB7
CisgICBndWludDggKmNlbmNfYXV4X2luZm9fc2l6ZXM7CisgICBndWludDMyIGNlbmNfYXV4X3Nh
bXBsZV9jb3VudDsKKyAKKysgIGdib29sZWFuIGFsd2F5c19ob25vcl90ZmR0OworIH07CisgCisg
c3RydWN0IF9Hc3RRVERlbXV4Q2xhc3MgeworICAgR3N0RWxlbWVudENsYXNzIHBhcmVudF9jbGFz
czsKKyB9OworIAorKy8qIHByb3BzICovCisrZW51bQorK3sKKysgIFBST1BfMCwKKysgIFBST1Bf
QUxXQVlTX0hPTk9SX1RGRFQKKyt9OworKworIEdUeXBlIGdzdF9xdGRlbXV4X2dldF90eXBlICh2
b2lkKTsKKyAKKyBHX0VORF9ERUNMUworLS0gCisyLjYuMQorCmRpZmYgLS1naXQgYS9Ub29scy93
cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3du
c3RyZWFtLWlmLXRoZS0ucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZp
bmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2gKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0NDZiZDU0NGMzCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1h
LUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zy
b20gNWU0M2VlNTk4OWQ3YjUxZGNiMzE0NWJkOTk3NTI1MjQ3YTNkNjJkYyBNb24gU2VwIDE3IDAw
OjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNl
YmFzdGlhbkBjZW50cmljdWxhci5jb20+CitEYXRlOiBXZWQsIDExIE1heSAyMDE2IDE1OjA2OjM5
ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIHR5cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50
IGRvd25zdHJlYW0gaWYgdGhlIHNpbmtwYWQgaXMKKyBub3QgaW4gUFVMTCBtb2RlCisKK1RoZSBv
dGhlciBzaWduYWwgaGFuZGxlcnMgb2YgdGhlIHR5cGUtZm91bmQgc2lnbmFsIG1pZ2h0IGhhdmUg
cmVhY3RpdmF0ZWQKK3R5cGVmaW5kIGluIFBVTEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQ
UyBldmVudCBhdCB0aGF0IHBvaW50IHdvdWxkIGNhdXNlCitkZWFkbG9ja3MgYW5kIGlzIGluIGdl
bmVyYWwgdW5leHBlY3RlZCBieSBlbGVtZW50cyB0aGF0IGFyZSBpbiBQVUxMIG1vZGUuCisKK2h0
dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDYKKy0tLQorIHBs
dWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hh
bmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL2VsZW1lbnRzL2dz
dHR5cGVmaW5kZWxlbWVudC5jIGIvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQu
YworaW5kZXggYzY4NjQxMi4uNDUzZmY3NSAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvZWxlbWVudHMv
Z3N0dHlwZWZpbmRlbGVtZW50LmMKKysrKyBiL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRl
bGVtZW50LmMKK0BAIC0xNzksNiArMTc5LDEwIEBAIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZl
X3R5cGUgKEdzdFR5cGVGaW5kRWxlbWVudCAqIHR5cGVmaW5kLAorICAgR1NUX0lORk9fT0JKRUNU
ICh0eXBlZmluZCwgImZvdW5kIGNhcHMgJSIgR1NUX1BUUl9GT1JNQVQgIiwgcHJvYmFiaWxpdHk9
JXUiLAorICAgICAgIGNhcHMsIHByb2JhYmlsaXR5KTsKKyAKKysgIC8qIERvIG5vdGhpbmcgaWYg
ZG93bnN0cmVhbSBpcyBwdWxsaW5nIGZyb20gdXMgKi8KKysgIGlmIChHU1RfUEFEX01PREUgKHR5
cGVmaW5kLT5zcmMpID09IEdTVF9QQURfTU9ERV9QVUxMKQorKyAgICByZXR1cm47CisrCisgICBH
U1RfT0JKRUNUX0xPQ0sgKHR5cGVmaW5kKTsKKyAKKyAgIC8qIE5vdyBhY3R1YWxseSBzZW5kIHRo
ZSBDQVBTIGV2ZW50IGRvd25zdHJlYW0uCistLSAKKzIuOC4xCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>308591</attachid>
            <date>2017-04-28 13:31:21 -0700</date>
            <delta_ts>2017-05-04 02:32:05 -0700</delta_ts>
            <desc>git diff --stat output for the specific changes</desc>
            <filename>upstream.stat</filename>
            <type>text/plain</type>
            <size>25915</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">IENNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArKysrKysKIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKysrKwogU291cmNlL0phdmFT
Y3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMyArKysrKysrKwogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BFLmNtYWtlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBTb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsrKysKIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XVEYvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMTEgKysrKwogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAxOCArKystLS0KIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMjggKysrKysrKysrKwogU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNl
UHJpb3JpdHkuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAyOSArKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAzICstCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDcwICsrKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICA5ICsrKwogU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0
Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgMzA0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKysKIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjUgKysrKysrKysrKysrKysr
KysrKysrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9i
amVjdFdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0MiAr
KysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvY29uZmlnLmggICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy93cGUvRWRpdG9yV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4OCArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKwogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog
U291cmNlL1dlYkNvcmUvcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwOCArKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDkgKystCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y2hlbWVSZWdpc3RyeS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQu
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA0ICsrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1
ZGlvQnVzR0xpYi5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICA4ICsrLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xp
Yi5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNCArKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlk
Z2UuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArKysKIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDggKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAzICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2VnbC9HTENvbnRleHRFR0wuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgMTAgKysrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWds
L0dMQ29udGV4dEVHTC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAxMyArKysrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dM
Q29udGV4dEVHTFdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICA0NCArKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCAgICAgICAgICAg
ICAgICAgICAgfCAgIDkgKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSWNvbldQ
RS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
IDQ0ICsrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3Bl
L0ltYWdlV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICA0MyArKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3Bs
YXlXUEUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMDEgKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
cGUvQ3Vyc29yV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgIDM1ICsrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICA1MSArKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzNCArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICA1OCArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgMTE0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3JlZW5XUEUuY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDc0ICsr
KysrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5k
ZXJUaGVtZVdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgNjYgKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICA1MyArKysrKysrKysrKysrKysrKysKIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjkgKysrKysrKysrKysrKysrKysr
KysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5oICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDUgKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
IDM4ICsrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5j
cHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAxNDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0NyArKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDg1
ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgOTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogU291cmNlL1dl
YktpdDIvUGxhdGZvcm1XUEUuY21ha2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ3MyArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1m
b3J3YXJkaW5nLWhlYWRlcnMucGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgNCArKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAz
NSArKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0Lmgg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAxMDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5n
UnVuTG9vcC5jcHAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9v
cC5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcCAg
ICAgICAgICAgICAgIHwgIDg2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhy
ZWFkZWRDb21wb3NpdG9yLmggICAgICAgICAgICAgICAgIHwgIDI3ICsrKysrKysrLQogU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsrKwogU291cmNlL1dlYktpdDIvU2hh
cmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
YXRpdmVXZWJUb3VjaEV2ZW50LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDcgKysrCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZl
V2ViV2hlZWxFdmVudC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICA4ICsrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAyMiArKysrKysrLQogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAxMyArKysrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmaW5pdGlvbnMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50V1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAzOCArKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYk1v
dXNlRXZlbnRXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDM4ICsrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZl
V2ViVG91Y2hFdmVudFdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgNDYgKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL3dw
ZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICA0MCArKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvU2hh
cmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KwogU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIxNSArKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwogU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0NSAr
KysrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDQgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BF
LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTgg
KysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9X
S1ZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICA1OSArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL3dwZS9XS1ZpZXcuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICA3MSArKysrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTUgKysrKysrKysrKysrKysrKysr
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94
eS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU5ICsrKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGlu
Z01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
IDI1ICsrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0Fy
ZWFQcm94eVdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICA1NiArKysrKysrKysrKysrKysrKysrCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIxICsrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8IDEyNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVD
b250cm9sbGVyLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgODAg
KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDU2ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAxNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3Bl
L1dQRVZpZXcuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgODMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0MyArKysrKysrKysrKysrKysKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDYgKysrKysrKysrKysrKysr
KwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNv
dXJjZUJ1bmRsZS54bWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArKwogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9yU2VydmVyV1BF
LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0MiArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDE1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArKystCiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsrKwogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0MSArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9X
ZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDE1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFnZVByb3h5V1BF
LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
NjQgKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dl
YlBhc3RlYm9hcmRQcm94eVdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDU1ICsrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2MiArKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvV2Vi
S2l0MlByZWZpeC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgOSArKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDIgKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAyNyArKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDggKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9X
ZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU4
ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgIDM4ICsrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmNwcCAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUv
Q29tcG9zaXRpbmdNYW5hZ2VyLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgNDggKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICA0NyArKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgMTkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5oICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICA5MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDggKysrKysrKysrKysr
KysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JX
UEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0NSArKysr
KysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFn
ZVdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
OTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysKIFNv
dXJjZS9XZWJLaXQyL3dwZS93cGUtd2Via2l0LnBjLmluICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKysrKwogU291cmNl
L2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0NiArKysrKysrKysrKysrKysr
CiBTb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ3ICsrKysrKysr
KysrKysrKysKIFNvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC5jbWFrZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDcg
KysrKysrKysrKysrKysrKwogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDE0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1hcmNoaXZlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLS0KIFRvb2xz
L0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFRvb2xzL0NNYWtl
TGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKysKIFRvb2xzL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjYgKysrKysrKysrKysrKysrKysrKysrKwogVG9v
bHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBUb29scy9TY3Jp
cHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBUb29scy9TY3JpcHRzL2J1
aWxkLXdlYmtpdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Vi
a2l0dGVzdHJ1bm5lciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1s
aWJzLWpoYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDUgKy0KIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMjQgKysrKysrKysKIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMzAgKysrKysrKysrLQogVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVM
aXN0LnBtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAzMiArKysrKy0tLS0tLQogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMiArLQogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3Rvcnku
cHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgNCArKwogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICA3OSArKysrKysrKysrKysrKysrKysrKysrKysrKwogVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0
Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICA2MCArKysrKysrKysrKysrKysrKysrKwogVG9vbHMvVGVzdFdl
YktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNSArKysrKysrKysrKysKIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BFLmNwcCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjkgKysrKysrKysrKysrKysrKysr
KysrKysKIFRvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzIgKysr
KysrKysrKysKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg
Ky0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcCAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgNzEgKysrKysrKysrKysrKysrKysrKysrKysrCiBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BF
LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOTU5ICsrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY3Rp
dmF0ZUZvbnRzV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQ1
ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNSArKysrKysrKysrKysKIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTcgKysrKysrKysrKysr
KysrKysrKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0NyAr
KysrKysrKysrKysrKysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5o
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICA1ICsrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy
ICstCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIxICsrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAyNTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3MSArKysrKysrKysrKysr
KysrKysrKysrKysKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQ
RS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx
NDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzOSArKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dw
ZS9tYWluLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgIDM0ICsrKysrKysrKysrKwogVG9vbHMvamhidWlsZC9qaGJ1aWxk
LXdyYXBwZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBUb29scy93cGUvZ2VuZXJhdGUtaW5zcGVjdG9y
LWdyZXNvdXJjZS1tYW5pZmVzdC5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysKIFRvb2xzL3dwZS9q
aGJ1aWxkLm1vZHVsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNDYgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrCiBUb29scy93cGUvamhidWlsZHJjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI1ICsrKysr
KysrKwogVG9vbHMvd3BlL3BhdGNoZXMvY2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1z
dXJmYWNlLnBhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzMyArKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogVG9vbHMvd3BlL3BhdGNo
ZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1p
ZGVudGlmaWVyLnBhdGNoICAgICAgICAgICB8ICAzMCArKysrKysrKysrCiBUb29scy93cGUvcGF0
Y2hlcy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDM5ICsrKysrKysrKysrKysKIFRvb2xzL3dw
ZS9wYXRjaGVzL2dkYXRlLXN1cHByZXNzLXN0cmluZy1mb3JtYXQtbGl0ZXJhbC13YXJuaW5nLnBh
dGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjkgKysrKysrKysrKwogVG9vbHMv
d3BlL3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNCArKysrKysrKysrKysKIFRv
b2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NM
LTEuMS4wLnBhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMzYgKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrCiBUb29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2Vy
dGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoIHwgIDM3
ICsrKysrKysrKysrKysKIFRvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0
LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaCAgICAg
fCAxMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFRvb2xz
L3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBh
dGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNDYgKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBUb29scy93cGUvcGF0Y2hlcy9nc3Ry
ZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0u
cGF0Y2ggICAgICAgICAgICAgIHwgIDMyICsrKysrKysrKysrCiAyMDggZmlsZXMgY2hhbmdlZCwg
MTExNjUgaW5zZXJ0aW9ucygrKSwgOTcgZGVsZXRpb25zKC0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309027</attachid>
            <date>2017-05-04 02:32:05 -0700</date>
            <delta_ts>2017-05-09 00:57:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>502714</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IGI4OWRmYjI2MDZmLi45ZWE0ZDVlYTEzZiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA1LTA0ICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdlYmtpdC1kZXYg
dGhyZWFkOgorICAgICAgICBodHRwczovL2xpc3RzLndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtp
dC1kZXYvMjAxNy1BcHJpbC8wMjg5MjMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IEFkZCB0aGUgV1BFIHBvcnQgaWRlbnRpZmllci4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvRmlu
ZExpYkdCTS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNr
ZW5kLW1lc2EuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kV1BFQmFj
a2VuZC5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21h
a2U6IEFkZGVkLgorCiAyMDE3LTA1LTAzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgT3B0aW9uc0dUSy5jbWFr
ZSBhbmQgTkVXUyBmb3IgMi4xNy4xIHJlbGVhc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRl
eCAxMDcyZWVhOGJiOC4uNmU3MjYxODQ5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDE3LTA1LTA0ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVk
LgorICAgICAgICAqIHNoZWxsL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKwogMjAxNy0wNS0w
MyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBcnJh
eS5wcm90b3R5cGUuc29ydCBzaG91bGQgYWxzbyBhbGxvdyBhIG51bGwgY29tcGFyYXRvcgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5hYTg0YTA1ZDQwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDIzIEBACitsaXN0KEFQ
UEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKKyAgICAke0dMSUJfTElCUkFSSUVTfQorKQor
bGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7R0xJ
Ql9JTkNMVURFX0RJUlN9CisgICAgJHtXVEZfRElSfQorKQorCitzZXQoV1BFX0lOU1RBTExFRF9K
QVZBU0NSSVBUQ09SRV9IRUFERVJTCisgICAgQVBJL0pTQmFzZS5oCisgICAgQVBJL0pTQ29udGV4
dFJlZi5oCisgICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAgICBBUEkvSlNTdHJpbmdSZWYuaAorICAg
IEFQSS9KU1R5cGVkQXJyYXkuaAorICAgIEFQSS9KU1ZhbHVlUmVmLmgKKyAgICBBUEkvSmF2YVNj
cmlwdC5oCisgICAgQVBJL1dlYktpdEF2YWlsYWJpbGl0eS5oCispCisKK2luc3RhbGwoRklMRVMg
JHtXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hFQURFUlN9CisgICAgREVTVElOQVRJT04g
IiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJT059L1dQRS9K
YXZhU2NyaXB0Q29yZSIKKyAgICBDT01QT05FTlQgIkRldmVsb3BtZW50IgorKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjMxODNhMmIwOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDMg
QEAKK2xpc3QoQVBQRU5EIEpTQ19MSUJSQVJJRVMKKyAgICAke0dMSUJfTElCUkFSSUVTfQorKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCmluZGV4IDZhNGMxODBmYWFjLi5hMzBiMTZmOWI4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA1LTA0
ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVh
bSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaDoKKyAgICAgICAgQWxsb3cgYnVpbGRp
bmcgV1BFIG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHByb3ZpZGUgWDExIGxpYnJhcmllcy4KKwog
MjAxNy0wNC0yMCAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAKICAg
ICAgICAgW2NtYWtlXSBEZWZpbmUgRk9SV0FSRElOR19IRUFERVJTX0RJUiBpbiBXZWJLaXRGUyBh
bmQgdXNlIGl0IGV2ZXJ5d2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNs
dWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCmluZGV4IDk5OWY2ZTI4YjJjLi45YmI3NTkxMGFjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0u
aAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5o
CkBAIC05OSw3ICs5OSw3IEBAIHR5cGVkZWYgc3RydWN0IEFOYXRpdmVXaW5kb3cqICAgICAgICAg
ICBFR0xOYXRpdmVXaW5kb3dUeXBlOwogdHlwZWRlZiBzdHJ1Y3QgZWdsX25hdGl2ZV9waXhtYXBf
dCogICAgIEVHTE5hdGl2ZVBpeG1hcFR5cGU7CiB0eXBlZGVmIHZvaWQqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRUdMTmF0aXZlRGlzcGxheVR5cGU7CiAKLSNlbGlmIGRlZmluZWQoVVNFX09a
T05FKQorI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpIHx8IGRlZmluZWQoVVNFX1dQRSkKIAogdHlw
ZWRlZiBpbnRwdHJfdCBFR0xOYXRpdmVEaXNwbGF5VHlwZTsKIHR5cGVkZWYgaW50cHRyX3QgRUdM
TmF0aXZlV2luZG93VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMWFjZWNmYTQyYTYuLmZlZjYwNjJiZDAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDE3LTA1LTA0ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAg
ICogd3RmL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvZ2xpYi9SdW5M
b29wU291cmNlUHJpb3JpdHkuaDoKKwogMjAxNy0wNS0wMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIHRoZSBDTG9vcCBmb3IgQ1BVKEFSTTY0RSkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAppbmRleCBlM2M3Y2JkNTQyYi4uNjg1NGE4MWUzOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtNDY1
LDYgKzQ2NSw4IEBACiAvKiBQTEFURk9STShXSU4pICovCiAjaWYgZGVmaW5lZChCVUlMRElOR19H
VEtfXykKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0dUSyAxCisjZWxpZiBkZWZpbmVkKEJVSUxESU5H
X1dQRV9fKQorI2RlZmluZSBXVEZfUExBVEZPUk1fV1BFIDEKICNlbGlmIGRlZmluZWQoQlVJTERJ
TkdfSlNDT05MWV9fKQogLyogSlNDT25seSBkb2VzIG5vdCBwcm92aWRlIFBMQVRGT1JNKCkgbWFj
cm8gKi8KICNlbGlmIE9TKE1BQ19PU19YKQpAQCAtNTA5LDcgKzUxMSw3IEBACiAjZGVmaW5lIFVT
RV9DQSAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgVVNFX0NBSVJPIDEKICNkZWZpbmUgVVNFX0dMSUIgMQog
I2RlZmluZSBVU0VfRlJFRVRZUEUgMQpAQCAtNjI1LDcgKzYyNyw3IEBACiAjZW5kaWYKIAogI2lm
ICFkZWZpbmVkKEhBVkVfQUNDRVNTSUJJTElUWSkKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oV0lOKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRG
T1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIEhBVkVf
QUNDRVNTSUJJTElUWSAxCiAjZW5kaWYKICNlbmRpZiAvKiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lC
SUxJVFkpICovCkBAIC03NzYsNyArNzc4LDcgQEAKICNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQog
I2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBp
T1MgYW5kIFF0L0dUSysgTGludXguICovCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJN
NjQpKSAmJiAoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUoQVJNX1RI
VU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpKQogI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCiAjZW5kaWYKIC8qIEVu
YWJsZSB0aGUgREZHIEpJVCBvbiBBUk0gYW5kIE1JUFMuICovCkBAIC05NjMsNyArOTY1LDcgQEAK
IAogLyogQ1NTIFNlbGVjdG9yIEpJVCBDb21waWxlciAqLwogI2lmICFkZWZpbmVkKEVOQUJMRV9D
U1NfU0VMRUNUT1JfSklUKQotI2lmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUo
QVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9TKSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJX
SU4pIHx8IFBMQVRGT1JNKEdUSykpCisjaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwg
KENQVShBUk1fVEhVTUIyKSAmJiBQTEFURk9STShJT1MpKSkgJiYgRU5BQkxFKEpJVCkgJiYgKE9T
KERBUldJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQogI2RlZmluZSBFTkFC
TEVfQ1NTX1NFTEVDVE9SX0pJVCAxCiAjZWxzZQogI2RlZmluZSBFTkFCTEVfQ1NTX1NFTEVDVE9S
X0pJVCAwCkBAIC0xMDMwLDcgKzEwMzIsNyBAQAogI2RlZmluZSBVU0VfRVhQT1JUX01BQ1JPU19G
T1JfVEVTVElORyAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgVVNFX1VOSVhfRE9NQUlOX1NPQ0tFVFMgMQog
I2VuZGlmCiAKQEAgLTEwODAsMTEgKzEwODIsMTEgQEAKICNkZWZpbmUgVVNFX1ZJREVPVE9PTEJP
WCAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IChQ
TEFURk9STShXSU4pICYmICFVU0UoV0lOR0RJKSkKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpIHx8IChQTEFURk9STShXSU4pICYmICFVU0UoV0lO
R0RJKSkKICNkZWZpbmUgVVNFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSIDEKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShD
T0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9SRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IgMQogI2VuZGlmCiAKQEAgLTExNDcs
NyArMTE0OSw3IEBACiAjZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9VU0FHRSAxCiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICN1
bmRlZiBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwKICNkZWZpbmUgRU5BQkxFX09QRU5UWVBFX1ZF
UlRJQ0FMIDEKICNkZWZpbmUgRU5BQkxFX0NTUzNfVEVYVF9ERUNPUkFUSU9OX1NLSVBfSU5LIDEK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmExNjYzZmFkYTBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSwzMCBAQAorbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMK
KyAgICBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNVbml4LmNwcAorICAgIFVuaVN0ZEV4
dHJhcy5jcHAKKworICAgIGdlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKKworICAgIGdsaWIv
R0xpYlV0aWxpdGllcy5jcHAKKyAgICBnbGliL0dSZWZQdHIuY3BwCisgICAgZ2xpYi9NYWluVGhy
ZWFkR0xpYi5jcHAKKyAgICBnbGliL1J1bkxvb3BHTGliLmNwcAorCisgICAgbGludXgvQ3VycmVu
dFByb2Nlc3NNZW1vcnlTdGF0dXMuY3BwCisgICAgbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVy
TGludXguY3BwCisKKyAgICB0ZXh0L3VuaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVVu
aXguY3BwCisKKyAgICB1bml4L0NQVVRpbWVVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZf
TElCUkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1Rf
TElCUkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJ
Ql9MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisg
ICAgJHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2ds
aWIvUnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BT
b3VyY2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBA
CiAKIG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEg
Z2xvYmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNv
dXJjZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRl
Z2VyIHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xs
b3dpbmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVt
IFJ1bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9Owog
CisjZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAg
ICBSdW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAg
ICBNYWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFp
blRocmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAor
ICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdU
aHJlYWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1l
ciA9IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQg
PSAtNzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDI4MjViZTQzOGQ4Li44M2U0OTNjNGZjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTQwMDAsNyArNDAwMCw4IEBAIGlmIChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF8z
RCBBTkQgTk9UIFdJTjMyKQogICAgIHNldF9wcm9wZXJ0eShUQVJHRVQgQU5HTEVTdXBwb3J0CiAg
ICAgICAgIFBST1BFUlRZIENPTVBJTEVfREVGSU5JVElPTlMKICAgICAgICAgQU5HTEVfRU5BQkxF
X0VTU0wKLSAgICAgICAgQU5HTEVfRU5BQkxFX0dMU0wpCisgICAgICAgIEFOR0xFX0VOQUJMRV9H
TFNMCisgICAgICAgICR7QU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlN9KQogCiAgICAgdGFyZ2V0
X2luY2x1ZGVfZGlyZWN0b3JpZXMoQU5HTEVTdXBwb3J0IFBSSVZBVEUKICAgICAgICAgIiR7VEhJ
UkRQQVJUWV9ESVJ9L0FOR0xFIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU5ODkwMTliY2Q2Li5jZmI4MjUxOGIx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE3LTA1LTA0ICBaYW4gRG9iZXJzZWsg
IDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdlYmtpdC1k
ZXYgdGhyZWFkOgorICAgICAgICBodHRwczovL2xpc3RzLndlYmtpdC5vcmcvcGlwZXJtYWlsL3dl
YmtpdC1kZXYvMjAxNy1BcHJpbC8wMjg5MjMuaHRtbAorCisgICAgICAgIEV4aXN0aW5nIGZpbGVz
IG1vc3RseSBjaGFuZ2VkIHRvIHByb3Blcmx5IHVzZSBQTEFURk9STShXUEUpIGJ1aWxkIGd1YXJk
cy4KKyAgICAgICAgSW4tZmlsZSBjaGFuZ2VzIHJlbW92ZWQgZnJvbSB0aGlzIENoYW5nZUxvZyBl
bnRyeSBmb3IgYnJldml0eS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IFBsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENh
Y2hlV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJp
bGl0eU9iamVjdFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcC4KKyAgICAgICAgKiBjb25maWcuaDoKKyAgICAgICAg
KiBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0
b0tleVJTQS5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHA6IEFkZGVk
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL3dwZS9F
dmVudEhhbmRsZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJzb3IuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdJ
bWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL01haW5U
aHJlYWRTaGFyZWRUaW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9QbGF0Zm9ybVBhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hlbWVSZWdpc3Ry
eS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRmls
ZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0
QnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL09wZW5HTEVTU2hpbXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bURpc3BsYXkuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxh
eS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dwZS9JY29uV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdp
bmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dwZS9JbWFnZVdQRS5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQ
RS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAq
IHBsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRTdHJpbmdzV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9QYXN0ZWJvYXJkV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0
ZWJvYXJkV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2Ny
ZWVuV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVh
SW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmguCisgICAg
ICAgICogcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUv
U2Nyb2xsYmFyVGhlbWVXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1l
V1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8u
aC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvU291bmRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0v
d3BlL1RoZW1lV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL1RoZW1lV1BF
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBwbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorCiAyMDE3LTA1LTAzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbV0g
QWxsb3cgaG9zdCBhcHBsaWNhdGlvbiB0byBlbmFibGUvZGlzYWJsZSBtZWRpYSBjYXB0dXJlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZwppbmRleCA4N2MyOTgxYTYyNy4uZmIxMDgxZjQ0YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTA1LTA0ICBaYW4gRG9iZXJzZWsgIDx6ZG9i
ZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL1BsYXRmb3Jt
V1BFLmNtYWtlOiBBZGRlZC4KKwogMjAxNy0wNS0wMiAgWW9zaGlha2kgSml0c3VrYXdhICA8WW9z
aGlha2kuSml0c3VrYXdhQHNvbnkuY29tPgogCiAgICAgICAgIE1ha2UgIlBBTC9wYWwiIGFuZCAi
UEFML3BhbC9jcnlwdG8iIGRpcmVjdG9yaWVzIHByaXZhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li43NzVjMTg5ODRhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
UGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSwzIEBACitsaXN0KEFQUEVORCBQQUxfU09VUkNF
UworICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvRGlnZXN0R0NyeXB0LmNwcAorKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTNi
M2VmNjA0NzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5j
bWFrZQpAQCAtMCwwICsxLDMwMiBAQAoraW5jbHVkZShwbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2Up
CitpbmNsdWRlKHBsYXRmb3JtL0ltYWdlRGVjb2RlcnMuY21ha2UpCitpbmNsdWRlKHBsYXRmb3Jt
L0xpbnV4LmNtYWtlKQoraW5jbHVkZShwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlKQorCisj
IEFsbG93IGJ1aWxkaW5nIEFOR0xFIG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHByb3ZpZGUgWDEx
IGhlYWRlcnMuCitsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9OUyAiVVNFX1dQ
RSIpCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke0RF
UklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9IgorICAgICIke0RFUklWRURfU09VUkNF
U19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3RvciIKKyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJ
Un0KKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzIgorICAgICIk
e0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYXNz
ZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCisgICAgIiR7SkFW
QVNDUklQVENPUkVfRElSfS9ieXRlY29tcGlsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9kZmciCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIiCisgICAgIiR7
SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9o
ZWFwIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGVidWdnZXIiCisgICAgIiR7SkFWQVND
UklQVENPUkVfRElSfS9pbnRlcnByZXRlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2pp
dCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2xsaW50IgorICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vcGFyc2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcHJvZmlsZXIiCisg
ICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0veWFyciIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvIgorICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRS9pbmNsdWRlL0tIUiIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgor
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wiCisgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dseCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFy
ZmJ1enovIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9u
ZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsIgorICAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9ncmFwaGljcy93YXlsYW5kIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9tb2NrL21l
ZGlhc291cmNlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCisg
ICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvaWN1IgorICAgICR7V1RGX0RJUn0KKykK
KworbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgYWNjZXNzaWJpbGl0eS93cGUvQVhP
YmplY3RDYWNoZVdQRS5jcHAKKyAgICBhY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0V1BFLmNwcAorCisgICAgbG9hZGVyL3NvdXAvQ2FjaGVkUmF3UmVzb3VyY2VTb3VwLmNwcAor
ICAgIGxvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKKworICAgIHBhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKKyAgICBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUaHJlYWQuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUu
Y3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisK
KyAgICBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKyAgICBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRl
ZGdyYXBoaWNzL1Njcm9sbGluZ1N0YXRlTm9kZUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisKKyAg
ICBwbGF0Zm9ybS9DdXJzb3IuY3BwCisgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25lLmNwcAorICAg
IHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKyAgICBwbGF0Zm9ybS9UaGVtZS5jcHAK
KworICAgIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAorCisgICAgcGxhdGZv
cm0vZ2xpYi9FdmVudExvb3BHbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUds
aWIuY3BwCisgICAgcGxhdGZvcm0vZ2xpYi9LZXllZERlY29kZXJHbGliLmNwcAorICAgIHBsYXRm
b3JtL2dsaWIvS2V5ZWRFbmNvZGVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL01haW5UaHJl
YWRTaGFyZWRUaW1lckdMaWIuY3BwCisgICAgcGxhdGZvcm0vZ2xpYi9TU0xLZXlHZW5lcmF0b3JH
TGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvU2hhcmVkQnVmZmVyR2xpYi5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0LmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvSW1wbC5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9GbG9hdFJlY3RDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250
Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpO
Ry5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ludFJlY3RDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFn
ZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGxhdGZvcm1QYXRoQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUmVmUHRyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNm
b3JtYXRpb25NYXRyaXhDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRFR0wuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVG
cmVlVHlwZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBl
L0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1enouY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5nLmNwcAorCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuY3BwCisKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcAorCisgICAgcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5jcHAKKworICAgIHBsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCisgICAgcGxh
dGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29v
a2llU3RvcmFnZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NyZWRlbnRpYWxT
dG9yYWdlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvRE5TU291cC5jcHAKKyAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1JlZlB0clNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0
d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Byb3h5U2VydmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VFcnJvclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0
U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAu
Y3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGxTb3Vw
LmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50U291cC5jcHAK
KyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcAor
CisgICAgcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAorICAgIHBsYXRmb3JtL3Nv
dXAvVVJMU291cC5jcHAKKworICAgIHBsYXRmb3JtL3RleHQvSHlwaGVuYXRpb24uY3BwCisgICAg
cGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJ
Q1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAKKwor
ICAgIHBsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCisKKyAgICBwbGF0Zm9ybS94ZGcvTUlN
RVR5cGVSZWdpc3RyeVhkZy5jcHAKKykKKworbGlzdChBUFBFTkQgV2ViQ29yZVBsYXRmb3JtV1BF
X1NPVVJDRVMKKyAgICBlZGl0aW5nL3dwZS9FZGl0b3JXUEUuY3BwCisKKyAgICBwYWdlL3dwZS9F
dmVudEhhbmRsZXJXUEUuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0
RUdMV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcAorCisgICAgcGxhdGZvcm0vd3BlL0N1
cnNvcldQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAKKyAg
ICBwbGF0Zm9ybS93cGUvUGFzdGVib2FyZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZv
cm1LZXlib2FyZEV2ZW50V1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9h
cmRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcAorICAgIHBs
YXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvU2Nyb2xsYmFy
VGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcAorICAgIHBsYXRmb3Jt
L3dwZS9UaGVtZVdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcAorKQorCits
aXN0KEFQUEVORCBXZWJDb3JlX1VTRVJfQUdFTlRfU1RZTEVfU0hFRVRTCisgICAgJHtXRUJDT1JF
X0RJUn0vTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmNzcworKQorCitz
ZXQoV2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFMKKyAgICAke1dFQkNPUkVfRElSfS9FbmdsaXNo
Lmxwcm9qL21lZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtXRUJDT1JFX0RJ
Un0vTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCispCisKK3NldChX
ZWJDb3JlX1VTRVJfQUdFTlRfU0NSSVBUU19ERVBFTkRFTkNJRVMgJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJS
QVJJRVMKKyAgICAke0NBSVJPX0xJQlJBUklFU30KKyAgICAke0VHTF9MSUJSQVJJRVN9CisgICAg
JHtGT05UQ09ORklHX0xJQlJBUklFU30KKyAgICAke0ZSRUVUWVBFMl9MSUJSQVJJRVN9CisgICAg
JHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dNT0RVTEVfTElCUkFSSUVTfQorICAg
ICR7R0xJQl9HT0JKRUNUX0xJQlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7
R05VVExTX0xJQlJBUklFU30KKyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0lDVV9M
SUJSQVJJRVN9CisgICAgJHtMSUJHQ1JZUFRfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJS
QVJJRVN9CisgICAgJHtMSUJYTUwyX0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFSSUVT
fQorICAgICR7U1FMSVRFX0xJQlJBUklFU30KKyAgICAke1dQRV9MSUJSQVJJRVN9CispCisKK2xp
c3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7Q0FJUk9fSU5DTFVE
RV9ESVJTfQorICAgICR7RUdMX0lOQ0xVREVfRElSU30KKyAgICAke0ZPTlRDT05GSUdfSU5DTFVE
RV9ESVJTfQorICAgICR7RlJFRVRZUEUyX0lOQ0xVREVfRElSU30KKyAgICAke0dMSUJfSU5DTFVE
RV9ESVJTfQorICAgICR7R05VVExTX0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpaX0lOQ0xV
REVfRElSU30KKyAgICAke0lDVV9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJHQ1JZUFRfSU5DTFVE
RV9ESVJTfQorICAgICR7TElCU09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xV
REVfRElSfQorICAgICR7TElCWFNMVF9JTkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURF
X0RJUn0KKyAgICAke1dQRV9JTkNMVURFX0RJUlN9CispCisKK2FkZF9saWJyYXJ5KFdlYkNvcmVQ
bGF0Zm9ybVdQRSAke1dlYkNvcmVfTElCUkFSWV9UWVBFfSAke1dlYkNvcmVQbGF0Zm9ybVdQRV9T
T1VSQ0VTfSkKK2FkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZVBsYXRmb3JtV1BFIFdlYkNvcmUpCitX
RUJLSVRfU0VUX0VYVFJBX0NPTVBJTEVSX0ZMQUdTKFdlYkNvcmVQbGF0Zm9ybVdQRSkKK3Rhcmdl
dF9pbmNsdWRlX2RpcmVjdG9yaWVzKFdlYkNvcmVQbGF0Zm9ybVdQRSBQUklWQVRFCisgICAgJHtX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVN9CispCit0YXJnZXRfaW5jbHVkZV9kaXJlY3Rvcmll
cyhXZWJDb3JlUGxhdGZvcm1XUEUgU1lTVEVNIFBSSVZBVEUKKyAgICAke1dlYkNvcmVfU1lTVEVN
X0lOQ0xVREVfRElSRUNUT1JJRVN9CispCit0YXJnZXRfbGlua19saWJyYXJpZXMoV2ViQ29yZVBs
YXRmb3JtV1BFCisgICAgJHtXZWJDb3JlX0xJQlJBUklFU30KKykKKworaWYgKEVOQUJMRV9TVUJU
TEVfQ1JZUFRPKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBjcnlw
dG8vQ3J5cHRvQWxnb3JpdGhtLmNwcAorICAgICAgICBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVn
aXN0cnkuY3BwCisgICAgICAgIGNyeXB0by9DcnlwdG9LZXkuY3BwCisgICAgICAgIGNyeXB0by9T
dWJ0bGVDcnlwdG8uY3BwCisgICAgICAgIGNyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3BwCisK
KyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKKyAg
ICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5jcHAKKyAgICAg
ICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5jcHAKKyAgICAgICAg
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5jcHAKKyAgICAgICAgY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcAorICAgICAgICBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmNwcAorICAgICAgICBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtSEtERi5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtSE1BQy5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtUEJLREYyLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1S
U0FFU19QS0NTMV92MV81LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTEuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVNIQTIyNC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBMjU2LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEz
ODQuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5j
cHAKKworICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQu
Y3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQkdDcnlwdC5j
cHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSR0NyeXB0LmNw
cAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19HQ01HQ3J5cHQuY3Bw
CisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcAor
ICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUVDREhHQ3J5cHQuY3BwCisgICAg
ICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtRUNEU0FHQ3J5cHQuY3BwCisgICAgICAg
IGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtSEtERkdDcnlwdC5jcHAKKyAgICAgICAgY3J5
cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1ITUFDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8v
Z2NyeXB0L0NyeXB0b0FsZ29yaXRobVBCS0RGMkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81R0NyeXB0LmNwcAorICAgICAgICBj
cnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81R0NyeXB0LmNwcAor
ICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQR0NyeXB0LmNwcAor
ICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5R0NyeXB0LmNwcAor
ICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0tleUVDR0NyeXB0LmNwcAorICAgICAgICBjcnlw
dG8vZ2NyeXB0L0NyeXB0b0tleVJTQUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9T
ZXJpYWxpemVkQ3J5cHRvS2V5V3JhcEdDcnlwdC5jcHAKKworICAgICAgICBjcnlwdG8va2V5cy9D
cnlwdG9LZXlBRVMuY3BwCisgICAgICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleURhdGFPY3RldFNl
cXVlbmNlLmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
cy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCisgICAgICAgIGNyeXB0
by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCisgICAgICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleVJT
QS5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5UmF3LmNwcAorICAgICAgICBjcnlw
dG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmNwcAorICAgICkKK2VuZGlmICgpCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKaW5kZXggMzExYzk5ZmMyMWIuLjQ4YTI0NmVhMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNjYsNiArNjYsOCBA
QCB0eXBlZGVmIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIEFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBzdHJ1Y3QgX0F0a09iamVj
dCBBdGtPYmplY3Q7CiB0eXBlZGVmIHN0cnVjdCBfQXRrT2JqZWN0IEFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyOworI2VsaWYgUExBVEZPUk0oV1BFKQorY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4g
eyB9OwogI2Vsc2UKIGNsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyOwogI2VuZGlmCkBA
IC0xMTUyLDYgKzExNTQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgQ09NUHRyPEFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyPiBtX3dyYXBwZXI7CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgQXRrT2Jq
ZWN0KiBtX3dyYXBwZXI7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgUmVmUHRyPEFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyPiBtX3dyYXBwZXI7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE1NDE1OTRhZGVjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNo
ZVdQRS5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2Fs
aWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6ZGV0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmlj
YXRpb24pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hl
Ojpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwbGF0Zm9y
bUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqLCBOb2RlKikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9B
bmNob3IoY29uc3QgTm9kZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVj
dFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3NpYmlsaXR5
T2JqZWN0V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGU5
NGM1OTk0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L3dwZS9BY2Nlc3NpYmlsaXR5T2JqZWN0V1BFLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
KworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nl
c3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0FjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24g
QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3Qo
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIERlZmF1bHRCZWhh
dmlvcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSEFWRShBQ0NF
U1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29uZmlnLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jb25maWcuaAppbmRleCBkNWQ0M2ZlNGRmNC4uMTgwOTkwZWJmZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5o
CkBAIC0xMDQsNyArMTA0LDcgQEAKICNlbmRpZgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMp
CisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9ORVdfVEhF
TUUgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0Ny
eXB0b0tleUVDLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCmlu
ZGV4IDQ0M2E2ODIxNWFiLi40YzdkMDI5OGU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5
cy9DcnlwdG9LZXlFQy5oCkBAIC0zNiw3ICszNiw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQ0VDQ3J5
cHRvciAqQ0NFQ0NyeXB0b3JSZWY7CiB0eXBlZGVmIENDRUNDcnlwdG9yUmVmIFBsYXRmb3JtRUNL
ZXk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdQRSkKIC8vIGdjcnlfc2V4cCogZXF1YXRlcyBnY3J5X3NleHBfdC4KIHN0cnVjdCBn
Y3J5X3NleHA7CiB0eXBlZGVmIGdjcnlfc2V4cCogUGxhdGZvcm1FQ0tleTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKaW5kZXggMzA1YmQ0YzQzYTAuLjQxYmNlODU5
ZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0Eu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaApAQCAtMzYs
NyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0NSU0FDcnlwdG9yICpDQ1JTQUNyeXB0b3JSZWY7
CiB0eXBlZGVmIENDUlNBQ3J5cHRvclJlZiBQbGF0Zm9ybVJTQUtleTsKICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogLy8gZ2Ny
eV9zZXhwKiBlcXVhdGVzIGdjcnlfc2V4cF90Lgogc3RydWN0IGdjcnlfc2V4cDsKIHR5cGVkZWYg
Z2NyeV9zZXhwKiBQbGF0Zm9ybVJTQUtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRl
eCBjM2RkNDhjMzk3Zi4uZjZmOTE2NjVkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
QEAgLTEyNDYsMTMgKzEyNDYsMTMgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRp
dG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKICAgICAgICAgICAgIGltYWdlRWxlbWVudCA9IGlt
YWdlRWxlbWVudEZyb21JbWFnZURvY3VtZW50KGRvY3VtZW50KCkpOwogCiAgICAgICAgIGlmIChp
bWFnZUVsZW1lbnQpIHsKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAg
ICAgICAgIHdyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlB
bmRQYXN0ZSgpLCAqaW1hZ2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgpLnRp
dGxlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQ
YXN0ZSgpLT53cml0ZUltYWdlKCppbWFnZUVsZW1lbnQsIGRvY3VtZW50KCkudXJsKCksIGRvY3Vt
ZW50KCkudGl0bGUoKSk7CiAjZW5kaWYKICAgICAgICAgfSBlbHNlIHsKLSNpZiBQTEFURk9STShD
T0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAgICAgICAgIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJv
YXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSk7CiAjZWxzZQogICAgICAg
ICAgICAgLy8gRklYTUU6IENvbnZlcnQgYWxsIG90aGVyIHBsYXRmb3JtcyB0byBtYXRjaCBNYWMg
YW5kIGRlbGV0ZSB0aGlzLgpAQCAtMTM3Nyw3ICsxMzc3LDcgQEAgdm9pZCBFZGl0b3I6OmNvcHlJ
bWFnZShjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCiAgICAgaWYgKHVybC5pc0VtcHR5KCkp
CiAgICAgICAgIHVybCA9IHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMKCk7CiAKLSNpZiBQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICB3cml0ZUltYWdlVG9QYXN0ZWJvYXJkKCpQYXN0
ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgKmVsZW1lbnQsIHVybCwgcmVzdWx0LmFs
dERpc3BsYXlTdHJpbmcoKSk7CiAjZWxzZQogICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlB
bmRQYXN0ZSgpLT53cml0ZUltYWdlKCplbGVtZW50LCB1cmwsIHJlc3VsdC5hbHREaXNwbGF5U3Ry
aW5nKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggZjY5MDQ1NjRjMjguLjdjNjNlZmQy
ZWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTQ2Nyw3ICs0NjcsNyBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aEF0dHJpYnV0ZWRT
dHJpbmcoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWls
QmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd3Jp
dGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoUGFzdGVib2FyZCYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgd3JpdGVJbWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgRWxlbWVudCYgaW1hZ2VF
bGVtZW50LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICB2b2lkIHdyaXRl
U2VsZWN0aW9uKFBhc3RlYm9hcmRXcml0ZXJEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL3dwZS9FZGl0b3JXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93
cGUvRWRpdG9yV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
NDI5NGNkOTg0N2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dw
ZS9FZGl0b3JXUEUuY3BwCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkVkaXRvci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJk
LmgiCisjaW5jbHVkZSAibWFya3VwLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGlj
IFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21QYXN0ZWJvYXJkRGF0
YShQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiByYW5nZSwgYm9v
bCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCit7CisgICAgY2hvc2VQbGFp
blRleHQgPSBmYWxzZTsKKworICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzID0gcGFzdGVib2FyZC50
eXBlcygpOworICAgIGlmICh0eXBlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKCJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCIpICYm
IGZyYW1lLmRvY3VtZW50KCkpIHsKKyAgICAgICAgU3RyaW5nIG1hcmt1cCA9IHBhc3RlYm9hcmQu
cmVhZFN0cmluZygidGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiKTsKKyAgICAgICAgaWYgKFJlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cCgq
ZnJhbWUuZG9jdW1lbnQoKSwgbWFya3VwLCBlbXB0eVN0cmluZygpLCBEaXNhbGxvd1NjcmlwdGlu
Z0FuZFBsdWdpbkNvbnRlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50OworICAgIH0K
KworICAgIGlmICghYWxsb3dQbGFpblRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgaWYgKHR5cGVzLmNvbnRhaW5zKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkgeworICAg
ICAgICBjaG9zZVBsYWluVGV4dCA9IHRydWU7CisgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KHJhbmdlLCBwYXN0ZWJv
YXJkLnJlYWRTdHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIpKSkKKyAgICAgICAgICAg
IHJldHVybiBmcmFnbWVudDsKKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9p
ZCBFZGl0b3I6OndyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmIHBhc3RlYm9h
cmQpCit7CisgICAgUGFzdGVib2FyZFdlYkNvbnRlbnQgcGFzdGVib2FyZENvbnRlbnQ7CisgICAg
cGFzdGVib2FyZENvbnRlbnQudGV4dCA9IHNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlcigpOwor
ICAgIHBhc3RlYm9hcmRDb250ZW50Lm1hcmt1cCA9IGNyZWF0ZU1hcmt1cCgqc2VsZWN0ZWRSYW5n
ZSgpLCBudWxscHRyLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgUmVzb2x2ZU5vbkxv
Y2FsVVJMcyk7CisgICAgcGFzdGVib2FyZC53cml0ZShwYXN0ZWJvYXJkQ29udGVudCk7Cit9CisK
K3ZvaWQgRWRpdG9yOjp3cml0ZUltYWdlVG9QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmLCBFbGVtZW50
JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJv
YXJkLCBib29sIGFsbG93UGxhaW5UZXh0LCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9j
a3F1b3RlSGFuZGxpbmcpCit7CisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IHNlbGVjdGVkUmFu
Z2UoKTsKKyAgICBpZiAoIXJhbmdlKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIGNob3Nl
UGxhaW5UZXh0OworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0
ZUZyYWdtZW50RnJvbVBhc3RlYm9hcmREYXRhKCpwYXN0ZWJvYXJkLCBtX2ZyYW1lLCAqcmFuZ2Us
IGFsbG93UGxhaW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7CisgICAgaWYgKGZyYWdtZW50ICYmIHNo
b3VsZEluc2VydEZyYWdtZW50KGZyYWdtZW50LCByYW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpQ
YXN0ZWQpKQorICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoKmZyYWdtZW50LCBjYW5TbWFydFJlcGxh
Y2VXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGNob3NlUGxhaW5UZXh0LCBtYWlsQmxvY2tx
dW90ZUhhbmRsaW5nKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDc5NTJjYWJmODI1Li43MWMwM2I3ZmM5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjYxMSw3ICsyNjExLDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmlzSW5zaWRlU2Nyb2xsYmFyKGNvbnN0IEludFBvaW50JiB3aW5kb3dQb2lu
dCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKQorI2lm
ICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpz
aG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jpem9udGFsKGNvbnN0IEhpdFRlc3RSZXN1bHQm
LCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmUxNGUwZmUzYmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCisKKyNpbmNsdWRlICJGb2N1c0NvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0Cit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgRXZlbnRIYW5k
bGVyOjpmb2N1c0RvY3VtZW50VmlldygpCit7CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEZyYW1l
KCZtX2ZyYW1lKTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25F
dmVudFRvV2lkZ2V0KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFu
ZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoUmVuZGVyV2lkZ2V0KikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KFdpZGdldCopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVy
OjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVu
dEhhbmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiwgV2lkZ2V0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1l
KE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmLCBGcmFtZSopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNz
TW91c2VNb3ZlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmLCBG
cmFtZSosIEhpdFRlc3RSZXN1bHQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUmVsZWFzZUV2ZW50
VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgRnJhbWUqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitPcHRpb25TZXQ8UGxh
dGZvcm1FdmVudDo6TW9kaWZpZXI+IEV2ZW50SGFuZGxlcjo6YWNjZXNzS2V5TW9kaWZpZXJzKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb2Rp
Zmllcjo6QWx0S2V5OworfQorCitib29sIEV2ZW50SGFuZGxlcjo6c2hvdWxkVHVyblZlcnRpY2Fs
VGlja3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29y
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAppbmRleCBjZGNmMjY1ZjI2MC4u
NWU5MTFkNzA4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oCkBAIC03NCw2ICs3NCw4IEBA
IHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gUmVmUHRyPFNoYXJlZEN1cnNvcj47CiB1c2luZyBQbGF0
Zm9ybUN1cnNvciA9IE5TQ3Vyc29yICo7CiAjZWxpZiBQTEFURk9STShHVEspCiB1c2luZyBQbGF0
Zm9ybUN1cnNvciA9IEdSZWZQdHI8R2RrQ3Vyc29yPjsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKK3Vz
aW5nIFBsYXRmb3JtQ3Vyc29yID0gdm9pZCo7CiAjZW5kaWYKIAogY2xhc3MgQ3Vyc29yIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCmluZGV4IDY4OTE5N2Y3YjU2Li41MGNlYjg2YzUxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCkBAIC01Myw3ICs1Myw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIFNlbGVjdGlvbkRhdGE7CiB9CiB0eXBlZGVmIFdlYkNvcmU6OlNl
bGVjdGlvbkRhdGEqIERyYWdEYXRhUmVmOwotI2VsaWYgUExBVEZPUk0oSU9TKQorI2VsaWYgUExB
VEZPUk0oSU9TKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIHZvaWQqIERyYWdEYXRhUmVmOwog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKaW5kZXggZTMyNTVkMTlhZDIu
LjU1MjEzMWRkMGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaApAQCAtNDEsNyAr
NDEsNyBAQCB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdlUmVmOwogT0JKQ19DTEFTUyBO
U0ltYWdlOwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBzdHJ1Y3QgSEJJVE1BUF9fKiBI
QklUTUFQOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgVVNFKENBSVJPKQogI2luY2x1ZGUg
IlJlZlB0ckNhaXJvLmgiCiAjZW5kaWYKIApAQCAtNjQsNyArNjQsNyBAQCB0eXBlZGVmIFJldGFp
blB0cjxDR0ltYWdlUmVmPiBEcmFnSW1hZ2VSZWY7CiB0eXBlZGVmIFJldGFpblB0cjxOU0ltYWdl
PiBEcmFnSW1hZ2VSZWY7CiAjZWxpZiBQTEFURk9STShXSU4pCiB0eXBlZGVmIEhCSVRNQVAgRHJh
Z0ltYWdlUmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpCiB0eXBlZGVmIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IERyYWdJbWFnZVJl
ZjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXggMTk1YjY3
NmJjMmIuLjFkODBiNGMxODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBA
IC0xOTgsNyArMTk4LDcgQEAgV0VCQ09SRV9FWFBPUlQgYm9vbCBmaWxlc0hhdmVTYW1lVm9sdW1l
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogUmV0YWluUHRyPENGVVJMUmVmPiBwYXRo
QXNVUkwoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIFN0cmluZyBmaWxlbmFtZUZvckRpc3BsYXko
Y29uc3QgU3RyaW5nJik7CiBDU3RyaW5nIGFwcGxpY2F0aW9uRGlyZWN0b3J5UGF0aCgpOwogQ1N0
cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcAppbmRleCA3NzhjYWMyZDk4Yi4uZGRhNjgyZWI4
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRU
aW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRp
bWVyLmNwcApAQCAtMzQsNyArMzQsNyBAQCBNYWluVGhyZWFkU2hhcmVkVGltZXImIE1haW5UaHJl
YWRTaGFyZWRUaW1lcjo6c2luZ2xldG9uKCkKICAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKLSNp
ZiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiBN
YWluVGhyZWFkU2hhcmVkVGltZXI6Ok1haW5UaHJlYWRTaGFyZWRUaW1lcigpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5oCmluZGV4IDU5
MGY2ODk0YWQzLi40OTA3MzBmMTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TWFpblRocmVhZFNoYXJlZFRpbWVyLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJTaGFy
ZWRUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCi0jaWYgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CiAjZW5kaWYKIApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogICAgIE1h
aW5UaHJlYWRTaGFyZWRUaW1lcigpOwogCiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IG1fZmly
ZWRGdW5jdGlvbjsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXUEUpCiAgICAgUnVuTG9vcDo6VGltZXI8TWFpblRocmVhZFNoYXJlZFRpbWVyPiBtX3Rp
bWVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFz
dGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCmluZGV4IDhj
MjEzZDllMzI5Li44N2FjN2YwZTQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aApAQCAtNjIsNyArNjIsNyBAQCBlbnVtIFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckRh
dGFUcmFuc2ZlciB7IERlZmF1bHRTZWxlY3RlZFRleHRUeXBlLCBJbmNsdQogLy8gRm9yIHdyaXRp
bmcgdG8gdGhlIHBhc3RlYm9hcmQuIEdlbmVyYWxseSBzb3J0ZWQgd2l0aCB0aGUgcmljaGVzdCBm
b3JtYXRzIG9uIHRvcC4KIAogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50IHsKLSNpZiAhKFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSkKKyNpZiAhKFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUpKQogICAgIFdFQkNPUkVfRVhQT1JUIFBhc3RlYm9h
cmRXZWJDb250ZW50KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgflBhc3RlYm9hcmRXZWJDb250ZW50
KCk7CiAgICAgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZTsKQEAgLTgwLDYgKzgwLDEwIEBAIHN0
cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7CiAgICAgU3RyaW5nIHRleHQ7CiAgICAgU3RyaW5n
IG1hcmt1cDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBTdHJpbmcgdGV4dDsKKyAg
ICBTdHJpbmcgbWFya3VwOworI2VuZGlmCiB9OwogCiBzdHJ1Y3QgUGFzdGVib2FyZFVSTCB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oCmluZGV4IGQ3MmYx
MjBmY2ZjLi4zYzZkYTZjN2JhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVi
b2FyZFN0cmF0ZWd5LmgKQEAgLTczLDEwICs3MywxOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBs
b25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAg
ICAgdmlydHVhbCBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwog
I2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9DbGlw
Ym9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU2VsZWN0aW9uRGF0YSYp
ID0gMDsKICAgICB2aXJ0dWFsIFJlZjxTZWxlY3Rpb25EYXRhPiByZWFkRnJvbUNsaXBib2FyZChj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAjZW5kaWYgLy8gUExBVEZPUk0oR1RL
KQorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwgdm9pZCBnZXRUeXBlcyhWZWN0b3I8
U3RyaW5nPiYgdHlwZXMpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyByZWFkU3RyaW5nRnJvbVBh
c3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRXZWJDb250
ZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSA9IDA7CisjZW5kaWYKKwogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgflBhc3RlYm9hcmRTdHJhdGVneSgpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAppbmRleCA4NWE4YzlmYzA1Yy4u
MjNmNmYzMGM1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
UGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVi
b2FyZC5oCkBAIC00MCw2ICs0MCwxMCBAQCBPQkpDX0NMQVNTIE5TUGFzdGVib2FyZDsKIE9CSkNf
Q0xBU1MgVUlQYXN0ZWJvYXJkOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCitzdHJ1Y3Qg
d3BlX3Bhc3RlYm9hcmQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
b2xvcjsKQEAgLTUzLDcgKzU3LDcgQEAgc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50OwogY2xh
c3MgUGxhdGZvcm1QYXN0ZWJvYXJkIHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBleHBs
aWNpdCBQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7Ci0j
aWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oV1BFKQogICAg
IFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtUGFzdGVib2FyZCgpOwogICAgIFdFQkNPUkVfRVhQT1JU
IFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbigpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZ2V0VHlwZXNCeUZpZGVsaXR5Rm9ySXRlbUF0SW5kZXgoVmVjdG9yPFN0
cmluZz4mIHR5cGVzLCBpbnQgaW5kZXgpOwpAQCAtMTEwLDYgKzExNCw5IEBAIHByaXZhdGU6CiAj
aWYgUExBVEZPUk0oR1RLKQogICAgIEd0a0NsaXBib2FyZCogbV9jbGlwYm9hcmQ7CiAjZW5kaWYK
KyNpZiBQTEFURk9STShXUEUpCisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkKiBtX3Bhc3RlYm9h
cmQ7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1NjaGVtZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lz
dHJ5LmNwcAppbmRleCA1YmFkM2NkMGQ1Ni4uNjRlMzU2Mzk2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIFVS
TFNjaGVtZXNNYXAmIHNlY3VyZVNjaGVtZXMoKQogICAgICAgICBzZWN1cmVTY2hlbWVzLmdldCgp
LmFkZCgiYWJvdXQiKTsKICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoImRhdGEiKTsK
ICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoIndzcyIpOwotI2lmIFBMQVRGT1JNKEdU
SykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAgICAgc2VjdXJlU2No
ZW1lcy5nZXQoKS5hZGQoInJlc291cmNlIik7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1dpZGdldC5oCmluZGV4IDU1YjQ5YTRkZGM3Li41ZDdhYTQ4YTcxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vV2lkZ2V0LmgKQEAgLTYxLDYgKzYxLDEwIEBAIHR5cGVkZWYgc3RydWN0IF9HdGtDb250YWlu
ZXIgR3RrQ29udGFpbmVyOwogdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OwogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtV2lkZ2V0Owor
I2VuZGlmCisKIHR5cGVkZWYgUGxhdGZvcm1XaWRnZXQgUGxhdGZvcm1QYWdlQ2xpZW50OwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nbGliL0F1ZGlvQnVzR0xpYi5jcHAKaW5kZXggNzkxYmZhMzk2MzYuLjgxOTc1YjY0YTVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xp
Yi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dM
aWIuY3BwCkBAIC0yNywxMSArMjcsMTcgQEAKICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCisjaWYgUExBVEZPUk0oR1RLKQor
I2RlZmluZSBBVURJT19HUkVTT1VSQ0VfUEFUSCAiL29yZy93ZWJraXRndGsvcmVzb3VyY2VzL2F1
ZGlvIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2RlZmluZSBBVURJT19HUkVTT1VSQ0VfUEFUSCAi
L29yZy93ZWJraXR3cGUvcmVzb3VyY2VzL2F1ZGlvIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmxvYWRQbGF0Zm9ybVJlc291
cmNlKGNvbnN0IGNoYXIqIG5hbWUsIGZsb2F0IHNhbXBsZVJhdGUpCiB7Ci0gICAgR1VuaXF1ZVB0
cjxjaGFyPiBwYXRoKGdfc3RyZHVwX3ByaW50ZigiL29yZy93ZWJraXRndGsvcmVzb3VyY2VzL2F1
ZGlvLyVzIiwgbmFtZSkpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aChnX3N0cmR1cF9wcmlu
dGYoQVVESU9fR1JFU09VUkNFX1BBVEggIi8lcyIsIG5hbWUpKTsKICAgICBHUmVmUHRyPEdCeXRl
cz4gZGF0YSA9IGFkb3B0R1JlZihnX3Jlc291cmNlc19sb29rdXBfZGF0YShwYXRoLmdldCgpLCBH
X1JFU09VUkNFX0xPT0tVUF9GTEFHU19OT05FLCBudWxscHRyKSk7CiAgICAgQVNTRVJUKGRhdGEp
OwogICAgIHJldHVybiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUoZ19ieXRlc19nZXRf
ZGF0YShkYXRhLmdldCgpLCBudWxscHRyKSwgZ19ieXRlc19nZXRfc2l6ZShkYXRhLmdldCgpKSwg
ZmFsc2UsIHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0Zp
bGVTeXN0ZW1HbGliLmNwcAppbmRleCAzY2Q1NDdiNzdhNi4uMjY1MTA0N2UxYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCkBAIC0yMTMs
NiArMjEzLDkgQEAgQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCkKICAgICBpZiAoIWNhY2hl
ZFBhdGguaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBjYWNoZWRQYXRoOwogCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRhdGFQYXRoKGdfYnVpbGRfZmlsZW5hbWUo
REFUQV9ESVIsICJ3cGUiLCBudWxscHRyKSk7CisjZWxpZiBQTEFURk9STShHVEspCiAjaWYgT1Mo
V0lORE9XUykKICAgICBITU9EVUxFIGhtb2R1bGUgPSAwOwogICAgIEdldE1vZHVsZUhhbmRsZUV4
QShHRVRfTU9EVUxFX0hBTkRMRV9FWF9GTEFHX0ZST01fQUREUkVTUywgcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4oc2hhcmVkUmVzb3VyY2VzUGF0aCksICZobW9kdWxlKTsKQEAgLTIyMiw2ICsyMjUs
NyBAQCBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQogI2Vsc2UKICAgICBHVW5pcXVlUHRy
PGdjaGFyPiBkYXRhUGF0aChnX2J1aWxkX2ZpbGVuYW1lKERBVEFfRElSLCAid2Via2l0Z3RrLSIg
V0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORywgTlVMTCkpOwogI2VuZGlmCisjZW5kaWYKIAog
ICAgIGNhY2hlZFBhdGggPSBkYXRhUGF0aC5nZXQoKTsKICAgICByZXR1cm4gY2FjaGVkUGF0aDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0
QnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oCmluZGV4IDkxMTRlNzZjNzU5Li4yYWNjZmFkMTU5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCkBAIC0zNiw3
ICszNiw3IEBACiAjaW5jbHVkZSA8T3BlbkdML2dsLmg+CiAjZWxpZiBQTEFURk9STShXSU4pCiAj
aW5jbHVkZSAiT3BlbkdMRVNTaGltcy5oIgotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjaWYgVVNFKE9QRU5HTF9FU18yKQogI2luY2x1
ZGUgPEdMRVMyL2dsMi5oPgogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HTENvbnRleHQuY3BwCmluZGV4IDcwZjU4NzM5MmY2Li5jMTViZWM1ZTliMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0xMjAs
NyArMTIwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4gR0xDb250ZXh0OjpjcmVhdGVT
aGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmIGRpc3AKICAgICB9CiAjZW5kaWYKIAotI2lm
IFVTRShFR0wpIHx8IFBMQVRGT1JNKFdBWUxBTkQpCisjaWYgVVNFKEVHTCkgfHwgUExBVEZPUk0o
V0FZTEFORCkgfHwgUExBVEZPUk0oV1BFKQogICAgIGlmIChhdXRvIGVnbENvbnRleHQgPSBHTENv
bnRleHRFR0w6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KGRpc3BsYXkpKQogICAgICAgICByZXR1cm4g
V1RGTW92ZShlZ2xDb250ZXh0KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HTENvbnRleHQuaAppbmRleCAyYzBlYTI3ZTE5My4uOWQ2ZGIxNzJhZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCkBAIC0yNSw3ICsy
NSwxNCBAQAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiAjaWYgVVNFKEVHTCkgJiYg
IVBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShXUEUpCisvLyBGSVhNRTogRm9yIG5vdyBkZWZh
dWx0IHRvIHRoZSBHQk0gRUdMIHBsYXRmb3JtLCBidXQgdGhpcyBzaG91bGQgcmVhbGx5IGJlCisv
LyBzb21laG93IGRlZHVjaWJsZSBmcm9tIHRoZSBidWlsZCBjb25maWd1cmF0aW9uLgorI2RlZmlu
ZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKyNlbHNlCiAjaW5jbHVk
ZSAiZWdscGxhdGZvcm0uaCIKKyNlbmRpZgogdHlwZWRlZiBFR0xOYXRpdmVXaW5kb3dUeXBlIEdM
TmF0aXZlV2luZG93VHlwZTsKICNlbHNlCiB0eXBlZGVmIHVpbnQ2NF90IEdMTmF0aXZlV2luZG93
VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQzRC5oCmluZGV4IDdkODBkNWI0NWI0Li5iMmI3OTUyNTQ1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBA
IC02MCw3ICs2MCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogT0JKQ19DTEFTUyBD
QUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwotI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXSU5fQ0FJUk8pCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTl9D
QUlSTykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB1bnNpZ25lZCBpbnQgR0x1aW50OwogI2Vu
ZGlmCiAKQEAgLTEzNzMsNyArMTM3Myw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFwRm9yU2hhZGVyczsKIAotI2lmICgoUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXSU4pKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQorI2lmICgoUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKFdQRSkpICYmIFVTRShPUEVO
R0xfRVNfMikpCiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTEVTOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0xFUz4gbV9leHRlbnNpb25zOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hp
bXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaApp
bmRleCBiNGU5NTE1NzIxNy4uYWI3YzZiOGYzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5k
ZWYgT3BlbkdMRVNTaGltc19oCiAjZGVmaW5lIE9wZW5HTEVTU2hpbXNfaAogCi0jaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
SU4pIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgZ2xCaW5kRnJhbWVidWZmZXJFWFQgZ2xCaW5k
RnJhbWVidWZmZXIKICNkZWZpbmUgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyREVYVCBnbEZyYW1lYnVm
ZmVyVGV4dHVyZTJECiAjZGVmaW5lIGdsQmluZFJlbmRlcmJ1ZmZlckVYVCBnbEJpbmRSZW5kZXJi
dWZmZXIKQEAgLTQ1LDYgKzQ1LDcgQEAKICNkZWZpbmUgZ2xJc0ZyYW1lYnVmZmVyRVhUIGdsSXNG
cmFtZWJ1ZmZlcgogI2RlZmluZSBnbEdlbmVyYXRlTWlwbWFwRVhUIGdsR2VuZXJhdGVNaXBtYXAK
ICNkZWZpbmUgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQgR0xfREVQVEhfQVRUQUNITUVOVAorI2Rl
ZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMF9FWFQgR0xfQ09MT1JfQVRUQUNITUVOVDAKICNkZWZp
bmUgR0xfRlJBTUVCVUZGRVJfQ09NUExFVEVfRVhUIEdMX0ZSQU1FQlVGRkVSX0NPTVBMRVRFCiAj
ZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0VYVCBHTF9GUkFNRUJVRkZFUgogI2RlZmluZSBHTF9ERVBU
SDI0X1NURU5DSUw4X0VYVCBHTF9ERVBUSDI0X1NURU5DSUw4X09FUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggNjdl
ZmJjZWI4YjMuLjFiNzE5NTRmNTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTQyLDYgKzQyLDEwIEBACiAjaW5j
bHVkZSAiUGxhdGZvcm1EaXNwbGF5V2luLmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkK
KyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0o
R1RLKQogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNlbmRpZgpAQCAtMTAwLDYgKzEwNCwxMCBAQCBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9ybURpc3BsYXk6OmNyZWF0ZVBs
YXRmb3JtRGlzcGxheSgpCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1EaXNw
bGF5WDExPihudWxscHRyKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVdQRT4oKTsKKyNlbmRpZgorCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oCmluZGV4IGY3
NjRjMmQ0NTFmLi5jYjVmYTFlZjMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKQEAgLTU0LDYgKzU0LDkgQEAgcHVibGljOgog
I2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgV2luZG93cywKICNlbmRpZgorI2lmIFBMQVRGT1JN
KFdQRSkKKyAgICAgICAgV1BFLAorI2VuZGlmCiAgICAgfTsKIAogICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCAxYzFjZWMyNmFjZi4uOWZlNzU1ZmM1OGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRFR0wuY3BwCkBAIC0yMDQsNiArMjA0LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRl
eHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoUGxhdGZvcm1EaXNwbGF5
CiAgICAgaWYgKGVnbEJpbmRBUEkoZ0VHTEFQSVZlcnNpb24pID09IEVHTF9GQUxTRSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgaWYgKHBsYXRmb3Jt
RGlzcGxheS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXUEUpIHsKKyAgICAgICAg
aWYgKGF1dG8gY29udGV4dCA9IGNyZWF0ZVdQRUNvbnRleHQocGxhdGZvcm1EaXNwbGF5KSkKKyAg
ICAgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKyNlbmRpZgorCiAgICAgYXV0byBjb250
ZXh0ID0gY3JlYXRlU3VyZmFjZWxlc3NDb250ZXh0KHBsYXRmb3JtRGlzcGxheSk7CiAgICAgaWYg
KCFjb250ZXh0KSB7CiAjaWYgUExBVEZPUk0oWDExKQpAQCAtMjUxLDYgKzI1OCw5IEBAIEdMQ29u
dGV4dEVHTDo6fkdMQ29udGV4dEVHTCgpCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKICAgICBkZXN0
cm95V2F5bGFuZFdpbmRvdygpOwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIGRlc3Ry
b3lXUEVUYXJnZXQoKTsKKyNlbmRpZgogfQogCiBib29sIEdMQ29udGV4dEVHTDo6Y2FuUmVuZGVy
VG9EZWZhdWx0RnJhbWVidWZmZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCmluZGV4IGU1YTMzNTk3ZDdiLi45YTAzM2ZlYjJi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29u
dGV4dEVHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRFR0wuaApAQCAtMzIsNiArMzIsMTAgQEAKIHN0cnVjdCB3bF9lZ2xfd2luZG93OwogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgi
CisjZW5kaWYKKwogdHlwZWRlZiB2b2lkICpFR0xDb25maWc7CiB0eXBlZGVmIHZvaWQgKkVHTENv
bnRleHQ7CiB0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7CkBAIC03Myw2ICs3Nyw5IEBAIHByaXZh
dGU6CiAgICAgR0xDb250ZXh0RUdMKFBsYXRmb3JtRGlzcGxheSYsIEVHTENvbnRleHQsIEVHTFN1
cmZhY2UsIFdsVW5pcXVlUHRyPHN0cnVjdCB3bF9zdXJmYWNlPiYmLCBzdHJ1Y3Qgd2xfZWdsX3dp
bmRvdyopOwogICAgIHZvaWQgZGVzdHJveVdheWxhbmRXaW5kb3coKTsKICNlbmRpZgorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICB2b2lkIGRlc3Ryb3lXUEVUYXJnZXQoKTsKKyNlbmRpZgogCiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVdpbmRvd0NvbnRleHQo
R0xOYXRpdmVXaW5kb3dUeXBlLCBQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNoYXJpbmdD
b250ZXh0ID0gbnVsbHB0cik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRF
R0w+IGNyZWF0ZVBidWZmZXJDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYsIEVHTENvbnRleHQgc2hh
cmluZ0NvbnRleHQgPSBudWxscHRyKTsKQEAgLTg1LDYgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlV2F5bGFuZENvbnRleHQo
UGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIpOwog
ICAgIHN0YXRpYyBFR0xTdXJmYWNlIGNyZWF0ZVdpbmRvd1N1cmZhY2VXYXlsYW5kKEVHTERpc3Bs
YXksIEVHTENvbmZpZywgR0xOYXRpdmVXaW5kb3dUeXBlKTsKICNlbmRpZgorI2lmIFBMQVRGT1JN
KFdQRSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlV1BF
Q29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVs
bHB0cik7CisjZW5kaWYKIAogICAgIHN0YXRpYyBib29sIGdldEVHTENvbmZpZyhFR0xEaXNwbGF5
LCBFR0xDb25maWcqLCBFR0xTdXJmYWNlVHlwZSk7CiAKQEAgLTk4LDYgKzEwOCw5IEBAIHByaXZh
dGU6CiAgICAgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+IG1fd2xTdXJmYWNlOwogICAg
IHN0cnVjdCB3bF9lZ2xfd2luZG93KiBtX3dsV2luZG93IHsgbnVsbHB0ciB9OwogI2VuZGlmCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6
OkVHTE9mZnNjcmVlblRhcmdldD4gbV93cGVUYXJnZXQ7CisjZW5kaWYKICNpZiBVU0UoQ0FJUk8p
CiAgICAgY2Fpcm9fZGV2aWNlX3QqIG1fY2Fpcm9EZXZpY2UgeyBudWxscHRyIH07CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRFR0xXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29u
dGV4dEVHTFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlm
M2Y0MmQ3NjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHTENvbnRleHRFR0wuaCIKKwor
I2lmIFVTRShFR0wpICYmIFBMQVRGT1JNKFdQRSkKKworI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxh
eVdQRS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxHTENvbnRl
eHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlV1BFQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmIHBs
YXRmb3JtRGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCkKK3sKKyAgICBhdXRvIG9m
ZnNjcmVlblRhcmdldCA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdQRT4ocGxhdGZvcm1EaXNw
bGF5KS5jcmVhdGVFR0xPZmZzY3JlZW5UYXJnZXQoKTsKKyAgICBhdXRvIGNvbnRleHQgPSBjcmVh
dGVXaW5kb3dDb250ZXh0KG9mZnNjcmVlblRhcmdldC0+bmF0aXZlV2luZG93KCksIHBsYXRmb3Jt
RGlzcGxheSwgc2hhcmluZ0NvbnRleHQpOworICAgIGlmIChjb250ZXh0KQorICAgICAgICBjb250
ZXh0LT5tX3dwZVRhcmdldCA9IFdURk1vdmUob2Zmc2NyZWVuVGFyZ2V0KTsKKyAgICByZXR1cm4g
Y29udGV4dDsKK30KKwordm9pZCBHTENvbnRleHRFR0w6OmRlc3Ryb3lXUEVUYXJnZXQoKQorewor
ICAgIG1fd3BlVGFyZ2V0ID0gbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gVVNFKEVHTCkgJiYgUExBVEZPUk0oV1BFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IGNkYTA1MzQyMjU3
Li5jYTRmMDkwNzQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNTksNyArNTksOSBAQAogI2VuZGlmCiAKICNpZiBVU0Uo
RUdMKQorI2lmICFQTEFURk9STShXUEUpCiAjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisjZW5k
aWYKICNpbmNsdWRlIDxnc3QvZ2wvZWdsL2dzdGdsZGlzcGxheV9lZ2wuaD4KICNlbmRpZgogCkBA
IC02OSw2ICs3MSw4IEBACiAKICNpZiBQTEFURk9STShXQVlMQU5EKQogI2luY2x1ZGUgIlBsYXRm
b3JtRGlzcGxheVdheWxhbmQuaCIKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0
Zm9ybURpc3BsYXlXUEUuaCIKICNlbmRpZgogCiAvLyBnc3RnbGFwaS5oIG1heSBpbmNsdWRlIGVn
bHBsYXRmb3JtLmggYW5kIGl0IGluY2x1ZGVzIFguaCwgd2hpY2gKQEAgLTQzOCw2ICs0NDIsMTEg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjplbnN1cmVHc3RHTENvbnRl
eHQoKQogICAgICAgICAgICAgbV9nbERpc3BsYXkgPSBHU1RfR0xfRElTUExBWShnc3RfZ2xfZGlz
cGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V2F5
bGFuZD4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7CiAjZW5kaWYKIAorI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICAgICAgQVNTRVJUKGlzPFBsYXRmb3JtRGlzcGxheVdQRT4oc2hhcmVkRGlz
cGxheSkpOworICAgICAgICBtX2dsRGlzcGxheSA9IEdTVF9HTF9ESVNQTEFZKGdzdF9nbF9kaXNw
bGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXUEU+
KHNoYXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOworI2VuZGlmCisKICAgICAgICAgQVNTRVJU
KG1fZ2xEaXNwbGF5KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RP
cGVuR0xDb21tb24uY3BwCmluZGV4IGM3YTBlYzdmMjUyLi5hYWRlMTc1ZDZhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBAIC0zOTgsNyArMzk4
LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tWYXJ5aW5nc1BhY2tpbmcoUGxhdGZv
cm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXQKICAgICAgICAgdmFyaWFibGVzLnB1c2hfYmFj
ayh2YXJ5aW5nU3ltYm9sKTsKIAogICAgIEdDM0RpbnQgbWF4VmFyeWluZ1ZlY3RvcnMgPSAwOwot
I2lmICFQTEFURk9STShJT1MpICYmICEoKFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKSkg
JiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAhUExBVEZPUk0oSU9TKSAmJiAhKChQTEFURk9STShX
SU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkgJiYgVVNFKE9QRU5HTF9FU18y
KSkKICAgICBHQzNEaW50IG1heFZhcnlpbmdGbG9hdHMgPSAwOwogICAgIDo6Z2xHZXRJbnRlZ2Vy
dihHTF9NQVhfVkFSWUlOR19GTE9BVFMsICZtYXhWYXJ5aW5nRmxvYXRzKTsKICAgICBtYXhWYXJ5
aW5nVmVjdG9ycyA9IG1heFZhcnlpbmdGbG9hdHMgLyA0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5kM2MzN2JkZjhhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNwcApAQCAtMCwwICsxLDQ0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJY29uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworSWNvbjo6fkljb24oKQoreworfQorCit2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit7Cit9CisKK1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJ
Y29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQoreworICAgIHJldHVybiBudWxscHRy
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZWFhMzBhODU2NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisKKyNpbmNsdWRlIDxjc3Rk
aW8+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRtYXBJbWFnZTo6aW52YWxpZGF0
ZVBsYXRmb3JtRGF0YSgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SW1hZ2U+IEltYWdlOjpsb2FkUGxh
dGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSkKK3sKKyAgICBzdGQ6OmZwcmludGYo
c3RkZXJyLCAiV0FSTklORzogdHJ5aW5nIHRvIGxvYWQgcGxhdGZvcm0gcmVzb3VyY2UgJyVzJ1xu
IiwgcmVzb3VyY2UpOworICAgIHJldHVybiBCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkNWJiMWQxZjQxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5j
cHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5
V1BFLmgiCisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJHTENvbnRleHRFR0wuaCIK
KyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2luY2x1ZGUgPHdw
ZS9yZW5kZXJlci1iYWNrZW5kLWVnbC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BsYXRm
b3JtRGlzcGxheVdQRTo6UGxhdGZvcm1EaXNwbGF5V1BFKCkgPSBkZWZhdWx0OworCitQbGF0Zm9y
bURpc3BsYXlXUEU6On5QbGF0Zm9ybURpc3BsYXlXUEUoKQoreworICAgIHdwZV9yZW5kZXJlcl9i
YWNrZW5kX2VnbF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5
V1BFOjppbml0aWFsaXplKGludCBob3N0RmQpCit7CisgICAgbV9iYWNrZW5kID0gd3BlX3JlbmRl
cmVyX2JhY2tlbmRfZWdsX2NyZWF0ZShob3N0RmQpOworCisgICAgbV9lZ2xEaXNwbGF5ID0gZWds
R2V0RGlzcGxheSh3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZ2V0X25hdGl2ZV9kaXNwbGF5KG1f
YmFja2VuZCkpOworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAg
ICAgICAgZnByaW50ZihzdGRlcnIsICJQbGF0Zm9ybURpc3BsYXlXUEU6IGNvdWxkIG5vdCBjcmVh
dGUgdGhlIEVHTCBkaXNwbGF5LlxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBQ
bGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCk7Cit9CisKK3N0ZDo6dW5pcXVl
X3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gUGxhdGZvcm1EaXNwbGF5V1BFOjpj
cmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVudCwgaW50IGhvc3RGZCkKK3sK
KyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxFR0xUYXJnZXQ+KCp0aGlzLCBjbGllbnQsIGhv
c3RGZCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNj
cmVlblRhcmdldD4gUGxhdGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVFR0xPZmZzY3JlZW5UYXJnZXQo
KQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTE9mZnNjcmVlblRhcmdldD4oKnRo
aXMpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6RUdMVGFyZ2V0KGNvbnN0
IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSwgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJn
ZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQgaG9zdEZkKQorICAgIDogbV9kaXNwbGF5KGRpc3BsYXkp
CisgICAgLCBtX2NsaWVudChjbGllbnQpCit7CisgICAgbV9iYWNrZW5kID0gd3BlX3JlbmRlcmVy
X2JhY2tlbmRfZWdsX3RhcmdldF9jcmVhdGUoaG9zdEZkKTsKKworICAgIHN0YXRpYyBzdHJ1Y3Qg
d3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jbGllbnQgc19jbGllbnQgPSB7CisgICAg
ICAgIC8vIGZyYW1lX2NvbXBsZXRlCisgICAgICAgIFtdKHZvaWQqIGRhdGEpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGF1dG8mIHN1cmZhY2UgPSAqcmVpbnRlcnByZXRfY2FzdDxFR0xUYXJnZXQq
PihkYXRhKTsKKyAgICAgICAgICAgIHN1cmZhY2UubV9jbGllbnQuZnJhbWVDb21wbGV0ZSgpOwor
ICAgICAgICB9LAorICAgIH07CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9z
ZXRfY2xpZW50KG1fYmFja2VuZCwgJnNfY2xpZW50LCB0aGlzKTsKK30KKworUGxhdGZvcm1EaXNw
bGF5V1BFOjpFR0xUYXJnZXQ6On5FR0xUYXJnZXQoKQoreworICAgIHdwZV9yZW5kZXJlcl9iYWNr
ZW5kX2VnbF90YXJnZXRfZGVzdHJveShtX2JhY2tlbmQpOworfQorCit2b2lkIFBsYXRmb3JtRGlz
cGxheVdQRTo6RUdMVGFyZ2V0Ojppbml0aWFsaXplKGNvbnN0IEludFNpemUmIHNpemUpCit7Cisg
ICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9pbml0aWFsaXplKG1fYmFja2VuZCwg
bV9kaXNwbGF5Lm1fYmFja2VuZCwKKyAgICAgICAgc3RkOjptYXgoMCwgc2l6ZS53aWR0aCgpKSwg
c3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCitFR0xOYXRpdmVXaW5kb3dUeXBlIFBs
YXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpuYXRpdmVXaW5kb3coKSBjb25zdAoreworICAg
IHJldHVybiB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2dldF9uYXRpdmVfd2luZG93
KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OnJl
c2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2Vn
bF90YXJnZXRfcmVzaXplKG1fYmFja2VuZCwgc3RkOjptYXgoMCwgc2l6ZS53aWR0aCgpKSwgc3Rk
OjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6
RUdMVGFyZ2V0OjpmcmFtZVdpbGxSZW5kZXIoKQoreworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5k
X2VnbF90YXJnZXRfZnJhbWVfd2lsbF9yZW5kZXIobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0
Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVSZW5kZXJlZCgpCit7CisgICAgd3BlX3Jl
bmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV9yZW5kZXJlZChtX2JhY2tlbmQpOworfQor
CitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldDo6RUdMT2Zmc2NyZWVuVGFy
Z2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSkKK3sKKyAgICBtX3RhcmdldCA9
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2NyZWF0ZSgpOworICAg
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2luaXRpYWxpemUobV90
YXJnZXQsIGRpc3BsYXkubV9iYWNrZW5kKTsKK30KKworUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xP
ZmZzY3JlZW5UYXJnZXQ6On5FR0xPZmZzY3JlZW5UYXJnZXQoKQoreworICAgIHdwZV9yZW5kZXJl
cl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2Rlc3Ryb3kobV90YXJnZXQpOworfQorCitF
R0xOYXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0
OjpuYXRpdmVXaW5kb3coKSBjb25zdAoreworICAgIHJldHVybiB3cGVfcmVuZGVyZXJfYmFja2Vu
ZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRvdyhtX3RhcmdldCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3Bs
YXlXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURp
c3BsYXlXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTliMTUy
ZTM3ODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBM
QVRGT1JNKFdQRSkKKworI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheS5oIgorCisvLyBGSVhNRTog
Rm9yIG5vdyBkZWZhdWx0IHRvIHRoZSBHQk0gRUdMIHBsYXRmb3JtLCBidXQgdGhpcyBzaG91bGQg
cmVhbGx5IGJlCisvLyBzb21laG93IGRlZHVjaWJsZSBmcm9tIHRoZSBidWlsZCBjb25maWd1cmF0
aW9uLgorI2RlZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKwor
c3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFj
a2VuZF9lZ2xfdGFyZ2V0Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3Jl
ZW5fdGFyZ2V0OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dDsKK2Ns
YXNzIEludFNpemU7CisKK2NsYXNzIFBsYXRmb3JtRGlzcGxheVdQRSBmaW5hbCA6IHB1YmxpYyBQ
bGF0Zm9ybURpc3BsYXkgeworcHVibGljOgorICAgIFBsYXRmb3JtRGlzcGxheVdQRSgpOworICAg
IHZpcnR1YWwgflBsYXRmb3JtRGlzcGxheVdQRSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKGlu
dCk7CisKKyAgICBjbGFzcyBFR0xUYXJnZXQgeworICAgIHB1YmxpYzoKKyAgICAgICAgY2xhc3Mg
Q2xpZW50IHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1l
Q29tcGxldGUoKSA9IDA7CisgICAgICAgIH07CisKKyAgICAgICAgRUdMVGFyZ2V0KGNvbnN0IFBs
YXRmb3JtRGlzcGxheVdQRSYsIENsaWVudCYsIGludCk7CisgICAgICAgIH5FR0xUYXJnZXQoKTsK
KworICAgICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBFR0xO
YXRpdmVXaW5kb3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OworCisgICAgICAgIHZvaWQgcmVz
aXplKGNvbnN0IEludFNpemUmKTsKKworICAgICAgICB2b2lkIGZyYW1lV2lsbFJlbmRlcigpOwor
ICAgICAgICB2b2lkIGZyYW1lUmVuZGVyZWQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNv
bnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OworICAgICAgICBDbGllbnQmIG1fY2xp
ZW50OworICAgICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldCogbV9i
YWNrZW5kOworICAgIH07CisKKyAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQgeworICAgIHB1
YmxpYzoKKyAgICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQ
RSYpOworICAgICAgICB+RUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKKyAgICAgICAgRUdMTmF0aXZl
V2luZG93VHlwZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAg
IHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldCogbV90YXJn
ZXQ7CisgICAgfTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUYXJnZXQ+IGNyZWF0ZUVHTFRh
cmdldChFR0xUYXJnZXQ6OkNsaWVudCYsIGludCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVHTE9m
ZnNjcmVlblRhcmdldD4gY3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKK3ByaXZhdGU6Cisg
ICAgVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1EaXNwbGF5OjpU
eXBlOjpXUEU7IH0KKworICAgIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2wqIG1fYmFj
a2VuZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19QTEFURk9STV9ESVNQTEFZKFBsYXRmb3JtRGlzcGxheVdQRSwgV1BFKQorCisjZW5kaWYg
Ly8gUExBVEZPUk0oV1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L0N1cnNvcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDRkYzk1NWY5MzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNw
cApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXJzb3IuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3Io
KSBjb25zdAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE3NjAxOTY5NzFiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCkBA
IC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3Mu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL2dsaWIvR1Vu
aXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAg
IHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJfU2VhcmNoIHRoZSBXZWIiKTsKK30KKworU3RyaW5n
IHVuYWNjZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiVW5hY2NlcHRhYmxlIFRMUyBjZXJ0aWZpY2F0ZSIpOworfQorCitTdHJpbmcgbG9jYWxp
emVkU3RyaW5nKGNvbnN0IGNoYXIqIGtleSkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OChrZXksIHN0cmxlbihrZXkpKTsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93cGUvUGFzdGVib2FyZFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93cGUvUGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjJjNzgwMDgzZmQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZFN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJhdGVnaWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRy
PFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCit7CisgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKK30KKworc3RkOjp1bmlxdWVf
cHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQoreworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7Cit9CisKK1Bhc3RlYm9hcmQ6OlBhc3Rl
Ym9hcmQoKQoreworfQorCitib29sIFBhc3RlYm9hcmQ6Omhhc0RhdGEoKQoreworICAgIC8vIEZJ
WE1FOiBHZXR0aW5nIHRoZSBsaXN0IG9mIHR5cGVzIGZvciB0aGlzIGlzIHdhc3RlZnVsLiBEbyB0
aGlzIGluIHRoZSBVSSBwcm9jZXNzLgorICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHBs
YXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMp
OworICAgIHJldHVybiAhdHlwZXMuaXNFbXB0eSgpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0
ZWJvYXJkOjp0eXBlcygpCit7CisgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CisgICAgcGxhdGZv
cm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcyk7Cisg
ICAgcmV0dXJuIHR5cGVzOworfQorCitTdHJpbmcgUGFzdGVib2FyZDo6cmVhZFN0cmluZyhjb25z
dCBTdHJpbmcmIHR5cGUpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0
ZWJvYXJkU3RyYXRlZ3koKS0+cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKDAsIHR5cGUpOworfQor
Cit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU3RyaW5nKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0KQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3Ry
YXRlZ3koKS0+d3JpdGVUb1Bhc3RlYm9hcmQodHlwZSwgdGV4dCk7Cit9CisKK3ZvaWQgUGFzdGVi
b2FyZDo6Y2xlYXIoKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0cmlu
ZyYpCit7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0
ZXh0KQoreworICAgIHRleHQudGV4dCA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKDAsICJ0ZXh0L3BsYWluO2NoYXJz
ZXQ9dXRmLTgiKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRXZWJDb250
ZW50UmVhZGVyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKCJ0ZXh0L3Bs
YWluO2NoYXJzZXQ9dXRmLTgiLCB1cmwudXJsLnN0cmluZygpKTsKK30KKwordm9pZCBQYXN0ZWJv
YXJkOjp3cml0ZVRydXN0d29ydGh5V2ViVVJMc1Bib2FyZFR5cGUoY29uc3QgUGFzdGVib2FyZFVS
TCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0
ZShjb25zdCBQYXN0ZWJvYXJkSW1hZ2UmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
KGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+d3JpdGVUb1Bhc3RlYm9hcmQoY29udGVu
dCk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQorewor
ICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOworfQorCitib29sIFBhc3RlYm9hcmQ6OmNhblNt
YXJ0UmVwbGFjZSgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBhc3RlYm9hcmQ6
OndyaXRlTWFya3VwKGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3Jp
dGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBTbWFydFJlcGxhY2VPcHRpb24pCit7Cisg
ICAgd3JpdGVTdHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIsIHRleHQpOworfQorCit2
b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJikKK3sKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmE0ZjM4ZTExZjAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcApA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25F
dmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRzQ29tcGF0aWJpbGl0eSkKK3sKKyAgICBBU1NF
UlQobV90eXBlID09IEtleURvd24pOworICAgIG1fdHlwZSA9IHR5cGU7CisgICAgaWYgKGJhY2t3
YXJkc0NvbXBhdGliaWxpdHkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09IFBs
YXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKKyAgICAgICAgbV90ZXh0ID0gU3RyaW5nKCk7Cisg
ICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBtX2tleUlkZW50aWZpZXIgPSBTdHJpbmcoKTsKKyAgICAgICAgbV93aW5kb3dzVmlydHVhbEtl
eUNvZGUgPSAwOworICAgIH0KK30KKworYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJl
bnRDYXBzTG9ja1N0YXRlKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGxhdGZv
cm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiwgYm9vbCYsIGJv
b2wmLCBib29sJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTQ1NmVlZTJkZjMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJk
V1BFLmNwcApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1QYXN0ZWJvYXJkLmgiCisKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCisjaW5jbHVkZSA8bWFw
PgorI2luY2x1ZGUgPHdwZS9wYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRmb3JtUGFzdGVib2FyZChjb25zdCBTdHJpbmcm
KQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sK
KyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30KKworUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0
Zm9ybVBhc3RlYm9hcmQoKQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9z
aW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30KKwordm9pZCBQbGF0
Zm9ybVBhc3RlYm9hcmQ6OmdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBz
dHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3ZlY3RvciBwYXN0ZWJvYXJkVHlwZXMgPSB7IG51
bGxwdHIsIDAgfTsKKyAgICB3cGVfcGFzdGVib2FyZF9nZXRfdHlwZXMobV9wYXN0ZWJvYXJkLCAm
cGFzdGVib2FyZFR5cGVzKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXN0ZWJv
YXJkVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgdHlwZVN0cmluZyA9IHBhc3Rl
Ym9hcmRUeXBlcy5zdHJpbmdzW2ldOworICAgICAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKHR5cGVT
dHJpbmcuZGF0YSwgdHlwZVN0cmluZy5sZW5ndGgpKTsKKyAgICB9CisKKyAgICB3cGVfcGFzdGVi
b2FyZF9zdHJpbmdfdmVjdG9yX2ZyZWUoJnBhc3RlYm9hcmRUeXBlcyk7Cit9CisKK1N0cmluZyBQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoaW50LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7
CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZyBzdHJpbmc7CisgICAgd3BlX3Bhc3Rl
Ym9hcmRfZ2V0X3N0cmluZyhtX3Bhc3RlYm9hcmQsIHR5cGUudXRmOCgpLmRhdGEoKSwgJnN0cmlu
Zyk7CisKKyAgICBTdHJpbmcgcmV0dXJuVmFsdWUoc3RyaW5nLmRhdGEsIHN0cmluZy5sZW5ndGgp
OworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnN0cmluZyk7CisgICAgcmV0dXJu
IHJldHVyblZhbHVlOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3Qg
UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIg
cGxhaW5UZXh0W10gPSAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IjsKKyAgICBzdGF0aWMgY29u
c3QgY2hhciBodG1sVGV4dFtdID0gInRleHQvaHRtbDtjaGFyc2V0PXV0Zi04IjsKKworICAgIENT
dHJpbmcgdGV4dFN0cmluZyA9IGNvbnRlbnQudGV4dC51dGY4KCk7CisgICAgQ1N0cmluZyBtYXJr
dXBTdHJpbmcgPSBjb250ZW50Lm1hcmt1cC51dGY4KCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3Rl
Ym9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwg
eyBudWxscHRyLCAwIH0gfSwKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAw
IH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWly
c1swXS50eXBlLCBwbGFpblRleHQsIHN0cmxlbihwbGFpblRleHQpKTsKKyAgICB3cGVfcGFzdGVi
b2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCB0ZXh0U3RyaW5nLmRhdGEo
KSwgdGV4dFN0cmluZy5sZW5ndGgoKSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRp
YWxpemUoJnBhaXJzWzFdLnR5cGUsIGh0bWxUZXh0LCBzdHJsZW4oaHRtbFRleHQpKTsKKyAgICB3
cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMV0uc3RyaW5nLCBtYXJrdXBT
dHJpbmcuZGF0YSgpLCBtYXJrdXBTdHJpbmcubGVuZ3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFz
dGVib2FyZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFpcnMsIDIgfTsKKworICAgIHdwZV9wYXN0ZWJv
YXJkX3dyaXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJp
bmdfZnJlZSgmcGFpcnNbMF0udHlwZSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUo
JnBhaXJzWzBdLnN0cmluZyk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJz
WzFdLnR5cGUpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1sxXS5zdHJp
bmcpOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRf
c3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxs
cHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXpl
KCZwYWlyc1swXS50eXBlLCB0eXBlLnV0ZjgoKS5kYXRhKCksIHR5cGUudXRmOCgpLmxlbmd0aCgp
KTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5n
LCBzdHJpbmcudXRmOCgpLmRhdGEoKSwgc3RyaW5nLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgc3Ry
dWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAgbWFwID0geyBwYWlycywgMSB9OworCisgICAg
d3BlX3Bhc3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJvYXJkLCAmbWFwKTsKKworICAgIHdwZV9wYXN0
ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS50eXBlKTsKKyAgICB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVu
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUwOGViN2RlOGM5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2Ny
ZWVuV1BFLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVNjcmVlbi5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitpbnQgc2NyZWVuRGVwdGgoV2lk
Z2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAyNDsKK30KKworaW50
IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gODsKK30KKworYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBz
Y3JlZW5IYXNJbnZlcnRlZENvbG9ycygpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitGbG9h
dFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDApOworfQorCitGbG9hdFJlY3Qgc2NyZWVu
QXZhaWxhYmxlUmVjdChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDApOworfQorCitib29sIHNjcmVlblN1cHBvcnRz
RXh0ZW5kZWRDb2xvcihXaWRnZXQqKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1JlbmRlclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJU
aGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI1OWUz
M2JkY2MyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Jl
bmRlclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW5kZXJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNs
dWRlICJVc2VyQWdlbnRTY3JpcHRzLmgiCisjaW5jbHVkZSAiVXNlckFnZW50U3R5bGVTaGVldHMu
aCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUmVmPFJlbmRlclRoZW1lPiBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2Uq
KQoreworICAgIHN0YXRpYyBSZW5kZXJUaGVtZSYgdGhlbWUgPSBSZW5kZXJUaGVtZVdQRTo6Y3Jl
YXRlKCkubGVha1JlZigpOworICAgIHJldHVybiB0aGVtZTsKK30KKwordm9pZCBSZW5kZXJUaGVt
ZVdQRTo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRD
YXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6ZXh0cmFEZWZhdWx0U3R5bGVTaGVldCgpCit7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCisjaWYgRU5BQkxFKFZJREVPKQorU3RyaW5nIFJlbmRlclRo
ZW1lV1BFOjptZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbChtZWRpYUNvbnRyb2xzQmFzZVVzZXJBZ2VudFN0eWxlU2hlZXQpOworfQorCitTdHJpbmcg
UmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQoreworICAgIFN0cmluZ0J1aWxk
ZXIgc2NyaXB0QnVpbGRlcjsKKyAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xz
TG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVk
U3RyaW5nc0phdmFTY3JpcHQpKTsKKyAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRy
b2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsK
KyAgICByZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworfQorI2VuZGlmCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
UmVuZGVyVGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVt
ZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZmIyZmU4OTRj
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJU
aGVtZVdQRS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUmVuZGVyVGhlbWVXUEUgZmluYWwgOiBwdWJsaWMgUmVuZGVyVGhlbWUgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8UmVuZGVyVGhlbWU+IGNyZWF0ZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW5kZXJUaGVtZVdQRSk7CisgICAgfQorCisgICAgU3Ry
aW5nIGV4dHJhRGVmYXVsdFN0eWxlU2hlZXQoKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoVklERU8p
CisgICAgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7CisgICAgU3Ry
aW5nIG1lZGlhQ29udHJvbHNTY3JpcHQoKSBvdmVycmlkZTsKKyNlbmRpZgorCitwcml2YXRlOgor
ICAgIFJlbmRlclRoZW1lV1BFKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflJlbmRlclRoZW1l
V1BFKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCB1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3Jp
cHRpb24oQ1NTVmFsdWVJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0IG92ZXJyaWRl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjBmOWZlNWQ0ZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZVdQRS5oIgorCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIFNjcm9s
bGJhclRoZW1lV1BFOjpoYXNCdXR0b25zKFNjcm9sbGJhciYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFz
VGh1bWIoU2Nyb2xsYmFyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0
cnVlOworfQorCitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjpiYWNrQnV0dG9uUmVjdChTY3Jv
bGxiYXImLCBTY3JvbGxiYXJQYXJ0LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIEludFJlY3QoKTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6Zm9y
d2FyZEJ1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0ludFJlY3QgU2Ny
b2xsYmFyVGhlbWVXUEU6OnRyYWNrUmVjdChTY3JvbGxiYXImLCBib29sKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEludFJlY3QoKTsKK30KKworU2Nyb2xsYmFyVGhlbWUm
IFNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpCit7CisgICAgc3RhdGljIFNjcm9sbGJhclRo
ZW1lV1BFIHRoZW1lOworICAgIHJldHVybiB0aGVtZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRo
ZW1lV1BFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjcxODVhZGEyOWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhl
bWVXUEUuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWVDb21wb3NpdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJU
aGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZSB7CitwdWJsaWM6
CisgICAgU2Nyb2xsYmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U2Nyb2xs
YmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICBib29sIGhhc0J1dHRvbnMoU2Nyb2xsYmFy
Jikgb3ZlcnJpZGU7CisgICAgYm9vbCBoYXNUaHVtYihTY3JvbGxiYXImKSBvdmVycmlkZTsKKwor
ICAgIEludFJlY3QgYmFja0J1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9v
bCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICBJbnRSZWN0IGZvcndhcmRCdXR0b25S
ZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3Zl
cnJpZGU7CisgICAgSW50UmVjdCB0cmFja1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCBwYWludGluZyA9
IGZhbHNlKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5lOTE0NzdhNDU5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU291bmQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBzeXN0ZW1CZWVwKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1RoZW1lV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uZDVhZDk3NzNkODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93cGUvVGhlbWVXUEUuY3BwCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9h
dFJvdW5kZWRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVGhlbWUqIHBs
YXRmb3JtVGhlbWUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUaGVtZVdQRT4gdGhl
bWU7CisgICAgcmV0dXJuICZ0aGVtZS5nZXQoKTsKK30KKworTGVuZ3RoU2l6ZSBUaGVtZVdQRTo6
Y29udHJvbFNpemUoQ29udHJvbFBhcnQgcGFydCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNj
YWRlLCBjb25zdCBMZW5ndGhTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKSBjb25z
dAoreworICAgIGlmICghem9vbWVkU2l6ZS53aWR0aC5pc0ludHJpbnNpY09yQXV0bygpICYmICF6
b29tZWRTaXplLmhlaWdodC5pc0ludHJpbnNpY09yQXV0bygpKQorICAgICAgICByZXR1cm4gVGhl
bWU6OmNvbnRyb2xTaXplKHBhcnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFjdG9y
KTsKKworICAgIHN3aXRjaCAocGFydCkgeworICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgorICAgIGNh
c2UgUmFkaW9QYXJ0OgorICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZSB7IExlbmd0aCgxMiwgRml4
ZWQpLCBMZW5ndGgoMTIsIEZpeGVkKSB9OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIHJldHVybiBUaGVtZTo6Y29udHJvbFNpemUocGFydCwgZm9udENhc2NhZGUs
IHpvb21lZFNpemUsIHpvb21GYWN0b3IpOworfQorCit2b2lkIFRoZW1lV1BFOjpwYWludChDb250
cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3Jv
bGxWaWV3KiwgZmxvYXQsIGZsb2F0KQoreworICAgIHN3aXRjaCAocGFydCkgeworICAgIGNhc2Ug
Q2hlY2tib3hQYXJ0OgorICAgICAgICBwYWludENoZWNrYm94KHN0YXRlcywgY29udGV4dCwgem9v
bWVkUmVjdCwgem9vbUZhY3Rvcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmFkaW9QYXJ0
OgorICAgICAgICBwYWludFJhZGlvKHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZh
Y3Rvcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHVzaEJ1dHRvblBhcnQ6CisgICAgICAg
IHBhaW50QnV0dG9uKHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7Cisg
ICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwor
dm9pZCBUaGVtZVdQRTo6cGFpbnRDaGVja2JveChDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCkK
K3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisK
KyAgICBGbG9hdFNpemUgY29ybmVyKDIsIDIpOworICAgIEZsb2F0Um91bmRlZFJlY3Qgcm91bmRl
ZFJlY3Qoem9vbWVkUmVjdCwgY29ybmVyLCBjb3JuZXIsIGNvcm5lciwgY29ybmVyKTsKKyAgICBQ
YXRoIHBhdGg7CisgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChyb3VuZGVkUmVjdCk7CisKKyAgICBj
b250ZXh0LnNldEZpbGxDb2xvcihtYWtlUkdCKDIyNCwgMjI0LCAyMjQpKTsKKyAgICBjb250ZXh0
LmZpbGxQYXRoKHBhdGgpOworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoMSk7Cisg
ICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsKKyAgICBjb250
ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisKKyAgICBpZiAoc3RhdGVzLnN0YXRlcygpICYgQ29udHJv
bFN0YXRlczo6Q2hlY2tlZFN0YXRlKSB7CisgICAgICAgIGF1dG8mIHJlY3QgPSByb3VuZGVkUmVj
dC5yZWN0KCk7CisKKyAgICAgICAgUGF0aCBjaGVja2VyUGF0aDsKKyAgICAgICAgY2hlY2tlclBh
dGgubW92ZVRvKEZsb2F0UG9pbnQocmVjdC54KCkgKyAzLCByZWN0Lm1heFkoKSAtIDMpKTsKKyAg
ICAgICAgY2hlY2tlclBhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQocmVjdC5tYXhYKCkgLSAzLCBy
ZWN0LnkoKSArIDMpKTsKKworICAgICAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcygyKTsK
KyAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDg0LCA4NCwgODQpKTsKKyAg
ICAgICAgY29udGV4dC5zdHJva2VQYXRoKGNoZWNrZXJQYXRoKTsKKyAgICB9Cit9CisKK3ZvaWQg
VGhlbWVXUEU6OnBhaW50UmFkaW8oQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQpCit7CisgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgUGF0
aCBwYXRoOworICAgIHBhdGguYWRkRWxsaXBzZSh6b29tZWRSZWN0KTsKKworICAgIGNvbnRleHQu
c2V0RmlsbENvbG9yKG1ha2VSR0IoMjI0LCAyMjQsIDIyNCkpOworICAgIGNvbnRleHQuZmlsbFBh
dGgocGF0aCk7CisKKyAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcygxKTsKKyAgICBjb250
ZXh0LnNldFN0cm9rZUNvbG9yKG1ha2VSR0IoOTQsIDk0LCA5NCkpOworICAgIGNvbnRleHQuc3Ry
b2tlUGF0aChwYXRoKTsKKworICAgIGlmIChzdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9sU3RhdGVz
OjpDaGVja2VkU3RhdGUpIHsKKyAgICAgICAgRmxvYXRSZWN0IGNoZWNrZXJSZWN0ID0gem9vbWVk
UmVjdDsKKyAgICAgICAgY2hlY2tlclJlY3QuaW5mbGF0ZSgtMyk7CisKKyAgICAgICAgUGF0aCBj
aGVja2VyUGF0aDsKKyAgICAgICAgY2hlY2tlclBhdGguYWRkRWxsaXBzZShjaGVja2VyUmVjdCk7
CisKKyAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQig4NCwgODQsIDg0KSk7Cisg
ICAgICAgIGNvbnRleHQuZmlsbFBhdGgoY2hlY2tlclBhdGgpOworICAgIH0KK30KKwordm9pZCBU
aGVtZVdQRTo6cGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQpCit7CisgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgRmxv
YXRTaXplIGNvcm5lcigyLCAyKTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpv
b21lZFJlY3QsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIsIGNvcm5lcik7CisgICAgUGF0aCBwYXRo
OworICAgIHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRlZFJlY3QpOworCisgICAgQ29sb3IgZmls
bENvbG9yID0gc3RhdGVzLnN0YXRlcygpICYgQ29udHJvbFN0YXRlczo6UHJlc3NlZFN0YXRlID8g
bWFrZVJHQigyNDQsIDI0NCwgMjQ0KSA6IG1ha2VSR0IoMjI0LCAyMjQsIDIyNCk7CisgICAgY29u
dGV4dC5zZXRGaWxsQ29sb3IoZmlsbENvbG9yKTsKKyAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgp
OworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoMSk7CisgICAgY29udGV4dC5zZXRT
dHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsKKyAgICBjb250ZXh0LnN0cm9rZVBhdGgo
cGF0aCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1RoZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcz
OWY1YzFlMWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1RoZW1lV1BFLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlRoZW1lLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGhlbWVXUEUgOiBwdWJsaWMgVGhlbWUg
eworcHVibGljOgorICAgIFRoZW1lV1BFKCkgeyB9CisgICAgdmlydHVhbCB+VGhlbWVXUEUoKSB7
IH0KKworICAgIExlbmd0aFNpemUgY29udHJvbFNpemUoQ29udHJvbFBhcnQsIGNvbnN0IEZvbnRD
YXNjYWRlJiwgY29uc3QgTGVuZ3RoU2l6ZSYsIGZsb2F0KSBjb25zdCBvdmVycmlkZTsKKworICAg
IHZvaWQgcGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCkgb3Zl
cnJpZGU7CisKK3ByaXZhdGU6CisgICAgdm9pZCBwYWludENoZWNrYm94KENvbnRyb2xTdGF0ZXMm
LCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCk7CisgICAgdm9pZCBw
YWludFJhZGlvKENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmLCBmbG9hdCk7CisgICAgdm9pZCBwYWludEJ1dHRvbihDb250cm9sU3RhdGVzJiwgR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1dpZGdl
dFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjJkZjBjYzZiMzYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcApAQCAt
MCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXaWRnZXQuaCIKKworI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2lkZ2V0OjpX
aWRnZXQoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQoreworICAgIGluaXQod2lkZ2V0KTsKK30KKwor
V2lkZ2V0Ojp+V2lkZ2V0KCkKK3sKKyAgICBBU1NFUlQoIXBhcmVudCgpKTsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3Qm
IHJlY3QpCit7CisgICAgbV9mcmFtZSA9IHJlY3Q7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KworSW50UmVjdCBXaWRnZXQ6OmZyYW1lUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJh
bWU7Cit9CisKK3ZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRS
ZWN0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0Rm9j
dXMoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0
Q3Vyc29yKGNvbnN0IEN1cnNvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBXaWRnZXQ6OnNob3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lk
Z2V0OjpoaWRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6
c2V0SXNTZWxlY3RlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmMzgyOTY2ZmQ5Mi4uZjVlYWFlYzY5OGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAxNy0wNS0wNCAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtZGV2
IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJr
aXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBFeGlzdGluZyBmaWxlcyBj
aGFuZ2VkIHRvIHByb3Blcmx5IHVzZSBQTEFURk9STShXUEUpIGJ1aWxkIGd1YXJkcyBvciBvdGhl
cgorICAgICAgICBXUEUtc3BlY2lmaWMgYWRkaXRpb25zIChlLmcuIHBhc3RlYm9hcmQgc3VwcG9y
dCkuCisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBDaGFuZ2VMb2cg
ZW50cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0
TW9uaXRvci5jcHA6CisgICAgICAgICogUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAg
ICAqIFNjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsOgorICAgICAgICAqIFNo
YXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQ
RS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaDogQWRkZWQuCisgICAgICAgICog
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5n
UnVuTG9vcC5jcHA6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oOgorICAgICAgICAqIFNoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3Bw
OgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuaDoKKyAgICAgICAgKiBTaGFyZWQvRHJhd2luZ0FyZWFJbmZv
Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaDoKKyAgICAgICAg
KiBTaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVX
ZWJUb3VjaEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaDoK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaDoKKyAgICAgICAgKiBTaGFyZWQvd3BlL05hdGl2ZVdlYktleWJv
YXJkRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2lu
Z0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BF
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5o
LgorICAgICAgICAqIFNoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAg
KiBTaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dw
ZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQv
d3BlL1dlYkV2ZW50RmFjdG9yeS5jcHA6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC93cGUvV2Vi
RXZlbnRGYWN0b3J5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy93cGUvV0tWaWV3LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50
LmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5
V1BFLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQ
cm94eVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hl
ZWxFdmVudC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNw
cDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaDog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xs
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJl
Q29udHJvbGxlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHA6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL3dwZS9XUEVWaWV3Q2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQy
SW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0NoaWxkUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yU2Vy
dmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0xh
dW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL3dwZS9X
ZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJl
bmNlc1dQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaC4KKyAgICAg
ICAgKiBVSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcDogQWRkZWQuCisgICAgICAg
ICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdDJQ
cmVmaXguaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHA6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaDogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdS
dW5Mb29wLmguCisgICAgICAgICogV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogd3BlL3dwZS13ZWJraXQucGMuaW46IEFkZGVkLgorCiAyMDE3LTA1LTAzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVh
bV0gQWxsb3cgaG9zdCBhcHBsaWNhdGlvbiB0byBlbmFibGUvZGlzYWJsZSBtZWRpYSBjYXB0dXJl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9u
aXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRv
ci5jcHAKaW5kZXggMTQzMjliOTM4OTEuLjhkMTAxY2Y0ZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCkBAIC01MSw2ICs1
MSw5IEBAIHZvaWQgR1NvY2tldE1vbml0b3I6OnN0YXJ0KEdTb2NrZXQqIHNvY2tldCwgR0lPQ29u
ZGl0aW9uIGNvbmRpdGlvbiwgUnVuTG9vcCYgcnVuCiAgICAgZ19zb3VyY2Vfc2V0X25hbWUobV9z
b3VyY2UuZ2V0KCksICJbV2ViS2l0XSBTb2NrZXQgbW9uaXRvciIpOwogICAgIG1fY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKTsKICAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV9zb3VyY2Uu
Z2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHNvY2tldFNvdXJjZUNhbGxiYWNr
KSwgdGhpcywgbnVsbHB0cik7CisjaWYgUExBVEZPUk0oV1BFKQorICAgIGdfc291cmNlX3NldF9w
cmlvcml0eShtX3NvdXJjZS5nZXQoKSwgR19QUklPUklUWV9ISUdIICsgMzApOworI2VuZGlmCiAg
ICAgZ19zb3VyY2VfYXR0YWNoKG1fc291cmNlLmdldCgpLCBydW5Mb29wLm1haW5Db250ZXh0KCkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4zOWNlYTZhMTUzOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsNDczIEBACitmaWxlKE1BS0VfRElSRUNU
T1JZICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfSkKKworY29uZmlndXJlX2ZpbGUod3Bl
L3dwZS13ZWJraXQucGMuaW4gJHtDTUFLRV9CSU5BUllfRElSfS93cGUtd2Via2l0LnBjIEBPTkxZ
KQorCithZGRfZGVmaW5pdGlvbnMoLURXRUJLSVQyX0NPTVBJTEFUSU9OKQorCithZGRfZGVmaW5p
dGlvbnMoLURMSUJFWEVDRElSPSIke0xJQkVYRUNfSU5TVEFMTF9ESVJ9IikKKworc2V0KFdlYktp
dDJfVVNFX1BSRUZJWF9IRUFERVIgT04pCisKK2FkZF9jdXN0b21fdGFyZ2V0KHdlYmtpdDJ3cGUt
Zm9yd2FyZGluZy1oZWFkZXJzCisgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJL
SVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRl
LXBhdGggJHtXRUJLSVQyX0RJUn0gLS1vdXRwdXQgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSAt
LXBsYXRmb3JtIHdwZSAtLXBsYXRmb3JtIHNvdXAKKykKKworc2V0KFdFQktJVDJfRVhUUkFfREVQ
RU5ERU5DSUVTCisgICAgd2Via2l0MndwZS1mb3J3YXJkaW5nLWhlYWRlcnMKKykKKworbGlzdChB
UFBFTkQgV2ViUHJvY2Vzc19TT1VSQ0VTCisgICAgV2ViUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgv
V2ViUHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIE5ldHdvcmtQcm9jZXNzX1NPVVJD
RVMKKyAgICBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvTmV0d29ya1Byb2Nlc3NNYWlu
LmNwcAorKQorCitsaXN0KEFQUEVORCBEYXRhYmFzZVByb2Nlc3NfU09VUkNFUworICAgIERhdGFi
YXNlUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvRGF0YWJhc2VQcm9jZXNzTWFpbi5jcHAKKykKKwor
bGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCisgICAgTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJv
dG9jb2xzL3NvdXAvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHAKKworICAgIE5l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUNvZGVyc1NvdXAuY3BwCisgICAgTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YVNvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKKworICAgIE5ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrUHJvY2Vzc1NvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lv
blNvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dFNvdXAuY3BwCisKKyAgICBQbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHAKKwor
ICAgIFBsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcAorICAgIFBsYXRmb3JtL0lQ
Qy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorCisgICAgUGxhdGZvcm0vY2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5jcHAKKworICAgIFBsYXRmb3JtL2dsaWIvTW9k
dWxlR2xpYi5jcHAKKworICAgIFBsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCisgICAgUGxh
dGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorCisgICAgUGx1Z2luUHJvY2Vzcy91bml4
L1BsdWdpbkNvbnRyb2xsZXJQcm94eVVuaXguY3BwCisgICAgUGx1Z2luUHJvY2Vzcy91bml4L1Bs
dWdpblByb2Nlc3NNYWluVW5peC5jcHAKKyAgICBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJv
Y2Vzc1VuaXguY3BwCisKKyAgICBTaGFyZWQvQVBJL2MvY2Fpcm8vV0tJbWFnZUNhaXJvLmNwcAor
CisgICAgU2hhcmVkL0F1dGhlbnRpY2F0aW9uL3NvdXAvQXV0aGVudGljYXRpb25NYW5hZ2VyU291
cC5jcHAKKworICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZS5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9TaW1wbGVWaWV3
cG9ydENvbnRyb2xsZXIuY3BwCisKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAorICAgIFNoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJm
YWNlLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
dGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAorCisg
ICAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luTW9kdWxlWDExLmNw
cAorCisgICAgU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcAorCisgICAgU2hh
cmVkL2dsaWIvV2ViRXJyb3JzR2xpYi5jcHAKKworICAgIFNoYXJlZC9saW51eC9XZWJNZW1vcnlT
YW1wbGVyTGludXguY3BwCisKKyAgICBTaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNT
b3VwLmNwcAorICAgIFNoYXJlZC9zb3VwL1dlYkVycm9yc1NvdXAuY3BwCisKKyAgICBTaGFyZWQv
dW5peC9DaGlsZFByb2Nlc3NNYWluLmNwcAorCisgICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXli
b2FyZEV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5j
cHAKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3BwCisgICAgU2hhcmVk
L3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUvUHJvY2Vzc0V4
ZWN1dGFibGVQYXRoV1BFLmNwcAorICAgIFNoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcAor
CisgICAgVUlQcm9jZXNzL0JhY2tpbmdTdG9yZS5jcHAKKyAgICBVSVByb2Nlc3MvRGVmYXVsdFVu
ZG9Db250cm9sbGVyLmNwcAorICAgIFVJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmdO
b25lLmNwcAorICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5j
cHAKKyAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorCisg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3BwCisK
KyAgICBVSVByb2Nlc3MvQVBJL0MvY2Fpcm8vV0tJY29uRGF0YWJhc2VDYWlyby5jcHAKKworICAg
IFVJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLQ29va2llTWFuYWdlclNvdXAuY3BwCisKKyAgICBVSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBv
c2l0aW5nTWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVh
UHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCisg
ICAgVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCisgICAgVUlQ
cm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
Q2xpZW50LmNwcAorCisgICAgVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9zb3VwL1dlYlNvY2tl
dFNlcnZlclNvdXAuY3BwCisKKyAgICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJ
bnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCisKKyAgICBVSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nl
c3NMYXVuY2hlcldQRS5jcHAKKworICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5m
b1N0b3JlVW5peC5jcHAKKyAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQ
cm94eVVuaXguY3BwCisKKyAgICBVSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAK
KworICAgIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS91bml4L1dlYnNpdGVEYXRhU3RvcmVVbml4LmNw
cAorCisgICAgVUlQcm9jZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcAorCisgICAgVUlQ
cm9jZXNzL2dzdHJlYW1lci9JbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1
ZXN0LmNwcAorICAgIFVJUHJvY2Vzcy9nc3RyZWFtZXIvV2ViUGFnZVByb3h5R1N0cmVhbWVyLmNw
cAorCisgICAgVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAKKworICAg
IFVJUHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94eVNvdXAuY3BwCisgICAgVUlQcm9j
ZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAorCisgICAgVUlQcm9jZXNzL3dwZS9UZXh0
Q2hlY2tlcldQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNw
cAorICAgIFVJUHJvY2Vzcy93cGUvV2ViUGFnZVByb3h5V1BFLmNwcAorICAgIFVJUHJvY2Vzcy93
cGUvV2ViUGFzdGVib2FyZFByb3h5V1BFLmNwcAorICAgIFVJUHJvY2Vzcy93cGUvV2ViUHJlZmVy
ZW5jZXNXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKKwor
ICAgIFdlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAorICAg
IFdlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dlYktpdFNvdXBDb29raWVKYXJTcWxpdGUuY3BwCisK
KyAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL2dsaWIvSW5qZWN0ZWRCdW5kbGVHbGliLmNw
cAorCisgICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIu
Y3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNv
bnRleHRNZW51Q2xpZW50V1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3Bl
L1dlYkVkaXRvckNsaWVudFdQRS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dw
ZS9XZWJQb3B1cE1lbnVXUEUuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQWNjZWxlcmF0
ZWRTdXJmYWNlLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQXJlYUFsbG9jYXRvci5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKyAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9VcGRhdGVBdGxhcy5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9nc3RyZWFtZXIv
V2ViUGFnZUdTdHJlYW1lci5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9z
aXRpbmdNYW5hZ2VyLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFX
UEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHAK
KyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCisKKyAgICBXZWJQcm9j
ZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKKyAgICBXZWJQcm9jZXNz
L3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCisKKyAgICBXZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNz
TWFpbldQRS5jcHAKKworICAgICMgRklYTUUtR1dTSEFSRToKKyAgICBEYXRhYmFzZVByb2Nlc3Mv
Z3RrL0RhdGFiYXNlUHJvY2Vzc01haW5HdGsuY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJf
TUVTU0FHRVNfSU5fRklMRVMKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX0RFUklWRURfU09V
UkNFUworICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2Vz
R1Jlc291cmNlQnVuZGxlLmMKKykKKworc2V0KFdlYktpdDJSZXNvdXJjZXMKKykKKworaWYgKEVO
QUJMRV9XRUJfQVVESU8pCisgICAgbGlzdChBUFBFTkQgV2ViS2l0MlJlc291cmNlcworICAgICAg
ICAiICAgICAgICA8ZmlsZSBhbGlhcz1cImF1ZGlvL0NvbXBvc2l0ZVwiPkNvbXBvc2l0ZS53YXY8
L2ZpbGU+XG4iCisgICAgKQorZW5kaWYgKCkKKworZmlsZShXUklURSAke0RFUklWRURfU09VUkNF
U19XRUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICAi
PD94bWwgdmVyc2lvbj0xLjAgZW5jb2Rpbmc9VVRGLTg/PlxuIgorICAgICI8Z3Jlc291cmNlcz5c
biIKKyAgICAiICAgIDxncmVzb3VyY2UgcHJlZml4PVwiL29yZy93ZWJraXR3cGUvcmVzb3VyY2Vz
XCI+XG4iCisgICAgJHtXZWJLaXQyUmVzb3VyY2VzfQorICAgICIgICAgPC9ncmVzb3VyY2U+XG4i
CisgICAgIjwvZ3Jlc291cmNlcz5cbiIKKykKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9V
VFBVVCAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dSZXNv
dXJjZUJ1bmRsZS5jCisgICAgREVQRU5EUyAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0v
V2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBDT01NQU5EIGdsaWItY29t
cGlsZS1yZXNvdXJjZXMgLS1nZW5lcmF0ZSAtLXNvdXJjZWRpcj0ke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcyAtLXNvdXJjZWRpcj0ke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL3Jlc291cmNlcyAtLXRhcmdldD0ke0RFUklW
RURfU09VUkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1bmRsZS5j
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNl
QnVuZGxlLnhtbAorICAgIFZFUkJBVElNCispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICIke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IgorICAgICIke0RF
UklWRURfU09VUkNFU19ESVJ9IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlybyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUi
CisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlIgorICAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJ
Un0vRGF0YWJhc2VQcm9jZXNzL3VuaXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9j
ZXNzL0N1c3RvbVByb3RvY29scy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3Mv
c291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvdW5peCIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vUGxhdGZvcm0vSVBDL2dsaWIiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1BsYXRm
b3JtL0lQQy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybS9jbGFzc2lmaWVyIgor
ICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mvd3BlIgorICAgICIke1dFQktJVDJfRElS
fS9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yIgorICAgICIke1dFQktJVDJf
RElSfS9TaGFyZWQvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3VuaXgiCisgICAg
IiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC93cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQy9jYWlybyIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3NvdXAi
CisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy93cGUiCisgICAgIiR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL2xpbnV4IgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mvc291cCIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL3VuaXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
c291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUiCisg
ICAgIiR7V1RGX0RJUn0vd3RmL2d0ay8iCisgICAgIiR7V1RGX0RJUn0vd3RmL2dvYmplY3QiCisg
ICAgIiR7V1RGX0RJUn0iCisgICAgJHtDQUlST19JTkNMVURFX0RJUlN9CisgICAgJHtFR0xfSU5D
TFVERV9ESVJTfQorICAgICR7RlJFRVRZUEUyX0lOQ0xVREVfRElSU30KKyAgICAke0dMSUJfSU5D
TFVERV9ESVJTfQorICAgICR7R1NUUkVBTUVSX0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpa
X0lOQ0xVREVfRElSU30KKyAgICAke0xJQlNPVVBfSU5DTFVERV9ESVJTfQorICAgICR7V1BFX0lO
Q0xVREVfRElSU30KKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9MSUJSQVJJRVMKKyAgICBXZWJD
b3JlUGxhdGZvcm1XUEUKKyAgICAke0NBSVJPX0xJQlJBUklFU30KKyAgICAke0ZSRUVUWVBFMl9M
SUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAgICAke0dTVFJFQU1FUl9MSUJSQVJJ
RVN9CisgICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9CisgICAgJHtMSUJTT1VQX0xJQlJBUklFU30K
KyAgICAke1dQRV9MSUJSQVJJRVN9CispCisKK3NldChJbnNwZWN0b3JGaWxlcworICAgICR7Q01B
S0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHBy
b2ovbG9jYWxpemVkU3RyaW5ncy5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvKi5odG1sCisgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlLyouanMKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzLyouY3NzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy8qLmNzcworICAgICR7
Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRGVi
dWcvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvRXh0ZXJuYWwvQ29kZU1pcnJvci8qLmNzcworICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvQ29kZU1p
cnJvci8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9FeHRlcm5hbC9FU0xpbnQvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJ
Un0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvRXNwcmltYS8q
LmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvZ3RrLyoucG5nCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvZ3RrLyouc3ZnCisgICAgJHtDTUFL
RV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
Ki5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJveGllcy8qLmpzCisgICAgJHtDTUFLRV9TT1VS
Q0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0LyouanMKKyAg
ICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzLyouY3NzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci8qLmpzCisg
ICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC8qLmpzCispCisKK2ZpbGUoR0xPQiBJbnNwZWN0b3JGaWxl
c0RlcGVuZGVuY2llcworICAgICR7SW5zcGVjdG9yRmlsZXN9CispCisKKyMgRGVyaXZlZFNvdXJj
ZXMvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcyBp
cworIyBleHBlY3RlZCBpbiBEZXJpdmVkU291cmNlcy9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Byb3RvY29sLy4KK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVE
X1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3Bl
Y3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfSkFW
QVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCisg
ICAgQ09NTUFORCBjcCAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5T
UEVDVE9SVUlfRElSfS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmRDb21t
YW5kcy5qcworKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9T
T1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAor
ICAgIERFUEVORFMgJHtJbnNwZWN0b3JGaWxlc0RlcGVuZGVuY2llc30KKyAgICAgICAgICAgICR7
REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICAgICAgICAgICR7VE9PTFNfRElSfS93
cGUvZ2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weQorICAgIENPTU1BTkQg
JHtUT09MU19ESVJ9L3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5
IC0tb3V0cHV0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9y
R1Jlc291cmNlQnVuZGxlLnhtbCAke0luc3BlY3RvckZpbGVzfSAke0RFUklWRURfU09VUkNFU19X
RUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2Vu
ZENvbW1hbmRzLmpzCisgICAgVkVSQkFUSU0KKykKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAg
IE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdS
ZXNvdXJjZUJ1bmRsZS5jCisgICAgREVQRU5EUyAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNU
T1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBDT01NQU5EIGdsaWIt
Y29tcGlsZS1yZXNvdXJjZXMgLS1nZW5lcmF0ZSAtLXNvdXJjZWRpcj0ke0NNQUtFX1NPVVJDRV9E
SVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSSAtLXNvdXJjZWRpcj0ke0RFUklWRURfU09VUkNFU19X
RUJJTlNQRUNUT1JVSV9ESVJ9IC0tdGFyZ2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RP
UlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMgJHtERVJJVkVEX1NPVVJDRVNfV0VC
SU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVSQkFU
SU0KKykKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNF
U19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYwor
ICAgIERFUEVORFMgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3Bl
Y3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICAgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvZnJvbnQtZW5kL2luc3BlY3RvclBhZ2VJbmRleC5odG1sCisg
ICAgQ09NTUFORCBnbGliLWNvbXBpbGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9mcm9udC1lbmQgLS10YXJn
ZXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9XZWJLaXQySW5zcGVjdG9y
R1Jlc291cmNlQnVuZGxlLmMgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBWRVJCQVRJTQorKQorCitsaXN0KEFQ
UEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVSSVZFRF9TT1VSQ0VTCisgICAgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUu
YworICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3Bl
Y3RvckdSZXNvdXJjZUJ1bmRsZS5jCispCisKK2xpc3QoQVBQRU5EIFdQRVdlYkluc3BlY3RvclJl
c291cmNlc19MSUJSQVJJRVMKKyAgICAke0dMSUJfR0lPX0xJQlJBUklFU30KKykKKworbGlzdChB
UFBFTkQgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAk
e0dMSUJfSU5DTFVERV9ESVJTfQorKQorCithZGRfbGlicmFyeShXUEVXZWJJbnNwZWN0b3JSZXNv
dXJjZXMgU0hBUkVEICR7V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0RFUklWRURfU09VUkNFU30p
CithZGRfZGVwZW5kZW5jaWVzKFdQRVdlYkluc3BlY3RvclJlc291cmNlcyBXZWJLaXQyKQordGFy
Z2V0X2xpbmtfbGlicmFyaWVzKFdQRVdlYkluc3BlY3RvclJlc291cmNlcyAke1dQRVdlYkluc3Bl
Y3RvclJlc291cmNlc19MSUJSQVJJRVN9KQordGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoV1BF
V2ViSW5zcGVjdG9yUmVzb3VyY2VzIFBVQkxJQyAke1dQRVdlYkluc3BlY3RvclJlc291cmNlc19J
TkNMVURFX0RJUkVDVE9SSUVTfSkKK2luc3RhbGwoVEFSR0VUUyBXUEVXZWJJbnNwZWN0b3JSZXNv
dXJjZXMgREVTVElOQVRJT04gIiR7TElCX0lOU1RBTExfRElSfSIpCisKK2lmIChFWFBPUlRfREVQ
UkVDQVRFRF9XRUJLSVQyX0NfQVBJKQorICAgIHNldChXUEVfSU5TVEFMTEVEX1dFQktJVF9IRUFE
RVJTCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0FycmF5LmgKKyAgICAg
ICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS0RhdGEuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFy
ZWQvQVBJL2MvV0tEZWNsYXJhdGlvblNwZWNpZmllcnMuaAorICAgICAgICAke1dFQktJVDJfRElS
fS9TaGFyZWQvQVBJL2MvV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaAorICAgICAgICAk
e1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5LmgKKyAgICAgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaAorICAgICAgICAke1dFQktJVDJfRElS
fS9TaGFyZWQvQVBJL2MvV0tFdmVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9B
UEkvYy9XS0ZpbmRPcHRpb25zLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9j
L1dLR2VvbWV0cnkuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tJbWFn
ZS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS011dGFibGVBcnJheS5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS011dGFibGVEaWN0aW9uYXJ5
LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLTnVtYmVyLmgKKyAgICAg
ICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLUGFnZUxvYWRUeXBlcy5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaAorICAg
ICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZWN1cml0eU9yaWdpblJlZi5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oCisgICAg
ICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1R5cGUuaAorICAgICAgICAke1dFQktJ
VDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVUkwuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFy
ZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQ
SS9jL1dLVVJMUmVzcG9uc2UuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mv
V0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL0FQSS9jL1dLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL0FQSS9jL1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaAorCisgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKKworICAgICAgICAke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmgKKyAg
ICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgKKyAgICAg
ICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZURPTVdpbmRvd0V4dGVuc2lvbi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmgKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1l
LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5pdGlhbGl6ZS5oCisgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNw
ZWN0b3IuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlLmgKKyAg
ICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2UuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUJhbm5lci5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGll
bnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlR3JvdXAuaAorICAgICAgICAk
e1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFn
ZUxvYWRlckNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlT3ZlcmxheS5oCisgICAgICAgICR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUG9saWN5Q2xp
ZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaAorICAgICAgICAke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50
LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVJhbmdlSGFuZGxlLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmgKKworICAgICAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmgK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0
UmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENv
bmZpZ3VyYXRpb25SZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHREb3dubG9hZENsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRIaXN0b3J5Q2xpZW50LmgKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50
LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsLmgKKyAg
ICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbFR5cGVzLmgK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuaAorICAgICAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUluZm9SZWYuaAorICAgICAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmgK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJlc3VsdC5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkFjdGlv
blJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRp
b25EYXRhUmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2
aWdhdGlvblJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05h
dmlnYXRpb25SZXNwb25zZVJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlQ29uZmlndXJhdGlvblJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VDb250ZXh0TWVudUNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGaW5kQ2xpZW50LmgKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUZpbmRNYXRjaGVzQ2xpZW50LmgK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUZvcm1DbGllbnQu
aAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlSW5qZWN0ZWRCdW5k
bGVDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
TG9hZGVyQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZU5hdmlnYXRpb25DbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlUG9saWN5Q2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKKyAgICAgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKyAgICAgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luTG9hZFBvbGljeS5oCisgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRlUmVmLmgKKyAgICAg
ICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLVXNlckNvbnRlbnRDb250cm9sbGVy
UmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLVXNlclNjcmlw
dFJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0
QXR0cmlidXRlcy5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1dp
bmRvd0ZlYXR1cmVzUmVmLmgKKworICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L0Mvd3BlL1dLVmlldy5oCisKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9D
L3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5oCisgICAgKQorCisgICAgaW5zdGFsbChGSUxFUyAk
e1dQRV9JTlNUQUxMRURfV0VCS0lUX0hFQURFUlN9CisgICAgICAgIERFU1RJTkFUSU9OICIke0NN
QUtFX0lOU1RBTExfSU5DTFVERURJUn0vd3BlLSR7V1BFX0FQSV9WRVJTSU9OfS9XUEUvV2ViS2l0
IgorICAgICAgICBDT01QT05FTlQgIkRldmVsb3BtZW50IgorICAgICkKKworICAgIHNldChXUEVf
SU5TVEFMTEVEX0hFQURFUlMKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL3dw
ZS9XZWJLaXQuaAorICAgICkKKworICAgIGluc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0hF
QURFUlN9CisgICAgICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0v
d3BlLSR7V1BFX0FQSV9WRVJTSU9OfS9XUEUiCisgICAgICAgIENPTVBPTkVOVCAiRGV2ZWxvcG1l
bnQiCisgICAgKQorCisgICAgaW5zdGFsbChGSUxFUyAke0NNQUtFX0JJTkFSWV9ESVJ9L3dwZS13
ZWJraXQucGMKKyAgICAgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9L3Br
Z2NvbmZpZyIKKyAgICAgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIKKyAgICApCitlbmRpZiAo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5n
LWhlYWRlcnMucGwgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmct
aGVhZGVycy5wbAppbmRleCBiNjFkYjc4Nzc0YS4uYTdkM2EwYjZiOTIgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsCkBA
IC0zNSw3ICszNSw3IEBAIHVzZSBGaWxlOjpTcGVjOjpGdW5jdGlvbnM7CiB1c2UgR2V0b3B0OjpM
b25nOwogCiBteSAkc3JjUm9vdCA9IHJlYWxwYXRoKEZpbGU6OlNwZWMtPmNhdGZpbGUoZGlybmFt
ZShhYnNfcGF0aCgkMCkpLCAiLi4vLi4iKSk7Ci1teSBAcGxhdGZvcm1QcmVmaXhlcyA9ICgiY2Ei
LCAiY2YiLCAiY29jb2EiLCAiQ29jb2EiLCAiQ29vcmRpbmF0ZWRHcmFwaGljcyIsICJjdXJsIiwg
ImVmbCIsICJndGsiLCAiaW9zIiwgIm1hYyIsICJzb3VwIiwgIndpbiIpOworbXkgQHBsYXRmb3Jt
UHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29hIiwgIkNvY29hIiwgIkNvb3JkaW5hdGVkR3Jh
cGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMiLCAic291cCIsICJ3aW4i
LCAid3BlIik7CiBteSBAZnJhbWV3b3JrcyA9ICgiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSIs
ICJXZWJLaXQiKTsKIG15IEBza2lwcGVkUHJlZml4ZXM7CiBteSBAZnJhbWV3b3JrSGVhZGVyczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCAyZThmYmZiYmU1Yy4uMzNhMDY5
ODhlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTM4LDYgKzM4LDEw
IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZU1hYy5oPgogI2VuZGlmCiAKKyNpZiBkZWZpbmVk
KEJVSUxESU5HX1dQRV9fKQorI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2VXUEUuaD4KKyNlbmRpZgor
CiAvKiBXZWJLaXQyIHNoYXJlZCB0eXBlcyAqLwogCiB0eXBlZGVmIHVpbnQzMl90IFdLVHlwZUlE
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI1ZWYwNjIyMDJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV0tCYXNlV1BFX2gKKyNkZWZpbmUgV0tCYXNlV1BFX2gKKworI2lmbmRlZiBX
S0Jhc2VfaAorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgXCJXS0Jhc2UuaFwiIGluc3RlYWQgb2Yg
dGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1ZpZXcqIFdLVmlld1JlZjsKKworI2VuZGlmIC8qIFdLQmFzZVdQRV9oICovCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNTBlZDFhYzJiM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV1BFX1dl
YktpdF9oCisjZGVmaW5lIFdQRV9XZWJLaXRfaAorCisjZGVmaW5lIEJVSUxESU5HX1dQRV9fCisK
KyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVHlwZS5oPgor
CisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy8KKyNpbmNsdWRlIDxXZWJLaXQv
V0tBcnJheS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0RhdGEuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tEZWNsYXJhdGlvblNwZWNpZmllcnMuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEaWN0aW9uYXJ5
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRXJyb3JSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tH
ZW9tZXRyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS011dGFibGVBcnJheS5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS011dGFibGVEaWN0aW9uYXJ5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTnVtYmVy
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLU2VjdXJpdHlPcmlnaW5SZWYuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tTdHJpbmcuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVUkwuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tVUkxSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVzcG9uc2UuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaD4KKworLy8gRnJvbSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jLworI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
QnVuZGxlRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVIaXRUZXN0UmVzdWx0Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSW5pdGlhbGl6ZS5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZUluc3BlY3Rvci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZU5hdmlnYXRp
b25BY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVOb2RlSGFuZGxlLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBh
Z2VCYW5uZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGll
bnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2VHcm91cC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlT3ZlcmxheS5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFn
ZVVJQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUmFuZ2VIYW5kbGUuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVTY3JpcHRXb3JsZC5oPgorCisvLyBGcm9tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQworI2luY2x1ZGUgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlz
dEl0ZW1SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCYWNrRm9yd2FyZExpc3RSZWYuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dENv
bmZpZ3VyYXRpb25SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tDcmVkZW50aWFsLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJh
bWUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFtZUluZm9SZWYuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLSGl0VGVzdFJl
c3VsdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05hdmlnYXRpb25BY3Rpb25SZWYuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uRGF0YVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05h
dmlnYXRpb25SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUNv
bmZpZ3VyYXRpb25SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlR3JvdXAuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1Nlc3Np
b25TdGF0ZVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclJl
Zi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJTY3JpcHRSZWYuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tWaWV3Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVmlld3BvcnRBdHRyaWJ1dGVzLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLV2luZG93RmVhdHVyZXNSZWYuaD4KKworI2VuZGlmIC8vIFdQRV9X
ZWJLaXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29t
cG9zaXRpbmdSdW5Mb29wLmNwcAppbmRleCA4YWNmNTA2OTIxMC4uMTUzYjY0NTYwYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1
bkxvb3AuY3BwCkBAIC03NSwxMSArNzUsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdvcmtR
dWV1ZVBvb2woKQogICAgIHsKLSNpZiBQTEFURk9STShHVEspCisgICAgICAgIC8vIEZJWE1FOiBU
aGlzIGlzIGEgc2FuZSBkZWZhdWx0IGxpbWl0LCBidXQgaXQgc2hvdWxkIGJlIGNvbmZpZ3VyYWJs
ZSBzb21laG93LgogICAgICAgICBtX3RocmVhZENvdW50TGltaXQgPSAxOwotI2Vsc2UKLSAgICAg
ICAgbV90aHJlYWRDb3VudExpbWl0ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpOwotI2VuZGlmCiAgICAgfQogCiAgICAgV29ya1F1ZXVlJiBnZXRPckNyZWF0ZVdvcmtRdWV1
ZUZvckNvbnRleHQodm9pZCogY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1
bkxvb3AuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaAppbmRleCA4MTZkNDY3YjUxMC4uNjQ1
ZDdiOTBkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
Q29tcG9zaXRpbmdSdW5Mb29wLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDU19USFJFQURFRCkKIAorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVk
ZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL0Zhc3RNYWxsb2MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKaW5kZXggNmZmZWIzZDMwMGMuLjBmZWE3Yzg2
NmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhy
ZWFkZWRDb21wb3NpdG9yLmNwcApAQCAtNDMsMTIgKzQzLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4g
VGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQsIGNvbnN0IEludFNpemUm
IHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VI
YW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWlu
dEZsYWdzIHBhaW50RmxhZ3MpCitSZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBUaHJlYWRlZENvbXBv
c2l0b3I6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgSW50
U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3Vy
ZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6
OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaHJl
YWRlZENvbXBvc2l0b3IoY2xpZW50LCB2aWV3cG9ydFNpemUsIHNjYWxlRmFjdG9yLCBuYXRpdmVT
dXJmYWNlSGFuZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFncykpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFRocmVhZGVkQ29tcG9zaXRvcihjbGllbnQsIHdlYlBhZ2UsIHZpZXdwb3J0U2l6
ZSwgc2NhbGVGYWN0b3IsIG5hdGl2ZVN1cmZhY2VIYW5kbGUsIGRvRnJhbWVTeW5jLCBwYWludEZs
YWdzKSk7CiB9CiAKLVRocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFkZWRDb21wb3NpdG9yKENsaWVu
dCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWxlRmFjdG9y
LCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYyBkb0ZyYW1l
U3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZsYWdzKQorVGhyZWFkZWRDb21w
b3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBjbGllbnQsIFdlYlBhZ2UmIHdlYlBh
Z2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2
NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBU
ZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCiAgICAgOiBtX2NsaWVudChjbGll
bnQpCiAgICAgLCBtX3ZpZXdwb3J0U2l6ZSh2aWV3cG9ydFNpemUpCiAgICAgLCBtX3NjYWxlRmFj
dG9yKHNjYWxlRmFjdG9yKQpAQCAtNjQsMTMgKzY0LDIxIEBAIFRocmVhZGVkQ29tcG9zaXRvcjo6
VGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9y
dFNpCiAgICAgbV9jbGllbnRSZW5kZXJzTmV4dEZyYW1lLnN0b3JlKGZhbHNlKTsKICAgICBtX2Nv
b3JkaW5hdGVVcGRhdGVDb21wbGV0aW9uV2l0aENsaWVudC5zdG9yZShmYWxzZSk7CiAKKyNpZiBQ
TEFURk9STShXUEUpCisgICAgbV9jb21wb3NpdGluZ01hbmFnZXIuZXN0YWJsaXNoQ29ubmVjdGlv
bih3ZWJQYWdlKTsKKyNlbmRpZgorCiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1U
YXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAg
IG1fc2NlbmUgPSBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKHRoaXMpKTsK
KyNpZiBQTEFURk9STShHVEspCiAgICAgICAgIGlmIChtX25hdGl2ZVN1cmZhY2VIYW5kbGUpIHsK
ICAgICAgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOwogICAgICAgICAgICAgbV9zY2VuZS0+c2V0
QWN0aXZlKHRydWUpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1fc2NlbmUtPnNldEFj
dGl2ZShmYWxzZSk7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgICAgIG1fc2NlbmUtPnNldEFj
dGl2ZSh0cnVlKTsKKyNlbmRpZgogICAgIH0pOwogfQogCkBAIC04MSw2ICs4OSw4IEBAIFRocmVh
ZGVkQ29tcG9zaXRvcjo6flRocmVhZGVkQ29tcG9zaXRvcigpCiB2b2lkIFRocmVhZGVkQ29tcG9z
aXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
KworI2lmIFBMQVRGT1JNKEdUSykKICAgICBBU1NFUlQobV9uYXRpdmVTdXJmYWNlSGFuZGxlKTsK
IAogICAgIG1fY29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyhyZWlu
dGVycHJldF9jYXN0PEdMTmF0aXZlV2luZG93VHlwZT4obV9uYXRpdmVTdXJmYWNlSGFuZGxlKSwg
JlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkpOwpAQCAtOTEs
NiArMTAxLDIyIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVHTENvbnRleHQoKQog
ICAgICAgICBpZiAobV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgICAg
IG1fY29udGV4dC0+c3dhcEludGVydmFsKDApOwogICAgIH0KKyNlbmRpZgorCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIGF1dG8mIHBsYXRmb3JtRGlzcGxheSA9IFBsYXRmb3JtRGlzcGxheTo6c2hh
cmVkRGlzcGxheSgpOworICAgIFJFTEVBU0VfQVNTRVJUKGlzPFBsYXRmb3JtRGlzcGxheVdQRT4o
cGxhdGZvcm1EaXNwbGF5KSk7CisgICAgbV90YXJnZXQgPSBkb3duY2FzdDxQbGF0Zm9ybURpc3Bs
YXlXUEU+KHBsYXRmb3JtRGlzcGxheSkuY3JlYXRlRUdMVGFyZ2V0KCp0aGlzLCBtX2NvbXBvc2l0
aW5nTWFuYWdlci5yZWxlYXNlQ29ubmVjdGlvbkZkKCkpOworICAgIEFTU0VSVChtX3RhcmdldCk7
CisgICAgbV90YXJnZXQtPmluaXRpYWxpemUobV92aWV3cG9ydFNpemUpOworCisgICAgbV9jb250
ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2luZG93KG1fdGFyZ2V0LT5uYXRpdmVX
aW5kb3coKSwgJnBsYXRmb3JtRGlzcGxheSk7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmICghbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKKyAg
ICAgICAgcmV0dXJuOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjppbnZh
bGlkYXRlKCkKQEAgLTEwMCwxNiArMTI2LDIzIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpp
bnZhbGlkYXRlKCkKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgbV9zY2VuZS0+
cHVyZ2VHTFJlc291cmNlcygpOwogICAgICAgICBtX2NvbnRleHQgPSBudWxscHRyOworI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICAgICAgbV90YXJnZXQgPSBudWxscHRyOworI2VuZGlmCiAgICAgICAg
IG1fc2NlbmUgPSBudWxscHRyOwogICAgIH0pOwogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9G
UkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgbV9kaXNwbGF5UmVmcmVzaE1vbml0b3ItPmludmFs
aWRhdGUoKTsKICNlbmRpZgogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wID0gbnVsbHB0cjsKKyNp
ZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorICAgIG1fZGlz
cGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7CisjZW5kaWYKIH0KIAogdm9pZCBUaHJl
YWRlZENvbXBvc2l0b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50
NjRfdCBoYW5kbGUpCiB7CisjaWYgUExBVEZPUk0oR1RLKQogICAgIG1fY29tcG9zaXRpbmdSdW5M
b29wLT5zdG9wVXBkYXRlcygpOwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFz
a1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaGFuZGxlXSB7CiAg
ICAgICAgIC8vIEEgbmV3IG5hdGl2ZSBoYW5kbGUgY2FuJ3QgYmUgc2V0IHdpdGhvdXQgZGVzdHJv
eWluZyB0aGUgcHJldmlvdXMgb25lIGZpcnN0IGlmIGFueS4KQEAgLTEyMyw2ICsxNTYsNyBAQCB2
b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0
aW5nKHVpbnQ2NF90IGhhbmRsZSkKICAgICAgICAgICAgIG1fY29udGV4dCA9IG51bGxwdHI7CiAg
ICAgICAgIH0KICAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6
c2V0U2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUpCkBAIC0xNDYsNiArMTgwLDEwIEBAIHZvaWQgVGhy
ZWFkZWRDb21wb3NpdG9yOjpzZXRWaWV3cG9ydFNpemUoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRT
aXplLCBmbG9hdCBzY2FsCiB7CiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNr
U3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB2aWV3cG9ydFNpemUs
IHNjYWxlXSB7CiAgICAgICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXplOworI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICAgICAgaWYgKG1fdGFyZ2V0KQorICAgICAgICAgICAgbV90YXJnZXQt
PnJlc2l6ZSh2aWV3cG9ydFNpemUpOworI2VuZGlmCiAgICAgICAgIG1fc2NhbGVGYWN0b3IgPSBz
Y2FsZTsKICAgICAgICAgbV9uZWVkc1Jlc2l6ZSA9IHRydWU7CiAgICAgICAgIG1fY29tcG9zaXRp
bmdSdW5Mb29wLT5zY2hlZHVsZVVwZGF0ZSgpOwpAQCAtMTg5LDkgKzIyNywxOCBAQCB2b2lkIFRo
cmVhZGVkQ29tcG9zaXRvcjo6cmVuZGVyTGF5ZXJUcmVlKCkKICAgICBpZiAoIW1fc2NlbmUgfHwg
IW1fc2NlbmUtPmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKFdQ
RSkKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgY3JlYXRlR0xDb250ZXh0KCk7CisjZW5k
aWYKKwogICAgIGlmICghbV9jb250ZXh0IHx8ICFtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVu
dCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV90YXJnZXQt
PmZyYW1lV2lsbFJlbmRlcigpOworI2VuZGlmCisKICAgICBpZiAobV9uZWVkc1Jlc2l6ZSkgewog
ICAgICAgICBnbFZpZXdwb3J0KDAsIDAsIG1fdmlld3BvcnRTaXplLndpZHRoKCksIG1fdmlld3Bv
cnRTaXplLmhlaWdodCgpKTsKICAgICAgICAgbV9uZWVkc1Jlc2l6ZSA9IGZhbHNlOwpAQCAtMjEx
LDcgKzI1OCwxMyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cmVuZGVyTGF5ZXJUcmVlKCkK
IAogICAgIG1fY29udGV4dC0+c3dhcEJ1ZmZlcnMoKTsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAg
ICBtX3RhcmdldC0+ZnJhbWVSZW5kZXJlZCgpOworI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEsp
CiAgICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRD
b21wb3NpdG9yOjpzY2VuZVVwZGF0ZUZpbmlzaGVkKCkKQEAgLTI3OCw1ICszMzEsMzIgQEAgdm9p
ZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNvb3JkaW5hdGVVcGRhdGVDb21wbGV0aW9uV2l0aENsaWVu
dCgpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0YXRpYyB2b2lkIGRlYnVnVGhy
ZWFkZWRDb21wb3NpdG9yRlBTKCkKK3sKKyAgICBzdGF0aWMgZG91YmxlIGxhc3RUaW1lID0gY3Vy
cmVudFRpbWUoKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZnJhbWVDb3VudCA9IDA7CisKKyAgICBk
b3VibGUgY3QgPSBjdXJyZW50VGltZSgpOworICAgIGZyYW1lQ291bnQrKzsKKworICAgIGlmIChj
dCAtIGxhc3RUaW1lID49IDUuMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlRocmVhZGVk
Q29tcG9zaXRvcjogZnJhbWUgY2FsbGJhY2tzICUuMmYgRlBTXG4iLCBmcmFtZUNvdW50IC8gKGN0
IC0gbGFzdFRpbWUpKTsKKyAgICAgICAgbGFzdFRpbWUgPSBjdDsKKyAgICAgICAgZnJhbWVDb3Vu
dCA9IDA7CisgICAgfQorfQorCit2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6ZnJhbWVDb21wbGV0
ZSgpCit7CisgICAgQVNTRVJUKG1fY29tcG9zaXRpbmdSdW5Mb29wLT5pc0N1cnJlbnQoKSk7Cisg
ICAgc3RhdGljIGJvb2wgcmVwb3J0RlBTID0gISFzdGQ6OmdldGVudigiV1BFX1RIUkVBREVEX0NP
TVBPU0lUT1JfRlBTIik7CisgICAgaWYgKHJlcG9ydEZQUykKKyAgICAgICAgZGVidWdUaHJlYWRl
ZENvbXBvc2l0b3JGUFMoKTsKKworICAgIHNjZW5lVXBkYXRlRmluaXNoZWQoKTsKK30KKyNlbmRp
ZgorCiB9CiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRv
ci5oCmluZGV4IDY4M2Q5ODczZWQ4Li40ZDY0Njg5MjBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVh
ZGVkQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaApAQCAtNDIsNiAr
NDIsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oPgogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXlXUEUuaD4KKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlOwogfQpAQCAt
NTEsOCArNTYsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBDb29yZGluYXRlZEdyYXBo
aWNzU2NlbmU7CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQ7CiBjbGFzcyBU
aHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcjsKK2NsYXNzIFdlYlBhZ2U7CiAKLWNsYXNzIFRo
cmVhZGVkQ29tcG9zaXRvciA6IHB1YmxpYyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQs
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRlZENvbXBvc2l0b3I+IHsKK2NsYXNz
IFRocmVhZGVkQ29tcG9zaXRvciA6IHB1YmxpYyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGll
bnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRlZENvbXBvc2l0b3I+CisjaWYg
UExBVEZPUk0oV1BFKQorICAgICwgcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6
RUdMVGFyZ2V0OjpDbGllbnQKKyNlbmRpZgorICAgIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShUaHJlYWRlZENvbXBvc2l0b3IpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgpAQCAtNjQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICBlbnVtIGNsYXNzIFNob3VsZERv
RnJhbWVTeW5jIHsgTm8sIFllcyB9OwogCi0gICAgc3RhdGljIFJlZjxUaHJlYWRlZENvbXBvc2l0
b3I+IGNyZWF0ZShDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQgc2NhbGVG
YWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUgPSAwLCBTaG91bGREb0ZyYW1lU3lu
YyA9IFNob3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50
RmxhZ3MgPSAwKTsKKyAgICBzdGF0aWMgUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4gY3JlYXRlKENs
aWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQgc2NhbGVGYWN0
b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUgPSAwLCBTaG91bGREb0ZyYW1lU3luYyA9
IFNob3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50Rmxh
Z3MgPSAwKTsKICAgICB2aXJ0dWFsIH5UaHJlYWRlZENvbXBvc2l0b3IoKTsKIAogICAgIHZvaWQg
c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KTsKQEAgLTg4LDEz
ICs5OCwxOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBUaHJlYWRlZENvbXBv
c2l0b3IoQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9y
LCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYywgV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyk7CisgICAgVGhyZWFkZWRDb21wb3NpdG9yKENs
aWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQgc2NhbGVGYWN0
b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jLCBXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzKTsKIAogICAgIC8vIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZUNsaWVudAogICAgIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpIG92ZXJyaWRlOwogICAgIHZvaWQgY29tbWl0U2Nyb2xs
T2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG9mZnNldCkg
b3ZlcnJpZGU7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1E
aXNwbGF5V1BFOjpTdXJmYWNlOjpDbGllbnQKKyAgICB2b2lkIGZyYW1lQ29tcGxldGUoKSBvdmVy
cmlkZTsKKyNlbmRpZgorCiAgICAgdm9pZCByZW5kZXJMYXllclRyZWUoKTsKICAgICB2b2lkIHNj
ZW5lVXBkYXRlRmluaXNoZWQoKTsKIApAQCAtMTAyLDYgKzExNywxMiBAQCBwcml2YXRlOgogCiAg
ICAgQ2xpZW50JiBtX2NsaWVudDsKICAgICBSZWZQdHI8Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
PiBtX3NjZW5lOworCisjaWYgUExBVEZPUk0oV1BFKQorICAgIENvbXBvc2l0aW5nTWFuYWdlciBt
X2NvbXBvc2l0aW5nTWFuYWdlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGxhdGZv
cm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ+IG1fdGFyZ2V0OworI2VuZGlmCisKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6R0xDb250ZXh0PiBtX2NvbnRleHQ7CiAKICAgICBXZWJDb3JlOjpJ
bnRTaXplIG1fdmlld3BvcnRTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5m
by5oCmluZGV4IDdmYzRkN2M0YjNmLi5hNDM1ZTE5YmI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9EcmF3aW5nQXJlYUluZm8uaApAQCAtMzQsNiArMzQsOCBAQCBlbnVtIERyYXdpbmdBcmVhVHlw
ZSB7CiAgICAgRHJhd2luZ0FyZWFUeXBlVGlsZWRDb3JlQW5pbWF0aW9uLAogI2VuZGlmCiAgICAg
RHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLAorI2VsaWYgUExBVEZPUk0oV1BFKQorICAg
IERyYXdpbmdBcmVhVHlwZVdQRQogI2Vsc2UKICAgICBEcmF3aW5nQXJlYVR5cGVJbXBsCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCmlu
ZGV4IGNiMWYxMThjODkyLi4xNGZkZGUyMjRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC01MSw2ICs1MSwxMCBAQCB0eXBlZGVmIHVu
aW9uIF9HZGtFdmVudCBHZGtFdmVudDsKIE9CSkNfQ0xBU1MgV2ViRXZlbnQ7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7CisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQg
OiBwdWJsaWMgV2ViS2V5Ym9hcmRFdmVudCB7CkBAIC02Miw2ICs2Niw4IEBAIHB1YmxpYzoKICAg
ICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KEdka0V2ZW50KiwgY29uc3QgV2ViQ29yZTo6Q29tcG9z
aXRpb25SZXN1bHRzJiwgSW5wdXRNZXRob2RGaWx0ZXI6OkV2ZW50RmFrZWRGb3JDb21wb3NpdGlv
biwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcyk7CiAjZWxpZiBQTEFURk9STShJT1MpCiAgICAg
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCg6OldlYkV2ZW50ICopOworI2VsaWYgUExBVEZPUk0oV1BF
KQorICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9l
dmVudCopOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNzIsNiArNzgsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc0Zha2VFdmVudEZvckNvbXBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9mYWtlRXZlbnRGb3JDb21wb3NpdGlvbjsgfQogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIDo6
V2ViRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQo
KTsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50KCkg
Y29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaAppbmRleCA4OGNkMTQxMDkzOC4uMjgz
ZmMzMzQ5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3Vz
ZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQu
aApAQCAtMzgsNiArMzgsMTAgQEAgT0JKQ19DTEFTUyBOU1ZpZXc7CiB0eXBlZGVmIHVuaW9uIF9H
ZGtFdmVudCBHZGtFdmVudDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdw
ZV9pbnB1dF9wb2ludGVyX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBOYXRpdmVXZWJNb3VzZUV2ZW50IDogcHVibGljIFdlYk1vdXNlRXZlbnQgewpAQCAtNDcs
NiArNTEsOCBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgTmF0aXZlV2ViTW91
c2VFdmVudChjb25zdCBOYXRpdmVXZWJNb3VzZUV2ZW50Jik7CiAgICAgTmF0aXZlV2ViTW91c2VF
dmVudChHZGtFdmVudCosIGludCk7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgTmF0aXZlV2Vi
TW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqLCBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3Rvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCkBAIC01NSw2ICs2MSw4IEBA
IHB1YmxpYzoKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVy
biBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShJT1MpCiAgICAgY29uc3Qg
dm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CisjZWxpZiBQTEFURk9STShX
UEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBudWxscHRy
OyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2Vi
VG91Y2hFdmVudC5oCmluZGV4IDExODEyNGNkZWJjLi44MmYzYjI0ZDQyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCkBAIC0zNCw2ICszNCw4IEBACiBz
dHJ1Y3QgX1VJV2ViVG91Y2hFdmVudDsKICNlbGlmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxX
ZWJDb3JlL0dVbmlxdWVQdHJHdGsuaD4KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlIDx3
cGUvaW5wdXQuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ2LDYgKzQ4LDkg
QEAgcHVibGljOgogICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqLCBWZWN0b3I8V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50PiYmKTsKICAgICBOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IE5h
dGl2ZVdlYlRvdWNoRXZlbnQmKTsKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CisjZWxpZiBQTEFURk9STShXUEUp
CisgICAgTmF0aXZlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50Kiwg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91
Y2hfZXZlbnRfcmF3KiBuYXRpdmVGYWxsYmFja1RvdWNoUG9pbnQoKSBjb25zdCB7IHJldHVybiAm
bV9mYWxsYmFja1RvdWNoUG9pbnQ7IH0KICNlbmRpZgogCiBwcml2YXRlOgpAQCAtNTUsNiArNjAs
OCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEdVbmlxdWVQdHI8R2RrRXZl
bnQ+IG1fbmF0aXZlRXZlbnQ7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgc3RydWN0IHdwZV9p
bnB1dF90b3VjaF9ldmVudF9yYXcgbV9mYWxsYmFja1RvdWNoUG9pbnQ7CiAjZW5kaWYKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCmluZGV4IDVkYjBi
Y2U4ZmViLi4xNWY5NTg2NzE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05h
dGl2ZVdlYldoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2Vi
V2hlZWxFdmVudC5oCkBAIC0zOCw2ICszOCwxMCBAQCBPQkpDX0NMQVNTIE5TVmlldzsKIHR5cGVk
ZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUp
CitzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQgOiBwdWJsaWMgV2ViV2hlZWxFdmVudCB7
CkBAIC00Nyw2ICs1MSw4IEBAIHB1YmxpYzoKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBOYXRp
dmVXZWJXaGVlbEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKTsKICAgICBOYXRpdmVX
ZWJXaGVlbEV2ZW50KEdka0V2ZW50Kik7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgTmF0aXZl
V2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqLCBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3Rvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCkBAIC01NSw2ICs2MSw4IEBA
IHB1YmxpYzoKICAgICBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25h
dGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShJT1MpCiAgICAgY29uc3Qgdm9pZCog
bmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CisjZWxpZiBQTEFURk9STShXUEUpCisg
ICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAj
ZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKaW5kZXggYmUxNGVlYjNiYmIuLmIyZTJmNDczNDY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtODQsMTEg
Kzg0LDE0IEBACiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRRdWFk
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWxlY3Rpb25SZWN0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CiAKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlIDxXZWJDb3Jl
L1Bhc3RlYm9hcmQuaD4KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Lmg+CiAj
ZW5kaWYKQEAgLTE0OTIsNiArMTQ5NSwyMyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UGFzdGVib2Fy
ZEltYWdlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRJbWFnZSYgcAogCiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJk
V2ViQ29udGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQYXN0ZWJvYXJkV2Vi
Q29udGVudCYgY29udGVudCkKK3sKKyAgICBlbmNvZGVyIDw8IGNvbnRlbnQudGV4dDsKKyAgICBl
bmNvZGVyIDw8IGNvbnRlbnQubWFya3VwOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8UGFzdGVi
b2FyZFdlYkNvbnRlbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGFzdGVib2FyZFdlYkNv
bnRlbnQmIGNvbnRlbnQpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb250ZW50LnRleHQp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb250ZW50
Lm1hcmt1cCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNl
bmRpZiAvLyBQTEFURk9STShXUEUpCisKIHZvaWQgQXJndW1lbnRDb2RlcjxEaWN0YXRpb25BbHRl
cm5hdGl2ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEaWN0YXRpb25BbHRlcm5h
dGl2ZSYgZGljdGF0aW9uQWx0ZXJuYXRpdmUpCiB7CiAgICAgZW5jb2RlciA8PCBkaWN0YXRpb25B
bHRlcm5hdGl2ZS5yYW5nZVN0YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCmluZGV4IDhlYzYxZDM5ZjQwLi5mNzAyNTJkMGQyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTM1LDYgKzEz
NSwxMiBAQCBzdHJ1Y3QgU291cE5ldHdvcmtQcm94eVNldHRpbmdzOwogfQogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShXUEUpCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgUGFzdGVib2FyZFdl
YkNvbnRlbnRzOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI7CkBA
IC00MTcsNiArNDIzLDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzPiB7CiB9OwogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShXUEUpCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBhc3RlYm9h
cmRXZWJDb250ZW50PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKK307CisjZW5kaWYKKwog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVy
bGluZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
Q29tcG9zaXRpb25VbmRlcmxpbmUmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCAyNjNjODUyNWMzNy4uZWMw
ZmY2ZTFlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmaW5pdGlvbnMuaApAQCAtMzc2LDcgKzM3Niw3IEBACiAgICAgbWFjcm8oUGljdG9ncmFwaEZv
bnRGYW1pbHksIHBpY3RvZ3JhcGhGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIkFwcGxlIENv
bG9yIEVtb2ppIiwgIiIsICIiKSBcCiAgICAgXAogCi0jZWxpZiBQTEFURk9STShHVEspCisjZWxp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIAogI2RlZmluZSBGT1JfRUFDSF9XRUJL
SVRfRk9OVF9GQU1JTFlfUFJFRkVSRU5DRShtYWNybykgXAogICAgIG1hY3JvKFN0YW5kYXJkRm9u
dEZhbWlseSwgc3RhbmRhcmRGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIlRpbWVzIiwgIiIs
ICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYktl
eWJvYXJkRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJL
ZXlib2FyZEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uODY4M2I4MTJmM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
d3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKKworI2luY2x1ZGUg
IldlYkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJv
YXJkX2V2ZW50KiBldmVudCkKKyAgICA6IFdlYktleWJvYXJkRXZlbnQoV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2ZW50KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYk1v
dXNlRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3Vz
ZUV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjRk
OWQ0M2RlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFj
dG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZlV2ViTW91c2VFdmVudDo6TmF0
aXZlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqIGV2ZW50LCBm
bG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYk1vdXNlRXZlbnQoV2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3RvcikpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjBjYzY2NThjZmI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcApAQCAtMCwwICsxLDQ2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJUb3VjaEV2ZW50LmgiCisKKyNp
bmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK05hdGl2
ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3Vj
aF9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQorICAgIDogV2ViVG91Y2hF
dmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoZXZlbnQsIGRldmljZVNj
YWxlRmFjdG9yKSkKKyAgICAsIG1fZmFsbGJhY2tUb3VjaFBvaW50IHsgd3BlX2lucHV0X3RvdWNo
X2V2ZW50X3R5cGVfbnVsbCwgMCwgMCwgMCwgMCB9Cit7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGV2ZW50LT50b3VjaHBvaW50c19sZW5ndGg7ICsraSkgeworICAgICAgICBhdXRvJiBw
b2ludCA9IGV2ZW50LT50b3VjaHBvaW50c1tpXTsKKyAgICAgICAgaWYgKHBvaW50LnR5cGUgIT0g
d3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbCkgeworICAgICAgICAgICAgbV9mYWxsYmFj
a1RvdWNoUG9pbnQgPSBwb2ludDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5iYTk2MmVkNGRjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAKQEAgLTAsMCAr
MSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgor
CisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKKyNpbmNsdWRlIDxjc3RkaW8+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJXaGVlbEV2ZW50OjpOYXRpdmVXZWJXaGVlbEV2
ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxl
RmFjdG9yKQorICAgIDogV2ViV2hlZWxFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldo
ZWVsRXZlbnQoZXZlbnQsIGRldmljZVNjYWxlRmFjdG9yKSkKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1Byb2Nlc3NF
eGVjdXRhYmxlUGF0aFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1Byb2Nlc3NF
eGVjdXRhYmxlUGF0aFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmQ4N2E5MjdhYmIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgTU9UT1JPTEEgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Zp
bGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0
aWxpdGllcy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0YXRpYyBTdHJpbmcgZ2V0RXhlY3V0YWJsZVBhdGgoKQoreworICAgIENTdHJpbmcg
ZXhlY3V0YWJsZVBhdGggPSBnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKTsKKyAgICBpZiAoIWV4
ZWN1dGFibGVQYXRoLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZGlyZWN0b3J5TmFtZShzdHJp
bmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWN1dGFibGVQYXRoLmRhdGEoKSkpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworc3RhdGljIFN0cmluZyBmaW5kV2ViS2l0UHJvY2Vz
cyhjb25zdCBjaGFyKiBwcm9jZXNzTmFtZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZXhl
Y0RpcmVjdG9yeSA9IGdfZ2V0ZW52KCJXRUJLSVRfRVhFQ19QQVRIIik7CisgICAgaWYgKGV4ZWNE
aXJlY3RvcnkpIHsKKyAgICAgICAgU3RyaW5nIHByb2Nlc3NQYXRoID0gcGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KHN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY0RpcmVjdG9y
eSksIHByb2Nlc3NOYW1lKTsKKyAgICAgICAgaWYgKGZpbGVFeGlzdHMocHJvY2Vzc1BhdGgpKQor
ICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NQYXRoOworICAgIH0KKworICAgIHN0YXRpYyBTdHJp
bmcgZXhlY3V0YWJsZVBhdGggPSBnZXRFeGVjdXRhYmxlUGF0aCgpOworICAgIGlmICghZXhlY3V0
YWJsZVBhdGguaXNOdWxsKCkpIHsKKyAgICAgICAgU3RyaW5nIHByb2Nlc3NQYXRoID0gcGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KGV4ZWN1dGFibGVQYXRoLCBwcm9jZXNzTmFtZSk7CisgICAgICAg
IGlmIChmaWxlRXhpc3RzKHByb2Nlc3NQYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNz
UGF0aDsKKyAgICB9CisKKyAgICByZXR1cm4gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0cmlu
Z0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oTElCRVhFQ0RJUiksIHByb2Nlc3NOYW1lKTsK
K30KKworU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZXZWJQcm9jZXNzKCkKK3sKKyAgICByZXR1cm4g
ZmluZFdlYktpdFByb2Nlc3MoIldQRVdlYlByb2Nlc3MiKTsKK30KKworU3RyaW5nIGV4ZWN1dGFi
bGVQYXRoT2ZQbHVnaW5Qcm9jZXNzKCkKK3sKKyAgICByZXR1cm4gZmluZFdlYktpdFByb2Nlc3Mo
IldQRVBsdWdpblByb2Nlc3MiKTsKK30KKworU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3Jr
UHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVOZXR3b3JrUHJv
Y2VzcyIpOworfQorCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCitTdHJpbmcgZXhlY3V0
YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9j
ZXNzKCJXUEVEYXRhYmFzZVByb2Nlc3MiKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTU3MWUxYWFjOTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5j
cHAKQEAgLTAsMCArMSwyMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkV2ZW50RmFj
dG9yeS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXIuaD4KKyNpbmNsdWRlIDxjc3Rk
bGliPgorI2luY2x1ZGUgPHdwZS9pbnB1dC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBXZWJFdmVudDo6TW9kaWZpZXJz
IG1vZGlmaWVyc0ZvckV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50
KQoreworICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAgdW5zaWduZWQgZXZlbnRNb2Rp
ZmllcnMgPSBldmVudC0+bW9kaWZpZXJzOworCisgICAgaWYgKGV2ZW50TW9kaWZpZXJzICYgd3Bl
X2lucHV0X2tleWJvYXJkX21vZGlmaWVyX2NvbnRyb2wpCisgICAgICAgIG1vZGlmaWVycyB8PSBX
ZWJFdmVudDo6Q29udHJvbEtleTsKKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5wdXRf
a2V5Ym9hcmRfbW9kaWZpZXJfc2hpZnQpCisgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6
U2hpZnRLZXk7CisgICAgaWYgKGV2ZW50TW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21v
ZGlmaWVyX2FsdCkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpBbHRLZXk7CisgICAg
aWYgKGV2ZW50TW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX21ldGEpCisg
ICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtleTsKKworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpOworfQorCitzdGF0aWMgU3Ry
aW5nIHNpbmdsZUNoYXJhY3RlclN0cmluZ0ZvcktleUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5
Ym9hcmRfZXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0IGNoYXIqIHNpbmdsZUNoYXJhY3RlciA9
IHdwZV9pbnB1dF9zaW5nbGVfY2hhcmFjdGVyX2Zvcl9rZXlfZXZlbnQod3BlX2lucHV0X2tleV9t
YXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCk7CisgICAgaWYgKHNpbmdsZUNoYXJhY3RlcikK
KyAgICAgICAgcmV0dXJuIFN0cmluZyhzaW5nbGVDaGFyYWN0ZXIpOworCisgICAgZ2xvbmcgbGVu
Z3RoOworICAgIEdVbmlxdWVQdHI8Z3VuaWNoYXIyPiB1Y2hhcjE2KGdfdWNzNF90b191dGYxNigm
ZXZlbnQtPnVuaWNvZGUsIDEsIDAsICZsZW5ndGgsIG51bGxwdHIpKTsKKyAgICBpZiAodWNoYXIx
NikKKyAgICAgICAgcmV0dXJuIFN0cmluZyh1Y2hhcjE2LmdldCgpKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK3N0YXRpYyBTdHJpbmcgaWRlbnRpZmllclN0cmluZ0ZvcktleUV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0IGNoYXIq
IGlkZW50aWZpZXIgPSB3cGVfaW5wdXRfaWRlbnRpZmllcl9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1
dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwgZXZlbnQpOworICAgIGlmIChpZGVudGlmaWVy
KQorICAgICAgICByZXR1cm4gU3RyaW5nKGlkZW50aWZpZXIpOworCisgICAgcmV0dXJuIFN0cmlu
Zzo6Zm9ybWF0KCJVKyUwNFgiLCBldmVudC0+dW5pY29kZSk7Cit9CisKK1dlYktleWJvYXJkRXZl
bnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5w
dXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQoreworICAgIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJT
dHJpbmcgPSBzaW5nbGVDaGFyYWN0ZXJTdHJpbmdGb3JLZXlFdmVudChldmVudCk7CisgICAgU3Ry
aW5nIGlkZW50aWZpZXJTdHJpbmcgPSBpZGVudGlmaWVyU3RyaW5nRm9yS2V5RXZlbnQoZXZlbnQp
OworCisgICAgcmV0dXJuIFdlYktleWJvYXJkRXZlbnQoZXZlbnQtPnByZXNzZWQgPyBXZWJFdmVu
dDo6S2V5RG93biA6IFdlYkV2ZW50OjpLZXlVcCwKKyAgICAgICAgc2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nLCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlkZW50aWZpZXJTdHJpbmcsCisgICAgICAgIHdw
ZV9pbnB1dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9rZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBw
ZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCksCisgICAgICAgIGV2ZW50LT5rZXlDb2RlLCAwLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLAorICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCksIGV2
ZW50LT50aW1lKTsKK30KKworV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
Yk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgV2ViRXZlbnQ6OlR5cGUgdHlwZSA9IFdlYkV2ZW50
OjpOb1R5cGU7CisgICAgc3dpdGNoIChldmVudC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0
X3BvaW50ZXJfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6TW91
c2VNb3ZlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50
X3R5cGVfYnV0dG9uOgorICAgICAgICB0eXBlID0gZXZlbnQtPnN0YXRlID8gV2ViRXZlbnQ6Ok1v
dXNlRG93biA6IFdlYkV2ZW50OjpNb3VzZVVwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdw
ZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorCisgICAgV2ViTW91c2VFdmVudDo6QnV0dG9uIGJ1dHRvbiA9IFdlYk1v
dXNlRXZlbnQ6Ok5vQnV0dG9uOworICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNl
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOgorICAgIGNhc2Ugd3BlX2lucHV0
X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b246CisgICAgICAgIGlmIChldmVudC0+YnV0dG9uID09
IDEpCisgICAgICAgICAgICBidXR0b24gPSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOworICAg
ICAgICBlbHNlIGlmIChldmVudC0+YnV0dG9uID09IDIpCisgICAgICAgICAgICBidXR0b24gPSBX
ZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmJ1dHRv
biA9PSAzKQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6TWlkZGxlQnV0dG9u
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
bnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgdW5zaWdu
ZWQgY2xpY2tDb3VudCA9ICh0eXBlID09IFdlYkV2ZW50OjpNb3VzZURvd24pID8gMSA6IDA7CisK
KyAgICAvLyBGSVhNRTogUHJvcGVyIGJ1dHRvbiBzdXBwb3J0LiBNb2RpZmllcnMuIGRlbHRhWC9Z
L1ouIENsaWNrIGNvdW50LgorICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54
LCBldmVudC0+eSk7CisgICAgcG9zaXRpb24uc2NhbGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsK
KyAgICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24sIHBvc2l0aW9uLCBwb3NpdGlv
biwKKyAgICAgICAgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1v
ZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKK30KKworV2ViV2hlZWxFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBl
dmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZG4ndCBoYXJkLWNvZGUgdGhpcy4KKyAgICBlbnVtIEF4aXMgeworICAgICAgICBWZXJ0aWNhbCwK
KyAgICAgICAgSG9yaXpvbnRhbCwKKyAgICAgICAgU21vb3RoCisgICAgfTsKKworICAgIFdlYkNv
cmU6OkZsb2F0U2l6ZSB3aGVlbFRpY2tzOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBkZWx0YTsK
KyAgICBzd2l0Y2ggKGV2ZW50LT5heGlzKSB7CisgICAgY2FzZSBWZXJ0aWNhbDoKKyAgICAgICAg
d2hlZWxUaWNrcyA9IFdlYkNvcmU6OkZsb2F0U2l6ZSgwLCBldmVudC0+dmFsdWUgLyBzdGQ6OmFi
cyhldmVudC0+dmFsdWUpKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAgICAgICBk
ZWx0YS5zY2FsZShXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCkpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEhvcml6b250YWw6CisgICAgICAgIHdoZWVsVGlja3MgPSBX
ZWJDb3JlOjpGbG9hdFNpemUoZXZlbnQtPnZhbHVlIC8gc3RkOjphYnMoZXZlbnQtPnZhbHVlKSwg
MCk7CisgICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsKKyAgICAgICAgZGVsdGEuc2NhbGUoV2Vi
Q29yZTo6U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBTbW9vdGg6CisgICAgICAgIHdoZWVsVGlja3MgPSBXZWJDb3JlOjpGbG9hdFNpemUo
MCwgZXZlbnQtPnZhbHVlIC8gZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICBkZWx0YSA9IHdo
ZWVsVGlja3M7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfTsKKworICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54LCBldmVudC0+
eSk7CisgICAgcG9zaXRpb24uc2NhbGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICByZXR1
cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIHBvc2l0aW9uLCBwb3NpdGlvbiwKKyAg
ICAgICAgZGVsdGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVl
bEV2ZW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUp
OworfQorCitzdGF0aWMgV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUG9pbnRT
dGF0ZSBzdGF0ZUZvclRvdWNoUG9pbnQoaW50IG1haW5FdmVudElkLCBjb25zdCBzdHJ1Y3Qgd3Bl
X2lucHV0X3RvdWNoX2V2ZW50X3JhdyogcG9pbnQpCit7CisgICAgaWYgKHBvaW50LT5pZCAhPSBt
YWluRXZlbnRJZCkKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50
OjpUb3VjaFN0YXRpb25hcnk7CisKKyAgICBzd2l0Y2ggKHBvaW50LT50eXBlKSB7CisgICAgY2Fz
ZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9kb3duOgorICAgICAgICByZXR1cm4gV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZDsKKyAgICBjYXNlIHdwZV9pbnB1
dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxh
dGZvcm1Ub3VjaFBvaW50OjpUb3VjaE1vdmVkOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3R5cGVfdXA6CisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2lu
dDo6VG91Y2hSZWxlYXNlZDsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251
bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9
OworCisgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFN0YXRp
b25hcnk7Cit9CisKK1dlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3Vj
aEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcikKK3sKKyAgICBXZWJFdmVudDo6VHlwZSB0eXBlID0gV2ViRXZlbnQ6Ok5vVHlw
ZTsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hf
ZXZlbnRfdHlwZV9kb3duOgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6OlRvdWNoU3RhcnQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9u
OgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6OlRvdWNoTW92ZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV91cDoKKyAgICAgICAgdHlwZSA9IFdl
YkV2ZW50OjpUb3VjaEVuZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91
Y2hfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CisKKyAgICBWZWN0b3I8V2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+IHRvdWNoUG9pbnRz
OworICAgIHRvdWNoUG9pbnRzLnJlc2VydmVDYXBhY2l0eShldmVudC0+dG91Y2hwb2ludHNfbGVu
Z3RoKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBldmVudC0+dG91Y2hwb2ludHNf
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgcG9pbnQgPSBldmVudC0+dG91Y2hwb2ludHNb
aV07CisgICAgICAgIGlmIChwb2ludC50eXBlID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBl
X251bGwpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBXZWJDb3JlOjpJbnRQb2lu
dCBwb2ludENvb3JkaW5hdGVzKHBvaW50LngsIHBvaW50LnkpOworICAgICAgICBwb2ludENvb3Jk
aW5hdGVzLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgIHRvdWNoUG9pbnRz
LnVuY2hlY2tlZEFwcGVuZCgKKyAgICAgICAgICAgIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50KHBvaW50LmlkLCBzdGF0ZUZvclRvdWNoUG9pbnQoZXZlbnQtPmlkLCAmcG9pbnQpLAorICAg
ICAgICAgICAgICAgIHBvaW50Q29vcmRpbmF0ZXMsIHBvaW50Q29vcmRpbmF0ZXMpKTsKKyAgICB9
CisKKyAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwg
V2ViRXZlbnQ6Ok1vZGlmaWVycygwKSwgZXZlbnQtPnRpbWUpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRG
YWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMmFhMDM0NTBkMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmgK
QEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYkV2ZW50LmgiCisKK3N0cnVj
dCB3cGVfaW5wdXRfYXhpc19ldmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7
CitzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNo
X2V2ZW50OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRXZlbnRGYWN0b3J5IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2
ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqKTsKKyAgICBzdGF0aWMgV2ViTW91
c2VFdmVudCBjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICBzdGF0aWMgV2ViV2hlZWxFdmVudCBj
cmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCosIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yKTsKKyAgICBzdGF0aWMgV2ViVG91Y2hFdmVudCBjcmVhdGVXZWJUb3Vj
aEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3Rvcik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCBkOTRhOWU5ZDJkZC4uZDNmNmQwNDE0MTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTU3NSw0ICs1
NzUsOCBAQCBpbmxpbmUgUHJveHlpbmdSZWZQdHI8V2ViR3JhbW1hckRldGFpbD4gdG9BUEkoY29u
c3QgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYgZ3JhbQogI2luY2x1ZGUgIldLQVBJQ2FzdEd0ay5o
IgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKEJVSUxESU5HX1dQRV9fKQorI2luY2x1ZGUgIldLQVBJ
Q2FzdFdQRS5oIgorI2VuZGlmCisKICNlbmRpZiAvLyBXS0FQSUNhc3RfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBmOGExZTcxNzAwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUuaApAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV0tBUElDYXN0V1BFX2gKKyNkZWZpbmUgV0tBUElDYXN0V1BFX2gKKwor
I2lmbmRlZiBXS0FQSUNhc3RfaAorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgXCJXS0FQSUNhc3Qu
aFwiIGluc3RlYWQgb2YgdGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaW5jbHVkZSAi
V0tWaWV3LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CisKK25hbWVzcGFj
ZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV0tfQURE
X0FQSV9NQVBQSU5HKFdLVmlld1JlZiwgV0tXUEU6OlZpZXcpCisKK2lubGluZSBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpGbGFncyB0b1ZpZXdTdGF0ZUZsYWdzKFdLVmlld1N0YXRlIHdrVmlld1N0
YXRlKQoreworICAgIHVuc2lnbmVkIHZpZXdTdGF0ZUZsYWdzID0gMDsKKworICAgIGlmICh3a1Zp
ZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlzSW5XaW5kb3cpCisgICAgICAgIHZpZXdTdGF0ZUZsYWdz
IHw9IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3c7CisgICAgaWYgKHdrVmlld1N0
YXRlICYga1dLVmlld1N0YXRlSXNWaXNpYmxlKQorICAgICAgICB2aWV3U3RhdGVGbGFncyB8PSBX
ZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGU7CisKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3M+KHZpZXdTdGF0ZUZsYWdzKTsKK30KKwor
fQorCisjZW5kaWYgLy8gV0tBUElDYXN0V1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy93cGUvV0tWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uY2NiYjIzNzE1ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV0tWaWV3LmgiCisKKyNpbmNsdWRlICJBUElQYWdlQ29uZmlndXJhdGlvbi5o
IgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisj
aW5jbHVkZSAiV1BFVmlldy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1ZpZXdS
ZWYgV0tWaWV3Q3JlYXRlKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sK
KyAgICByZXR1cm4gdG9BUEkoV0tXUEU6OlZpZXc6OmNyZWF0ZShudWxscHRyLCAqdG9JbXBsKGNv
bmZpZ3VyYXRpb24pKSk7Cit9CisKK1dLVmlld1JlZiBXS1ZpZXdDcmVhdGVXaXRoVmlld0JhY2tl
bmQoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIFdLUGFnZUNvbmZpZ3VyYXRpb25S
ZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gdG9BUEkoV0tXUEU6OlZpZXc6OmNyZWF0
ZShiYWNrZW5kLCAqdG9JbXBsKGNvbmZpZ3VyYXRpb24pKSk7Cit9CisKK1dLUGFnZVJlZiBXS1Zp
ZXdHZXRQYWdlKFdLVmlld1JlZiB2aWV3KQoreworICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHZp
ZXcpLT5wYWdlKCkpOworfQorCit2b2lkIFdLVmlld1NldFZpZXdTdGF0ZShXS1ZpZXdSZWYgdmll
dywgV0tWaWV3U3RhdGUgdmlld1N0YXRlKQoreworICAgIHRvSW1wbCh2aWV3KS0+c2V0Vmlld1N0
YXRlKHRvVmlld1N0YXRlRmxhZ3Modmlld1N0YXRlKSk7Cit9CisKK3ZvaWQgV0tWaWV3U2V0Vmll
d0NsaWVudChXS1ZpZXdSZWYgdmlldywgY29uc3QgV0tWaWV3Q2xpZW50QmFzZSogY2xpZW50KQor
eworICAgIHRvSW1wbCh2aWV3KS0+aW5pdGlhbGl6ZUNsaWVudChjbGllbnQpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU1OWVjMmI0NWI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaApAQCAtMCwwICsxLDcxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV0tWaWV3X2gKKyNkZWZpbmUgV0tWaWV3X2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2Uu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tHZW9tZXRyeS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMK
K2V4dGVybiAiQyIgeworI2VuZGlmCisKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kOworCitXS19F
WFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmKTsKK1dL
X0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVjdCB3cGVf
dmlld19iYWNrZW5kKiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZik7CisKK1dLX0VYUE9SVCBXS1Bh
Z2VSZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYpOworCitlbnVtIHsKKyAgICBrV0tWaWV3U3Rh
dGVJc0luV2luZG93ID0gMSA8PCAwLAorICAgIGtXS1ZpZXdTdGF0ZUlzVmlzaWJsZSA9IDEgPDwg
MSwKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLVmlld1N0YXRlOworCitXS19FWFBPUlQgdm9pZCBX
S1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3UmVmLCBXS1ZpZXdTdGF0ZSk7CisKK3R5cGVkZWYgdm9p
ZCAoKldLVmlld0ZyYW1lRGlzcGxheWVkKShXS1ZpZXdSZWYgdmlldywgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7CisKK3R5cGVkZWYgc3RydWN0IFdLVmlld0NsaWVudEJhc2UgeworICAgIGludCB2
ZXJzaW9uOworICAgIGNvbnN0IHZvaWQqIGNsaWVudEluZm87Cit9IFdLVmlld0NsaWVudEJhc2U7
CisKK3R5cGVkZWYgc3RydWN0IFdLVmlld0NsaWVudFYwIHsKKyAgICBXS1ZpZXdDbGllbnRCYXNl
IGJhc2U7CisKKyAgICAvLyB2ZXJzaW9uIDAKKyAgICBXS1ZpZXdGcmFtZURpc3BsYXllZCBmcmFt
ZURpc3BsYXllZDsKK30gV0tWaWV3Q2xpZW50VjA7CisKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1Nl
dFZpZXdDbGllbnQoV0tWaWV3UmVmLCBjb25zdCBXS1ZpZXdDbGllbnRCYXNlKik7CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS1ZpZXdfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNDA0
ZWM1ZDliNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAi
QXR0YWNobWVudC5oIgorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXUEVWaWV3LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDx3cGUvdmlldy1iYWNrZW5kLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6Q29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykK
K3sKK30KKworQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6On5Db21wb3NpdGluZ01hbmFnZXJQcm94
eSgpID0gZGVmYXVsdDsKKwordm9pZCBDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6aW5pdGlhbGl6
ZSgpCit7CisgICAgbV92aWV3LnBhZ2UoKS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fdmlldy5wYWdlKCkucGFnZUlEKCksICp0aGlzKTsKK30KKwordm9pZCBD
b21wb3NpdGluZ01hbmFnZXJQcm94eTo6ZXN0YWJsaXNoQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1l
bnQmIGNvbm5lY3Rpb25IYW5kbGUpCit7CisgICAgY29ubmVjdGlvbkhhbmRsZSA9IElQQzo6QXR0
YWNobWVudCh3cGVfdmlld19iYWNrZW5kX2dldF9yZW5kZXJlcl9ob3N0X2ZkKG1fdmlldy5iYWNr
ZW5kKCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2EzNWMwN2M0ZDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGlu
Z01hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNl
IElQQyB7CitjbGFzcyBBdHRhY2htZW50OworfQorCituYW1lc3BhY2UgV0tXUEUgeworY2xhc3Mg
VmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFuYWdl
clByb3h5IGZpbmFsIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShDb21wb3NpdGluZ01hbmFnZXJQcm94eSk7CitwdWJsaWM6CisgICAgQ29t
cG9zaXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6OlZpZXcmKTsKKyAgICB2aXJ0dWFsIH5Db21wb3Np
dGluZ01hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKCk7CisKK3ByaXZhdGU6
CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpIG92ZXJyaWRlOworCisg
ICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCYpOworCisgICAgV0tX
UEU6OlZpZXcmIG1fdmlldzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3Np
dGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uMTlhMDA1NTc3NzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBDb21wb3Np
dGluZ01hbmFnZXJQcm94eSB7CisgICAgRXN0YWJsaXNoQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0
dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM3M2MwZjY3ZTJlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5j
cHAKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQ
cm94eVdQRS5oIgorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0RyYXdp
bmdBcmVhUHJveHlXUEU6OkRyYXdpbmdBcmVhUHJveHlXUEUoV2ViUGFnZVByb3h5JiBwYWdlKQor
ICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYVR5cGVXUEUsIHBhZ2UpCit7Cit9CisK
K0RyYXdpbmdBcmVhUHJveHlXUEU6On5EcmF3aW5nQXJlYVByb3h5V1BFKCkKK3sKK30KKwordm9p
ZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpzaXpl
RGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAobV93ZWJQYWdlUHJveHkuaXNWYWxpZCgpKQorICAgICAg
ICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OlVw
ZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKDAsIGZhbHNlLCBtX3dlYlBhZ2VQcm94eS5kZXZpY2VTY2Fs
ZUZhY3RvcigpLCBtX3NpemUsIG1fc2Nyb2xsT2Zmc2V0KSwgbV93ZWJQYWdlUHJveHkucGFnZUlE
KCkpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmRpc3BhdGNoQWZ0ZXJFbnN1cmlu
Z0RyYXdpbmcoc3RkOjpmdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFj
a0Z1bmN0aW9uKQoreworICAgIGlmICghbV93ZWJQYWdlUHJveHkuaXNWYWxpZCgpKSB7CisgICAg
ICAgIGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlk
YXRlZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goCisgICAgICAgIFtjYWxsYmFja0Z1bmN0aW9uXSB7CisgICAgICAgICAgICBjYWxsYmFj
a0Z1bmN0aW9uKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpOworICAgICAgICB9KTsKK30KKwor
dm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjp1cGRhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3Rh
dGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50
NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5n
QXJlYVByb3h5V1BFOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJh
Y2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRl
eHQpCit7CisgICAgQVNTRVJUKCFiYWNraW5nU3RvcmVTdGF0ZUlEKTsKKworICAgIG1fbGF5ZXJU
cmVlQ29udGV4dCA9IGxheWVyVHJlZUNvbnRleHQ7CisgICAgbV93ZWJQYWdlUHJveHkuZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKK30KKwordm9pZCBE
cmF3aW5nQXJlYVByb3h5V1BFOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0
X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjp1cGRhdGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBM
YXllclRyZWVDb250ZXh0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMWY0MjdiNGNhMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmgKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKKworI2luY2x1ZGUgIkxheWVy
VHJlZUNvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIERyYXdpbmdBcmVh
UHJveHlXUEUgZmluYWwgOiBwdWJsaWMgRHJhd2luZ0FyZWFQcm94eSB7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgRHJhd2luZ0FyZWFQcm94eVdQRShXZWJQYWdlUHJveHkmKTsKKyAgICB2aXJ0dWFs
IH5EcmF3aW5nQXJlYVByb3h5V1BFKCk7CisKK3ByaXZhdGU6CisgICAgLy8gRHJhd2luZ0FyZWFQ
cm94eQorICAgIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJF
bnN1cmluZ0RyYXdpbmcoc3RkOjpmdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPikg
b3ZlcnJpZGU7CisKKyAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVycworICAgIHZvaWQgdXBkYXRl
KHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdT
dG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mLCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikg
b3ZlcnJpZGU7CisgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2
NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNr
aW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCB1
cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisKKyAgICAvLyBUaGUgY3Vy
cmVudCBsYXllciB0cmVlIGNvbnRleHQuCisgICAgTGF5ZXJUcmVlQ29udGV4dCBtX2xheWVyVHJl
ZUNvbnRleHQ7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmQxNjUzMDk1ZmI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCkBAIC0wLDAgKzEsMzIxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgorCisjaW5jbHVkZSAiRHJhd2lu
Z0FyZWFQcm94eVdQRS5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKyNpbmNs
dWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsR2VzdHVyZUNvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJXUEVWaWV3LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQ
cm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BhZ2VDbGll
bnRJbXBsOjpQYWdlQ2xpZW50SW1wbChXS1dQRTo6VmlldyYgdmlldykKKyAgICA6IG1fdmlldyh2
aWV3KQorICAgICwgbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFNj
cm9sbEdlc3R1cmVDb250cm9sbGVyPigpKQoreworfQorCitQYWdlQ2xpZW50SW1wbDo6flBhZ2VD
bGllbnRJbXBsKCkgPSBkZWZhdWx0OworCitzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94
eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKQoreworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPERyYXdpbmdBcmVhUHJveHlXUEU+KG1fdmlldy5wYWdlKCkpOwor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNv
cmU6OlJlZ2lvbiYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9v
bCkKK3sKK30KKworV2ViQ29yZTo6RmxvYXRQb2ludCBQYWdlQ2xpZW50SW1wbDo6dmlld1Njcm9s
bFBvc2l0aW9uKCkKK3sKKyAgICByZXR1cm4geyB9OworfQorCitXZWJDb3JlOjpJbnRTaXplIFBh
Z2VDbGllbnRJbXBsOjp2aWV3U2l6ZSgpCit7CisgICAgcmV0dXJuIG1fdmlldy5zaXplKCk7Cit9
CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld1dpbmRvd0FjdGl2ZSgpCit7CisgICAgcmV0
dXJuIG1fdmlldy52aWV3U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OldpbmRvd0lz
QWN0aXZlOworfQorCitib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdGb2N1c2VkKCkKK3sKKyAg
ICByZXR1cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNG
b2N1c2VkOworfQorCitib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdWaXNpYmxlKCkKK3sKKyAg
ICByZXR1cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNW
aXNpYmxlOworfQorCitib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdJbldpbmRvdygpCit7Cisg
ICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6Oklz
SW5XaW5kb3c7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnByb2Nlc3NEaWRFeGl0KCkKK3sK
K30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUmVsYXVuY2hQcm9jZXNzKCkKK3sKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6cGFnZUNsb3NlZCgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6dG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJp
bmcmLCBib29sKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVEb3dubG9hZFJl
cXVlc3QoRG93bmxvYWRQcm94eSopCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENo
YW5nZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKQoreworfQorCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikKK3sKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wp
Cit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGll
cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKQoreworfQorCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQ
cm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6Y2xlYXJBbGxFZGl0Q29tbWFuZHMoKQoreworfQorCitib29sIFBhZ2VDbGllbnRJbXBs
OjpjYW5VbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpleGVjdXRlVW5kb1JlZG8oV2ViUGFnZVBy
b3h5OjpVbmRvT3JSZWRvKQoreworfQorCitXZWJDb3JlOjpGbG9hdFJlY3QgUGFnZUNsaWVudElt
cGw6OmNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkK
K3sKKyAgICByZXR1cm4gcmVjdDsKK30KKworV2ViQ29yZTo6RmxvYXRSZWN0IFBhZ2VDbGllbnRJ
bXBsOjpjb252ZXJ0VG9Vc2VyU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZWN0KQor
eworICAgIHJldHVybiByZWN0OworfQorCitXZWJDb3JlOjpJbnRQb2ludCBQYWdlQ2xpZW50SW1w
bDo6c2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQpCit7Cisg
ICAgcmV0dXJuIHBvaW50OworfQorCitXZWJDb3JlOjpJbnRSZWN0IFBhZ2VDbGllbnRJbXBsOjpy
b290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCit7CisgICAgcmV0
dXJuIHJlY3Q7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoS2V5RXZlbnQoY29u
c3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiB0b3Vj
aEV2ZW50LCBib29sIHdhc0V2ZW50SGFuZGxlZCkKK3sKKyAgICBpZiAod2FzRXZlbnRIYW5kbGVk
KQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3JhdyogdG91Y2hQb2ludCA9IHRvdWNoRXZlbnQubmF0aXZlRmFsbGJhY2tUb3VjaFBvaW50
KCk7CisgICAgaWYgKHRvdWNoUG9pbnQtPnR5cGUgPT0gd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5
cGVfbnVsbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgcGFnZSA9IG1fdmlldy5wYWdl
KCk7CisKKyAgICBpZiAobV9zY3JvbGxHZXN0dXJlQ29udHJvbGxlci0+aGFuZGxlRXZlbnQodG91
Y2hQb2ludCkpIHsKKyAgICAgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBheGlzRXZl
bnQgPSBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyLT5heGlzRXZlbnQoKTsKKyAgICAgICAgaWYg
KGF4aXNFdmVudC0+dHlwZSAhPSB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX251bGwpCisgICAg
ICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50
KGF4aXNFdmVudCwgbV92aWV3LnBhZ2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQgcG9p
bnRlckV2ZW50IHsKKyAgICAgICAgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsLCB0
b3VjaFBvaW50LT50aW1lLAorICAgICAgICB0b3VjaFBvaW50LT54LCB0b3VjaFBvaW50LT55LAor
ICAgICAgICAxLCAwCisgICAgfTsKKworICAgIHN3aXRjaCAodG91Y2hQb2ludC0+dHlwZSkgewor
ICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcG9pbnRl
ckV2ZW50LnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjsKKyAgICAg
ICAgcG9pbnRlckV2ZW50LnN0YXRlID0gMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBl
ID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9tb3Rpb247CisgICAgICAgIHBvaW50ZXJF
dmVudC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNo
X2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3Bv
aW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDA7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9u
dWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHBhZ2UuaGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KCZwb2lu
dGVyRXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJX
aGVlbEV2ZW50JikKK3sKK30KKworUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50
SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5JikKK3sKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorc3RkOjp1bmlxdWVfcHRy
PFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb250ZXh0TWVudVBy
b3h5KFdlYlBhZ2VQcm94eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBV
c2VyRGF0YSYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRy
ZWVDb250ZXh0JikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVu
dFByb3ZpZGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4oKQorewor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwg
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5h
dmlnYXRpb25HZXN0dXJlRGlkRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQorewor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEVuZCgpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OndpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJl
bW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZy
YW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpyZWZWaWV3KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGVyZWZWaWV3KCkK
K3sKK30KKworI2lmIEVOQUJMRShWSURFTykKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmRlY2lkZVBv
bGljeUZvckluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QoSW5zdGFs
bE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdCYpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlc3RvcmVTY3JvbGxQ
b3NpdGlvbigpCit7Cit9CisKK1dlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24g
UGFnZUNsaWVudEltcGw6OnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKQoreworICAgIHJl
dHVybiBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFI7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmU3OWFjZTEwNmY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaApAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIlBhZ2VDbGllbnQuaCIKKworbmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTY3JvbGxHZXN0dXJlQ29udHJvbGxl
cjsKKworY2xhc3MgUGFnZUNsaWVudEltcGwgZmluYWwgOiBwdWJsaWMgUGFnZUNsaWVudCB7Citw
dWJsaWM6CisgICAgUGFnZUNsaWVudEltcGwoV0tXUEU6OlZpZXcmKTsKKyAgICB2aXJ0dWFsIH5Q
YWdlQ2xpZW50SW1wbCgpOworCitwcml2YXRlOgorICAgIC8vIFBhZ2VDbGllbnQKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpIG92
ZXJyaWRlOworICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdp
b24mKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAg
V2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1ZpZXdXaW5k
b3dBY3RpdmUoKSBvdmVycmlkZTsKKyAgICBib29sIGlzVmlld0ZvY3VzZWQoKSBvdmVycmlkZTsK
KyAgICBib29sIGlzVmlld1Zpc2libGUoKSBvdmVycmlkZTsKKyAgICBib29sIGlzVmlld0luV2lu
ZG93KCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHByb2Nlc3NEaWRFeGl0KCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRSZWxhdW5jaFByb2Nlc3MoKSBvdmVycmlkZTsKKyAgICB2b2lkIHBhZ2VDbG9z
ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHByZWZlcmVuY2VzRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCB0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKKworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJp
bmcmLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3du
bG9hZFByb3h5Kikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2V0Q3Vyc29yKGNv
bnN0IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVu
VW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2hhbmdlVmlld3Bv
cnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpIG92ZXJyaWRl
OworCisgICAgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1h
bmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CisgICAgdm9pZCBj
bGVhckFsbEVkaXRDb21tYW5kcygpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuVW5kb1JlZG8oV2Vi
UGFnZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKKyAgICB2b2lkIGV4ZWN1dGVVbmRvUmVk
byhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworCisgICAgV2ViQ29yZTo6Rmxv
YXRSZWN0IGNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92
ZXJyaWRlOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0VG9Vc2VyU3BhY2UoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SW50UG9pbnQgc2Ny
ZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIG92ZXJyaWRlOworICAgIFdl
YkNvcmU6OkludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
b3ZlcnJpZGU7CisKKyAgICB2b2lkIGRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudCYsIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50
KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHdo
ZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQm
KSBvdmVycmlkZTsKKworICAgIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBN
ZW51UHJveHkoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvbnRleHRNZW51UHJveHk+IGNyZWF0ZUNvbnRl
eHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgY29uc3QgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYs
IGNvbnN0IFVzZXJEYXRhJikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZvaWQgZW50ZXJBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7
CisgICAgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNv
bnRleHQmKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0
b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
Jikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIG5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4oKSBvdmVy
cmlkZTsKKyAgICB2b2lkIG5hdmlnYXRpb25HZXN0dXJlV2lsbEVuZChib29sLCBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAgdm9pZCBuYXZpZ2F0aW9uR2VzdHVyZURpZEVu
ZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAgdm9pZCBuYXZp
Z2F0aW9uR2VzdHVyZURpZEVuZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbFJlY29yZE5hdmln
YXRpb25TbmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkgb3ZlcnJpZGU7CisKKyAgICB2
b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUp
IG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKSBvdmVycmlk
ZTsKKworICAgIHZvaWQgcmVmVmlldygpIG92ZXJyaWRlOworICAgIHZvaWQgZGVyZWZWaWV3KCkg
b3ZlcnJpZGU7CisKKyNpZiBFTkFCTEUoVklERU8pCisgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5n
TWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKSBvdmVycmlkZTsKKyNlbmRpZgorCisgICAg
dm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6
OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bigpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRDaGFuZ2VBdm9pZHNVbnNhZmVBcmVhKGJvb2wp
IG92ZXJyaWRlIHsgfQorCisgICAgV0tXUEU6OlZpZXcmIG1fdmlldzsKKworICAgIHN0ZDo6dW5p
cXVlX3B0cjxTY3JvbGxHZXN0dXJlQ29udHJvbGxlcj4gbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxl
cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYTEyYzhlYjM1MQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1
cmVDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJTY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxi
YXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgU2Nyb2xsR2VzdHVyZUNvbnRyb2xs
ZXI6OmhhbmRsZUV2ZW50KGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiB0
b3VjaFBvaW50KQoreworICAgIHN3aXRjaCAodG91Y2hQb2ludC0+dHlwZSkgeworICAgIGNhc2Ug
d3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgbV9zdGFydC50aW1lID0g
dG91Y2hQb2ludC0+dGltZTsKKyAgICAgICAgbV9zdGFydC54ID0gdG91Y2hQb2ludC0+eDsKKyAg
ICAgICAgbV9zdGFydC55ID0gdG91Y2hQb2ludC0+eTsKKyAgICAgICAgbV9vZmZzZXQueCA9IHRv
dWNoUG9pbnQtPng7CisgICAgICAgIG1fb2Zmc2V0LnkgPSB0b3VjaFBvaW50LT55OworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rp
b246CisgICAgICAgIGlmICghbV9oYW5kbGluZykgeworICAgICAgICAgICAgaW50MzJfdCBkZWx0
YVggPSB0b3VjaFBvaW50LT54IC0gbV9zdGFydC54OworICAgICAgICAgICAgaW50MzJfdCBkZWx0
YVkgPSB0b3VjaFBvaW50LT55IC0gbV9zdGFydC55OworICAgICAgICAgICAgdWludDMyX3QgZGVs
dGFUaW1lID0gdG91Y2hQb2ludC0+dGltZSAtIG1fc3RhcnQudGltZTsKKworICAgICAgICAgICAg
aW50IHBpeGVsc1BlckxpbmVTdGVwID0gV2ViQ29yZTo6U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5l
U3RlcCgpOworICAgICAgICAgICAgbV9oYW5kbGluZyA9IHN0ZDo6YWJzKGRlbHRhWCkgPj0gcGl4
ZWxzUGVyTGluZVN0ZXAKKyAgICAgICAgICAgICAgICB8fCBzdGQ6OmFicyhkZWx0YVkpID49IHBp
eGVsc1BlckxpbmVTdGVwCisgICAgICAgICAgICAgICAgfHwgZGVsdGFUaW1lID49IDIwMDsKKyAg
ICAgICAgfQorICAgICAgICBpZiAobV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9heGlzRXZl
bnQgPSB7CisgICAgICAgICAgICAgICAgd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9tb3Rpb24s
CisgICAgICAgICAgICAgICAgdG91Y2hQb2ludC0+dGltZSwgbV9zdGFydC54LCBtX3N0YXJ0Lnks
CisgICAgICAgICAgICAgICAgMiwgKHRvdWNoUG9pbnQtPnkgLSBtX29mZnNldC55KQorICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgIG1fb2Zmc2V0LnggPSB0b3VjaFBvaW50LT54OworICAgICAg
ICAgICAgbV9vZmZzZXQueSA9IHRvdWNoUG9pbnQtPnk7CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSB3cGVfaW5wdXRf
dG91Y2hfZXZlbnRfdHlwZV91cDoKKyAgICAgICAgaWYgKG1faGFuZGxpbmcpIHsKKyAgICAgICAg
ICAgIG1faGFuZGxpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIG1fYXhpc0V2ZW50ID0geworICAg
ICAgICAgICAgICAgIHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVfbnVsbCwKKyAgICAgICAgICAg
ICAgICAwLCAwLCAwLCAwLCAwCisgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1
cmVDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3
ZDE3MjRhYWRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8d3BlL2lucHV0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3Qg
U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIgeworcHVibGljOgorICAgIFNjcm9sbEdlc3R1cmVDb250
cm9sbGVyKCkgPSBkZWZhdWx0OworCisgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBh
eGlzRXZlbnQoKSB7IHJldHVybiAmbV9heGlzRXZlbnQ7IH0KKworICAgIGJvb2wgaGFuZGxlRXZl
bnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqKTsKKworcHJpdmF0ZToK
KyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50MzJfdCB0aW1lIHsgMCB9OworICAgICAgICBpbnQz
Ml90IHggeyAwIH07CisgICAgICAgIGludDMyX3QgeSB7IDAgfTsKKyAgICB9IG1fc3RhcnQ7CisK
KyAgICBzdHJ1Y3QgeworICAgICAgICBpbnQzMl90IHggeyAwIH07CisgICAgICAgIGludDMyX3Qg
eSB7IDAgfTsKKyAgICB9IG1fb2Zmc2V0OworCisgICAgYm9vbCBtX2hhbmRsaW5nIHsgZmFsc2Ug
fTsKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQgbV9heGlzRXZlbnQ7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUv
V1BFVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNkN2I2
MjNhNTU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93
cGUvV1BFVmlldy5jcHAKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldQRVZpZXcuaCIKKworI2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCisjaW5jbHVk
ZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZl
bnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJUb3VjaEV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZl
V2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSA8d3BlL3ZpZXctYmFja2VuZC5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV0tXUEUgeworCitWaWV3OjpWaWV3KHN0cnVj
dCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9u
JiBiYXNlQ29uZmlndXJhdGlvbikKKyAgICA6IG1fcGFnZUNsaWVudChzdGQ6Om1ha2VfdW5pcXVl
PFBhZ2VDbGllbnRJbXBsPigqdGhpcykpCisgICAgLCBtX3NpemUgeyA4MDAsIDYwMCB9CisgICAg
LCBtX3ZpZXdTdGF0ZUZsYWdzKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZl
IHwgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNGb2N1c2VkIHwgV2ViQ29yZTo6QWN0aXZpdHlT
dGF0ZTo6SXNWaXNpYmxlIHwgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRvdykKKyAg
ICAsIG1fY29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKnRoaXMpCit7CisgICAgYXV0byBjb25maWd1
cmF0aW9uID0gYmFzZUNvbmZpZ3VyYXRpb24uY29weSgpOworICAgIGF1dG8qIHByZWZlcmVuY2Vz
ID0gY29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKTsKKyAgICBpZiAoIXByZWZlcmVuY2VzICYm
IGNvbmZpZ3VyYXRpb24tPnBhZ2VHcm91cCgpKSB7CisgICAgICAgIHByZWZlcmVuY2VzID0gJmNv
bmZpZ3VyYXRpb24tPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpOworICAgICAgICBjb25maWd1
cmF0aW9uLT5zZXRQcmVmZXJlbmNlcyhwcmVmZXJlbmNlcyk7CisgICAgfQorICAgIGlmIChwcmVm
ZXJlbmNlcykgeworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRGb3JjZUNvbXBvc2l0aW5n
TW9kZSh0cnVlKTsKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEFjY2VsZXJhdGVkMmRDYW52YXNF
bmFibGVkKHRydWUpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0V2ViR0xFbmFibGVkKHRydWUp
OworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0V2ViU2VjdXJpdHlFbmFibGVkKGZhbHNlKTsKKyAg
ICAgICAgcHJlZmVyZW5jZXMtPnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQodHJ1ZSk7CisgICAg
fQorCisgICAgYXV0byogcG9vbCA9IGNvbmZpZ3VyYXRpb24tPnByb2Nlc3NQb29sKCk7CisgICAg
bV9wYWdlUHJveHkgPSBwb29sLT5jcmVhdGVXZWJQYWdlKCptX3BhZ2VDbGllbnQsIFdURk1vdmUo
Y29uZmlndXJhdGlvbikpOworCisgICAgbV9iYWNrZW5kID0gYmFja2VuZDsKKyAgICBpZiAoIW1f
YmFja2VuZCkKKyAgICAgICAgbV9iYWNrZW5kID0gd3BlX3ZpZXdfYmFja2VuZF9jcmVhdGUoKTsK
KyAgICBtX2NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmluaXRpYWxpemUoKTsKKworICAgIHN0YXRp
YyBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZF9jbGllbnQgc19iYWNrZW5kQ2xpZW50ID0geworICAg
ICAgICAvLyBzZXRfc2l6ZQorICAgICAgICBbXSh2b2lkKiBkYXRhLCB1aW50MzJfdCB3aWR0aCwg
dWludDMyX3QgaGVpZ2h0KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3ID0gKnJl
aW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5zZXRTaXplKFdl
YkNvcmU6OkludFNpemUod2lkdGgsIGhlaWdodCkpOworICAgICAgICB9LAorICAgICAgICAvLyBm
cmFtZV9kaXNwbGF5ZWQKKyAgICAgICAgW10odm9pZCogZGF0YSkKKyAgICAgICAgeworICAgICAg
ICAgICAgYXV0byYgdmlldyA9ICpyZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRhKTsKKyAgICAg
ICAgICAgIHZpZXcuZnJhbWVEaXNwbGF5ZWQoKTsKKyAgICAgICAgfQorICAgIH07CisgICAgd3Bl
X3ZpZXdfYmFja2VuZF9zZXRfYmFja2VuZF9jbGllbnQobV9iYWNrZW5kLCAmc19iYWNrZW5kQ2xp
ZW50LCB0aGlzKTsKKworICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZF9pbnB1dF9j
bGllbnQgc19pbnB1dENsaWVudCA9IHsKKyAgICAgICAgLy8gaGFuZGxlX2tleWJvYXJkX2V2ZW50
CisgICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQq
IGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3ID0gKnJlaW50ZXJwcmV0
X2Nhc3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5wYWdlKCkuaGFuZGxlS2V5Ym9h
cmRFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQpKTsKKyAgICAgICAg
fSwKKyAgICAgICAgLy8gaGFuZGxlX3BvaW50ZXJfZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0
YSwgc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCkKKyAgICAgICAgeworICAg
ICAgICAgICAgYXV0byYgcGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpLT5wYWdl
KCk7CisgICAgICAgICAgICBwYWdlLmhhbmRsZU1vdXNlRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJN
b3VzZUV2ZW50KGV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKyAgICAgICAgfSwK
KyAgICAgICAgLy8gaGFuZGxlX2F4aXNfZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0YSwgc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCkKKyAgICAgICAgeworICAgICAgICAgICAg
YXV0byYgcGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpLT5wYWdlKCk7CisgICAg
ICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50
KGV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKyAgICAgICAgfSwKKyAgICAgICAg
Ly8gaGFuZGxlX3RvdWNoX2V2ZW50CisgICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVf
aW5wdXRfdG91Y2hfZXZlbnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBw
YWdlID0gcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAg
IHBhZ2UuaGFuZGxlVG91Y2hFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoZXZlbnQs
IHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgIH07CisgICAgd3Bl
X3ZpZXdfYmFja2VuZF9zZXRfaW5wdXRfY2xpZW50KG1fYmFja2VuZCwgJnNfaW5wdXRDbGllbnQs
IHRoaXMpOworCisgICAgd3BlX3ZpZXdfYmFja2VuZF9pbml0aWFsaXplKG1fYmFja2VuZCk7CisK
KyAgICBtX3BhZ2VQcm94eS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKK30KKworVmlldzo6flZpZXco
KQoreworICAgIHdwZV92aWV3X2JhY2tlbmRfZGVzdHJveShtX2JhY2tlbmQpOworfQorCit2b2lk
IFZpZXc6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3Q2xpZW50QmFzZSogY2xpZW50KQor
eworICAgIG1fY2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKwordm9pZCBWaWV3OjpmcmFt
ZURpc3BsYXllZCgpCit7CisgICAgbV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQoKnRoaXMpOworfQor
Cit2b2lkIFZpZXc6OnNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKK3sKKyAg
ICBtX3NpemUgPSBzaXplOworICAgIGlmIChtX3BhZ2VQcm94eS0+ZHJhd2luZ0FyZWEoKSkKKyAg
ICAgICAgbV9wYWdlUHJveHktPmRyYXdpbmdBcmVhKCktPnNldFNpemUoc2l6ZSwgV2ViQ29yZTo6
SW50U2l6ZSgpLCBXZWJDb3JlOjpJbnRTaXplKCkpOworfQorCit2b2lkIFZpZXc6OnNldFZpZXdT
dGF0ZShXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyBmbGFncykKK3sKKyAgICBzdGF0aWMg
Y29uc3QgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgZGVmYXVsdEZsYWdzID0gV2ViQ29y
ZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRl
OjpJc0ZvY3VzZWQ7CisKKyAgICBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyBjaGFuZ2Vk
RmxhZ3MgPSBtX3ZpZXdTdGF0ZUZsYWdzIF4gKGRlZmF1bHRGbGFncyB8IGZsYWdzKTsKKyAgICBt
X3ZpZXdTdGF0ZUZsYWdzID0gZGVmYXVsdEZsYWdzIHwgZmxhZ3M7CisKKyAgICBpZiAoY2hhbmdl
ZEZsYWdzKQorICAgICAgICBtX3BhZ2VQcm94eS0+YWN0aXZpdHlTdGF0ZURpZENoYW5nZShjaGFu
Z2VkRmxhZ3MpOworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvV1BFVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4yYjNjOWQ4NGM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCIK
KyNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUgIldQRVZpZXdDbGllbnQuaCIK
KyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3Rh
dGUuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitzdHJ1
Y3Qgd3BlX3ZpZXdfYmFja2VuZDsKKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJQYWdl
R3JvdXA7CitjbGFzcyBXZWJQcm9jZXNzUG9vbDsKK30KKworbmFtZXNwYWNlIFdLV1BFIHsKKwor
Y2xhc3MgVmlldyA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlZp
ZXc+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVmlldyogY3JlYXRlKHN0cnVjdCB3cGVfdmlld19i
YWNrZW5kKiBiYWNrZW5kLCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0
aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBWaWV3KGJhY2tlbmQsIGNvbmZpZ3VyYXRp
b24pOworICAgIH0KKworICAgIC8vIENsaWVudCBtZXRob2RzCisgICAgdm9pZCBpbml0aWFsaXpl
Q2xpZW50KGNvbnN0IFdLVmlld0NsaWVudEJhc2UqKTsKKyAgICB2b2lkIGZyYW1lRGlzcGxheWVk
KCk7CisKKyAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSgpIHsgcmV0dXJuICptX3BhZ2VQ
cm94eTsgfQorCisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQoKSB7IHJldHVy
biBtX2JhY2tlbmQ7IH0KKworICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUoKSBjb25z
dCB7IHJldHVybiBtX3NpemU7IH0KKworICAgIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdz
IHZpZXdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1N0YXRlRmxhZ3M7IH0KKyAgICB2b2lk
IHNldFZpZXdTdGF0ZShXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyk7CisKK3ByaXZhdGU6
CisgICAgVmlldyhzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCosIGNvbnN0IEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb24mKTsKKyAgICB2aXJ0dWFsIH5WaWV3KCk7CisKKyAgICB2b2lkIHNldFNpemUoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpOworCisgICAgVmlld0NsaWVudCBtX2NsaWVudDsKKworICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsPiBtX3BhZ2VDbGllbnQ7Cisg
ICAgUmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBtX3BhZ2VQcm94eTsKKyAgICBXZWJDb3Jl
OjpJbnRTaXplIG1fc2l6ZTsKKyAgICBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyBtX3Zp
ZXdTdGF0ZUZsYWdzOworCisgICAgV2ViS2l0OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eSBtX2Nv
bXBvc2l0aW5nTWFuYWdlclByb3h5OworICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBtX2Jh
Y2tlbmQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uNDQ0YWM5ODg2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50LmNwcApAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXUEVWaWV3Q2xpZW50LmgiCisKKyNpbmNs
dWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0Jhc2UuaCIKKyNpbmNsdWRlICJXUEVWaWV3
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK3Zv
aWQgVmlld0NsaWVudDo6ZnJhbWVEaXNwbGF5ZWQoVmlldyYgdmlldykKK3sKKyAgICBpZiAobV9j
bGllbnQuZnJhbWVEaXNwbGF5ZWQpCisgICAgICAgIG1fY2xpZW50LmZyYW1lRGlzcGxheWVkKHRv
QVBJKCZ2aWV3KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV0tXUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQ
RVZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdD
bGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDVlNTU5ZmFm
NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9X
UEVWaWV3Q2xpZW50LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFQSUNs
aWVudC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXcuaD4KKworbmFtZXNwYWNlIEFQSSB7Cit0
ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tWaWV3Q2xpZW50QmFzZT4geworICAgIHR5
cGVkZWYgc3RkOjp0dXBsZTxXS1ZpZXdDbGllbnRWMD4gVmVyc2lvbnM7Cit9OworfQorCituYW1l
c3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3OworCitjbGFzcyBWaWV3Q2xpZW50IDogcHVibGlj
IEFQSTo6Q2xpZW50PFdLVmlld0NsaWVudEJhc2U+IHsKK3B1YmxpYzoKKyAgICB2b2lkIGZyYW1l
RGlzcGxheWVkKFZpZXcmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNv
dXJjZUJ1bmRsZS54bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQy
SW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNTgyMDkyYmJmZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbApA
QCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8
Z3Jlc291cmNlcz4KKyAgPGdyZXNvdXJjZSBwcmVmaXg9Ii9vcmcvd3BlL2luc3BlY3Rvci9Vc2Vy
SW50ZXJmYWNlIj4KKyAgICA8ZmlsZT5pbnNwZWN0b3JQYWdlSW5kZXguaHRtbDwvZmlsZT4KKyAg
PC9ncmVzb3VyY2U+Cis8L2dyZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyN2JlYzM2MjMxNS4uZmQ4NDhjY2VkMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAt
NTUsNyArNTUsNyBAQCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoTwogICAgIGlmIChtX2Fsd2F5c1J1
bnNBdEJhY2tncm91bmRQcmlvcml0eSkKICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRp
YWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFsKCJhbHdheXMtcnVucy1hdC1iYWNrZ3JvdW5k
LXByaW9yaXR5IiksICJ0cnVlIik7CiAKLSNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIFBM
QVRGT1JNKEdUSykKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIChQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkpCiAgICAgY29uc3QgY2hhciogdmFybmFtZTsKICAgICBzd2l0Y2gg
KGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUpIHsKICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6
UHJvY2Vzc1R5cGU6OldlYjoKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94
eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5j
aE8KICAgICBjb25zdCBjaGFyKiBwcm9jZXNzQ21kUHJlZml4ID0gZ2V0ZW52KHZhcm5hbWUpOwog
ICAgIGlmIChwcm9jZXNzQ21kUHJlZml4ICYmICpwcm9jZXNzQ21kUHJlZml4KQogICAgICAgICBs
YXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXggPSBTdHJpbmc6OmZyb21VVEY4KHByb2Nlc3ND
bWRQcmVmaXgpOwotI2VuZGlmIC8vIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0o
R1RLKQorI2VuZGlmIC8vIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV1BFKSkKIH0KIAogdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6Y29ubmVjdCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dw
ZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0lu
c3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9yU2VydmVyV1BFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjY4M2UzZDcxNjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0
b3JTZXJ2ZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yU2Vy
dmVyLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKKworI2luY2x1ZGUgIldlYklu
c3BlY3RvclByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSA8Y3N0
ZGlvPgorI2luY2x1ZGUgPGdtb2R1bGUuaD4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Ym9vbCBXZWJJbnNwZWN0b3JTZXJ2ZXI6OnBsYXRmb3JtUmVzb3VyY2VGb3JQYXRoKGNvbnN0IFN0
cmluZyYgcGF0aCwgVmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKQorewor
ICAgIC8vIFRoZSBwYWdlIGxpc3QgY29udGFpbnMgYW4gdW5mb3JtYXRlZCBsaXN0IG9mIHBhZ2Vz
IHRoYXQgY2FuIGJlIGluc3BlY3RlZCB3aXRoIGEgbGluayB0byBvcGVuIGEgc2Vzc2lvbi4KKyAg
ICBpZiAocGF0aCA9PSAiL3BhZ2VsaXN0Lmpzb24iKSB7CisgICAgICAgIGJ1aWxkUGFnZUxpc3Qo
ZGF0YSwgY29udGVudFR5cGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgZmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShmbGFnLCBbXSB7
CisgICAgICAgIEdNb2R1bGUqIHJlc291cmNlc01vZHVsZSA9IGdfbW9kdWxlX29wZW4oImxpYldQ
RVdlYkluc3BlY3RvclJlc291cmNlcy5zbyIsIEdfTU9EVUxFX0JJTkRfTEFaWSk7CisgICAgICAg
IGlmICghcmVzb3VyY2VzTW9kdWxlKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkVycm9y
IGxvYWRpbmcgbGliV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzLnNvOiAlcyIsIGdfbW9kdWxlX2Vy
cm9yKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZ19tb2R1
bGVfbWFrZV9yZXNpZGVudChyZXNvdXJjZXNNb2R1bGUpOworICAgIH0pOworCisgICAgLy8gUG9p
bnQgdGhlIGRlZmF1bHQgcGF0aCB0byBhIGZvcm1hdHRlZCBwYWdlIHRoYXQgcXVlcmllcyB0aGUg
cGFnZSBsaXN0IGFuZCBkaXNwbGF5IHRoZW0uCisgICAgQ1N0cmluZyByZXNvdXJjZVBhdGggPSBt
YWtlU3RyaW5nKCIvb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZSIsIChwYXRoID09ICIv
IiA/ICIvaW5zcGVjdG9yUGFnZUluZGV4Lmh0bWwiIDogcGF0aCkpLnV0ZjgoKTsKKyAgICBpZiAo
cmVzb3VyY2VQYXRoLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHVW5p
cXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CisgICAgR1JlZlB0cjxHQnl0ZXM+IHJlc291cmNlQnl0
ZXMgPSBhZG9wdEdSZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEocmVzb3VyY2VQYXRoLmRhdGEo
KSwgR19SRVNPVVJDRV9MT09LVVBfRkxBR1NfTk9ORSwgJmVycm9yLm91dFB0cigpKSk7CisgICAg
aWYgKCFyZXNvdXJjZUJ5dGVzKSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48
L2hlYWQ+PGJvZHk+RXJyb3I6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihlcnJv
ci0+Y29kZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIiBvY2N1cnJlZCBkdXJpbmcgZmV0Y2hpbmcgaW5zcGVjdG9yIHJlc291cmNlIGZpbGVz
LjwvYm9keT48L2h0bWw+Iik7CisKKyAgICAgICAgQ1N0cmluZyBlcnJvckhUTUwgPSBidWlsZGVy
LnRvU3RyaW5nKCkudXRmOCgpOworICAgICAgICBkYXRhLmFwcGVuZChlcnJvckhUTUwuZGF0YSgp
LCBlcnJvckhUTUwubGVuZ3RoKCkpOworICAgICAgICBjb250ZW50VHlwZSA9ICJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9dXRmLTgiOworCisgICAgICAgIFdURkxvZ0Fsd2F5cygiRXJyb3IgZmV0Y2hpbmcg
d2ViaW5zcGVjdG9yIHJlc291cmNlIGZpbGVzOiAlZCwgJXMiLCBlcnJvci0+Y29kZSwgZXJyb3It
Pm1lc3NhZ2UpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZ3NpemUgcmVz
b3VyY2VEYXRhU2l6ZTsKKyAgICBnY29uc3Rwb2ludGVyIHJlc291cmNlRGF0YSA9IGdfYnl0ZXNf
Z2V0X2RhdGEocmVzb3VyY2VCeXRlcy5nZXQoKSwgJnJlc291cmNlRGF0YVNpemUpOworICAgIGRh
dGEuYXBwZW5kKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihyZXNvdXJjZURhdGEpLCByZXNvdXJj
ZURhdGFTaXplKTsKKworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG1pbWVUeXBlKGdfY29udGVudF90
eXBlX2d1ZXNzKHJlc291cmNlUGF0aC5kYXRhKCksIHN0YXRpY19jYXN0PGNvbnN0IGd1Y2hhcio+
KHJlc291cmNlRGF0YSksIHJlc291cmNlRGF0YVNpemUsIG51bGxwdHIpKTsKKyAgICBjb250ZW50
VHlwZSA9IG1pbWVUeXBlLmdldCgpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYklu
c3BlY3RvclNlcnZlcjo6YnVpbGRQYWdlTGlzdChWZWN0b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYg
Y29udGVudFR5cGUpCit7CisgICAgLy8gY2hyb21lZGV2dG9vbHMgKGh0dHA6Ly9jb2RlLmdvb2ds
ZS5jb20vcC9jaHJvbWVkZXZ0b29scykgMC4zLjggZXhwZWN0ZWQgSlNPTiBmb3JtYXQ6CisgICAg
Ly8geworICAgIC8vICAidGl0bGUiOiAiRm9vIiwKKyAgICAvLyAgInVybCI6ICJodHRwOi8vZm9v
IiwKKyAgICAvLyAgImRldnRvb2xzRnJvbnRlbmRVcmwiOiAiL01haW4uaHRtbD93cz1sb2NhbGhv
c3Q6OTIyMi9kZXZ0b29scy9wYWdlLzEiLAorICAgIC8vICAid2ViU29ja2V0RGVidWdnZXJVcmwi
OiAid3M6Ly9sb2NhbGhvc3Q6OTIyMi9kZXZ0b29scy9wYWdlLzEiCisgICAgLy8gfSwKKworICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlsgIik7
CisgICAgQ2xpZW50TWFwOjppdGVyYXRvciBlbmQgPSBtX2NsaWVudE1hcC5lbmQoKTsKKyAgICBm
b3IgKENsaWVudE1hcDo6aXRlcmF0b3IgaXQgPSBtX2NsaWVudE1hcC5iZWdpbigpOyBpdCAhPSBl
bmQ7ICsraXQpIHsKKyAgICAgICAgV2ViUGFnZVByb3h5KiB3ZWJQYWdlID0gaXQtPnZhbHVlLT5p
bnNwZWN0ZWRQYWdlKCk7CisgICAgICAgIGlmIChpdCAhPSBtX2NsaWVudE1hcC5iZWdpbigpKQor
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoInsgXCJpZFwiOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIoaXQtPmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBcInRpdGxlXCI6
IFwiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHdlYlBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS50
aXRsZSgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJ1cmxcIjogXCIi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQod2ViUGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmFjdGl2
ZVVSTCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJpbnNwZWN0b3JV
cmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvTWFpbi5odG1sP3Bh
Z2U9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcImRldnRvb2xzRnJvbnRlbmRVcmxcIjogXCIiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvTWFpbi5odG1sP3dzPSIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChiaW5kQWRkcmVzcygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCI6Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvcnQoKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2UvIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIlwiLCBcIndlYlNvY2tldERlYnVnZ2VyVXJsXCI6IFwiIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgid3M6Ly8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYmluZEFkZHJl
c3MoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihwb3J0KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
Ii9kZXZ0b29scy9wYWdlLyIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiB9Iik7CisgICAgfQorICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIF0iKTsKKyAgICBDU3RyaW5nIGNzdHIgPSBidWlsZGVyLnRv
U3RyaW5nKCkudXRmOCgpOworICAgIGRhdGEuYXBwZW5kKGNzdHIuZGF0YSgpLCBjc3RyLmxlbmd0
aCgpKTsKKyAgICBjb250ZW50VHlwZSA9ICJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04
IjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IDM5OTUw
Njk0OGVmLi5iYTc3YzJhYzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlOwogICAgICAgICBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiBleHRyYUluaXRpYWxpemF0aW9uRGF0YTsKIAotI2lmIEVOQUJMRShERVZFTE9QRVJf
TU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgKFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICAgICAgICAgU3RyaW5nIHByb2Nlc3NDbWRQ
cmVmaXg7CiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZDQ2MDk4NjkwZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVy
V1BFLmNwcApAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIw
MTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9M
QSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIu
aCIKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJs
ZVBhdGguaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxlcnJu
by5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdw
ZS9yZW5kZXJlci1ob3N0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3
dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworLy8gRklYTUU6IE1lcmdlIHdpdGggUHJvY2Vzc0xhdW5jaGVyR3RrPworCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB2
b2lkIGNoaWxkU2V0dXBGdW5jdGlvbihncG9pbnRlciB1c2VyRGF0YSkKK3sKKyAgICBpbnQgc29j
a2V0ID0gR1BPSU5URVJfVE9fSU5UKHVzZXJEYXRhKTsKKyAgICBjbG9zZShzb2NrZXQpOworfQor
Cit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCit7CisgICAgR1BpZCBwaWQg
PSAwOworCisgICAgSVBDOjpDb25uZWN0aW9uOjpTb2NrZXRQYWlyIHNvY2tldFBhaXIgPSBJUEM6
OkNvbm5lY3Rpb246OmNyZWF0ZVBsYXRmb3JtQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OkNv
bm5lY3Rpb25PcHRpb25zOjpTZXRDbG9leGVjT25TZXJ2ZXIpOworCisgICAgU3RyaW5nIGV4ZWN1
dGFibGVQYXRoOworICAgIENTdHJpbmcgcmVhbEV4ZWN1dGFibGVQYXRoOworICAgIHN3aXRjaCAo
bV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlKSB7CisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6
OlByb2Nlc3NUeXBlOjpXZWI6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBh
dGhPZldlYlByb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQcm9jZXNzTGF1bmNo
ZXI6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1
dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOworICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUo
REFUQUJBU0VfUFJPQ0VTUykKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6
OkRhdGFiYXNlOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZEYXRh
YmFzZVByb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IHJlYWxFeGVjdXRhYmxlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxl
UGF0aCk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gd2tTb2NrZXQoZ19zdHJkdXBfcHJpbnRmKCIl
ZCIsIHNvY2tldFBhaXIuY2xpZW50KSk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gd3BlU29ja2V0
OworCisgICAgdW5zaWduZWQgbmFyZ3MgPSA0OyAvLyBzaXplIG9mIHRoZSBhcmd2IGFycmF5IGZv
ciBnX3NwYXduX2FzeW5jKCkKKyAgICBpZiAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09
IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYikgeworICAgICAgICB3cGVTb2NrZXQg
PSBHVW5pcXVlUHRyPGdjaGFyPihnX3N0cmR1cF9wcmludGYoIiVkIiwgd3BlX3JlbmRlcmVyX2hv
c3RfY3JlYXRlX2NsaWVudCgpKSk7CisgICAgICAgIG5hcmdzID0gNTsKKyAgICB9CisKKyNpZiBF
TkFCTEUoREVWRUxPUEVSX01PREUpCisgICAgVmVjdG9yPENTdHJpbmc+IHByZWZpeEFyZ3M7Cisg
ICAgaWYgKCFtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZpeC5pc051bGwoKSkgeworICAg
ICAgICBWZWN0b3I8U3RyaW5nPiBzcGxpdEFyZ3M7CisgICAgICAgIG1fbGF1bmNoT3B0aW9ucy5w
cm9jZXNzQ21kUHJlZml4LnNwbGl0KCcgJywgc3BsaXRBcmdzKTsKKyAgICAgICAgZm9yIChhdXRv
IGl0ID0gc3BsaXRBcmdzLmJlZ2luKCk7IGl0ICE9IHNwbGl0QXJncy5lbmQoKTsgaXQrKykKKyAg
ICAgICAgICAgIHByZWZpeEFyZ3MuYXBwZW5kKGl0LT51dGY4KCkpOworICAgICAgICBuYXJncyAr
PSBwcmVmaXhBcmdzLnNpemUoKTsKKyAgICB9CisjZW5kaWYKKworICAgIGNoYXIqKiBhcmd2ID0g
Z19uZXdhKGNoYXIqLCBuYXJncyk7CisgICAgdW5zaWduZWQgaSA9IDA7CisjaWYgRU5BQkxFKERF
VkVMT1BFUl9NT0RFKQorICAgIC8vIElmIHRoZXJlJ3MgYSBwcmVmaXggY29tbWFuZCwgcHV0IGl0
IGJlZm9yZSB0aGUgcmVzdCBvZiB0aGUgYXJncy4KKyAgICBmb3IgKGF1dG8gaXQgPSBwcmVmaXhB
cmdzLmJlZ2luKCk7IGl0ICE9IHByZWZpeEFyZ3MuZW5kKCk7IGl0KyspCisgICAgICAgIGFyZ3Zb
aSsrXSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KGl0LT5kYXRhKCkpOworI2VuZGlmCisgICAgYXJndltp
KytdID0gY29uc3RfY2FzdDxjaGFyKj4ocmVhbEV4ZWN1dGFibGVQYXRoLmRhdGEoKSk7CisgICAg
YXJndltpKytdID0gd2tTb2NrZXQuZ2V0KCk7CisgICAgaWYgKG1fbGF1bmNoT3B0aW9ucy5wcm9j
ZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWIpCisgICAgICAgIGFy
Z3ZbaSsrXSA9IHdwZVNvY2tldC5nZXQoKTsKKyAgICBhcmd2W2krK10gPSBudWxscHRyOworCisg
ICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIGlmICghZ19zcGF3bl9hc3luYygw
LCBhcmd2LCAwLCBHX1NQQVdOX0xFQVZFX0RFU0NSSVBUT1JTX09QRU4sIGNoaWxkU2V0dXBGdW5j
dGlvbiwgR0lOVF9UT19QT0lOVEVSKHNvY2tldFBhaXIuc2VydmVyKSwgJnBpZCwgJmVycm9yLm91
dFB0cigpKSkgeworICAgICAgICBnX3ByaW50ZXJyKCJVbmFibGUgdG8gZm9yayBhIG5ldyBXZWJQ
cm9jZXNzOiAlcy5cbiIsIGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorCisgICAgLy8gRG9uJ3QgZXhwb3NlIHRoZSBwYXJlbnQgc29ja2V0IHRv
IHBvdGVudGlhbCBmdXR1cmUgY2hpbGRyZW4uCisgICAgd2hpbGUgKGZjbnRsKHNvY2tldFBhaXIu
Y2xpZW50LCBGX1NFVEZELCBGRF9DTE9FWEVDKSA9PSAtMSkKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlQoZXJybm8gIT0gRUlOVFIpOworCisgICAgY2xvc2Uoc29ja2V0UGFpci5jbGllbnQpOworICAg
IG1fcHJvY2Vzc0lkZW50aWZpZXIgPSBwaWQ7CisKKyAgICAvLyBXZSd2ZSBmaW5pc2hlZCBsYXVu
Y2hpbmcgdGhlIHByb2Nlc3MsIG1lc3NhZ2UgYmFjayB0byB0aGUgbWFpbiBydW4gbG9vcC4KKyAg
ICBSZWZQdHI8UHJvY2Vzc0xhdW5jaGVyPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBzZXJ2ZXJTb2NrZXQgPSBzb2NrZXRQYWlyLnNlcnZlcjsK
KyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMsIHBpZCwgc2VydmVy
U29ja2V0XSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpZEZpbmlzaExhdW5jaGluZ1Byb2Nl
c3MocGlkLCBzZXJ2ZXJTb2NrZXQpOworICAgIH0pOworfQorCit2b2lkIFByb2Nlc3NMYXVuY2hl
cjo6dGVybWluYXRlUHJvY2VzcygpCit7CisgICAgaWYgKG1faXNMYXVuY2hpbmcpIHsKKyAgICAg
ICAgaW52YWxpZGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3By
b2Nlc3NJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBraWxsKG1fcHJvY2Vzc0lk
ZW50aWZpZXIsIFNJR0tJTEwpOworICAgIG1fcHJvY2Vzc0lkZW50aWZpZXIgPSAwOworfQorCit2
b2lkIFByb2Nlc3NMYXVuY2hlcjo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5oCmluZGV4IDFjOGVmNDYzY2MyLi44NDdmYjVjMzIyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKQEAgLTIyNCw3ICsyMjQsNyBAQCBwcml2
YXRlOgogCiAgICAgV2ViUHJlZmVyZW5jZXMmIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpIGNv
bnN0OwogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKQogICAgIHZvaWQgY3JlYXRlSW5zcGVjdG9yV2luZG93KCk7CiAgICAgdm9pZCB1cGRhdGVJ
bnNwZWN0b3JXaW5kb3dUaXRsZSgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKaW5kZXggNDRlODM2NTUzYjUuLjliYjZkNTRj
YTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5o
CkBAIC05OCw2ICs5OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQYXN0ZWJvYXJkU3RyaW5n
Rm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmRUeXBlLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpOwogICAg
IHZvaWQgc2V0UGFzdGVib2FyZEJ1ZmZlckZvclR5cGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU2hhcmVkTWVtb3J5OjpI
YW5kbGUmLCB1aW50NjRfdCBzaXplLCB1aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpOwogI2VuZGlm
CisKICNpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFdlYlNlbGVjdGlvbkRhdGEmKTsKICAgICB2b2lk
IHJlYWRGcm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYlNlbGVj
dGlvbkRhdGEmKTsKQEAgLTEwNSw3ICsxMDYsMTQgQEAgcHJpdmF0ZToKICAgICBXZWJGcmFtZVBy
b3h5KiBtX3ByaW1hcnlTZWxlY3Rpb25Pd25lciB7IG51bGxwdHIgfTsKICAgICBXZWJGcmFtZVBy
b3h5KiBtX2ZyYW1lV3JpdGluZ1RvQ2xpcGJvYXJkIHsgbnVsbHB0ciB9OwogI2VuZGlmIC8vIFBM
QVRGT1JNKEdUSykKLSAgICAKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGdldFBhc3Rl
Ym9hcmRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzKTsKKyAgICB2b2lkIHJl
YWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkVHlwZSwgV1RGOjpTdHJpbmcmKTsKKyAgICB2b2lkIHdyaXRlV2ViQ29udGVudFRvUGFz
dGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOworICAgIHZvaWQg
d3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29u
c3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIFdlYlByb2Nlc3NQcm94eUxpc3QgbV93ZWJQcm9j
ZXNzUHJveHlMaXN0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzY2YmMxMmVkM2IuLjQwMTJh
ZDVhM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0
ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KQEAgLTU4LDQgKzU4LDExIEBAIG1lc3NhZ2VzIC0+IFdl
YlBhc3RlYm9hcmRQcm94eSB7CiAgICAgV3JpdGVUb0NsaXBib2FyZChTdHJpbmcgcGFzdGVib2Fy
ZE5hbWUsIHN0cnVjdCBXZWJLaXQ6OldlYlNlbGVjdGlvbkRhdGEgcGFzdGVib2FyZENvbnRlbnQp
CiAgICAgUmVhZEZyb21DbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoc3RydWN0
IFdlYktpdDo6V2ViU2VsZWN0aW9uRGF0YSBwYXN0ZWJvYXJkQ29udGVudCkKICNlbmRpZgorCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIEdldFBhc3RlYm9hcmRUeXBlcygpIC0+IChWZWN0b3I8U3Ry
aW5nPiB0eXBlcykKKyAgICBSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgs
IFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFN0cmluZyBzdHJpbmcpCisgICAgV3JpdGVXZWJD
b250ZW50VG9QYXN0ZWJvYXJkKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCBj
b250ZW50KQorICAgIFdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkVHlw
ZSwgU3RyaW5nIHRleHQpCisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDg1MGU2NWRmYzVhLi45N2U0NjFjNmYzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0yODUsNyArMjg1LDcg
QEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgIG5vdGlmeVRoaXNXZWJQcm9jZXNzUG9vbFdhc0Ny
ZWF0ZWQoKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKEdUSykKKyNp
ZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDM3MGZmMmJhMWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcApAQCAtMCww
ICsxLDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKKworI2lu
Y2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RhdGljIFRleHRDaGVja2VyU3RhdGUgdGV4dENoZWNrZXJTdGF0ZTsKKworY29uc3QgVGV4
dENoZWNrZXJTdGF0ZSYgVGV4dENoZWNrZXI6OnN0YXRlKCkKK3sKKyAgICByZXR1cm4gdGV4dENo
ZWNrZXJTdGF0ZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0VGVzdGluZ01vZGUoYm9vbCkK
K3sKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNUZXN0aW5nTW9kZSgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6Omlz
Q29udGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2VkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0Q29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChib29sKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNvbnRpbnVvdXNT
cGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmdyYW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0
ZUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitpbnQ2NF90IFRl
eHRDaGVja2VyOjp1bmlxdWVTcGVsbERvY3VtZW50VGFnKFdlYlBhZ2VQcm94eSopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNr
ZXI6OmNsb3NlU3BlbGxEb2N1bWVudFdpdGhUYWcoaW50NjRfdCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcoaW50
NjRfdCwgU3RyaW5nVmlldywgaW50MzJfdCYsIGludDMyX3QmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNoZWNrR3JhbW1hck9mU3RyaW5nKGludDY0
X3QsIFN0cmluZ1ZpZXcsIFZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludDMyX3Qm
LCBpbnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFRleHRDaGVj
a2VyOjpzcGVsbGluZ1VJSXNTaG93aW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlz
U2hvd2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tl
cjo6dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChpbnQ2NF90LCBjb25zdCBTdHJp
bmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnVw
ZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCBj
b25zdCBHcmFtbWFyRGV0YWlsJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFRleHRDaGVja2VyOjpnZXRHdWVzc2VzRm9yV29yZChpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmLCBpbnQzMl90LCBWZWN0b3I8U3RyaW5nPiYsIGJvb2wpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6bGVhcm5Xb3JkKGludDY0X3Qs
IGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0
Q2hlY2tlcjo6aWdub3JlV29yZChpbnQ2NF90LCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9uPiwgaW50MzJfdCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjViYWVlZTNjMTdmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94
eVdQRS5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYklu
c3BlY3RvclByb3h5LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitX
ZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBh
Z2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUluc3BlY3RvcldpbmRvdygpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1P
cGVuKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybURpZENsb3NlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURpZENsb3NlRm9yQ3Jhc2goKQoreworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUludmFsaWRhdGUoKQoreworfQorCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUhpZGUoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybUJyaW5nSW5zcGVjdGVkUGFnZVRvRnJvbnQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK2Jvb2wgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSXNGcm9udCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JQcm94
eTo6aW5zcGVjdG9yUGFnZVVSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2U6Ly8v
b3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZS9NYWluLmh0bWwiKTsKK30KKworU3RyaW5n
IFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JUZXN0UGFnZVVSTCgpCit7CisgICAgcmV0dXJu
IFN0cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZS9UZXN0
Lmh0bWwiKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JCYXNlVVJM
KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd3BlL2luc3BlY3Rvci9V
c2VySW50ZXJmYWNlLyIpOworfQorCit1bnNpZ25lZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3Bl
Y3RlZFdpbmRvd1dpZHRoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1E
ZXRhY2goKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1T
ZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoQXZh
aWxhYmlsaXR5Q2hhbmdlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9X
ZWJQYWdlUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li40YTIwMmFiZWI0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy93cGUvV2ViUGFnZVByb3h5V1BFLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKworI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit2b2lkIFdlYlBhZ2VQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJB
Z2VudChjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiAiTW96aWxsYS81LjAgKExpbnV4OyB4
ODZfNjQgR05VL0xpbnV4KSBBcHBsZVdlYktpdC82MDEuMSAoS0hUTUwsIGxpa2UgR2Vja28pIFZl
cnNpb24vOC4wIFNhZmFyaS82MDEuMSI7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzYXZlUmVj
ZW50U2VhcmNoZXMoY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNl
YXJjaD4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5
Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFdlYkNvcmU6OlJlY2Vu
dFNlYXJjaD4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6cGxhdGZvcm1SZW1vdmVSZWNlbnRTZWFyY2hlcyhzdGQ6OmNocm9ubzo6c3lzdGVt
X2Nsb2NrOjp0aW1lX3BvaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
V2ViUGFnZVByb3h5OjplZGl0b3JTdGF0ZUNoYW5nZWQoY29uc3QgRWRpdG9yU3RhdGUmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZDNkMGViNDZkNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVi
b2FyZFByb3h5V1BFLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJQYXN0ZWJvYXJkUHJveHkuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0
ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKK3ZvaWQgV2ViUGFzdGVib2FyZFBy
b3h5OjpnZXRQYXN0ZWJvYXJkVHlwZXMoVmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcykK
K3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS5nZXRUeXBlcyhwYXN0ZWJvYXJkVHlwZXMpOwor
fQorCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVp
bnQ2NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBXVEY6OlN0cmluZyYg
dmFsdWUpCit7CisgICAgdmFsdWUgPSBQbGF0Zm9ybVBhc3RlYm9hcmQoKS5yZWFkU3RyaW5nKGlu
ZGV4LCBwYXN0ZWJvYXJkVHlwZSk7Cit9CisKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3cml0
ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRl
bnQmIGNvbnRlbnQpCit7CisgICAgUGxhdGZvcm1QYXN0ZWJvYXJkKCkud3JpdGUoY29udGVudCk7
Cit9CisKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVN0cmluZ1RvUGFzdGVib2FyZChj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAg
UGxhdGZvcm1QYXN0ZWJvYXJkKCkud3JpdGUocGFzdGVib2FyZFR5cGUsIHRleHQpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dw
ZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmZmODFmY2RhMWNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUv
Tm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUHJlZmVy
ZW5jZXM6OnBsYXRmb3JtSW5pdGlhbGl6ZVN0b3JlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZVN0cmluZ1ZhbHVlRm9y
S2V5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVCb29sVmFsdWVGb3JL
ZXkoY29uc3QgU3RyaW5nJiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZVVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0
IFN0cmluZyYsIHVpbnQzMl90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
V2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlRG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3Ry
aW5nJiwgZG91YmxlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJl
ZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlRmxvYXRWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBm
bG9hdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYlByZWZlcmVuY2Vz
OjpwbGF0Zm9ybUdldFN0cmluZ1VzZXJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBTdHJpbmcm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldEJvb2xVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3Ry
aW5nJiwgYm9vbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0VUludDMyVXNlclZhbHVlRm9y
S2V5KGNvbnN0IFN0cmluZyYsIHVpbnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1HZXRE
b3VibGVVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgZG91YmxlJikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQ
b29sV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xX
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMGZhNTJkYWY3
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJv
Y2Vzc1Bvb2xXUEUuY3BwCkBAIC0wLDAgKzEsMTYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdo
dCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzIEx0ZC4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzUG9vbC5oIgorCisjaW5jbHVkZSAiQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgi
CisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJJbnNw
ZWN0b3JTZXJ2ZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxl
U3lzdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxjc3RkbGliPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworLy8gRklYTUU6IE1lcmdlIHdpdGggV2ViUHJvY2Vz
c1Bvb2xHdGs/IEFic3RyYWN0IHRoZSBjb21tb24gcGFydHM/CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCitzdGF0aWMgdm9pZCBpbml0SW5zcGVj
dG9yU2VydmVyKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworICAg
IGlmIChpbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdGlhbGl6ZWQgPSB0
cnVlOworICAgIFN0cmluZyBzZXJ2ZXJBZGRyZXNzKGdfZ2V0ZW52KCJXRUJLSVRfSU5TUEVDVE9S
X1NFUlZFUiIpKTsKKworICAgIGlmICghc2VydmVyQWRkcmVzcy5pc051bGwoKSkgeworICAgICAg
ICBTdHJpbmcgYmluZEFkZHJlc3MgPSAiMTI3LjAuMC4xIjsKKyAgICAgICAgdW5zaWduZWQgc2hv
cnQgcG9ydCA9IDI5OTk7CisKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0OworICAgICAg
ICBzZXJ2ZXJBZGRyZXNzLnNwbGl0KCc6JywgcmVzdWx0KTsKKworICAgICAgICBpZiAocmVzdWx0
LnNpemUoKSA9PSAyKSB7CisgICAgICAgICAgICBiaW5kQWRkcmVzcyA9IHJlc3VsdFswXTsKKyAg
ICAgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAgICAgICAgICAgIHBvcnQgPSByZXN1bHRbMV0u
dG9JbnQoJm9rKTsKKyAgICAgICAgICAgIGlmICghb2spIHsKKyAgICAgICAgICAgICAgICBwb3J0
ID0gMjk5OTsKKyAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHBhcnNlIHRoZSBw
b3J0LiBVc2UgMjk5OSBpbnN0ZWFkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgcGFyc2UgJXMsIHdyb25nIGZvcm1hdD8g
VXNlIDEyNy4wLjAuMToyOTk5IGluc3RlYWQuIiwgc2VydmVyQWRkcmVzcy51dGY4KCkuZGF0YSgp
KTsKKworICAgICAgICBpZiAoIVdlYkluc3BlY3RvclNlcnZlcjo6c2luZ2xldG9uKCkubGlzdGVu
KGJpbmRBZGRyZXNzLCBwb3J0KSkKKyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3Qgc3Rh
cnQgbGlzdGVuaW5nIG9uOiBJUCBhZGRyZXNzPSVzLCBwb3J0PSVkLiIsIGJpbmRBZGRyZXNzLnV0
ZjgoKS5kYXRhKCksIHBvcnQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTE9HKElu
c3BlY3RvclNlcnZlciwgIlRvIHN0YXJ0IGluc3BlY3RvciBzZXJ2ZXIgc2V0IFdFQktJVF9JTlNQ
RUNUT1JfU0VSVkVSIHRvIDEyNy4wLjAuMToyOTk5IGZvciBleGFtcGxlLiIpOworfQorI2VuZGlm
CisKK1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRBcHBs
aWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBjYWNoZURp
cmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAi
YXBwY2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxl
U3lzdGVtUmVwcmVzZW50YXRpb24oY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCitXVEY6OlN0
cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TWVkaWFDYWNoZURpcmVj
dG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gY2FjaGVEaXJlY3RvcnkoZ19idWlsZF9m
aWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgIm1lZGlhY2FjaGUiLCBudWxs
cHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24oY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURh
dGFTdG9yZSgpLnJlZ2lzdGVyU2hhcmVkUmVzb3VyY2VMb2FkT2JzZXJ2ZXIoKTsKK30KKwordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1Jf
U0VSVkVSKQorICAgIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKTsKKyNlbmRpZgorCisgICAgcGFyYW1l
dGVycy5tZW1vcnlDYWNoZURpc2FibGVkID0gbV9tZW1vcnlDYWNoZURpc2FibGVkIHx8IGNhY2hl
TW9kZWwoKSA9PSBDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI7Cit9CisKK3ZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0V2Vi
U1FMRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRhdGFiYXNl
RGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwg
ImRhdGFiYXNlcyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0
cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0SW5kZXhlZERCRGF0YWJh
c2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGluZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwg
ImRhdGFiYXNlcyIsICJpbmRleGVkZGIiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6
OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oaW5kZXhlZERCRGF0YWJhc2VEaXJl
Y3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVs
dEljb25EYXRhYmFzZVBhdGgoKSBjb25zdAoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRhdGFi
YXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndw
ZSIsICJpY29uZGF0YWJhc2UiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmlu
Z0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGF0YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOwor
fQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdExvY2FsU3Rv
cmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gc3RvcmFnZURpcmVjdG9y
eShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIsICJsb2NhbHN0
b3JhZ2UiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oc3RvcmFnZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBX
ZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TWVkaWFLZXlzU3RvcmFnZURpcmVj
dG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9y
eShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIsICJtZWRpYWtl
eXMiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24obWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0
cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TmV0d29ya0NhY2hlRGly
ZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGRpc2tDYWNoZURpcmVjdG9yeShnX2J1
aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAiY2FjaGUiLCBudWxs
cHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24oZGlza0NhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQ
b29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9y
eSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gamF2YVNjcmlwdENvcmVDb25maWdEaXJlY3Rv
cnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiSmF2YVNj
cmlwdENvcmVEZWJ1ZyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJv
bUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihqYXZhU2NyaXB0Q29yZUNvbmZpZ0RpcmVjdG9yeS5n
ZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9y
U2FuZGJveEV4dGVuc2lvbnMoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBk
NTNiOTlhZmU2My4uODgyODI5MmJhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk1NDgsNyArOTU0OCw3IEBACiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCQlzaGVsbFBhdGgg
PSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiV0tCQVNFX0g9JHtUQVJHRVRfQlVJTERfRElS
fS8ke1BSSVZBVEVfSEVBREVSU19GT0xERVJfUEFUSH0vV0tCYXNlLmhcblxudW5pZmRlZiAtQiAt
RF9fQVBQTEVfXyAtVUJVSUxESU5HX0dUS19fIC1VVVNFX1NPVVAgLW8gXCIke1dLQkFTRV9IfVwi
LnVuaWZkZWYgXCIke1dLQkFTRV9IfVwiXG5cbmNhc2UgJD8gaW5cbjApXG4gICAgcm0gXCIke1dL
QkFTRV9IfVwiLnVuaWZkZWZcbiAgICA7O1xuMSlcbiAgICBtdiBcIiR7V0tCQVNFX0h9XCJ7LnVu
aWZkZWYsfVxuICAgIDs7XG4qKVxuICAgIGV4aXQgMVxuZXNhY1xuIjsKKwkJCXNoZWxsU2NyaXB0
ID0gIldLQkFTRV9IPSR7VEFSR0VUX0JVSUxEX0RJUn0vJHtQUklWQVRFX0hFQURFUlNfRk9MREVS
X1BBVEh9L1dLQmFzZS5oXG5cbnVuaWZkZWYgLUIgLURfX0FQUExFX18gLVVCVUlMRElOR19HVEtf
XyAtVUJVSUxESU5HX1dQRV9fIC1VVVNFX1NPVVAgLW8gXCIke1dLQkFTRV9IfVwiLnVuaWZkZWYg
XCIke1dLQkFTRV9IfVwiXG5cbmNhc2UgJD8gaW5cbjApXG4gICAgcm0gXCIke1dLQkFTRV9IfVwi
LnVuaWZkZWZcbiAgICA7O1xuMSlcbiAgICBtdiBcIiR7V0tCQVNFX0h9XCJ7LnVuaWZkZWYsfVxu
ICAgIDs7XG4qKVxuICAgIGV4aXQgMVxuZXNhY1xuIjsKIAkJfTsKIAkJMzdFNTMxMDExQjIzOTEw
OTAwNzRGMERGIC8qIENvcHkgaU9TIFNhbmRib3ggUHJvZmlsZXMgZm9yIE1hbnVhbCBTYW5kYm94
aW5nICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
MlByZWZpeC5oCmluZGV4IDU3NTA5Yjk3YTRjLi5lMmJlODA5ZDhmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQ
cmVmaXguaApAQCAtNTcsNyArNTcsNyBAQAogCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgRU5BQkxFX1NIQVJF
QUJMRV9SRVNPVVJDRSAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDE5
NTUwMWFlNDRkLi5iMWY2YjY0ZjRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtMjk3
LDcgKzI5Nyw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWRvKCkKICAgICBtX3BhZ2UtPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVVbmRvUmVkbyhzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oV2ViUGFnZVByb3h5OjpSZWRvKSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkV4ZWN1dGVVbmRvUmVkbzo6UmVwbHkocmVzdWx0KSk7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RL
KSAmJiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENP
Q09BKSAmJiAhUExBVEZPUk0oV1BFKQogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJv
YXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKG1fcGFnZS0+aGFuZGxl
RWRpdGluZ0tleWJvYXJkRXZlbnQoZXZlbnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAppbmRleCA1NzgxYzg2ZDJjNi4uZWY2NmU1OGU2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCkBAIC0xODAyLDQgKzE4MDIsMTMgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZmluaXNoZWRMb2FkaW5nSWNvbih1aW50NjRfdCBsb2FkSWRlbnRpZmllciwgU2hh
cmVkQnUKICAgICB9CiB9CiAKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFBhaW50
QnJva2VuSW1hZ2UoY29uc3QgV2ViQ29yZTo6VVJMJikgY29uc3QKK3sKKyNpZiBQTEFURk9STShX
UEUpCisgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApp
bmRleCAyMTJmMTBmZGRlMS4uM2YwM2U2OTM5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTI2Miw2ICsyNjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0TG9hZERlY2lz
aW9uRm9ySWNvbihjb25zdCBXZWJDb3JlOjpMaW5rSWNvbiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
IGZpbmFsOwogICAgIHZvaWQgZmluaXNoZWRMb2FkaW5nSWNvbih1aW50NjRfdCBsb2FkSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyKikgZmluYWw7CiAKKyAgICBib29sIHNob3VsZFBh
aW50QnJva2VuSW1hZ2UoY29uc3QgV2ViQ29yZTo6VVJMJikgY29uc3Qgb3ZlcnJpZGU7CisKICAg
ICBXZWJGcmFtZSogbV9mcmFtZTsKICAgICBSZWZQdHI8UGx1Z2luVmlldz4gbV9wbHVnaW5WaWV3
OwogICAgIGJvb2wgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpblZpZXc7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggODIzMjkwZGY0MjQuLjFhYTJkOGJlZTBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0zNzUsNCArMzc1LDMxIEBAIFJl
ZjxTZWxlY3Rpb25EYXRhPiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRGcm9tQ2xpcGJvYXJk
KGNvbnN0IFN0cmluZyYgcGFzdGViCiAKICNlbmRpZiAvLyBQTEFURk9STShHVEspCiAKKyNpZiBQ
TEFURk9STShXUEUpCisvLyBQYXN0ZWJvYXJkU3RyYXRlZ3kKKwordm9pZCBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNz
YWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpHZXRQYXN0ZWJvYXJkVHlwZXMoKSwgTWVzc2FnZXM6
OldlYlBhc3RlYm9hcmRQcm94eTo6R2V0UGFzdGVib2FyZFR5cGVzOjpSZXBseSh0eXBlcyksIDAp
OworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFkU3RyaW5nRnJvbVBhc3Rl
Ym9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKQoreworICAgIFN0
cmluZyB2YWx1ZTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkU3Ry
aW5nRnJvbVBhc3RlYm9hcmQoaW5kZXgsIHBhc3RlYm9hcmRUeXBlKSwgTWVzc2FnZXM6OldlYlBh
c3RlYm9hcmRQcm94eTo6UmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkOjpSZXBseSh2YWx1ZSksIDAp
OworICAgIHJldHVybiB2YWx1ZTsKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Ondy
aXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250
ZW50KQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6V3JpdGVXZWJDb250ZW50
VG9QYXN0ZWJvYXJkKGNvbnRlbnQpLCAwKTsKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OndyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OldyaXRl
U3RyaW5nVG9QYXN0ZWJvYXJkKHBhc3RlYm9hcmRUeXBlLCB0ZXh0KSwgMCk7Cit9CisKKyNlbmRp
ZiAvLyBQTEFURk9STShXUEUpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggNDE5MzhlZDllYjEuLmFmMGYxYTMwNDczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTg5LDEwICs4OSwxOCBAQCBwcml2YXRlOgog
ICAgIGxvbmcgc2V0UGF0aG5hbWVzRm9yVHlwZShjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92
ZXJyaWRlOwogICAgIGxvbmcgc2V0U3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVy
cmlkZTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHZvaWQgd3JpdGVUb0NsaXBi
b2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBXZWJDb3JlOjpTZWxlY3Rp
b25EYXRhJikgb3ZlcnJpZGU7CiAgICAgUmVmPFdlYkNvcmU6OlNlbGVjdGlvbkRhdGE+IHJlYWRG
cm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShXUEUpCisgICAgdm9pZCBnZXRUeXBlcyhWZWN0b3I8U3RyaW5n
PiYgdHlwZXMpIG92ZXJyaWRlOworICAgIFN0cmluZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQo
aW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKSBvdmVycmlkZTsKKyAgICB2
b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVu
dFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVkMDM0YjAy
NjczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6Omxv
b2tVcEluRGljdGlvbmFyeShXZWJDb3JlOjpGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworYm9vbCBXZWJDb250ZXh0TWVudUNsaWVudDo6aXNTcGVha2luZygpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViQ29udGV4
dE1lbnVDbGllbnQ6OnNwZWFrKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3RvcFNwZWFraW5nKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQ
RS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJkY2EzMDI0Y2Vk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApAQCAtMCwwICsxLDI0NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCisKKyNpbmNsdWRlICJQbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9FZGl0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dz
S2V5Ym9hcmRDb2Rlcy5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoZSBpZGVh
IGZvciB0aGUgYXJyYXkvbWFwIGJlbG93IGNvbWVzIGZyb20gQmxpbmsncyBFZGl0aW5nQmVoYXZp
b3IuY3BwLgorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgQ3RybEtleSAgPSAxIDw8IDA7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgQWx0S2V5ICAgPSAxIDw8IDE7CitzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU2hpZnRLZXkgPSAxIDw8IDI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgTWV0YUtleSAgPSAx
IDw8IDM7CisKKy8vIEtleXMgd2l0aCBzcGVjaWFsIG1lYW5pbmcuIFRoZXNlIHdpbGwgYmUgZGVs
ZWdhdGVkIHRvIHRoZSBlZGl0b3IgdXNpbmcKKy8vIHRoZSBleGVjQ29tbWFuZCgpIG1ldGhvZAor
c3RydWN0IEtleURvd25FbnRyeSB7CisgICAgdW5zaWduZWQgdmlydHVhbEtleTsKKyAgICB1bnNp
Z25lZCBtb2RpZmllcnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0cnVjdCBLZXlQ
cmVzc0VudHJ5IHsKKyAgICB1bnNpZ25lZCBjaGFyQ29kZTsKKyAgICB1bnNpZ25lZCBtb2RpZmll
cnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0YXRpYyBjb25zdCBLZXlEb3duRW50
cnkga2V5RG93bkVudHJpZXNbXSA9IHsKKyAgICB7IFZLX0xFRlQsICAgMCwgICAgICAgICAgICAg
ICAgICAiTW92ZUxlZnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfTEVGVCwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlTGVmdEFuZE1vZGlmeVNlbGVjdGlv
biIgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXksICAgICAgICAgICAg
Ik1vdmVXb3JkTGVmdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xF
RlQsICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVdvcmRMZWZ0QW5kTW9kaWZ5
U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19SSUdIVCwgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVSaWdodCIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgU2hpZnRLZXksICAgICAgICAg
ICAiTW92ZVJpZ2h0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICB9LAorICAgIHsgVktf
UklHSFQsICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZFJpZ2h0IiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1v
dmVXb3JkUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAg
ICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVXBB
bmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19QUklPUiwgIFNo
aWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgfSwKKyAgICB7IFZLX0RPV04sICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZURvd24iICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICBTaGlmdEtl
eSwgICAgICAgICAgICJNb3ZlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19ORVhULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlRG93bkFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgQ3RybEtleSB8IFNo
aWZ0S2V5LCAiTW92ZVBhcmFncmFwaEJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAg
IHsgVktfRE9XTiwgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFyYWdyYXBoRm9yd2FyZEFu
ZE1vZGlmeVNlbGVjdGlvbiIgIH0sCisgICAgeyBWS19QUklPUiwgIDAsICAgICAgICAgICAgICAg
ICAgIk1vdmVQYWdlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X05FWFQsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VEb3duIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICAwLCAgICAgICAgICAgICAgICAgICJN
b3ZlVG9CZWdpbm5pbmdPZkxpbmUiICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01F
LCAgIFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lQW5kTW9kaWZ5U2Vs
ZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAg
IEN0cmxLZXksICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAi
TW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIDAsICAgICAgICAgICAgICAgICAgIk1v
dmVUb0VuZE9mTGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwg
ICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9u
IiAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlVG9F
bmRPZkRvY3VtZW50IiAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0
cmxLZXkgfCBTaGlmdEtleSwKKyAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnRBbmRNb2RpZnlT
ZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfQkFD
SywgICAwLCAgICAgICAgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkRlbGV0
ZUJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwg
MCwgICAgICAgICAgICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfQkFDSywgICBDdHJsS2V5LCAgICAgICAgICAgICJEZWxldGVXb3Jk
QmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIEN0cmxL
ZXksICAgICAgICAgICAgIkRlbGV0ZVdvcmRGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdCJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVG9nZ2xlQm9sZCIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0knLCAgICAgICAgIEN0cmxLZXks
ICAgICAgICAgICJUb2dnbGVJdGFsaWMiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyAnVScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZVVuZGVybGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VTQ0FQRSwgMCwgICAgICAgICAgICAg
ICAgICAiQ2FuY2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfT0VNX1BFUklPRCwgQ3RybEtleSwgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19UQUIsICAgIDAsICAgICAgICAgICAgICAgICAg
Ikluc2VydFRhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RB
QiwgICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCAwLCAgICAgICAgICAgICAgICAgICJJbnNl
cnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4s
IEN0cmxLZXksICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3
bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRL
ZXkgfCBTaGlmdEtleSwgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19SRVRVUk4sIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydExpbmVCcmVh
ayIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAvLyBUaGVzZSBwcm9iYWJseSBuZWVk
IGhhbmRsaW5nIHNvbWV3aGVyZSBlbHNlIHNvIGRvIG5vdCBleGVjdXRlIHRoZW0uIFRoZQorICAg
IC8vICdDdXQnIGNvbW1hbmQgaXMgcmVtb3ZpbmcgdGV4dCBzbyBsZXQncyBhdm9pZCBsb3Npbmcg
dGhlIHVzZXIgbG9zaW5nIGRhdGEKKyAgICAvLyB1bnRpbCB3ZSBpbXBsZW1lbnQgY2xpcGJvYXJk
IHN1cHBvcnQgd2hlcmV2ZXIgaXQgc2hvdWxkIGJlLgorICAgIHsgVktfSU5TRVJULCBDdHJsS2V5
LCAgICAgICAgICAgICJDb3B5IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19JTlNFUlQsIFNoaWZ0S2V5LCAgICAgICAgICAgIlBhc3RlIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgU2hpZnRLZXksICAg
ICAgICAgICAiQ3V0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgJ0MnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJDb3B5IiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnVicsICAgICAgICAgQ3RybEtleSwgICAgICAg
ICAgIlBhc3RlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdW
JywgICAgICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJQYXN0ZUFuZE1hdGNoU3R5bGUiICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ1gnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJD
dXQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQScsICAg
ICAgICAgQ3RybEtleSwgICAgICAgICAgIlNlbGVjdEFsbCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7ICdaJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVW5kbyIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1onLCAgICAgICAg
IEN0cmxLZXkgfCBTaGlmdEtleSwgIlJlZG8iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyAnWScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlJlZG8iICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VSVCwgMCwgICAg
ICAgICAgICAgICAgICAiT3ZlcldyaXRlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorfTsKKworc3RhdGljIGNvbnN0IEtleVByZXNzRW50cnkga2V5UHJlc3NFbnRyaWVzW10gPSB7
CisgICAgeyAnXHQnLCAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydFRhYiIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdcdCcsICAgU2hpZnRLZXksICAgICAg
ICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgJ1xyJywgICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEN0cmxLZXksICAgICAgICAgICAg
Ikluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdc
cicsICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXksICAgICAgICAgICAgICJJbnNl
cnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAg
IEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChj
b25zdCBLZXlib2FyZEV2ZW50JiBldmVudCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPj4ga2V5RG93bkNvbW1hbmRzTWFwOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGludCwgY29uc3QgY2hhcio+PiBrZXlQcmVzc0NvbW1h
bmRzTWFwOworCisgICAgaWYgKGtleURvd25Db21tYW5kc01hcC5nZXQoKS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoa2V5RG93
bkVudHJpZXMpOyBpKyspCisgICAgICAgICAgICBrZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuc2V0
KGtleURvd25FbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtleURvd25FbnRyaWVzW2ldLnZp
cnR1YWxLZXksIGtleURvd25FbnRyaWVzW2ldLm5hbWUpOworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlQcmVzc0VudHJpZXMpOyBpKyspCisgICAg
ICAgICAgICBrZXlQcmVzc0NvbW1hbmRzTWFwLmdldCgpLnNldChrZXlQcmVzc0VudHJpZXNbaV0u
bW9kaWZpZXJzIDw8IDE2IHwga2V5UHJlc3NFbnRyaWVzW2ldLmNoYXJDb2RlLCBrZXlQcmVzc0Vu
dHJpZXNbaV0ubmFtZSk7CisgICAgfQorCisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAg
ICBpZiAoZXZlbnQuc2hpZnRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5Owor
ICAgIGlmIChldmVudC5hbHRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAg
ICBpZiAoZXZlbnQuY3RybEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQ3RybEtleTsKKyAg
ICBpZiAoZXZlbnQubWV0YUtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gTWV0YUtleTsKKwor
ICAgIGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkgeworICAg
ICAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQua2V5Q29kZSgpOworICAg
ICAgICByZXR1cm4gbWFwS2V5ID8ga2V5RG93bkNvbW1hbmRzTWFwLmdldCgpLmdldChtYXBLZXkp
IDogbnVsbHB0cjsKKyAgICB9CisKKyAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwg
ZXZlbnQuY2hhckNvZGUoKTsKKyAgICByZXR1cm4gbWFwS2V5ID8ga2V5UHJlc3NDb21tYW5kc01h
cC5nZXQoKS5nZXQobWFwS2V5KSA6IG51bGxwdHI7Cit9CisKK3N0YXRpYyB2b2lkIGhhbmRsZUtl
eVByZXNzKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudCYgcGxhdGZvcm1FdmVudCkKK3sKKyAgICBTdHJpbmcgY29tbWFuZE5hbWUg
PSBpbnRlcnByZXRLZXlFdmVudChldmVudCk7CisKKyAgICBpZiAoIWNvbW1hbmROYW1lLmlzRW1w
dHkoKSkgeworICAgICAgICBmcmFtZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKS5leGVj
dXRlKCk7CisgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAvLyBEb24ndCBpbnNlcnQgbnVsbCBvciBjb250cm9sIGNoYXJhY3Rl
cnMgYXMgdGhleSBjYW4gcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3VyCisgICAgaWYgKGV2
ZW50LmNoYXJDb2RlKCkgPCAnICcpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvbid0IGlu
c2VydCBhbnl0aGluZyBpZiBhIG1vZGlmaWVyIGlzIHByZXNzZWQgYW5kIGl0IGhhcyBub3QgYmVl
biBoYW5kbGVkIHlldAorICAgIGlmIChwbGF0Zm9ybUV2ZW50LmN0cmxLZXkoKSB8fCBwbGF0Zm9y
bUV2ZW50LmFsdEtleSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZnJhbWUuZWRpdG9y
KCkuaW5zZXJ0VGV4dChwbGF0Zm9ybUV2ZW50LnRleHQoKSwgJmV2ZW50KSkKKyAgICAgICAgZXZl
bnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlS2V5RG93bihG
cmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQmKQoreworICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2ZW50KGV2
ZW50KTsKKyAgICBpZiAoY29tbWFuZE5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBXZSBzaG91bGRuJ3QgaW5zZXJ0IHRleHQgdGhyb3VnaCB0aGUgZWRpdG9yLiBMZXQg
V2ViQ29yZSBkZWNpZGUKKyAgICAvLyBob3cgdG8gaGFuZGxlIHRoYXQgKHNheSwgVGFiLCB3aGlj
aCBjb3VsZCBhbHNvIGJlIHVzZWQgdG8KKyAgICAvLyBjaGFuZ2UgZm9jdXMpLgorICAgIEVkaXRv
cjo6Q29tbWFuZCBjb21tYW5kID0gZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21tYW5kTmFtZSk7
CisgICAgaWYgKGNvbW1hbmQuaXNUZXh0SW5zZXJ0aW9uKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGNvbW1hbmQuZXhlY3V0ZSgpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Cit9
CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KFdlYkNvcmU6Oktl
eWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIE5vZGUqIG5vZGUgPSBldmVudC0+dGFyZ2V0KCkt
PnRvTm9kZSgpOworICAgIEFTU0VSVChub2RlKTsKKyAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5k
b2N1bWVudCgpLmZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKworICAgIC8vIEZJWE1FOiBS
ZW9yZGVyIHRoZSBjaGVja3MgaW4gYSBtb3JlIHNlbnNpYmxlIHdheS4KKworICAgIGNvbnN0IFBs
YXRmb3JtS2V5Ym9hcmRFdmVudCogcGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOwor
ICAgIGlmICghcGxhdGZvcm1FdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgdGhp
cyB3YXMgYW4gSU1FIGV2ZW50IGRvbid0IGRvIGFueXRoaW5nLgorICAgIGlmIChwbGF0Zm9ybUV2
ZW50LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKSA9PSBWS19QUk9DRVNTS0VZKQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBEb24ndCBhbGxvdyB0ZXh0IGluc2VydGlvbiBmb3Igbm9kZXMgdGhh
dCBjYW5ub3QgZWRpdC4KKyAgICBpZiAoIWZyYW1lLT5lZGl0b3IoKS5jYW5FZGl0KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIFRoaXMgaXMganVzdCBhIG5vcm1hbCB0ZXh0IGluc2VydGlv
biwgc28gd2FpdCB0byBleGVjdXRlIHRoZSBpbnNlcnRpb24KKyAgICAvLyB1bnRpbCBhIGtleXBy
ZXNzIGV2ZW50IGhhcHBlbnMuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgaW5zZXJ0aW9uIHdp
bGwgbm90CisgICAgLy8gYmUgcmVmbGVjdGVkIGluIHRoZSBjb250ZW50cyBvZiB0aGUgZmllbGQg
dW50aWwgdGhlIGtleXVwIERPTSBldmVudC4KKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkua2V5cHJlc3NFdmVudCkKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleVByZXNzKCpm
cmFtZSwgKmV2ZW50LCAqcGxhdGZvcm1FdmVudCk7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleURvd24o
KmZyYW1lLCAqZXZlbnQsICpwbGF0Zm9ybUV2ZW50KTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGll
bnQ6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihXZWJDb3JlOjpLZXlib2FyZEV2ZW50KiBldmVu
dCkKK3sKKyAgICBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQqIHBsYXRmb3JtRXZlbnQgPSBl
dmVudC0+a2V5RXZlbnQoKTsKKyAgICBpZiAocGxhdGZvcm1FdmVudCAmJiBwbGF0Zm9ybUV2ZW50
LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKSA9PSBWS19QUk9DRVNTS0VZKQorICAgICAgICBldmVu
dC0+cHJldmVudERlZmF1bHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1
cE1lbnVXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93
cGUvV2ViUG9wdXBNZW51V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYmFiODM3YjBhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgorCisjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9p
ZCBXZWJQb3B1cE1lbnU6OnNldFVwUGxhdGZvcm1EYXRhKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCmluZGV4IGRk
Mzg3MjAyNzhhLi5lMmM2YjViNDc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAt
NzQsMTAgKzc0LDEwIEBAIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpUaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlJiB3ZWJQCiAgICAgICAgIC8vIERvIG5v
dCBkbyBmcmFtZSBzeW5jIHdoZW4gcmVuZGVyaW5nIG9mZnNjcmVlbiBpbiB0aGUgd2ViIHByb2Nl
c3MgdG8gZW5zdXJlIHRoYXQgU3dhcEJ1ZmZlcnMgbmV2ZXIgYmxvY2tzLgogICAgICAgICAvLyBS
ZW5kZXJpbmcgdG8gdGhlIGFjdHVhbCBzY3JlZW4gd2lsbCBoYXBwZW4gbGF0ZXIgYW55d2F5IHNp
bmNlIHRoZSBVSSBwcm9jZXNzIHNjaGVkdWxlcyBhIHJlZHJhdyBmb3IgZXZlcnkgdXBkYXRlLAog
ICAgICAgICAvLyB0aGUgY29tcG9zaXRvciB3aWxsIHRha2UgY2FyZSBvZiBzeW5jaW5nIHRvIHZi
bGFuay4KLSAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUo
bV9jb21wb3NpdG9yQ2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZhY3RvciwgbV9zdXJmYWNlLT53
aW5kb3coKSwgVGhyZWFkZWRDb21wb3NpdG9yOjpTaG91bGREb0ZyYW1lU3luYzo6WWVzLCBwYWlu
dEZsYWdzKTsKKyAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVh
dGUobV9jb21wb3NpdG9yQ2xpZW50LCB3ZWJQYWdlLCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvciwg
bV9zdXJmYWNlLT53aW5kb3coKSwgVGhyZWFkZWRDb21wb3NpdG9yOjpTaG91bGREb0ZyYW1lU3lu
Yzo6WWVzLCBwYWludEZsYWdzKTsKICAgICAgICAgbV9sYXllclRyZWVDb250ZXh0LmNvbnRleHRJ
RCA9IG1fc3VyZmFjZS0+c3VyZmFjZUlEKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fY29tcG9z
aXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNsaWVudCwgc2Nh
bGVkU2l6ZSwgc2NhbGVGYWN0b3IpOworICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENv
bXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNpemUs
IHNjYWxlRmFjdG9yKTsKIAogICAgIGRpZENoYW5nZVZpZXdwb3J0KCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAppbmRleCAyZTc4
MGQ5MWJlNS4uNWYwOTNhYzdiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2lmIFBMQVRGT1JN
KENPQ09BKQogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgiCiAjaW5jbHVk
ZSAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCIKKyNlbGlmIFBMQVRGT1JNKFdQRSkK
KyNpbmNsdWRlICJEcmF3aW5nQXJlYVdQRS5oIgogI2Vsc2UKICNpbmNsdWRlICJEcmF3aW5nQXJl
YUltcGwuaCIKICNlbmRpZgpAQCAtNTUsNiArNTcsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWE+IERyYXdpbmdBcmVhOjpjcmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFn
ZQogI2VuZGlmCiAgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWU6CiAgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPih3
ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjYXNlIERyYXdp
bmdBcmVhVHlwZVdQRToKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0Fy
ZWFXUEU+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOwogI2Vsc2UKICAgICBjYXNlIERyYXdpbmdBcmVh
VHlwZUltcGw6CiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPERyYXdpbmdBcmVhSW1w
bD4od2ViUGFnZSwgcGFyYW1ldGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjlhM2VlZWFlOTQuLjFkZDQ1YzRiNmI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDk5LDcg
KzM0OTksNyBAQCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIFdlYlBhZ2U6
Om5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYQogICAgIHJldHVybiBtX25vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5nZXQoKTsKIH0KIAotI2lmICFQTEFURk9STShH
VEspICYmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0o
Q09DT0EpICYmICFQTEFURk9STShXUEUpCiBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXli
b2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIHsKICAgICBOb2RlKiBub2RlID0gZXZ0LT50
YXJnZXQoKS0+dG9Ob2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCBiMDExMTY2MzdiYi4uMWQyMDkxMTZlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTAyMCw3ICsxMDIwLDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRG
T1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRl
cnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3Np
dGluZ01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9D
b21wb3NpdGluZ01hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi41MTBiZTIyZGEzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXIuaCIKKworI2luY2x1
ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitDb21wb3NpdGluZ01hbmFnZXI6On5Db21wb3Np
dGluZ01hbmFnZXIoKQoreworICAgIEFTU0VSVCghbV9jb25uZWN0aW9uRmQpOworfQorCit2b2lk
IENvbXBvc2l0aW5nTWFuYWdlcjo6ZXN0YWJsaXNoQ29ubmVjdGlvbihXZWJQYWdlJiB3ZWJQYWdl
KQoreworICAgIElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlOworICAgIHdlYlBhZ2Uu
c2VuZFN5bmMoTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjpFc3RhYmxpc2hDb25u
ZWN0aW9uKCksCisgICAgICAgIE1lc3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6RXN0
YWJsaXNoQ29ubmVjdGlvbjo6UmVwbHkoY29ubmVjdGlvbkhhbmRsZSkpOworCisgICAgbV9jb25u
ZWN0aW9uRmQgPSBjb25uZWN0aW9uSGFuZGxlLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOworfQor
CitpbnQgQ29tcG9zaXRpbmdNYW5hZ2VyOjpyZWxlYXNlQ29ubmVjdGlvbkZkKCkKK3sKKyAgICBp
bnQgZmQgPSBtX2Nvbm5lY3Rpb25GZC52YWx1ZV9vcigtMSk7CisgICAgbV9jb25uZWN0aW9uRmQg
PSBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIGZkOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29t
cG9zaXRpbmdNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5iZDJmMmY2MTQzOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmgKQEAgLTAsMCArMSw0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3Mg
Q29tcG9zaXRpbmdNYW5hZ2VyIGZpbmFsIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21w
b3NpdGluZ01hbmFnZXIpOworcHVibGljOgorICAgIENvbXBvc2l0aW5nTWFuYWdlcigpID0gZGVm
YXVsdDsKKyAgICB+Q29tcG9zaXRpbmdNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGVzdGFibGlzaENv
bm5lY3Rpb24oV2ViUGFnZSYpOworICAgIGludCByZWxlYXNlQ29ubmVjdGlvbkZkKCk7CisKK3By
aXZhdGU6CisgICAgc3RkOjpvcHRpb25hbDxpbnQ+IG1fY29ubmVjdGlvbkZkOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4zNDQ3YWM4Y2IwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwCkBAIC0wLDAg
KzEsMTkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEcmF3aW5nQXJlYVdQRS5oIgorCisj
aW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5o
IgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVu
Y2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEcmF3aW5nQXJlYVdQRTo6RHJh
d2luZ0FyZWFXUEUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGVXUEUsIHdlYlBhZ2UpCit7
CisgICAgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNldEZvcmNlQ29tcG9zaXRpbmdN
b2RlKHRydWUpOworICAgIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoMCk7Cit9CisK
K0RyYXdpbmdBcmVhV1BFOjp+RHJhd2luZ0FyZWFXUEUoKQoreworfQorCit2b2lkIERyYXdpbmdB
cmVhV1BFOjpsYXllckhvc3REaWRGbHVzaExheWVycygpCit7CisgICAgbV93ZWJQYWdlLnNlbmQo
TWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OkVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoMCwgbV9sYXllclRyZWVIb3N0LT5sYXllclRyZWVDb250ZXh0KCkpKTsKK30KKwordm9pZCBE
cmF3aW5nQXJlYVdQRTo6c2V0TmVlZHNEaXNwbGF5KCkKK3sKKyAgICBBU1NFUlQobV9sYXllclRy
ZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05l
ZWREaXNwbGF5KCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNldE5lZWRzRGlzcGxheUlu
UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3Qp
OworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3Bs
YXlJblJlY3QocmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNjcm9sbChjb25zdCBJ
bnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJikKK3sKKyAgICBBU1NFUlQobV9sYXll
clRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNjcm9sbE5vbkNvbXBvc2l0ZWRDb250
ZW50cyhzY3JvbGxSZWN0KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6cGFnZUJhY2tncm91
bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkKK3sKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAg
ICAgICBtX2xheWVyVHJlZUhvc3QtPnBhZ2VCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgp
OworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJlcGFpbnQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgRHJhd2luZ0FyZWFXUEU6OmZvcmNlUmVwYWludEFzeW5j
KHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdCAmJiBt
X2xheWVyVHJlZUhvc3QtPmZvcmNlUmVwYWludEFzeW5jKGNhbGxiYWNrSUQpOworfQorCit2b2lk
IERyYXdpbmdBcmVhV1BFOjpzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wgZnJvemVuKQor
eworICAgIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbiA9IGZyb3plbjsKK30KKwordm9pZCBEcmF3
aW5nQXJlYVdQRTo6c2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAgbV93ZWJQYWdlLmNvcmVQYWdlKCkt
PnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZUNvbXBvc2l0aW5nTW9kZUtleSgpKSk7Cit9CisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6Om1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29udGVudHNTaXplQ2hhbmdlZChzaXplKTsKK30KKworR3Jh
cGhpY3NMYXllckZhY3RvcnkqIERyYXdpbmdBcmVhV1BFOjpncmFwaGljc0xheWVyRmFjdG9yeSgp
Cit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgcmV0dXJuIG1fbGF5ZXJUcmVl
SG9zdC0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
dm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBt
X2xheWVyVHJlZUhvc3QtPnNldFJvb3RDb21wb3NpdGluZ0xheWVyKGdyYXBoaWNzTGF5ZXIpOwor
fQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgp
Cit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5z
Y2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpCit7CisgICAgc2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2goKTsKK30KKworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9E
SVNQTEFZX01PTklUT1IpCitSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBE
cmF3aW5nQXJlYVdQRTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxh
eUlEIGRpc3BsYXlJRCkKK3sKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAgICAgICByZXR1
cm4gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlE
KTsKKworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSogZnJhbWUs
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5Um9vdExheWVyKQoreworICAgIGlm
ICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCht
X2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld092ZXJsYXlSb290
TGF5ZXIodmlld092ZXJsYXlSb290TGF5ZXIpOworfQorCisjaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTX1RIUkVBREVEKQordm9pZCBEcmF3aW5nQXJlYVdQRTo6ZGlkQ2hhbmdlVmlld3BvcnRB
dHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYmKQoreworfQorI2VuZGlmCisK
KyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhUVVJFX01BUFBFUikKK3Zv
aWQgRHJhd2luZ0FyZWFXUEU6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCit7Cit9
CisjZW5kaWYKKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRlQmFja2luZ1N0b3JlU3RhdGUo
dWludDY0X3QsIGJvb2wsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpCit7Cisg
ICAgbV93ZWJQYWdlLnNldERldmljZVNjYWxlRmFjdG9yKGRldmljZVNjYWxlRmFjdG9yKTsKKyAg
ICBtX3dlYlBhZ2Uuc2V0U2l6ZShzaXplKTsKKyAgICBtX3dlYlBhZ2UubGF5b3V0SWZOZWVkZWQo
KTsKKyAgICBtX3dlYlBhZ2Uuc2Nyb2xsTWFpbkZyYW1lSWZOb3RBdE1heFNjcm9sbFBvc2l0aW9u
KHNjcm9sbE9mZnNldCk7CisKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xh
eWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobV93ZWJQYWdlLnNpemUoKSk7Cit9CisKK3ZvaWQg
RHJhd2luZ0FyZWFXUEU6OmRpZFVwZGF0ZSgpCit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6
OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllcikKK3sKKyAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVI
b3N0ID0gTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKG1fd2ViUGFnZSk7CisgICAgbV9sYXllclRyZWVI
b3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xheWVyKTsKKyAgICBtX2xheWVy
VHJlZUhvc3QtPnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNjaGVkdWxlZExheWVyRmx1c2godHJ1
ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdlKG1fd2ViUGFnZS5zaXplKCkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDk5MTk3YzAyYWYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmgKQEAg
LTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCisKKyNpbmNs
dWRlICJMYXllclRyZWVIb3N0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEcmF3
aW5nQXJlYVdQRSA6IHB1YmxpYyBEcmF3aW5nQXJlYSB7CitwdWJsaWM6CisgICAgRHJhd2luZ0Fy
ZWFXUEUoV2ViUGFnZSYsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICB2
aXJ0dWFsIH5EcmF3aW5nQXJlYVdQRSgpOworCisgICAgdm9pZCBsYXllckhvc3REaWRGbHVzaExh
eWVycygpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIC8vIERyYXdpbmdBcmVhCisgICAgdm9p
ZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldE5lZWRzRGlzcGxheUlu
UmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGwo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOworCisgICAgdm9pZCBwYWdlQmFja2dyb3VuZFRyYW5z
cGFyZW5jeUNoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJy
aWRlOworICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgY2FsbGJhY2tJRCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wpIG92ZXJyaWRl
OworICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbjsgfQorICAgIExheWVyVHJlZUhvc3QqIGxheWVy
VHJlZUhvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVyVHJlZUhvc3QuZ2V0KCk7
IH0KKworICAgIHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpIG92ZXJyaWRlOworICAgIHZv
aWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpIG92ZXJyaWRl
OworICAgIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBn
cmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0
aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgc2No
ZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSBvdmVycmlkZTsKKworI2lmIFVTRShS
RVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisgICAgUmVmUHRyPFdlYkNv
cmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFdl
YkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBvdmVycmlkZTsKKyNlbmRpZgorCisgICAgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
VEhSRUFERUQpCisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2ViQ29yZTo6
Vmlld3BvcnRBdHRyaWJ1dGVzJiYpIG92ZXJyaWRlOworI2VuZGlmCisKKyNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhUVVJFX01BUFBFUikKKyAgICB2b2lkIGRldmljZU9y
UGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2b2lkIHVw
ZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBib29sLCBmbG9hdCwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZFVwZGF0ZSgpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKworICAgIC8vIFdoZW4gdHJ1ZSwg
d2UgbWFpbnRhaW4gdGhlIGxheWVyIHRyZWUgaW4gaXRzIGN1cnJlbnQgc3RhdGUgYnkgbm90IGxl
YXZpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbW9kZQorICAgIC8vIGFuZCBub3Qgc2NoZWR1
bGluZyBsYXllciBmbHVzaGVzLgorICAgIGJvb2wgbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuIHsg
ZmFsc2UgfTsKKworICAgIC8vIFRoZSBsYXllciB0cmVlIGhvc3QgdGhhdCBoYW5kbGVzIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nLgorICAgIFJlZlB0cjxMYXllclRyZWVIb3N0PiBtX2xheWVyVHJl
ZUhvc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc0Yzg0NGJjYmE5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJ
bnNwZWN0b3JVSVdQRS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViSW5zcGVjdG9yVUkuaCIKKworI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3RvclVJLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3RvclVJOjpjYW5TYXZlKCkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JVSTo6bG9jYWxp
emVkU3RyaW5nc1VSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgUmVt
b3RlV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQoreworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0ZTBjNjVlMGVmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNw
ZWN0b3JXUEUuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
Ykluc3BlY3Rvci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2Jvb2wgV2ViSW5zcGVjdG9yOjpjYW5TYXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3I6OmxvY2FsaXplZFN0cmluZ3NVUkwoKSBj
b25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3MWMyNDZiODE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcApAQCAtMCww
ICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2lu
Y2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdz
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQorCit2b2lkIFdlYlBhZ2U6
OnBsYXRmb3JtRGV0YWNoKCkKK3sKK30KKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUVkaXRvclN0
YXRlKEZyYW1lJiwgRWRpdG9yU3RhdGUmLCBJbmNsdWRlUG9zdExheW91dERhdGFIaW50KSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZvcm1Q
cmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0
QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQYWdlOjpwbGF0
Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6Y2FjaGVkUmVzcG9u
c2VNSU1FVHlwZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFdlYlBhZ2U6OnBsYXRmb3JtQ2FuSGFuZGxl
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6Y2FjaGVkU3VnZ2VzdGVk
RmlsZW5hbWVGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gV2ViUGFnZTo6Y2Fj
aGVkUmVzcG9uc2VEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNl
ckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZDEzN2JjZTdjNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNw
cApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rv
cm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NNYWluVW5peC5oIgorCisjaW5j
bHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNp
bmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNz
TWFpbiBmaW5hbDogcHVibGljIENoaWxkUHJvY2Vzc01haW5CYXNlIHsKK3B1YmxpYzoKKyAgICBi
b29sIHBsYXRmb3JtSW5pdGlhbGl6ZSgpIG92ZXJyaWRlCisgICAgeworI2lmIEVOQUJMRShERVZF
TE9QRVJfTU9ERSkKKyAgICAgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVQyX1BBVVNFX1dFQl9QUk9D
RVNTX09OX0xBVU5DSCIpKQorICAgICAgICAgICAgV1RGOjpzbGVlcCgzMCk7CisjZW5kaWYKKwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHBhcnNlQ29tbWFuZExpbmUo
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgQVNTRVJUKGFy
Z2MgPT0gMyk7CisgICAgICAgIGlmIChhcmdjIDwgMykKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBpZiAoIUNoaWxkUHJvY2Vzc01haW5CYXNlOjpwYXJzZUNvbW1hbmRMaW5l
KGFyZ2MsIGFyZ3YpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGludCB3
cGVGZCA9IGF0b2koYXJndlsyXSk7CisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaCgK
KyAgICAgICAgICAgIFt3cGVGZF0geworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
PFBsYXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpKTsK
KyAgICAgICAgICAgICAgICBkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXUEU+KFBsYXRmb3JtRGlz
cGxheTo6c2hhcmVkRGlzcGxheSgpKS5pbml0aWFsaXplKHdwZUZkKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCitpbnQgV2ViUHJvY2Vzc01haW5V
bml4KGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFp
bjxXZWJQcm9jZXNzLCBXZWJQcm9jZXNzTWFpbj4oYXJnYywgYXJndik7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd3BlL3dwZS13ZWJraXQu
cGMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk5YzAyNTE4MTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbgpAQCAtMCwwICsxLDExIEBACitw
cmVmaXg9QENNQUtFX0lOU1RBTExfUFJFRklYQAorZXhlY19wcmVmaXg9JHtwcmVmaXh9CitsaWJk
aXI9QExJQl9JTlNUQUxMX0RJUkAKK2luY2x1ZGVkaXI9JHtwcmVmaXh9L2luY2x1ZGUKKworTmFt
ZTogV2ViS2l0MgorRGVzY3JpcHRpb246IFdQRS1mbGF2b3JlZCBXZWIgZW5naW5lCitWZXJzaW9u
OiBAUFJPSkVDVF9WRVJTSU9OQAorUmVxdWlyZXMucHJpdmF0ZTogZ2xpYi0yLjAgbGlic291cC0y
LjQKK0xpYnM6IC1MJHtsaWJkaXJ9IC1sV1BFV2ViS2l0IC1sV1BFCitDZmxhZ3M6IC1JJHtpbmNs
dWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAgLUkke2luY2x1ZGVkaXJ9L3dwZS1AV1BFX0FQ
SV9WRVJTSU9OQC9XUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kTGliR0JNLmNtYWtl
IGIvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmQyMDkxY2JmYjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2Nt
YWtlL0ZpbmRMaWJHQk0uY21ha2UKQEAgLTAsMCArMSw0NiBAQAorIyAtIFRyeSB0byBmaW5kIGdi
bS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBMSUJHQk1fSU5DTFVERV9E
SVJTIC0gdGhlIGdibSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBMSUJHQk1fTElCUkFSSUVTIC0g
bGluayB0aGVzZSB0byB1c2UgZ2JtLgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMu
TC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMo
UENfTElCR0JNIGdibSkKKworZmluZF9wYXRoKExJQkdCTV9JTkNMVURFX0RJUlMKKyAgICBOQU1F
UyBnYm0uaAorICAgIEhJTlRTICR7UENfTElCR0JNX0lOQ0xVREVfRElSU30gJHtQQ19MSUJHQk1f
SU5DVURFRElSfQorKQorCitmaW5kX2xpYnJhcnkoTElCR0JNX0xJQlJBUklFUworICAgIE5BTUVT
IGdibQorICAgIEhJTlRTICR7UENfTElCR0JNX0xJQlJBUllfRElSU30gJHtQQ19MSUJHQk1fTElC
RElSfQorKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorRklORF9Q
QUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKExJQkdCTSBERUZBVUxUX01TRyBMSUJHQk1fTElC
UkFSSUVTKQorCittYXJrX2FzX2FkdmFuY2VkKExJQkdCTV9JTkNMVURFX0RJUlMgTElCR0JNX0xJ
QlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNt
YWtlIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYxNjE1NGU2MTE4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UKQEAgLTAsMCArMSw0NyBA
QAorIyAtIFRyeSB0byBmaW5kIFdQRS1tZXNhLgorIyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZp
bmUKKyMKKyMgIFdQRV9NRVNBX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUtbWVzYS4KKyMgIFdQRV9N
RVNBX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUtbWVzYSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBX
UEVfTUVTQV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUtbWVzYS4KKyMKKyMgQ29w
eXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
CisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCisj
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOworIyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgorIyBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmluZF9wYWNrYWdlKFBrZ0Nv
bmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX1dQRV9NRVNBIFFVSUVUIHdwZS1tZXNhKQorCitm
aW5kX3BhdGgoV1BFX01FU0FfSU5DTFVERV9ESVJTCisgICAgTkFNRVMgd3BlLW1lc2Evdmlldy1i
YWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oCisgICAgSElOVFMgJHtQQ19XUEVfTUVTQV9JTkNM
VURFRElSfSAke1BDX1dQRV9NRVNBX0lOQ0xVREVfRElSU30KKykKKworZmluZF9saWJyYXJ5KFdQ
RV9NRVNBX0xJQlJBUklFUworICAgIE5BTUVTIFdQRUJhY2tlbmQtbWVzYQorICAgIEhJTlRTICR7
UENfV1BFX01FU0FfTElCRElSfSAke1BDX1dQRV9NRVNBX0xJQlJBUllfRElSU30KKykKKworbWFy
a19hc19hZHZhbmNlZChXUEVfTUVTQV9JTkNMVURFX0RJUlMgV1BFX01FU0FfTElCUkFSSUVTKQor
CitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorRklORF9QQUNLQUdFX0hB
TkRMRV9TVEFOREFSRF9BUkdTKFdQRV9NRVNBIFJFUVVJUkVEX1ZBUlMgV1BFX01FU0FfSU5DTFVE
RV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5k
V1BFQmFja2VuZC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzdhOTNkMDA1MTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21ha2UKQEAgLTAsMCArMSw0
NyBAQAorIyAtIFRyeSB0byBmaW5kIFdQRS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5l
CisjCisjICBXUEVfRk9VTkQgLSBzeXN0ZW0gaGFzIFdQRS4KKyMgIFdQRV9JTkNMVURFX0RJUlMg
LSB0aGUgV1BFIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRV9MSUJSQVJJRVMgLSBsaW5rIHRo
ZXNlIHRvIHVzZSBXUEUuCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCisj
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19XUEUg
UVVJRVQgd3BlKQorCitmaW5kX3BhdGgoV1BFX0lOQ0xVREVfRElSUworICAgIE5BTUVTIHdwZS9s
b2FkZXIuaAorICAgIEhJTlRTICR7UENfV1BFX0lOQ0xVREVESVJ9ICR7UENfV1BFX0lOQ0xVREVf
RElSU30KKykKKworZmluZF9saWJyYXJ5KFdQRV9MSUJSQVJJRVMKKyAgICBOQU1FUyBXUEVCYWNr
ZW5kCisgICAgSElOVFMgJHtQQ19XUEVfTElCRElSfSAke1BDX1dQRV9MSUJSQVJZX0RJUlN9Cisp
CisKK21hcmtfYXNfYWR2YW5jZWQoV1BFX0lOQ0xVREVfRElSUyBXUEVfTElCUkFSSUVTKQorCitp
bmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorRklORF9QQUNLQUdFX0hBTkRM
RV9TVEFOREFSRF9BUkdTKFdQRSBSRVFVSVJFRF9WQVJTIFdQRV9JTkNMVURFX0RJUlMgV1BFX0xJ
QlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291
cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjczNjUwMWIwYzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL09w
dGlvbnNXUEUuY21ha2UKQEAgLTAsMCArMSwxNDEgQEAKK2luY2x1ZGUoR05VSW5zdGFsbERpcnMp
CisKK3NldChQUk9KRUNUX1ZFUlNJT05fTUFKT1IgMCkKK3NldChQUk9KRUNUX1ZFUlNJT05fTUlO
T1IgMCkKK3NldChQUk9KRUNUX1ZFUlNJT05fUEFUQ0ggMjAxNzA0MjcpCitzZXQoUFJPSkVDVF9W
RVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfS4ke1BST0pFQ1RfVkVSU0lPTl9NSU5PUn0u
JHtQUk9KRUNUX1ZFUlNJT05fUEFUQ0h9KQorc2V0KFdQRV9BUElfVkVSU0lPTiAwLjEpCisKK2lm
IChXVEZfQ1BVX1g4Nl82NCkKKyAgICBzZXQoRU5BQkxFX0ZUTF9ERUZBVUxUIE9OKQorZWxzZSAo
KQorICAgIHNldChFTkFCTEVfRlRMX0RFRkFVTFQgT0ZGKQorZW5kaWYgKCkKKworV0VCS0lUX09Q
VElPTl9CRUdJTigpCisKKyMgV2ViS2l0MiBDIEFQSQorV0VCS0lUX09QVElPTl9ERUZJTkUoRVhQ
T1JUX0RFUFJFQ0FURURfV0VCS0lUMl9DX0FQSSAiV2hldGhlciB0byBleHBvcnQgdGhlIFdlYktp
dDIgQyBBUEkiIFBSSVZBVEUgT0ZGKQorCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfM0RfVFJBTlNGT1JNUyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIFBVQkxJQyBPRkYpCitXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1JFR0lPTlMgUFVCTElDIE9O
KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19TRUxFQ1RPUlNf
TEVWRUw0IFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9EQVRBQkFTRV9QUk9DRVNTIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSBQVUJM
SUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZUTF9KSVQg
UFJJVkFURSAke0VOQUJMRV9GVExfREVGQVVMVH0pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfR0FNRVBBRCBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0dFT0xPQ0FUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSBQUklWQVRFIE9OKQor
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0Vf
SU5fV09SS0VSUyBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NPVVJDRSBQVUJMSUMgT0ZGKQorV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCitXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQ
UklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9UT1VD
SF9FVkVOVFMgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX1ZJREVPIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9WSURFT19UUkFDSyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCX0FOSU1BVElPTlMgUFJJVkFURSBPTikKK1dF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfQVVESU8gUFVCTElDIE9O
KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBP
TikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIFBV
QkxJQyBPTikKKworV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9HTCAiV2hldGhl
ciB0byBlbmFibGUgc3VwcG9ydCBmb3IgR1N0cmVhbWVyIEdMIiBQUklWQVRFIE9GRikKKworV0VC
S0lUX09QVElPTl9FTkQoKQorCitzZXQoRU5BQkxFX1dFQkNPUkUgT04pCitzZXQoRU5BQkxFX1dF
QktJVCBPRkYpCitzZXQoRU5BQkxFX1dFQktJVDIgT04pCitzZXQoRU5BQkxFX0FQSV9URVNUUyAk
e0RFVkVMT1BFUl9NT0RFfSkKK3NldChFTkFCTEVfVE9PTFMgT04pCisKK3NldChXVEZfTElCUkFS
WV9UWVBFIFNUQVRJQykKK3NldChKYXZhU2NyaXB0Q29yZV9MSUJSQVJZX1RZUEUgU1RBVElDKQor
c2V0KFdlYkNvcmVfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChXZWJLaXQyX09VVFBVVF9OQU1F
IFdQRVdlYktpdCkKK3NldChXZWJLaXQyX1dlYlByb2Nlc3NfT1VUUFVUX05BTUUgV1BFV2ViUHJv
Y2VzcykKK3NldChXZWJLaXQyX05ldHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FIFdQRU5ldHdvcmtQ
cm9jZXNzKQorc2V0KFdlYktpdDJfRGF0YWJhc2VQcm9jZXNzX09VVFBVVF9OQU1FIFdQRURhdGFi
YXNlUHJvY2VzcykKKworZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShU
aHJlYWRzIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFpMSUIgUkVRVUlSRUQpCitmaW5kX3BhY2th
Z2UoR0xJQiAyLjQwLjAgUkVRVUlSRUQgQ09NUE9ORU5UUyBnaW8gZ2lvLXVuaXggZ29iamVjdCBn
dGhyZWFkIGdtb2R1bGUpCitmaW5kX3BhY2thZ2UoR251VExTIDMuMC4wIFJFUVVJUkVEKQorCitm
aW5kX3BhY2thZ2UoQ2Fpcm8gMS4xMC4yIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEZvbnRjb25m
aWcgMi44LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRnJlZXR5cGUyIDIuNC4yIFJFUVVJUkVE
KQorZmluZF9wYWNrYWdlKEhhcmZCdXp6IDAuOS4xOCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShK
UEVHIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYkdjcnlwdCAxLjYuMCBSRVFVSVJFRCkKK2Zp
bmRfcGFja2FnZShMaWJTb3VwIDIuNDIuMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYbWwy
IDIuOC4wIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitm
aW5kX3BhY2thZ2UoUE5HIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkK
K2ZpbmRfcGFja2FnZShXZWJQIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2UoT3BlbkdMRVMyIFJF
UVVJUkVEKQorZmluZF9wYWNrYWdlKEVHTCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKFdQRUJh
Y2tlbmQgUkVRVUlSRUQpCisKK3NldChVU0VfWERHTUlNRSBPTikKKworaWYgKEVOQUJMRV9WSURF
TyBPUiBFTkFCTEVfV0VCX0FVRElPKQorICAgIHNldChHU1RSRUFNRVJfQ09NUE9ORU5UUyBhcHAg
YXVkaW8gcGJ1dGlscykKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfR1NUUkVBTUVS
IFRSVUUpCisgICAgaWYgKEVOQUJMRV9WSURFTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVB
TUVSX0NPTVBPTkVOVFMgdmlkZW8gdGFnKQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoRU5BQkxF
X1dFQl9BVURJTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgZmZ0
KQorICAgICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfV0VCQVVESU9fR1NUUkVBTUVS
IFRSVUUpCisgICAgZW5kaWYgKCkKKworICAgIGZpbmRfcGFja2FnZShHU3RyZWFtZXIgMS4yLjMg
UkVRVUlSRUQgQ09NUE9ORU5UUyAke0dTVFJFQU1FUl9DT01QT05FTlRTfSkKKworICAgICMgRklY
TUU6IFdoYXQgYWJvdXQgTVBFR1RTIHN1cHBvcnQ/IFVTRV9HU1RSRUFNRVJfTVBFR1RTPworZW5k
aWYgKCkKKworaWYgKEVOQUJMRV9NRURJQV9TVFJFQU0gT1IgRU5BQkxFX1dFQl9SVEMpCisgICAg
ZmluZF9wYWNrYWdlKE9wZW5XZWJSVEMpCisgICAgaWYgKE5PVCBPUEVOV0VCUlRDX0ZPVU5EKQor
ICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJPcGVuV2ViUlRDIGlzIG5lZWRlZCBmb3IgRU5B
QkxFX01FRElBX1NUUkVBTSBhbmQgRU5BQkxFX1dFQl9SVEMuIikKKyAgICBlbmRpZiAoKQorICAg
IFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVOV0VCUlRDIFRSVUUpCitlbmRpZiAoKQor
CitpZiAoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyAgICBmaW5kX3BhY2thZ2UoQ2Fp
cm9HTCAxLjEwLjIgUkVRVUlSRUQgQ09NUE9ORU5UUyBjYWlyby1lZ2wpCitlbmRpZiAoKQorCith
ZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XUEVfXz0xKQorYWRkX2RlZmluaXRpb25zKC1EREFU
QV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9EQVRBRElSfSIpCisKK3NldChVU0VfVURJUzg2IDEpCisK
K1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVOR0xfRVNfMiBUUlVFKQorU0VUX0FORF9F
WFBPU0VfVE9fQlVJTEQoVVNFX0VHTCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChF
TkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF8zRCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlM
RChVU0VfVEVYVFVSRV9NQVBQRVIgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9U
RVhUVVJFX01BUFBFUl9HTCBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RJTEVE
X0JBQ0tJTkdfU1RPUkUgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElO
QVRFRF9HUkFQSElDUyBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0NPT1JESU5B
VEVEX0dSQVBISUNTX1RIUkVBREVEIFRSVUUpCisKK3NldChGT1JXQVJESU5HX0hFQURFUlNfRElS
ICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMpCisKKyMgQnVpbGQgd2l0
aCAtZnZpc2liaWxpdHk9aGlkZGVuIHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgc2hhcmVkIGxp
YnJhcnkuCisjIE5vdCB0byBiZSB1c2VkIHdoZW4gYnVpbGRpbmcgdGhlIFdlYktpdFRlc3RSdW5u
ZXIgbGlicmFyeS4KK2lmIChOT1QgREVWRUxPUEVSX01PREUpCisgICAgc2V0KENNQUtFX0NfRkxB
R1NfUkVMRUFTRSAiJHtDTUFLRV9DX0ZMQUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4i
KQorICAgIHNldChDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiJHtDTUFLRV9DWFhfRkxBR1NfUkVM
RUFTRX0gLWZ2aXNpYmlsaXR5PWhpZGRlbiAtZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW4iKQor
ZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1
Y3QtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2
ZQppbmRleCAyYzMwMmRiY2RlYi4uOTA3YTU0NzM4MzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQorKysgYi9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUKQEAgLTE3MCw3ICsxNzAsNyBAQCBkZWYgZGly
Q29udGFpbnNkd28oZGlyZWN0b3J5KToKIAogCiBkZWYgYXJjaGl2ZUJ1aWx0UHJvZHVjdChjb25m
aWd1cmF0aW9uLCBwbGF0Zm9ybSwgZnVsbFBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0g
aW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZv
cm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICBp
ZiBwbGF0Zm9ybSA9PSAnaW9zJzoKICAgICAgICAgY29tYmluZWREaXJlY3RvcnkgPSBvcy5wYXRo
LmpvaW4oX3RvcExldmVsQnVpbGREaXJlY3RvcnksICdjb21iaW5lZC1tYWMtYW5kLWlvcycpCkBA
IC0xOTgsNyArMTk4LDcgQEAgZGVmIGFyY2hpdmVCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwg
cGxhdGZvcm0sIGZ1bGxQbGF0Zm9ybSk6CiAKICAgICAgICAgc2h1dGlsLnJtdHJlZSh0aGluRGly
ZWN0b3J5KQogCi0gICAgZWxpZiBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZs
JzoKKyAgICBlbGlmIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3JtID09ICdlZmwnIG9yIHBs
YXRmb3JtID09ICd3cGUnOgogICAgICAgICAjIE9uIEdUSysvRUZMIHdlIGRvbid0IG5lZWQgdGhl
IGludGVybWVkaWF0ZSBzdGVwIG9mIGNyZWF0aW5nIGEgdGhpbkRpcmVjdG9yeQogICAgICAgICAj
IHRvIGJlIGNvbXByZXNzZWQgaW4gYSBaSVAgZmlsZSwgYmVjYXVzZSB3ZSBjYW4gY3JlYXRlIHRo
ZSBaSVAgZGlyZWN0bHkuCiAgICAgICAgICMgVGhpcyBpcyBmYXN0ZXIgYW5kIHJlcXVpcmVzIGxl
c3MgZGlzayByZXNvdXJjZXMuCkBAIC0yMzIsNyArMjMyLDcgQEAgZGVmIHVuemlwQXJjaGl2ZShk
aXJlY3RvcnlUb0V4dHJhY3RUbywgY29uZmlndXJhdGlvbik6CiAKIAogZGVmIGV4dHJhY3RCdWls
dFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgotICAgIGFzc2VydCBwbGF0Zm9ybSBp
biAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnKQorICAgIGFzc2VydCBwbGF0Zm9y
bSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnLCAnd3BlJykKIAogICAgIGFy
Y2hpdmVGaWxlID0gb3MucGF0aC5qb2luKF90b3BMZXZlbEJ1aWxkRGlyZWN0b3J5LCBjb25maWd1
cmF0aW9uICsgJy56aXAnKQogCkBAIC0yNDEsNyArMjQxLDcgQEAgZGVmIGV4dHJhY3RCdWlsdFBy
b2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgogCiAgICAgaWYgcGxhdGZvcm0gaW4gKCdt
YWMnLCAnaW9zJyk6CiAgICAgICAgIHJldHVybiB1bnppcEFyY2hpdmUoX3RvcExldmVsQnVpbGRE
aXJlY3RvcnksIGNvbmZpZ3VyYXRpb24pCi0gICAgZWxpZiBwbGF0Zm9ybSA9PSAnd2luJyBvciBw
bGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJzoKKyAgICBlbGlmIHBsYXRmb3Jt
ID09ICd3aW4nIG9yIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3JtID09ICdlZmwnIG9yIHBs
YXRmb3JtID09ICd3cGUnOgogICAgICAgICBwcmludCAnRXh0cmFjdGluZycsIF9jb25maWd1cmF0
aW9uQnVpbGREaXJlY3RvcnkKICAgICAgICAgcmV0dXJuIHVuemlwQXJjaGl2ZShfY29uZmlndXJh
dGlvbkJ1aWxkRGlyZWN0b3J5LCBjb25maWd1cmF0aW9uKQogCmRpZmYgLS1naXQgYS9Ub29scy9C
dWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlIGIvVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQppbmRleCAzYzJiMGJkN2EzNi4uOTgwZjA3MWMxNGYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUK
KysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQpAQCAtNDYs
NyArNDYsNyBAQCBkZWYgbWFpbigpOgogICAgIHJldHVybiBhcmNoaXZlVGVzdFJlc3VsdHMob3B0
aW9ucy5jb25maWd1cmF0aW9uLCBvcHRpb25zLnBsYXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0Rp
cikKIAogZGVmIGFyY2hpdmVUZXN0UmVzdWx0cyhjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgbGF5
b3V0VGVzdFJlc3VsdHNEaXIpOgotICAgIGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4n
LCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICdpb3MnKQorICAgIGFzc2VydCBwbGF0Zm9ybSBp
biAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICdpb3MnLCAnd3BlJykK
IAogICAgIHRyeToKICAgICAgICAgb3MudW5saW5rKGFyY2hpdmVGaWxlKQpAQCAtNjYsNyArNjYs
NyBAQCBkZWYgYXJjaGl2ZVRlc3RSZXN1bHRzKGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBsYXlv
dXRUZXN0UmVzdWx0c0Rpcik6CiAgICAgaWYgcGxhdGZvcm0gaW4gKCdtYWMnLCAnaW9zJyk6CiAg
ICAgICAgIGlmIHN1YnByb2Nlc3MuY2FsbChbImRpdHRvIiwgIi1jIiwgIi1rIiwgIi0tc2VxdWVz
dGVyUnNyYyIsICItLXpsaWJDb21wcmVzc2lvbkxldmVsIiwgIjIiLCBsYXlvdXRUZXN0UmVzdWx0
c0RpciwgYXJjaGl2ZUZpbGVdKToKICAgICAgICAgICAgIHJldHVybiAxCi0gICAgZWxpZiBwbGF0
Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJyk6CisgICAgZWxpZiBwbGF0
Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJywgJ3dwZScpOgogICAgICAg
ICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJ6aXAiLCAiLXIiLCAiLTIiLCBhcmNoaXZlRmlsZSwgIi4i
XSwgY3dkPWxheW91dFRlc3RSZXN1bHRzRGlyKToKICAgICAgICAgICAgIHJldHVybiAxCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYjMwNDliODg0MWQuLjgwZmRiOGM5NGRlIDEwMDY0NAotLS0gYS9Ub29scy9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMjMsNiArMjMsMTEgQEAgZWxzZWlm
ICgiJHtQT1JUfSIgU1RSRVFVQUwgIkpTQ09ubHkiKQogICAgIGlmIChFTkFCTEVfQVBJX1RFU1RT
KQogICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KFRlc3RXZWJLaXRBUEkpCiAgICAgZW5kaWYgKCkK
K2Vsc2VpZiAoIiR7UE9SVH0iIFNUUkVRVUFMICJXUEUiKQorICAgIGlmIChERVZFTE9QRVJfTU9E
RSkKKyAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShJbWFnZURpZmYpCisgICAgICAgIGFkZF9zdWJk
aXJlY3RvcnkoV2ViS2l0VGVzdFJ1bm5lcikKKyAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAogaWYg
KFdJTjMyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDRmOGFiNjJjZWRjLi5jOGVlZDUxZmZkZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE3LTA1LTA0ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUg
V1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IHdlYmtpdC1kZXYgdGhyZWFkOgorICAgICAgICBodHRwczovL2xpc3RzLndlYmtpdC5vcmcvcGlw
ZXJtYWlsL3dlYmtpdC1kZXYvMjAxNy1BcHJpbC8wMjg5MjMuaHRtbAorCisgICAgICAgIEFkZCBX
UEUgc3VwcG9ydCB0byB2YXJpb3VzIHRvb2xpbmcgc2NyaXB0cywgVGVzdFdlYktpdEFQSSBhbmQg
V2ViS2l0VGVzdFJ1bm5lci4KKyAgICAgICAgSW4tZmlsZSBjaGFuZ2VzIHJlbW92ZWQgZnJvbSB0
aGlzIENoYW5nZUxvZyBlbnRyeSBmb3IgYnJldml0eS4KKworICAgICAgICAqIEJ1aWxkU2xhdmVT
dXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZToKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9y
dC90ZXN0LXJlc3VsdC1hcmNoaXZlOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU2NyaXB0
cy9idWlsZC1kdW1wcmVuZGVydHJlZToKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoK
KyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXI6CisgICAgICAgICogU2Ny
aXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZDoKKyAgICAgICAgKiBTY3JpcHRzL3VwZGF0
ZS13ZWJraXR3cGUtbGliczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRkaXJzLnBt
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvcG9ydC93cGUucHk6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
UGxhdGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvd3BlL0lu
amVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dwZS9Q
bGF0Zm9ybVV0aWxpdGllc1dQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
d3BlL21haW4uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmguCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9B
Y3RpdmF0ZUZvbnRzV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50
U2VuZGVyUHJveHlXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dw
ZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRp
bmdSdW5Mb29wLmguCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJW
aWV3V1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENv
bnRyb2xsZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9t
YWluLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5m
by5oLgorICAgICAgICAqIGpoYnVpbGQvamhidWlsZC13cmFwcGVyOgorICAgICAgICAqIHdwZS9n
ZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5OiBBZGRlZC4KKyAgICAgICAg
KiB3cGUvamhidWlsZC5tb2R1bGVzOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvamhidWlsZHJjOiBB
ZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3It
ZWdsLXN1cmZhY2UucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2ZvbnRjb25m
aWctQy0xMS1yZXF1aXJlcy1hLXNwYWNlLWJldHdlZW4tbGl0ZXJhbC1hbmQtaWRlbnRpZmllci5w
YXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZnJlZXR5cGU2LTIuNC4xMS10cnVl
dHlwZS1mb250LWhlaWdodC1maXgucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVz
L2dkYXRlLXN1cHByZXNzLXN0cmluZy1mb3JtYXQtbGl0ZXJhbC13YXJuaW5nLnBhdGNoOiBBZGRl
ZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoOiBBZGRlZC4K
KyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8t
T3BlblNTTC0xLjEuMC5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0LXBs
dWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0Ff
Z2VuZXJhdGVfay5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdp
bnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Utc3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9y
LWZyLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29k
LXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3Bh
dGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVh
bS1pZi10aGUtLnBhdGNoOiBBZGRlZC4KKwogMjAxNy0wNS0wMyAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFTdHJlYW1dIEFsbG93IGhvc3Qg
YXBwbGljYXRpb24gdG8gZW5hYmxlL2Rpc2FibGUgbWVkaWEgY2FwdHVyZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRm
b3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjBl
ZTUzMjhiYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0ltYWdlRGlmZi9QbGF0Zm9ybVdQRS5j
bWFrZQpAQCAtMCwwICsxIEBACitpbmNsdWRlKENhaXJvLmNtYWtlKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZSBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVt
cHJlbmRlcnRyZWUKaW5kZXggNzYxZjQzZjY5ODkuLjE3ZGQ4MjA4YjIxIDEwMDc1NQotLS0gYS9U
b29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVp
bGQtZHVtcHJlbmRlcnRyZWUKQEAgLTY1LDggKzY1LDggQEAgY2hkaXIgRmlsZTo6U3BlYy0+Y2F0
ZGlyKCJUb29scyIsICJEdW1wUmVuZGVyVHJlZSIpIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAo
aXNBcHBsZUNvY29hV2ViS2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3Qo
IkR1bXBSZW5kZXJUcmVlIiwgJGNsZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNp
ZiAoaXNHdGsoKSB8fCBpc0FueVdpbmRvd3MoKSkgewotICAgICMgR1RLIGFuZCBXaW5kb3dzIGJ1
aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhpbmcgaGVy
ZS4KK30gZWxzaWYgKGlzR3RrKCkgfHwgaXNXUEUoKSB8fCBpc0FueVdpbmRvd3MoKSkgeworICAg
ICMgR1RLLCBXUEUgYW5kIFdpbmRvd3MgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8g
bmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsK
ICAgICBkaWUgIkJ1aWxkaW5nIG5vdCBkZWZpbmVkIGZvciB0aGlzIHBsYXRmb3JtIVxuIjsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWls
ZC13ZWJraXQKaW5kZXggNzE0MmFlNjY0NzMuLjJmZWVjNjY1Y2ExIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApA
QCAtMTAwLDYgKzEwMCw3IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25z
IHRvIHBhc3MgdG8gYnVpbGQgc3lzdGVtXQogICAtLWFuYWx5emUgICAgICAgICAgICAgICAgICAg
ICAgICAgRW5hYmxlIHN0YXRpYyBhbmF5bHNpcyAoaU9TIGFuZCBNYWMgb25seSkKIAogICAtLWd0
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIEdUSysgcG9ydAorICAtLXdw
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIFdQRSBwb3J0CiAgIC0td2lu
Y2Fpcm8gICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB1c2luZyBDYWlybyAocmF0aGVyIHRo
YW4gQ29yZUdyYXBoaWNzKSBvbiBXaW5kb3dzCiAKICAgLS1pbnNwZWN0b3ItZnJvbnRlbmQgICAg
ICAgICAgICAgIENvcHkgV2ViIEluc3BlY3RvciB1c2VyIGludGVyZmFjZSByZXNvdXJjZXMgdG8g
dGhlIGJ1aWxkIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJr
aXR0ZXN0cnVubmVyIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyCmluZGV4
IDI0MDNmOTM2OGQzLi45NzA3ZjY0NDYzYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWls
ZC13ZWJraXR0ZXN0cnVubmVyCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1
bm5lcgpAQCAtNjEsOCArNjEsOCBAQCBjaGRpciAiVG9vbHMvV2ViS2l0VGVzdFJ1bm5lciIgb3Ig
ZGllOwogbXkgJHJlc3VsdDsKIGlmIChpc0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAgICRyZXN1
bHQgPSBidWlsZFhDb2RlUHJvamVjdCgiV2ViS2l0VGVzdFJ1bm5lciIsICRjbGVhbiwgWGNvZGVP
cHRpb25zKCksIEBBUkdWKTsKLX0gZWxzaWYgKGlzR3RrKCkpIHsKLSAgICAjIEdUSysgYnVpbGQg
ZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgor
fSBlbHNpZiAoaXNHdGsoKSB8fCBpc1dQRSgpKSB7CisgICAgIyBHVEsrIGFuZCBXUEUgYnVpbGQg
ZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgog
ICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKICAgICBkaWUgIldlYktpdFRlc3RSdW5uZXIgaXMg
bm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLlxuIjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13
ZWJraXQtbGlicy1qaGJ1aWxkCmluZGV4IGQ5ZGJmZjVkZGU0Li4xMDc5YTllOGFiNSAxMDA3NTUK
LS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZAorKysgYi9Ub29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCkBAIC0yNCw5ICsyNCwxMCBAQCB1
c2UgR2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFzc190aHJvdWdoKTsKIAogbXkgJHBsYXRmb3Jt
ID0gIiI7CiAkcGxhdGZvcm0gPSAiZ3RrIiBpZiBpc0d0aygpOworJHBsYXRmb3JtID0gIndwZSIg
aWYgaXNXUEUoKTsKIAogaWYgKCEkcGxhdGZvcm0pIHsKLSAgICBkaWUgIk5vIHBsYXRmb3JtIHNw
ZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrLlxuIjsKKyAgICBkaWUg
Ik5vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3Rr
IG9yIC0td3BlLlxuIjsKIH0KIAogbXkgJHdpcGVPbkNoYW5nZSA9ICRFTlZ7SkhCVUlMRF9XSVBF
X09OX0NIQU5HRX0gLy8gMTsKQEAgLTEzMiw3ICsxMzMsNyBAQCBkZWxldGUgJEVOVntBUl9GTEFH
U30gaWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlwdHNEaXIo
KSAuICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3JtID0gKCAi
Z3RrIiA9PiAiR1RLKyIgKTsKK215ICVwcmV0dHlQbGF0Zm9ybSA9ICggImd0ayIgPT4gIkdUSysi
LCAid3BlIiA9PiAiV1BFIiApOwogCiBpZiAoISRmb3JjZSAmJiAhamhidWlsZENvbmZpZ3VyYXRp
b25DaGFuZ2VkKCkpIHsKICAgICBwcmludCAkcHJldHR5UGxhdGZvcm17JHBsYXRmb3JtfSAuICIg
cG9ydCBkZXBlbmRlbmNpZXMgYXJlIGFscmVhZHkgdXAgdG8gZGF0ZVxuIjsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJzIGIvVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2Via2l0d3BlLWxpYnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAu
LmIyM2ZiZGU2YjgzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Vi
a2l0d3BlLWxpYnMKQEAgLTAsMCArMSwyNCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjIENvcHly
aWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29y
cG9yYXRpb24KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisKK3VzZSBGaW5kQmluOwordXNlIGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdl
YmtpdGRpcnM7CisKK215ICRzY3JpcHRzRGlyID0gcmVsYXRpdmVTY3JpcHRzRGlyKCk7CitzeXN0
ZW0oInBlcmwiLCAiJHNjcmlwdHNEaXIvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQiLCAiLS13
cGUiLCBAQVJHVikgPT0gMCBvciBkaWUgJCE7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggYmM0NjU0NjE3
ZDEuLjZlOGUwZTdmZTU0IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0K
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC0xMDcsNiArMTA3LDcgQEAgdXNl
IGNvbnN0YW50IHsKICAgICBNYWMgICAgICA9PiAiTWFjIiwKICAgICBKU0NPbmx5ICA9PiAiSlND
T25seSIsCiAgICAgV2luQ2Fpcm8gPT4gIldpbkNhaXJvIiwKKyAgICBXUEUgICAgICA9PiAiV1BF
IiwKICAgICBVbmtub3duICA9PiAiVW5rbm93biIKIH07CiAKQEAgLTQ0NSw2ICs0NDYsNyBAQCBz
dWIgYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAgICAgcHVzaChAYXJncywgJy0tMzItYml0
JykgaWYgKCRhcmNoaXRlY3R1cmUgbmUgIng4Nl82NCIgYW5kICFpc1dpbjY0KCkpOwogICAgIHB1
c2goQGFyZ3MsICctLTY0LWJpdCcpIGlmIChpc1dpbjY0KCkpOwogICAgIHB1c2goQGFyZ3MsICct
LWd0aycpIGlmIGlzR3RrKCk7CisgICAgcHVzaChAYXJncywgJy0td3BlJykgaWYgaXNXUEUoKTsK
ICAgICBwdXNoKEBhcmdzLCAnLS1qc2Mtb25seScpIGlmIGlzSlNDT25seSgpOwogICAgIHB1c2go
QGFyZ3MsICctLXdpbmNhaXJvJykgaWYgaXNXaW5DYWlybygpOwogICAgIHB1c2goQGFyZ3MsICct
LWluc3BlY3Rvci1mcm9udGVuZCcpIGlmIGlzSW5zcGVjdG9yRnJvbnRlbmQoKTsKQEAgLTY4MCw3
ICs2ODIsNyBAQCBzdWIgZXhlY3V0YWJsZVByb2R1Y3REaXIKICAgICBteSAkcHJvZHVjdERpcmVj
dG9yeSA9IHByb2R1Y3REaXIoKTsKIAogICAgIG15ICRiaW5hcnlEaXJlY3Rvcnk7Ci0gICAgaWYg
KGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpIHsKKyAgICBpZiAoaXNHdGsoKSB8fCBpc0pTQ09ubHko
KSB8fCBpc1dQRSgpKSB7CiAgICAgICAgICRiaW5hcnlEaXJlY3RvcnkgPSAiYmluIjsKICAgICB9
IGVsc2lmIChpc0FueVdpbmRvd3MoKSkgewogICAgICAgICAkYmluYXJ5RGlyZWN0b3J5ID0gaXNX
aW42NCgpID8gImJpbjY0IiA6ICJiaW4zMiI7CkBAIC05MzgsNiArOTQwLDkgQEAgc3ViIGJ1aWx0
RHlsaWJQYXRoRm9yTmFtZQogICAgICAgICAgICAgcmV0dXJuICIkYmFzZVByb2R1Y3REaXIvJGxp
YnJhcnlOYW1lLmludGVybWVkaWF0ZS8kY29uZmlndXJhdGlvbi8kbGlicmFyeU5hbWUuaW50ZXJt
ZWRpYXRlLyRsaWJyYXJ5TmFtZS5saWIiOwogICAgICAgICB9CiAgICAgfQorICAgIGlmIChpc1dQ
RSgpKSB7CisgICAgICAgIHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyL2xpYi9saWJX
UEVXZWJLaXQuc28iOworICAgIH0KIAogICAgIGRpZSAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0sIGNh
bid0IGRldGVybWluZSBidWlsdCBsaWJyYXJ5IGxvY2F0aW9ucy5cblRyeSBgYnVpbGQtd2Via2l0
IC0taGVscGAgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iOwogfQpAQCAtMTA1Miw3ICsxMDU3LDgg
QEAgc3ViIGRldGVybWluZVBvcnROYW1lKCkKICAgICBteSAlYXJnVG9Qb3J0TmFtZSA9ICgKICAg
ICAgICAgZ3RrID0+IEdUSywKICAgICAgICAgJ2pzYy1vbmx5JyA9PiBKU0NPbmx5LAotICAgICAg
ICB3aW5jYWlybyA9PiBXaW5DYWlybworICAgICAgICB3aW5jYWlybyA9PiBXaW5DYWlybywKKyAg
ICAgICAgd3BlID0+IFdQRQogICAgICk7CiAKICAgICBmb3IgbXkgJGFyZyAoc29ydCBrZXlzICVh
cmdUb1BvcnROYW1lKSB7CkBAIC0xMDg2LDYgKzEwOTIsNyBAQCBzdWIgZGV0ZXJtaW5lUG9ydE5h
bWUoKQogICAgICAgICAgICAgbXkgJHBvcnRzQ2hvaWNlID0gam9pbiAiXG5cdCIsIHF3KAogICAg
ICAgICAgICAgICAgIC0tZ3RrCiAgICAgICAgICAgICAgICAgLS1qc2Mtb25seQorICAgICAgICAg
ICAgICAgIC0td3BlCiAgICAgICAgICAgICApOwogICAgICAgICAgICAgZGllICJQbGVhc2Ugc3Bl
Y2lmeSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCB1c2luZyBvbmUgb2YgdGhlIGZvbGxvd2lu
ZyBvcHRpb25zOiIKICAgICAgICAgICAgICAgICAuICJcblx0JHBvcnRzQ2hvaWNlXG4iOwpAQCAt
MTExMyw2ICsxMTIwLDExIEBAIHN1YiBpc0pTQ09ubHkoKQogICAgIHJldHVybiBwb3J0TmFtZSgp
IGVxIEpTQ09ubHk7CiB9CiAKK3N1YiBpc1dQRSgpCit7CisgICAgcmV0dXJuIHBvcnROYW1lKCkg
ZXEgV1BFOworfQorCiAjIERldGVybWluZSBpZiB0aGlzIGlzIGRlYmlhbiwgdWJ1bnR1LCBsaW5z
cGlyZSwgb3Igc29tZXRoaW5nIHNpbWlsYXIuCiBzdWIgaXNEZWJpYW5CYXNlZCgpCiB7CkBAIC0x
NTE2LDYgKzE1MjgsOCBAQCBzdWIgbGF1bmNoZXJQYXRoKCkKICAgICAgICAgcmV0dXJuICIkcmVs
YXRpdmVTY3JpcHRzUGF0aC9ydW4tbWluaWJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVX
ZWJLaXQoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi1zYWZh
cmkiOworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVT
Y3JpcHRzUGF0aC9ydW4td3BlIjsKICAgICB9CiB9CiAKQEAgLTE1MjcsNiArMTU0MSw4IEBAIHN1
YiBsYXVuY2hlck5hbWUoKQogICAgICAgICByZXR1cm4gIlNhZmFyaSI7CiAgICAgfSBlbHNpZiAo
aXNBcHBsZVdpbldlYktpdCgpKSB7CiAgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIiOworICAg
IH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICJXUEVMYXVuY2hlciI7CiAgICAg
fQogfQogCkBAIC0xODI2LDYgKzE4NDIsOCBAQCBzdWIgZ2V0SmhidWlsZFBhdGgoKQogICAgIH0K
ICAgICBpZiAoaXNHdGsoKSkgewogICAgICAgICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRlcGVuZGVu
Y2llc0dUSyIpOworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcHVzaChAamhidWls
ZFBhdGgsICJEZXBlbmRlbmNpZXNXUEUiKTsKICAgICB9IGVsc2UgewogICAgICAgICBkaWUgIkNh
bm5vdCBnZXQgSkhCdWlsZCBwYXRoIGZvciBwbGF0Zm9ybSB0aGF0IGlzbid0IEdUSysuXG4iOwog
ICAgIH0KQEAgLTE4NjYsNiArMTg4NCw4IEBAIHN1YiB3cmFwcGVyUHJlZml4SWZOZWVkZWQoKQog
ICAgICAgICBteSBAcHJlZml4ID0gKEZpbGU6OlNwZWMtPmNhdGZpbGUoc291cmNlRGlyKCksICJU
b29scyIsICJqaGJ1aWxkIiwgImpoYnVpbGQtd3JhcHBlciIpKTsKICAgICAgICAgaWYgKGlzR3Rr
KCkpIHsKICAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0tZ3RrIik7CisgICAgICAgIH0gZWxz
aWYgKGlzV1BFKCkpIHsKKyAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0td3BlIik7CiAgICAg
ICAgIH0KICAgICAgICAgcHVzaChAcHJlZml4LCAicnVuIik7CiAKQEAgLTIwMjQsNyArMjA0NCw3
IEBAIHN1YiBnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdAogICAgIHB1c2ggQGFy
Z3MsICctRFNIT1dfQklORElOR1NfR0VORVJBVElPTl9QUk9HUkVTUz0xJyB1bmxlc3MgKCR3aWxs
VXNlTmluamEgJiYgLXQgU1RET1VUKTsKIAogICAgICMgU29tZSBwb3J0cyBoYXZlIHByb2R1Y3Rp
b24gbW9kZSwgYnV0IGJ1aWxkLXdlYmtpdCBzaG91bGQgYWx3YXlzIHVzZSBkZXZlbG9wZXIgbW9k
ZS4KLSAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIgaWYgaXNHdGsoKSB8fCBp
c0pTQ09ubHkoKTsKKyAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIgaWYgaXNH
dGsoKSB8fCBpc0pTQ09ubHkoKSB8fCBpc1dQRSgpOwogCiAgICAgIyBEb24ndCB3YXJuIHZhcmlh
YmxlcyB3aGljaCBhcmVuJ3QgdXNlZCBieSBjbWFrZSBwb3J0cy4KICAgICBwdXNoIEBhcmdzLCAi
LS1uby13YXJuLXVudXNlZC1jbGkiOwpAQCAtMjEwMSw2ICsyMTIxLDEwIEBAIHN1YiBidWlsZENN
YWtlUHJvamVjdE9yRXhpdCgkJCRAKQogICAgICAgICBzeXN0ZW0oInBlcmwiLCAiJHNvdXJjZURp
ci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRndGstbGlicyIpID09IDAgb3IgZGllICQhOwog
ICAgIH0KIAorICAgIGlmIChpc1dQRSgpICYmIGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9t
QVJHVigiLS11cGRhdGUtd3BlIikpIHsKKyAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRzb3VyY2VE
aXIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMiKSA9PSAwIG9yIGRpZSAkITsK
KyAgICB9CisKICAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJhdGVCdWlsZFN5c3Rl
bUZyb21DTWFrZVByb2plY3QoJHByZWZpeFBhdGgsIEBjbWFrZUFyZ3MpKTsKICAgICBleGl0KCRy
ZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1
cmVMaXN0LnBtCmluZGV4IDJjM2FlMTFhNzMwLi4yMTRlNTYxZGRkOSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgcHJvaGliaXRV
bmtub3duUG9ydCgpOwogCiBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gIjNkLXJl
bmRlcmluZyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBSZW5kZXJpbmcgc3VwcG9ydCIsCi0gICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29h
V2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR0aHJlZURU
cmFuc2Zvcm1zU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfM0RfVFJBTlNGT1JN
UyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkgfHwg
aXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR0aHJlZURUcmFuc2Zvcm1zU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gImFjY2VsZXJhdGVkLTJkLWNhbnZhcyIsIGRlc2MgPT4gIlRv
Z2dsZSBBY2NlbGVyYXRlZCAyRCBDYW52YXMgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkYWNj
ZWxlcmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FDQ0VM
RVJBVEVEXzJEX0NBTlZBUyIsIGRlZmF1bHQgPT4gaXNXUEUoKSwgdmFsdWUgPT4gXCRhY2NlbGVy
YXRlZDJEQ2FudmFzU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFsbGlub25lLWJ1aWxk
IiwgZGVzYyA9PiAiVG9nZ2xlIGFsbC1pbi1vbmUgYnVpbGQiLAogICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfQUxMSU5PTkVfQlVJTEQiLCBkZWZhdWx0ID0+IGlzV2luZG93cygpLCB2YWx1ZSA9PiBc
JGFsbEluT25lQnVpbGQgfSwKQEAgLTE4Myw3ICsxODMsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiIsIGRlZmF1bHQgPT4g
aXNHdGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFnZVJlc29sdXRpb25TdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAiY3NzLWltYWdlLXNldCIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgaW1hZ2Utc2V0
IHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1NFVCIsIGRlZmF1
bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFnZVNldFN1cHBvcnQgfSwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0NTU19JTUFHRV9TRVQiLCBkZWZhdWx0ID0+IChpc0d0aygpIHx8IGlz
V1BFKCkpLCB2YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24g
PT4gImNzcy1yZWdpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBSZWdpb25zIHN1cHBvcnQiLAog
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX1JFR0lPTlMiLCBkZWZhdWx0ID0+IDEsIHZhbHVl
ID0+IFwkY3NzUmVnaW9uc1N1cHBvcnQgfSwKQEAgLTIwNyw3ICsyMDcsNyBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIiwgZGVmYXVs
dCA9PiAwLCB2YWx1ZSA9PiBcJGRhdGFsaXN0RWxlbWVudFN1cHBvcnQgfSwKIAogICAgIHsgb3B0
aW9uID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNjID0+ICJUb2dnbGUgRGV2aWNlIE9yaWVu
dGF0aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OIiwgZGVmYXVsdCA9PiBpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJGRldmljZU9yaWVudGF0
aW9uU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
IiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRkZXZp
Y2VPcmllbnRhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJkb200LWV2ZW50cy1j
b25zdHJ1Y3RvciIsIGRlc2MgPT4gIkV4cG9zZSBET000IEV2ZW50cyBjb25zdHJ1Y3RvcnMiLAog
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IiLCBkZWZhdWx0
ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkZG9tNEV2ZW50c0Nv
bnN0cnVjdG9yIH0sCkBAIC0yMjUsNyArMjI1LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUg
PT4gXCRmb250TG9hZEV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJmdGwtaml0
IiwgZGVzYyA9PiAiVG9nZ2xlIEZUTEpJVCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlzSlND
T25seSgpKSkgLCB2YWx1ZSA9PiBcJGZ0bEpJVFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlz
SlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3VwcG9ydCB9LAogCiAg
ICAgeyBvcHRpb24gPT4gImZ0cGRpciIsIGRlc2MgPT4gIlRvZ2dsZSBGVFAgRGlyZWN0b3J5IHN1
cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRQRElSIiwgZGVmYXVsdCA9PiAxLCB2
YWx1ZSA9PiBcJGZ0cERpclN1cHBvcnQgfSwKQEAgLTIzNyw3ICsyMzcsNyBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9PiAwLCB2
YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZ2VvbG9jYXRp
b24iLCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBp
c0lPU1dlYktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGdlb2xvY2F0aW9uU3VwcG9ydCB9
LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfR0VPTE9DQVRJT04iLCBkZWZhdWx0ID0+IChpc0Fw
cGxlV2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1
ZSA9PiBcJGdlb2xvY2F0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImhpZ2gtZHBp
LWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSBIaWdoIERQSSBDYW52YXMgc3VwcG9ydCIsCiAgICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9ISUdIX0RQSV9DQU5WQVMiLCBkZWZhdWx0ID0+IChpc0FwcGxl
V2ViS2l0KCkpLCB2YWx1ZSA9PiBcJGhpZ2hEUElDYW52YXNTdXBwb3J0IH0sCkBAIC0yNDYsNyAr
MjQ2LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSUNPTkRB
VEFCQVNFIiwgZGVmYXVsdCA9PiAhaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRpY29uZGF0YWJh
c2VTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5kZXhlZC1kYXRhYmFzZSIsIGRlc2Mg
PT4gIlRvZ2dsZSBJbmRleGVkIERhdGFiYXNlIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgp
IHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwKKyAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChpc0FwcGxl
Q29jb2FXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGluZGV4ZWRE
YXRhYmFzZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJpbnB1dC1zcGVlY2giLCBkZXNj
ID0+ICJUb2dnbGUgSW5wdXQgU3BlZWNoIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfSU5QVVRfU1BFRUNIIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGlucHV0U3BlZWNoU3Vw
cG9ydCB9LApAQCAtMzEyLDcgKzMxMiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX01FVEVSX0VMRU1FTlQiLCBkZWZhdWx0ID0+ICFpc0FwcGxlV2luV2ViS2l0
KCksIHZhbHVlID0+IFwkbWV0ZXJFbGVtZW50U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
Im1odG1sIiwgZGVzYyA9PiAiVG9nZ2xlIE1IVE1MIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfTUhUTUwiLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkbWh0bWxTdXBw
b3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4gKGlzR3Rr
KCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkbWh0bWxTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlv
biA9PiAibW91c2UtY3Vyc29yLXNjYWxlIiwgZGVzYyA9PiAiVG9nZ2xlIFNjYWxlZCBtb3VzZSBj
dXJzb3Igc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NT1VTRV9DVVJTT1JfU0NB
TEUiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbW91c2VDdXJzb3JTY2FsZVN1cHBvcnQgfSwK
QEAgLTMyNCw3ICszMjQsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRo
YXJkd2FyZUNvbmN1cnJlbmN5U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm5ldHNjYXBl
LXBsdWdpbi1hcGkiLCBkZXNjID0+ICJUb2dnbGUgTmV0c2NhcGUgUGx1Z2luIEFQSSBzdXBwb3J0
IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0
ID0+ICFpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3VwcG9ydCB9
LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1bHQg
PT4gKCFpc0lPU1dlYktpdCgpICYmICFpc1dQRSgpKSwgdmFsdWUgPT4gXCRuZXRzY2FwZVBsdWdp
bkFQSVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJub3NuaWZmIiwgZGVzYyA9PiAiVG9n
Z2xlIHN1cHBvcnQgZm9yICdYLUNvbnRlbnQtVHlwZS1PcHRpb25zOiBub3NuaWZmJyIsCiAgICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9OT1NOSUZGIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkgfHwgaXNBcHBsZVdpbldlYktpdCgpKSwgdmFsdWUgPT4gXCRub3NuaWZmU3VwcG9ydCB9
LApAQCAtMzM2LDcgKzMzNiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQoKSwgdmFs
dWUgPT4gXCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJw
ZXJmb3JtYW5jZS10aW1lbGluZSIsIGRlc2MgPT4gIlRvZ2dsZSBQZXJmb3JtYW5jZSBUaW1lbGlu
ZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BFUkZPUk1BTkNFX1RJTUVMSU5F
IiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxpbmVTdXBw
b3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSIsIGRl
ZmF1bHQgPT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkcGVyZm9ybWFuY2VUaW1l
bGluZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwcm94aW1pdHktZXZlbnRzIiwgZGVz
YyA9PiAiVG9nZ2xlIFByb3hpbWl0eSBFdmVudHMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHByb3hp
bWl0eUV2ZW50c1N1cHBvcnQgfSwKQEAgLTM2Niw3ICszNjYsNyBAQCBteSBAZmVhdHVyZXMgPSAo
CiAgICAgICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFMTE9DIiwgZGVmYXVsdCA9PiAwLCB2YWx1
ZSA9PiBcJHN5c3RlbU1hbGxvY1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ0b3VjaC1l
dmVudHMiLCBkZXNjID0+ICJUb2dnbGUgVG91Y2ggRXZlbnRzIHN1cHBvcnQiLAotICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8
fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKKyAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwg
aXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKIAog
ICAgIHsgb3B0aW9uID0+ICJ0b3VjaC1pY29uLWxvYWRpbmciLCBkZXNjID0+ICJUb2dnbGUgVG91
Y2ggSWNvbiBMb2FkaW5nIFN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hf
SUNPTl9MT0FESU5HIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHRvdWNoSWNvbkxvYWRpbmdT
dXBwb3J0IH0sCkBAIC0zNzgsMTYgKzM3OCwxNiBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9WSUJSQVRJT04iLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkdmli
cmF0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInZpZGVvIiwgZGVzYyA9PiAiVG9n
Z2xlIFZpZGVvIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU8iLCBkZWZh
dWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBw
b3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4gKGlzQXBw
bGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9y
dCB9LAogCiAgICAgeyBvcHRpb24gPT4gInZpZGVvLXRyYWNrIiwgZGVzYyA9PiAiVG9nZ2xlIFZp
ZGVvIFRyYWNrIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0si
LCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkdmlk
ZW9UcmFja1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJREVPX1RSQUNLIiwg
ZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVl
ID0+IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWItYW5pbWF0
aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQW5pbWF0aW9ucyBzdXBwb3J0IiwKICAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX1dFQl9BTklNQVRJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBc
JHdlYkFuaW1hdGlvbnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViLWF1ZGlvIiwg
ZGVzYyA9PiAiVG9nZ2xlIFdlYiBBdWRpbyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCR3ZWJBdWRpb1N1
cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1bHQgPT4g
KGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCiAKICAg
ICB7IG9wdGlvbiA9PiAid2ViLXJlcGxheSIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgUmVwbGF5IHN1
cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1JFUExBWSIsIGRlZmF1bHQgPT4g
aXNBcHBsZUNvY29hV2ViS2l0KCksIHZhbHVlID0+IFwkd2ViUmVwbGF5U3VwcG9ydCB9LApAQCAt
NDAyLDEwICs0MDIsMTAgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfV0VCX1RJTUlORyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3ZWJUaW1pbmdTdXBwb3J0
IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViYXNzZW1ibHkiLCBkZXNjID0+ICJUb2dnbGUgV2Vi
QXNzZW1ibHkgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIs
IGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZh
bHVlID0+IFwkd2ViQXNzZW1ibHlTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9X
RUJBU1NFTUJMWSIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NP
bmx5KCkgfHwgaXNXUEUoKSkpICwgdmFsdWUgPT4gXCR3ZWJBc3NlbWJseVN1cHBvcnQgfSwKIAog
ICAgIHsgb3B0aW9uID0+ICJ3ZWJnbCIsIGRlc2MgPT4gIlRvZ2dsZSBXZWJHTCBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29h
V2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCisgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9XRUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgp
IHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCiAKICAg
ICB7IG9wdGlvbiA9PiAid3JpdGFibGVTdHJlYW1BUEkiLCBkZXNjID0+ICJUb2dnbGUgV3JpdGFi
bGVTdHJlYW0gQVBJIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV1JJVEFCTEVf
U1RSRUFNX0FQSSIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3cml0YWJsZVN0cmVhbUFQSVN1
cHBvcnQgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDMzYTYwY2NiNTFjLi5iZjU2ZTFmMjg2YyAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzLnB5CkBAIC00MjUsNyArNDI1LDcgQEAgZGVmIF9zZXRfdXBfZGVyaXZlZF9vcHRp
b25zKHBvcnQsIG9wdGlvbnMpOgogICAgICAgICBvcHRpb25zLnZlcmJvc2UgPSBUcnVlCiAKICAg
ICAjIFRoZSBHVEsrIGFuZCBFRkwgcG9ydHMgb25seSBzdXBwb3J0IFdlYktpdDIgc28gdGhleSBh
bHdheXMgdXNlIFdLVFIuCi0gICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSA9PSAiZ3RrIiBvciBvcHRp
b25zLnBsYXRmb3JtID09ICJlZmwiOgorICAgIGlmIG9wdGlvbnMucGxhdGZvcm0gaW4gWyJlZmwi
LCAiZ3RrIiwgIndwZSJdOgogICAgICAgICBvcHRpb25zLndlYmtpdF90ZXN0X3J1bm5lciA9IFRy
dWUKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CmluZGV4IGNmZGMzYTQx
Yzg2Li41MTYwZjM2Y2I1OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2ZhY3RvcnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkK
QEAgLTUzLDYgKzUzLDkgQEAgZGVmIHBsYXRmb3JtX29wdGlvbnModXNlX2dsb2JzPUZhbHNlKToK
ICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZ3RrJywgYWN0aW9uPSdzdG9yZV9jb25z
dCcsIGRlc3Q9J3BsYXRmb3JtJywKICAgICAgICAgICAgIGNvbnN0PSgnZ3RrKicgaWYgdXNlX2ds
b2JzIGVsc2UgJ2d0aycpLAogICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3Jt
PWd0ayonIGlmIHVzZV9nbG9icyBlbHNlICdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1ndGsnKSksCisg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLXdwZScsIGFjdGlvbj0nc3RvcmVfY29uc3Qn
LCBkZXN0PSdwbGF0Zm9ybScsCisgICAgICAgICAgICBjb25zdD0oJ3dwZSonIGlmIHVzZV9nbG9i
cyBlbHNlICd3cGUnKSwKKyAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT13
cGUnKSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLW5vLWluc3RhbGwnLCBhY3Rp
b249J3N0b3JlX2NvbnN0JywKICAgICAgICAgICAgIGNvbnN0PUZhbHNlLCBkZWZhdWx0PVRydWUs
IGRlc3Q9J2luc3RhbGwnLAogICAgICAgICAgICAgaGVscD0nU2tpcCBpbnN0YWxsIHN0ZXAgZm9y
IGRldmljZSBhbmQgc2ltdWxhdG9yIHRlc3RpbmcnKSwKQEAgLTkzLDYgKzk2LDcgQEAgY2xhc3Mg
UG9ydEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAgJ3Rlc3QuVGVzdFBvcnQnLAogICAgICAgICAn
d2luLldpbkNhaXJvUG9ydCcsCiAgICAgICAgICd3aW4uV2luUG9ydCcsCisgICAgICAgICd3cGUu
V1BFUG9ydCcsCiAgICAgKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC93cGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmIzY2QwODY1YTRlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L3dwZS5weQpAQCAtMCwwICsxLDc5IEBACisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgR29v
Z2xlIG5hbWUgbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdlYmtpdHB5
LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCitm
cm9tIHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0Lmxp
bnV4X2dldF9jcmFzaF9sb2cgaW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCisKKworY2xhc3Mg
V1BFUG9ydChQb3J0KToKKyAgICBwb3J0X25hbWUgPSAid3BlIgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFdQRVBvcnQsIHNlbGYpLl9f
aW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBpZiBzZWxmLl9zaG91bGRfdXNlX2po
YnVpbGQoKToKKyAgICAgICAgICAgIHNlbGYuX2poYnVpbGRfd3JhcHBlciA9IFtzZWxmLnBhdGhf
ZnJvbV93ZWJraXRfYmFzZSgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdyYXBwZXInKSwg
Jy0td3BlJywgJ3J1biddCisgICAgICAgICAgICBzZWxmLnNldF9vcHRpb25fZGVmYXVsdCgnd3Jh
cHBlcicsICcgJy5qb2luKHNlbGYuX2poYnVpbGRfd3JhcHBlcikpCisKKyAgICBkZWYgZGVmYXVs
dF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICByZXR1cm4gNjAwMAorCisgICAgZGVmIF9idWls
dF9leGVjdXRhYmxlc19wYXRoKHNlbGYsICpwYXRoKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1
aWxkX3BhdGgoKigoJ2JpbicsKSArIHBhdGgpKQorCisgICAgZGVmIF9idWlsdF9saWJyYXJpZXNf
cGF0aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCooKCds
aWInLCkgKyBwYXRoKSkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3JpcHRzKHNlbGYpOgor
ICAgICAgICByZXR1cm4gIi0td3BlIgorCisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZl
cihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52aXJvbm1lbnQgPSBzdXBlcihX
UEVQb3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUpCisgICAg
ICAgIGVudmlyb25tZW50WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScKKyAgICAgICAg
ZW52aXJvbm1lbnRbJ1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSddID0gc2Vs
Zi5fYnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5zbycpCisg
ICAgICAgIGVudmlyb25tZW50WydURVNUX1JVTk5FUl9URVNUX1BMVUdJTl9QQVRIJ10gPSBzZWxm
Ll9idWlsZF9wYXRoKCdsaWInLCAncGx1Z2lucycpCisgICAgICAgIGVudmlyb25tZW50WydXRUJL
SVRfRVhFQ19QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdiaW4nKQorICAgICAgICByZXR1cm4g
ZW52aXJvbm1lbnQKKworICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMo
c2VsZik6CisgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KKyAgICAgICAgZm9yIGJ1aWxkX3R5
cGUgaW4gc2VsZi5BTExfQlVJTERfVFlQRVM6CisgICAgICAgICAgICBjb25maWd1cmF0aW9ucy5h
cHBlbmQoVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBhcmNoaXRlY3R1
cmU9J3g4NicsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkpCisgICAgICAgIHJldHVybiBjb25maWd1
cmF0aW9ucworCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoc2VsZi5kcml2ZXJfbmFtZSgpKQorCisgICAg
ZGVmIF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9idWls
dF9leGVjdXRhYmxlc19wYXRoKCdJbWFnZURpZmYnKQorCisgICAgZGVmIF9nZXRfY3Jhc2hfbG9n
KHNlbGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgorICAgICAgICBu
YW1lID0gIldQRVdlYlByb2Nlc3MiIGlmIG5hbWUgPT0gIldlYlByb2Nlc3MiIGVsc2UgbmFtZQor
ICAgICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdlcl90aGFu
LCBzZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hf
bG9nKHN0ZG91dCwgc3RkZXJyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI5Nzg0NzU1ZjM2Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCww
ICsxLDYwIEBACitzZXQoVEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgIiR7
Q01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9UZXN0V2ViS2l0QVBJIikKK3NldChURVNU
V0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWV9XVEYgIiR7VEVTVFdFQktJVEFQSV9S
VU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dURiIpCisKKyMgVGhpcyBpcyBuZWNlc3NhcnkgYmVj
YXVzZSBpdCBpcyBwb3NzaWJsZSB0byBidWlsZCBUZXN0V2ViS2l0QVBJIHdpdGggV2ViS2l0Mgor
IyBkaXNhYmxlZCBhbmQgdGhpcyB0cmlnZ2VycyB0aGUgaW5jbHVzaW9uIG9mIHRoZSBXZWJLaXQy
IGhlYWRlcnMuCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XRUJLSVQyX18pCisKK2FkZF9j
dXN0b21fdGFyZ2V0KFRlc3RXZWJLaXRBUEktZm9yd2FyZGluZy1oZWFkZXJzCisgICAgQ09NTUFO
RCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1mb3J3
YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtURVNUV0VCS0lUQVBJX0RJUn0gLS1v
dXRwdXQgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSAtLXBsYXRmb3JtIHdwZSAtLXBsYXRmb3Jt
IHNvdXAKKyAgICBERVBFTkRTIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCispCisKK3Nl
dChGb3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRSBUZXN0V2ViS2l0QVBJLWZv
cndhcmRpbmctaGVhZGVycykKKworaW5jbHVkZV9kaXJlY3RvcmllcygKKyAgICAke0ZPUldBUkRJ
TkdfSEVBREVSU19ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS9KYXZhU2NyaXB0
Q29yZQorKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTQorICAgICR7R0xJQl9JTkNMVURF
X0RJUlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKykKKworc2V0KHRlc3RfbWFpbl9T
T1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL21haW4uY3BwCispCisKK3NldChi
dW5kbGVfaGFybmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL0luamVj
dGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS93cGUv
UGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwCispCisKKyMgVGVzdFdURgorCitsaXN0KEFQUEVORCBU
ZXN0V1RGX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9H
VW5pcXVlUHRyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9nbGliL1dv
cmtRdWV1ZUdMaWIuY3BwCispCisKKyMgVGVzdFdlYkNvcmUKKworYWRkX2V4ZWN1dGFibGUoVGVz
dFdlYkNvcmUKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7VEVTVFdFQktJVEFQSV9E
SVJ9L1Rlc3RzQ29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9X
ZWJDb3JlL0hUTUxQYXJzZXJJZGlvbXMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViQ29yZS9MYXlvdXRVbml0LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dlYkNvcmUvVVJMLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUv
U2hhcmVkQnVmZmVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUv
U2hhcmVkQnVmZmVyVGVzdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJD
b3JlL0ZpbGVTeXN0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29y
ZS9QdWJsaWNTdWZmaXguY3BwCispCisKK3RhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0V2ViQ29y
ZSAke3Rlc3Rfd2ViY29yZV9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhUZXN0V2ViQ29y
ZSAke0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKworYWRkX3Rlc3Qo
VGVzdFdlYkNvcmUgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vV2Vi
Q29yZS9UZXN0V2ViQ29yZSkKK3NldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RXZWJDb3JlIFBST1BF
UlRJRVMgVElNRU9VVCA2MCkKK3NldF90YXJnZXRfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9Q
RVJUSUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9P
VVRQVVRfRElSRUNUT1JZfS9XZWJDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZkMjEyMWJkN2EyCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcApAQCAt
MCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUNvbnRy
b2xsZXIuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2b2lkIEluamVjdGVkQnVu
ZGxlQ29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxh
dGZvcm1VdGlsaXRpZXNXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1V
dGlsaXRpZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5l
MjFjMWVhYTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1Bs
YXRmb3JtVXRpbGl0aWVzV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworbmFtZXNwYWNlIFV0aWwgeworCit2b2lkIHNsZWVwKGRvdWJsZSBzZWNvbmRz
KQoreworICAgIGdfdXNsZWVwKHNlY29uZHMgKiAxMDAwMDAwKTsKK30KKworc3RhdGljIGNoYXIq
IGdldEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoY29uc3QgY2hhciogdmFy
aWFibGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYodmFyaWFibGVO
YW1lKTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIGdfcHJpbnRlcnIoIiVzIGVudmlyb25t
ZW50IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAgICAgZXhpdCgx
KTsKKyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBnX2ZpbGVuYW1l
X3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKworV0tTdHJpbmdS
ZWYgY3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGlu
amVjdGVkQnVuZGxlUGF0aChnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4
KCJURVNUX1dFQktJVF9BUElfV0VCS0lUMl9JTkpFQ1RFRF9CVU5ETEVfUEFUSCIpKTsKKyAgICBH
VW5pcXVlUHRyPGNoYXI+IGluamVjdGVkQnVuZGxlRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShp
bmplY3RlZEJ1bmRsZVBhdGguZ2V0KCksICJsaWJUZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGUu
c28iLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KGluamVjdGVkQnVuZGxlRmlsZW5hbWUuZ2V0KCkpOworfQorCitXS1VSTFJlZiBjcmVhdGVVUkxG
b3JSZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSwgY29uc3QgY2hhciogZXh0ZW5zaW9uKQor
eworICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGVzdFJlc291cmNlc1BhdGgoZ2V0RmlsZW5hbWVGcm9t
RW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfUkVTT1VS
Q0VTX1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUJhc2VuYW1lKGdfc3Ry
ZHVwX3ByaW50ZigiJXMuJXMiLCByZXNvdXJjZSwgZXh0ZW5zaW9uKSk7CisgICAgR1VuaXF1ZVB0
cjxjaGFyPiByZXNvdXJjZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUodGVzdFJlc291cmNlc1Bh
dGguZ2V0KCksIHJlc291cmNlQmFzZW5hbWUuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBHUmVmUHRy
PEdGaWxlPiByZXNvdXJjZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChyZXNv
dXJjZUZpbGVuYW1lLmdldCgpKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZVVSSShn
X2ZpbGVfZ2V0X3VyaShyZXNvdXJjZUZpbGUuZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tVUkxDcmVh
dGVXaXRoVVRGOENTdHJpbmcocmVzb3VyY2VVUkkuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBVdGlsCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjU2OGI2YzMyZAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3BwCkBAIC0w
LDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RzQ29udHJvbGxlci5oIgor
CitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIFRlc3RXZWJL
aXRBUEk6OlRlc3RzQ29udHJvbGxlcjo6c2luZ2xldG9uKCkucnVuKGFyZ2MsIGFyZ3YpID8gRVhJ
VF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmNwcAppbmRleCA1ZjM5NWJlNzM1ZS4uZDA3OTA0YjMzZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQogICAgIHJldHVybiBXS0FjY2Vz
c2liaWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CiB9CiAKLSNpZiAhUExBVEZP
Uk0oR1RLKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiBSZWY8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkK
IHsKICAgICBXS0J1bmRsZVBhZ2VSZWYgcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5wYWdlKCktPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCBlY2Rm
NWEwZjcyZi4uZDVhZWViYmNjZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAg
LTczLDcgKzczLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFp
blB0cjxOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7Ci0j
ZWxzZQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCiAgICAgUmVmUHRyPEFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRs
ZXI7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCAwMjY0
MGJlNzYxOC4uMjU4MTRlNGVlOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApA
QCAtNzgsNyArNzgsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dEFyZWEo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgCiAvLyBVbnN1cHBvcnRlZCBt
ZXRob2RzIG9uIHZhcmlvdXMgcGxhdGZvcm1zLiBBcyB0aGV5J3JlIGltcGxlbWVudGVkIG9uIG90
aGVyIHBsYXRmb3JtcyB0aGlzIGxpc3Qgc2hvdWxkIGJlIG1vZGlmaWVkLgotI2lmICFQTEFURk9S
TShHVEspIHx8ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaWYgKCFQTEFURk9STShHVEspICYmICFQ
TEFURk9STShXUEUpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQogSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lQXRPZmZzZXQoaW50
KSB7IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IGQx
MGVlOGJiZDFhLi40MzVkZDdkYjhhYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAg
LTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VUlFbGVtZW50c1dpdGhBdHRy
aWJ1dGUoSlNTdHJpbmdSZWYsIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
PiYpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RL
KQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkK
ICAgICB2b2lkIGdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4gPiYpOwogICAgIHZvaWQgZ2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiA+JiwgdW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0
aCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDEzZWRiYWI0YTU4Li4yNTg5NmFiMmVhNiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCkBAIC05OCw3ICs5OCw3IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgICwgbV9k
YXRhYmFzZU1heFF1b3RhKC0xKQogICAgICwgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQoZmFsc2Up
CiAgICAgLCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24oYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiIikpKQotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkKICAgICAsIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoUnVuTG9v
cDo6bWFpbigpLCB0aGlzLCAmVGVzdFJ1bm5lcjo6d2FpdFRvRHVtcFdhdGNoZG9nVGltZXJGaXJl
ZCkKICNlbmRpZgogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA4Yjc1YmNmZTE5Zi4uZDkzMDBlZTRjMTcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBA
IC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPENv
cmVGb3VuZGF0aW9uL0NGUnVuTG9vcC5oPgogdHlwZWRlZiBSZXRhaW5QdHI8Q0ZSdW5Mb29wVGlt
ZXJSZWY+IFBsYXRmb3JtVGltZXJSZWY7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogbmFt
ZXNwYWNlIFdUUiB7CiBjbGFzcyBUZXN0UnVubmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXUEUu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5lOTRjMmFhYjcwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcApAQCAt
MCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
CisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKwordm9p
ZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJpbmdS
ZWYgaWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0
Zm9ybU5hbWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjo6cm9vdEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsKK30KKworUmVmPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y3JlYXRlKG51bGxwdHIpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCisjZW5kaWYg
Ly8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDY0OTE1
MGE1NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcApAQCAtMCwwICsxLDk1OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKworQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChQbGF0Zm9ybVVJRWxlbWVudCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nlc3NpYmls
aXR5VUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Pj4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Pj4mLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuQ291
bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVtZW50
QXRQb2ludChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleE9mQ2hp
bGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKworCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4
KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgo
dW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVu
c2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpyb3dBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit1bnNpZ25l
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0
SW5kZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2VkVUlF
bGVtZW50cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0
dHJpYnV0ZXNPZkRvY3VtZW50TGlua3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbigpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmlu
Z1JlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
Citkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUoSlNT
dHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IDAuMDsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRB
cnJheUF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVlUmVmIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTVmFsdWVSZWYgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpT
U3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xB
dHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYW1ldGVyaXplZEF0
dHJpYnV0ZU5hbWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cm9sZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1
YnJvbGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xl
RGVzY3JpcHRpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpjb21wdXRlZFJvbGVTdHJpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp0aXRsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmRlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp4KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisK
K2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp3aWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQor
Citkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpjbGlja1BvaW50WCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2ludFko
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91Ymxl
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjptaW5WYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24oKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNJbmNyZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
RGVjcmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJs
ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzRm9jdXNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNT
ZWxlY3RlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZE9wdGlvbkFj
dGl2ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc0luZGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGllcmFy
Y2hpY2FsTGV2ZWwoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzcGVhaygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEcm9wRWZmZWN0
cygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRleChpbnQpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9zaXRpb24o
aW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJv
dW5kc0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3Ry
aW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YXR0cmlidXRlZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWduZWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVkaWNhdGUo
SlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJlZiwg
SlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwgYm9v
bCwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Vs
ZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVm
LCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJzKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09m
Q29sdW1ucygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0
dHJpYnV0ZXNPZlJvd3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojpyb3dDb3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aW5kZXhJblRhYmxlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cm93SW5kZXhSYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnbmVkLCB1
bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2Uo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UodW5zaWduZWQs
IHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZWNyZW1l
bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2hvd01lbnUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZChBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0
SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVu
c2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xlYXJTZWxlY3RlZENoaWxkcmVuKCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZygpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50VVJJKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTVmFsdWVSZWYgZnVu
Y3Rpb25DYWxsYmFjaykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25M
aXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
VmlzaWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4oKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0lnbm9yZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2lu
Z2xlTGluZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aUxpbmUoKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0YWtlRm9jdXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbigpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRTZWxlY3Rpb24o
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cmVtb3ZlU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitS
ZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bGluZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpwcmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFRleHRN
YXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXIqLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JUZXh0
TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yVGV4
dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvckJv
dW5kcyhpbnQsIGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBpbnQsIGlu
dCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6dGV4dE1hcmtlckZvclBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRleHRNYXJr
ZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0
cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5n
UmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmluZGV4Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc1RleHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZv
ckluZGV4KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNldFNlbGVjdGVkVmlzaWJsZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJh
bmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNj
cm9sbFRvR2xvYmFsUG9pbnQoaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlV2l0aFN1
YkZvY3VzKGludCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3VwcG9y
dGVkQWN0aW9ucygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnBhdGhEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNjcmlwdHNE
ZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmNsYXNzTGlzdCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAv
LyBuYW1lc3BhY2UgIFdURgorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVG
b250c1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9B
Y3RpdmF0ZUZvbnRzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uYzNjZjcyMWIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApAQCAtMCwwICsxLDE0NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCisjaW5jbHVkZSA8
Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGll
cy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdUUiB7
CisKK0NTdHJpbmcgdG9wTGV2ZWxQYXRoKCkKK3sKKyAgICBpZiAoY29uc3QgY2hhciogdG9wTGV2
ZWxEaXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX1RPUF9MRVZFTCIpKQorICAgICAgICByZXR1
cm4gdG9wTGV2ZWxEaXJlY3Rvcnk7CisKKyAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFi
bGUgd2Fzbid0IHByb3ZpZGVkIHRoZW4gYXNzdW1lIHdlIHdlcmUgYnVpbHQgaW50bworICAgIC8v
IFdlYktpdEJ1aWxkL0RlYnVnIG9yIFdlYktpdEJ1aWxkL1JlbGVhc2UuIE9idmlvdXNseSB0aGlz
IHdpbGwgZmFpbCBpZiB0aGUgYnVpbGQKKyAgICAvLyBkaXJlY3RvcnkgaXMgbm9uLXN0YW5kYXJk
LCBidXQgd2UgY2FuJ3QgZG8gbXVjaCBtb3JlIGFib3V0IHRoaXMuCisgICAgR1VuaXF1ZVB0cjxj
aGFyPiBwYXJlbnRQYXRoKGdfcGF0aF9nZXRfZGlybmFtZShnZXRDdXJyZW50RXhlY3V0YWJsZVBh
dGgoKS5kYXRhKCkpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGxheW91dFRlc3RzUGF0aChnX2J1
aWxkX2ZpbGVuYW1lKHBhcmVudFBhdGguZ2V0KCksICIuLiIsICIuLiIsICIuLiIsIG51bGxwdHIp
KTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGFic29sdXRlVG9wTGV2ZWxQYXRoKHJlYWxwYXRoKGxh
eW91dFRlc3RzUGF0aC5nZXQoKSwgMCkpOworICAgIHJldHVybiBhYnNvbHV0ZVRvcExldmVsUGF0
aC5nZXQoKTsKK30KKworQ1N0cmluZyBnZXRPdXRwdXREaXIoKQoreworICAgIGNvbnN0IGNoYXIq
IHdlYmtpdE91dHB1dERpciA9IGdfZ2V0ZW52KCJXRUJLSVRfT1VUUFVURElSIik7CisgICAgaWYg
KHdlYmtpdE91dHB1dERpcikKKyAgICAgICAgcmV0dXJuIHdlYmtpdE91dHB1dERpcjsKKworICAg
IEdVbmlxdWVQdHI8Y2hhcj4gb3V0cHV0RGlyKGdfYnVpbGRfZmlsZW5hbWUodG9wTGV2ZWxQYXRo
KCkuZGF0YSgpLCAiV2ViS2l0QnVpbGQiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIG91dHB1dERp
ci5nZXQoKTsKK30KKworc3RhdGljIENTdHJpbmcgZ2V0Rm9udHNQYXRoKCkKK3sKKyAgICBDU3Ry
aW5nIHdlYmtpdE91dHB1dERpciA9IGdldE91dHB1dERpcigpOworICAgIEdVbmlxdWVQdHI8Y2hh
cj4gZm9udHNQYXRoKGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwgIkRl
cGVuZGVuY2llc1dQRSIsICJSb290IiwgIndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgbnVsbHB0cikp
OworICAgIGlmIChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0PEdGaWxl
VGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfRElSKSkpCisgICAgICAg
IHJldHVybiBmb250c1BhdGguZ2V0KCk7CisKKyAgICAvLyBUcnkgYWx0ZXJuYXRpdmUgZm9udHMg
cGF0aC4KKyAgICBmb250c1BhdGgucmVzZXQoZ19idWlsZF9maWxlbmFtZSh3ZWJraXRPdXRwdXRE
aXIuZGF0YSgpLCAid2Via2l0Z3RrLXRlc3QtZm9udHMiLCBOVUxMKSk7CisgICAgaWYgKGdfZmls
ZV90ZXN0KGZvbnRzUGF0aC5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVT
VF9FWElTVFMgfCBHX0ZJTEVfVEVTVF9JU19ESVIpKSkKKyAgICAgICAgcmV0dXJuIGZvbnRzUGF0
aC5nZXQoKTsKKworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisKK3ZvaWQgYWN0aXZhdGVGb250
cygpCit7CisgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVRfU0tJUF9XRUJLSVRURVNUUlVOTkVSX0ZP
TlRDT05GSUdfSU5JVElBTElaQVRJT04iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmNJbml0
KCk7CisKKyAgICAvLyBJZiBhIHRlc3QgcmVzdWx0ZWQgYSBmb250IGJlaW5nIGFkZGVkIG9yIHJl
bW92ZWQgdmlhIHRoZSBAZm9udC1mYWNlIHJ1bGUsIHRoZW4KKyAgICAvLyB3ZSB3YW50IHRvIHJl
c2V0IHRoZSBGb250Q29uZmlnIGNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBpdCBmcm9tIGFmZmVj
dGluZyBvdGhlciB0ZXN0cy4KKyAgICBzdGF0aWMgaW50IG51bUZvbnRzID0gMDsKKyAgICBGY0Zv
bnRTZXQqIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGljYXRpb24p
OworICAgIGlmIChhcHBGb250U2V0ICYmIG51bUZvbnRzICYmIGFwcEZvbnRTZXQtPm5mb250ID09
IG51bUZvbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBMb2FkIG91ciBjb25maWd1cmF0
aW9uIGZpbGUsIHdoaWNoIHNldHMgdXAgcHJvcGVyIGFsaWFzZXMgZm9yIGZhbWlseQorICAgIC8v
IG5hbWVzIGxpa2Ugc2Fucywgc2VyaWYgYW5kIG1vbm9zcGFjZS4KKyAgICBGY0NvbmZpZyogY29u
ZmlnID0gRmNDb25maWdDcmVhdGUoKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250Q29uZmln
RmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgImZvbnRzLmNvbmYiLCBu
dWxscHRyKSk7CisgICAgaWYgKCFnX2ZpbGVfdGVzdChmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCks
IEdfRklMRV9URVNUX0lTX1JFR1VMQVIpKQorICAgICAgICBnX2Vycm9yKCJDYW5ub3QgZmluZCBm
b250cy5jb25mIGF0ICVzXG4iLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworICAgIGlmICgh
RmNDb25maWdQYXJzZUFuZExvYWQoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgqPihm
b250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpLCB0cnVlKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGRu
J3QgbG9hZCBmb250IGNvbmZpZ3VyYXRpb24gZmlsZSBmcm9tOiAlcyIsIGZvbnRDb25maWdGaWxl
bmFtZS5nZXQoKSk7CisKKyAgICBDU3RyaW5nIGZvbnRzUGF0aCA9IGdldEZvbnRzUGF0aCgpOwor
ICAgIGlmIChmb250c1BhdGguaXNOdWxsKCkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBs
b2NhdGUgdGVzdCBmb250cyBhdCAlcy4gSXMgV0VCS0lUX1RPUF9MRVZFTCBzZXQ/IiwgZm9udHNQ
YXRoLmRhdGEoKSk7CisKKyAgICBHVW5pcXVlUHRyPEdEaXI+IGZvbnRzRGlyZWN0b3J5KGdfZGly
X29wZW4oZm9udHNQYXRoLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAgIHdoaWxlIChjb25zdCBj
aGFyKiBkaXJlY3RvcnlFbnRyeSA9IGdfZGlyX3JlYWRfbmFtZShmb250c0RpcmVjdG9yeS5nZXQo
KSkpIHsKKyAgICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLnR0
ZiIpICYmICFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLm90ZiIpKQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRQYXRoKGdfYnVp
bGRfZmlsZW5hbWUoZm9udHNQYXRoLmRhdGEoKSwgZGlyZWN0b3J5RW50cnksIG51bGxwdHIpKTsK
KyAgICAgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBGY0NoYXI4Kj4oZm9udFBhdGguZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJy
b3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFBhdGguZ2V0KCkpOworICAgIH0K
KworICAgIC8vIEFoZW0gaXMgdXNlZCBieSBtYW55IGxheW91dCB0ZXN0cy4KKyAgICBHVW5pcXVl
UHRyPGdjaGFyPiBhaGVtRm9udEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9E
SVIsICJBSEVNX19fXy5UVEYiLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRB
ZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oYWhlbUZvbnRGaWxlbmFt
ZS5nZXQoKSkpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVzISIs
IGFoZW1Gb250RmlsZW5hbWUuZ2V0KCkpOyAKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBmb250
RmlsZW5hbWVzW10gPSB7CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMTAwLnR0ZiIsCisg
ICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWln
aHRXYXRjaGVyMzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNDAwLnR0ZiIs
CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNTAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRX
ZWlnaHRXYXRjaGVyNjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0
ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiIsCisgICAgICAgICJXZWJL
aXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiIsCisgICAgICAgIDAKKyAgICB9OworCisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGZvbnRGaWxlbmFtZXNbaV07ICsraSkgeworICAgICAgICBHVW5pcXVlUHRy
PGdjaGFyPiBmb250RmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgIi4u
IiwgIi4uIiwgImZvbnRzIiwgZm9udEZpbGVuYW1lc1tpXSwgbnVsbHB0cikpOworICAgICAgICBp
ZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hh
cjgqPihmb250RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5v
dCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udEZpbGVuYW1lLmdldCgpKTsgCisgICAgfQorCisgICAg
Ly8gQSBmb250IHdpdGggbm8gdmFsaWQgRm9udGNvbmZpZyBlbmNvZGluZyB0byB0ZXN0IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ1MgorICAgIEdVbmlxdWVQdHI8
Z2NoYXI+IGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShG
T05UU19DT05GX0RJUiwgIkZvbnRXaXRoTm9WYWxpZEVuY29kaW5nLmZvbiIsIG51bGxwdHIpKTsK
KyAgICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0
PEZjQ2hhcjgqPihmb250V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lLmdldCgpKSkpCisgICAg
ICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFdpdGhOb1ZhbGlk
RW5jb2RpbmdGaWxlbmFtZS5nZXQoKSk7IAorCisgICAgaWYgKCFGY0NvbmZpZ1NldEN1cnJlbnQo
Y29uZmlnKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IHNldCB0aGUgY3VycmVudCBmb250
IGNvbmZpZ3VyYXRpb24hIik7CisKKyAgICBudW1Gb250cyA9IEZjQ29uZmlnR2V0Rm9udHMoY29u
ZmlnLCBGY1NldEFwcGxpY2F0aW9uKS0+bmZvbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvSW5q
ZWN0ZWRCdW5kbGVXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4yNDA4MWZmM2EyOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgorCitu
YW1lc3BhY2UgV1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1Jbml0aWFsaXpl
KFdLVHlwZVJlZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZjE0ZmZkZDA1Ngot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
d3BlL1Rlc3RSdW5uZXJXUEUuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlRlc3RSdW5uZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5nUmVmKQor
eworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVz
dFJ1bm5lcjo6aW5zcGVjdG9yVGVzdFN0dWJVUkwoKQoreworICAgIHJldHVybiBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiIik7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW52YWxpZGF0
ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkKK3sKKyAgICBtX3dhaXRUb0R1bXBXYXRjaGRvZ1Rp
bWVyLnN0b3AoKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQor
eworfQorCit2b2lkIFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1l
cklmTmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydE9uZVNob3QobV90
aW1lb3V0IC8gMTAwMC4wKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi40YTg2MmQ2OWFmYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NyBAQAorZmluZF9wYWNrYWdl
KExpYkdCTSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1lc2EgUkVRVUlSRUQp
CisKK2FkZF9jdXN0b21fdGFyZ2V0KFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJz
CisgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9n
ZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtXRUJLSVRfVEVT
VFJVTk5FUl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9y
bSB3cGUKKykKKworc2V0KEZvcndhcmRpbmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5lcl9OQU1F
IFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzKQorCitsaXN0KEFQUEVORCBXZWJL
aXRUZXN0UnVubmVyX1NPVVJDRVMKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vY2Fpcm8v
VGVzdEludm9jYXRpb25DYWlyby5jcHAKKworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93
cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0v
d3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9
L3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9
L3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0v
d3BlL21haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5DTFVERV9E
SVJFQ1RPUklFUworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9JbmplY3RlZEJ1bmRsZS93
cGUKKyAgICAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtDQUlST19JTkNMVURFX0RJ
UlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0xJQkdCTV9JTkNMVURFX0RJUlN9
CisgICAgJHtXUEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRl
c3RSdW5uZXJfTElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJ
QlJBUklFU30KKyAgICAke0xJQkdCTV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTUVTQV9MSUJSQVJJ
RVN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9TT1VS
Q0VTCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVD
VEVEQlVORExFX0RJUn0vd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwCisgICAgJHtX
RUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY3RpdmF0ZUZvbnRzV1BF
LmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvSW5q
ZWN0ZWRCdW5kbGVXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRM
RV9ESVJ9L3dwZS9UZXN0UnVubmVyV1BFLmNwcAorKQorCithZGRfZGVmaW5pdGlvbnMoCisgICAg
LURGT05UU19DT05GX0RJUj0iJHtUT09MU19ESVJ9L1dlYktpdFRlc3RSdW5uZXIvZ3RrL2ZvbnRz
IgorICAgIC1EVE9QX0xFVkVMX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IDBmMTU4NjEzZDJhLi44N2U4Zjdk
YTYwNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC01MCw2
ICs1MCwxMSBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdldDsKIHR5cGVkZWYg
V0tWaWV3UmVmIFBsYXRmb3JtV0tWaWV3OwogdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2lu
ZG93OwogdHlwZWRlZiBjYWlyb19zdXJmYWNlX3QgKlBsYXRmb3JtSW1hZ2U7CisjZWxpZiBQTEFU
Rk9STShXUEUpCitjbGFzcyBIZWFkbGVzc1ZpZXdCYWNrZW5kOwordHlwZWRlZiBXS1ZpZXdSZWYg
UGxhdGZvcm1XS1ZpZXc7Cit0eXBlZGVmIEhlYWRsZXNzVmlld0JhY2tlbmQqIFBsYXRmb3JtV2lu
ZG93OwordHlwZWRlZiBjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtSW1hZ2U7CiAjZW5kaWYKIAog
bmFtZXNwYWNlIFdUUiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDFjZGY3YjA3YTAxLi5hZmRkOWE4MjJkZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTc2OCw3ICs3NjgsNyBAQCBib29sIFRlc3RDb250cm9s
bGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRp
b25zKQogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBkb2luZyB0aGlzLCBpdCBzaG91bGQgcHJvYmFi
bHkgYmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAgdG9vLgogICAgIHJlc2V0UHJlZmVyZW5jZXNU
b0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYg
IVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIFdLVGV4dENoZWNrZXJDb250
aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQ
RS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTFlZTBmYzJlNTYKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclBy
b3h5V1BFLmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXZl
bnRTZW5kZXJQcm94eS5oIgorCituYW1lc3BhY2UgV1RSIHsKKworRXZlbnRTZW5kZXJQcm94eTo6
RXZlbnRTZW5kZXJQcm94eShUZXN0Q29udHJvbGxlciogdGVzdENvbnRyb2xsZXIpCisgICAgOiBt
X3Rlc3RDb250cm9sbGVyKHRlc3RDb250cm9sbGVyKQorICAgICwgbV90aW1lKDApCisgICAgLCBt
X2xlZnRNb3VzZUJ1dHRvbkRvd24oZmFsc2UpCisgICAgLCBtX2NsaWNrQ291bnQoMCkKKyAgICAs
IG1fY2xpY2tUaW1lKDApCisgICAgLCBtX2NsaWNrQnV0dG9uKGtXS0V2ZW50TW91c2VCdXR0b25O
b0J1dHRvbikKK3sKK30KKworRXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkoKQor
eworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRG93bih1bnNpZ25lZCwgV0tFdmVu
dE1vZGlmaWVycykKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVVwKHVuc2ln
bmVkLCBXS0V2ZW50TW9kaWZpZXJzKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1v
dXNlTW92ZVRvKGRvdWJsZSwgZG91YmxlKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6
Om1vdXNlU2Nyb2xsQnkoaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQsIGlu
dCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxC
eShpbnQsIGludCwgYm9vbCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9y
d2FyZChpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmlu
Z1JlZiwgV0tFdmVudE1vZGlmaWVycywgdW5zaWduZWQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6YWRkVG91Y2hQb2ludChpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRl
clByb3h5Ojp1cGRhdGVUb3VjaFBvaW50KGludCwgaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZl
bnRTZW5kZXJQcm94eTo6c2V0VG91Y2hNb2RpZmllcihXS0V2ZW50TW9kaWZpZXJzLCBib29sKQor
eworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNldFRvdWNoUG9pbnRSYWRpdXMoaW50LCBp
bnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hTdGFydCgpCit7Cit9CisK
K3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hNb3ZlKCkKK3sKK30KKwordm9pZCBFdmVudFNl
bmRlclByb3h5Ojp0b3VjaEVuZCgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91
Y2hDYW5jZWwoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNsZWFyVG91Y2hQb2lu
dHMoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBvaW50KGlu
dCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50KGludCkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi41NjBiNDBhM2VmYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCkBAIC0wLDAgKzEsMjUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisKKyNpbmNs
dWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisK
Ky8vIEZJWE1FOiBEZXBsb3kgZ29vZCBwcmFjdGljZXMgYW5kIGNsZWFuIHVwIEdCTSByZXNvdXJj
ZXMgYXQgcHJvY2VzcyBleGl0Lgorc3RhdGljIEVHTERpc3BsYXkgZ2V0RUdMRGlzcGxheSgpCit7
CisgICAgc3RhdGljIEVHTERpc3BsYXkgc19kaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7CisgICAg
aWYgKHNfZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgeworICAgICAgICBpbnQgZmQgPSBvcGVu
KCIvZGV2L2RyaS9yZW5kZXJEMTI4IiwgT19SRFdSIHwgT19DTE9FWEVDIHwgT19OT0NUVFkgfCBP
X05PTkJMT0NLKTsKKyAgICAgICAgaWYgKGZkIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBFR0xf
Tk9fRElTUExBWTsKKworICAgICAgICBzdHJ1Y3QgZ2JtX2RldmljZSogZGV2aWNlID0gZ2JtX2Ny
ZWF0ZV9kZXZpY2UoZmQpOworICAgICAgICBpZiAoIWRldmljZSkKKyAgICAgICAgICAgIHJldHVy
biBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBlZ2xHZXRE
aXNwbGF5KGRldmljZSk7CisgICAgICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQor
ICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIGlmICghZWdsSW5p
dGlhbGl6ZShkaXNwbGF5LCBudWxscHRyLCBudWxscHRyKSkKKyAgICAgICAgICAgIHJldHVybiBF
R0xfTk9fRElTUExBWTsKKworICAgICAgICBpZiAoIWVnbEJpbmRBUEkoRUdMX09QRU5HTF9FU19B
UEkpKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIHNfZGlz
cGxheSA9IGRpc3BsYXk7CisgICAgfQorCisgICAgcmV0dXJuIHNfZGlzcGxheTsKK30KKworSGVh
ZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFja2VuZCgpCit7CisgICAgbV9lZ2wuZGlz
cGxheSA9IGdldEVHTERpc3BsYXkoKTsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29uZmln
QXR0cmlidXRlc1sxM10gPSB7CisgICAgICAgIEVHTF9TVVJGQUNFX1RZUEUsIEVHTF9XSU5ET1df
QklULAorICAgICAgICBFR0xfUkVEX1NJWkUsIDEsCisgICAgICAgIEVHTF9HUkVFTl9TSVpFLCAx
LAorICAgICAgICBFR0xfQkxVRV9TSVpFLCAxLAorICAgICAgICBFR0xfQUxQSEFfU0laRSwgMSwK
KyAgICAgICAgRUdMX1JFTkRFUkFCTEVfVFlQRSwgRUdMX09QRU5HTF9FUzJfQklULAorICAgICAg
ICBFR0xfTk9ORQorICAgIH07CisKKyAgICBFR0xpbnQgbnVtQ29uZmlnczsKKyAgICBFR0xCb29s
ZWFuIHJldCA9IGVnbENob29zZUNvbmZpZyhtX2VnbC5kaXNwbGF5LCBjb25maWdBdHRyaWJ1dGVz
LCAmbV9lZ2wuY29uZmlnLCAxLCAmbnVtQ29uZmlncyk7CisgICAgaWYgKCFyZXQgfHwgIW51bUNv
bmZpZ3MpCisgICAgICAgIHJldHVybjsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29udGV4
dEF0dHJpYnV0ZXNbM10gPSB7CisgICAgICAgIEVHTF9DT05URVhUX0NMSUVOVF9WRVJTSU9OLCAy
LAorICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAgICBtX2VnbC5jb250ZXh0ID0gZWdsQ3Jl
YXRlQ29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb25maWcsIEVHTF9OT19DT05URVhULCBj
b250ZXh0QXR0cmlidXRlcyk7CisgICAgaWYgKG1fZWdsLmNvbnRleHQgPT0gRUdMX05PX0NPTlRF
WFQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlz
cGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0KSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9lZ2wuY3JlYXRlSW1hZ2UgPSByZWludGVycHJldF9jYXN0
PFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbENyZWF0ZUlt
YWdlS0hSIikpOworICAgIG1fZWdsLmRlc3Ryb3lJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZO
RUdMREVTVFJPWUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbERlc3Ryb3lJbWFn
ZUtIUiIpKTsKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRleHR1cmUyRE9FUyA9IHJlaW50ZXJwcmV0
X2Nhc3Q8UEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0M+KGVnbEdldFByb2NBZGRy
ZXNzKCJnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTIikpOworCisgICAgbV9leHBvcnRhYmxl
ID0gd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jcmVhdGUoJnNfZXhw
b3J0YWJsZUNsaWVudCwgdGhpcyk7CisKKyAgICBtX3VwZGF0ZVNvdXJjZSA9IGdfdGltZW91dF9z
b3VyY2VfbmV3KG1fZnJhbWVSYXRlIC8gMTAwMCk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNr
KG1fdXBkYXRlU291cmNlLAorICAgICAgICBbXShncG9pbnRlciBkYXRhKSAtPiBnYm9vbGVhbiB7
CisgICAgICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0Jh
Y2tlbmQqPihkYXRhKTsKKyAgICAgICAgICAgIGJhY2tlbmQucGVyZm9ybVVwZGF0ZSgpOworICAg
ICAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgIH0sIHRoaXMsIG51bGxwdHIpOworICAgIGdf
c291cmNlX2F0dGFjaChtX3VwZGF0ZVNvdXJjZSwgZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpKTsK
K30KKworSGVhZGxlc3NWaWV3QmFja2VuZDo6fkhlYWRsZXNzVmlld0JhY2tlbmQoKQoreworICAg
IGlmIChtX3VwZGF0ZVNvdXJjZSkKKyAgICAgICAgZ19zb3VyY2VfZGVzdHJveShtX3VwZGF0ZVNv
dXJjZSk7CisKKyAgICBpZiAoYXV0byBpbWFnZSA9IHN0ZDo6Z2V0PDA+KG1fcGVuZGluZ0ltYWdl
LnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFn
ZSk7CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29u
ZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7CisK
KyAgICBmb3IgKGF1dG8gaXQgOiBtX2V4cG9ydE1hcCkgeworICAgICAgICBpbnQgZmQgPSBpdC5z
ZWNvbmQ7CisgICAgICAgIGlmIChmZCA+PSAwKQorICAgICAgICAgICAgY2xvc2UoZmQpOworICAg
IH0KKworICAgIGlmIChtX2VnbC5jb250ZXh0KQorICAgICAgICBlZ2xEZXN0cm95Q29udGV4dCht
X2VnbC5kaXNwbGF5LCBtX2VnbC5jb250ZXh0KTsKK30KKworc3RydWN0IHdwZV92aWV3X2JhY2tl
bmQqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmJhY2tlbmQoKSBjb25zdAoreworICAgIHJldHVybiB3
cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2dldF92aWV3X2JhY2tlbmQo
bV9leHBvcnRhYmxlKTsKK30KKworY2Fpcm9fc3VyZmFjZV90KiBIZWFkbGVzc1ZpZXdCYWNrZW5k
OjpjcmVhdGVTbmFwc2hvdCgpCit7CisgICAgcGVyZm9ybVVwZGF0ZSgpOworCisgICAgRUdMSW1h
Z2VLSFIgaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisgICAgaWYg
KCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB1aW50MzJfdCB3aWR0aCA9
IHN0ZDo6Z2V0PDE+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKyAgICB1aW50MzJfdCBoZWlnaHQg
PSBzdGQ6OmdldDwyPihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisKKyAgICB1aW50OF90KiBidWZm
ZXIgPSBuZXcgdWludDhfdFs0ICogd2lkdGggKiBoZWlnaHRdOworICAgIGJvb2wgc3VjY2Vzc2Z1
bFNuYXBzaG90ID0gZmFsc2U7CisKKyAgICBtYWtlQ3VycmVudCgpOworCisgICAgR0x1aW50IGlt
YWdlVGV4dHVyZTsKKyAgICBnbEdlblRleHR1cmVzKDEsICZpbWFnZVRleHR1cmUpOworICAgIGds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgaW1hZ2VUZXh0dXJlKTsKKyAgICBnbFRleFBhcmFt
ZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOwor
ICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIs
IEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRV
UkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVY
VFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsVGV4
SW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBHTF9CR1JBX0VYVCwgd2lkdGgsIGhlaWdodCwgMCwg
R0xfQkdSQV9FWFQsIEdMX1VOU0lHTkVEX0JZVEUsIG51bGxwdHIpOworCisgICAgbV9lZ2wuaW1h
Z2VUYXJnZXRUZXh0dXJlMkRPRVMoR0xfVEVYVFVSRV8yRCwgaW1hZ2UpOworICAgIGdsQmluZFRl
eHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CisKKyAgICBHTHVpbnQgaW1hZ2VGcmFtZWJ1ZmZlcjsK
KyAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xCaW5k
RnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGltYWdlRnJhbWVidWZmZXIpOworICAgIGdsRnJh
bWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBH
TF9URVhUVVJFXzJELCBpbWFnZVRleHR1cmUsIDApOworCisgICAgZ2xGbHVzaCgpOworICAgIGlm
IChnbENoZWNrRnJhbWVidWZmZXJTdGF0dXMoR0xfRlJBTUVCVUZGRVIpID09IEdMX0ZSQU1FQlVG
RkVSX0NPTVBMRVRFKSB7CisgICAgICAgIGdsUmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0
LCBHTF9CR1JBX0VYVCwgR0xfVU5TSUdORURfQllURSwgYnVmZmVyKTsKKyAgICAgICAgc3VjY2Vz
c2Z1bFNuYXBzaG90ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9G
UkFNRUJVRkZFUiwgMCk7CisgICAgZ2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJmltYWdlRnJhbWVi
dWZmZXIpOworICAgIGdsRGVsZXRlVGV4dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisKKyAgICBp
ZiAoIXN1Y2Nlc3NmdWxTbmFwc2hvdCkgeworICAgICAgICBkZWxldGVbXSBidWZmZXI7CisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VT
dXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyLAorICAg
ICAgICBDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0LCBjYWlyb19mb3JtYXRfc3Ry
aWRlX2Zvcl93aWR0aChDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCkpOworICAgIGNhaXJvX3N1
cmZhY2VfbWFya19kaXJ0eShpbWFnZVN1cmZhY2UpOworCisgICAgc3RhdGljIGNhaXJvX3VzZXJf
ZGF0YV9rZXlfdCBidWZmZXJLZXk7CisgICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKGlt
YWdlU3VyZmFjZSwgJmJ1ZmZlcktleSwgYnVmZmVyLAorICAgICAgICBbXSh2b2lkKiBkYXRhKSB7
CisgICAgICAgICAgICBhdXRvKiBidWZmZXIgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGF0YSk7
CisgICAgICAgICAgICBkZWxldGVbXSBidWZmZXI7CisgICAgICAgIH0pOworCisgICAgcmV0dXJu
IGltYWdlU3VyZmFjZTsKK30KKworYm9vbCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjptYWtlQ3VycmVu
dCgpCit7CisgICAgcmV0dXJuIGVnbE1ha2VDdXJyZW50KG1fZWdsLmRpc3BsYXksIEVHTF9OT19T
VVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgbV9lZ2wuY29udGV4dCk7Cit9CisKK3ZvaWQgSGVhZGxl
c3NWaWV3QmFja2VuZDo6cGVyZm9ybVVwZGF0ZSgpCit7CisgICAgaWYgKCFtX3BlbmRpbmdJbWFn
ZS5maXJzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4
cG9ydGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9mcmFtZV9jb21wbGV0ZShtX2V4cG9ydGFibGUpOwor
ICAgIGlmIChtX2xvY2tlZEltYWdlLmZpcnN0KSB7CisgICAgICAgIHdwZV9tZXNhX3ZpZXdfYmFj
a2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZGlzcGF0Y2hfcmVsZWFzZV9idWZmZXIobV9leHBvcnRh
YmxlLCBtX2xvY2tlZEltYWdlLmZpcnN0KTsKKyAgICAgICAgbV9lZ2wuZGVzdHJveUltYWdlKG1f
ZWdsLmRpc3BsYXksIHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSk7CisgICAgfQor
CisgICAgbV9sb2NrZWRJbWFnZSA9IG1fcGVuZGluZ0ltYWdlOworICAgIG1fcGVuZGluZ0ltYWdl
ID0gc3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwg
dWludDMyX3Q+PiB7IH07Cit9CisKK3N0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0
YWJsZV9kbWFfYnVmX2NsaWVudCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpzX2V4cG9ydGFibGVDbGll
bnQgPSB7CisgICAgLy8gZXhwb3J0X2RtYV9idWYKKyAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qg
d3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kYXRhKiBpbWFnZURhdGEp
CisgICAgeworICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmll
d0JhY2tlbmQqPihkYXRhKTsKKworICAgICAgICBhdXRvIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1h
cC5lbmQoKTsKKyAgICAgICAgaWYgKGltYWdlRGF0YS0+ZmQgPj0gMCkgeworICAgICAgICAgICAg
YXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSkgPT0gYmFj
a2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisKKyAgICAgICAgICAgIGl0ID0gYmFja2VuZC5tX2V4
cG9ydE1hcC5pbnNlcnQoeyBpbWFnZURhdGEtPmhhbmRsZSwgaW1hZ2VEYXRhLT5mZCB9KS5maXJz
dDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydChiYWNrZW5kLm1fZXhwb3J0
TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkp
OworICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5o
YW5kbGUpOworICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0KGl0ICE9IGJhY2tlbmQubV9leHBv
cnRNYXAuZW5kKCkpOworICAgICAgICB1aW50MzJfdCBoYW5kbGUgPSBpdC0+Zmlyc3Q7CisgICAg
ICAgIGludDMyX3QgZmQgPSBpdC0+c2Vjb25kOworCisgICAgICAgIGJhY2tlbmQubWFrZUN1cnJl
bnQoKTsKKworICAgICAgICBFR0xpbnQgYXR0cmlidXRlc1tdID0geworICAgICAgICAgICAgRUdM
X1dJRFRILCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+d2lkdGgpLAorICAgICAgICAg
ICAgRUdMX0hFSUdIVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPmhlaWdodCksCisg
ICAgICAgICAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19FWFQsIHN0YXRpY19jYXN0PEVHTGludD4o
aW1hZ2VEYXRhLT5mb3JtYXQpLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VY
VCwgZmQsCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfT0ZGU0VUX0VYVCwgMCwKKyAg
ICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9QSVRDSF9FWFQsIHN0YXRpY19jYXN0PEVHTGlu
dD4oaW1hZ2VEYXRhLT5zdHJpZGUpLAorICAgICAgICAgICAgRUdMX05PTkUsCisgICAgICAgIH07
CisgICAgICAgIEVHTEltYWdlS0hSIGltYWdlID0gYmFja2VuZC5tX2VnbC5jcmVhdGVJbWFnZShi
YWNrZW5kLm1fZWdsLmRpc3BsYXksIEVHTF9OT19DT05URVhULCBFR0xfTElOVVhfRE1BX0JVRl9F
WFQsIG51bGxwdHIsIGF0dHJpYnV0ZXMpOworICAgICAgICBiYWNrZW5kLm1fcGVuZGluZ0ltYWdl
ID0geyBpbWFnZURhdGEtPmhhbmRsZSwgc3RkOjptYWtlX3R1cGxlKGltYWdlLCBpbWFnZURhdGEt
PndpZHRoLCBpbWFnZURhdGEtPmhlaWdodCkgfTsKKyAgICB9LAorfTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjIxODYxMjFhOGMKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKQEAgLTAsMCAr
MSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGdibS5oPgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4K
KyNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjaW5jbHVk
ZSA8R0xFUzIvZ2wyZXh0Lmg+CisjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDxnbGliLmg+
CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx3cGUtbWVzYS92aWV3LWJhY2tl
bmQtZXhwb3J0YWJsZS1kbWEtYnVmLmg+CisKK2NsYXNzIEhlYWRsZXNzVmlld0JhY2tlbmQgewor
cHVibGljOgorICAgIEhlYWRsZXNzVmlld0JhY2tlbmQoKTsKKyAgICB+SGVhZGxlc3NWaWV3QmFj
a2VuZCgpOworCisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQoKSBjb25zdDsK
KworICAgIGNhaXJvX3N1cmZhY2VfdCogY3JlYXRlU25hcHNob3QoKTsKKworcHJpdmF0ZToKKyAg
ICBib29sIG1ha2VDdXJyZW50KCk7CisgICAgdm9pZCBwZXJmb3JtVXBkYXRlKCk7CisKKyAgICBz
dGF0aWMgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY2xp
ZW50IHNfZXhwb3J0YWJsZUNsaWVudDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIEVHTERpc3Bs
YXkgZGlzcGxheTsKKyAgICAgICAgRUdMQ29uZmlnIGNvbmZpZzsKKyAgICAgICAgRUdMQ29udGV4
dCBjb250ZXh0OworCisgICAgICAgIFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQyBjcmVhdGVJbWFn
ZTsKKyAgICAgICAgUEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQyBkZXN0cm95SW1hZ2U7CisgICAg
ICAgIFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJFMkRPRVNQUk9DIGltYWdlVGFyZ2V0VGV4dHVy
ZTJET0VTOworICAgIH0gbV9lZ2w7CisKKyAgICBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5k
X2V4cG9ydGFibGVfZG1hX2J1ZiogbV9leHBvcnRhYmxlOworCisgICAgc3RkOjp1bm9yZGVyZWRf
bWFwPHVpbnQzMl90LCBpbnQzMl90PiBtX2V4cG9ydE1hcDsKKyAgICBzdGQ6OnBhaXI8dWludDMy
X3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fcGVuZGlu
Z0ltYWdlIHsgfTsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VL
SFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fbG9ja2VkSW1hZ2UgeyB9OworCisgICAgR1NvdXJj
ZSogbV91cGRhdGVTb3VyY2U7CisgICAgZ2ludDY0IG1fZnJhbWVSYXRlIHsgR19VU0VDX1BFUl9T
RUMgLyA2MCB9OworfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Bs
YXRmb3JtV2ViVmlld1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9y
bVdlYlZpZXdXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45
MTY4YTkzNGMxMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3Bl
L1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorCisjaW5jbHVkZSAiSGVhZGxlc3NWaWV3QmFj
a2VuZC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0ltYWdlQ2Fpcm8uaD4KKyNpbmNsdWRlIDxjYWly
by5oPgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZv
cm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVGVz
dE9wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBtX3dpbmRvd0lzS2V5KHRydWUpCisgICAgLCBtX29w
dGlvbnMob3B0aW9ucykKK3sKKyAgICBtX3dpbmRvdyA9IG5ldyBIZWFkbGVzc1ZpZXdCYWNrZW5k
OworICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChtX3dpbmRvdy0+YmFj
a2VuZCgpLCBjb25maWd1cmF0aW9uKTsKK30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1X
ZWJWaWV3KCkKK3sKKyAgICBkZWxldGUgbV93aW5kb3c7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJW
aWV3OjpyZXNpemVUbyh1bnNpZ25lZCwgdW5zaWduZWQsIFdlYlZpZXdTaXppbmdNb2RlKQorewor
fQorCitXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdlKCkKK3sKKyAgICByZXR1cm4gV0tW
aWV3R2V0UGFnZShtX3ZpZXcpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQor
eworfQorCitXS1JlY3QgUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dGcmFtZSgpCit7CisgICAgcmV0
dXJuIFdLUmVjdCB7IDAsIDAsIDEsIDEgfTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNl
dFdpbmRvd0ZyYW1lKFdLUmVjdCwgV2ViVmlld1NpemluZ01vZGUpCit7Cit9CisKK3ZvaWQgUGxh
dGZvcm1XZWJWaWV3OjpkaWRJbml0aWFsaXplQ2xpZW50cygpCit7Cit9CisKK3ZvaWQgUGxhdGZv
cm1XZWJWaWV3OjphZGRDaHJvbWVJbnB1dEZpZWxkKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdl
YlZpZXc6OnJlbW92ZUNocm9tZUlucHV0RmllbGQoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2Vi
Vmlldzo6YWRkVG9XaW5kb3coKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVtb3Zl
RnJvbVdpbmRvdygpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dJc0tl
eShib29sIHdpbmRvd0lzS2V5KQoreworICAgIG1fd2luZG93SXNLZXkgPSB3aW5kb3dJc0tleTsK
K30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6Om1ha2VXZWJWaWV3Rmlyc3RSZXNwb25kZXIoKQor
eworfQorCitjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJ
bWFnZSgpCit7CisgICAgeworICAgICAgICBzdHJ1Y3QgVGltZW91dFRpbWVyIHsKKyAgICAgICAg
ICAgIFRpbWVvdXRUaW1lcigpCisgICAgICAgICAgICAgICAgOiB0aW1lcihSdW5Mb29wOjptYWlu
KCksIHRoaXMsICZUaW1lb3V0VGltZXI6OmZpcmVkKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIHRpbWVyLnN0YXJ0T25lU2hvdCgxLjAgLyA2MCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIHZvaWQgZmlyZWQoKSB7IFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7IH0KKyAgICAg
ICAgICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVvdXRUaW1lcj4gdGltZXI7CisgICAgICAgIH0gdGlt
ZW91dFRpbWVyOworCisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5ydW4oKTsKKyAgICB9CisKKyAg
ICBjYWlyb19zdXJmYWNlX3QqIGltYWdlU3VyZmFjZSA9IG1fd2luZG93LT5jcmVhdGVTbmFwc2hv
dCgpOworICAgIHJldHVybiBpbWFnZVN1cmZhY2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3
OjpjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0KQoreworfQorCit2b2lkIFBsYXRmb3Jt
V2ViVmlldzo6c2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKQoreworfQorCitib29s
IFBsYXRmb3JtV2ViVmlldzo6dmlld1N1cHBvcnRzT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpm
b3JjZVdpbmRvd0ZyYW1lc0NoYW5nZWQoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGNjM2RlZGU5ODYKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5j
cHAKQEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RDb250cm9s
bGVyLmgiCisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgeworCit2b2lk
IFRlc3RDb250cm9sbGVyOjpub3RpZnlEb25lKCkKK3sKKyAgICBSdW5Mb29wOjptYWluKCkuc3Rv
cCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRIaWRkZW4oYm9vbCkKK3sKK30KKwor
dm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworV0tQcmVm
ZXJlbmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygpCit7CisgICAg
cmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdlR3JvdXAuZ2V0KCkpOworfQor
Cit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorCit2b2lkIFRl
c3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCkKK3sKK30KKworc3RhdGlj
IEdNYWluQ29udGV4dCogdGhyZWFkRGVmYXVsdENvbnRleHQoKQoreworICAgIGlmIChHTWFpbkNv
bnRleHQqIGNvbnRleHQgPSBnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSkKKyAg
ICAgICAgcmV0dXJuIGNvbnRleHQ7CisgICAgcmV0dXJuIGdfbWFpbl9jb250ZXh0X2RlZmF1bHQo
KTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBjb25k
aXRpb24sIGRvdWJsZSB0aW1lb3V0KQoreworICAgIHN0cnVjdCBUaW1lb3V0VGltZXIgeworICAg
ICAgICBUaW1lb3V0VGltZXIoKQorICAgICAgICAgICAgOiB0aW1lcihSdW5Mb29wOjptYWluKCks
IHRoaXMsICZUaW1lb3V0VGltZXI6OmZpcmVkKQorICAgICAgICB7IH0KKworICAgICAgICB2b2lk
IGZpcmVkKCkgeyBSdW5Mb29wOjptYWluKCkuc3RvcCgpOyB9CisgICAgICAgIFJ1bkxvb3A6OlRp
bWVyPFRpbWVvdXRUaW1lcj4gdGltZXI7CisgICAgfSB0aW1lb3V0VGltZXI7CisKKyAgICB0aW1l
b3V0VGltZXIudGltZXIuc2V0UHJpb3JpdHkoR19QUklPUklUWV9ERUZBVUxUX0lETEUpOworICAg
IGlmICh0aW1lb3V0ID49IDApCisgICAgICAgIHRpbWVvdXRUaW1lci50aW1lci5zdGFydE9uZVNo
b3QodGltZW91dCk7CisKKyAgICBSdW5Mb29wOjptYWluKCkucnVuKCk7CisKKyAgICB0aW1lb3V0
VGltZXIudGltZXIuc3RvcCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURp
ZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYpCit7Cit9CisKK3N0YXRp
YyBjaGFyKiBnZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKGNvbnN0IGNoYXIqIHZh
cmlhYmxlTmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZhcmlhYmxl
TmFtZSk7CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIGVu
dmlyb25tZW50IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAgICAg
ZXhpdCgwKTsKKyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBnX2Zp
bGVuYW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKwordm9p
ZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7CisgICAg
R1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdldEVudmlyb25tZW50VmFyaWFibGVBc1VURjhTdHJpbmco
IlRFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSIpKTsKKyAgICBtX2luamVjdGVk
QnVuZGxlUGF0aC5hZG9wdChXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhwYXRoLmdldCgp
KSk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemVUZXN0UGx1Z2luRGlyZWN0
b3J5KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoUGxhdGZvcm1XZWJW
aWV3KikKK3sKK30KKworV0tDb250ZXh0UmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbnRl
eHQoKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitjb25zdCBjaGFyKiBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcoKQoreworICAgIHJldHVybiBudWxs
cHRyOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpZXdGb3JU
ZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6
cGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkKK3sKK30KKwordm9p
ZCBUZXN0Q29udHJvbGxlcjo6dXBkYXRlUGxhdGZvcm1TcGVjaWZpY1Rlc3RPcHRpb25zRm9yVGVz
dChUZXN0T3B0aW9ucyYsIGNvbnN0IHN0ZDo6c3RyaW5nJikgY29uc3QKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9tYWlu
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42Y2YyYjdmZjMyMQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwCkBAIC0wLDAgKzEsMzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKworaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIFdUUjo6VGVzdENvbnRyb2xsZXIgY29udHJvbGxl
cihhcmdjLCBjb25zdF9jYXN0PGNvbnN0IGNoYXIqKj4oYXJndikpOworICAgIHJldHVybiAwOwor
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIgYi9Ub29scy9qaGJ1
aWxkL2poYnVpbGQtd3JhcHBlcgppbmRleCBmNmM0MDNkMzFiMC4uZTNlZWNkZmNlODcgMTAwNzU1
Ci0tLSBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCisrKyBiL1Rvb2xzL2poYnVpbGQv
amhidWlsZC13cmFwcGVyCkBAIC0zMSw2ICszMSw4IEBAIGRlZiBkZXRlcm1pbmVfcGxhdGZvcm0o
KToKICAgICAgICAgcmV0dXJuICJlZmwiOwogICAgIGlmICctLWd0aycgaW4gc3lzLmFyZ3Y6CiAg
ICAgICAgIHJldHVybiAiZ3RrIjsKKyAgICBpZiAnLS13cGUnIGluIHN5cy5hcmd2OgorICAgICAg
ICByZXR1cm4gIndwZSIKICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBwbGF0Zm9ybSBzcGVjaWZp
ZWQgZm9yIGpoYnVpbGQtd3JhcHBlci4nKQogCiB0cnk6CmRpZmYgLS1naXQgYS9Ub29scy93cGUv
Z2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSBiL1Rvb2xzL3dwZS9nZW5l
cmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAwMDAwLi43OGYxNDEwNjk4MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5CkBAIC0wLDAgKzEs
NzYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlh
IFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGdsb2IKK2ltcG9ydCBvcworaW1wb3J0
IHN5cworCitDT01QUkVTU0lCTEVfRVhURU5TSU9OUyA9IFsnLmh0bWwnLCAnLmpzJywgJy5jc3Mn
LCAnLnN2ZyddCitCQVNFX0RJUiA9ICdXZWJJbnNwZWN0b3JVSS8nCisKKworZGVmIGdldF9maWxl
bmFtZXMoYXJncyk6CisgICAgZmlsZW5hbWVzID0gW10KKworICAgIGZvciBwYXR0ZXJuIGluIGFy
Z3M6CisgICAgICAgIHBhdGhzID0gZ2xvYi5nbG9iKHBhdHRlcm4pCisgICAgICAgIGZvciBmaWxl
bmFtZSBpbiBwYXRoczoKKyAgICAgICAgICAgIGJhc2VfZGlyX2luZGV4ID0gZmlsZW5hbWUucmZp
bmQoQkFTRV9ESVIpCisgICAgICAgICAgICBpZiBiYXNlX2Rpcl9pbmRleCAhPSAtMToKKyAgICAg
ICAgICAgICAgICBuYW1lID0gZmlsZW5hbWVbYmFzZV9kaXJfaW5kZXggKyBsZW4oQkFTRV9ESVIp
Ol0KKyAgICAgICAgICAgICAgICAjIFRoZSByZXN1bHQgc2hvdWxkIHVzZSBmb3J3YXJkIHNsYXNo
ZXMsIHRodXMgbWFrZSBzdXJlIGFueSBvcy1zcGVjaWZpYworICAgICAgICAgICAgICAgICMgc2Vw
YXJhdG9yLCBhZGRlZCBieSB0aGUgZ2xvYi5nbG9iKCkgY2FsbCwgaXMgcHJvcGVybHkgcmVwbGFj
ZWQKKyAgICAgICAgICAgICAgICBpZiBvcy5zZXAgIT0gJy8nOgorICAgICAgICAgICAgICAgICAg
ICBuYW1lID0gbmFtZS5yZXBsYWNlKG9zLnNlcCwgJy8nKQorICAgICAgICAgICAgICAgIGZpbGVu
YW1lcy5hcHBlbmQobmFtZSkKKyAgICByZXR1cm4gZmlsZW5hbWVzCisKKworZGVmIGlzX2NvbXBy
ZXNzaWJsZShmaWxlbmFtZSk6CisgICAgcmV0dXJuIG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUp
WzFdIGluIENPTVBSRVNTSUJMRV9FWFRFTlNJT05TCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFp
bl9fIjoKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0n
R2VuZXJhdGUgYSBHUmVzb3VyY2VzIGZpbGUgZm9yIHRoZSBpbnNwZWN0b3IuJykKKyAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KCctLW91dHB1dCcsIG5hcmdzPSc/JywgdHlwZT1hcmdwYXJzZS5GaWxl
VHlwZSgndycpLCBkZWZhdWx0PXN5cy5zdGRvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSd0aGUgb3V0cHV0IGZpbGUnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2ZpbGVuYW1l
cycsIG1ldGF2YXI9J0ZJTEVTJywgbmFyZ3M9JysnLAorICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0ndGhlIGxpc3Qgb2YgZmlsZXMgdG8gaW5jbHVkZScpCisKKyAgICBhcmdzID0gcGFyc2Vy
LnBhcnNlX2FyZ3Moc3lzLmFyZ3ZbMTpdKQorCisgICAgYXJncy5vdXRwdXQud3JpdGUoXAorICAg
ICIiIjw/eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVURi04Pz4KKyAgICA8Z3Jlc291cmNlcz4K
KyAgICAgICAgPGdyZXNvdXJjZSBwcmVmaXg9Ii9vcmcvd3BlL2luc3BlY3RvciI+CisiIiIpCisK
KyAgICBmb3IgZmlsZW5hbWUgaW4gZ2V0X2ZpbGVuYW1lcyhhcmdzLmZpbGVuYW1lcyk6CisgICAg
ICAgIGxpbmUgPSAnICAgICAgICAgICAgPGZpbGUnCisgICAgICAgIGlmIGlzX2NvbXByZXNzaWJs
ZShmaWxlbmFtZSk6CisgICAgICAgICAgICBsaW5lICs9ICcgY29tcHJlc3NlZD0idHJ1ZSInCisg
ICAgICAgIGlmICdJbWFnZXMvZ3RrLycgaW4gZmlsZW5hbWU6CisgICAgICAgICAgICBsaW5lICs9
ICcgYWxpYXM9IiVzIicgJSBmaWxlbmFtZS5yZXBsYWNlKCdndGsvJywgJycpCisgICAgICAgIGxp
bmUgKz0gJz4lczwvZmlsZT5cbicgJSBmaWxlbmFtZQorCisgICAgICAgIGFyZ3Mub3V0cHV0Lndy
aXRlKGxpbmUpCisKKyAgICBhcmdzLm91dHB1dC53cml0ZShcCisgICAgIiIiICAgIDwvZ3Jlc291
cmNlPgorPC9ncmVzb3VyY2VzPgorIiIiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQu
bW9kdWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjJlZDc1NjI2NGEyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
d3BlL2poYnVpbGQubW9kdWxlcwpAQCAtMCwwICsxLDI0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4w
Ij8+Cis8IURPQ1RZUEUgbW9kdWxlc2V0IFNZU1RFTSAibW9kdWxlc2V0LmR0ZCI+Cis8P3htbC1z
dHlsZXNoZWV0IHR5cGU9InRleHQveHNsIiBocmVmPSJtb2R1bGVzZXQueHNsIj8+Cis8bW9kdWxl
c2V0PgorCisgIDxtZXRhbW9kdWxlIGlkPSJ3ZWJraXR3cGUtdGVzdGluZy1kZXBlbmRlbmNpZXMi
PgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAg
IDxkZXAgcGFja2FnZT0ibGlic291cCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJjYWlybyIvPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJmb250cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJkaWN0cyIv
PgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9
ImZyZWV0eXBlNiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJ4a2Jjb21tb24iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id2F5bGFuZCIvPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0
LXBsdWdpbnMtYmFzZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1nb29kIi8+
CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhZCIvPgorICAgICAgPGRlcCBwYWNr
YWdlPSJnc3QtbGliYXYiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlIi8+CisgICAgICA8ZGVw
IHBhY2thZ2U9IndwZS1tZXNhIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvbWV0YW1vZHVs
ZT4KKworICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJlLm9yZy1t
aXJyb3IiCisgICAgICBocmVmPSJodHRwOi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJjZXMucmVk
aGF0LmNvbS8iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRwLmdub21l
Lm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBvc2l0b3J5
IHR5cGU9InRhcmJhbGwiIG5hbWU9ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgaHJlZj0iaHR0
cDovL2NhaXJvZ3JhcGhpY3Mub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5h
bWU9ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Au
b3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9IndheWxhbmQuZnJlZWRl
c2t0b3Aub3JnIgorICAgICAgaHJlZj0iaHR0cDovL3dheWxhbmQuZnJlZWRlc2t0b3Aub3JnIi8+
CisgIDxyZXBvc2l0b3J5IHR5cGU9ImdpdCIgbmFtZT0iZ2l0aHViLmNvbSIKKyAgICAgIGhyZWY9
ImdpdDovL2dpdGh1Yi5jb20iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0i
Z3N0cmVhbWVyIgorICAgICAgaHJlZj0iaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcv
c3JjLyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJ4a2Jjb21tb24ub3Jn
IgorICAgICAgaHJlZj0iaHR0cDovL3hrYmNvbW1vbi5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlw
ZT0idGFyYmFsbCIgbmFtZT0ic2F2YW5uYWguZ251Lm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9k
b3dubG9hZC5zYXZhbm5haC5nbnUub3JnL3JlbGVhc2VzLyIvPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImxpYmZmaSIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0ibGli
ZmZpL2xpYmZmaS0zLjAuMTAudGFyLmd6IiB2ZXJzaW9uPSIzLjAuMTAiCisgICAgICAgICAgICAg
cmVwbz0ic291cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgICAgICAgIGhhc2g9InNoYTI1Njpm
MDFlYjkwMjdlOWViNTZhZWFlZWY2MzY2NDk4Nzc3NTZkNDc1ZDcxNGVmOGI0N2Y2MjdmNjViYzVm
M2I0OTJmIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIiCisgICAg
ICAgICAgICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdz
PSItLWRpc2FibGUtZHRyYWNlIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNr
YWdlPSJsaWJmZmkiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0i
L3B1Yi9HTk9NRS9zb3VyY2VzL2dsaWIvMi40NC9nbGliLTIuNDQuMS50YXIueHoiIHZlcnNpb249
IjIuNDQuMSIKKyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBo
YXNoPSJzaGEyNTY6ODgxMWRlYWNhZjhhNTAzZDBhOWI3MDE3NzdlYTA3OWNhNmE0Mjc3YmUxMGUz
ZDczMGQyMTEyNzM1ZDVlY2EwNyI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi13YXJuaW5nLWZp
eC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnZGF0ZS1zdXBwcmVzcy1z
dHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2Jy
YW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYi1uZXR3b3JraW5n
Ij4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAg
PC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9n
bGliLW5ldHdvcmtpbmcvMi40Mi9nbGliLW5ldHdvcmtpbmctMi40Mi4wLnRhci54eiIgdmVyc2lv
bj0iMi40Mi4wIgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAg
IGhhc2g9InNoYTI1NjozMDRkZDllNGMwY2VkNjkwOTQzMDBlMGI5ZTY2Y2QyZWFhZTcxNjFiOWZj
MzE4NjUzNmQxMTQ1ODY3N2Q4MjBkIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMg
aWQ9ImxpYnNvdXAiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1nbm9tZSAt
LWRpc2FibGUtaW50cm9zcGVjdGlvbiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAg
cGFja2FnZT0iZ2xpYi1uZXR3b3JraW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJy
YW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNDgvbGlic291cC0yLjQ4
LjAudGFyLnh6IiB2ZXJzaW9uPSIyLjQ4LjAiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUu
b3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmVhMzRkZDY0ZmU0NDM0MzQ0NWRhZjZkZDY5
MGQwNjkxZTlkOTczNDY4ZGU0NDg3OGRhOTczNzFjMTZkODk3ODQiLz4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0iZm9udHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJu
byIKKyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0i
Z2l0aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZm9udHMuZ2l0IiBj
aGVja291dGRpcj0id2Via2l0Z3RrLXRlc3QtZm9udHMiIHRhZz0iMC4wLjUiLz4KKyAgPC9hdXRv
dG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZGljdHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVp
bGRzPSJubyIKKyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2gg
cmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZGljdHMu
Z2l0IiBjaGVja291dGRpcj0id2Via2l0Z3RrLXRlc3QtZGljdHMiIHRhZz0iMC4wLjEiLz4KKyAg
PC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZnJlZXR5cGU2IiBhdXRvZ2VuLXNoPSJj
b25maWd1cmUiPgorICAgIDxicmFuY2ggbW9kdWxlPSJmcmVldHlwZS9mcmVldHlwZS0yLjQuMTEu
dGFyLmJ6MiIgdmVyc2lvbj0iMi40LjExIgorICAgICAgICAgICAgcmVwbz0ic2F2YW5uYWguZ251
Lm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjplZjlkMGJjYjY0NjQ3ZDllNTEyNWRjNzUz
NGQ3Y2EzNzFjOTgzMTBmZWM4NzY3N2M0MTBmMzk3ZjcxZmZiZTNmIgorICAgICAgICAgICAgbWQ1
c3VtPSJiOTM0MzU0ODg5NDI0ODZjOGQwY2EyMmU4Zjc2ODAzNCI+CisgICAgICA8cGF0Y2ggZmls
ZT0iZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2giIHN0cmlw
PSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImZvbnRjb25maWciIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVuZGVuY2llcz4K
KyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+Cisg
ICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9mb250Y29uZmln
LTIuMTEuMS50YXIuZ3oiIHZlcnNpb249IjIuMTEuMSIKKyAgICAgICAgICAgIHJlcG89ImZyZWVk
ZXNrdG9wLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjpiNmIwNjZjN2RjZTNmNDM2ZmRj
MGRmYmFlOWQzNjEyMmIzODA5NGY0ZjUzYmQ4ZGZmZDQ1ZTE5NWIwNTQwZDhkIgorICAgICAgICAg
ICAgbWQ1c3VtPSJlNzVlMzAzYjRmNzc1NmMyYjE2MjAzYTU3YWM4N2ViYSI+CisgICAgPC9icmFu
Y2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBhdXRvZ2Vu
LXNoPSJjb25maWd1cmUiCisgICAgICAgIGF1dG9nZW5hcmdzPSItLXdpdGgtY2Fpcm89bm8gLS13
aXRoLWdsaWI9bm8gLS13aXRoLWZyZWV0eXBlPXllcyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAg
PGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMS4zLjMu
dGFyLmJ6MiIKKyAgICAgICAgICAgIHZlcnNpb249IjEuMy4zIgorICAgICAgICAgICAgY2hlY2tv
dXRkaXI9ImhhcmZidXp6LTEuMy4zIgorICAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0b3Aub3Jn
IgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjI2MjA5ODcxMTVhNDEyMmI0NzMyMTYxMGRjY2Jj
YzE4ZjdmMTIxMTE1ZmQ3Yjg4ZGM4YTY5NWM4YjY2Y2IzYzkiCisgICAgICAgICAgICBtZDVzdW09
Ijk3YWUxNWE3MmE5M2YxZjI3MzI0YTJiOGQ5YmQzYjFkIj4KKyAgICA8L2JyYW5jaD4KKyAgPC9h
dXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0icGl4bWFuIgorICAgICAgICAgICAgIGF1dG9n
ZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1lbmFibGUtZ3Rr
PW5vIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvcGl4bWFuLTAuMzIuNi50YXIuZ3oi
IHZlcnNpb249IjAuMzIuNiIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgor
ICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjNkZmVkMTNiODA2MGVhZGFiZjBhNDk0NWM3MDQ1Yjc3
OTNjYzdlM2U5MTBlNzQ4YThiYjBmMGRjM2U3OTQ5MDQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAg
PGF1dG90b29scyBpZD0iY2Fpcm8iIGF1dG9nZW5hcmdzPSItLWVuYWJsZS1lZ2w9eWVzIC0tZW5h
YmxlLWdsZXN2MiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xp
YiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2th
Z2U9InBpeG1hbiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJy
ZWxlYXNlcy9jYWlyby0xLjE0LjgudGFyLnh6IiB2ZXJzaW9uPSIxLjE0LjgiCisgICAgICAgICAg
ICByZXBvPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTE6YzZmN2I5
OTk4NmY5M2M5ZGY3ODY1M2MzZTZhM2I1MDQzZjY1MTQ1ZSI+CisgICAgICA8cGF0Y2ggZmlsZT0i
Y2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoIiBzdHJpcD0iMSIv
PgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJ4a2Jj
b21tb24iPgorICAgIDxicmFuY2ggbW9kdWxlPSJkb3dubG9hZC9saWJ4a2Jjb21tb24tMC41LjAu
dGFyLnh6IiB2ZXJzaW9uPSIwLjUuMCIKKyAgICAgICAgICAgIHJlcG89InhrYmNvbW1vbi5vcmci
CisgICAgICAgICAgICBoYXNoPSJzaGExOjcxMjc5OTNiZmI2OWUxM2NkZmYyNWZiOGIzYzhmMjZj
ZTZiZTViZmEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0id2F5bGFuZCIg
YXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1kb2N1bWVudGF0aW9uIj4KKyAgICA8YnJhbmNoIG1vZHVs
ZT0icmVsZWFzZXMvd2F5bGFuZC0xLjkuMC50YXIueHoiIHZlcnNpb249IjEuOS4wIgorICAgICAg
ICAgICAgcmVwbz0id2F5bGFuZC5mcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJz
aGEyNTY6OWM4NzcwNzIwYWEwMDM0NDc5NzM1ZjU4YTRkYzRjYTliMTcyZWNmZWRlMjhmNTEzNDMx
MmUxMzViNzMwMWVmYSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJvcmMi
IGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4K
KyAgICA8YnJhbmNoIG1vZHVsZT0ib3JjL29yYy0wLjQuMTcudGFyLmd6IiB2ZXJzaW9uPSIwLjQu
MTciCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6NGZjN2NjYTQ4YzU5ZmZmMjNhZmVlNzhmYjY0MmNkYmRlMDAxZjU2NDAxYzhmNDdiOTVhMTY1
NzhkMWQ1ZDdlOCIKKyAgICAgICAgICAgIG1kNXN1bT0iYWYxYmYzZGFiOWU2OWYzYzM2ZjM4OTI4
NWUyYTEyYTEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0cmVhbWVy
IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyI+
CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ib3JjIi8+CisgICAgPC9k
ZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2
ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVh
bWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjVhMzcyMmZiOTMwMmRkOTc3YzE3Y2VkNDI0
MDI5M2RjNzc3Y2I3MTZkYzk4YzhjY2E2M2Q3NWMyN2U1ZTMxMDciCisgICAgICAgICAgICBtZDVz
dW09IjcxMWFkYTc5YjYzZTQ3YWM5NmFkYjRlNTQ0NGRjOTA4Ij4KKyAgICAgIDxwYXRjaCBmaWxl
PSJnc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlm
LXRoZS0ucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgor
CisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWJhc2UiCisgICAgICAgICAgICAgYXV0b2dl
bi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhh
bXBsZXMgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVw
IHBhY2thZ2U9ImdzdHJlYW1lciIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2gg
bW9kdWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIu
eHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAg
ICAgICAgaGFzaD0ic2hhMjU2OjE1YTlkZTk4NWNkMjY1YzM0NGUzNTlmNWIxOTM0N2RmNDAyMWI3
NjExZWQyYzJkOTE5MTdjYjkwMGYyZmFkNmYiCisgICAgICAgICAgICBtZDVzdW09IjU0MjFlZGZl
Yjc0NzlkNWY1Nzc2ZTkxN2JhMzBlMjRlIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9v
bHMgaWQ9ImdzdC1wbHVnaW5zLWdvb2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFy
Z3M9Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3RrLWRvYyI+
CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFz
ZSIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVn
aW5zLWdvb2QvZ3N0LXBsdWdpbnMtZ29vZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44
LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6MjEwM2UxNzkyMWQ2Nzg5NGU4MmVhZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYyNWJmYmM4
M2ZmZWFkMDk3MiIKKyAgICAgICAgICAgIG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4YTY0YzMx
MmRlMDNkNDciPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10
ZmR0LWRlY29kZS10aW1lLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9Imdz
dC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1t
b29mLWZvci1mci5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9v
bHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtYmFkIiBhdXRvZ2VuLXNoPSJjb25m
aWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1kb2Mg
LS1kaXNhYmxlLWludHJvc3BlY3Rpb24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVw
IHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8
YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3ZlcnNpb259
LnRhci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisg
ICAgICAgICAgICBoYXNoPSJzaGEyNTY6MGJiZDU4ZjM2MzczNGZjMGM0YTYyMGIyZDZmYjAxZDQy
N2ZkYWZkYmRhN2I5MGI0ZTE1ZDAzYjc1MWNhNDBmNSIKKyAgICAgICAgICAgIG1kNXN1bT0iZTUw
OGRhMmE4YTVjM2QxMjI2NGZlMzQxNWJlMmY0NTEiPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1w
bHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIiBzdHJpcD0i
MSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZp
Y2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2giIHN0cmlwPSIx
Ii8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9Imdz
dC1saWJhdiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRoLWxpYmF2
LWV4dHJhLWNvbmZpZ3VyZT0nLS1kaXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9jIj4KKyAg
ICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+
CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJhdi9nc3Qt
bGliYXYtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVw
bz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjQ0YTQ5MTA4YzM1MzFiNWFj
NGYzNDZhMjI0N2NkN2ZiYWZiMGU4YWIzOTQzOTRjYjZkNzVhNzAzMDBiMzg5MzMiCisgICAgICAg
ICAgICBtZDVzdW09Ijg1ZjFhMDQ3NjA2Y2E5ZTA4NDkzZDdiNmI0MmRmNDYyIi8+CisgIDwvYXV0
b3Rvb2xzPgorCisgIDxjbWFrZSBpZD0id3BlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5j
b20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLmdpdCIKKyAgICAg
ICAgICAgIHRhZz0iNWUyYTI5ZDJjY2M2MzdmNzEyMmJhNzJjMWQ2MmVmNjY5YjQyZjA1YyIgLz4K
KyAgPC9jbWFrZT4KKworICA8Y21ha2UgaWQ9IndwZS1tZXNhIj4KKyAgICA8ZGVwZW5kZW5jaWVz
PgorICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIi
IC8+CisgICAgICA8ZGVwIHBhY2thZ2U9IndheWxhbmQiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9
InhrYmNvbW1vbiIgLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIHJlcG89Imdp
dGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLW1lc2Eu
Z2l0IgorICAgICAgICAgICAgdGFnPSI5OTQ1NzUzZjkzMzdmZDY3YWYwOTgyMThiNzgxOTMzN2Fi
YTIxMTQxIiAvPgorICA8L2NtYWtlPgorPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9Ub29scy93
cGUvamhidWlsZHJjIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uZTJmYTg4ZDcyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93
cGUvamhidWlsZHJjCkBAIC0wLDAgKzEsMjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcwor
CitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVf
XyksICIuLi9qaGJ1aWxkIikgKQoraW1wb3J0IGpoYnVpbGRyY19jb21tb24KK2poYnVpbGRyY19j
b21tb24uaW5pdChnbG9iYWxzKCksICJ3cGUiKQorIyBFbmFibGUgYnVpbGRkaXIgIT0gc3JjZGly
IGJ1aWxkcy4KK2J1aWxkcm9vdCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoY2hlY2tv
dXRyb290KSwgIkJ1aWxkIikKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVn
bC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVz
L2NhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDQ2ZGY0NWI2ZjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1
cmZhY2UucGF0Y2gKQEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gYTRlMGRhZjE4YmY4MjUyNDYzZjY2
ZDc1ZWVmNDk5Y2ZmZmEzMjU2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFphbiBE
b2JlcnNlayA8emRvYmVyc2VrQGlnYWxpYS5jb20+CitEYXRlOiBNb24sIDE3IE5vdiAyMDE0IDAx
OjIzOjE1IC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0
ZV9mb3JfZWdsX3N1cmZhY2UoKS4KKworLS0tCisgc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgfCA2
NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgc3Jj
L2NhaXJvLWdsLmggICAgICAgICAgfCAgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDYwIGluc2Vy
dGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZWdsLWNv
bnRleHQuYyBiL3NyYy9jYWlyby1lZ2wtY29udGV4dC5jCitpbmRleCBiZjcwNGM2Li5iZTJiY2Y5
IDEwMDY0NAorLS0tIGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMKKysrKyBiL3NyYy9jYWlyby1l
Z2wtY29udGV4dC5jCitAQCAtNDgsNyArNDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fZWds
X2NvbnRleHQgeworICAgICBFR0xEaXNwbGF5IGRpc3BsYXk7CisgICAgIEVHTENvbnRleHQgY29u
dGV4dDsKKyAKKy0gICAgRUdMU3VyZmFjZSBkdW1teV9zdXJmYWNlOworKyAgICBFR0xTdXJmYWNl
IHN1cmZhY2U7CisrICAgIGNhaXJvX2Jvb2xfdCBpc19kdW1teV9zdXJmYWNlOworIAorICAgICBF
R0xDb250ZXh0IHByZXZpb3VzX2NvbnRleHQ7CisgICAgIEVHTFN1cmZhY2UgcHJldmlvdXNfc3Vy
ZmFjZTsKK0BAIC03NCw3ICs3NSw3IEBAIF9lZ2xfZ2V0X2N1cnJlbnRfc3VyZmFjZSAoY2Fpcm9f
ZWdsX2NvbnRleHRfdCAqY3R4KQorIHsKKyAgICAgaWYgKGN0eC0+YmFzZS5jdXJyZW50X3Rhcmdl
dCA9PSBOVUxMIHx8CisgICAgICAgICBfY2Fpcm9fZ2xfc3VyZmFjZV9pc190ZXh0dXJlIChjdHgt
PmJhc2UuY3VycmVudF90YXJnZXQpKSB7CistCXJldHVybiAgY3R4LT5kdW1teV9zdXJmYWNlOwor
KwlyZXR1cm4gIGN0eC0+c3VyZmFjZTsKKyAgICAgfQorIAorICAgICByZXR1cm4gKChjYWlyb19l
Z2xfc3VyZmFjZV90ICopIGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCktPmVnbDsKK0BAIC0xNTEs
OCArMTUyLDggQEAgX2VnbF9kZXN0cm95ICh2b2lkICphYnN0cmFjdF9jdHgpCisgCisgICAgIGVn
bE1ha2VDdXJyZW50IChjdHgtPmRpc3BsYXksCisgCQkgICAgRUdMX05PX1NVUkZBQ0UsIEVHTF9O
T19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CistICAgIGlmIChjdHgtPmR1bW15X3N1cmZhY2Ug
IT0gRUdMX05PX1NVUkZBQ0UpCistICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNw
bGF5LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKyAgICBpZiAoY3R4LT5pc19kdW1teV9zdXJmYWNl
ICYmIGN0eC0+c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkKKysgICAgICAgIGVnbERlc3Ryb3lT
dXJmYWNlIChjdHgtPmRpc3BsYXksIGN0eC0+c3VyZmFjZSk7CisgfQorIAorIHN0YXRpYyBjYWly
b19ib29sX3QKK0BAIC0yMTgsMTMgKzIxOSwxNCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAo
RUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsKQorIAllZ2xRdWVyeUNvbnRleHQgKGRweSwg
ZWdsLCBFR0xfQ09ORklHX0lELCAmY29uZmlnX2F0dHJpYnNbMV0pOworIAllZ2xDaG9vc2VDb25m
aWcgKGRweSwgY29uZmlnX2F0dHJpYnMsICZjb25maWcsIDEsICZudW1Db25maWdzKTsKKyAKKy0J
Y3R4LT5kdW1teV9zdXJmYWNlID0gZWdsQ3JlYXRlUGJ1ZmZlclN1cmZhY2UgKGRweSwgY29uZmln
LCBhdHRyaWJzKTsKKy0JaWYgKGN0eC0+ZHVtbXlfc3VyZmFjZSA9PSBOVUxMKSB7CisrCWN0eC0+
aXNfZHVtbXlfc3VyZmFjZSA9IFRSVUU7CisrCWN0eC0+c3VyZmFjZSA9IGVnbENyZWF0ZVBidWZm
ZXJTdXJmYWNlIChkcHksIGNvbmZpZywgYXR0cmlicyk7CisrCWlmIChjdHgtPnN1cmZhY2UgPT0g
TlVMTCkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xfY29udGV4
dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CisgCistCWlm
ICghZWdsTWFrZUN1cnJlbnQgKGRweSwgY3R4LT5kdW1teV9zdXJmYWNlLCBjdHgtPmR1bW15X3N1
cmZhY2UsIGVnbCkpIHsKKysJaWYgKCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBjdHgtPnN1cmZhY2Us
IGN0eC0+c3VyZmFjZSwgZWdsKSkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBf
Y2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkp
OworIAl9CitAQCAtMjM4LDggKzI0MCw1NCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdM
RGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsKQorIAorICAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xf
Y29udGV4dF9pbml0ICgmY3R4LT5iYXNlKTsKKyAgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7
CistCWlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistCSAgICBlZ2xE
ZXN0cm95U3VyZmFjZSAoZHB5LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKwlpZiAoY3R4LT5zdXJm
YWNlICE9IEVHTF9OT19TVVJGQUNFKQorKwkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4
LT5zdXJmYWNlKTsKKysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2Ny
ZWF0ZV9pbl9lcnJvciAoc3RhdHVzKTsKKysgICAgfQorKworKyAgICBlZ2xNYWtlQ3VycmVudCAo
ZHB5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsKKysK
KysgICAgcmV0dXJuICZjdHgtPmJhc2UuYmFzZTsKKyt9CisrCisrY2Fpcm9fZGV2aWNlX3QgKgor
K2NhaXJvX2VnbF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHks
IEVHTENvbnRleHQgZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpCisreworKyAgICBjYWlyb19lZ2xf
Y29udGV4dF90ICpjdHg7CisrICAgIGNhaXJvX3N0YXR1c190IHN0YXR1czsKKysKKysgICAgY3R4
ID0gY2FsbG9jICgxLCBzaXplb2YgKGNhaXJvX2VnbF9jb250ZXh0X3QpKTsKKysgICAgaWYgKHVu
bGlrZWx5IChjdHggPT0gTlVMTCkpCisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVf
aW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworKworKyAgICBjdHgtPmRpc3BsYXkg
PSBkcHk7CisrICAgIGN0eC0+Y29udGV4dCA9IGVnbDsKKysgICAgY3R4LT5zdXJmYWNlID0gc3Vy
ZmFjZTsKKysKKysgICAgY3R4LT5iYXNlLmFjcXVpcmUgPSBfZWdsX2FjcXVpcmU7CisrICAgIGN0
eC0+YmFzZS5yZWxlYXNlID0gX2VnbF9yZWxlYXNlOworKyAgICBjdHgtPmJhc2UubWFrZV9jdXJy
ZW50ID0gX2VnbF9tYWtlX2N1cnJlbnQ7CisrICAgIGN0eC0+YmFzZS5zd2FwX2J1ZmZlcnMgPSBf
ZWdsX3N3YXBfYnVmZmVyczsKKysgICAgY3R4LT5iYXNlLmRlc3Ryb3kgPSBfZWdsX2Rlc3Ryb3k7
CisrCisrICAgIC8qIFdlIGFyZSBhYm91dCB0aGUgY2hhbmdlIHRoZSBjdXJyZW50IHN0YXRlIG9m
IEVHTCwgc28gd2Ugc2hvdWxkCisrICAgICAqIHF1ZXJ5IHRoZSBwcmUtZXhpc3Rpbmcgc3VyZmFj
ZSBub3cgaW5zdGVhZCBvZiBsYXRlci4gKi8KKysgICAgX2VnbF9xdWVyeV9jdXJyZW50X3N0YXRl
IChjdHgpOworKworKwlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHksIHN1cmZhY2UsIHN1cmZhY2Us
IGVnbCkpIHsKKysJICAgIGZyZWUgKGN0eCk7CisrCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRl
eHRfY3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKysJfQorKworKyAg
ICBzdGF0dXMgPSBfY2Fpcm9fZ2xfZGlzcGF0Y2hfaW5pdCAoJmN0eC0+YmFzZS5kaXNwYXRjaCwg
ZWdsR2V0UHJvY0FkZHJlc3MpOworKyAgICBpZiAodW5saWtlbHkgKHN0YXR1cykpIHsKKysJZnJl
ZSAoY3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3Rh
dHVzKTsKKysgICAgfQorKworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9pbml0ICgm
Y3R4LT5iYXNlKTsKKysgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CisgCWZyZWUgKGN0eCk7
CisgCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7Cisg
ICAgIH0KK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZ2wuaCBiL3NyYy9jYWlyby1nbC5oCitpbmRl
eCA5ZmQ3NjA4Li5hOTRmNTgxIDEwMDY0NAorLS0tIGEvc3JjL2NhaXJvLWdsLmgKKysrKyBiL3Ny
Yy9jYWlyby1nbC5oCitAQCAtMTMyLDYgKzEzMiw5IEBAIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRl
X2Zvcl9kYyAoY2Fpcm9fZGV2aWNlX3QJCSpkZXZpY2UsCisgY2Fpcm9fcHVibGljIGNhaXJvX2Rl
dmljZV90ICoKKyBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENv
bnRleHQgZWdsKTsKKyAKKytjYWlyb19wdWJsaWMgY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2Vn
bF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRl
eHQgZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpOworKworIGNhaXJvX3B1YmxpYyBjYWlyb19zdXJm
YWNlX3QgKgorIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9lZ2wgKGNhaXJvX2RldmljZV90
CSpkZXZpY2UsCisgCQkJCSBFR0xTdXJmYWNlCSBlZ2wsCmRpZmYgLS1naXQgYS9Ub29scy93cGUv
cGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwt
YW5kLWlkZW50aWZpZXIucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEt
cmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2gKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZTBhNTQxZGJjCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEt
c3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoCkBAIC0wLDAgKzEsMzAg
QEAKK0Zyb20gNzA2OWQ3MTdlOTgyYWRjZjhlMWQzMDBjYmQxMGVlYzYzMjJhNjVjOSBNb24gU2Vw
IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFraXJhIFRBR09IIDxha2lyYUB0YWdvaC5vcmc+CitE
YXRlOiBTdW4sIDIyIEFwciAyMDEyIDIxOjQwOjQ0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEMr
KzExIHJlcXVpcmVzIGEgc3BhY2UgYmV0d2VlbiBsaXRlcmFsIGFuZCBpZGVudGlmaWVyCisKK1Jl
cG9ydGVkIGJ5IEJ1Z2FuaW5pCistLS0KKyBmb250Y29uZmlnL2ZvbnRjb25maWcuaCB8IDYgKysr
LS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKwor
ZGlmZiAtLWdpdCBhL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oIGIvZm9udGNvbmZpZy9mb250Y29u
ZmlnLmgKK2luZGV4IDBlMmNhNTAuLmIyN2NjYjUgMTAwNjQ0CistLS0gYS9mb250Y29uZmlnL2Zv
bnRjb25maWcuaAorKysrIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK0BAIC0xMTIsOSArMTEy
LDkgQEAgdHlwZWRlZiBpbnQJCUZjQm9vbDsKKyAjZGVmaW5lIEZDX0RFQ09SQVRJVkUJICAgICJk
ZWNvcmF0aXZlIgkvKiBCb29sIC0gdHJ1ZSBpZiBzdHlsZSBpcyBhIGRlY29yYXRpdmUgdmFyaWFu
dCAqLworICNkZWZpbmUgRkNfTENEX0ZJTFRFUgkgICAgImxjZGZpbHRlciIJCS8qIEludCAqLwor
IAorLSNkZWZpbmUgRkNfQ0FDSEVfU1VGRklYCQkgICAgIi5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lP
TgorLSNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iRkNfQ0FDSEVf
VkVSU0lPTgorLSNkZWZpbmUgRkNfVVNFUl9DQUNIRV9GSUxFCSAgICAiLmZvbnRzLmNhY2hlLSJG
Q19DQUNIRV9WRVJTSU9OCisrI2RlZmluZSBGQ19DQUNIRV9TVUZGSVgJCSAgICAiLmNhY2hlLSIg
RkNfQ0FDSEVfVkVSU0lPTgorKyNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5j
YWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKysjZGVmaW5lIEZDX1VTRVJfQ0FDSEVfRklMRQkgICAg
Ii5mb250cy5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKyAKKyAvKiBBZGp1c3Qgb3V0bGluZSBy
YXN0ZXJpemVyICovCisgI2RlZmluZSBGQ19DSEFSX1dJRFRICSAgICAiY2hhcndpZHRoIgkvKiBJ
bnQgKi8KKy0tIAorMS44LjMuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9mcmVl
dHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCBiL1Rvb2xzL3dwZS9w
YXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZmZlNzZiNGVmMAotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUt
Zm9udC1oZWlnaHQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gZTA0NjkzNzJiZTM4
NzBhNWFkNjBiMmM0NTg2ZTljMjgxMzU3YmQyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy
b206IFdlcm5lciBMZW1iZXJnIDx3bEBnbnUub3JnPgorRGF0ZTogVHVlLCAyMiBKYW4gMjAxMyAx
MDowNzowNyArMDAwMAorU3ViamVjdDogW3RydWV0eXBlXSBGaXggZm9udCBoZWlnaHQuCisKKyog
c3JjL3RydWV0eXBlL3R0b2Jqcy5jICh0dF9zaXplX3Jlc2V0KTogVGhlIFdpbmRvd3MgcmVuZGVy
aW5nCitlbmdpbmUgdXNlcyByb3VuZGVkIHZhbHVlcyBvZiB0aGUgYXNjZW5kZXIgYW5kIGRlc2Nl
bmRlciB0byBjb21wdXRlCit0aGUgVHJ1ZVR5cGUgZm9udCBoZWlnaHQuCistLS0KK2RpZmYgLS1n
aXQgYS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKK2luZGV4
IGM2MWIyMTguLjU5MGI2NmMgMTAwNjQ0CistLS0gYS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKKysr
KyBiL3NyYy90cnVldHlwZS90dG9ianMuYworQEAgLTQsNyArNCw3IEBACisgLyogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKi8KKyAvKiAgICBPYmplY3RzIG1hbmFnZXIgKGJvZHkpLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCist
LyogIENvcHlyaWdodCAxOTk2LTIwMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKysvKiAgQ29weXJpZ2h0IDE5OTYtMjAxMyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICBEYXZpZCBU
dXJuZXIsIFJvYmVydCBXaWxoZWxtLCBhbmQgV2VybmVyIExlbWJlcmcuICAgICAgICAgICAgICAg
ICAgICAgICovCisgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIEZyZWVUeXBlIHByb2plY3QsIGFuZCBtYXkgb25seSBiZSB1c2VkLCAgICAgICAqLwor
QEAgLTExNzcsMTEgKzExNzcsMTIgQEAKKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4
KCBmYWNlLT5yb290LmFzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRy
aWNzLT5kZXNjZW5kZXIgPQorICAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2Ut
PnJvb3QuZGVzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKy0gICAgICBtZXRyaWNzLT5o
ZWlnaHQgPQorLSAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuaGVp
Z2h0LCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5tYXhfYWR2YW5jZSA9
CisgICAgICAgICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5tYXhfYWR2YW5j
ZV93aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLT54X3Nj
YWxlICkgKTsKKysKKysgICAgICAvKiB0aGUgaGVpZ2h0IGlzIGRlcml2ZWQgZnJvbSByb3VuZGVk
IHZhbHVlcyAqLworKyAgICAgIG1ldHJpY3MtPmhlaWdodCA9IG1ldHJpY3MtPmFzY2VuZGVyIC0g
bWV0cmljcy0+ZGVzY2VuZGVyOworICAgICB9CisgCisgICAgIC8qIGNvbXB1dGUgbmV3IHRyYW5z
Zm9ybWF0aW9uICovCistLQorY2dpdCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3Bh
dGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2gg
Yi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwt
d2FybmluZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTBj
Yjk1MWExOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBw
cmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaApAQCAtMCwwICsxLDI5IEBA
CitGcm9tIDNhN2VmZDU5OGQzOTM2NmMyYzlkZTBkZWYyZmRmYjM1ZTVlOWYyYTEgTW9uIFNlcCAx
NyAwMDowMDowMCAyMDAxCitGcm9tOiBjb3lwdSA8Y295cHVAc2RmLm9yZz4KK0RhdGU6IE1vbiwg
OCBGZWIgMjAxNiAwMDowNjowNiArMDIwMAorU3ViamVjdDogW1BBVENIIDEvMV0gZ2RhdGU6IFN1
cHByZXNzIHN0cmluZyBmb3JtYXQgbGl0ZXJhbCB3YXJuaW5nCisKK05ld2VyIHZlcnNpb25zIG9m
IEdDQyBlbWl0IGFuIGVycm9yIGhlcmUsIGJ1dCB3ZSBrbm93IGl0J3Mgc2FmZS4KK2h0dHBzOi8v
YnVnemlsbGEuZ25vbWUub3JnLzc2MTU1MAorLS0tCisgZ2xpYi9nZGF0ZS5jIHwgMyArKysKKyAx
IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nbGliL2dkYXRl
LmMgYi9nbGliL2dkYXRlLmMKK2luZGV4IDRhZWNlMDIuLmNkYzczNWMgMTAwNjQ0CistLS0gYS9n
bGliL2dkYXRlLmMKKysrKyBiL2dsaWIvZ2RhdGUuYworQEAgLTI0OTQsNyArMjQ5NCwxMCBAQCBn
X2RhdGVfc3RyZnRpbWUgKGdjaGFyICAgICAgICpzLAorICAgICAgICAqIHJlY29nbml6ZSB3aGV0
aGVyIHN0cmZ0aW1lIGFjdHVhbGx5IGZhaWxlZCBvciBqdXN0IHJldHVybmVkICIiLgorICAgICAg
ICAqLworICAgICAgIHRtcGJ1ZlswXSA9ICdcMSc7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBwdXNoCisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1h
dC1ub25saXRlcmFsIgorICAgICAgIHRtcGxlbiA9IHN0cmZ0aW1lICh0bXBidWYsIHRtcGJ1ZnNp
emUsIGxvY2FsZV9mb3JtYXQsICZ0bSk7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKKyAKKyAgICAgICBpZiAodG1wbGVuID09IDAgJiYgdG1wYnVmWzBdICE9ICdcMCcpCisgICAg
ICAgICB7CistLSAKKzIuNy4wCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWIt
d2FybmluZy1maXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBh
dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZmFmNGQxMWYyYwot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0
Y2gKQEAgLTAsMCArMSwzNCBAQAorRnJvbSA5ZjkwZWU1ZWVjY2Q0N2YzOWM3YTAzZGNkNzg2YjEy
NWExOWMxOTVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFlbCBDYXRhbnph
cm8gPG1jYXRhbnphcm9AZ25vbWUub3JnPgorRGF0ZTogU2F0LCAxMyBKdW4gMjAxNSAyMjo1Mjoz
MyAtMDUwMAorU3ViamVjdDogW1BBVENIXSBnZW5tYXJzaGFsOiBzaWxlbmNlIHJlZ2lzdGVyIHN0
b3JhZ2UgY2xhc3Mgd2FybmluZ3MKKworVXNpbmcgdGhlIHJlZ2lzdGVyIGtleXdvcmQgdHJpZ2dl
cnMgd2FybmluZ3Mgb24gbm90ZXdvcnRoeSBjb21waWxlcnMKKyhjbGFuZyksIHNpbmNlIGl0J3Mg
ZGVwcmVjYXRlZCBpbiBDKysgYW5kIGF0IGRhbmdlciBvZiBiZWluZyByZW1vdmVkCitmcm9tIHRo
ZSBsYW5ndWFnZS4gVGhlcmUgaXMgbm8gcmVhc29uIHRvIHVzZSBpdCBzaW5jZSBpdCBpc24ndCAx
OTgwCithbnltb3JlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzUwOTE4CistLS0KKyBnb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jIHwgNiArKystLS0KKyAx
IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0t
Z2l0IGEvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYyBiL2dvYmplY3QvZ2xpYi1nZW5tYXJzaGFs
LmMKK2luZGV4IGJlNDE1MWEuLmNhNzhhNmYgMTAwNjQ0CistLS0gYS9nb2JqZWN0L2dsaWItZ2Vu
bWFyc2hhbC5jCisrKysgYi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitAQCAtNDEyLDkgKzQx
Miw5IEBAIGdlbmVyYXRlX21hcnNoYWwgKGNvbnN0IGdjaGFyICpzaWduYW1lLAorICAgICAgIGdf
ZnByaW50ZiAoZm91dCwgIiVzJXMgZGF0YTIpO1xuIiwgaW5kZW50IChpbmQpLCBwYWQgKCJncG9p
bnRlciIpKTsKKyAKKyAgICAgICAvKiBjZmlsZSBtYXJzaGFsIHZhcmlhYmxlcyAqLworLSAgICAg
IGdfZnByaW50ZiAoZm91dCwgIiAgcmVnaXN0ZXIgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xu
Iiwgc2lnbmFtZSk7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBHQ0Nsb3N1
cmUgKmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4iKTsKKy0gICAgICBnX2ZwcmludGYgKGZv
dXQsICIgIHJlZ2lzdGVyIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIpOworKyAgICAgIGdfZnBy
aW50ZiAoZm91dCwgIiAgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFtZSk7Cisr
ICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSopIGNs
b3N1cmU7XG4iKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIGdwb2ludGVyIGRhdGExLCBk
YXRhMjtcbiIpOworICAgICAgIGlmIChzaWctPnJhcmctPnNldHRlcikKKyAJZ19mcHJpbnRmIChm
b3V0LCAiICAlcyB2X3JldHVybjtcbiIsIHNpZy0+cmFyZy0+Y3R5cGUpOworIAorLS0gCisyLjQu
MgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNo
IGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9w
ZW5TU0wtMS4xLjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjVkMTA2NGVkNWU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBs
dWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKQEAgLTAsMCAr
MSwyMzYgQEAKK0Zyb20gZTkzODkzMzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0NDg2YiBN
b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJlZGhhdC5j
b20+CitEYXRlOiBXZWQsIDI2IE9jdCAyMDE2IDE0OjUxOjAxICswMjAwCitTdWJqZWN0OiBbUEFU
Q0hdIGR0bHM6IHBvcnQgdG8gT3BlblNTTCAxLjEuMAorCitDaGFuZ2VzIGFyZToKKworLSBVc2Ug
dGhlIHdyYXBwZXIgZnVuY3Rpb25zIHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4gIFRvIHBy
ZXNlcnZlCisgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBkZWZpbml0
aW9ucworCistIFJlbW92ZSB0aGUgdXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wtPmQxLT5z
ZW50X21lc3NhZ2VzKSIsIHNpbmNlCisgIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50CisKKy0gVXNl
IFJTQV9nZW5lcmF0ZV9rZXlfZXggaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0FfZ2VuZXJh
dGVfa2V5CisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM1
NDAKKy0tLQorIGV4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysrKysKKyBl
eHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyks
IDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNh
dGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCA5NWZiYjgzLi5jMWM5
NjAyIDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4
dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMTk5LDcgKzE5OSwyMiBAQCBpbml0X2dl
bmVyYXRlZCAoR3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKKyAgICAgcHJpdi0+cHJpdmF0ZV9r
ZXkgPSBOVUxMOworICAgICByZXR1cm47CisgICB9CisrCisrICAvKiBYWFg6IFJTQV9nZW5lcmF0
ZV9rZXkgaXMgYWN0dWFsbHkgZGVwcmVjYXRlZCBpbiAwLjkuOCAqLworKyNpZiBPUEVOU1NMX1ZF
UlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9rZXkgKDIw
NDgsIFJTQV9GNCwgTlVMTCwgTlVMTCk7CisrI2Vsc2UKKysgIHJzYSA9IFJTQV9uZXcgKCk7Cisr
ICBpZiAocnNhICE9IE5VTEwpIHsKKysgICAgQklHTlVNICplID0gQk5fbmV3ICgpOworKyAgICBp
ZiAoZSAhPSBOVUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCisrICAgICAgICAmJiBSU0Ff
Z2VuZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisrICAgICAgUlNBX2ZyZWUg
KHJzYSk7CisrICAgICAgcnNhID0gTlVMTDsKKysgICAgfQorKyAgICBCTl9mcmVlIChlKTsKKysg
IH0KKysjZW5kaWYKKyAKKyAgIGlmICghcnNhKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAo
c2VsZiwgImZhaWxlZCB0byBnZW5lcmF0ZSBSU0EiKTsKK2RpZmYgLS1naXQgYS9leHQvZHRscy9n
c3RkdGxzY29ubmVjdGlvbi5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYworaW5kZXgg
MzZmNmQ2My4uNzI4ZjVhNyAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9u
LmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKK0BAIC00Miw2ICs0Miw4IEBA
CisgI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+Cisg
CisrI2luY2x1ZGUgPHN0cmluZy5oPgorKworIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgKGdz
dF9kdGxzX2Nvbm5lY3Rpb25fZGVidWcpOworICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIGdzdF9k
dGxzX2Nvbm5lY3Rpb25fZGVidWcKKyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0RHRsc0Nv
bm5lY3Rpb24sIGdzdF9kdGxzX2Nvbm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCitAQCAtMjE2LDYg
KzIxOCwzOCBAQCBnc3RfZHRsc19jb25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICogZ29iamVj
dCkKKyAgIEdfT0JKRUNUX0NMQVNTIChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9jbGFzcykt
PmZpbmFsaXplIChnb2JqZWN0KTsKKyB9CisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIg
PCAweDEwMTAwMDAxTAorK3N0YXRpYyB2b2lkCisrQklPX3NldF9kYXRhIChCSU8gKiBiaW8sIHZv
aWQgKnB0cikKKyt7CisrICBiaW8tPnB0ciA9IHB0cjsKKyt9CisrCisrc3RhdGljIHZvaWQgKgor
K0JJT19nZXRfZGF0YSAoQklPICogYmlvKQorK3sKKysgIHJldHVybiBiaW8tPnB0cjsKKyt9Cisr
Cisrc3RhdGljIHZvaWQKKytCSU9fc2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBzaHV0ZG93
bikKKyt7CisrICBiaW8tPnNodXRkb3duID0gc2h1dGRvd247CisrfQorKworK3N0YXRpYyB2b2lk
CisrQklPX3NldF9pbml0IChCSU8gKiBiaW8sIGludCBpbml0KQorK3sKKysgIGJpby0+aW5pdCA9
IGluaXQ7CisrfQorKworK3N0YXRpYyBYNTA5ICoKKytYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQg
KFg1MDlfU1RPUkVfQ1RYICogY3R4KQorK3sKKysgIHJldHVybiBjdHgtPmNlcnQ7CisrfQorKyNl
bmRpZgorKworIHN0YXRpYyB2b2lkCisgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJvcGVydHkg
KEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgIGNvbnN0IEdWYWx1ZSAqIHZh
bHVlLCBHUGFyYW1TcGVjICogcHNwZWMpCitAQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9kdGxzX2Nv
bm5lY3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAor
ICAgICAgIHByaXYtPmJpbyA9IEJJT19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKCkp
OworICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmJpbyk7CisgCistICAgICAgcHJpdi0+
YmlvLT5wdHIgPSBzZWxmOworKyAgICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBzZWxmKTsK
KyAgICAgICBTU0xfc2V0X2JpbyAocHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJpbyk7Cisg
CisgICAgICAgU1NMX3NldF92ZXJpZnkgKHByaXYtPnNzbCwKK0BAIC01NzMsNiArNjA3LDcgQEAg
bG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICogc3RyKQor
ICAgc3RhdGVzIHw9ICghICFTU0xfd2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7CisgICBz
dGF0ZXMgfD0gKCEgIVNTTF93YW50X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOworIAorKyNpZiBP
UEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIEdTVF9MT0dfT0JKRUNUIChz
ZWxmLCAiJXM6IHJvbGU9JXMgYnVmPSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAorICAgICAgIHN0
ciwKKyAgICAgICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorQEAgLTU4
MSw2ICs2MTYsMTUgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0
IGdjaGFyICogc3RyKQorICAgICAgIHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAorICAgICAgIHBy
aXYtPmJpb19idWZmZXJfbGVuLAorICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAocHJpdi0+
c3NsKSwgU1NMX3N0YXRlX3N0cmluZ19sb25nIChwcml2LT5zc2wpKTsKKysjZWxzZQorKyAgR1NU
X0xPR19PQkpFQ1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwleCAlcyIs
CisrICAgICAgc3RyLAorKyAgICAgIHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDogInNlcnZl
ciIsCisrICAgICAgcHJpdi0+YmlvX2J1ZmZlciwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX29m
ZnNldCwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKysgICAgICBzdGF0ZXMsIFNTTF9n
ZXRfc3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+c3NsKSk7
CisrI2VuZGlmCisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNzM3LDcgKzc4MSw3IEBAIG9wZW5z
c2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1
MDlfY3R4KQorICAgc2VsZiA9IFNTTF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9uX2V4X2lu
ZGV4KTsKKyAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNUSU9OIChz
ZWxmKSwgRkFMU0UpOworIAorLSAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4NTA5X2N0
eC0+Y2VydCk7CisrICBwZW0gPSBfZ3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RPUkVfQ1RY
X2dldDBfY2VydCAoeDUwOV9jdHgpKTsKKyAKKyAgIGlmICghcGVtKSB7CisgICAgIEdTVF9XQVJO
SU5HX09CSkVDVCAoc2VsZiwKK0BAIC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJpZnlfY2Fs
bGJhY2sgKGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAg
ICAgZ2ludCBsZW47CisgCisgICAgICAgbGVuID0KKy0gICAgICAgICAgWDUwOV9OQU1FX3ByaW50
X2V4IChiaW8sIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAxLAorKyAg
ICAgICAgICBYNTA5X05BTUVfcHJpbnRfZXggKGJpbywKKysgICAgICAgICAgWDUwOV9nZXRfc3Vi
amVjdF9uYW1lIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEsCisgICAg
ICAgICAgIFhOX0ZMQUdfTVVMVElMSU5FKTsKKyAgICAgICBCSU9fcmVhZCAoYmlvLCBidWZmZXIs
IGxlbik7CisgICAgICAgYnVmZmVyW2xlbl0gPSAnXDAnOworQEAgLTc3Nyw2ICs4MjIsNyBAQCBv
cGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFgg
KiB4NTA5X2N0eCkKKyAgICAgIyMjIyMjIyMgICMjIyMgICMjIyMjIyMKKyAqLworIAorKyNpZiBP
UEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyBzdGF0aWMgQklPX01FVEhPRCBj
dXN0b21fYmlvX21ldGhvZHMgPSB7CisgICBCSU9fVFlQRV9CSU8sCisgICAic3RyZWFtIiwKK0BA
IC03OTUsMTEgKzg0MSwzNCBAQCBCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQorIHsK
KyAgIHJldHVybiAmY3VzdG9tX2Jpb19tZXRob2RzOworIH0KKysjZWxzZQorK3N0YXRpYyBCSU9f
TUVUSE9EICpjdXN0b21fYmlvX21ldGhvZHM7CisrCisrc3RhdGljIEJJT19NRVRIT0QgKgorK0JJ
T19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKHZvaWQpCisreworKyAgaWYgKGN1c3RvbV9iaW9fbWV0
aG9kcyAhPSBOVUxMKQorKyAgICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworKworKyAgY3Vz
dG9tX2Jpb19tZXRob2RzID0gQklPX21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJlYW0iKTsK
KysgIGlmIChjdXN0b21fYmlvX21ldGhvZHMgPT0gTlVMTAorKyAgICAgIHx8ICFCSU9fbWV0aF9z
ZXRfd3JpdGUgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKKysgICAgICB8
fCAhQklPX21ldGhfc2V0X3JlYWQgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9yZWFk
KQorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9f
bWV0aG9kX2N0cmwpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3RvbV9iaW9f
bWV0aG9kcywgYmlvX21ldGhvZF9uZXcpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9kZXN0cm95
IChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfZnJlZSkpIHsKKysgICAgQklPX21ldGhf
ZnJlZSAoY3VzdG9tX2Jpb19tZXRob2RzKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisr
ICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworK30KKysjZW5kaWYKKyAKKyBzdGF0aWMgaW50
CisgYmlvX21ldGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgc2l6
ZSkKKyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04g
KGJpby0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVD
VElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAi
QklPOiB3cml0aW5nICVkIiwgc2l6ZSk7CisgCitAQCAtODI0LDcgKzg5Myw3IEBAIGJpb19tZXRo
b2Rfd3JpdGUgKEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgc3RhdGlj
IGludAorIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQg
c2l6ZSkKKyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJ
T04gKGJpby0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09O
TkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAgIEdzdER0bHNDb25uZWN0aW9uUHJpdmF0
ZSAqcHJpdiA9IHNlbGYtPnByaXY7CisgICBndWludCBpbnRlcm5hbF9zaXplOworICAgZ2ludCBj
b3B5X3NpemU7CitAQCAtODY4LDcgKzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlv
LCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyBzdGF0aWMgbG9uZworIGJpb19tZXRob2Rf
Y3RybCAoQklPICogYmlvLCBpbnQgY21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCisgeworLSAg
R3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7
CisrICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19n
ZXRfZGF0YSAoYmlvKSk7CisgICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxm
LT5wcml2OworIAorICAgc3dpdGNoIChjbWQpIHsKK0BAIC05MTYsOCArOTg1LDggQEAgYmlvX21l
dGhvZF9uZXcgKEJJTyAqIGJpbykKKyB7CisgICBHU1RfTE9HX09CSkVDVCAoTlVMTCwgIkJJTzog
bmV3Iik7CisgCistICBiaW8tPnNodXRkb3duID0gMDsKKy0gIGJpby0+aW5pdCA9IDE7CisrICBC
SU9fc2V0X3NodXRkb3duIChiaW8sIDApOworKyAgQklPX3NldF9pbml0IChiaW8sIDEpOworIAor
ICAgcmV0dXJuIDE7CisgfQorQEAgLTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2ZyZWUgKEJJ
TyAqIGJpbykKKyAgICAgcmV0dXJuIDA7CisgICB9CisgCistICBHU1RfTE9HX09CSkVDVCAoR1NU
X0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpLCAiQklPIGZyZWUiKTsKKysgIEdTVF9MT0dfT0JK
RUNUIChHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklPIGZyZWUi
KTsKKyAgIHJldHVybiAwOworIH0KKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dw
ZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3It
Y2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3Qt
cGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJT
QV9nZW5lcmF0ZV9rLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5jNjY4NzczNzBjNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1w
bHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNB
X2dlbmVyYXRlX2sucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSAzYTA2OTE5M2UyNTM2NGVi
ZGFjYWM4NmY0YjAzMDIyYzE1MWVhMjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog
PT9VVEYtOD9xP1NlYmFzdGlhbj0yMERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFy
LmNvbT4KK0RhdGU6IE1vbiwgMTQgTm92IDIwMTYgMTE6MzI6MTcgKzAyMDAKK1N1YmplY3Q6IFtQ
QVRDSF0gZHRsc2NlcnRpZmljYXRlOiBGaXggZXJyb3IgY2hlY2tpbmcgaW4gUlNBX2dlbmVyYXRl
X2tleV9leCgpCisgdXNhZ2UKKworV2FzIGJyb2tlbiBkdXJpbmcgdGhlIHBvcnQgZm9yIE9wZW5T
U0wgMS4xLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0
MzI4CistLS0KKyBleHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyB8IDcgKysrKy0tLQorIDEg
ZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n
aXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0
aWZpY2F0ZS5jCitpbmRleCBjMWM5NjAyLi5jMmQ5YmIyIDEwMDY0NAorLS0tIGEvZXh0L2R0bHMv
Z3N0ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5j
CitAQCAtMjA3LDEyICsyMDcsMTMgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0
ZSAqIHNlbGYpCisgICByc2EgPSBSU0FfbmV3ICgpOworICAgaWYgKHJzYSAhPSBOVUxMKSB7Cisg
ICAgIEJJR05VTSAqZSA9IEJOX25ldyAoKTsKKy0gICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRf
d29yZCAoZSwgUlNBX0Y0KQorLSAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAy
MDQ4LCBlLCBOVUxMKSkgeworKyAgICBpZiAoZSA9PSBOVUxMIHx8ICFCTl9zZXRfd29yZCAoZSwg
UlNBX0Y0KQorKyAgICAgICAgfHwgIVJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwg
TlVMTCkpIHsKKyAgICAgICBSU0FfZnJlZSAocnNhKTsKKyAgICAgICByc2EgPSBOVUxMOworICAg
ICB9CistICAgIEJOX2ZyZWUgKGUpOworKyAgICBpZiAoZSkKKysgICAgICBCTl9mcmVlIChlKTsK
KyAgIH0KKyAjZW5kaWYKKyAKKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9w
YXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0
aC1maXJzdC1tb29mLWZvci1mci5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5z
LWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1m
ci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2E2MGRiNDc3
MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29k
LVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0
Y2gKQEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJiZmE0NTZm
MWVkNGU1ZGI0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhhYmllciBSb2RyaWd1
ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorRGF0ZTogVGh1LCA3IEFwciAyMDE2IDEz
OjU3OjE2ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhwb3NlIHN0
cmVhbXMgd2l0aCBmaXJzdCBtb29mIGZvcgorIGZyYWdtZW50ZWQgZm9ybWF0IgorCitUaGlzIHJl
dmVydHMgY29tbWl0IGQ4YmI2Njg3ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2YWQuCist
LS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxIC0K
KyAyIGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQorCitk
aWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwor
aW5kZXggMzliZTE2My4uOTYzNmI0YiAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5j
CisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTYwOSw3ICs2MDksNiBAQCBnc3RfcXRk
ZW11eF9pbml0IChHc3RRVERlbXV4ICogcXRkZW11eCkKKyAgIHF0ZGVtdXgtPnN0YXRlID0gUVRE
RU1VWF9TVEFURV9JTklUSUFMOworICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7CisgICBx
dGRlbXV4LT5wb3N0ZWRfcmVkaXJlY3QgPSBGQUxTRTsKKy0gIHF0ZGVtdXgtPnBlbmRpbmdfY29u
ZmlndXJlID0gRkFMU0U7CisgICBxdGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OworICAgcXRkZW11
eC0+dG9kcm9wID0gMDsKKyAgIHF0ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9uZXcgKCk7
CitAQCAtMjA0OSw3ICsyMDQ4LDYgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBx
dGRlbXV4LCBnYm9vbGVhbiBoYXJkKQorICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRkZW11eC0+
bWVkaWFfY2FwcywgTlVMTCk7CisgICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7CisgICAgIHF0
ZGVtdXgtPmdvdF9tb292ID0gRkFMU0U7CistICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJl
ID0gRkFMU0U7CisgICB9IGVsc2UgaWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7CisgICAgIGdzdF9m
bG93X2NvbWJpbmVyX3Jlc2V0IChxdGRlbXV4LT5mbG93Y29tYmluZXIpOworICAgICBmb3IgKG4g
PSAwOyBuIDwgcXRkZW11eC0+bl9zdHJlYW1zOyBuKyspCitAQCAtNjEwNCw3ICs2MTAyLDYgQEAg
Z3N0X3F0ZGVtdXhfcHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFu
IGZvcmNlKQorICAgICAgICAgICAgICZmb3VyY2MpOworICAgICAgICAgaWYgKGZvdXJjYyA9PSBG
T1VSQ0NfbW9vdikgeworICAgICAgICAgICBnaW50IG47CistICAgICAgICAgIGdib29sZWFuIGdv
dF9zYW1wbGVzID0gRkFMU0U7CisgCisgICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdtZW50ZWQg
c2V0dXAgd2UgY291bGQgdHJ5IHRvIHNjYW4gZm9yIG1vcmUKKyAgICAgICAgICAgICogYW5kIGVu
ZCB1cCBhdCB0aGUgdGhlIG1vb3YgKGFmdGVyIG1kYXQpIGFnYWluICovCitAQCAtNjEzNiwyNyAr
NjEzMywxOSBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11
eCwgZ2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAgKGRlbXV4
LCBkZW11eC0+bW9vdl9ub2RlKTsKKyAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3RyZWUgKGRl
bXV4KTsKKyAgICAgICAgICAgICBxdGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgpOworKyAg
ICAgICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KQorKyAgICAgICAgICAgICAgcXRkZW11eF9l
eHBvc2Vfc3RyZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAgIGVsc2UgeworIAorLSAgICAgICAg
ICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAgICAgICAg
ICAgIFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAg
ICAgICAgZ290X3NhbXBsZXMgfD0gc3RyZWFtLT5zdGJsX2luZGV4ID49IDA7CistICAgICAgICAg
ICAgfQorLSAgICAgICAgICAgIGlmICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3NhbXBsZXMp
IHsKKy0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KSB7CistICAgICAgICAgICAg
ICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKy0gICAgICAgICAgICAgIH0gZWxz
ZSB7CistICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBu
KyspIHsKKy0gICAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+
c3RyZWFtc1tuXTsKKy0gICAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3Ry
ZWFtIChkZW11eCwgc3RyZWFtKTsKKy0gICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAg
Zm9yIChuID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworKyAgICAgICAgICAgICAg
ICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKysKKysgICAgICAg
ICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7Cisg
ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3Bl
bmRpbmdfc2VnbWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29u
ZmlndXJlID0gRkFMU0U7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgIGRl
bXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IFRSVUU7CisgICAgICAgICAgICAgfQorIAorICAgICAg
ICAgICAgIGRlbXV4LT5nb3RfbW9vdiA9IFRSVUU7CisrICAgICAgICAgICAgZ3N0X3F0ZGVtdXhf
Y2hlY2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKKyAKKyAgICAgICAgICAgICAvKiBm
cmFnbWVudGVkIHN0cmVhbXMgaGVhZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0b21zICov
CisgICAgICAgICAgICAgaWYgKCFkZW11eC0+ZnJhZ21lbnRlZCkgeworQEAgLTYxNzUsNyArNjE2
NCw2IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBn
Ym9vbGVhbiBmb3JjZSkKKyAgICAgICAgICAgICBndWludDY0IGRpc3QgPSAwOworICAgICAgICAg
ICAgIEdzdENsb2NrVGltZSBwcmV2X3B0czsKKyAgICAgICAgICAgICBndWludDY0IHByZXZfb2Zm
c2V0OworLSAgICAgICAgICAgIGdpbnQgbjsKKyAKKyAgICAgICAgICAgICBHU1RfREVCVUdfT0JK
RUNUIChkZW11eCwgIlBhcnNpbmcgW21vb2ZdIik7CisgCitAQCAtNjIwOSwyNSArNjE5NywxNSBA
QCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xl
YW4gZm9yY2UpCisgICAgICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKyAgICAgICAg
ICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgLyogaW4gTVNT
IHdlIG5lZWQgdG8gZXhwb3NlIHRoZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdv
bid0IGdldCBhIG1vb3YgCistICAgICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBmb3JtYXQg
bmVlZCB0byBiZSBleHBvc2VkIGlmIGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBkYXRhICov
CistICAgICAgICAgICAgaWYgKGRlbXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGluZ19jb25m
aWd1cmUpIHsKKy0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKKy0gICAgICAg
ICAgICAgICAgaWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CistICAgICAgICAgICAg
ICAgICAgR3N0U2VnbWVudCBzZWdtZW50OworLSAgICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50
X2luaXQgKCZzZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworLSAgICAgICAgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworLSAgICAg
ICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3Nl
Z21lbnQgKCZzZWdtZW50KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBx
dGRlbXV4X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7CistICAgICAgICAgICAgICB9IGVsc2Ugewor
LSAgICAgICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7
CistICAgICAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVh
bXNbbl07CistICAgICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAo
ZGVtdXgsIHN0cmVhbSk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvKiBpbiBN
U1Mgd2UgbmVlZCB0byBleHBvc2UgdGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ug
d29uJ3QgZ2V0IGEgbW9vdiAqLworKyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21vZGUgJiYg
IWRlbXV4LT5leHBvc2VkKSB7CisrICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25l
d3NlZ21lbnQpIHsKKysgICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OworKyAgICAg
ICAgICAgICAgICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsK
KysgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVuZGluZ19u
ZXdzZWdtZW50Iik7CisrICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQg
PSBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKyAgICAgICAgICAgICAgIH0KKy0g
ICAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11
eCk7CistICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKKysg
ICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKyAgICAgICAgICAg
ICB9CisgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAo
ZGVtdXgsICJEaXNjYXJkaW5nIFttb29mXSIpOworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRk
ZW11eC5oIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK2luZGV4IDYwNjEyMTUuLmVjZjBjNjMgMTAw
NjQ0CistLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4
LmgKK0BAIC04OSw3ICs4OSw2IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBnYm9vbGVhbiBw
b3N0ZWRfcmVkaXJlY3Q7CisgCisgICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLworLSAgZ2Jv
b2xlYW4gcGVuZGluZ19jb25maWd1cmU7CisgICBndWludCBuZWVkZWRieXRlczsKKyAgIGd1aW50
IHRvZHJvcDsKKyAgIEdzdEFkYXB0ZXIgKmFkYXB0ZXI7CistLSAKKzIuOC4wLnJjMworCmRpZmYg
LS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1k
ZWNvZGUtdGltZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNl
LXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xZTlkZDk3Zjc5MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCkBAIC0w
LDAgKzEsMTQ2IEBACitGcm9tIDQ2ZDNlMGZhYTkyMjY0MzA5NGE1ZTQ2YTMyZTRmODJmNzc0YWU3
NzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/RW5yaXF1ZT0yME9j
YT1DMz1CMWE9MjBHb256PUMzPUExbGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KK0RhdGU6IFR1
ZSwgMTAgTm92IDIwMTUgMTM6MDk6MDAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIHRoZSB0
ZmR0IGRlY29kZSB0aW1lIHdoZW4gaXQncyBzaWduaWZpY2FudGx5IGRpZmZlcmVudAorIHRoYW4g
dGhlIHRpbWUgaW4gdGhlIGxhc3Qgc2FtcGxlIGlmIGFsd2F5cy1ob25vci10ZmR0IGlzIGVuYWJs
ZWQKKworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDIzMAor
LS0tCisgZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrCisgZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAgMSAr
CisgMiBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nc3Qv
aXNvbXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA4ODA1OTVlLi5k
OGI1NGYwIDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29t
cDQvcXRkZW11eC5jCitAQCAtNTM1LDYgKzUzNSwxMSBAQCBzdGF0aWMgdm9pZCBnc3RfcXRkZW11
eF9hcHBlbmRfcHJvdGVjdGlvbl9zeXN0ZW1faWQgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAg
ICBjb25zdCBnY2hhciAqIGlkKTsKKyBzdGF0aWMgdm9pZCBxdGRlbXV4X2dzdF9zdHJ1Y3R1cmVf
ZnJlZSAoR3N0U3RydWN0dXJlICogZ3N0c3RydWN0dXJlKTsKKyAKKytzdGF0aWMgdm9pZCBnc3Rf
cXRkZW11eF9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisr
ICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Cisrc3RhdGljIHZv
aWQgZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9w
X2lkLAorKyAgICBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworKworIHN0YXRp
YyB2b2lkCisgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3Mp
CisgeworQEAgLTU0Niw4ICs1NTEsMjEgQEAgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVRE
ZW11eENsYXNzICoga2xhc3MpCisgCisgICBwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVl
a19wYXJlbnQgKGtsYXNzKTsKKyAKKysgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IGdz
dF9xdGRlbXV4X3NldF9wcm9wZXJ0eTsKKysgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9
IGdzdF9xdGRlbXV4X2dldF9wcm9wZXJ0eTsKKysKKyAgIGdvYmplY3RfY2xhc3MtPmRpc3Bvc2Ug
PSBnc3RfcXRkZW11eF9kaXNwb3NlOworIAorKyAvKioKKysgICAqIEdzdFF0RGVtdXg6OmFsd2F5
cy1ob25vci10ZmR0OgorKyAgICoKKysgICAqIFJlcXVlc3RzIHRoZSBkZW11eGVyIHRvIHJlc3Bl
Y3Qgd2hhdCB0aGUgVEZEVCBhdG9tIHNheXMgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRp
b24gdGltZXN0YW1wcy4gRGVmYXVsdHMgdG8gRkFMU0UuCisrICAgKi8KKysgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkgKGdvYmplY3RfY2xhc3MsIFBST1BfQUxXQVlTX0hPTk9SX1RG
RFQsCisrICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4gKCJhbHdheXMtaG9ub3ItdGZkdCIsICJB
bHdheXMgaG9ub3IgVEZEVCIsCisrICAgICAgICAgICJXaGVuIGVuYWJsZWQsIFRGRFQgYXRvbSB3
aWxsIGFsd2F5cyBiZSByZXNwZWN0ZWQgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24g
dGltZXN0YW1wcyIsCisrICAgICAgICAgIEZBTFNFLCBHX1BBUkFNX1JFQURXUklURSB8IEdfUEFS
QU1fU1RBVElDX1NUUklOR1MpKTsKKysKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmNoYW5nZV9zdGF0
ZSA9IEdTVF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpOworICNpZiAw
CisgICBnc3RlbGVtZW50X2NsYXNzLT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0
X3F0ZGVtdXhfc2V0X2luZGV4KTsKK0BAIC02MTEsNiArNjI5LDcgQEAgZ3N0X3F0ZGVtdXhfaW5p
dCAoR3N0UVREZW11eCAqIHF0ZGVtdXgpCisgICBxdGRlbXV4LT5jZW5jX2F1eF9pbmZvX3NpemVz
ID0gTlVMTDsKKyAgIHF0ZGVtdXgtPmNlbmNfYXV4X3NhbXBsZV9jb3VudCA9IDA7CisgICBxdGRl
bXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMgPSBOVUxMOworKyAgcXRkZW11eC0+YWx3YXlzX2hv
bm9yX3RmZHQgPSBGQUxTRTsKKyAgIGdfcXVldWVfaW5pdCAoJnF0ZGVtdXgtPnByb3RlY3Rpb25f
ZXZlbnRfcXVldWUpOworICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNlZ21lbnQsIEdT
VF9GT1JNQVRfVElNRSk7CisgICBxdGRlbXV4LT5mbG93Y29tYmluZXIgPSBnc3RfZmxvd19jb21i
aW5lcl9uZXcgKCk7CitAQCAtNjM5LDYgKzY1OCw0MiBAQCBnc3RfcXRkZW11eF9kaXNwb3NlIChH
T2JqZWN0ICogb2JqZWN0KQorIH0KKyAKKyBzdGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4X3NldF9w
cm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgY29uc3QgR1Zh
bHVlICogdmFsdWUsIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4ICpxdGRl
bXV4ID0gR1NUX1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQpIHsKKysg
ICAgY2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1RfTE9DSyAo
cXRkZW11eCk7CisrICAgICAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBnX3ZhbHVlX2dl
dF9ib29sZWFuICh2YWx1ZSk7CisrICAgICAgR1NUX09CSkVDVF9VTkxPQ0sgKHF0ZGVtdXgpOwor
KyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJ
RF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJlYWs7Cisr
ICB9CisrfQorKworK3N0YXRpYyB2b2lkCisrZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2Jq
ZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUgKiB2YWx1ZSwKKysgICAgR1BhcmFt
U3BlYyAqIHBzcGVjKQorK3sKKysgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1VWCAo
b2JqZWN0KTsKKysKKysgIHN3aXRjaCAocHJvcF9pZCkgeworKyAgICBjYXNlIFBST1BfQUxXQVlT
X0hPTk9SX1RGRFQ6CisrICAgICAgR1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsKKysgICAgICBn
X3ZhbHVlX3NldF9ib29sZWFuICh2YWx1ZSwgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQpOwor
KyAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAg
ZGVmYXVsdDoKKysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVj
dCwgcHJvcF9pZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMg
dm9pZAorIGdzdF9xdGRlbXV4X3Bvc3Rfbm9fcGxheWFibGVfc3RyZWFtX2Vycm9yIChHc3RRVERl
bXV4ICogcXRkZW11eCkKKyB7CisgICBpZiAocXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0KSB7CitA
QCAtMjk5NSw2ICszMDUwLDE2IEBAIHF0ZGVtdXhfcGFyc2VfdHJ1biAoR3N0UVREZW11eCAqIHF0
ZGVtdXgsIEdzdEJ5dGVSZWFkZXIgKiB0cnVuLAorICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNb
c3RyZWFtLT5uX3NhbXBsZXMgLSAxXS50aW1lc3RhbXAgKworICAgICAgICAgICBzdHJlYW0tPnNh
bXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbjsKKyAKKysgICAgICAvKiBJZiB3
ZSdyZSBhbHdheXMgaG9ub3JpbmcgVEZEVCBhbmQgdGhlcmUncyBhIHNpZ25pZmljYXRpdmUgZGlm
ZmVyZW5jZQorKyAgICAgICAqIGJldHdlZW4gdGhlIGRlY29kZV90cyBhbmQgdGhlIHRpbWVzdGFt
cCwgcHJlZmVyIGRlY29kZV90cyAqLworKyAgICAgIGlmIChxdGRlbXV4LT5hbHdheXNfaG9ub3Jf
dGZkdCA9PSBUUlVFCisrICAgICAgICAgICYmIGFicyAoZGVjb2RlX3RzIC0gdGltZXN0YW1wKSA+
CisrICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLmR1cmF0
aW9uKSB7CisrICAgICAgICBHU1RfSU5GT19PQkpFQ1QgKHF0ZGVtdXgsCisrICAgICAgICAgICAg
ImRlY29kZV90cyBpcyBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIHRpbWVzdGFtcCwgdXNp
bmcgZGVjb2RlX3RzIik7CisrICAgICAgICB0aW1lc3RhbXAgPSBkZWNvZGVfdHM7CisrICAgICAg
fQorKworICAgICAgIGdzdF90cyA9IFFUU1RSRUFNVElNRV9UT19HU1RUSU1FIChzdHJlYW0sIHRp
bWVzdGFtcCk7CisgICAgICAgR1NUX0lORk9fT0JKRUNUIChxdGRlbXV4LCAiZmlyc3Qgc2FtcGxl
IHRzICUiIEdTVF9USU1FX0ZPUk1BVAorICAgICAgICAgICAiIChleHRlbmRzIHByZXZpb3VzIHNh
bXBsZXMpIiwgR1NUX1RJTUVfQVJHUyAoZ3N0X3RzKSk7CitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21w
NC9xdGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAoraW5kZXggNTNiZDA3MS4uZWNmMGM2
MyAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5oCisrKysgYi9nc3QvaXNvbXA0L3F0
ZGVtdXguaAorQEAgLTE1NCwxMiArMTU0LDIwIEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBn
dWludDggKmNlbmNfYXV4X2luZm9fc2l6ZXM7CisgICBndWludDMyIGNlbmNfYXV4X3NhbXBsZV9j
b3VudDsKKyAKKysgIGdib29sZWFuIGFsd2F5c19ob25vcl90ZmR0OworIH07CisgCisgc3RydWN0
IF9Hc3RRVERlbXV4Q2xhc3MgeworICAgR3N0RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKKyB9
OworIAorKy8qIHByb3BzICovCisrZW51bQorK3sKKysgIFBST1BfMCwKKysgIFBST1BfQUxXQVlT
X0hPTk9SX1RGRFQKKyt9OworKworIEdUeXBlIGdzdF9xdGRlbXV4X2dldF90eXBlICh2b2lkKTsK
KyAKKyBHX0VORF9ERUNMUworLS0gCisyLjYuMQorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0
Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFt
LWlmLXRoZS0ucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25s
eS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2gKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0NDZiZDU0NGMzCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMt
ZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gNWU0
M2VlNTk4OWQ3YjUxZGNiMzE0NWJkOTk3NTI1MjQ3YTNkNjJkYyBNb24gU2VwIDE3IDAwOjAwOjAw
IDIwMDEKK0Zyb206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNlYmFzdGlh
bkBjZW50cmljdWxhci5jb20+CitEYXRlOiBXZWQsIDExIE1heSAyMDE2IDE1OjA2OjM5ICswMzAw
CitTdWJqZWN0OiBbUEFUQ0hdIHR5cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50IGRvd25z
dHJlYW0gaWYgdGhlIHNpbmtwYWQgaXMKKyBub3QgaW4gUFVMTCBtb2RlCisKK1RoZSBvdGhlciBz
aWduYWwgaGFuZGxlcnMgb2YgdGhlIHR5cGUtZm91bmQgc2lnbmFsIG1pZ2h0IGhhdmUgcmVhY3Rp
dmF0ZWQKK3R5cGVmaW5kIGluIFBVTEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQUyBldmVu
dCBhdCB0aGF0IHBvaW50IHdvdWxkIGNhdXNlCitkZWFkbG9ja3MgYW5kIGlzIGluIGdlbmVyYWwg
dW5leHBlY3RlZCBieSBlbGVtZW50cyB0aGF0IGFyZSBpbiBQVUxMIG1vZGUuCisKK2h0dHBzOi8v
YnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDYKKy0tLQorIHBsdWdpbnMv
ZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwg
NCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVm
aW5kZWxlbWVudC5jIGIvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYworaW5k
ZXggYzY4NjQxMi4uNDUzZmY3NSAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlw
ZWZpbmRlbGVtZW50LmMKKysrKyBiL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50
LmMKK0BAIC0xNzksNiArMTc5LDEwIEBAIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUg
KEdzdFR5cGVGaW5kRWxlbWVudCAqIHR5cGVmaW5kLAorICAgR1NUX0lORk9fT0JKRUNUICh0eXBl
ZmluZCwgImZvdW5kIGNhcHMgJSIgR1NUX1BUUl9GT1JNQVQgIiwgcHJvYmFiaWxpdHk9JXUiLAor
ICAgICAgIGNhcHMsIHByb2JhYmlsaXR5KTsKKyAKKysgIC8qIERvIG5vdGhpbmcgaWYgZG93bnN0
cmVhbSBpcyBwdWxsaW5nIGZyb20gdXMgKi8KKysgIGlmIChHU1RfUEFEX01PREUgKHR5cGVmaW5k
LT5zcmMpID09IEdTVF9QQURfTU9ERV9QVUxMKQorKyAgICByZXR1cm47CisrCisgICBHU1RfT0JK
RUNUX0xPQ0sgKHR5cGVmaW5kKTsKKyAKKyAgIC8qIE5vdyBhY3R1YWxseSBzZW5kIHRoZSBDQVBT
IGV2ZW50IGRvd25zdHJlYW0uCistLSAKKzIuOC4xCg==
</data>
<flag name="review"
          id="330191"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>309028</attachid>
            <date>2017-05-04 02:33:30 -0700</date>
            <delta_ts>2017-05-09 00:57:44 -0700</delta_ts>
            <desc>git diff --stat output</desc>
            <filename>upstream.stat</filename>
            <type>text/plain</type>
            <size>23134</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">IENNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArKwogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvUGxhdGZvcm1XUEUuY21ha2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgIDIzICsrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hl
bGwvUGxhdGZvcm1XUEUuY21ha2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAzICsKIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgMTAgKwogU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9FR0wvZWds
cGxhdGZvcm0uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMiArLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx
MSArCiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMwICsrKwogU291cmNl
L1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyOSArKysKIFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzAgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICsKIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1XUEUuY21ha2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDMgKwogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDMwMiArKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgIDY1ICsrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L3dwZS9BY2Nlc3NpYmlsaXR5T2JqZWN0V1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgIDQyICsrKysKIFNvdXJjZS9XZWJDb3JlL2NvbmZpZy5oICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0K
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgODggKysrKysrKwogU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNv
cmUvcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwOCArKysrKysrKysKIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0N1cnNvci5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRHJhZ0RhdGEuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RHJhZ0ltYWdlLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5
c3RlbS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNo
YXJlZFRpbWVyLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRp
bWVyLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiAr
LQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICstCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9XaWRnZXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIv
RmlsZVN5c3RlbUdsaWIuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDQgKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5H
TEVXZWJLaXRCcmlkZ2UuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0
LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyAr
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsKIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAxMCArCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDEzICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9H
TENvbnRleHRFR0xXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgNDQgKysrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwICAgICAgICAgICAgICAgICAgICB8
ICAgOSArCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xDb21tb24uY3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSWNvbldQRS5jcHAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ0ICsrKysKIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JbWFnZVdQRS5jcHAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDMgKysrKwogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzNCArKysrKysrKysrKwogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5oICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwMSArKysrKysrKwogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNSArKysKIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRTdHJpbmdzV1BFLmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTEgKysrKwogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzNCArKysrKysrKysrKwogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1OCArKysrKwogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExNCArKysrKysrKysKIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzQgKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDY2ICsrKysrKwogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1MyArKysrKwogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICA2OSArKysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgNDUgKysrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1NvdW5kV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAzOCArKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9U
aGVtZVdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAxNDggKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
cGUvVGhlbWVXUEUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgIDQ3ICsrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9X
aWRnZXRXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgODUgKysrKysrKwogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICA5NSArKysrKysrKwogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2ds
aWIvR1NvY2tldE1vbml0b3IuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgNDczICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9X
ZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL3dwZS9XS0Jhc2VXUEUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAzNSArKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy93cGUvV2ViS2l0LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAxMDQgKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3Bw
ICAgICAgICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaCAgICAgICAg
ICAgICAgICAgfCAgIDEgKwogU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAgICAgICAgICAgICAg
ICB8ICA4NiArKysrKystCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmggICAgICAgICAgICAgICAg
IHwgIDI3ICsrLQogU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MiArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsKIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKwogU291cmNlL1dl
YktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArCiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgMjIgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMTMgKwogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmaW5pdGlvbnMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50V1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAzOCArKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQ
RS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzgg
KysrCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ2ICsrKysK
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDAgKysrKwogU291
cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4NyArKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjE1ICsrKysrKysrKysrKysr
KysrCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsrKysK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUuaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1OCArKysrKwogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1OSArKysrKwogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3MSArKysrKysKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTUgKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTkgKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgMjUgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgOTcgKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgNTYgKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAzMjEgKysrKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyNyArKysrKysrKysrCiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDgwICsrKysrKysKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTYgKysrKysKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNTMgKysrKysrKysrKysrCiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDgzICsrKysrKysKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDMgKysrKwogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0NiArKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
aGlsZFByb2Nlc3NQcm94eS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0
b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAxNDIgKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93
cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxNTMgKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5z
cGVjdG9yUHJveHkuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDEwICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5
Lm1lc3NhZ2VzLmluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICA3ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNDEgKysrKysrKysr
KysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNTYgKysrKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDY0ICsr
KysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5j
cHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU1ICsrKysr
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2VzV1BFLmNwcCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDg3ICsrKysrKysK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNjIgKysrKysrKysr
KysrKwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog
U291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArCiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgMjcgKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA4ICsKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgNTggKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
d3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAyNDYgKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAzOCArKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCAg
ICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDUgKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr
LQogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3Bw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1NSArKysrKwogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0OCArKysrCiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTkyICsrKysrKysrKysrKysrKwogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5oICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5MCArKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJV1BFLmNwcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ4ICsrKysKIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yV1BFLmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDUgKysrKwogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5OCArKysrKysrKwogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3NyArKysrKysKIFNvdXJjZS9XZWJLaXQy
L3dwZS93cGUtd2Via2l0LnBjLmluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKwogU291cmNlL2NtYWtlL0ZpbmRMaWJH
Qk0uY21ha2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICA0NiArKysrCiBTb3VyY2UvY21ha2UvRmluZFdQRUJhY2tl
bmQtbWVzYS5jbWFrZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgIDQ3ICsrKysKIFNvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC5j
bWFrZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgNDcgKysrKwogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDE0MSArKysrKysrKysrKwogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQt
cHJvZHVjdC1hcmNoaXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgOCArLQogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQt
YXJjaGl2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgNCArLQogVG9vbHMvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNSArCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDY2ICsr
KysrKwogVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBU
b29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBUb29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIFRvb2xzL1NjcmlwdHMv
YnVpbGQtd2Via2l0dGVzdHJ1bm5lciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFRvb2xzL1NjcmlwdHMvdXBkYXRl
LXdlYmtpdC1saWJzLWpoYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtp
dHdwZS1saWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgMjQgKysKIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgMzAgKystCiBUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3Qu
cG0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDMyICstLQogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0cy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMiArLQogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCAr
CiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd3BlLnB5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDc5ICsrKysrKysK
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjAgKysrKysKIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzUgKysrCiBUb29scy9U
ZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVV0aWxpdGllc1dQRS5jcHAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDY5ICsrKysrKwogVG9vbHMvVGVz
dFdlYktpdEFQSS93cGUvbWFpbi5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzMiArKysKIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzEgKysr
KysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50V1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOTU5ICsrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9B
Y3RpdmF0ZUZvbnRzV1BFLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
MTQ1ICsrKysrKysrKysrKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93
cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAzNSArKysKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rl
c3RSdW5uZXJXUEUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
NTcgKysrKysKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDcg
KysrKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArCiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIxICsrKysrKysrKysKIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNTAgKysrKysrKysrKysrKysr
KysrKysKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzEgKysr
KysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQwICsrKysr
KysrKysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTM5ICsr
KysrKysrKysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9tYWluLmNwcCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDM0
ICsrKwogVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBU
b29scy93cGUvZ2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDc2ICsrKysrKwogVG9v
bHMvd3BlL2poYnVpbGQubW9kdWxlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0NiArKysrKysrKysrKysr
KysrKysrCiBUb29scy93cGUvamhidWlsZHJjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI1ICsr
CiBUb29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZh
Y2UucGF0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMzICsrKysrKysr
KysrCiBUb29scy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1i
ZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2ggICAgICAgICAgIHwgIDMwICsrKwog
VG9vbHMvd3BlL3BhdGNoZXMvZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1m
aXgucGF0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzOSArKysKIFRvb2xz
L3dwZS9wYXRjaGVzL2dkYXRlLXN1cHByZXNzLXN0cmluZy1mb3JtYXQtbGl0ZXJhbC13YXJuaW5n
LnBhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjkgKysrCiBUb29scy93cGUv
cGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDM0ICsrKwogVG9vbHMvd3BlL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIzNiArKysrKysrKysrKysrKysrKysKIFRvb2xz
L3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJy
b3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2ggfCAgMzcgKysrCiBUb29scy93cGUv
cGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdp
dGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2ggICAgIHwgMTMzICsrKysrKysrKysrCiBUb29scy93
cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRj
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQ2ICsrKysrKysrKysrKwogVG9v
bHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQt
ZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoICAgICAgICAgICAgICB8ICAzMiArKysKIDIwOCBmaWxl
cyBjaGFuZ2VkLCAxMTE3MCBpbnNlcnRpb25zKCspLCAxMDAgZGVsZXRpb25zKC0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309485</attachid>
            <date>2017-05-09 00:57:44 -0700</date>
            <delta_ts>2017-05-09 00:57:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>492597</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDQxMmVmNjkyOTE5Li5kYTA4ODJjYzhjNiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA1LTA5ICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgd2Via2l0LWRl
diB0aHJlYWQ6CisgICAgICAgIGh0dHBzOi8vbGlzdHMud2Via2l0Lm9yZy9waXBlcm1haWwvd2Vi
a2l0LWRldi8yMDE3LUFwcmlsLzAyODkyMy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDogQWRkIHRoZSBXUEUgcG9ydCBpZGVudGlmaWVyLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9G
aW5kTGliR0JNLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvRmluZFdQRUJh
Y2tlbmQtbWVzYS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRXUEVC
YWNrZW5kLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5j
bWFrZTogQWRkZWQuCisKIDIwMTctMDUtMDQgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTYyMDYuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBlOWRjZDRlNmJlYS4uMDczOGY0MjdiZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA1LTA5ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BF
IHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAg
KiBQbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogc2hlbGwvUGxhdGZvcm1XUEUu
Y21ha2U6IEFkZGVkLgorCiAyMDE3LTA1LTA5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIENhbGxMaW5rSW5mb3MgYmVsb25naW5nIHRvIFdhc20tPkpTIHN0dWJz
IG5lZWQgdG8gYmUgaW5mb3JtZWQgd2hlbiB3ZSBjbGVhckNvZGUoKSBmcm9tIGFsbCBFeGVjdXRh
YmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYTg0YTA1ZDQwZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDIzIEBA
CitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKKyAgICAke0dMSUJfTElCUkFS
SUVTfQorKQorbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtXVEZfRElSfQorKQorCitzZXQoV1BFX0lO
U1RBTExFRF9KQVZBU0NSSVBUQ09SRV9IRUFERVJTCisgICAgQVBJL0pTQmFzZS5oCisgICAgQVBJ
L0pTQ29udGV4dFJlZi5oCisgICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAgICBBUEkvSlNTdHJpbmdS
ZWYuaAorICAgIEFQSS9KU1R5cGVkQXJyYXkuaAorICAgIEFQSS9KU1ZhbHVlUmVmLmgKKyAgICBB
UEkvSmF2YVNjcmlwdC5oCisgICAgQVBJL1dlYktpdEF2YWlsYWJpbGl0eS5oCispCisKK2luc3Rh
bGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hFQURFUlN9CisgICAgREVT
VElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJ
T059L1dQRS9KYXZhU2NyaXB0Q29yZSIKKyAgICBDT01QT05FTlQgIkRldmVsb3BtZW50IgorKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BFLmNtYWtl
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjMxODNhMmIwOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAt
MCwwICsxLDMgQEAKK2xpc3QoQVBQRU5EIEpTQ19MSUJSQVJJRVMKKyAgICAke0dMSUJfTElCUkFS
SUVTfQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCmluZGV4IDkzYjdiZTk3ZWYzLi5iZWQy
MDdjMjY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDE3LTA1LTA5ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAg
ICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgKiBpbmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oOgorICAgICAgICBB
bGxvdyBidWlsZGluZyBXUEUgb24gcGxhdGZvcm1zIHRoYXQgZG9uJ3QgcHJvdmlkZSBYMTEgbGli
cmFyaWVzLgorCiAyMDE3LTA1LTA0ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAYW0uc29u
eS5jb20+CiAKICAgICAgICAgW1dpbl0gUmVtb3ZlIHJlZHVuZGFudCBtYWNyb3MgdGhhdCBhcmUg
c2V0IGluIHRoZSBDTWFrZSBjb25maWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9p
bmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCmluZGV4IDk5OWY2ZTI4YjJjLi45YmI3NTkxMGFjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9FR0wvZWdscGxhdGZv
cm0uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oCkBAIC05OSw3ICs5OSw3IEBAIHR5cGVkZWYgc3RydWN0IEFOYXRpdmVXaW5kb3cqICAgICAg
ICAgICBFR0xOYXRpdmVXaW5kb3dUeXBlOwogdHlwZWRlZiBzdHJ1Y3QgZWdsX25hdGl2ZV9waXht
YXBfdCogICAgIEVHTE5hdGl2ZVBpeG1hcFR5cGU7CiB0eXBlZGVmIHZvaWQqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRUdMTmF0aXZlRGlzcGxheVR5cGU7CiAKLSNlbGlmIGRlZmluZWQoVVNF
X09aT05FKQorI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpIHx8IGRlZmluZWQoVVNFX1dQRSkKIAog
dHlwZWRlZiBpbnRwdHJfdCBFR0xOYXRpdmVEaXNwbGF5VHlwZTsKIHR5cGVkZWYgaW50cHRyX3Qg
RUdMTmF0aXZlV2luZG93VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNjA3Y2VhYjQ1ZTMuLjFkMGMxNGNmZGNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDE3LTA1LTA5ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdh
bGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIHd0Zi9nbGli
L1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oOgorCiAyMDE3LTA1LTA4ICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBTcGVjdWxhdGl2ZSBXaW5kb3dzIGJ1aWxkIGZpeCBh
ZnRlciByMjE2NDI4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggZTNjN2NiZDU0MmIuLjY4NTRhODFlMzk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtLmgKQEAgLTQ2NSw2ICs0NjUsOCBAQAogLyogUExBVEZPUk0oV0lOKSAqLwogI2lm
IGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsgMQorI2Vs
aWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQRSAxCiAj
ZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBub3QgcHJv
dmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTUwOSw3ICs1
MTEsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisj
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlSTyAxCiAj
ZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYyNSw3ICs2Mjcs
NyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRG
T1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYgLyogIWRl
ZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzc2LDcgKzc3OCw3IEBACiAjZGVmaW5l
IEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTXY3
LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChDUFUoQVJN
X1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oR1RL
KSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0RGR19K
SVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBTLiAqLwpA
QCAtOTYzLDcgKzk2NSw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIgKi8KICNp
ZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82NCkgfHwg
Q1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAmJiBFTkFC
TEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUoWDg2XzY0
KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9TKSkpICYm
IEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNkZWZpbmUg
RU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAzMCw3ICsxMDMyLDcgQEAKICNkZWZpbmUg
VVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9VTklY
X0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDgwLDExICsxMDgyLDExIEBACiAjZGVm
aW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisjaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAoUExBVEZP
Uk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1BVElPTl9G
UkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SIDEK
ICNlbmRpZgogCkBAIC0xMTQ3LDcgKzExNDksNyBAQAogI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0Vf
VVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAjZGVmaW5l
IEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RFWFRfREVD
T1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQ
RS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYjA2NDExZWQyZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMzAgQEAKK2xpc3Qo
QVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzVW5p
eC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL01haW5UaHJlYWRHZW5l
cmljLmNwcAorICAgIGdlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKKworICAgIGdsaWIvR0xp
YlV0aWxpdGllcy5jcHAKKyAgICBnbGliL0dSZWZQdHIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorCisgICAgdW5peC9DUFVUaW1lVW5peC5j
cHAKKykKKworbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUworICAgICR7R0xJQl9HSU9fTElCUkFS
SUVTfQorICAgICR7R0xJQl9HT0JKRUNUX0xJQlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVT
fQorICAgIHB0aHJlYWQKKyAgICAke1pMSUJfTElCUkFSSUVTfQorKQorCitsaXN0KEFQUEVORCBX
VEZfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CispCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oIGIvU291
cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAppbmRleCA4ZDI0N2MzMWU1
Ni4uYzlhNDU2NzUxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcFNv
dXJjZVByaW9yaXR5LmgKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJp
b3JpdHkuaApAQCAtMjMsNiArMjMsOCBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorI2lmIFBMQVRG
T1JNKEdUSykKKwogLy8gVGhpcyBpcyBhIGdsb2JhbCBlbnVtIHRvIGRlZmluZSBwcmlvcml0aWVz
IHVzZWQgYnkgR0xpYiBydW4gbG9vcCBzb3VyY2VzLgogLy8gSW4gR0xpYiwgcHJpb3JpdGllcyBh
cmUgcmVwcmVzZW50ZWQgYnkgYW4gaW50ZWdlciB3aGVyZSBsb3dlciB2YWx1ZXMgbWVhbgogLy8g
aGlnaGVyIHByaW9yaXR5LiBUaGUgZm9sbG93aW5nIG1hY3JvcyBhcmUgZGVmaW5lZCBpbiBHTGli
OgpAQCAtODAsNiArODIsMzMgQEAgZW51bSBSdW5Mb29wU291cmNlUHJpb3JpdHkgewogICAgIERp
c2tDYWNoZVdyaXRlID0gMjAwLAogfTsKIAorI2VsaWYgUExBVEZPUk0oV1BFKQorCitlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CisgICAgUnVuTG9vcERpc3BhdGNoZXIgPSAtNzAsCisgICAg
UnVuTG9vcFRpbWVyID0gLTcwLAorCisgICAgTWFpblRocmVhZERpc3BhdGNoZXJUaW1lciA9IC02
MCwKKworICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlclRpbWVyID0gLTgwLAorCisgICAgSmF2YXNj
cmlwdFRpbWVyID0gLTYwLAorICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lciA9IC02MCwKKworICAg
IExheWVyRmx1c2hUaW1lciA9IC03MCwKKyAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JUaW1lciA9
IC03MCwKKworICAgIENvbXBvc2l0aW5nVGhyZWFkVXBkYXRlVGltZXIgPSAtNzAsCisKKyAgICBS
ZWxlYXNlVW51c2VkUmVzb3VyY2VzVGltZXIgPSAtNzAsCisKKyAgICBBc3luY0lPTmV0d29yayA9
IC03MCwKKyAgICBEaXNrQ2FjaGVSZWFkID0gLTcwLAorICAgIERpc2tDYWNoZVdyaXRlID0gLTYw
Cit9OworCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6UnVuTG9v
cFNvdXJjZVByaW9yaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlOWMzYTQ3MDM0OC4uNDU5
ZGY3Y2Y3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDAzLDcgKzQwMDMsOCBAQCBpZiAo
RU5BQkxFX0dSQVBISUNTX0NPTlRFWFRfM0QgQU5EIE5PVCBXSU4zMikKICAgICBzZXRfcHJvcGVy
dHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAgICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJ
T05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9FU1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNM
KQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xTTAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RF
RklOSVRJT05TfSkKIAogICAgIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9y
dCBQUklWQVRFCiAgICAgICAgICIke1RISVJEUEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBlMjhjZTVmYjAzNy4uMmZiOGE1ZTQ3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAor
MjAxNy0wNS0wOSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlz
dGVuc2VuLgorCisgICAgICAgIHdlYmtpdC1kZXYgdGhyZWFkOgorICAgICAgICBodHRwczovL2xp
c3RzLndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtpdC1kZXYvMjAxNy1BcHJpbC8wMjg5MjMuaHRt
bAorCisgICAgICAgIEV4aXN0aW5nIGZpbGVzIG1vc3RseSBjaGFuZ2VkIHRvIHByb3Blcmx5IHVz
ZSBQTEFURk9STShXUEUpIGJ1aWxkIGd1YXJkcy4KKyAgICAgICAgSW4tZmlsZSBjaGFuZ2VzIHJl
bW92ZWQgZnJvbSB0aGlzIENoYW5nZUxvZyBlbnRyeSBmb3IgYnJldml0eS4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcDogQWRkZWQuCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcC4KKyAg
ICAgICAgKiBjb25maWcuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oOgor
ICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oOgorICAgICAgICAqIGVkaXRpbmcv
RWRpdG9yLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRp
bmcvd3BlL0VkaXRvcldQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKiBwYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9DdXJzb3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnRGF0YS5o
OgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL0Zp
bGVTeXN0ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5oOgorICAgICAgICAq
IHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkU3Ry
YXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vV2lk
Z2V0Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR0xDb250ZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HTENv
bnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2VnbC9HTENvbnRleHRFR0wuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Vn
bC9HTENvbnRleHRFR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250
ZXh0RUdMV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z2xpYi9BdWRpb0J1c0dMaWIuY3BwLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3dwZS9JbWFnZVdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS93cGUvQ3Vyc29yV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRTdHJpbmdz
V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5m
by5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAg
KiBwbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9SZW5kZXJUaGVtZVdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
YXRpdmVXZWJXaGVlbEV2ZW50LmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1l
V1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8u
aC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICog
cGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvU291
bmRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJ
bmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvV2lkZ2V0
V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5m
by5oLgorCiAyMDE3LTA1LTA5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBCdWlsZGluZyBXZWJraXQyR3RrIHdpdGhvdXQgT3BlbkdM
IGZhaWxzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZjY2NTc3YTY3ODMuLmU3MmI5MWVjOGE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wNS0wOSAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEx
MTAKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICog
cGFsL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKwogMjAxNy0wNS0wNCAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjIxNjIwNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZv
cm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV1BFLmNtYWtlCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NzVjMTg5ODRhZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UKQEAg
LTAsMCArMSwzIEBACitsaXN0KEFQUEVORCBQQUxfU09VUkNFUworICAgIGNyeXB0by9nY3J5cHQv
Q3J5cHRvRGlnZXN0R0NyeXB0LmNwcAorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTNiM2VmNjA0NzUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDMwMiBA
QAoraW5jbHVkZShwbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL0lt
YWdlRGVjb2RlcnMuY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL0xpbnV4LmNtYWtlKQoraW5jbHVk
ZShwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlKQorCisjIEFsbG93IGJ1aWxkaW5nIEFOR0xF
IG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHByb3ZpZGUgWDExIGhlYWRlcnMuCitsaXN0KEFQUEVO
RCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9OUyAiVVNFX1dQRSIpCisKK2xpc3QoQVBQRU5EIFdl
YkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke0RFUklWRURfU09VUkNFU19KQVZBU0NS
SVBUQ09SRV9ESVJ9IgorICAgICIke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9
L2luc3BlY3RvciIKKyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0KKyAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
QVBJIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYXNzZW1ibGVyIgorICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRl
Y29tcGlsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZmciCisgICAgIiR7SkFWQVND
UklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9k
b21qaXQiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9oZWFwIgorICAgICIke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0vZGVidWdnZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRlcnBy
ZXRlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2ppdCIKKyAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2xsaW50IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcGFyc2VyIgorICAg
ICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcHJvZmlsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9ydW50aW1lIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0veWFyciIKKyAgICAiJHtU
SElSRFBBUlRZX0RJUn0vQU5HTEUvIgorICAgICIke1RISVJEUEFSVFlfRElSfS9BTkdMRS9pbmNs
dWRlL0tIUiIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vY2Fpcm8iCisgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL2dseCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUi
CisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lciIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovIgorICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9uZyIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3BlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kIgor
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlIgorICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL3RleHQvaWN1IgorICAgICR7V1RGX0RJUn0KKykKKworbGlzdChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCisgICAgYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAKKyAg
ICBhY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3NpYmlsaXR5T2JqZWN0V1BFLmNwcAorCisgICAgbG9h
ZGVyL3NvdXAvQ2FjaGVkUmF3UmVzb3VyY2VTb3VwLmNwcAorICAgIGxvYWRlci9zb3VwL1N1YnJl
c291cmNlTG9hZGVyU291cC5jcHAKKworICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
U3RpY2t5Tm9kZS5jcHAKKyAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisg
ICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisKKyAgICBwYWdlL3Njcm9sbGluZy9j
b29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGlj
cy5jcHAKKyAgICBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ1N0
YXRlTm9kZUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisKKyAgICBwbGF0Zm9ybS9DdXJzb3IuY3Bw
CisgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25lLmNwcAorICAgIHBsYXRmb3JtL1BsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKKyAgICBwbGF0Zm9ybS9UaGVtZS5jcHAKKworICAgIHBsYXRmb3JtL2F1ZGlv
L2dsaWIvQXVkaW9CdXNHTGliLmNwcAorCisgICAgcGxhdGZvcm0vZ2xpYi9FdmVudExvb3BHbGli
LmNwcAorICAgIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCisgICAgcGxhdGZvcm0v
Z2xpYi9LZXllZERlY29kZXJHbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvS2V5ZWRFbmNvZGVy
R2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL01haW5UaHJlYWRTaGFyZWRUaW1lckdMaWIuY3Bw
CisgICAgcGxhdGZvcm0vZ2xpYi9TU0xLZXlHZW5lcmF0b3JHTGliLmNwcAorICAgIHBsYXRmb3Jt
L2dsaWIvU2hhcmVkQnVmZmVyR2xpYi5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29u
dGV4dC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dPRkZG
aWxlRm9ybWF0LmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3Jl
QmFja2VuZENhaXJvSW1wbC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0
aWxpdGllcy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9GbG9hdFJlY3RDYWlyby5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNh
aXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZv
cm1Db250ZXh0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Q
YXRoQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25NYXRyaXhDYWlyby5j
cHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBl
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJl
ZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFG
cmVlVHlwZS5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJl
YW1lckNhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRl
eHRDb250cm9sbGVySGFyZkJ1enouY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enov
SGFyZkJ1enpGYWNlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6
RmFjZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hh
cGVyLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5H
TENvbW1vbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMRVMuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNE
T3BlbkdMQ29tbW9uLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHQzRE9wZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3Jh
cnlPcGVuR0xTZXR0aW5nLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3Bl
blR5cGVWZXJ0aWNhbERhdGEuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZv
cm1EaXNwbGF5V1BFLmNwcAorCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1h
Z2VCYWNraW5nU3RvcmVDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9BdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nl
cnRpZmljYXRlSW5mby5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291
cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NyZWRlbnRpYWxTdG9yYWdlU291cC5jcHAKKyAgICBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvRE5TU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvR1JlZlB0clNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9y
YWdlU2Vzc2lvblNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5U2VydmVy
U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3Bw
CisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKyAgICBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICBwbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0
d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcAorICAgIHBsYXRmb3JtL25l
dHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcAorCisgICAgcGxhdGZvcm0vc291cC9T
aGFyZWRCdWZmZXJTb3VwLmNwcAorICAgIHBsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAKKworICAg
IHBsYXRmb3JtL3RleHQvSHlwaGVuYXRpb24uY3BwCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGVJ
Q1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisgICAgcGxhdGZvcm0v
dGV4dC9UZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAKKworICAgIHBsYXRmb3JtL3VuaXgvTG9n
Z2luZ1VuaXguY3BwCisKKyAgICBwbGF0Zm9ybS94ZGcvTUlNRVR5cGVSZWdpc3RyeVhkZy5jcHAK
KykKKworbGlzdChBUFBFTkQgV2ViQ29yZVBsYXRmb3JtV1BFX1NPVVJDRVMKKyAgICBlZGl0aW5n
L3dwZS9FZGl0b3JXUEUuY3BwCisKKyAgICBwYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCisK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcAorCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3Bl
L0ltYWdlV1BFLmNwcAorCisgICAgcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKKyAgICBwbGF0
Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGFzdGVi
b2FyZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNw
cAorICAgIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwCisgICAgcGxhdGZv
cm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9SZW5kZXJUaGVt
ZVdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuY3BwCisgICAgcGxh
dGZvcm0vd3BlL1NvdW5kV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9UaGVtZVdQRS5jcHAKKyAg
ICBwbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJDb3JlX1VT
RVJfQUdFTlRfU1RZTEVfU0hFRVRTCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYWNv
bnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmNzcworKQorCitzZXQoV2ViQ29yZV9VU0VSX0FHRU5U
X1NDUklQVFMKKyAgICAke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9qL21lZGlhQ29udHJvbHNM
b2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYWNvbnRy
b2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCispCisKK3NldChXZWJDb3JlX1VTRVJfQUdFTlRfU0NS
SVBUU19ERVBFTkRFTkNJRVMgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1l
V1BFLmNwcCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0NBSVJPX0xJ
QlJBUklFU30KKyAgICAke0VHTF9MSUJSQVJJRVN9CisgICAgJHtGT05UQ09ORklHX0xJQlJBUklF
U30KKyAgICAke0ZSRUVUWVBFMl9MSUJSQVJJRVN9CisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9
CisgICAgJHtHTElCX0dNT0RVTEVfTElCUkFSSUVTfQorICAgICR7R0xJQl9HT0JKRUNUX0xJQlJB
UklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R05VVExTX0xJQlJBUklFU30KKyAg
ICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0lDVV9MSUJSQVJJRVN9CisgICAgJHtMSUJH
Q1JZUFRfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9CisgICAgJHtMSUJYTUwy
X0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFSSUVTfQorICAgICR7U1FMSVRFX0xJQlJB
UklFU30KKyAgICAke1dQRV9MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5D
TFVERV9ESVJFQ1RPUklFUworICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7RUdMX0lO
Q0xVREVfRElSU30KKyAgICAke0ZPTlRDT05GSUdfSU5DTFVERV9ESVJTfQorICAgICR7RlJFRVRZ
UEUyX0lOQ0xVREVfRElSU30KKyAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7R05VVExT
X0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpaX0lOQ0xVREVfRElSU30KKyAgICAke0lDVV9J
TkNMVURFX0RJUlN9CisgICAgJHtMSUJHQ1JZUFRfSU5DTFVERV9ESVJTfQorICAgICR7TElCU09V
UF9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7TElCWFNM
VF9JTkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURFX0RJUn0KKyAgICAke1dQRV9JTkNM
VURFX0RJUlN9CispCisKK2FkZF9saWJyYXJ5KFdlYkNvcmVQbGF0Zm9ybVdQRSAke1dlYkNvcmVf
TElCUkFSWV9UWVBFfSAke1dlYkNvcmVQbGF0Zm9ybVdQRV9TT1VSQ0VTfSkKK2FkZF9kZXBlbmRl
bmNpZXMoV2ViQ29yZVBsYXRmb3JtV1BFIFdlYkNvcmUpCitXRUJLSVRfU0VUX0VYVFJBX0NPTVBJ
TEVSX0ZMQUdTKFdlYkNvcmVQbGF0Zm9ybVdQRSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVz
KFdlYkNvcmVQbGF0Zm9ybVdQRSBQUklWQVRFCisgICAgJHtXZWJDb3JlX0lOQ0xVREVfRElSRUNU
T1JJRVN9CispCit0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhXZWJDb3JlUGxhdGZvcm1XUEUg
U1lTVEVNIFBSSVZBVEUKKyAgICAke1dlYkNvcmVfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVN9
CispCit0YXJnZXRfbGlua19saWJyYXJpZXMoV2ViQ29yZVBsYXRmb3JtV1BFCisgICAgJHtXZWJD
b3JlX0xJQlJBUklFU30KKykKKworaWYgKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKQorICAgIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNw
cAorICAgICAgICBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCisgICAgICAgIGNy
eXB0by9DcnlwdG9LZXkuY3BwCisgICAgICAgIGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCisgICAg
ICAgIGNyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3BwCisKKyAgICAgICAgY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtQUVTX0dDTS5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0tXLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1FQ0RILmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1F
Q0RTQS5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5j
cHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5jcHAKKyAg
ICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmNwcAorICAgICAg
ICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmNwcAor
ICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NS5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAu
Y3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuY3BwCisg
ICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5jcHAKKyAgICAg
ICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNwcAorICAgICAgICBj
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwCisgICAgICAgIGNyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5jcHAKKworICAgICAgICBjcnlwdG8v
Z2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9n
Y3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19HQ01HQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0
L0NyeXB0b0FsZ29yaXRobUVDREhHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5
cHRvQWxnb3JpdGhtRUNEU0FHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRv
QWxnb3JpdGhtSEtERkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdv
cml0aG1ITUFDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRo
bVBCS0RGMkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1S
U0FFU19QS0NTMV92MV81R0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81R0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0
L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0
L0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5R0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0
L0NyeXB0b0tleUVDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0tleVJT
QUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9TZXJpYWxpemVkQ3J5cHRvS2V5V3Jh
cEdDcnlwdC5jcHAKKworICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwCisgICAg
ICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmNwcAorICAgICAgICBj
cnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5jcHAKKyAgICAgICAgY3J5cHRv
L2tleXMvQ3J5cHRvS2V5RUMuY3BwCisgICAgICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMu
Y3BwCisgICAgICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAKKyAgICAgICAgY3J5cHRv
L2tleXMvQ3J5cHRvS2V5UmF3LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJp
YWxpemF0aW9uUmF3LmNwcAorICAgICkKK2VuZGlmICgpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggYjBmYWZmZmY5OTQu
LjFjMzlhMGE5MGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNjYsNiArNjYsOCBAQCB0eXBlZGVmIFdlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyOwogI2VsaWYgUExB
VEZPUk0oR1RLKQogdHlwZWRlZiBzdHJ1Y3QgX0F0a09iamVjdCBBdGtPYmplY3Q7CiB0eXBlZGVm
IHN0cnVjdCBfQXRrT2JqZWN0IEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyOworI2VsaWYgUExB
VEZPUk0oV1BFKQorY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4geyB9OwogI2Vsc2UKIGNsYXNzIEFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyOwogI2VuZGlmCkBAIC0xMTUyLDYgKzExNTQsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgQ09NUHRyPEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPiBtX3dyYXBw
ZXI7CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgQXRrT2JqZWN0KiBtX3dyYXBwZXI7CisjZWxp
ZiBQTEFURk9STShXUEUpCisgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPiBt
X3dyYXBwZXI7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjE1NDE1OTRhZGVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAKQEAgLTAsMCArMSw2
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6ZGV0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQWNjZXNzaWJpbGl0eURldGFj
aG1lbnRUeXBlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6YXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1l
bnRDaGFuZ2VkKE5vZGUqLCBOb2RlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3NpYmlsaXR5T2JqZWN0V1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGU5NGM1OTk0Y2EKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0V1BFLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEln
YWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKworI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNo
bWVudCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK0FjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0eU9iamVjdDo6
YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIERlZmF1bHRCZWhhdmlvcjsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY29uZmlnLmggYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaAppbmRl
eCBlMzBmNDEyY2E4Yy4uN2Q5ZTQ2MGNhNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bmZpZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oCkBAIC05Niw3ICs5Niw3IEBACiAj
ZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oV1BFKQogI2RlZmluZSBVU0VfTkVXX1RIRU1FIDEKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAppbmRleCA0NDNhNjgyMTVhYi4uNGM3ZDAy
OThlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaApAQCAtMzYs
NyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0NFQ0NyeXB0b3IgKkNDRUNDcnlwdG9yUmVmOwog
dHlwZWRlZiBDQ0VDQ3J5cHRvclJlZiBQbGF0Zm9ybUVDS2V5OwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5X3Nl
eHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBnY3J5
X3NleHAqIFBsYXRmb3JtRUNLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlSU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVJTQS5oCmluZGV4IDMwNWJkNGM0M2EwLi40MWJjZTg1OWVhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwogdHlwZWRlZiBDQ1JTQUNyeXB0b3JS
ZWYgUGxhdGZvcm1SU0FLZXk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIC8vIGdjcnlfc2V4cCogZXF1YXRlcyBnY3J5X3Nl
eHBfdC4KIHN0cnVjdCBnY3J5X3NleHA7CiB0eXBlZGVmIGdjcnlfc2V4cCogUGxhdGZvcm1SU0FL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNTI1OWQzM2ExYWMuLjY1MmVlZTQ1
MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xMjQ1LDEzICsxMjQ1LDEzIEBA
IHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rp
b24pCiAgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1
bWVudChkb2N1bWVudCgpKTsKIAogICAgICAgICBpZiAoaW1hZ2VFbGVtZW50KSB7Ci0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgICAgICB3cml0ZUltYWdlVG9QYXN0
ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgKmltYWdlRWxlbWVu
dCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1lbnQoKS50aXRsZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgqaW1h
Z2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgpLnRpdGxlKCkpOwogI2VuZGlm
CiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAg
ICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0
IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KQEAgLTEz
NzYsNyArMTM3Niw3IEBAIHZvaWQgRWRpdG9yOjpjb3B5SW1hZ2UoY29uc3QgSGl0VGVzdFJlc3Vs
dCYgcmVzdWx0KQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICB1cmwgPSByZXN1bHQu
YWJzb2x1dGVJbWFnZVVSTCgpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICplbGVtZW50LCB1cmwsIHJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOwogI2Vs
c2UKICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgq
ZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0RGlzcGxheVN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDlkOTk0ZjNhM2YyLi40MmFmOWFhMjRjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCkBAIC00NTcsNyArNDU3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmlu
ZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVz
cGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJk
KFBhc3RlYm9hcmQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlSW1hZ2VUb1Bhc3Rl
Ym9hcmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmIGltYWdlRWxlbWVudCwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihQYXN0ZWJvYXJkV3Jp
dGVyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9y
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFjYTlhZjE3MjEyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9yV1BFLmNwcApAQCAtMCww
ICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIm1hcmt1cC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gY3JlYXRlRnJhZ21lbnRGcm9tUGFzdGVib2FyZERhdGEoUGFzdGVib2FyZCYgcGFzdGVib2Fy
ZCwgRnJhbWUmIGZyYW1lLCBSYW5nZSYgcmFuZ2UsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wm
IGNob3NlUGxhaW5UZXh0KQoreworICAgIGNob3NlUGxhaW5UZXh0ID0gZmFsc2U7CisKKyAgICBW
ZWN0b3I8U3RyaW5nPiB0eXBlcyA9IHBhc3RlYm9hcmQudHlwZXMoKTsKKyAgICBpZiAodHlwZXMu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5jb250
YWlucygidGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiKSAmJiBmcmFtZS5kb2N1bWVudCgpKSB7Cisg
ICAgICAgIFN0cmluZyBtYXJrdXAgPSBwYXN0ZWJvYXJkLnJlYWRTdHJpbmcoInRleHQvaHRtbDtj
aGFyc2V0PXV0Zi04Iik7CisgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoKmZyYW1lLmRvY3VtZW50KCksIG1hcmt1
cCwgZW1wdHlTdHJpbmcoKSwgRGlzYWxsb3dTY3JpcHRpbmdBbmRQbHVnaW5Db250ZW50KSkKKyAg
ICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisKKyAgICBpZiAoIWFsbG93UGxhaW5U
ZXh0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5jb250YWlucygi
dGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IikpIHsKKyAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0
cnVlOworICAgICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3Jl
YXRlRnJhZ21lbnRGcm9tVGV4dChyYW5nZSwgcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L3Bs
YWluO2NoYXJzZXQ9dXRmLTgiKSkpCisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CisgICAg
fQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgRWRpdG9yOjp3cml0ZVNlbGVjdGlv
blRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKQoreworICAgIFBhc3RlYm9hcmRX
ZWJDb250ZW50IHBhc3RlYm9hcmRDb250ZW50OworICAgIHBhc3RlYm9hcmRDb250ZW50LnRleHQg
PSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsKKyAgICBwYXN0ZWJvYXJkQ29udGVudC5t
YXJrdXAgPSBjcmVhdGVNYXJrdXAoKnNlbGVjdGVkUmFuZ2UoKSwgbnVsbHB0ciwgQW5ub3RhdGVG
b3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25Mb2NhbFVSTHMpOworICAgIHBhc3RlYm9h
cmQud3JpdGUocGFzdGVib2FyZENvbnRlbnQpOworfQorCit2b2lkIEVkaXRvcjo6d3JpdGVJbWFn
ZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBFZGl0b3I6OnBhc3Rl
V2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4
dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQoreworICAg
IFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJhbmdlKCk7CisgICAgaWYgKCFyYW5nZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKKyAgICBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21QYXN0ZWJvYXJk
RGF0YSgqcGFzdGVib2FyZCwgbV9mcmFtZSwgKnJhbmdlLCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQ
bGFpblRleHQpOworICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudCgqZnJh
Z21lbnQsIHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCisgICAgICAg
IHBhc3RlQXNGcmFnbWVudCgqZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJk
KCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggYjg5YzM2NWZmMGQuLjhjMjY4MjkzOGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCkBAIC0yNjEyLDcgKzI2MTIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aXNJ
bnNpZGVTY3JvbGxiYXIoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotI2lmICFQTEFURk9STShHVEspCisjaWYgIVBMQVRGT1JNKEdUSykg
JiYgIVBMQVRGT1JNKFdQRSkKIAogYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNh
bFRpY2tzSW50b0hvcml6b250YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dw
ZS9FdmVudEhhbmRsZXJXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93cGUvRXZlbnRIYW5k
bGVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTE0ZTBm
ZTNiZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhh
bmRsZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJF
dmVudEhhbmRsZXIuaCIKKworI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZv
cm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1l
bnRWaWV3KCkKK3sKKyAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQorICAgICAg
ICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUoJm1fZnJhbWUpOworfQor
Citib29sIEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29u
c3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0
TW91c2VEb3duRXZlbnRUb1dpZGdldChSZW5kZXJXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlRG93bkV2ZW50VG9XaWRnZXQoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVk
Vmlldyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0
RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBXaWRnZXQmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2
ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYsIEZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRv
U3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKiwgSGl0VGVzdFJl
c3VsdCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNl
RXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmLCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK09wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2Rp
Zmllcj4gRXZlbnRIYW5kbGVyOjphY2Nlc3NLZXlNb2RpZmllcnMoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXk7Cit9
CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jpem9u
dGFsKGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0N1cnNvci5oCmluZGV4IGNkY2YyNjVmMjYwLi41ZTkxMWQ3MDhiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKQEAgLTc0LDYgKzc0LDggQEAgdXNpbmcgUGxhdGZvcm1D
dXJzb3IgPSBSZWZQdHI8U2hhcmVkQ3Vyc29yPjsKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gTlND
dXJzb3IgKjsKICNlbGlmIFBMQVRGT1JNKEdUSykKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gR1Jl
ZlB0cjxHZGtDdXJzb3I+OworI2VsaWYgUExBVEZPUk0oV1BFKQordXNpbmcgUGxhdGZvcm1DdXJz
b3IgPSB2b2lkKjsKICNlbmRpZgogCiBjbGFzcyBDdXJzb3IgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Ry
YWdEYXRhLmgKaW5kZXggNjg5MTk3ZjdiNTYuLjUwY2ViODZjNTExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RyYWdEYXRhLmgKQEAgLTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgU2VsZWN0aW9uRGF0YTsKIH0KIHR5cGVkZWYgV2ViQ29yZTo6U2VsZWN0aW9uRGF0YSogRHJh
Z0RhdGFSZWY7Ci0jZWxpZiBQTEFURk9STShJT1MpCisjZWxpZiBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKFdQRSkKIHR5cGVkZWYgdm9pZCogRHJhZ0RhdGFSZWY7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAppbmRleCBlN2Q1M2Y5MTAzYy4uZmQ1NWRjOGU2MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCkBAIC00MSw3ICs0MSw3IEBAIHR5cGVkZWYg
c3RydWN0IENHSW1hZ2UgKkNHSW1hZ2VSZWY7CiBPQkpDX0NMQVNTIE5TSW1hZ2U7CiAjZWxpZiBQ
TEFURk9STShXSU4pCiB0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxpZiBQ
TEFURk9STShHVEspCisjZWxpZiBVU0UoQ0FJUk8pCiAjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIK
ICNlbmRpZgogCkBAIC02NCw3ICs2NCw3IEBAIHR5cGVkZWYgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IERyYWdJbWFnZVJlZjsKIHR5cGVkZWYgUmV0YWluUHRyPE5TSW1hZ2U+IERyYWdJbWFnZVJlZjsK
ICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgSEJJVE1BUCBEcmFnSW1hZ2VSZWY7Ci0jZWxp
ZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIHR5
cGVkZWYgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gRHJhZ0ltYWdlUmVmOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAppbmRleCAxOTViNjc2YmMyYi4uMWQ4MGI0YzE4
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKQEAgLTE5OCw3ICsxOTgsNyBA
QCBXRUJDT1JFX0VYUE9SVCBib29sIGZpbGVzSGF2ZVNhbWVWb2x1bWUoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJik7CiBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHBhdGhBc1VSTChjb25zdCBTdHJp
bmcmKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQogU3RyaW5nIGZpbGVuYW1lRm9yRGlzcGxheShjb25zdCBTdHJpbmcmKTsK
IENTdHJpbmcgYXBwbGljYXRpb25EaXJlY3RvcnlQYXRoKCk7CiBDU3RyaW5nIHNoYXJlZFJlc291
cmNlc1BhdGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJl
YWRTaGFyZWRUaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hh
cmVkVGltZXIuY3BwCmluZGV4IDc3OGNhYzJkOThiLi5kZGE2ODJlYjg0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwCkBAIC0zNCw3
ICszNCw3IEBAIE1haW5UaHJlYWRTaGFyZWRUaW1lciYgTWFpblRocmVhZFNoYXJlZFRpbWVyOjpz
aW5nbGV0b24oKQogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIAotI2lmICFQTEFURk9STShHVEsp
CisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkKIE1haW5UaHJlYWRTaGFyZWRU
aW1lcjo6TWFpblRocmVhZFNoYXJlZFRpbWVyKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKaW5kZXggNTkwZjY4OTRhZDMuLjQ5MDcz
MGYxNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hh
cmVkVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVk
VGltZXIuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIlNoYXJlZFRpbWVyLmgiCiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNl
bmRpZgogCkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgTWFpblRocmVhZFNoYXJlZFRp
bWVyKCk7CiAKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbV9maXJlZEZ1bmN0aW9uOwotI2lm
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICBS
dW5Mb29wOjpUaW1lcjxNYWluVGhyZWFkU2hhcmVkVGltZXI+IG1fdGltZXI7CiAjZW5kaWYKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggOGMyMTNkOWUzMjkuLjg3YWM3
ZjBlNDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCkBAIC02Miw3ICs2Miw3
IEBAIGVudW0gU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyIHsgRGVm
YXVsdFNlbGVjdGVkVGV4dFR5cGUsIEluY2x1CiAvLyBGb3Igd3JpdGluZyB0byB0aGUgcGFzdGVi
b2FyZC4gR2VuZXJhbGx5IHNvcnRlZCB3aXRoIHRoZSByaWNoZXN0IGZvcm1hdHMgb24gdG9wLgog
CiBzdHJ1Y3QgUGFzdGVib2FyZFdlYkNvbnRlbnQgewotI2lmICEoUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXSU4pKQorI2lmICEoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBM
QVRGT1JNKFdQRSkpCiAgICAgV0VCQ09SRV9FWFBPUlQgUGFzdGVib2FyZFdlYkNvbnRlbnQoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB+UGFzdGVib2FyZFdlYkNvbnRlbnQoKTsKICAgICBib29sIGNh
blNtYXJ0Q29weU9yRGVsZXRlOwpAQCAtODAsNiArODAsMTAgQEAgc3RydWN0IFBhc3RlYm9hcmRX
ZWJDb250ZW50IHsKICAgICBTdHJpbmcgdGV4dDsKICAgICBTdHJpbmcgbWFya3VwOwogI2VuZGlm
CisjaWYgUExBVEZPUk0oV1BFKQorICAgIFN0cmluZyB0ZXh0OworICAgIFN0cmluZyBtYXJrdXA7
CisjZW5kaWYKIH07CiAKIHN0cnVjdCBQYXN0ZWJvYXJkVVJMIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKaW5kZXggZDcyZjEyMGZjZmMuLjNjNmRhNmM3
YmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRl
Z3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaApA
QCAtNzMsMTAgKzczLDE5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGxvbmcgc2V0UGF0aG5hbWVz
Rm9yVHlwZShjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5
cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAgICB2aXJ0dWFsIGxvbmcg
c2V0U3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRU
eXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKEdUSykKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVUb0NsaXBib2FyZChjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTZWxlY3Rpb25EYXRhJikgPSAwOwogICAgIHZpcnR1
YWwgUmVmPFNlbGVjdGlvbkRhdGE+IHJlYWRGcm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUpID0gMDsKICNlbmRpZiAvLyBQTEFURk9STShHVEspCisKKyNpZiBQTEFURk9S
TShXUEUpCisgICAgdmlydHVhbCB2b2lkIGdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykg
PSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5k
ZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5
cGUsIGNvbnN0IFN0cmluZyYpID0gMDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCB+UGFzdGVib2FyZFN0cmF0ZWd5KCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtUGFzdGVib2FyZC5oCmluZGV4IDg1YThjOWZjMDVjLi4yM2Y2ZjMwYzUyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKQEAgLTQwLDYg
KzQwLDEwIEBAIE9CSkNfQ0xBU1MgTlNQYXN0ZWJvYXJkOwogT0JKQ19DTEFTUyBVSVBhc3RlYm9h
cmQ7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfcGFzdGVib2FyZDsK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9yOwpAQCAtNTMsNyAr
NTcsNyBAQCBzdHJ1Y3QgUGFzdGVib2FyZFdlYkNvbnRlbnQ7CiBjbGFzcyBQbGF0Zm9ybVBhc3Rl
Ym9hcmQgewogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFBsYXRmb3JtUGFz
dGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKLSNpZiBQTEFURk9STShJT1Mp
CisjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShXUEUpCiAgICAgV0VCQ09SRV9FWFBPUlQg
UGxhdGZvcm1QYXN0ZWJvYXJkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4g
ZmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBn
ZXRUeXBlc0J5RmlkZWxpdHlGb3JJdGVtQXRJbmRleChWZWN0b3I8U3RyaW5nPiYgdHlwZXMsIGlu
dCBpbmRleCk7CkBAIC0xMTAsNiArMTE0LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShHVEsp
CiAgICAgR3RrQ2xpcGJvYXJkKiBtX2NsaXBib2FyZDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQ
RSkKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQqIG1fcGFzdGVib2FyZDsKKyNlbmRpZgogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCmluZGV4IDVi
YWQzY2QwZDU2Li42NGUzNTYzOTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmNwcApAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2Vj
dXJlU2NoZW1lcygpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJhYm91dCIpOwog
ICAgICAgICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgiZGF0YSIpOwogICAgICAgICBzZWN1cmVT
Y2hlbWVzLmdldCgpLmFkZCgid3NzIik7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgi
cmVzb3VyY2UiKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKaW5kZXgg
NTViNDlhNGRkYzcuLjVkN2FhNDhhNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaApAQCAt
NjEsNiArNjEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX0d0a0NvbnRhaW5lciBHdGtDb250YWluZXI7
CiB0eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAorI2lmIFBMQVRG
T1JNKFdQRSkKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1XaWRnZXQ7CisjZW5kaWYKKwogdHlwZWRl
ZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBhZ2VDbGllbnQ7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9C
dXNHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNH
TGliLmNwcAppbmRleCA3OTFiZmEzOTYzNi4uODE5NzViNjRhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAKQEAgLTI3LDEx
ICsyNywxNyBAQAogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
Z2xpYi9HVW5pcXVlUHRyLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisjZGVmaW5lIEFVRElPX0dS
RVNPVVJDRV9QQVRIICIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8iCisjZWxpZiBQTEFU
Rk9STShXUEUpCisjZGVmaW5lIEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dlYmtpdHdwZS9y
ZXNvdXJjZXMvYXVkaW8iCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVm
UHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3QgY2hhciog
bmFtZSwgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ19z
dHJkdXBfcHJpbnRmKCIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8vJXMiLCBuYW1lKSk7
CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdfc3RyZHVwX3ByaW50ZihBVURJT19HUkVTT1VS
Q0VfUEFUSCAiLyVzIiwgbmFtZSkpOwogICAgIEdSZWZQdHI8R0J5dGVzPiBkYXRhID0gYWRvcHRH
UmVmKGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHBhdGguZ2V0KCksIEdfUkVTT1VSQ0VfTE9PS1VQ
X0ZMQUdTX05PTkUsIG51bGxwdHIpKTsKICAgICBBU1NFUlQoZGF0YSk7CiAgICAgcmV0dXJuIGNy
ZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShnX2J5dGVzX2dldF9kYXRhKGRhdGEuZ2V0KCks
IG51bGxwdHIpLCBnX2J5dGVzX2dldF9zaXplKGRhdGEuZ2V0KCkpLCBmYWxzZSwgc2FtcGxlUmF0
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1H
bGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3Bw
CmluZGV4IDNjZDU0N2I3N2E2Li4yNjUxMDQ3ZTFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAgLTIxMyw2ICsyMTMsOSBAQCBDU3Ry
aW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQogICAgIGlmICghY2FjaGVkUGF0aC5pc051bGwoKSkK
ICAgICAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gZGF0YVBhdGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJUiwgIndwZSIs
IG51bGxwdHIpKTsKKyNlbGlmIFBMQVRGT1JNKEdUSykKICNpZiBPUyhXSU5ET1dTKQogICAgIEhN
T0RVTEUgaG1vZHVsZSA9IDA7CiAgICAgR2V0TW9kdWxlSGFuZGxlRXhBKEdFVF9NT0RVTEVfSEFO
RExFX0VYX0ZMQUdfRlJPTV9BRERSRVNTLCByZWludGVycHJldF9jYXN0PGNoYXIqPihzaGFyZWRS
ZXNvdXJjZXNQYXRoKSwgJmhtb2R1bGUpOwpAQCAtMjIyLDYgKzIyNSw3IEBAIENTdHJpbmcgc2hh
cmVkUmVzb3VyY2VzUGF0aCgpCiAjZWxzZQogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRhdGFQYXRo
KGdfYnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3ZWJraXRndGstIiBXRUJLSVRHVEtfQVBJX1ZF
UlNJT05fU1RSSU5HLCBOVUxMKSk7CiAjZW5kaWYKKyNlbmRpZgogCiAgICAgY2FjaGVkUGF0aCA9
IGRhdGFQYXRoLmdldCgpOwogICAgIHJldHVybiBjYWNoZWRQYXRoOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKaW5kZXggOTEx
NGU3NmM3NTkuLjJhY2NmYWQxNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNs
dWRlIDxPcGVuR0wvZ2wuaD4KICNlbGlmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRlICJPcGVuR0xF
U1NoaW1zLmgiCi0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdQRSkKICNpZiBVU0UoT1BFTkdMX0VTXzIpCiAjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+
CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5j
cHAKaW5kZXggNzBmNTg3MzkyZjYuLmMxNWJlYzVlOWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KFBs
YXRmb3JtRGlzcGxheSYgZGlzcAogICAgIH0KICNlbmRpZgogCi0jaWYgVVNFKEVHTCkgfHwgUExB
VEZPUk0oV0FZTEFORCkKKyNpZiBVU0UoRUdMKSB8fCBQTEFURk9STShXQVlMQU5EKSB8fCBQTEFU
Rk9STShXUEUpCiAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVHTDo6Y3JlYXRl
U2hhcmluZ0NvbnRleHQoZGlzcGxheSkpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKGVnbENvbnRl
eHQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5oCmluZGV4IDJjMGVhMjdlMTkzLi45ZDZkYjE3MmFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKQEAgLTI1LDcgKzI1LDE0IEBACiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZPUk0oR1RLKQor
I2lmIFBMQVRGT1JNKFdQRSkKKy8vIEZJWE1FOiBGb3Igbm93IGRlZmF1bHQgdG8gdGhlIEdCTSBF
R0wgcGxhdGZvcm0sIGJ1dCB0aGlzIHNob3VsZCByZWFsbHkgYmUKKy8vIHNvbWVob3cgZGVkdWNp
YmxlIGZyb20gdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24uCisjZGVmaW5lIF9fR0JNX18gMQorI2lu
Y2x1ZGUgPEVHTC9lZ2xwbGF0Zm9ybS5oPgorI2Vsc2UKICNpbmNsdWRlICJlZ2xwbGF0Zm9ybS5o
IgorI2VuZGlmCiB0eXBlZGVmIEVHTE5hdGl2ZVdpbmRvd1R5cGUgR0xOYXRpdmVXaW5kb3dUeXBl
OwogI2Vsc2UKIHR5cGVkZWYgdWludDY0X3QgR0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5k
ZXggN2Q4MGQ1YjQ1YjQuLmIyYjc5NTI1NDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTYwLDcgKzYwLDcgQEAK
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiBPQkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NM
QVNTIFdlYkdMTGF5ZXI7Ci0jZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTl9DQUlS
TykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOX0NBSVJPKSB8fCBQTEFURk9S
TShXUEUpCiB0eXBlZGVmIHVuc2lnbmVkIGludCBHTHVpbnQ7CiAjZW5kaWYKIApAQCAtMTM3Myw3
ICsxMzczLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTaGFkZXJOYW1lSGFz
aD4gbmFtZUhhc2hNYXBGb3JTaGFkZXJzOwogCi0jaWYgKChQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdJTikpICYmIFVTRShPUEVOR0xfRVNfMikpCisjaWYgKChQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdJTikgfHwgUExBVEZPUk0oV1BFKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKICAgICBm
cmllbmQgY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdMRVM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4
dGVuc2lvbnMzRE9wZW5HTEVTPiBtX2V4dGVuc2lvbnM7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMRVNTaGltcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMRVNTaGltcy5oCmluZGV4IGI0ZTk1MTU3MjE3
Li5hYjdjNmI4ZjM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvT3BlbkdMRVNTaGltcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L09wZW5HTEVTU2hpbXMuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBPcGVuR0xFU1NoaW1z
X2gKICNkZWZpbmUgT3BlbkdMRVNTaGltc19oCiAKLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdJTikKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0o
V1BFKQogI2RlZmluZSBnbEJpbmRGcmFtZWJ1ZmZlckVYVCBnbEJpbmRGcmFtZWJ1ZmZlcgogI2Rl
ZmluZSBnbEZyYW1lYnVmZmVyVGV4dHVyZTJERVhUIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQKICNk
ZWZpbmUgZ2xCaW5kUmVuZGVyYnVmZmVyRVhUIGdsQmluZFJlbmRlcmJ1ZmZlcgpAQCAtNDUsNiAr
NDUsNyBAQAogI2RlZmluZSBnbElzRnJhbWVidWZmZXJFWFQgZ2xJc0ZyYW1lYnVmZmVyCiAjZGVm
aW5lIGdsR2VuZXJhdGVNaXBtYXBFWFQgZ2xHZW5lcmF0ZU1pcG1hcAogI2RlZmluZSBHTF9ERVBU
SF9BVFRBQ0hNRU5UX0VYVCBHTF9ERVBUSF9BVFRBQ0hNRU5UCisjZGVmaW5lIEdMX0NPTE9SX0FU
VEFDSE1FTlQwX0VYVCBHTF9DT0xPUl9BVFRBQ0hNRU5UMAogI2RlZmluZSBHTF9GUkFNRUJVRkZF
Ul9DT01QTEVURV9FWFQgR0xfRlJBTUVCVUZGRVJfQ09NUExFVEUKICNkZWZpbmUgR0xfRlJBTUVC
VUZGRVJfRVhUIEdMX0ZSQU1FQlVGRkVSCiAjZGVmaW5lIEdMX0RFUFRIMjRfU1RFTkNJTDhfRVhU
IEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAppbmRleCA2N2VmYmNlYjhiMy4uMWI3MTk1
NGY1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtRGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1EaXNwbGF5LmNwcApAQCAtNDIsNiArNDIsMTAgQEAKICNpbmNsdWRlICJQbGF0Zm9ybURp
c3BsYXlXaW4uaCIKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgIlBsYXRm
b3JtRGlzcGxheVdQRS5oIgorI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8
Z2RrL2dkay5oPgogI2VuZGlmCkBAIC0xMDAsNiArMTA0LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkK
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybURpc3BsYXlYMTE+KG51bGxwdHIp
OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8UGxhdGZvcm1EaXNwbGF5V1BFPigpOworI2VuZGlmCisKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKaW5kZXggZjc2NGMyZDQ1MWYuLmNiNWZh
MWVmMzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuaApAQCAtNTQsNiArNTQsOSBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oV0lO
KQogICAgICAgICBXaW5kb3dzLAogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICBX
UEUsCisjZW5kaWYKICAgICB9OwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250
ZXh0RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRFR0wuY3BwCmluZGV4IDFjMWNlYzI2YWNmLi45ZmU3NTVmYzU4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKQEAg
LTIwNCw2ICsyMDQsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0
RUdMOjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkKICAgICBpZiAoZWdsQmlu
ZEFQSShnRUdMQVBJVmVyc2lvbikgPT0gRUdMX0ZBTFNFKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBpZiAocGxhdGZvcm1EaXNwbGF5LnR5cGUoKSA9
PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldQRSkgeworICAgICAgICBpZiAoYXV0byBjb250ZXh0
ID0gY3JlYXRlV1BFQ29udGV4dChwbGF0Zm9ybURpc3BsYXkpKQorICAgICAgICAgICAgcmV0dXJu
IGNvbnRleHQ7CisgICAgfQorI2VuZGlmCisKICAgICBhdXRvIGNvbnRleHQgPSBjcmVhdGVTdXJm
YWNlbGVzc0NvbnRleHQocGxhdGZvcm1EaXNwbGF5KTsKICAgICBpZiAoIWNvbnRleHQpIHsKICNp
ZiBQTEFURk9STShYMTEpCkBAIC0yNTEsNiArMjU4LDkgQEAgR0xDb250ZXh0RUdMOjp+R0xDb250
ZXh0RUdMKCkKICNpZiBQTEFURk9STShXQVlMQU5EKQogICAgIGRlc3Ryb3lXYXlsYW5kV2luZG93
KCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgZGVzdHJveVdQRVRhcmdldCgpOwor
I2VuZGlmCiB9CiAKIGJvb2wgR0xDb250ZXh0RUdMOjpjYW5SZW5kZXJUb0RlZmF1bHRGcmFtZWJ1
ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wv
R0xDb250ZXh0RUdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xD
b250ZXh0RUdMLmgKaW5kZXggZTVhMzM1OTdkN2IuLjlhMDMzZmViMmIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCkBAIC0z
Miw2ICszMiwxMCBAQAogc3RydWN0IHdsX2VnbF93aW5kb3c7CiAjZW5kaWYKIAorI2lmIFBMQVRG
T1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKyNlbmRpZgorCiB0eXBl
ZGVmIHZvaWQgKkVHTENvbmZpZzsKIHR5cGVkZWYgdm9pZCAqRUdMQ29udGV4dDsKIHR5cGVkZWYg
dm9pZCAqRUdMRGlzcGxheTsKQEAgLTczLDYgKzc3LDkgQEAgcHJpdmF0ZToKICAgICBHTENvbnRl
eHRFR0woUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCwgRUdMU3VyZmFjZSwgV2xVbmlxdWVQ
dHI8c3RydWN0IHdsX3N1cmZhY2U+JiYsIHN0cnVjdCB3bF9lZ2xfd2luZG93Kik7CiAgICAgdm9p
ZCBkZXN0cm95V2F5bGFuZFdpbmRvdygpOwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAg
IHZvaWQgZGVzdHJveVdQRVRhcmdldCgpOworI2VuZGlmCiAKICAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlV2luZG93Q29udGV4dChHTE5hdGl2ZVdpbmRvd1R5
cGUsIFBsYXRmb3JtRGlzcGxheSYsIEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRy
KTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlUGJ1ZmZl
ckNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51
bGxwdHIpOwpAQCAtODUsNiArOTIsOSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVXYXlsYW5kQ29udGV4dChQbGF0Zm9ybURpc3BsYXkm
LCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CiAgICAgc3RhdGljIEVHTFN1
cmZhY2UgY3JlYXRlV2luZG93U3VyZmFjZVdheWxhbmQoRUdMRGlzcGxheSwgRUdMQ29uZmlnLCBH
TE5hdGl2ZVdpbmRvd1R5cGUpOwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVXUEVDb250ZXh0KFBsYXRmb3Jt
RGlzcGxheSYsIEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKKyNlbmRpZgog
CiAgICAgc3RhdGljIGJvb2wgZ2V0RUdMQ29uZmlnKEVHTERpc3BsYXksIEVHTENvbmZpZyosIEVH
TFN1cmZhY2VUeXBlKTsKIApAQCAtOTgsNiArMTA4LDkgQEAgcHJpdmF0ZToKICAgICBXbFVuaXF1
ZVB0cjxzdHJ1Y3Qgd2xfc3VyZmFjZT4gbV93bFN1cmZhY2U7CiAgICAgc3RydWN0IHdsX2VnbF93
aW5kb3cqIG1fd2xXaW5kb3cgeyBudWxscHRyIH07CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUp
CisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFy
Z2V0PiBtX3dwZVRhcmdldDsKKyNlbmRpZgogI2lmIFVTRShDQUlSTykKICAgICBjYWlyb19kZXZp
Y2VfdCogbV9jYWlyb0RldmljZSB7IG51bGxwdHIgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWYzZjQyZDc2NDIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250
ZXh0RUdMV1BFLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgorCisjaWYgVVNFKEVHTCkgJiYg
UExBVEZPUk0oV1BFKQorCisjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0
RUdMOjpjcmVhdGVXUEVDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5LCBF
R0xDb250ZXh0IHNoYXJpbmdDb250ZXh0KQoreworICAgIGF1dG8gb2Zmc2NyZWVuVGFyZ2V0ID0g
ZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihwbGF0Zm9ybURpc3BsYXkpLmNyZWF0ZUVHTE9m
ZnNjcmVlblRhcmdldCgpOworICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZVdpbmRvd0NvbnRleHQo
b2Zmc2NyZWVuVGFyZ2V0LT5uYXRpdmVXaW5kb3coKSwgcGxhdGZvcm1EaXNwbGF5LCBzaGFyaW5n
Q29udGV4dCk7CisgICAgaWYgKGNvbnRleHQpCisgICAgICAgIGNvbnRleHQtPm1fd3BlVGFyZ2V0
ID0gV1RGTW92ZShvZmZzY3JlZW5UYXJnZXQpOworICAgIHJldHVybiBjb250ZXh0OworfQorCit2
b2lkIEdMQ29udGV4dEVHTDo6ZGVzdHJveVdQRVRhcmdldCgpCit7CisgICAgbV93cGVUYXJnZXQg
PSBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0Uo
RUdMKSAmJiBQTEFURk9STShXUEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggY2RhMDUzNDIyNTcuLmNhNGYwOTA3NDc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uu
Y3BwCkBAIC01OSw3ICs1OSw5IEBACiAjZW5kaWYKIAogI2lmIFVTRShFR0wpCisjaWYgIVBMQVRG
T1JNKFdQRSkKICNpbmNsdWRlICJHTENvbnRleHRFR0wuaCIKKyNlbmRpZgogI2luY2x1ZGUgPGdz
dC9nbC9lZ2wvZ3N0Z2xkaXNwbGF5X2VnbC5oPgogI2VuZGlmCiAKQEAgLTY5LDYgKzcxLDggQEAK
IAogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V2F5bGFu
ZC5oIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5o
IgogI2VuZGlmCiAKIC8vIGdzdGdsYXBpLmggbWF5IGluY2x1ZGUgZWdscGxhdGZvcm0uaCBhbmQg
aXQgaW5jbHVkZXMgWC5oLCB3aGljaApAQCAtNDM4LDYgKzQ0MiwxMSBAQCBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmVuc3VyZUdzdEdMQ29udGV4dCgpCiAgICAgICAgICAg
ICBtX2dsRGlzcGxheSA9IEdTVF9HTF9ESVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0
aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXYXlsYW5kPihzaGFyZWREaXNw
bGF5KS5lZ2xEaXNwbGF5KCkpKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorICAgICAg
ICBBU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5V1BFPihzaGFyZWREaXNwbGF5KSk7CisgICAgICAg
IG1fZ2xEaXNwbGF5ID0gR1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRo
X2VnbF9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdQRT4oc2hhcmVkRGlzcGxheSku
ZWdsRGlzcGxheSgpKSk7CisjZW5kaWYKKwogICAgICAgICBBU1NFUlQobV9nbERpc3BsYXkpOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAK
aW5kZXggYzdhMGVjN2YyNTIuLmFhZGUxNzVkNmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTM5OCw3ICszOTgsNyBAQCBib29sIEdyYXBo
aWNzQ29udGV4dDNEOjpjaGVja1ZhcnlpbmdzUGFja2luZyhQbGF0Zm9ybTNET2JqZWN0IHZlcnRl
eFNoYWRlciwgUGxhdAogICAgICAgICB2YXJpYWJsZXMucHVzaF9iYWNrKHZhcnlpbmdTeW1ib2wp
OwogCiAgICAgR0MzRGludCBtYXhWYXJ5aW5nVmVjdG9ycyA9IDA7Ci0jaWYgIVBMQVRGT1JNKElP
UykgJiYgISgoUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShHVEspKSAmJiBVU0UoT1BFTkdMX0VT
XzIpKQorI2lmICFQTEFURk9STShJT1MpICYmICEoKFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQogICAgIEdDM0RpbnQg
bWF4VmFyeWluZ0Zsb2F0cyA9IDA7CiAgICAgOjpnbEdldEludGVnZXJ2KEdMX01BWF9WQVJZSU5H
X0ZMT0FUUywgJm1heFZhcnlpbmdGbG9hdHMpOwogICAgIG1heFZhcnlpbmdWZWN0b3JzID0gbWF4
VmFyeWluZ0Zsb2F0cyAvIDQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93cGUvSWNvbldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93cGUvSWNvbldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmQzYzM3YmRmOGFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkljb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJY29uOjp+SWNvbigp
Cit7Cit9CisKK3ZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JikKK3sKK30KKworUmVmUHRyPEljb24+IEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dwZS9JbWFnZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
cGUvSW1hZ2VXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40
ODQzODY4NzkxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dwZS9JbWFnZVdQRS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKworI2luY2x1ZGUgPGNzdGRpbz4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit2b2lkIEJpdG1hcEltYWdlOjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCkK
K3sKK30KKworUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNv
bnN0IGNoYXIqIHJlc291cmNlKQoreworICAgIFdURkxvZ0Fsd2F5cygiV0FSTklORzogdHJ5aW5n
IHRvIGxvYWQgcGxhdGZvcm0gcmVzb3VyY2UgJyVzJyIsIHJlc291cmNlKTsKKyAgICByZXR1cm4g
Qml0bWFwSW1hZ2U6OmNyZWF0ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNw
bGF5V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9y
bURpc3BsYXlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5m
ZGE4YmJjZGIyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCisjaWYgUExBVEZPUk0oV1BF
KQorCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2lu
Y2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDx3cGUvcmVuZGVyZXItYmFja2VuZC1lZ2wuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybURpc3BsYXlXUEU6OlBsYXRmb3JtRGlz
cGxheVdQRSgpID0gZGVmYXVsdDsKKworUGxhdGZvcm1EaXNwbGF5V1BFOjp+UGxhdGZvcm1EaXNw
bGF5V1BFKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZGVzdHJveShtX2JhY2tl
bmQpOworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6aW5pdGlhbGl6ZShpbnQgaG9zdEZk
KQoreworICAgIG1fYmFja2VuZCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9jcmVhdGUoaG9z
dEZkKTsKKworICAgIG1fZWdsRGlzcGxheSA9IGVnbEdldERpc3BsYXkod3BlX3JlbmRlcmVyX2Jh
Y2tlbmRfZWdsX2dldF9uYXRpdmVfZGlzcGxheShtX2JhY2tlbmQpKTsKKyAgICBpZiAobV9lZ2xE
aXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiUGxhdGZv
cm1EaXNwbGF5V1BFOiBjb3VsZCBub3QgY3JlYXRlIHRoZSBFR0wgZGlzcGxheS4iKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIFBsYXRmb3JtRGlzcGxheTo6aW5pdGlhbGl6ZUVHTERp
c3BsYXkoKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFy
Z2V0PiBQbGF0Zm9ybURpc3BsYXlXUEU6OmNyZWF0ZUVHTFRhcmdldChFR0xUYXJnZXQ6OkNsaWVu
dCYgY2xpZW50LCBpbnQgaG9zdEZkKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVH
TFRhcmdldD4oKnRoaXMsIGNsaWVudCwgaG9zdEZkKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0PiBQbGF0Zm9ybURpc3BsYXlXUEU6
OmNyZWF0ZUVHTE9mZnNjcmVlblRhcmdldCgpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8RUdMT2Zmc2NyZWVuVGFyZ2V0PigqdGhpcyk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6
RUdMVGFyZ2V0OjpFR0xUYXJnZXQoY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJiBkaXNwbGF5LCBQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6Q2xpZW50JiBjbGllbnQsIGludCBob3N0RmQp
CisgICAgOiBtX2Rpc3BsYXkoZGlzcGxheSkKKyAgICAsIG1fY2xpZW50KGNsaWVudCkKK3sKKyAg
ICBtX2JhY2tlbmQgPSB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2NyZWF0ZShob3N0
RmQpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0
X2NsaWVudCBzX2NsaWVudCA9IHsKKyAgICAgICAgLy8gZnJhbWVfY29tcGxldGUKKyAgICAgICAg
W10odm9pZCogZGF0YSkKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgc3VyZmFjZSA9ICpy
ZWludGVycHJldF9jYXN0PEVHTFRhcmdldCo+KGRhdGEpOworICAgICAgICAgICAgc3VyZmFjZS5t
X2NsaWVudC5mcmFtZUNvbXBsZXRlKCk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfcmVu
ZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X3NldF9jbGllbnQobV9iYWNrZW5kLCAmc19jbGllbnQs
IHRoaXMpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6fkVHTFRhcmdldCgp
Cit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9kZXN0cm95KG1fYmFja2Vu
ZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OmluaXRpYWxpemUo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFy
Z2V0X2luaXRpYWxpemUobV9iYWNrZW5kLCBtX2Rpc3BsYXkubV9iYWNrZW5kLAorICAgICAgICBz
dGQ6Om1heCgwLCBzaXplLndpZHRoKCkpLCBzdGQ6Om1heCgwLCBzaXplLmhlaWdodCgpKSk7Cit9
CisKK0VHTE5hdGl2ZVdpbmRvd1R5cGUgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6Om5h
dGl2ZVdpbmRvdygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2Vn
bF90YXJnZXRfZ2V0X25hdGl2ZV93aW5kb3cobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0Zm9y
bURpc3BsYXlXUEU6OkVHTFRhcmdldDo6cmVzaXplKGNvbnN0IEludFNpemUmIHNpemUpCit7Cisg
ICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9yZXNpemUobV9iYWNrZW5kLCBzdGQ6
Om1heCgwLCBzaXplLndpZHRoKCkpLCBzdGQ6Om1heCgwLCBzaXplLmhlaWdodCgpKSk7Cit9CisK
K3ZvaWQgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OmZyYW1lV2lsbFJlbmRlcigpCit7
CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV93aWxsX3JlbmRlciht
X2JhY2tlbmQpOworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpmcmFt
ZVJlbmRlcmVkKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2ZyYW1l
X3JlbmRlcmVkKG1fYmFja2VuZCk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2Ny
ZWVuVGFyZ2V0OjpFR0xPZmZzY3JlZW5UYXJnZXQoY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJiBk
aXNwbGF5KQoreworICAgIG1fdGFyZ2V0ID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNj
cmVlbl90YXJnZXRfY3JlYXRlKCk7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNj
cmVlbl90YXJnZXRfaW5pdGlhbGl6ZShtX3RhcmdldCwgZGlzcGxheS5tX2JhY2tlbmQpOworfQor
CitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldDo6fkVHTE9mZnNjcmVlblRh
cmdldCgpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRf
ZGVzdHJveShtX3RhcmdldCk7Cit9CisKK0VHTE5hdGl2ZVdpbmRvd1R5cGUgUGxhdGZvcm1EaXNw
bGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ6Om5hdGl2ZVdpbmRvdygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2dldF9uYXRp
dmVfd2luZG93KG1fdGFyZ2V0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gUExBVEZPUk0oV1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi41OWIxNTJlMzc4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaApAQCAt
MCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oV1BFKQorCisjaW5jbHVkZSAiUGxhdGZv
cm1EaXNwbGF5LmgiCisKKy8vIEZJWE1FOiBGb3Igbm93IGRlZmF1bHQgdG8gdGhlIEdCTSBFR0wg
cGxhdGZvcm0sIGJ1dCB0aGlzIHNob3VsZCByZWFsbHkgYmUKKy8vIHNvbWVob3cgZGVkdWNpYmxl
IGZyb20gdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24uCisjZGVmaW5lIF9fR0JNX18gMQorI2luY2x1
ZGUgPEVHTC9lZ2xwbGF0Zm9ybS5oPgorCitzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWds
Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXQ7CitzdHJ1Y3Qgd3BlX3Jl
bmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXQ7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgR0xDb250ZXh0OworY2xhc3MgSW50U2l6ZTsKKworY2xhc3MgUGxhdGZvcm1E
aXNwbGF5V1BFIGZpbmFsIDogcHVibGljIFBsYXRmb3JtRGlzcGxheSB7CitwdWJsaWM6CisgICAg
UGxhdGZvcm1EaXNwbGF5V1BFKCk7CisgICAgdmlydHVhbCB+UGxhdGZvcm1EaXNwbGF5V1BFKCk7
CisKKyAgICB2b2lkIGluaXRpYWxpemUoaW50KTsKKworICAgIGNsYXNzIEVHTFRhcmdldCB7Cisg
ICAgcHVibGljOgorICAgICAgICBjbGFzcyBDbGllbnQgeworICAgICAgICBwdWJsaWM6CisgICAg
ICAgICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVDb21wbGV0ZSgpID0gMDsKKyAgICAgICAgfTsKKwor
ICAgICAgICBFR0xUYXJnZXQoY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJiwgQ2xpZW50JiwgaW50
KTsKKyAgICAgICAgfkVHTFRhcmdldCgpOworCisgICAgICAgIHZvaWQgaW5pdGlhbGl6ZShjb25z
dCBJbnRTaXplJik7CisgICAgICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2luZG93KCkg
Y29uc3Q7CisKKyAgICAgICAgdm9pZCByZXNpemUoY29uc3QgSW50U2l6ZSYpOworCisgICAgICAg
IHZvaWQgZnJhbWVXaWxsUmVuZGVyKCk7CisgICAgICAgIHZvaWQgZnJhbWVSZW5kZXJlZCgpOwor
CisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJiBtX2Rpc3Bs
YXk7CisgICAgICAgIENsaWVudCYgbV9jbGllbnQ7CisgICAgICAgIHN0cnVjdCB3cGVfcmVuZGVy
ZXJfYmFja2VuZF9lZ2xfdGFyZ2V0KiBtX2JhY2tlbmQ7CisgICAgfTsKKworICAgIGNsYXNzIEVH
TE9mZnNjcmVlblRhcmdldCB7CisgICAgcHVibGljOgorICAgICAgICBFR0xPZmZzY3JlZW5UYXJn
ZXQoY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJik7CisgICAgICAgIH5FR0xPZmZzY3JlZW5UYXJn
ZXQoKTsKKworICAgICAgICBFR0xOYXRpdmVXaW5kb3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0
OworCisgICAgcHJpdmF0ZToKKyAgICAgICAgc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2Vn
bF9vZmZzY3JlZW5fdGFyZ2V0KiBtX3RhcmdldDsKKyAgICB9OworCisgICAgc3RkOjp1bmlxdWVf
cHRyPEVHTFRhcmdldD4gY3JlYXRlRUdMVGFyZ2V0KEVHTFRhcmdldDo6Q2xpZW50JiwgaW50KTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8RUdMT2Zmc2NyZWVuVGFyZ2V0PiBjcmVhdGVFR0xPZmZzY3Jl
ZW5UYXJnZXQoKTsKKworcHJpdmF0ZToKKyAgICBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldQRTsgfQorCisgICAgc3RydWN0IHdwZV9y
ZW5kZXJlcl9iYWNrZW5kX2VnbCogbV9iYWNrZW5kOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1BMQVRGT1JNX0RJU1BMQVkoUGxhdGZvcm1E
aXNwbGF5V1BFLCBXUEUpCisKKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5kNGRjOTU1ZjkzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkN1cnNvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQ3Vy
c29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0Cit7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9Mb2NhbGl6
ZWRTdHJpbmdzV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRT
dHJpbmdzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTc2
MDE5Njk3MWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
TG9jYWxpemVkU3RyaW5nc1dQRS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NlYXJjaFdlYigpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIl9TZWFy
Y2ggdGhlIFdlYiIpOworfQorCitTdHJpbmcgdW5hY2NlcHRhYmxlVExTQ2VydGlmaWNhdGUoKQor
eworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJVbmFjY2VwdGFibGUgVExTIGNlcnRpZmlj
YXRlIik7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRTdHJpbmcoY29uc3QgY2hhcioga2V5KQorewor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwgc3RybGVuKGtleSkpOworfQorCisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmM3ODAwODNmZDAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGFzdGVib2FyZFdQRS5jcHAKQEAg
LTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5o
IgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkU3Ry
YXRlZ3kuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJv
YXJkPigpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlUHJpdmF0ZSgpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4o
KTsKK30KKworUGFzdGVib2FyZDo6UGFzdGVib2FyZCgpCit7Cit9CisKK2Jvb2wgUGFzdGVib2Fy
ZDo6aGFzRGF0YSgpCit7CisgICAgLy8gRklYTUU6IEdldHRpbmcgdGhlIGxpc3Qgb2YgdHlwZXMg
Zm9yIHRoaXMgaXMgd2FzdGVmdWwuIERvIHRoaXMgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgVmVj
dG9yPFN0cmluZz4gdHlwZXM7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRT
dHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcyk7CisgICAgcmV0dXJuICF0eXBlcy5pc0VtcHR5KCk7
Cit9CisKK1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5cGVzKCkKK3sKKyAgICBWZWN0b3I8
U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0
ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4gdHlwZXM7Cit9CisKK1N0cmluZyBQ
YXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICByZXR1cm4g
cGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5yZWFkU3RyaW5nRnJv
bVBhc3RlYm9hcmQoMCwgdHlwZSk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVTdHJpbmco
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcGxhdGZvcm1T
dHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT53cml0ZVRvUGFzdGVib2FyZCh0eXBl
LCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpjbGVhcigpCit7Cit9CisKK3ZvaWQgUGFz
dGVib2FyZDo6Y2xlYXIoY29uc3QgU3RyaW5nJikKK3sKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpy
ZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCit7CisgICAgdGV4dC50ZXh0ID0gcGxhdGZv
cm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5yZWFkU3RyaW5nRnJvbVBhc3Rl
Ym9hcmQoMCwgInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIpOworfQorCit2b2lkIFBhc3RlYm9h
cmQ6OnJlYWQoUGFzdGVib2FyZFdlYkNvbnRlbnRSZWFkZXImKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFVSTCYg
dXJsKQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+
d3JpdGVUb1Bhc3RlYm9hcmQoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIsIHVybC51cmwuc3Ry
aW5nKCkpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVHJ1c3R3b3J0aHlXZWJVUkxzUGJv
YXJkVHlwZShjb25zdCBQYXN0ZWJvYXJkVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRJbWFnZSYpCit7Cit9
CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNv
bnRlbnQpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgp
LT53cml0ZVRvUGFzdGVib2FyZChjb250ZW50KTsKK30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVi
b2FyZDo6cmVhZEZpbGVuYW1lcygpCit7CisgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cit9
CisKK2Jvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNlKCkKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVNYXJrdXAoY29uc3QgU3RyaW5nJikKK3sK
K30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQs
IFNtYXJ0UmVwbGFjZU9wdGlvbikKK3sKKyAgICB3cml0ZVN0cmluZygidGV4dC9wbGFpbjtjaGFy
c2V0PXV0Zi04IiwgdGV4dCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQYXN0ZWJvYXJk
KGNvbnN0IFBhc3RlYm9hcmQmKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZl
bnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mYTRmMzhl
MTFmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0
Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZHND
b21wYXRpYmlsaXR5KQoreworICAgIEFTU0VSVChtX3R5cGUgPT0gS2V5RG93bik7CisgICAgbV90
eXBlID0gdHlwZTsKKyAgICBpZiAoYmFja3dhcmRzQ29tcGF0aWJpbGl0eSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAg
ICAgICBtX3RleHQgPSBTdHJpbmcoKTsKKyAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IFN0cmlu
ZygpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fa2V5SWRlbnRpZmllciA9IFN0cmluZygpOwor
ICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9IDA7CisgICAgfQorfQorCitib29sIFBs
YXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUoKQoreworICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2Rp
ZmllclN0YXRlKGJvb2wmLCBib29sJiwgYm9vbCYsIGJvb2wmKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxh
dGZvcm1QYXN0ZWJvYXJkV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0
Zm9ybVBhc3RlYm9hcmRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5lNDU2ZWVlMmRmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVBhc3RlYm9hcmQuaCIKKworI2luY2x1ZGUgIlBh
c3RlYm9hcmQuaCIKKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8d3BlL3Bhc3RlYm9hcmQuaD4K
KyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZv
cm1QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYpCisgICAgOiBtX3Bhc3RlYm9hcmQod3BlX3Bhc3Rl
Ym9hcmRfZ2V0X3NpbmdsZXRvbigpKQoreworICAgIEFTU0VSVChtX3Bhc3RlYm9hcmQpOworfQor
CitQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRmb3JtUGFzdGVib2FyZCgpCisgICAgOiBtX3Bhc3Rl
Ym9hcmQod3BlX3Bhc3RlYm9hcmRfZ2V0X3NpbmdsZXRvbigpKQoreworICAgIEFTU0VSVChtX3Bh
c3RlYm9hcmQpOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6Z2V0VHlwZXMoVmVjdG9y
PFN0cmluZz4mIHR5cGVzKQoreworICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmdfdmVj
dG9yIHBhc3RlYm9hcmRUeXBlcyA9IHsgbnVsbHB0ciwgMCB9OworICAgIHdwZV9wYXN0ZWJvYXJk
X2dldF90eXBlcyhtX3Bhc3RlYm9hcmQsICZwYXN0ZWJvYXJkVHlwZXMpOworCisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHBhc3RlYm9hcmRUeXBlcy5sZW5ndGg7ICsraSkgeworICAgICAg
ICBhdXRvJiB0eXBlU3RyaW5nID0gcGFzdGVib2FyZFR5cGVzLnN0cmluZ3NbaV07CisgICAgICAg
IHR5cGVzLmFwcGVuZChTdHJpbmcodHlwZVN0cmluZy5kYXRhLCB0eXBlU3RyaW5nLmxlbmd0aCkp
OworICAgIH0KKworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ192ZWN0b3JfZnJlZSgmcGFzdGVi
b2FyZFR5cGVzKTsKK30KKworU3RyaW5nIFBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZFN0cmluZyhp
bnQsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3Ry
aW5nIHN0cmluZzsKKyAgICB3cGVfcGFzdGVib2FyZF9nZXRfc3RyaW5nKG1fcGFzdGVib2FyZCwg
dHlwZS51dGY4KCkuZGF0YSgpLCAmc3RyaW5nKTsKKworICAgIFN0cmluZyByZXR1cm5WYWx1ZShz
dHJpbmcuZGF0YSwgc3RyaW5nLmxlbmd0aCk7CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdf
ZnJlZSgmc3RyaW5nKTsKKyAgICByZXR1cm4gcmV0dXJuVmFsdWU7Cit9CisKK3ZvaWQgUGxhdGZv
cm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkK
K3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciBwbGFpblRleHRbXSA9ICJ0ZXh0L3BsYWluO2NoYXJz
ZXQ9dXRmLTgiOworICAgIHN0YXRpYyBjb25zdCBjaGFyIGh0bWxUZXh0W10gPSAidGV4dC9odG1s
O2NoYXJzZXQ9dXRmLTgiOworCisgICAgQ1N0cmluZyB0ZXh0U3RyaW5nID0gY29udGVudC50ZXh0
LnV0ZjgoKTsKKyAgICBDU3RyaW5nIG1hcmt1cFN0cmluZyA9IGNvbnRlbnQubWFya3VwLnV0Zjgo
KTsKKworICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmdfcGFpciBwYWlyc1tdID0gewor
ICAgICAgICB7IHsgbnVsbHB0ciwgMCB9LCB7IG51bGxwdHIsIDAgfSB9LAorICAgICAgICB7IHsg
bnVsbHB0ciwgMCB9LCB7IG51bGxwdHIsIDAgfSB9LAorICAgIH07CisgICAgd3BlX3Bhc3RlYm9h
cmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzBdLnR5cGUsIHBsYWluVGV4dCwgc3RybGVuKHBs
YWluVGV4dCkpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1sw
XS5zdHJpbmcsIHRleHRTdHJpbmcuZGF0YSgpLCB0ZXh0U3RyaW5nLmxlbmd0aCgpKTsKKyAgICB3
cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMV0udHlwZSwgaHRtbFRleHQs
IHN0cmxlbihodG1sVGV4dCkpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXpl
KCZwYWlyc1sxXS5zdHJpbmcsIG1hcmt1cFN0cmluZy5kYXRhKCksIG1hcmt1cFN0cmluZy5sZW5n
dGgoKSk7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAgbWFwID0geyBwYWly
cywgMiB9OworCisgICAgd3BlX3Bhc3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJvYXJkLCAmbWFwKTsK
KworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS50eXBlKTsKKyAgICB3
cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsKKyAgICB3cGVfcGFz
dGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMV0udHlwZSk7CisgICAgd3BlX3Bhc3RlYm9hcmRf
c3RyaW5nX2ZyZWUoJnBhaXJzWzFdLnN0cmluZyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1QYXN0ZWJv
YXJkOjp3cml0ZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorewor
ICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmdfcGFpciBwYWlyc1tdID0geworICAgICAg
ICB7IHsgbnVsbHB0ciwgMCB9LCB7IG51bGxwdHIsIDAgfSB9LAorICAgIH07CisgICAgd3BlX3Bh
c3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzBdLnR5cGUsIHR5cGUudXRmOCgpLmRh
dGEoKSwgdHlwZS51dGY4KCkubGVuZ3RoKCkpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19p
bml0aWFsaXplKCZwYWlyc1swXS5zdHJpbmcsIHN0cmluZy51dGY4KCkuZGF0YSgpLCBzdHJpbmcu
dXRmOCgpLmxlbmd0aCgpKTsKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX21hcCBt
YXAgPSB7IHBhaXJzLCAxIH07CisKKyAgICB3cGVfcGFzdGVib2FyZF93cml0ZShtX3Bhc3RlYm9h
cmQsICZtYXApOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBdLnR5
cGUpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS5zdHJpbmcpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93cGUvUGxhdGZvcm1TY3JlZW5XUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZTA4ZWI3ZGU4YzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3JlZW5XUEUuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisKKyNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2ludCBzY3JlZW5EZXB0aChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIDI0OworfQorCitpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQoV2lkZ2V0
KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiA4OworfQorCitib29sIHNj
cmVlbklzTW9ub2Nocm9tZShXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzKCkKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK0Zsb2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdldCopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gRmxvYXRSZWN0KDAsIDAsIDEwMjQsIDY0
MCk7Cit9CisKK0Zsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gRmxvYXRSZWN0KDAsIDAsIDEwMjQsIDY0MCk7
Cit9CisKK2Jvb2wgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKFdpZGdldCopCit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uYjU5ZTMzYmRjYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lV1BFLmgiCisKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFNjcmlwdHMuaCIKKyNpbmNs
dWRlICJVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8UmVuZGVyVGhlbWU+IFJlbmRl
clRoZW1lOjp0aGVtZUZvclBhZ2UoUGFnZSopCit7CisgICAgc3RhdGljIFJlbmRlclRoZW1lJiB0
aGVtZSA9IFJlbmRlclRoZW1lV1BFOjpjcmVhdGUoKS5sZWFrUmVmKCk7CisgICAgcmV0dXJuIHRo
ZW1lOworfQorCit2b2lkIFJlbmRlclRoZW1lV1BFOjp1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVz
Y3JpcHRpb24oQ1NTVmFsdWVJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0Cit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFJlbmRlclRoZW1lV1BFOjpleHRyYURl
ZmF1bHRTdHlsZVNoZWV0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKKyNpZiBFTkFC
TEUoVklERU8pCitTdHJpbmcgUmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNTdHlsZVNoZWV0
KCkKK3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKG1lZGlhQ29udHJvbHNCYXNlVXNlckFnZW50
U3R5bGVTaGVldCk7Cit9CisKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6bWVkaWFDb250cm9sc1Nj
cmlwdCgpCit7CisgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOworICAgIHNjcmlwdEJ1
aWxkZXIuYXBwZW5kKG1lZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJpbmdzSmF2YVNjcmlwdCwgc2l6
ZW9mKG1lZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJpbmdzSmF2YVNjcmlwdCkpOworICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kKG1lZGlhQ29udHJvbHNCYXNlSmF2YVNjcmlwdCwgc2l6ZW9mKG1lZGlh
Q29udHJvbHNCYXNlSmF2YVNjcmlwdCkpOworICAgIHJldHVybiBzY3JpcHRCdWlsZGVyLnRvU3Ry
aW5nKCk7Cit9CisjZW5kaWYKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmVmYjJmZTg5NGM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmgKQEAgLTAsMCArMSw1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJUaGVtZVdQRSBmaW5hbCA6
IHB1YmxpYyBSZW5kZXJUaGVtZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW5kZXJUaGVt
ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbmRlclRo
ZW1lV1BFKTsKKyAgICB9CisKKyAgICBTdHJpbmcgZXh0cmFEZWZhdWx0U3R5bGVTaGVldCgpIG92
ZXJyaWRlOworI2lmIEVOQUJMRShWSURFTykKKyAgICBTdHJpbmcgbWVkaWFDb250cm9sc1N0eWxl
U2hlZXQoKSBvdmVycmlkZTsKKyAgICBTdHJpbmcgbWVkaWFDb250cm9sc1NjcmlwdCgpIG92ZXJy
aWRlOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVuZGVyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7
CisgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIHVw
ZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURl
c2NyaXB0aW9uJikgY29uc3Qgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVX
UEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGY5ZmU1ZDRkODQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhl
bWVXUEUuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9s
bGJhclRoZW1lV1BFLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2Jvb2wgU2Nyb2xsYmFyVGhlbWVXUEU6Omhhc0J1dHRvbnMoU2Nyb2xs
YmFyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0cnVlOworfQorCiti
b29sIFNjcm9sbGJhclRoZW1lV1BFOjpoYXNUaHVtYihTY3JvbGxiYXImKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFyVGhl
bWVXUEU6OmJhY2tCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVjdCgpOworfQorCitJbnRS
ZWN0IFNjcm9sbGJhclRoZW1lV1BFOjpmb3J3YXJkQnV0dG9uUmVjdChTY3JvbGxiYXImLCBTY3Jv
bGxiYXJQYXJ0LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIElu
dFJlY3QoKTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6dHJhY2tSZWN0KFNjcm9s
bGJhciYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVj
dCgpOworfQorCitTY3JvbGxiYXJUaGVtZSYgU2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCkK
K3sKKyAgICBzdGF0aWMgU2Nyb2xsYmFyVGhlbWVXUEUgdGhlbWU7CisgICAgcmV0dXJuIHRoZW1l
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi42NzE4NWFkYTI5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNjcm9sbGJhclRoZW1lV1BFIGZpbmFsIDogcHVibGljIFNjcm9sbGJh
clRoZW1lQ29tcG9zaXRlIHsKK3B1YmxpYzoKKyAgICBTY3JvbGxiYXJUaGVtZVdQRSgpID0gZGVm
YXVsdDsKKyAgICB2aXJ0dWFsIH5TY3JvbGxiYXJUaGVtZVdQRSgpID0gZGVmYXVsdDsKKworICAg
IGJvb2wgaGFzQnV0dG9ucyhTY3JvbGxiYXImKSBvdmVycmlkZTsKKyAgICBib29sIGhhc1RodW1i
KFNjcm9sbGJhciYpIG92ZXJyaWRlOworCisgICAgSW50UmVjdCBiYWNrQnV0dG9uUmVjdChTY3Jv
bGxiYXImLCBTY3JvbGxiYXJQYXJ0LCBib29sIHBhaW50aW5nID0gZmFsc2UpIG92ZXJyaWRlOwor
ICAgIEludFJlY3QgZm9yd2FyZEJ1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwg
Ym9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICBJbnRSZWN0IHRyYWNrUmVjdChT
Y3JvbGxiYXImLCBib29sIHBhaW50aW5nID0gZmFsc2UpIG92ZXJyaWRlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1NvdW5kV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5MTQ3N2E0NTk4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcApA
QCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTb3VuZC5oIgorCisjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIHN5
c3RlbUJlZXAoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQ
RS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNWFkOTc3M2Q4NAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5jcHAKQEAgLTAsMCAr
MSwxNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRoZW1lV1BFLmgiCisKKyNpbmNsdWRl
ICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0Um91bmRlZFJlY3QuaCIKKyNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitUaGVtZSogcGxhdGZvcm1UaGVtZSgpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFRoZW1lV1BFPiB0aGVtZTsKKyAgICByZXR1cm4gJnRoZW1lLmdldCgpOwor
fQorCitMZW5ndGhTaXplIFRoZW1lV1BFOjpjb250cm9sU2l6ZShDb250cm9sUGFydCBwYXJ0LCBj
b25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZFNp
emUsIGZsb2F0IHpvb21GYWN0b3IpIGNvbnN0Cit7CisgICAgaWYgKCF6b29tZWRTaXplLndpZHRo
LmlzSW50cmluc2ljT3JBdXRvKCkgJiYgIXpvb21lZFNpemUuaGVpZ2h0LmlzSW50cmluc2ljT3JB
dXRvKCkpCisgICAgICAgIHJldHVybiBUaGVtZTo6Y29udHJvbFNpemUocGFydCwgZm9udENhc2Nh
ZGUsIHpvb21lZFNpemUsIHpvb21GYWN0b3IpOworCisgICAgc3dpdGNoIChwYXJ0KSB7CisgICAg
Y2FzZSBDaGVja2JveFBhcnQ6CisgICAgY2FzZSBSYWRpb1BhcnQ6CisgICAgICAgIHJldHVybiBM
ZW5ndGhTaXplIHsgTGVuZ3RoKDEyLCBGaXhlZCksIExlbmd0aCgxMiwgRml4ZWQpIH07CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIFRoZW1lOjpjb250
cm9sU2l6ZShwYXJ0LCBmb250Q2FzY2FkZSwgem9vbWVkU2l6ZSwgem9vbUZhY3Rvcik7Cit9CisK
K3ZvaWQgVGhlbWVXUEU6OnBhaW50KENvbnRyb2xQYXJ0IHBhcnQsIENvbnRyb2xTdGF0ZXMmIHN0
YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJl
Y3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxvYXQpCit7CisgICAg
c3dpdGNoIChwYXJ0KSB7CisgICAgY2FzZSBDaGVja2JveFBhcnQ6CisgICAgICAgIHBhaW50Q2hl
Y2tib3goc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBSYWRpb1BhcnQ6CisgICAgICAgIHBhaW50UmFkaW8oc3RhdGVzLCBj
b250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQdXNoQnV0dG9uUGFydDoKKyAgICAgICAgcGFpbnRCdXR0b24oc3RhdGVzLCBjb250ZXh0LCB6
b29tZWRSZWN0LCB6b29tRmFjdG9yKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludENoZWNrYm94KENv
bnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3JuZXIoMiwgMik7Cisg
ICAgRmxvYXRSb3VuZGVkUmVjdCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBjb3JuZXIsIGNvcm5l
ciwgY29ybmVyLCBjb3JuZXIpOworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZFJvdW5kZWRS
ZWN0KHJvdW5kZWRSZWN0KTsKKworICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKG1ha2VSR0IoMjI0
LCAyMjQsIDIyNCkpOworICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7CisKKyAgICBjb250ZXh0
LnNldFN0cm9rZVRoaWNrbmVzcygxKTsKKyAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKG1ha2VS
R0IoOTQsIDk0LCA5NCkpOworICAgIGNvbnRleHQuc3Ryb2tlUGF0aChwYXRoKTsKKworICAgIGlm
IChzdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9sU3RhdGVzOjpDaGVja2VkU3RhdGUpIHsKKyAgICAg
ICAgYXV0byYgcmVjdCA9IHJvdW5kZWRSZWN0LnJlY3QoKTsKKworICAgICAgICBQYXRoIGNoZWNr
ZXJQYXRoOworICAgICAgICBjaGVja2VyUGF0aC5tb3ZlVG8oRmxvYXRQb2ludChyZWN0LngoKSAr
IDMsIHJlY3QubWF4WSgpIC0gMykpOworICAgICAgICBjaGVja2VyUGF0aC5hZGRMaW5lVG8oRmxv
YXRQb2ludChyZWN0Lm1heFgoKSAtIDMsIHJlY3QueSgpICsgMykpOworCisgICAgICAgIGNvbnRl
eHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDIpOworICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9y
KG1ha2VSR0IoODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LnN0cm9rZVBhdGgoY2hlY2tl
clBhdGgpOworICAgIH0KK30KKwordm9pZCBUaGVtZVdQRTo6cGFpbnRSYWRpbyhDb250cm9sU3Rh
dGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6
b29tZWRSZWN0LCBmbG9hdCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIoY29udGV4dCk7CisKKyAgICBQYXRoIHBhdGg7CisgICAgcGF0aC5hZGRFbGxpcHNlKHpv
b21lZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQigyMjQsIDIyNCwg
MjI0KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ry
b2tlVGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwg
OTQsIDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworCisgICAgaWYgKHN0YXRl
cy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0ZSkgeworICAgICAgICBGbG9h
dFJlY3QgY2hlY2tlclJlY3QgPSB6b29tZWRSZWN0OworICAgICAgICBjaGVja2VyUmVjdC5pbmZs
YXRlKC0zKTsKKworICAgICAgICBQYXRoIGNoZWNrZXJQYXRoOworICAgICAgICBjaGVja2VyUGF0
aC5hZGRFbGxpcHNlKGNoZWNrZXJSZWN0KTsKKworICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xv
cihtYWtlUkdCKDg0LCA4NCwgODQpKTsKKyAgICAgICAgY29udGV4dC5maWxsUGF0aChjaGVja2Vy
UGF0aCk7CisgICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludEJ1dHRvbihDb250cm9sU3Rh
dGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6
b29tZWRSZWN0LCBmbG9hdCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIoY29udGV4dCk7CisKKyAgICBGbG9hdFNpemUgY29ybmVyKDIsIDIpOworICAgIEZsb2F0
Um91bmRlZFJlY3Qgcm91bmRlZFJlY3Qoem9vbWVkUmVjdCwgY29ybmVyLCBjb3JuZXIsIGNvcm5l
ciwgY29ybmVyKTsKKyAgICBQYXRoIHBhdGg7CisgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChyb3Vu
ZGVkUmVjdCk7CisKKyAgICBDb2xvciBmaWxsQ29sb3IgPSBzdGF0ZXMuc3RhdGVzKCkgJiBDb250
cm9sU3RhdGVzOjpQcmVzc2VkU3RhdGUgPyBtYWtlUkdCKDI0NCwgMjQ0LCAyNDQpIDogbWFrZVJH
QigyMjQsIDIyNCwgMjI0KTsKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihmaWxsQ29sb3IpOwor
ICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7CisKKyAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNr
bmVzcygxKTsKKyAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKG1ha2VSR0IoOTQsIDk0LCA5NCkp
OworICAgIGNvbnRleHQuc3Ryb2tlUGF0aChwYXRoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzM5ZjVjMWUxY2EKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiVGhlbWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBUaGVtZVdQRSA6IHB1YmxpYyBUaGVtZSB7CitwdWJsaWM6CisgICAgVGhlbWVXUEUoKSB7IH0K
KyAgICB2aXJ0dWFsIH5UaGVtZVdQRSgpIHsgfQorCisgICAgTGVuZ3RoU2l6ZSBjb250cm9sU2l6
ZShDb250cm9sUGFydCwgY29uc3QgRm9udENhc2NhZGUmLCBjb25zdCBMZW5ndGhTaXplJiwgZmxv
YXQpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJv
bFN0YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0LCBTY3Jv
bGxWaWV3KiwgZmxvYXQsIGZsb2F0KSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHBh
aW50Q2hlY2tib3goQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGZsb2F0KTsKKyAgICB2b2lkIHBhaW50UmFkaW8oQ29udHJvbFN0YXRlcyYsIEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KTsKKyAgICB2b2lkIHBhaW50QnV0
dG9uKENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBm
bG9hdCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9XaWRnZXRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi42MmRmMGNjNmIzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9XaWRnZXRXUEUuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldpZGdldC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitXaWRnZXQ6OldpZGdldChQbGF0Zm9ybVdpZGdldCB3aWRnZXQpCit7
CisgICAgaW5pdCh3aWRnZXQpOworfQorCitXaWRnZXQ6On5XaWRnZXQoKQoreworICAgIEFTU0VS
VCghcGFyZW50KCkpOworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0Ojpz
ZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBtX2ZyYW1lID0gcmVjdDsK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitJbnRSZWN0IFdpZGdldDo6ZnJhbWVSZWN0KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZTsKK30KKwordm9pZCBXaWRnZXQ6OnBhaW50KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGb2N1cyhib29sKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2hvdygpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OmhpZGUoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRJc1NlbGVjdGVkKGJvb2wpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDcxYzhiZmJjMzlmLi4yOGIyMmU1NWQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisy
MDE3LTA1LTA5ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAg
ICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgd2Via2l0LWRldiB0aHJlYWQ6CisgICAgICAgIGh0dHBzOi8vbGlz
dHMud2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8yMDE3LUFwcmlsLzAyODkyMy5odG1s
CisKKyAgICAgICAgRXhpc3RpbmcgZmlsZXMgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZP
Uk0oV1BFKSBidWlsZCBndWFyZHMgb3Igb3RoZXIKKyAgICAgICAgV1BFLXNwZWNpZmljIGFkZGl0
aW9ucyAoZS5nLiBwYXN0ZWJvYXJkIHN1cHBvcnQpLgorICAgICAgICBJbi1maWxlIGNoYW5nZXMg
cmVtb3ZlZCBmcm9tIHRoaXMgQ2hhbmdlTG9nIGVudHJ5IGZvciBicmV2aXR5LgorCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwOgorICAgICAgICAqIFBsYXRm
b3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRp
bmctaGVhZGVycy5wbDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAg
ICogU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy93cGUv
V2ViS2l0Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3Ro
cmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwOgorICAgICAgICAqIFNoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxv
b3AuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmg6CisgICAg
ICAgICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQu
aDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oOgorICAgICAgICAqIFNo
YXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAg
ICogU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJl
ZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL05hdGl2
ZVdlYlRvdWNoRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2
ZW50V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVh
SW5mby5oLgorICAgICAgICAqIFNoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNw
cDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tB
UElDYXN0V1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJl
YUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
d3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9Db21w
b3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dw
ZS9XUEVWaWV3Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdD
bGllbnQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJ
bmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWw6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhc3RlYm9hcmRQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJk
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHA6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUGFnZVByb3h5V1BFLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJv
Y2Vzcy93cGUvV2ViUGFzdGVib2FyZFByb3h5V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUv
V2ViUHJlZmVyZW5jZXNXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29w
LmguCisgICAgICAgICogVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHA6IEFkZGVk
LgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJLaXQyUHJlZml4Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHA6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaDogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdS
dW5Mb29wLmguCisgICAgICAgICogV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogd3BlL3dwZS13ZWJraXQucGMuaW46IEFkZGVkLgorCiAyMDE3LTA1LTA5ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBC
dWlsZGluZyBXZWJraXQyR3RrIHdpdGhvdXQgT3BlbkdMIGZhaWxzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCmluZGV4IDE0MzI5
YjkzODkxLi44ZDEwMWNmNGYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcApAQCAtNTEsNiArNTEsOSBAQCB2b2lkIEdTb2Nr
ZXRNb25pdG9yOjpzdGFydChHU29ja2V0KiBzb2NrZXQsIEdJT0NvbmRpdGlvbiBjb25kaXRpb24s
IFJ1bkxvb3AmIHJ1bgogICAgIGdfc291cmNlX3NldF9uYW1lKG1fc291cmNlLmdldCgpLCAiW1dl
YktpdF0gU29ja2V0IG1vbml0b3IiKTsKICAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayk7CiAgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fc291cmNlLmdldCgpLCByZWludGVycHJl
dF9jYXN0PEdTb3VyY2VGdW5jPihzb2NrZXRTb3VyY2VDYWxsYmFjayksIHRoaXMsIG51bGxwdHIp
OworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkobV9zb3VyY2Uu
Z2V0KCksIEdfUFJJT1JJVFlfSElHSCArIDMwKTsKKyNlbmRpZgogICAgIGdfc291cmNlX2F0dGFj
aChtX3NvdXJjZS5nZXQoKSwgcnVuTG9vcC5tYWluQ29udGV4dCgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDk3
NDMyOWRmY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5j
bWFrZQpAQCAtMCwwICsxLDQ3MSBAQAorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09V
UkNFU19XRUJLSVQyX0RJUn0pCisKK2NvbmZpZ3VyZV9maWxlKHdwZS93cGUtd2Via2l0LnBjLmlu
ICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5wYyBAT05MWSkKKworYWRkX2RlZmluaXRp
b25zKC1EV0VCS0lUMl9DT01QSUxBVElPTikKKworYWRkX2RlZmluaXRpb25zKC1ETElCRVhFQ0RJ
Uj0iJHtMSUJFWEVDX0lOU1RBTExfRElSfSIpCisKK3NldChXZWJLaXQyX1VTRV9QUkVGSVhfSEVB
REVSIE9OKQorCithZGRfY3VzdG9tX3RhcmdldCh3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVy
cworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMv
Z2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7V0VCS0lUMl9E
SVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3cGUgLS1w
bGF0Zm9ybSBzb3VwCispCisKK3NldChXRUJLSVQyX0VYVFJBX0RFUEVOREVOQ0lFUworICAgIHdl
YmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCispCisKK2xpc3QoQVBQRU5EIFdlYlByb2Nlc3Nf
U09VUkNFUworICAgIFdlYlByb2Nlc3MvRW50cnlQb2ludC91bml4L1dlYlByb2Nlc3NNYWluLmNw
cAorKQorCitsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTCisgICAgTmV0d29ya1By
b2Nlc3MvRW50cnlQb2ludC91bml4L05ldHdvcmtQcm9jZXNzTWFpbi5jcHAKKykKKworbGlzdChB
UFBFTkQgRGF0YWJhc2VQcm9jZXNzX1NPVVJDRVMKKyAgICBEYXRhYmFzZVByb2Nlc3MvRW50cnlQ
b2ludC91bml4L0RhdGFiYXNlUHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktp
dDJfU09VUkNFUworICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3VwL0xlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCisKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVDb2RlcnNTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZURhdGFTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZUlPQ2hhbm5lbFNvdXAuY3BwCisKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtE
YXRhVGFza1NvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc01h
aW5Tb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNw
cAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcAorICAgIE5l
dHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcAorCisgICAg
UGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCisKKyAgICBQbGF0Zm9ybS9JUEMv
dW5peC9BdHRhY2htZW50VW5peC5jcHAKKyAgICBQbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9u
VW5peC5jcHAKKworICAgIFBsYXRmb3JtL2NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0NsYXNzaWZpZXIuY3BwCisKKyAgICBQbGF0Zm9ybS9nbGliL01vZHVsZUdsaWIuY3BwCisKKyAg
ICBQbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAorICAgIFBsYXRmb3JtL3VuaXgvU2hhcmVk
TWVtb3J5VW5peC5jcHAKKworICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Db250cm9sbGVy
UHJveHlVbml4LmNwcAorICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzTWFpblVu
aXguY3BwCisgICAgUGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NVbml4LmNwcAorCisg
ICAgU2hhcmVkL0FQSS9jL2NhaXJvL1dLSW1hZ2VDYWlyby5jcHAKKworICAgIFNoYXJlZC9BdXRo
ZW50aWNhdGlvbi9zb3VwL0F1dGhlbnRpY2F0aW9uTWFuYWdlclNvdXAuY3BwCisKKyAgICBTaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKyAgICBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCisg
ICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvU2ltcGxlVmlld3BvcnRDb250cm9sbGVyLmNw
cAorCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0Nv
bXBvc2l0aW5nUnVuTG9vcC5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKKyAgICBTaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3Np
dG9yLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKKworICAgIFNoYXJlZC9QbHVnaW5z
L05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5jcHAKKworICAgIFNoYXJlZC9j
YWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKKworICAgIFNoYXJlZC9nbGliL1dlYkVycm9y
c0dsaWIuY3BwCisKKyAgICBTaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcAor
CisgICAgU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKKyAgICBTaGFy
ZWQvc291cC9XZWJFcnJvcnNTb3VwLmNwcAorCisgICAgU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNz
TWFpbi5jcHAKKworICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAK
KyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dw
ZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViV2hl
ZWxFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5j
cHAKKyAgICBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKKworICAgIFVJUHJvY2Vzcy9C
YWNraW5nU3RvcmUuY3BwCisgICAgVUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5jcHAK
KyAgICBVSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nTm9uZS5jcHAKKyAgICBVSVBy
b2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3BwCisgICAgVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAorCisgICAgVUlQcm9jZXNzL0FQ
SS9DL2NhaXJvL1dLSWNvbkRhdGFiYXNlQ2Fpcm8uY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL0Mv
c291cC9XS0Nvb2tpZU1hbmFnZXJTb3VwLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL3dwZS9X
S1ZpZXcuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94
eS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmNwcAorICAg
IFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkv
d3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dQ
RVZpZXcuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHAKKworICAg
IFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRTZXJ2ZXJTb3VwLmNwcAor
CisgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCisKKyAg
ICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCisgICAgVUlQ
cm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5Qcm9jZXNzUHJveHlVbml4LmNwcAorCisgICAgVUlQ
cm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisKKyAgICBVSVByb2Nlc3MvV2Vic2l0
ZURhdGEvdW5peC9XZWJzaXRlRGF0YVN0b3JlVW5peC5jcHAKKworICAgIFVJUHJvY2Vzcy9jYWly
by9CYWNraW5nU3RvcmVDYWlyby5jcHAKKworICAgIFVJUHJvY2Vzcy9nc3RyZWFtZXIvSW5zdGFs
bE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKyAgICBVSVByb2Nlc3Mv
Z3N0cmVhbWVyL1dlYlBhZ2VQcm94eUdTdHJlYW1lci5jcHAKKworICAgIFVJUHJvY2Vzcy9saW51
eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwCisKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29r
aWVNYW5hZ2VyUHJveHlTb3VwLmNwcAorICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29s
U291cC5jcHAKKworICAgIFVJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwCisgICAgVUlQ
cm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dl
YlBhZ2VQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQ
RS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2VzV1BFLmNwcAorICAgIFVJUHJv
Y2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCisKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMv
c291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291
cC9XZWJLaXRTb3VwQ29va2llSmFyU3FsaXRlLmNwcAorCisgICAgV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9nbGliL0luamVjdGVkQnVuZGxlR2xpYi5jcHAKKworICAgIFdlYlByb2Nlc3MvTWVk
aWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcAorCisgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCisKKyAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAK
KyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3Bw
CisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcAor
CisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0FjY2VsZXJhdGVkU3VyZmFjZS5jcHAKKworICAgIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0FyZWFBbGxvY2F0b3IuY3BwCisg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29y
ZGluYXRvci5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAg
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCisK
KyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0cmVhbWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3BwCisK
KyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKKyAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcAorICAgIFdlYlByb2Nlc3Mv
V2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9XZWJQYWdlV1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1
ZXN0SW5wdXRTdHJlYW0uY3BwCisgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNw
cAorCisgICAgV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwCisKKyAgICAjIEZJ
WE1FLUdXU0hBUkU6CisgICAgRGF0YWJhc2VQcm9jZXNzL2d0ay9EYXRhYmFzZVByb2Nlc3NNYWlu
R3RrLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCisgICAg
VUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKykK
KworbGlzdChBUFBFTkQgV2ViS2l0Ml9ERVJJVkVEX1NPVVJDRVMKKyAgICAke0RFUklWRURfU09V
UkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1bmRsZS5jCispCisK
K3NldChXZWJLaXQyUmVzb3VyY2VzCispCisKK2lmIChFTkFCTEVfV0VCX0FVRElPKQorICAgIGxp
c3QoQVBQRU5EIFdlYktpdDJSZXNvdXJjZXMKKyAgICAgICAgIiAgICAgICAgPGZpbGUgYWxpYXM9
XCJhdWRpby9Db21wb3NpdGVcIj5Db21wb3NpdGUud2F2PC9maWxlPlxuIgorICAgICkKK2VuZGlm
ICgpCisKK2ZpbGUoV1JJVEUgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJS
ZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgIjw/eG1sIHZlcnNpb249MS4wIGVuY29k
aW5nPVVURi04Pz5cbiIKKyAgICAiPGdyZXNvdXJjZXM+XG4iCisgICAgIiAgICA8Z3Jlc291cmNl
IHByZWZpeD1cIi9vcmcvd2Via2l0d3BlL3Jlc291cmNlc1wiPlxuIgorICAgICR7V2ViS2l0MlJl
c291cmNlc30KKyAgICAiICAgIDwvZ3Jlc291cmNlPlxuIgorICAgICI8L2dyZXNvdXJjZXM+XG4i
CispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYworICAgIERFUEVO
RFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3Vy
Y2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBnbGliLWNvbXBpbGUtcmVzb3VyY2VzIC0tZ2VuZXJh
dGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJj
ZXMgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9yZXNvdXJjZXMgLS10YXJnZXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9
L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYyAke0RFUklWRURfU09VUkNFU19XRUJL
SVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBWRVJCQVRJ
TQorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtG
T1JXQVJESU5HX0hFQURFUlNfRElSfSIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfSIKKyAg
ICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8iCisgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgorICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4
IgorICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291
cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAiCisg
ICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9E
SVJ9L05ldHdvcmtQcm9jZXNzL3VuaXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL0lQ
Qy9nbGliIgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybS9JUEMvdW5peCIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vUGxhdGZvcm0vY2xhc3NpZmllciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL0FQSS9jL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3Ro
cmVhZGVkY29tcG9zaXRvciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3NvdXAiCisgICAg
IiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC91bml4IgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQv
d3BlIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvY2Fpcm8iCisgICAgIiR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0Mvd3BlIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dw
ZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xz
L3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9saW51eCIKKyAgICAiJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
c291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAiCisgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzIgorICAgICIke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlIgorICAgICIke1dURl9ESVJ9L3d0Zi9ndGsv
IgorICAgICIke1dURl9ESVJ9L3d0Zi9nb2JqZWN0IgorICAgICIke1dURl9ESVJ9IgorICAgICR7
Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7RUdMX0lOQ0xVREVfRElSU30KKyAgICAke0ZSRUVU
WVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0dTVFJF
QU1FUl9JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9JTkNMVURFX0RJUlN9CisgICAgJHtM
SUJTT1VQX0lOQ0xVREVfRElSU30KKyAgICAke1dQRV9JTkNMVURFX0RJUlN9CispCisKK2xpc3Qo
QVBQRU5EIFdlYktpdDJfTElCUkFSSUVTCisgICAgV2ViQ29yZVBsYXRmb3JtV1BFCisgICAgJHtD
QUlST19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRTJfTElCUkFSSUVTfQorICAgICR7R0xJQl9M
SUJSQVJJRVN9CisgICAgJHtHU1RSRUFNRVJfTElCUkFSSUVTfQorICAgICR7SEFSRkJVWlpfTElC
UkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9CisgICAgJHtXUEVfTElCUkFSSUVTfQor
KQorCitzZXQoSW5zcGVjdG9yRmlsZXMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
KyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlLyouaHRtbAorICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQmFzZS8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy8qLmNzcworICAgICR7Q01B
S0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvRGVidWcvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnLyouanMKKyAgICAke0NNQUtFX1NP
VVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0Nv
ZGVNaXJyb3IvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvKi5qcworICAgICR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwv
RVNMaW50LyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VzcHJpbWEvKi5qcworICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL2d0ay8qLnBu
ZworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL2d0ay8qLnN2ZworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzLyouanMKKyAgICAke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sLyouanMK
KyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Byb3hpZXMvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy8qLmNzcworICAgICR7Q01B
S0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Ki5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0v
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3Qv
Ki5qcworKQorCitmaWxlKEdMT0IgSW5zcGVjdG9yRmlsZXNEZXBlbmRlbmNpZXMKKyAgICAke0lu
c3BlY3RvckZpbGVzfQorKQorCisjIERlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMgaXMKKyMgZXhwZWN0ZWQgaW4gRGVyaXZl
ZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC8uCithZGRfY3Vz
dG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJ
X0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMK
KyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVj
dG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgIENPTU1BTkQgY3AgJHtERVJJVkVE
X1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZENv
bW1hbmRzLmpzICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKykKKworYWRkX2N1c3Rv
bV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9E
SVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBERVBFTkRTICR7SW5zcGVjdG9y
RmlsZXNEZXBlbmRlbmNpZXN9CisgICAgICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQ
RUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZENvbW1h
bmRzLmpzCisgICAgICAgICAgICAke1RPT0xTX0RJUn0vd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1n
cmVzb3VyY2UtbWFuaWZlc3QucHkKKyAgICBDT01NQU5EICR7VE9PTFNfRElSfS93cGUvZ2VuZXJh
dGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSAtLW91dHB1dD0ke0RFUklWRURfU09V
UkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwgJHtJ
bnNwZWN0b3JGaWxlc30gJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2Vy
SW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgIFZFUkJB
VElNCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJD
RVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYworICAgIERF
UEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVz
b3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBnbGliLWNvbXBpbGUtcmVzb3VyY2VzIC0tZ2Vu
ZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkgLS1zb3VyY2VkaXI9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfSAtLXRh
cmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNv
dXJjZUJ1bmRsZS5jICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVj
dG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElNCispCisKK2FkZF9jdXN0b21fY29t
bWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9X
ZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBFTkRTICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1s
CisgICAgICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2Zy
b250LWVuZC9pbnNwZWN0b3JQYWdlSW5kZXguaHRtbAorICAgIENPTU1BTkQgZ2xpYi1jb21waWxl
LXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9JbnNwZWN0b3JTZXJ2ZXIvZnJvbnQtZW5kIC0tdGFyZ2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dF
QklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUueG1sCisgICAgVkVSQkFUSU0KKykKKworbGlzdChBUFBFTkQgV1BFV2ViSW5zcGVjdG9yUmVz
b3VyY2VzX0RFUklWRURfU09VUkNFUworICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RP
UlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAgICAke0RFUklWRURfU09VUkNF
U19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYwor
KQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfTElCUkFSSUVTCisgICAg
JHtHTElCX0dJT19MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdQRVdlYkluc3BlY3RvclJl
c291cmNlc19JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKykK
KworYWRkX2xpYnJhcnkoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIFNIQVJFRCAke1dQRVdlYklu
c3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVN9KQorYWRkX2RlcGVuZGVuY2llcyhXUEVX
ZWJJbnNwZWN0b3JSZXNvdXJjZXMgV2ViS2l0MikKK3RhcmdldF9saW5rX2xpYnJhcmllcyhXUEVX
ZWJJbnNwZWN0b3JSZXNvdXJjZXMgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfTElCUkFSSUVT
fSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKFdQRVdlYkluc3BlY3RvclJlc291cmNlcyBQ
VUJMSUMgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfSU5DTFVERV9ESVJFQ1RPUklFU30pCitp
bnN0YWxsKFRBUkdFVFMgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIERFU1RJTkFUSU9OICIke0xJ
Ql9JTlNUQUxMX0RJUn0iKQorCitpZiAoRVhQT1JUX0RFUFJFQ0FURURfV0VCS0lUMl9DX0FQSSkK
KyAgICBzZXQoV1BFX0lOU1RBTExFRF9XRUJLSVRfSEVBREVSUworICAgICAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2MvV0tBcnJheS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9BUEkvYy9XS0Jhc2UuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tE
YXRhLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGVjbGFyYXRpb25T
cGVjaWZpZXJzLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGlhZ25v
c3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQ
SS9jL1dLRGljdGlvbmFyeS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9X
S0Vycm9yUmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRXZlbnQu
aAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tGaW5kT3B0aW9ucy5oCisg
ICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0dlb21ldHJ5LmgKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLSW1hZ2UuaAorICAgICAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlQXJyYXkuaAorICAgICAgICAke1dFQktJVDJfRElS
fS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlRGljdGlvbmFyeS5oCisgICAgICAgICR7V0VCS0lUMl9E
SVJ9L1NoYXJlZC9BUEkvYy9XS051bWJlci5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9BUEkvYy9XS1BhZ2VMb2FkVHlwZXMuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQv
QVBJL2MvV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL0FQSS9jL1dLU2VjdXJpdHlPcmlnaW5SZWYuaAorICAgICAgICAke1dFQktJVDJfRElSfS9T
aGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorICAgICAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaAorICAgICAgICAke1dFQktJVDJfRElSfS9TaGFy
ZWQvQVBJL2MvV0tUeXBlLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dL
VVJMLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VSTFJlc3BvbnNlLmgKKyAg
ICAgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lcy5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJDb250ZW50
VVJMUGF0dGVybi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJT
Y3JpcHRJbmplY3Rpb25UaW1lLmgKKworICAgICAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJ
L2Mvd3BlL1dLQmFzZVdQRS5oCisKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlRmlsZUhhbmRsZVJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oCisgICAgICAgICR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0
LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUluaXRpYWxpemUuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgKKyAgICAgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5hdmlnYXRp
b25BY3Rpb24uaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VC
YW5uZXIuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VFZGl0b3JD
bGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGll
bnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZUdyb3VwLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorICAgICAg
ICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZU92ZXJsYXkuaAorICAgICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUmVzb3Vy
Y2VMb2FkQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZS5o
CisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVTY3JpcHRXb3JsZC5oCisKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNz
L0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbVJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdFJlZi5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKKyAgICAg
ICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbm5lY3Rpb25DbGll
bnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0RG93
bmxvYWRDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0SGlzdG9yeUNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWxUeXBlcy5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWVJbmZvUmVmLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuaAorICAgICAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25BY3Rpb25SZWYuaAorICAgICAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5oCisgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25SZWYuaAorICAgICAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYuaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKyAgICAgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaAor
ICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29udGV4dE1lbnVD
bGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlRmluZENsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGb3JtQ2xpZW50LmgKKyAgICAgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmgKKyAgICAgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgKKyAgICAgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUxvYWRlckNsaWVudC5oCisgICAgICAg
ICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50LmgK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVBvbGljeUNsaWVu
dC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VSZW5kZXJp
bmdQcm9ncmVzc0V2ZW50cy5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VVSUNsaWVudC5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BsdWdpbkxvYWRQb2xpY3kuaAorICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQy9XS1Nlc3Npb25TdGF0ZVJlZi5oCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJTY3JpcHRSZWYuaAorICAgICAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaAorICAgICAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tXaW5kb3dGZWF0dXJlc1JlZi5oCisKKyAg
ICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaAorCisgICAg
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLQ29va2llTWFuYWdlclNv
dXAuaAorICAgICkKKworICAgIGluc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX1dFQktJVF9I
RUFERVJTfQorICAgICAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9
L3dwZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFL1dlYktpdCIKKyAgICAgICAgQ09NUE9ORU5UICJE
ZXZlbG9wbWVudCIKKyAgICApCisKKyAgICBzZXQoV1BFX0lOU1RBTExFRF9IRUFERVJTCisgICAg
ICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0LmgKKyAgICApCisKKyAg
ICBpbnN0YWxsKEZJTEVTICR7V1BFX0lOU1RBTExFRF9IRUFERVJTfQorICAgICAgICBERVNUSU5B
VElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dwZS0ke1dQRV9BUElfVkVSU0lPTn0v
V1BFIgorICAgICAgICBDT01QT05FTlQgIkRldmVsb3BtZW50IgorICAgICkKKworICAgIGluc3Rh
bGwoRklMRVMgJHtDTUFLRV9CSU5BUllfRElSfS93cGUtd2Via2l0LnBjCisgICAgICAgIERFU1RJ
TkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfS9wa2djb25maWciCisgICAgICAgIENPTVBP
TkVOVCAiRGV2ZWxvcG1lbnQiCisgICAgKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIGIvU291cmNlL1dl
YktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKaW5kZXggYjYxZGI3
ODc3NGEuLmE3ZDNhMGI2YjkyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dl
bmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRz
L2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbApAQCAtMzUsNyArMzUsNyBAQCB1c2UgRmls
ZTo6U3BlYzo6RnVuY3Rpb25zOwogdXNlIEdldG9wdDo6TG9uZzsKIAogbXkgJHNyY1Jvb3QgPSBy
ZWFscGF0aChGaWxlOjpTcGVjLT5jYXRmaWxlKGRpcm5hbWUoYWJzX3BhdGgoJDApKSwgIi4uLy4u
IikpOwotbXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29hIiwgIkNvY29h
IiwgIkNvb3JkaW5hdGVkR3JhcGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwgImlvcyIsICJt
YWMiLCAic291cCIsICJ3aW4iKTsKK215IEBwbGF0Zm9ybVByZWZpeGVzID0gKCJjYSIsICJjZiIs
ICJjb2NvYSIsICJDb2NvYSIsICJDb29yZGluYXRlZEdyYXBoaWNzIiwgImN1cmwiLCAiZWZsIiwg
Imd0ayIsICJpb3MiLCAibWFjIiwgInNvdXAiLCAid2luIiwgIndwZSIpOwogbXkgQGZyYW1ld29y
a3MgPSAoIkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiLCAiV2ViS2l0Iik7CiBteSBAc2tpcHBl
ZFByZWZpeGVzOwogbXkgQGZyYW1ld29ya0hlYWRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmgKaW5kZXggMmU4ZmJmYmJlNWMuLjMzYTA2OTg4ZTY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPFdlYktpdC9X
S0Jhc2VNYWMuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNs
dWRlIDxXZWJLaXQvV0tCYXNlV1BFLmg+CisjZW5kaWYKKwogLyogV2ViS2l0MiBzaGFyZWQgdHlw
ZXMgKi8KIAogdHlwZWRlZiB1aW50MzJfdCBXS1R5cGVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5iNWVmMDYyMjAyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQmFzZVdQRV9o
CisjZGVmaW5lIFdLQmFzZVdQRV9oCisKKyNpZm5kZWYgV0tCYXNlX2gKKyNlcnJvciAiUGxlYXNl
ICNpbmNsdWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisj
ZW5kaWYKKwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3KiBXS1ZpZXdSZWY7CisK
KyNlbmRpZiAvKiBXS0Jhc2VXUEVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL3dwZS9XZWJLaXQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUv
V2ViS2l0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUwZWQxYWMy
YjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9X
ZWJLaXQuaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQRV9XZWJLaXRfaAorI2RlZmluZSBXUEVfV2Vi
S2l0X2gKKworI2RlZmluZSBCVUlMRElOR19XUEVfXworCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFz
ZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0L1dLQXJyYXkuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tEYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJz
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGljdGlvbmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0Vycm9yUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNdXRhYmxlRGljdGlv
bmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS051bWJlci5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S1NlY3VyaXR5T3JpZ2luUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLU3RyaW5nLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLVVJMLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVxdWVzdC5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNl
ckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lLmg+CisKKy8vIEZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy8KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGUuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlRmls
ZUhhbmRsZVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUZyYW1lLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1
bmRsZUluaXRpYWxpemUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVJbnNwZWN0b3IuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLQnVuZGxlTm9kZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBh
Z2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlQmFubmVyLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBh
Z2VGb3JtQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlR3JvdXAuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
QnVuZGxlUGFnZU92ZXJsYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlUG9saWN5
Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVu
dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VVSUNsaWVudC5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS0J1bmRsZVJhbmdlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxl
U2NyaXB0V29ybGQuaD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MK
KyNpbmNsdWRlIDxXZWJLaXQvV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4
dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NyZWRlbnRp
YWxUeXBlcy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLRnJhbWVJbmZvUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVQb2xpY3lMaXN0ZW5l
ci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0hpdFRlc3RSZXN1bHQuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlv
bkRhdGFSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uUmVmLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
UGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUHJlZmVyZW5j
ZXNSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tTZXNzaW9uU3RhdGVSZWYuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tVc2VyU2NyaXB0UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVmlldy5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1dpbmRv
d0ZlYXR1cmVzUmVmLmg+CisKKyNlbmRpZiAvLyBXUEVfV2ViS2l0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKaW5k
ZXggOGFjZjUwNjkyMTAuLjE1M2I2NDU2MGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdS
dW5Mb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcApAQCAtNzUsMTEgKzc1
LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXb3JrUXVldWVQb29sKCkKICAgICB7Ci0jaWYg
UExBVEZPUk0oR1RLKQorICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIHNhbmUgZGVmYXVsdCBs
aW1pdCwgYnV0IGl0IHNob3VsZCBiZSBjb25maWd1cmFibGUgc29tZWhvdy4KICAgICAgICAgbV90
aHJlYWRDb3VudExpbWl0ID0gMTsKLSNlbHNlCi0gICAgICAgIG1fdGhyZWFkQ291bnRMaW1pdCA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKLSNlbmRpZgogICAgIH0KIAog
ICAgIFdvcmtRdWV1ZSYgZ2V0T3JDcmVhdGVXb3JrUXVldWVGb3JDb250ZXh0KHZvaWQqIGNvbnRl
eHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRp
bmdSdW5Mb29wLmgKaW5kZXggODE2ZDQ2N2I1MTAuLjY0NWQ3YjkwZDEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQp
CiAKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5j
bHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0
b3IuY3BwCmluZGV4IGI4MjA4NDQ5ZGFiLi40YWI1N2FiMDcyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1Ro
cmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKQEAg
LTQ0LDEyICs0NCwxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLVJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3Jl
YXRlKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNj
YWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3lu
YyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZsYWdzKQorUmVm
PFRocmVhZGVkQ29tcG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50JiBj
bGllbnQsIFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxv
YXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJh
bWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3Mp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkZWRDb21wb3NpdG9yKGNsaWVudCwg
dmlld3BvcnRTaXplLCBzY2FsZUZhY3RvciwgbmF0aXZlU3VyZmFjZUhhbmRsZSwgZG9GcmFtZVN5
bmMsIHBhaW50RmxhZ3MpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaHJlYWRlZENvbXBv
c2l0b3IoY2xpZW50LCB3ZWJQYWdlLCB2aWV3cG9ydFNpemUsIHNjYWxlRmFjdG9yLCBuYXRpdmVT
dXJmYWNlSGFuZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFncykpOwogfQogCi1UaHJlYWRlZENv
bXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmIGNsaWVudCwgY29uc3QgSW50U2l6
ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFj
ZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBh
aW50RmxhZ3MgcGFpbnRGbGFncykKK1RocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFkZWRDb21wb3Np
dG9yKENsaWVudCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBJbnRTaXplJiB2aWV3
cG9ydFNpemUsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxl
LCBTaG91bGREb0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFn
cyBwYWludEZsYWdzKQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV92aWV3cG9ydFNp
emUodmlld3BvcnRTaXplKQogICAgICwgbV9zY2FsZUZhY3RvcihzY2FsZUZhY3RvcikKQEAgLTY1
LDEzICs2NSwyMSBAQCBUaHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihDbGll
bnQmIGNsaWVudCwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaQogICAgIG1fY2xpZW50UmVuZGVy
c05leHRGcmFtZS5zdG9yZShmYWxzZSk7CiAgICAgbV9jb29yZGluYXRlVXBkYXRlQ29tcGxldGlv
bldpdGhDbGllbnQuc3RvcmUoZmFsc2UpOwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1fY29t
cG9zaXRpbmdNYW5hZ2VyLmVzdGFibGlzaENvbm5lY3Rpb24od2ViUGFnZSk7CisjZW5kaWYKKwog
ICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBtX3NjZW5lID0gYWRvcHRSZWYobmV3
IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSh0aGlzKSk7CisjaWYgUExBVEZPUk0oR1RLKQogICAg
ICAgICBpZiAobV9uYXRpdmVTdXJmYWNlSGFuZGxlKSB7CiAgICAgICAgICAgICBjcmVhdGVHTENv
bnRleHQoKTsKICAgICAgICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUoZmFsc2UpOworI2VsaWYgUExB
VEZPUk0oV1BFKQorICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CisjZW5kaWYKICAg
ICB9KTsKIH0KIApAQCAtODIsNiArOTAsOCBAQCBUaHJlYWRlZENvbXBvc2l0b3I6On5UaHJlYWRl
ZENvbXBvc2l0b3IoKQogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdMQ29udGV4dCgp
CiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyNpZiBQTEFURk9STShHVEspCiAg
ICAgQVNTRVJUKG1fbmF0aXZlU3VyZmFjZUhhbmRsZSk7CiAKICAgICBtX2NvbnRleHQgPSBHTENv
bnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxHTE5hdGl2ZVdp
bmRvd1R5cGU+KG1fbmF0aXZlU3VyZmFjZUhhbmRsZSksICZQbGF0Zm9ybURpc3BsYXk6OnNoYXJl
ZERpc3BsYXlGb3JDb21wb3NpdGluZygpKTsKQEAgLTkyLDYgKzEwMiwyMiBAQCB2b2lkIFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKICAgICAgICAgaWYgKG1fY29udGV4dC0+
bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgICAgICBtX2NvbnRleHQtPnN3YXBJbnRlcnZh
bCgwKTsKICAgICB9CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBhdXRvJiBwbGF0
Zm9ybURpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKTsKKyAgICBSRUxF
QVNFX0FTU0VSVChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkpOworICAg
IG1fdGFyZ2V0ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihwbGF0Zm9ybURpc3BsYXkp
LmNyZWF0ZUVHTFRhcmdldCgqdGhpcywgbV9jb21wb3NpdGluZ01hbmFnZXIucmVsZWFzZUNvbm5l
Y3Rpb25GZCgpKTsKKyAgICBBU1NFUlQobV90YXJnZXQpOworICAgIG1fdGFyZ2V0LT5pbml0aWFs
aXplKG1fdmlld3BvcnRTaXplKTsKKworICAgIG1fY29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRl
Q29udGV4dEZvcldpbmRvdyhtX3RhcmdldC0+bmF0aXZlV2luZG93KCksICZwbGF0Zm9ybURpc3Bs
YXkpOworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1f
Y29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgog
fQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCkBAIC0xMDEsMTYgKzEy
NywyMyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCiAgICAgbV9jb21w
b3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIG1fc2NlbmUtPnB1cmdlR0xSZXNvdXJjZXMoKTsKICAg
ICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgIG1f
dGFyZ2V0ID0gbnVsbHB0cjsKKyNlbmRpZgogICAgICAgICBtX3NjZW5lID0gbnVsbHB0cjsKICAg
ICB9KTsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQog
ICAgIG1fZGlzcGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7CiAjZW5kaWYKICAgICBt
X2NvbXBvc2l0aW5nUnVuTG9vcCA9IG51bGxwdHI7CisjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyAgICBtX2Rpc3BsYXlSZWZyZXNoTW9uaXRvci0+aW52
YWxpZGF0ZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXROYXRp
dmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogeworI2lmIFBM
QVRGT1JNKEdUSykKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c3RvcFVwZGF0ZXMoKTsKICAg
ICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGhhbmRsZV0gewogICAgICAgICAvLyBBIG5ldyBuYXRpdmUg
aGFuZGxlIGNhbid0IGJlIHNldCB3aXRob3V0IGRlc3Ryb3lpbmcgdGhlIHByZXZpb3VzIG9uZSBm
aXJzdCBpZiBhbnkuCkBAIC0xMjQsNiArMTU3LDcgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6
OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiAg
ICAgICAgICAgICBtX2NvbnRleHQgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgfSk7CisjZW5k
aWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldFNjYWxlRmFjdG9yKGZsb2F0IHNj
YWxlKQpAQCAtMTQ3LDYgKzE4MSwxMCBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0Vmll
d3BvcnRTaXplKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbAogewogICAg
IG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgdmlld3BvcnRTaXplLCBzY2FsZV0gewogICAgICAgICBtX3Zp
ZXdwb3J0U2l6ZSA9IHZpZXdwb3J0U2l6ZTsKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgIGlm
IChtX3RhcmdldCkKKyAgICAgICAgICAgIG1fdGFyZ2V0LT5yZXNpemUodmlld3BvcnRTaXplKTsK
KyNlbmRpZgogICAgICAgICBtX3NjYWxlRmFjdG9yID0gc2NhbGU7CiAgICAgICAgIG1fbmVlZHNS
ZXNpemUgPSB0cnVlOwogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c2NoZWR1bGVVcGRh
dGUoKTsKQEAgLTE5MSw5ICsyMjksMTggQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJlbmRl
ckxheWVyVHJlZSgpCiAgICAgaWYgKCFtX3NjZW5lIHx8ICFtX3NjZW5lLT5pc0FjdGl2ZSgpKQog
ICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgaWYgKCFtX2NvbnRleHQp
CisgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOworI2VuZGlmCisKICAgICBpZiAoIW1fY29udGV4
dCB8fCAhbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuOwog
CisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1fdGFyZ2V0LT5mcmFtZVdpbGxSZW5kZXIoKTsKKyNl
bmRpZgorCiAgICAgaWYgKG1fbmVlZHNSZXNpemUpIHsKICAgICAgICAgZ2xWaWV3cG9ydCgwLCAw
LCBtX3ZpZXdwb3J0U2l6ZS53aWR0aCgpLCBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAg
ICAgIG1fbmVlZHNSZXNpemUgPSBmYWxzZTsKQEAgLTIxMyw3ICsyNjAsMTMgQEAgdm9pZCBUaHJl
YWRlZENvbXBvc2l0b3I6OnJlbmRlckxheWVyVHJlZSgpCiAKICAgICBtX2NvbnRleHQtPnN3YXBC
dWZmZXJzKCk7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV90YXJnZXQtPmZyYW1lUmVuZGVy
ZWQoKTsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQogICAgIHNjZW5lVXBkYXRlRmluaXNo
ZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2NlbmVVcGRhdGVG
aW5pc2hlZCgpCkBAIC0yODAsNSArMzMzLDEzIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpj
b29yZGluYXRlVXBkYXRlQ29tcGxldGlvbldpdGhDbGllbnQoKQogfQogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShXUEUpCit2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6ZnJhbWVDb21wbGV0ZSgpCit7
CisgICAgQVNTRVJUKG1fY29tcG9zaXRpbmdSdW5Mb29wLT5pc0N1cnJlbnQoKSk7CisgICAgc2Nl
bmVVcGRhdGVGaW5pc2hlZCgpOworfQorI2VuZGlmCisKIH0KICNlbmRpZiAvLyBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3Np
dG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKaW5kZXggYzg5MmFjYjJlODIuLjlhMjE3
YzZhNmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1Ro
cmVhZGVkQ29tcG9zaXRvci5oCkBAIC00Miw2ICs0MiwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RGlzcGxheVJlZnJlc2hNb25pdG9yLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyNp
bmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
RGlzcGxheVdQRS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBDb29y
ZGluYXRlZEdyYXBoaWNzU3RhdGU7CiB9CkBAIC01MSw4ICs1NiwxMyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIGNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTsKIGNsYXNzIENvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZUNsaWVudDsKIGNsYXNzIFRocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9y
OworY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9yIDogcHVibGljIENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFRocmVhZGVkQ29tcG9zaXRvcj4geworY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9yIDogcHVibGlj
IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPFRocmVhZGVkQ29tcG9zaXRvcj4KKyNpZiBQTEFURk9STShXUEUpCisgICAgLCBwdWJsaWMg
V2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudAorI2VuZGlmCisg
ICAgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVhZGVkQ29tcG9zaXRvcik7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC02NCw3ICs3NCw3IEBAIHB1Ymxp
YzoKIAogICAgIGVudW0gY2xhc3MgU2hvdWxkRG9GcmFtZVN5bmMgeyBObywgWWVzIH07CiAKLSAg
ICBzdGF0aWMgUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4gY3JlYXRlKENsaWVudCYsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFj
ZUhhbmRsZSA9IDAsIFNob3VsZERvRnJhbWVTeW5jID0gU2hvdWxkRG9GcmFtZVN5bmM6Olllcywg
V2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyA9IDApOworICAgIHN0YXRpYyBSZWY8
VGhyZWFkZWRDb21wb3NpdG9yPiBjcmVhdGUoQ2xpZW50JiwgV2ViUGFnZSYsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhh
bmRsZSA9IDAsIFNob3VsZERvRnJhbWVTeW5jID0gU2hvdWxkRG9GcmFtZVN5bmM6OlllcywgV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyA9IDApOwogICAgIHZpcnR1YWwgflRocmVh
ZGVkQ29tcG9zaXRvcigpOwogCiAgICAgdm9pZCBzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29t
cG9zaXRpbmcodWludDY0X3QpOwpAQCAtODgsMTMgKzk4LDE4IEBAIHB1YmxpYzoKICNlbmRpZgog
CiBwcml2YXRlOgotICAgIFRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5k
bGUsIFNob3VsZERvRnJhbWVTeW5jLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdz
KTsKKyAgICBUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiwgV2ViUGFnZSYsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhh
bmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50Rmxh
Z3MpOwogCiAgICAgLy8gQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50CiAgICAgdm9pZCBy
ZW5kZXJOZXh0RnJhbWUoKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZVZpZXdwb3J0KCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBjb21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgb2Zmc2V0KSBvdmVycmlkZTsKIAorI2lmIFBMQVRGT1JNKFdQ
RSkKKyAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OlN1cmZhY2U6OkNsaWVudAor
ICAgIHZvaWQgZnJhbWVDb21wbGV0ZSgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICB2b2lkIHJl
bmRlckxheWVyVHJlZSgpOwogICAgIHZvaWQgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOwogCkBAIC0x
MDIsNiArMTE3LDEyIEBAIHByaXZhdGU6CiAKICAgICBDbGllbnQmIG1fY2xpZW50OwogICAgIFJl
ZlB0cjxDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU+IG1fc2NlbmU7CisKKyNpZiBQTEFURk9STShX
UEUpCisgICAgQ29tcG9zaXRpbmdNYW5hZ2VyIG1fY29tcG9zaXRpbmdNYW5hZ2VyOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gbV90
YXJnZXQ7CisjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHTENvbnRleHQ+
IG1fY29udGV4dDsKIAogICAgIFdlYkNvcmU6OkludFNpemUgbV92aWV3cG9ydFNpemU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgKaW5kZXggN2ZjNGQ3YzRiM2YuLmE0MzVl
MTliYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZv
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCkBAIC0zNCw2
ICszNCw4IEBAIGVudW0gRHJhd2luZ0FyZWFUeXBlIHsKICAgICBEcmF3aW5nQXJlYVR5cGVUaWxl
ZENvcmVBbmltYXRpb24sCiAjZW5kaWYKICAgICBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRy
ZWUsCisjZWxpZiBQTEFURk9STShXUEUpCisgICAgRHJhd2luZ0FyZWFUeXBlV1BFCiAjZWxzZQog
ICAgIERyYXdpbmdBcmVhVHlwZUltcGwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggY2IxZjExOGM4OTIuLjE0ZmRkZTIyNGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgK
QEAgLTUxLDYgKzUxLDEwIEBAIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogT0JK
Q19DTEFTUyBXZWJFdmVudDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdw
ZV9pbnB1dF9rZXlib2FyZF9ldmVudDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCA6IHB1YmxpYyBXZWJLZXlib2FyZEV2ZW50IHsK
QEAgLTYyLDYgKzY2LDggQEAgcHVibGljOgogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoR2Rr
RXZlbnQqLCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblJlc3VsdHMmLCBJbnB1dE1ldGhvZEZp
bHRlcjo6RXZlbnRGYWtlZEZvckNvbXBvc2l0aW9uLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRz
KTsKICNlbGlmIFBMQVRGT1JNKElPUykKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KDo6V2Vi
RXZlbnQgKik7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50Kik7CiAjZW5kaWYKIAogI2lmIFVTRShB
UFBLSVQpCkBAIC03Miw2ICs3OCw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzRmFrZUV2ZW50Rm9y
Q29tcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Zha2VFdmVudEZvckNvbXBvc2l0aW9uOyB9
CiAjZWxpZiBQTEFURk9STShJT1MpCiAgICAgOjpXZWJFdmVudCogbmF0aXZlRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CisjZWxpZiBQTEFURk9STShXUEUpCisg
ICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAj
ZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRp
dmVXZWJNb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VF
dmVudC5oCmluZGV4IDg4Y2QxNDEwOTM4Li4yODNmYzMzNDk0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCkBAIC0zOCw2ICszOCwxMCBAQCBPQkpDX0NM
QVNTIE5TVmlldzsKIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQ7CisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQgOiBw
dWJsaWMgV2ViTW91c2VFdmVudCB7CkBAIC00Nyw2ICs1MSw4IEBAIHB1YmxpYzoKICNlbGlmIFBM
QVRGT1JNKEdUSykKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KGNvbnN0IE5hdGl2ZVdlYk1vdXNl
RXZlbnQmKTsKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KEdka0V2ZW50KiwgaW50KTsKKyNlbGlm
IFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRf
cG9pbnRlcl9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICNlbmRpZgogCiAjaWYg
VVNFKEFQUEtJVCkKQEAgLTU1LDYgKzYxLDggQEAgcHVibGljOgogICAgIGNvbnN0IEdka0V2ZW50
KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KICNl
bGlmIFBMQVRGT1JNKElPUykKICAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRpdmVF
dmVudCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKaW5kZXggMTE4MTI0Y2Rl
YmMuLjgyZjNiMjRkNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZl
V2ViVG91Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJUb3Vj
aEV2ZW50LmgKQEAgLTM0LDYgKzM0LDggQEAKIHN0cnVjdCBfVUlXZWJUb3VjaEV2ZW50OwogI2Vs
aWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgorI2Vs
aWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgPHdwZS9pbnB1dC5oPgogI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpAQCAtNDYsNiArNDgsOSBAQCBwdWJsaWM6CiAgICAgTmF0aXZlV2ViVG91
Y2hFdmVudChHZGtFdmVudCosIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYpOwogICAg
IE5hdGl2ZVdlYlRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYpOwogICAgIGNv
bnN0IEdka0V2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQu
Z2V0KCk7IH0KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJUb3VjaEV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7Cisg
ICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIG5hdGl2ZUZhbGxiYWNr
VG91Y2hQb2ludCgpIGNvbnN0IHsgcmV0dXJuICZtX2ZhbGxiYWNrVG91Y2hQb2ludDsgfQogI2Vu
ZGlmCiAKIHByaXZhdGU6CkBAIC01NSw2ICs2MCw4IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9S
TShHVEspCiAgICAgR1VuaXF1ZVB0cjxHZGtFdmVudD4gbV9uYXRpdmVFdmVudDsKKyNlbGlmIFBM
QVRGT1JNKFdQRSkKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyBtX2ZhbGxi
YWNrVG91Y2hQb2ludDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRp
dmVXZWJXaGVlbEV2ZW50LmgKaW5kZXggNWRiMGJjZThmZWIuLjE1Zjk1ODY3MTczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKQEAgLTM4LDYgKzM4LDEw
IEBAIE9CSkNfQ0xBU1MgTlNWaWV3OwogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7
CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVu
dDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZlV2ViV2hlZWxF
dmVudCA6IHB1YmxpYyBXZWJXaGVlbEV2ZW50IHsKQEAgLTQ3LDYgKzUxLDggQEAgcHVibGljOgog
I2VsaWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoY29uc3QgTmF0aXZl
V2ViV2hlZWxFdmVudCYpOwogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZlbnQqKTsKKyNl
bGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5w
dXRfYXhpc19ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICNlbmRpZgogCiAjaWYg
VVNFKEFQUEtJVCkKQEAgLTU1LDYgKzYxLDggQEAgcHVibGljOgogICAgIEdka0V2ZW50KiBuYXRp
dmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KICNlbGlmIFBM
QVRGT1JNKElPUykKICAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgp
IGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAyN2I0N2Fi
NWY3Mi4uN2FmNjY0OGIwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCkBAIC04NCwxMSArODQsMTQgQEAKICNpZiBQTEFURk9STShJT1Mp
CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFF1YWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3Bl
Y3Rvck92ZXJsYXkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlbGVjdGlvblJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5oPgogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKIAorI2lmIFBMQVRGT1JNKElPUykgfHwgUExB
VEZPUk0oV1BFKQorI2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2FyZC5oPgorI2VuZGlmCisKICNp
ZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFQbGF5YmFja1RhcmdldENvbnRleHQuaD4KICNlbmRpZgpAQCAtMTQ5Miw2ICsxNDk1LDIzIEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkSW1hZ2U+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgUGFzdGVib2FyZEltYWdlJiBwCiAKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQor
dm9pZCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIGVu
Y29kZXIgPDwgY29udGVudC50ZXh0OworICAgIGVuY29kZXIgPDwgY29udGVudC5tYXJrdXA7Cit9
CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGNvbnRlbnQudGV4dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbnRlbnQubWFya3VwKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKKwogdm9p
ZCBBcmd1bWVudENvZGVyPERpY3RhdGlvbkFsdGVybmF0aXZlPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IERpY3RhdGlvbkFsdGVybmF0aXZlJiBkaWN0YXRpb25BbHRlcm5hdGl2ZSkK
IHsKICAgICBlbmNvZGVyIDw8IGRpY3RhdGlvbkFsdGVybmF0aXZlLnJhbmdlU3RhcnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggOGVjNjFk
MzlmNDAuLmY3MDI1MmQwZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCkBAIC0xMzUsNiArMTM1LDEyIEBAIHN0cnVjdCBTb3VwTmV0d29ya1By
b3h5U2V0dGluZ3M7CiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK3N0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudHM7Cit9CisjZW5kaWYKKwogI2lm
IEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjsKQEAgLTQxNyw2ICs0MjMsMTMgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3M+
IHsKIH07CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3RlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQ+IHsKKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50
Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpQYXN0ZWJvYXJk
V2ViQ29udGVudCYpOworfTsKKyNlbmRpZgorCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZSYpOwogICAg
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxp
bmUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0
aW9ucy5oCmluZGV4IDI2M2M4NTI1YzM3Li5lYzBmZjZlMWU4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC0zNzYsNyArMzc2
LDcgQEAKICAgICBtYWNybyhQaWN0b2dyYXBoRm9udEZhbWlseSwgcGljdG9ncmFwaEZvbnRGYW1p
bHksIFN0cmluZywgU3RyaW5nLCAiQXBwbGUgQ29sb3IgRW1vamkiLCAiIiwgIiIpIFwKICAgICBc
CiAKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKQogCiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9GT05UX0ZBTUlMWV9QUkVGRVJFTkNFKG1h
Y3JvKSBcCiAgICAgbWFjcm8oU3RhbmRhcmRGb250RmFtaWx5LCBzdGFuZGFyZEZvbnRGYW1pbHks
IFN0cmluZywgU3RyaW5nLCAiVGltZXMiLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NjgzYjgxMmYzYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQ
RS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQorICAgIDogV2Vi
S2V5Ym9hcmRFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoZXZl
bnQpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNGQ5ZDQzZGU1ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAKQEAg
LTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVu
dC5oIgorCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitOYXRpdmVXZWJNb3VzZUV2ZW50OjpOYXRpdmVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVf
aW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQorICAg
IDogV2ViTW91c2VFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZl
bnQsIGRldmljZVNjYWxlRmFjdG9yKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRvdWNoRXZlbnRX
UEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BF
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGNjNjY1OGNmYjcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRv
dWNoRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ik5hdGl2ZVdlYlRvdWNoRXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91
Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNl
U2NhbGVGYWN0b3IpCisgICAgOiBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRl
V2ViVG91Y2hFdmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQorICAgICwgbV9mYWxsYmFj
a1RvdWNoUG9pbnQgeyB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsLCAwLCAwLCAwLCAw
IH0KK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xl
bmd0aDsgKytpKSB7CisgICAgICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ld
OworICAgICAgICBpZiAocG9pbnQudHlwZSAhPSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9u
dWxsKSB7CisgICAgICAgICAgICBtX2ZhbGxiYWNrVG91Y2hQb2ludCA9IHBvaW50OworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2
ZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVu
dFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhOTYyZWQ0
ZGNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVX
ZWJXaGVlbEV2ZW50V1BFLmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3Rvcnku
aCIKKworI2luY2x1ZGUgPGNzdGRpbz4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdl
YldoZWVsRXZlbnQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2
ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCisgICAgOiBXZWJXaGVlbEV2ZW50
KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChldmVudCwgZGV2aWNlU2NhbGVG
YWN0b3IpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDg3YTkyN2FiYjEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQ
RS5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAg
TW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBh
dGguaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPGdsaWIu
aD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFN0cmluZyBnZXRFeGVj
dXRhYmxlUGF0aCgpCit7CisgICAgQ1N0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEN1cnJlbnRF
eGVjdXRhYmxlUGF0aCgpOworICAgIGlmICghZXhlY3V0YWJsZVBhdGguaXNOdWxsKCkpCisgICAg
ICAgIHJldHVybiBkaXJlY3RvcnlOYW1lKHN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRp
b24oZXhlY3V0YWJsZVBhdGguZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitz
dGF0aWMgU3RyaW5nIGZpbmRXZWJLaXRQcm9jZXNzKGNvbnN0IGNoYXIqIHByb2Nlc3NOYW1lKQor
eworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBleGVjRGlyZWN0b3J5ID0gZ19nZXRlbnYoIldFQktJ
VF9FWEVDX1BBVEgiKTsKKyAgICBpZiAoZXhlY0RpcmVjdG9yeSkgeworICAgICAgICBTdHJpbmcg
cHJvY2Vzc1BhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RyaW5nRnJvbUZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihleGVjRGlyZWN0b3J5KSwgcHJvY2Vzc05hbWUpOworICAgICAgICBp
ZiAoZmlsZUV4aXN0cyhwcm9jZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1Bh
dGg7CisgICAgfQorCisgICAgc3RhdGljIFN0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEV4ZWN1
dGFibGVQYXRoKCk7CisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwoKSkgeworICAgICAg
ICBTdHJpbmcgcHJvY2Vzc1BhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZXhlY3V0YWJs
ZVBhdGgsIHByb2Nlc3NOYW1lKTsKKyAgICAgICAgaWYgKGZpbGVFeGlzdHMocHJvY2Vzc1BhdGgp
KQorICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NQYXRoOworICAgIH0KKworICAgIHJldHVybiBw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihMSUJFWEVDRElSKSwgcHJvY2Vzc05hbWUpOworfQorCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhP
ZldlYlByb2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFV2ViUHJv
Y2VzcyIpOworfQorCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKQorewor
ICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFUGx1Z2luUHJvY2VzcyIpOworfQorCitT
dHJpbmcgZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCkKK3sKKyAgICByZXR1cm4gZmlu
ZFdlYktpdFByb2Nlc3MoIldQRU5ldHdvcmtQcm9jZXNzIik7Cit9CisKKyNpZiBFTkFCTEUoREFU
QUJBU0VfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCkK
K3sKKyAgICByZXR1cm4gZmluZFdlYktpdFByb2Nlc3MoIldQRURhdGFiYXNlUHJvY2VzcyIpOwor
fQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi41NTcxZTFhYWM5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKKyNpbmNsdWRlIDxXZWJDb3Jl
L1Njcm9sbGJhci5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3BlL2lucHV0Lmg+
CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RhdGljIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoc3RydWN0IHdw
ZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgdW5zaWduZWQgbW9kaWZpZXJz
ID0gMDsKKyAgICB1bnNpZ25lZCBldmVudE1vZGlmaWVycyA9IGV2ZW50LT5tb2RpZmllcnM7CisK
KyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfY29u
dHJvbCkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpDb250cm9sS2V5OworICAgIGlm
IChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9zaGlmdCkKKyAg
ICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpTaGlmdEtleTsKKyAgICBpZiAoZXZlbnRNb2Rp
ZmllcnMgJiB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfYWx0KQorICAgICAgICBtb2RpZmll
cnMgfD0gV2ViRXZlbnQ6OkFsdEtleTsKKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5w
dXRfa2V5Ym9hcmRfbW9kaWZpZXJfbWV0YSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50
OjpNZXRhS2V5OworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+
KG1vZGlmaWVycyk7Cit9CisKK3N0YXRpYyBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nRm9y
S2V5RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAg
Y29uc3QgY2hhciogc2luZ2xlQ2hhcmFjdGVyID0gd3BlX2lucHV0X3NpbmdsZV9jaGFyYWN0ZXJf
Zm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50
KTsKKyAgICBpZiAoc2luZ2xlQ2hhcmFjdGVyKQorICAgICAgICByZXR1cm4gU3RyaW5nKHNpbmds
ZUNoYXJhY3Rlcik7CisKKyAgICBnbG9uZyBsZW5ndGg7CisgICAgR1VuaXF1ZVB0cjxndW5pY2hh
cjI+IHVjaGFyMTYoZ191Y3M0X3RvX3V0ZjE2KCZldmVudC0+dW5pY29kZSwgMSwgMCwgJmxlbmd0
aCwgbnVsbHB0cikpOworICAgIGlmICh1Y2hhcjE2KQorICAgICAgICByZXR1cm4gU3RyaW5nKHVj
aGFyMTYuZ2V0KCkpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworc3RhdGljIFN0cmluZyBp
ZGVudGlmaWVyU3RyaW5nRm9yS2V5RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVu
dCogZXZlbnQpCit7CisgICAgY29uc3QgY2hhciogaWRlbnRpZmllciA9IHdwZV9pbnB1dF9pZGVu
dGlmaWVyX2Zvcl9rZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigp
LCBldmVudCk7CisgICAgaWYgKGlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoaWRl
bnRpZmllcik7CisKKyAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIlUrJTA0WCIsIGV2ZW50LT51
bmljb2RlKTsKK30KKworV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7
CisgICAgU3RyaW5nIHNpbmdsZUNoYXJhY3RlclN0cmluZyA9IHNpbmdsZUNoYXJhY3RlclN0cmlu
Z0ZvcktleUV2ZW50KGV2ZW50KTsKKyAgICBTdHJpbmcgaWRlbnRpZmllclN0cmluZyA9IGlkZW50
aWZpZXJTdHJpbmdGb3JLZXlFdmVudChldmVudCk7CisKKyAgICByZXR1cm4gV2ViS2V5Ym9hcmRF
dmVudChldmVudC0+cHJlc3NlZCA/IFdlYkV2ZW50OjpLZXlEb3duIDogV2ViRXZlbnQ6OktleVVw
LAorICAgICAgICBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIHNpbmdsZUNoYXJhY3RlclN0cmluZywg
aWRlbnRpZmllclN0cmluZywKKyAgICAgICAgd3BlX2lucHV0X3dpbmRvd3Nfa2V5X2NvZGVfZm9y
X2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KSwK
KyAgICAgICAgZXZlbnQtPmtleUNvZGUsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgICAg
IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgZXZlbnQtPnRpbWUpOworfQorCitXZWJNb3VzZUV2
ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X3BvaW50ZXJfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICBX
ZWJFdmVudDo6VHlwZSB0eXBlID0gV2ViRXZlbnQ6Ok5vVHlwZTsKKyAgICBzd2l0Y2ggKGV2ZW50
LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlvbjoK
KyAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b246CisgICAgICAgIHR5cGUg
PSBldmVudC0+c3RhdGUgPyBXZWJFdmVudDo6TW91c2VEb3duIDogV2ViRXZlbnQ6Ok1vdXNlVXA7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9u
dWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBXZWJNb3Vz
ZUV2ZW50OjpCdXR0b24gYnV0dG9uID0gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgc3dp
dGNoIChldmVudC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlw
ZV9tb3Rpb246CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoK
KyAgICAgICAgaWYgKGV2ZW50LT5idXR0b24gPT0gMSkKKyAgICAgICAgICAgIGJ1dHRvbiA9IFdl
Yk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24g
PT0gMikKKyAgICAgICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOwor
ICAgICAgICBlbHNlIGlmIChldmVudC0+YnV0dG9uID09IDMpCisgICAgICAgICAgICBidXR0b24g
PSBXZWJNb3VzZUV2ZW50OjpNaWRkbGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
d3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBjbGlja0NvdW50ID0gKHR5cGUgPT0gV2Vi
RXZlbnQ6Ok1vdXNlRG93bikgPyAxIDogMDsKKworICAgIC8vIEZJWE1FOiBQcm9wZXIgYnV0dG9u
IHN1cHBvcnQuIE1vZGlmaWVycy4gZGVsdGFYL1kvWi4gQ2xpY2sgY291bnQuCisgICAgV2ViQ29y
ZTo6SW50UG9pbnQgcG9zaXRpb24oZXZlbnQtPngsIGV2ZW50LT55KTsKKyAgICBwb3NpdGlvbi5z
Y2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5
cGUsIGJ1dHRvbiwgcG9zaXRpb24sIHBvc2l0aW9uLAorICAgICAgICAwLCAwLCAwLCBjbGlja0Nv
dW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOwor
fQorCitXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cikKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhcmQtY29kZSB0aGlzLgorICAgIGVu
dW0gQXhpcyB7CisgICAgICAgIFZlcnRpY2FsLAorICAgICAgICBIb3Jpem9udGFsLAorICAgICAg
ICBTbW9vdGgKKyAgICB9OworCisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHdoZWVsVGlja3M7Cisg
ICAgV2ViQ29yZTo6RmxvYXRTaXplIGRlbHRhOworICAgIHN3aXRjaCAoZXZlbnQtPmF4aXMpIHsK
KyAgICBjYXNlIFZlcnRpY2FsOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRT
aXplKDAsIGV2ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSkpOworICAgICAgICBk
ZWx0YSA9IHdoZWVsVGlja3M7CisgICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJh
cjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSG9yaXpv
bnRhbDoKKyAgICAgICAgd2hlZWxUaWNrcyA9IFdlYkNvcmU6OkZsb2F0U2l6ZShldmVudC0+dmFs
dWUgLyBzdGQ6OmFicyhldmVudC0+dmFsdWUpLCAwKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRp
Y2tzOworICAgICAgICBkZWx0YS5zY2FsZShXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1Blckxp
bmVTdGVwKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNtb290aDoKKyAgICAgICAgd2hl
ZWxUaWNrcyA9IFdlYkNvcmU6OkZsb2F0U2l6ZSgwLCBldmVudC0+dmFsdWUgLyBkZXZpY2VTY2Fs
ZUZhY3Rvcik7CisgICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9OworCisgICAgV2ViQ29yZTo6SW50UG9p
bnQgcG9zaXRpb24oZXZlbnQtPngsIGV2ZW50LT55KTsKKyAgICBwb3NpdGlvbi5zY2FsZSgxIC8g
ZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpX
aGVlbCwgcG9zaXRpb24sIHBvc2l0aW9uLAorICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2Vi
V2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50
OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGltZSk7Cit9CisKK3N0YXRpYyBXZWJLaXQ6OldlYlBs
YXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlRm9yVG91Y2hQb2ludChpbnQg
bWFpbkV2ZW50SWQsIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBwb2lu
dCkKK3sKKyAgICBpZiAocG9pbnQtPmlkICE9IG1haW5FdmVudElkKQorICAgICAgICByZXR1cm4g
V2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKKworICAgIHN3
aXRjaCAocG9pbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBl
X2Rvd246CisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hQcmVzc2VkOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgor
ICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQ7
CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV91cDoKKyAgICAgICAgcmV0dXJu
IFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkOworICAgIGNhc2Ug
d3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH07CisKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKK30KKworV2ViVG91Y2hFdmVudCBX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3Vj
aF9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIFdlYkV2ZW50
OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOworICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUp
IHsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHR5
cGUgPSBXZWJFdmVudDo6VG91Y2hTdGFydDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6
VG91Y2hNb3ZlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVu
dF90eXBlX3VwOgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6OlRvdWNoRW5kOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGw6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIFZlY3RvcjxXZWJLaXQ6OldlYlBs
YXRmb3JtVG91Y2hQb2ludD4gdG91Y2hQb2ludHM7CisgICAgdG91Y2hQb2ludHMucmVzZXJ2ZUNh
cGFjaXR5KGV2ZW50LT50b3VjaHBvaW50c19sZW5ndGgpOworCisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGV2ZW50LT50b3VjaHBvaW50c19sZW5ndGg7ICsraSkgeworICAgICAgICBhdXRv
JiBwb2ludCA9IGV2ZW50LT50b3VjaHBvaW50c1tpXTsKKyAgICAgICAgaWYgKHBvaW50LnR5cGUg
PT0gd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbCkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIFdlYkNvcmU6OkludFBvaW50IHBvaW50Q29vcmRpbmF0ZXMocG9pbnQueCwg
cG9pbnQueSk7CisgICAgICAgIHBvaW50Q29vcmRpbmF0ZXMuc2NhbGUoMSAvIGRldmljZVNjYWxl
RmFjdG9yKTsKKyAgICAgICAgdG91Y2hQb2ludHMudW5jaGVja2VkQXBwZW5kKAorICAgICAgICAg
ICAgV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQocG9pbnQuaWQsIHN0YXRlRm9yVG91Y2hQ
b2ludChldmVudC0+aWQsICZwb2ludCksCisgICAgICAgICAgICAgICAgcG9pbnRDb29yZGluYXRl
cywgcG9pbnRDb29yZGluYXRlcykpOworICAgIH0KKworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50
KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBldmVu
dC0+dGltZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmEyYWEwMzQ1MGQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiV2ViRXZlbnQuaCIKKworc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50Oworc3Ry
dWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9l
dmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQ7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJFdmVudEZhY3RvcnkgeworcHVibGljOgorICAgIHN0YXRpYyBXZWJLZXli
b2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2Fy
ZF9ldmVudCopOworICAgIHN0YXRpYyBXZWJNb3VzZUV2ZW50IGNyZWF0ZVdlYk1vdXNlRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Ip
OworICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdw
ZV9pbnB1dF9heGlzX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHN0YXRp
YyBXZWJUb3VjaEV2ZW50IGNyZWF0ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3Vj
aF9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4
IDFiNjZhYjM2NjUxLi45YTRmZDg5ZTQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0FQSUNhc3QuaApAQCAtNTc1LDQgKzU3NSw4IEBAIGlubGluZSBQcm94eWluZ1JlZlB0
cjxXZWJHcmFtbWFyRGV0YWlsPiB0b0FQSShjb25zdCBXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJiBn
cmFtCiAjaW5jbHVkZSAiV0tBUElDYXN0R3RrLmgiCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoQlVJ
TERJTkdfV1BFX18pCisjaW5jbHVkZSAiV0tBUElDYXN0V1BFLmgiCisjZW5kaWYKKwogI2VuZGlm
IC8vIFdLQVBJQ2FzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0Mvd3BlL1dLQVBJQ2FzdFdQRS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dw
ZS9XS0FQSUNhc3RXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MGY4YTFlNzE3MDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0Mvd3BlL1dLQVBJQ2FzdFdQRS5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0FQSUNhc3RXUEVf
aAorI2RlZmluZSBXS0FQSUNhc3RXUEVfaAorCisjaWZuZGVmIFdLQVBJQ2FzdF9oCisjZXJyb3Ig
IlBsZWFzZSAjaW5jbHVkZSBcIldLQVBJQ2FzdC5oXCIgaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGly
ZWN0bHkuIgorI2VuZGlmCisKKyNpbmNsdWRlICJXS1ZpZXcuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0FjdGl2aXR5U3RhdGUuaD4KKworbmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3UmVmLCBXS1dQ
RTo6VmlldykKKworaW5saW5lIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIHRvVmlld1N0
YXRlRmxhZ3MoV0tWaWV3U3RhdGUgd2tWaWV3U3RhdGUpCit7CisgICAgdW5zaWduZWQgdmlld1N0
YXRlRmxhZ3MgPSAwOworCisgICAgaWYgKHdrVmlld1N0YXRlICYga1dLVmlld1N0YXRlSXNJbldp
bmRvdykKKyAgICAgICAgdmlld1N0YXRlRmxhZ3MgfD0gV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6
SXNJbldpbmRvdzsKKyAgICBpZiAod2tWaWV3U3RhdGUgJiBrV0tWaWV3U3RhdGVJc1Zpc2libGUp
CisgICAgICAgIHZpZXdTdGF0ZUZsYWdzIHw9IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlz
aWJsZTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpG
bGFncz4odmlld1N0YXRlRmxhZ3MpOworfQorCit9CisKKyNlbmRpZiAvLyBXS0FQSUNhc3RXUEVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jY2JiMjM3MTVlZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcApA
QCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1ZpZXcuaCIKKworI2lu
Y2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwu
aCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXUEVWaWV3LmgiCisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVmlld1JlZiBXS1ZpZXdDcmVhdGUoV0tQYWdlQ29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQoreworICAgIHJldHVybiB0b0FQSShXS1dQRTo6Vmll
dzo6Y3JlYXRlKG51bGxwdHIsICp0b0ltcGwoY29uZmlndXJhdGlvbikpKTsKK30KKworV0tWaWV3
UmVmIFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCog
YmFja2VuZCwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQoreworICAgIHJl
dHVybiB0b0FQSShXS1dQRTo6Vmlldzo6Y3JlYXRlKGJhY2tlbmQsICp0b0ltcGwoY29uZmlndXJh
dGlvbikpKTsKK30KKworV0tQYWdlUmVmIFdLVmlld0dldFBhZ2UoV0tWaWV3UmVmIHZpZXcpCit7
CisgICAgcmV0dXJuIHRvQVBJKCZ0b0ltcGwodmlldyktPnBhZ2UoKSk7Cit9CisKK3ZvaWQgV0tW
aWV3U2V0Vmlld1N0YXRlKFdLVmlld1JlZiB2aWV3LCBXS1ZpZXdTdGF0ZSB2aWV3U3RhdGUpCit7
CisgICAgdG9JbXBsKHZpZXcpLT5zZXRWaWV3U3RhdGUodG9WaWV3U3RhdGVGbGFncyh2aWV3U3Rh
dGUpKTsKK30KKwordm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiB2aWV3LCBjb25z
dCBXS1ZpZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgdG9JbXBsKHZpZXcpLT5pbml0aWFs
aXplQ2xpZW50KGNsaWVudCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0Mvd3BlL1dLVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dw
ZS9XS1ZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTU5ZWMy
YjQ1YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
d3BlL1dLVmlldy5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS1ZpZXdfaAorI2RlZmluZSBXS1ZpZXdf
aAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0dlb21l
dHJ5Lmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworc3Ry
dWN0IHdwZV92aWV3X2JhY2tlbmQ7CisKK1dLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRl
KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpOworV0tfRVhQT1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVh
dGVXaXRoVmlld0JhY2tlbmQoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqLCBXS1BhZ2VDb25maWd1
cmF0aW9uUmVmKTsKKworV0tfRVhQT1JUIFdLUGFnZVJlZiBXS1ZpZXdHZXRQYWdlKFdLVmlld1Jl
Zik7CisKK2VudW0geworICAgIGtXS1ZpZXdTdGF0ZUlzSW5XaW5kb3cgPSAxIDw8IDAsCisgICAg
a1dLVmlld1N0YXRlSXNWaXNpYmxlID0gMSA8PCAxLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tW
aWV3U3RhdGU7CisKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1NldFZpZXdTdGF0ZShXS1ZpZXdSZWYs
IFdLVmlld1N0YXRlKTsKKwordHlwZWRlZiB2b2lkICgqV0tWaWV3RnJhbWVEaXNwbGF5ZWQpKFdL
Vmlld1JlZiB2aWV3LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwordHlwZWRlZiBzdHJ1Y3Qg
V0tWaWV3Q2xpZW50QmFzZSB7CisgICAgaW50IHZlcnNpb247CisgICAgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbzsKK30gV0tWaWV3Q2xpZW50QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tWaWV3Q2xp
ZW50VjAgeworICAgIFdLVmlld0NsaWVudEJhc2UgYmFzZTsKKworICAgIC8vIHZlcnNpb24gMAor
ICAgIFdLVmlld0ZyYW1lRGlzcGxheWVkIGZyYW1lRGlzcGxheWVkOworfSBXS1ZpZXdDbGllbnRW
MDsKKworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld0NsaWVudChXS1ZpZXdSZWYsIGNvbnN0
IFdLVmlld0NsaWVudEJhc2UqKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKwor
I2VuZGlmIC8vIFdLVmlld19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE0MDRlYzVkOWI1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
Y3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbXBvc2l0aW5n
TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJBdHRhY2htZW50LmgiCisjaW5jbHVkZSAiQ29t
cG9zaXRpbmdNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgor
I2luY2x1ZGUgPHdwZS92aWV3LWJhY2tlbmQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0Nv
bXBvc2l0aW5nTWFuYWdlclByb3h5OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eShXS1dQRTo6Vmll
dyYgdmlldykKKyAgICA6IG1fdmlldyh2aWV3KQoreworfQorCitDb21wb3NpdGluZ01hbmFnZXJQ
cm94eTo6fkNvbXBvc2l0aW5nTWFuYWdlclByb3h5KCkgPSBkZWZhdWx0OworCit2b2lkIENvbXBv
c2l0aW5nTWFuYWdlclByb3h5Ojppbml0aWFsaXplKCkKK3sKKyAgICBtX3ZpZXcucGFnZSgpLnBy
b2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Q29tcG9z
aXRpbmdNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV92aWV3LnBhZ2UoKS5w
YWdlSUQoKSwgKnRoaXMpOworfQorCit2b2lkIENvbXBvc2l0aW5nTWFuYWdlclByb3h5Ojplc3Rh
Ymxpc2hDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbkhhbmRsZSkKK3sKKyAg
ICBjb25uZWN0aW9uSGFuZGxlID0gSVBDOjpBdHRhY2htZW50KHdwZV92aWV3X2JhY2tlbmRfZ2V0
X3JlbmRlcmVyX2hvc3RfZmQobV92aWV3LmJhY2tlbmQoKSkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0Nv
bXBvc2l0aW5nTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5jYTM1YzA3YzRkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw1
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEF0dGFjaG1lbnQ7Cit9
CisKK25hbWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkgZmluYWwgOiBwdWJsaWMgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbXBvc2l0aW5nTWFu
YWdlclByb3h5KTsKK3B1YmxpYzoKKyAgICBDb21wb3NpdGluZ01hbmFnZXJQcm94eShXS1dQRTo6
VmlldyYpOworICAgIHZpcnR1YWwgfkNvbXBvc2l0aW5nTWFuYWdlclByb3h5KCk7CisKKyAgICB2
b2lkIGluaXRpYWxpemUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
cgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
IHJlcGx5RW5jb2Rlcikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGVzdGFibGlzaENvbm5lY3Rpb24o
SVBDOjpBdHRhY2htZW50Jik7CisKKyAgICBXS1dQRTo6VmlldyYgbV92aWV3OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xOWEwMDU1Nzc3NgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0
aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjUgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDE1IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
IyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
CisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK21lc3NhZ2VzIC0+IENvbXBvc2l0aW5nTWFuYWdlclByb3h5IHsKKyAgICBFc3Rh
Ymxpc2hDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKQor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0Fy
ZWFQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5n
QXJlYVByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MzczYzBmNjdlMmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmNwcApAQCAtMCwwICsxLDk3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5V1BFLmgiCisKKyNpbmNsdWRlICJEcmF3
aW5nQXJlYU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworRHJhd2luZ0FyZWFQcm94eVdQRTo6RHJhd2luZ0FyZWFQ
cm94eVdQRShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBEcmF3aW5nQXJlYVByb3h5KERyYXdp
bmdBcmVhVHlwZVdQRSwgcGFnZSkKK3sKK30KKworRHJhd2luZ0FyZWFQcm94eVdQRTo6fkRyYXdp
bmdBcmVhUHJveHlXUEUoKQoreworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmRldmlj
ZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OnNpemVEaWRDaGFuZ2UoKQoreworICAgIGlmIChtX3dl
YlBhZ2VQcm94eS5pc1ZhbGlkKCkpCisgICAgICAgIG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6VXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoMCwgZmFs
c2UsIG1fd2ViUGFnZVByb3h5LmRldmljZVNjYWxlRmFjdG9yKCksIG1fc2l6ZSwgbV9zY3JvbGxP
ZmZzZXQpLCBtX3dlYlBhZ2VQcm94eS5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQ
cm94eVdQRTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhzdGQ6OmZ1bmN0aW9uPHZvaWQo
Q2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCit7CisgICAgaWYgKCFtX3dl
YlBhZ2VQcm94eS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFj
a0Jhc2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaCgKKyAgICAgICAgW2NhbGxiYWNrRnVu
Y3Rpb25dIHsKKyAgICAgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJv
cjo6Tm9uZSk7CisgICAgICAgIH0pOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OnVw
ZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmRp
ZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNv
bnN0IFVwZGF0ZUluZm8mLCBjb25zdCBMYXllclRyZWVDb250ZXh0JikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5
ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKK3sKKyAgICBBU1NFUlQoIWJhY2tpbmdT
dG9yZVN0YXRlSUQpOworCisgICAgbV9sYXllclRyZWVDb250ZXh0ID0gbGF5ZXJUcmVlQ29udGV4
dDsKKyAgICBtX3dlYlBhZ2VQcm94eS5lbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxh
eWVyVHJlZUNvbnRleHQpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmV4aXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25z
dCBVcGRhdGVJbmZvJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdp
bmdBcmVhUHJveHlXUEU6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZjQyN2I0Y2EyOQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVh
UHJveHlXUEUuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRHJhd2luZ0Fy
ZWFQcm94eS5oIgorCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgRHJhd2luZ0FyZWFQcm94eVdQRSBmaW5hbCA6IHB1YmxpYyBEcmF3
aW5nQXJlYVByb3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEcmF3aW5nQXJlYVByb3h5V1BF
KFdlYlBhZ2VQcm94eSYpOworICAgIHZpcnR1YWwgfkRyYXdpbmdBcmVhUHJveHlXUEUoKTsKKwor
cHJpdmF0ZToKKyAgICAvLyBEcmF3aW5nQXJlYVByb3h5CisgICAgdm9pZCBkZXZpY2VTY2FsZUZh
Y3RvckRpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2l6ZURpZENoYW5nZSgpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhzdGQ6OmZ1bmN0aW9u
PHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+KSBvdmVycmlkZTsKKworICAgIC8vIElQQyBtZXNz
YWdlIGhhbmRsZXJzCisgICAgdm9pZCB1cGRhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJ
RCwgY29uc3QgVXBkYXRlSW5mbyYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkVXBkYXRlQmFja2lu
Z1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5m
byYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKyAgICB2b2lkIGVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29u
c3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZXhpdEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0
ZUluZm8mKSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQm
KSBvdmVycmlkZTsKKworICAgIC8vIFRoZSBjdXJyZW50IGxheWVyIHRyZWUgY29udGV4dC4KKyAg
ICBMYXllclRyZWVDb250ZXh0IG1fbGF5ZXJUcmVlQ29udGV4dDsKK307CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDE2NTMwOTVmYjUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5jcHAKQEAgLTAsMCArMSwzMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDbGll
bnRJbXBsLmgiCisKKyNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5V1BFLmgiCisjaW5jbHVkZSAi
TmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIK
KyNpbmNsdWRlICJTY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIldQRVZpZXcu
aCIKKyNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9B
Y3Rpdml0eVN0YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworUGFnZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBsKFdLV1BF
OjpWaWV3JiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCisgICAgLCBtX3Njcm9sbEdlc3R1cmVD
b250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI+KCkpCit7
Cit9CisKK1BhZ2VDbGllbnRJbXBsOjp+UGFnZUNsaWVudEltcGwoKSA9IGRlZmF1bHQ7CisKK3N0
ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJh
d2luZ0FyZWFQcm94eSgpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0Fy
ZWFQcm94eVdQRT4obV92aWV3LnBhZ2UoKSk7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNl
dFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sKQoreworfQorCitXZWJDb3JlOjpGbG9hdFBv
aW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xsUG9zaXRpb24oKQoreworICAgIHJldHVybiB7
IH07Cit9CisKK1dlYkNvcmU6OkludFNpemUgUGFnZUNsaWVudEltcGw6OnZpZXdTaXplKCkKK3sK
KyAgICByZXR1cm4gbV92aWV3LnNpemUoKTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNW
aWV3V2luZG93QWN0aXZlKCkKK3sKKyAgICByZXR1cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2Vi
Q29yZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmU7Cit9CisKK2Jvb2wgUGFnZUNsaWVu
dEltcGw6OmlzVmlld0ZvY3VzZWQoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkg
JiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQ7Cit9CisKK2Jvb2wgUGFnZUNsaWVu
dEltcGw6OmlzVmlld1Zpc2libGUoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkg
JiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGU7Cit9CisKK2Jvb2wgUGFnZUNsaWVu
dEltcGw6OmlzVmlld0luV2luZG93KCkKK3sKKyAgICByZXR1cm4gbV92aWV3LnZpZXdTdGF0ZSgp
ICYgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRvdzsKK30KKwordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6cHJvY2Vzc0RpZEV4aXQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRSZWxhdW5jaFByb2Nlc3MoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwYWdlQ2xv
c2VkKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2Uo
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjp0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDb21t
aXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYsIGJvb2wpCit7Cit9CisKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KikKK3sKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNvcihjb25z
dCBXZWJDb3JlOjpDdXJzb3ImKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJz
b3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1h
bmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JS
ZWRvKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhckFsbEVkaXRDb21tYW5kcygp
Cit7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6
VW5kb09yUmVkbykKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OmV4ZWN1dGVVbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pCit7Cit9CisKK1dl
YkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZWN0KQoreworICAgIHJldHVybiByZWN0OworfQorCitX
ZWJDb3JlOjpGbG9hdFJlY3QgUGFnZUNsaWVudEltcGw6OmNvbnZlcnRUb1VzZXJTcGFjZShjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK1dl
YkNvcmU6OkludFBvaW50IFBhZ2VDbGllbnRJbXBsOjpzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb2ludCkKK3sKKyAgICByZXR1cm4gcG9pbnQ7Cit9CisKK1dlYkNv
cmU6OkludFJlY3QgUGFnZUNsaWVudEltcGw6OnJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1cm4gcmVjdDsKK30KKwordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50Jiwg
Ym9vbCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNv
bnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wgd2FzRXZlbnRIYW5kbGVk
KQoreworICAgIGlmICh3YXNFdmVudEhhbmRsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGNv
bnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBvaW50ID0gdG91Y2hF
dmVudC5uYXRpdmVGYWxsYmFja1RvdWNoUG9pbnQoKTsKKyAgICBpZiAodG91Y2hQb2ludC0+dHlw
ZSA9PSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvJiBwYWdlID0gbV92aWV3LnBhZ2UoKTsKKworICAgIGlmIChtX3Njcm9sbEdlc3R1
cmVDb250cm9sbGVyLT5oYW5kbGVFdmVudCh0b3VjaFBvaW50KSkgeworICAgICAgICBzdHJ1Y3Qg
d3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVudCA9IG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xs
ZXItPmF4aXNFdmVudCgpOworICAgICAgICBpZiAoYXhpc0V2ZW50LT50eXBlICE9IHdwZV9pbnB1
dF9heGlzX2V2ZW50X3R5cGVfbnVsbCkKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVu
dChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoYXhpc0V2ZW50LCBtX3ZpZXcucGFnZSgpLmRl
dmljZVNjYWxlRmFjdG9yKCkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0cnVj
dCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBwb2ludGVyRXZlbnQgeworICAgICAgICB3cGVfaW5w
dXRfcG9pbnRlcl9ldmVudF90eXBlX251bGwsIHRvdWNoUG9pbnQtPnRpbWUsCisgICAgICAgIHRv
dWNoUG9pbnQtPngsIHRvdWNoUG9pbnQtPnksCisgICAgICAgIDEsIDAKKyAgICB9OworCisgICAg
c3dpdGNoICh0b3VjaFBvaW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZl
bnRfdHlwZV9kb3duOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2lu
dGVyX2V2ZW50X3R5cGVfYnV0dG9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAxOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlv
bjoKKyAgICAgICAgcG9pbnRlckV2ZW50LnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90
eXBlX21vdGlvbjsKKyAgICAgICAgcG9pbnRlckV2ZW50LnN0YXRlID0gMTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV91cDoKKyAgICAgICAgcG9p
bnRlckV2ZW50LnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjsKKyAg
ICAgICAgcG9pbnRlckV2ZW50LnN0YXRlID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFnZS5oYW5kbGVNb3VzZUV2
ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQoJnBvaW50ZXJFdmVudCwgcGFnZS5kZXZpY2VTY2FsZUZh
Y3RvcigpKSk7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5k
bGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKQoreworfQorCitSZWZQdHI8
V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShX
ZWJQYWdlUHJveHkmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCisjaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCitzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNs
aWVudEltcGw6OmNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgY29uc3QgQ29u
dGV4dE1lbnVDb250ZXh0RGF0YSYsIGNvbnN0IFVzZXJEYXRhJikKK3sKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKyNlbmRpZgorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworfQorCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25z
dCBMYXllclRyZWVDb250ZXh0JikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmlu
aXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiwgY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2
aWdhdGlvbkdlc3R1cmVEaWRCZWdpbigpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5h
dmlnYXRpb25HZXN0dXJlV2lsbEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikKK3sK
K30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoYm9vbCwg
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5h
dmlnYXRpb25HZXN0dXJlRGlkRW5kKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6d2ls
bFJlY29yZE5hdmlnYXRpb25TbmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikKK3sKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hv
dCgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvck1haW5GcmFtZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZp
bmlzaExvYWRGb3JNYWluRnJhbWUoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRG
YWlsTG9hZEZvck1haW5GcmFtZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZUJhY2tncm91bmRDb2xv
cigpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlZlZpZXcoKQoreworfQorCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkZXJlZlZpZXcoKQoreworfQorCisjaWYgRU5BQkxFKFZJREVPKQor
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6ZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdNZWRpYVBs
dWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Np
b25SZXF1ZXN0JikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKK3sKK30KKworV2ViQ29yZTo6
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBQYWdlQ2xpZW50SW1wbDo6dXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbigpCit7CisgICAgcmV0dXJuIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb246OkxUUjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTc5YWNlMTA2ZjYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5o
CkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgorCitu
YW1lc3BhY2UgV0tXUEUgeworY2xhc3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyOworCitjbGFzcyBQYWdlQ2xpZW50SW1wbCBm
aW5hbCA6IHB1YmxpYyBQYWdlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBQYWdlQ2xpZW50SW1wbChX
S1dQRTo6VmlldyYpOworICAgIHZpcnR1YWwgflBhZ2VDbGllbnRJbXBsKCk7CisKK3ByaXZhdGU6
CisgICAgLy8gUGFnZUNsaWVudAorICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5
PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWaWV3TmVl
ZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVx
dWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmLCBib29sKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3Jv
bGxQb3NpdGlvbigpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBv
dmVycmlkZTsKKyAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIG92ZXJyaWRlOworICAgIGJv
b2wgaXNWaWV3Rm9jdXNlZCgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNWaWV3VmlzaWJsZSgpIG92
ZXJyaWRlOworICAgIGJvb2wgaXNWaWV3SW5XaW5kb3coKSBvdmVycmlkZTsKKworICAgIHZvaWQg
cHJvY2Vzc0RpZEV4aXQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlbGF1bmNoUHJvY2Vzcygp
IG92ZXJyaWRlOworICAgIHZvaWQgcGFnZUNsb3NlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgcHJl
ZmVyZW5jZXNEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRDb21t
aXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYsIGJvb2wpIG92ZXJyaWRlOworICAgIHZv
aWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSBvdmVycmlkZTsKKworICAg
IHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJy
aWRlOworCisgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6
Vmlld3BvcnRBdHRyaWJ1dGVzJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHJlZ2lzdGVyRWRpdENv
bW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRv
T3JSZWRvKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCkgb3ZlcnJp
ZGU7CisgICAgYm9vbCBjYW5VbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pIG92ZXJy
aWRlOworICAgIHZvaWQgZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykg
b3ZlcnJpZGU7CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2Uo
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IGNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlk
ZTsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50Jikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvU2Ny
ZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKworICAgIHZvaWQgZG9uZVdp
dGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYs
IGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgd2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNv
cmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpIG92ZXJyaWRlOworCisgICAgUmVmUHRyPFdl
YlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVy
cmlkZTsKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmLCBj
b25zdCBDb250ZXh0TWVudUNvbnRleHREYXRhJiwgY29uc3QgVXNlckRhdGEmKSBvdmVycmlkZTsK
KyNlbmRpZgorCisgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0
IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKyAgICB2b2lkIGV4aXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZSgpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworCisgICAgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJp
bmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKSBvdmVycmlkZTsKKworICAgIHZvaWQgbmF2
aWdhdGlvbkdlc3R1cmVEaWRCZWdpbigpIG92ZXJyaWRlOworICAgIHZvaWQgbmF2aWdhdGlvbkdl
c3R1cmVXaWxsRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKSBvdmVycmlkZTsKKyAg
ICB2b2lkIG5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0mKSBvdmVycmlkZTsKKyAgICB2b2lkIG5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB3aWxsUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJl
U25hcHNob3QoKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9y
TWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFt
ZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRpZENo
YW5nZUJhY2tncm91bmRDb2xvcigpIG92ZXJyaWRlOworCisgICAgdm9pZCByZWZWaWV3KCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsKKworI2lmIEVOQUJMRShWSURF
TykKKyAgICBib29sIGRlY2lkZVBvbGljeUZvckluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVy
bWlzc2lvblJlcXVlc3QoSW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVz
dCYpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlv
bigpIG92ZXJyaWRlOworCisgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
biB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRp
ZENoYW5nZUF2b2lkc1Vuc2FmZUFyZWEoYm9vbCkgb3ZlcnJpZGUgeyB9CisKKyAgICBXS1dQRTo6
VmlldyYgbV92aWV3OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEdlc3R1cmVDb250cm9s
bGVyPiBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxH
ZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9T
Y3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmRhMTJjOGViMzUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEs
ODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgi
CisKKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworYm9vbCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0
IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCit7CisgICAgc3dpdGNoICh0
b3VjaFBvaW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9k
b3duOgorICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3VjaFBvaW50LT50aW1lOworICAgICAgICBt
X3N0YXJ0LnggPSB0b3VjaFBvaW50LT54OworICAgICAgICBtX3N0YXJ0LnkgPSB0b3VjaFBvaW50
LT55OworICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKKyAgICAgICAgbV9vZmZz
ZXQueSA9IHRvdWNoUG9pbnQtPnk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHdw
ZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgaWYgKCFtX2hhbmRsaW5n
KSB7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWCA9IHRvdWNoUG9pbnQtPnggLSBtX3N0YXJ0
Lng7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWSA9IHRvdWNoUG9pbnQtPnkgLSBtX3N0YXJ0
Lnk7CisgICAgICAgICAgICB1aW50MzJfdCBkZWx0YVRpbWUgPSB0b3VjaFBvaW50LT50aW1lIC0g
bV9zdGFydC50aW1lOworCisgICAgICAgICAgICBpbnQgcGl4ZWxzUGVyTGluZVN0ZXAgPSBXZWJD
b3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCk7CisgICAgICAgICAgICBtX2hhbmRs
aW5nID0gc3RkOjphYnMoZGVsdGFYKSA+PSBwaXhlbHNQZXJMaW5lU3RlcAorICAgICAgICAgICAg
ICAgIHx8IHN0ZDo6YWJzKGRlbHRhWSkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAgICAgICAg
ICAgICB8fCBkZWx0YVRpbWUgPj0gMjAwOworICAgICAgICB9CisgICAgICAgIGlmIChtX2hhbmRs
aW5nKSB7CisgICAgICAgICAgICBtX2F4aXNFdmVudCA9IHsKKyAgICAgICAgICAgICAgICB3cGVf
aW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAgICAgICAgICAgICAgICB0b3VjaFBvaW50
LT50aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAgICAgICAgICAgICAgICAyLCAodG91Y2hQ
b2ludC0+eSAtIG1fb2Zmc2V0LnkpCisgICAgICAgICAgICB9OworICAgICAgICAgICAgbV9vZmZz
ZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgICAgICBtX29mZnNldC55ID0gdG91Y2hQb2lu
dC0+eTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAg
ICBpZiAobV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9oYW5kbGluZyA9IGZhbHNlOworICAg
ICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3BlX2lucHV0X2F4aXNf
ZXZlbnRfdHlwZV9udWxsLAorICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAKKyAgICAgICAg
ICAgIH07CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdkMTcyNGFhZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxl
ci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlciB7Citw
dWJsaWM6CisgICAgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBz
dHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVudCgpIHsgcmV0dXJuICZtX2F4aXNF
dmVudDsgfQorCisgICAgYm9vbCBoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3Rv
dWNoX2V2ZW50X3JhdyopOworCitwcml2YXRlOgorICAgIHN0cnVjdCB7CisgICAgICAgIHVpbnQz
Ml90IHRpbWUgeyAwIH07CisgICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJf
dCB5IHsgMCB9OworICAgIH0gbV9zdGFydDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIGludDMy
X3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9vZmZzZXQ7CisK
KyAgICBib29sIG1faGFuZGxpbmcgeyBmYWxzZSB9OworICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhp
c19ldmVudCBtX2F4aXNFdmVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2Q3YjYyM2E1NTUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApAQCAtMCwwICsxLDE1
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCisjaW5jbHVkZSAiQVBJ
UGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgi
CisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYlRv
dWNoRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAi
V2ViUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlIDx3
cGUvdmlldy1iYWNrZW5kLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFj
ZSBXS1dQRSB7CisKK1ZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQs
IGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDb25maWd1cmF0aW9uKQorICAgIDog
bV9wYWdlQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KCp0aGlzKSkKKyAg
ICAsIG1fc2l6ZSB7IDgwMCwgNjAwIH0KKyAgICAsIG1fdmlld1N0YXRlRmxhZ3MoV2ViQ29yZTo6
QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJ
c0ZvY3VzZWQgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpJc0luV2luZG93KQorICAgICwgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94
eSgqdGhpcykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBiYXNlQ29uZmlndXJhdGlvbi5j
b3B5KCk7CisgICAgYXV0byogcHJlZmVyZW5jZXMgPSBjb25maWd1cmF0aW9uLT5wcmVmZXJlbmNl
cygpOworICAgIGlmICghcHJlZmVyZW5jZXMgJiYgY29uZmlndXJhdGlvbi0+cGFnZUdyb3VwKCkp
IHsKKyAgICAgICAgcHJlZmVyZW5jZXMgPSAmY29uZmlndXJhdGlvbi0+cGFnZUdyb3VwKCktPnBy
ZWZlcmVuY2VzKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldFByZWZlcmVuY2VzKHByZWZl
cmVuY2VzKTsKKyAgICB9CisgICAgaWYgKHByZWZlcmVuY2VzKSB7CisgICAgICAgIHByZWZlcmVu
Y2VzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcHJl
ZmVyZW5jZXMtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgICBwcmVmZXJl
bmNlcy0+c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZl
cmVuY2VzLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRX
ZWJTZWN1cml0eUVuYWJsZWQoZmFsc2UpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0RGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisKKyAgICBhdXRvKiBwb29sID0gY29uZmln
dXJhdGlvbi0+cHJvY2Vzc1Bvb2woKTsKKyAgICBtX3BhZ2VQcm94eSA9IHBvb2wtPmNyZWF0ZVdl
YlBhZ2UoKm1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisKKyAgICBtX2Jh
Y2tlbmQgPSBiYWNrZW5kOworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAgICBtX2JhY2tlbmQg
PSB3cGVfdmlld19iYWNrZW5kX2NyZWF0ZSgpOworICAgIG1fY29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkuaW5pdGlhbGl6ZSgpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2Ns
aWVudCBzX2JhY2tlbmRDbGllbnQgPSB7CisgICAgICAgIC8vIHNldF9zaXplCisgICAgICAgIFtd
KHZvaWQqIGRhdGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7
CisgICAgICAgICAgICB2aWV3LnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZSh3aWR0aCwgaGVpZ2h0
KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGZyYW1lX2Rpc3BsYXllZAorICAgICAgICBbXSh2
b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3ID0gKnJlaW50ZXJw
cmV0X2Nhc3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5mcmFtZURpc3BsYXllZCgp
OworICAgICAgICB9CisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9iYWNrZW5kX2Ns
aWVudChtX2JhY2tlbmQsICZzX2JhY2tlbmRDbGllbnQsIHRoaXMpOworCisgICAgc3RhdGljIHN0
cnVjdCB3cGVfdmlld19iYWNrZW5kX2lucHV0X2NsaWVudCBzX2lucHV0Q2xpZW50ID0geworICAg
ICAgICAvLyBoYW5kbGVfa2V5Ym9hcmRfZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0YSwgc3Ry
dWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisgICAgICAg
ICAgICB2aWV3LnBhZ2UoKS5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChldmVudCkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfcG9pbnRl
cl9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRl
cnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxl
TW91c2VFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNl
U2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfYXhpc19ldmVu
dAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGV2
ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnByZXRfY2Fz
dDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVu
dChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0
b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfdG91Y2hfZXZlbnQKKyAgICAg
ICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZlbnQpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0PFZpZXcq
PihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3VjaEV2ZW50KFdlYktp
dDo6TmF0aXZlV2ViVG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7
CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9pbnB1dF9jbGll
bnQobV9iYWNrZW5kLCAmc19pbnB1dENsaWVudCwgdGhpcyk7CisKKyAgICB3cGVfdmlld19iYWNr
ZW5kX2luaXRpYWxpemUobV9iYWNrZW5kKTsKKworICAgIG1fcGFnZVByb3h5LT5pbml0aWFsaXpl
V2ViUGFnZSgpOworfQorCitWaWV3Ojp+VmlldygpCit7CisgICAgd3BlX3ZpZXdfYmFja2VuZF9k
ZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgVmlldzo6aW5pdGlhbGl6ZUNsaWVudChjb25z
dCBXS1ZpZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jbGllbnQuaW5pdGlhbGl6ZShj
bGllbnQpOworfQorCit2b2lkIFZpZXc6OmZyYW1lRGlzcGxheWVkKCkKK3sKKyAgICBtX2NsaWVu
dC5mcmFtZURpc3BsYXllZCgqdGhpcyk7Cit9CisKK3ZvaWQgVmlldzo6c2V0U2l6ZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisgICAgaWYgKG1f
cGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBtX3BhZ2VQcm94eS0+ZHJhd2luZ0Fy
ZWEoKS0+c2V0U2l6ZShzaXplLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNvcmU6OkludFNpemUo
KSk7Cit9CisKK3ZvaWQgVmlldzo6c2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6
OkZsYWdzIGZsYWdzKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRl
OjpGbGFncyBkZWZhdWx0RmxhZ3MgPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0Fj
dGl2ZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKKworICAgIFdlYkNvcmU6
OkFjdGl2aXR5U3RhdGU6OkZsYWdzIGNoYW5nZWRGbGFncyA9IG1fdmlld1N0YXRlRmxhZ3MgXiAo
ZGVmYXVsdEZsYWdzIHwgZmxhZ3MpOworICAgIG1fdmlld1N0YXRlRmxhZ3MgPSBkZWZhdWx0Rmxh
Z3MgfCBmbGFnczsKKworICAgIGlmIChjaGFuZ2VkRmxhZ3MpCisgICAgICAgIG1fcGFnZVByb3h5
LT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWRGbGFncyk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9X
UEVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJiM2M5ZDg0YzlmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oCkBA
IC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRl
ICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgi
CisjaW5jbHVkZSAiV1BFVmlld0NsaWVudC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kOworCituYW1l
c3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VHcm91cDsKK2NsYXNzIFdlYlByb2Nlc3NQb29s
OworfQorCituYW1lc3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3IDogcHVibGljIEFQSTo6T2Jq
ZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Vmlldz4geworcHVibGljOgorICAgIHN0YXRpYyBW
aWV3KiBjcmVhdGUoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0IEFQSTo6
UGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICByZXR1cm4g
bmV3IFZpZXcoYmFja2VuZCwgY29uZmlndXJhdGlvbik7CisgICAgfQorCisgICAgLy8gQ2xpZW50
IG1ldGhvZHMKKyAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3Q2xpZW50QmFz
ZSopOworICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoKTsKKworICAgIFdlYktpdDo6V2ViUGFnZVBy
b3h5JiBwYWdlKCkgeyByZXR1cm4gKm1fcGFnZVByb3h5OyB9CisKKyAgICBzdHJ1Y3Qgd3BlX3Zp
ZXdfYmFja2VuZCogYmFja2VuZCgpIHsgcmV0dXJuIG1fYmFja2VuZDsgfQorCisgICAgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAg
V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV92aWV3U3RhdGVGbGFnczsgfQorICAgIHZvaWQgc2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2
aXR5U3RhdGU6OkZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBWaWV3KHN0cnVjdCB3cGVfdmlld19i
YWNrZW5kKiwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYpOworICAgIHZpcnR1YWwgflZp
ZXcoKTsKKworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisKKyAg
ICBWaWV3Q2xpZW50IG1fY2xpZW50OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6UGFn
ZUNsaWVudEltcGw+IG1fcGFnZUNsaWVudDsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJv
eHk+IG1fcGFnZVByb3h5OworICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOworICAgIFdlYkNv
cmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlRmxhZ3M7CisKKyAgICBXZWJLaXQ6
OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5IG1fY29tcG9zaXRpbmdNYW5hZ2VyUHJveHk7CisgICAg
c3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIG1fYmFja2VuZDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVW
aWV3Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdD
bGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NDRhYzk4
ODY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3Bl
L1dQRVZpZXdDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldQRVZpZXdDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUg
IldLQmFzZS5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKKworbmFtZXNwYWNlIFdLV1BFIHsKKwordm9pZCBWaWV3Q2xpZW50OjpmcmFtZURpc3BsYXll
ZChWaWV3JiB2aWV3KQoreworICAgIGlmIChtX2NsaWVudC5mcmFtZURpc3BsYXllZCkKKyAgICAg
ICAgbV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQodG9BUEkoJnZpZXcpLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5kNWU1NTlmYWY1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApAQCAtMCwwICsxLDQ2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dL
Vmlldy5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0
czxXS1ZpZXdDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLVmlld0NsaWVu
dFYwPiBWZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK2NsYXNzIFZpZXc7
CisKK2NsYXNzIFZpZXdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tWaWV3Q2xpZW50QmFz
ZT4geworcHVibGljOgorICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoVmlldyYpOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ODIwOTJiYmZlYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJ
bnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxncmVzb3VyY2VzPgorICA8Z3Jlc291cmNlIHBy
ZWZpeD0iL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UiPgorICAgIDxmaWxlPmluc3Bl
Y3RvclBhZ2VJbmRleC5odG1sPC9maWxlPgorICA8L2dyZXNvdXJjZT4KKzwvZ3Jlc291cmNlcz4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDI3YmVjMzYyMzE1Li5mZDg0OGNjZWQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQ2hpbGRQcm9j
ZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25z
JiBsYXVuY2hPCiAgICAgaWYgKG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KQogICAg
ICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZChBU0NJSUxpdGVy
YWwoImFsd2F5cy1ydW5zLWF0LWJhY2tncm91bmQtcHJpb3JpdHkiKSwgInRydWUiKTsKIAotI2lm
IEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2lmIEVOQUJMRShERVZF
TE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICAgICBjb25z
dCBjaGFyKiB2YXJuYW1lOwogICAgIHN3aXRjaCAobGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSkg
ewogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViOgpAQCAtNzksNyAr
NzksNyBAQCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NM
YXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoTwogICAgIGNvbnN0IGNoYXIqIHByb2Nlc3ND
bWRQcmVmaXggPSBnZXRlbnYodmFybmFtZSk7CiAgICAgaWYgKHByb2Nlc3NDbWRQcmVmaXggJiYg
KnByb2Nlc3NDbWRQcmVmaXgpCiAgICAgICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZp
eCA9IFN0cmluZzo6ZnJvbVVURjgocHJvY2Vzc0NtZFByZWZpeCk7Ci0jZW5kaWYgLy8gRU5BQkxF
KERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjZW5kaWYgLy8gRU5BQkxFKERFVkVM
T1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQogfQogCiB2b2lk
IENoaWxkUHJvY2Vzc1Byb3h5Ojpjb25uZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCAzOTk1MDY5NDhlZi4uYmE3
N2MyYWM3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Q
cm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
UHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgICAgICBQcm9j
ZXNzVHlwZSBwcm9jZXNzVHlwZTsKICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZXh0
cmFJbml0aWFsaXphdGlvbkRhdGE7CiAKLSNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIFBM
QVRGT1JNKEdUSykKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIChQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkpCiAgICAgICAgIFN0cmluZyBwcm9jZXNzQ21kUHJlZml4OwogI2Vu
ZGlmCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uNmQ0NjA5ODY5MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAKQEAg
LTAsMCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xh
IE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTU9UT1JPTEEgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNs
dWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3cGUvcmVuZGVyZXIt
aG9zdC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xp
YlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
Ky8vIEZJWE1FOiBNZXJnZSB3aXRoIFByb2Nlc3NMYXVuY2hlckd0az8KKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdm9pZCBjaGlsZFNl
dHVwRnVuY3Rpb24oZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICAgaW50IHNvY2tldCA9IEdQT0lO
VEVSX1RPX0lOVCh1c2VyRGF0YSk7CisgICAgY2xvc2Uoc29ja2V0KTsKK30KKwordm9pZCBQcm9j
ZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQoreworICAgIEdQaWQgcGlkID0gMDsKKworICAg
IElQQzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWlyID0gSVBDOjpDb25uZWN0aW9u
OjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpDb25uZWN0aW9uT3B0
aW9uczo6U2V0Q2xvZXhlY09uU2VydmVyKTsKKworICAgIFN0cmluZyBleGVjdXRhYmxlUGF0aDsK
KyAgICBDU3RyaW5nIHJlYWxFeGVjdXRhYmxlUGF0aDsKKyAgICBzd2l0Y2ggKG1fbGF1bmNoT3B0
aW9ucy5wcm9jZXNzVHlwZSkgeworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlw
ZTo6V2ViOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZXZWJQcm9j
ZXNzKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNz
VHlwZTo6TmV0d29yazoKKyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9m
TmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKERBVEFCQVNFX1BS
T0NFU1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZToK
KyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNz
KCk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZWFsRXhlY3V0
YWJsZVBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGgpOworICAg
IEdVbmlxdWVQdHI8Z2NoYXI+IHdrU29ja2V0KGdfc3RyZHVwX3ByaW50ZigiJWQiLCBzb2NrZXRQ
YWlyLmNsaWVudCkpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHdwZVNvY2tldDsKKworICAgIHVu
c2lnbmVkIG5hcmdzID0gNDsgLy8gc2l6ZSBvZiB0aGUgYXJndiBhcnJheSBmb3IgZ19zcGF3bl9h
c3luYygpCisgICAgaWYgKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1
bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWIpIHsKKyAgICAgICAgd3BlU29ja2V0ID0gR1VuaXF1ZVB0
cjxnY2hhcj4oZ19zdHJkdXBfcHJpbnRmKCIlZCIsIHdwZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9j
bGllbnQoKSkpOworICAgICAgICBuYXJncyA9IDU7CisgICAgfQorCisjaWYgRU5BQkxFKERFVkVM
T1BFUl9NT0RFKQorICAgIFZlY3RvcjxDU3RyaW5nPiBwcmVmaXhBcmdzOworICAgIGlmICghbV9s
YXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXguaXNOdWxsKCkpIHsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gc3BsaXRBcmdzOworICAgICAgICBtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFBy
ZWZpeC5zcGxpdCgnICcsIHNwbGl0QXJncyk7CisgICAgICAgIGZvciAoYXV0byBpdCA9IHNwbGl0
QXJncy5iZWdpbigpOyBpdCAhPSBzcGxpdEFyZ3MuZW5kKCk7IGl0KyspCisgICAgICAgICAgICBw
cmVmaXhBcmdzLmFwcGVuZChpdC0+dXRmOCgpKTsKKyAgICAgICAgbmFyZ3MgKz0gcHJlZml4QXJn
cy5zaXplKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBjaGFyKiogYXJndiA9IGdfbmV3YShjaGFy
KiwgbmFyZ3MpOworICAgIHVuc2lnbmVkIGkgPSAwOworI2lmIEVOQUJMRShERVZFTE9QRVJfTU9E
RSkKKyAgICAvLyBJZiB0aGVyZSdzIGEgcHJlZml4IGNvbW1hbmQsIHB1dCBpdCBiZWZvcmUgdGhl
IHJlc3Qgb2YgdGhlIGFyZ3MuCisgICAgZm9yIChhdXRvIGl0ID0gcHJlZml4QXJncy5iZWdpbigp
OyBpdCAhPSBwcmVmaXhBcmdzLmVuZCgpOyBpdCsrKQorICAgICAgICBhcmd2W2krK10gPSBjb25z
dF9jYXN0PGNoYXIqPihpdC0+ZGF0YSgpKTsKKyNlbmRpZgorICAgIGFyZ3ZbaSsrXSA9IGNvbnN0
X2Nhc3Q8Y2hhcio+KHJlYWxFeGVjdXRhYmxlUGF0aC5kYXRhKCkpOworICAgIGFyZ3ZbaSsrXSA9
IHdrU29ja2V0LmdldCgpOworICAgIGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0g
UHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViKQorICAgICAgICBhcmd2W2krK10gPSB3
cGVTb2NrZXQuZ2V0KCk7CisgICAgYXJndltpKytdID0gbnVsbHB0cjsKKworICAgIEdVbmlxdWVP
dXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICBpZiAoIWdfc3Bhd25fYXN5bmMoMCwgYXJndiwgMCwg
R19TUEFXTl9MRUFWRV9ERVNDUklQVE9SU19PUEVOLCBjaGlsZFNldHVwRnVuY3Rpb24sIEdJTlRf
VE9fUE9JTlRFUihzb2NrZXRQYWlyLnNlcnZlciksICZwaWQsICZlcnJvci5vdXRQdHIoKSkpIHsK
KyAgICAgICAgZ19wcmludGVycigiVW5hYmxlIHRvIGZvcmsgYSBuZXcgV2ViUHJvY2VzczogJXMu
XG4iLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KKworICAgIC8vIERvbid0IGV4cG9zZSB0aGUgcGFyZW50IHNvY2tldCB0byBwb3RlbnRpYWwg
ZnV0dXJlIGNoaWxkcmVuLgorICAgIHdoaWxlIChmY250bChzb2NrZXRQYWlyLmNsaWVudCwgRl9T
RVRGRCwgRkRfQ0xPRVhFQykgPT0gLTEpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGVycm5vICE9
IEVJTlRSKTsKKworICAgIGNsb3NlKHNvY2tldFBhaXIuY2xpZW50KTsKKyAgICBtX3Byb2Nlc3NJ
ZGVudGlmaWVyID0gcGlkOworCisgICAgLy8gV2UndmUgZmluaXNoZWQgbGF1bmNoaW5nIHRoZSBw
cm9jZXNzLCBtZXNzYWdlIGJhY2sgdG8gdGhlIG1haW4gcnVuIGxvb3AuCisgICAgUmVmUHRyPFBy
b2Nlc3NMYXVuY2hlcj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICBJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIgc2VydmVyU29ja2V0ID0gc29ja2V0UGFpci5zZXJ2ZXI7CisgICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzLCBwaWQsIHNlcnZlclNvY2tldF0gewor
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNzKHBpZCwgc2Vy
dmVyU29ja2V0KTsKKyAgICB9KTsKK30KKwordm9pZCBQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0
ZVByb2Nlc3MoKQoreworICAgIGlmIChtX2lzTGF1bmNoaW5nKSB7CisgICAgICAgIGludmFsaWRh
dGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9wcm9jZXNzSWRlbnRp
ZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAga2lsbChtX3Byb2Nlc3NJZGVudGlmaWVyLCBT
SUdLSUxMKTsKKyAgICBtX3Byb2Nlc3NJZGVudGlmaWVyID0gMDsKK30KKwordm9pZCBQcm9jZXNz
TGF1bmNoZXI6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRl
eCAxYzhlZjQ2M2NjMi4uODQ3ZmI1YzMyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0yMjQsNyArMjI0LDcgQEAgcHJpdmF0ZToKIAogICAg
IFdlYlByZWZlcmVuY2VzJiBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdDsKIAotI2lm
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICB2
b2lkIGNyZWF0ZUluc3BlY3RvcldpbmRvdygpOwogICAgIHZvaWQgdXBkYXRlSW5zcGVjdG9yV2lu
ZG93VGl0bGUoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhc3RlYm9hcmRQcm94eS5oCmluZGV4IDQ0ZTgzNjU1M2I1Li45YmI2ZDU0Y2EyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaApAQCAtOTgsNiAr
OTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UGFzdGVib2FyZFN0cmluZ0ZvclR5cGUoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwg
Y29uc3QgU3RyaW5nJiwgdWludDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICAgICB2b2lkIHNldFBh
c3RlYm9hcmRCdWZmZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgdWlu
dDY0X3Qgc2l6ZSwgdWludDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICNlbmRpZgorCiAjaWYgUExB
VEZPUk0oR1RLKQogICAgIHZvaWQgd3JpdGVUb0NsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lLCBjb25zdCBXZWJTZWxlY3Rpb25EYXRhJik7CiAgICAgdm9pZCByZWFkRnJvbUNs
aXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXZWJTZWxlY3Rpb25EYXRhJik7
CkBAIC0xMDUsNyArMTA2LDE0IEBAIHByaXZhdGU6CiAgICAgV2ViRnJhbWVQcm94eSogbV9wcmlt
YXJ5U2VsZWN0aW9uT3duZXIgeyBudWxscHRyIH07CiAgICAgV2ViRnJhbWVQcm94eSogbV9mcmFt
ZVdyaXRpbmdUb0NsaXBib2FyZCB7IG51bGxwdHIgfTsKICNlbmRpZiAvLyBQTEFURk9STShHVEsp
Ci0gICAgCisKKyNpZiBQTEFURk9STShXUEUpCisgICAgdm9pZCBnZXRQYXN0ZWJvYXJkVHlwZXMo
VmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcyk7CisgICAgdm9pZCByZWFkU3RyaW5nRnJv
bVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUs
IFdURjo6U3RyaW5nJik7CisgICAgdm9pZCB3cml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29u
c3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKKyAgICB2b2lkIHdyaXRlU3RyaW5n
VG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYp
OworI2VuZGlmCisKICAgICBXZWJQcm9jZXNzUHJveHlMaXN0IG1fd2ViUHJvY2Vzc1Byb3h5TGlz
dDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJv
YXJkUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDc2NmJjMTJlZDNiLi40MDEyYWQ1YTNiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5
Lm1lc3NhZ2VzLmluCkBAIC01OCw0ICs1OCwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0ZWJvYXJk
UHJveHkgewogICAgIFdyaXRlVG9DbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBzdHJ1
Y3QgV2ViS2l0OjpXZWJTZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQogICAgIFJlYWRG
cm9tQ2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHN0cnVjdCBXZWJLaXQ6Oldl
YlNlbGVjdGlvbkRhdGEgcGFzdGVib2FyZENvbnRlbnQpCiAjZW5kaWYKKworI2lmIFBMQVRGT1JN
KFdQRSkKKyAgICBHZXRQYXN0ZWJvYXJkVHlwZXMoKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMp
CisgICAgUmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBTdHJpbmcgcGFz
dGVib2FyZFR5cGUpIC0+IChTdHJpbmcgc3RyaW5nKQorICAgIFdyaXRlV2ViQ29udGVudFRvUGFz
dGVib2FyZChzdHJ1Y3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQgY29udGVudCkKKyAg
ICBXcml0ZVN0cmluZ1RvUGFzdGVib2FyZChTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyB0
ZXh0KQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAppbmRleCA4NTBlNjVkZmM1YS4uOTdlNDYxYzZmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjg1LDcgKzI4NSw3IEBAIFdlYlByb2Nl
c3NQb29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29u
ZmlndXJhdGlvbikKICAgICBub3RpZnlUaGlzV2ViUHJvY2Vzc1Bvb2xXYXNDcmVhdGVkKCk7CiB9
CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShHVEspCisjaWYgIVBMQVRGT1JN
KENPQ09BKSAmJiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjViNTU5NWZiMWEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAKQEAgLTAsMCArMSwxNDEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCisKKyNpbmNsdWRlICJUZXh0
Q2hlY2tlclN0YXRlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBU
ZXh0Q2hlY2tlclN0YXRlIHRleHRDaGVja2VyU3RhdGU7CisKK2NvbnN0IFRleHRDaGVja2VyU3Rh
dGUmIFRleHRDaGVja2VyOjpzdGF0ZSgpCit7CisgICAgcmV0dXJuIHRleHRDaGVja2VyU3RhdGU7
Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldFRlc3RpbmdNb2RlKGJvb2wpCit7Cit9CisKK2Jv
b2wgVGV4dENoZWNrZXI6OmlzVGVzdGluZ01vZGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFRleHRDaGVja2VyOjppc0NvbnRpbnVvdXNT
cGVsbENoZWNraW5nQWxsb3dlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldENvbnRpbnVvdXNTcGVsbENoZWNr
aW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4
dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworaW50NjRfdCBUZXh0Q2hlY2tlcjo6
dW5pcXVlU3BlbGxEb2N1bWVudFRhZyhXZWJQYWdlUHJveHkqKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjbG9zZVNw
ZWxsRG9jdW1lbnRXaXRoVGFnKGludDY0X3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBUZXh0Q2hlY2tlcjo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGludDY0X3QsIFN0cmlu
Z1ZpZXcsIGludDMyX3QmLCBpbnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFRleHRDaGVja2VyOjpjaGVja0dyYW1tYXJPZlN0cmluZyhpbnQ2NF90LCBTdHJpbmdW
aWV3LCBWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQzMl90JiwgaW50MzJfdCYp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6c3BlbGxp
bmdVSUlzU2hvd2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnRvZ2dsZVNwZWxsaW5nVUlJc1Nob3dpbmcoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnVwZGF0ZVNw
ZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjp1cGRhdGVTcGVsbGlu
Z1VJV2l0aEdyYW1tYXJTdHJpbmcoaW50NjRfdCwgY29uc3QgU3RyaW5nJiwgY29uc3QgR3JhbW1h
ckRldGFpbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tl
cjo6Z2V0R3Vlc3Nlc0ZvcldvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgaW50MzJfdCwgVmVjdG9yPFN0cmluZz4mLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmxlYXJuV29yZChpbnQ2NF90LCBjb25zdCBTdHJp
bmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6Omln
bm9yZVdvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhSZWY8VGV4
dENoZWNrZXJDb21wbGV0aW9uPiYmLCBpbnQzMl90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uNWJhZWVlM2MxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApAQCAtMCww
ICsxLDE1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIK
KworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlBhZ2VQcm94eSogV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9yV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGlk
Q2xvc2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtRGlkQ2xvc2VGb3JDcmFzaCgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtSGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQnJpbmdJ
bnNwZWN0ZWRQYWdlVG9Gcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9v
bCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdl
VVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd3BlL2luc3BlY3Rv
ci9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCIpOworfQorCitTdHJpbmcgV2ViSW5zcGVjdG9yUHJv
eHk6Omluc3BlY3RvclRlc3RQYWdlVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJj
ZTovLy9vcmcvd3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCIpOworfQorCitT
dHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvckJhc2VVUkwoKQoreworICAgIHJldHVy
biBTdHJpbmcoInJlc291cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvIik7
Cit9CisKK3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRv
d0hlaWdodCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwor
dW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURldGFjaCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1T
ZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93
V2lkdGgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2Vk
KGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94
eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRhMjAyYWJlYjRmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJv
eHlXUEUuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgorCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK1N0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmlu
ZyYpCit7CisgICAgcmV0dXJuICJNb3ppbGxhLzUuMCAoTGludXg7IHg4Nl82NCBHTlUvTGludXgp
IEFwcGxlV2ViS2l0LzYwMS4xIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAgU2FmYXJp
LzYwMS4xIjsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBTdHJpbmcmLCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9y
bVJlbW92ZVJlY2VudFNlYXJjaGVzKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmVk
aXRvclN0YXRlQ2hhbmdlZChjb25zdCBFZGl0b3JTdGF0ZSYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhkM2QwZWI0NmQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3Bw
CkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRQ
cm94eS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgewordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldFBhc3RlYm9h
cmRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzKQoreworICAgIFBsYXRmb3Jt
UGFzdGVib2FyZCgpLmdldFR5cGVzKHBhc3RlYm9hcmRUeXBlcyk7Cit9CisKK3ZvaWQgV2ViUGFz
dGVib2FyZFByb3h5OjpyZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIFdURjo6U3RyaW5nJiB2YWx1ZSkKK3sKKyAgICB2
YWx1ZSA9IFBsYXRmb3JtUGFzdGVib2FyZCgpLnJlYWRTdHJpbmcoaW5kZXgsIHBhc3RlYm9hcmRU
eXBlKTsKK30KKwordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OndyaXRlV2ViQ29udGVudFRvUGFz
dGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sK
KyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS53cml0ZShjb250ZW50KTsKK30KKwordm9pZCBXZWJQ
YXN0ZWJvYXJkUHJveHk6OndyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9h
cmQoKS53cml0ZShwYXN0ZWJvYXJkVHlwZSwgdGV4dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJl
bmNlc1dQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2Vz
V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmY4MWZjZGEx
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBy
ZWZlcmVuY2VzV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1J
bml0aWFsaXplU3RvcmUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vi
UHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdl
YlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZUJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcm
LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5j
ZXM6OnBsYXRmb3JtVXBkYXRlVUludDMyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgdWludDMy
X3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6
cGxhdGZvcm1VcGRhdGVEb3VibGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBkb3VibGUpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZv
cm1VcGRhdGVGbG9hdFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGZsb2F0KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0U3Ry
aW5nVXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIFN0cmluZyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6
OnBsYXRmb3JtR2V0Qm9vbFVzZXJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29sJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQ
cmVmZXJlbmNlczo6cGxhdGZvcm1HZXRVSW50MzJVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgdWludDMyX3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldERvdWJsZVVzZXJWYWx1ZUZv
cktleShjb25zdCBTdHJpbmcmLCBkb3VibGUmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQwMTU1MmIyYTc4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAK
QEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9y
b2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisK
KyNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YkNvb2tpZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVS
ZWdpc3RyeS5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1
ZVB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV1RGOjpTdHJpbmcgV2ViUHJvY2Vzc1Bv
b2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKQorewor
ICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19n
ZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJhcHBjYWNoZSIsIG51bGxwdHIpKTsKKyAgICBy
ZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjYWNoZURp
cmVjdG9yeS5nZXQoKSk7Cit9CisKK1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQ
bGF0Zm9ybURlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdj
aGFyPiBjYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGly
KCksICJ3cGUiLCAibWVkaWFjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6
c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjYWNoZURpcmVjdG9yeS5nZXQoKSk7
Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7CisgICAg
bV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucmVnaXN0ZXJTaGFyZWRSZXNv
dXJjZUxvYWRPYnNlcnZlcigpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCit7CisgICAgcGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVkID0gbV9tZW1vcnlDYWNo
ZURpc2FibGVkIHx8IGNhY2hlTW9kZWwoKSA9PSBDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI7Cit9
CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5
UGxhdGZvcm1EZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQ
dHI8Z2NoYXI+IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9k
YXRhX2RpcigpLCAid3BlIiwgImRhdGFiYXNlcyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkYXRhYmFzZURpcmVjdG9y
eS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZh
dWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9k
YXRhX2RpcigpLCAid3BlIiwgImRhdGFiYXNlcyIsICJpbmRleGVkZGIiLCBudWxscHRyKSk7Cisg
ICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oaW5k
ZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtRGVmYXVsdEljb25EYXRhYmFzZVBhdGgoKSBjb25zdAoreworICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNl
cl9jYWNoZV9kaXIoKSwgIndwZSIsICJpY29uZGF0YWJhc2UiLCBudWxscHRyKSk7CisgICAgcmV0
dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGF0YWJhc2VE
aXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRm
b3JtRGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hh
cj4gc3RvcmFnZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIo
KSwgIndwZSIsICJsb2NhbHN0b3JhZ2UiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6
OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3RvcmFnZURpcmVjdG9yeS5nZXQo
KSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TWVk
aWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbWVkaWFL
ZXlzU3RvcmFnZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIo
KSwgIndwZSIsICJtZWRpYWtleXMiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0
cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24obWVkaWFLZXlzU3RvcmFnZURpcmVjdG9y
eS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZh
dWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGRpc2tD
YWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3
cGUiLCAiY2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21G
aWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGlza0NhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKwor
U3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRKYXZhU2NyaXB0Q29u
ZmlndXJhdGlvbkRpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gamF2YVNjcmlw
dENvcmVDb25maWdEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGly
KCksICJ3cGUiLCAiSmF2YVNjcmlwdENvcmVEZWJ1ZyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4g
V2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihqYXZhU2NyaXB0Q29y
ZUNvbmZpZ0RpcmVjdG9yeS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAwNTcwNGJiMWEwMC4uZDFjYzljZDE2YjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk1NTYsNyAr
OTU1Niw3IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiV0tCQVNFX0g9
JHtUQVJHRVRfQlVJTERfRElSfS8ke1BSSVZBVEVfSEVBREVSU19GT0xERVJfUEFUSH0vV0tCYXNl
LmhcblxudW5pZmRlZiAtQiAtRF9fQVBQTEVfXyAtVUJVSUxESU5HX0dUS19fIC1VVVNFX1NPVVAg
LW8gXCIke1dLQkFTRV9IfVwiLnVuaWZkZWYgXCIke1dLQkFTRV9IfVwiXG5cbmNhc2UgJD8gaW5c
bjApXG4gICAgcm0gXCIke1dLQkFTRV9IfVwiLnVuaWZkZWZcbiAgICA7O1xuMSlcbiAgICBtdiBc
IiR7V0tCQVNFX0h9XCJ7LnVuaWZkZWYsfVxuICAgIDs7XG4qKVxuICAgIGV4aXQgMVxuZXNhY1xu
IjsKKwkJCXNoZWxsU2NyaXB0ID0gIldLQkFTRV9IPSR7VEFSR0VUX0JVSUxEX0RJUn0vJHtQUklW
QVRFX0hFQURFUlNfRk9MREVSX1BBVEh9L1dLQmFzZS5oXG5cbnVuaWZkZWYgLUIgLURfX0FQUExF
X18gLVVCVUlMRElOR19HVEtfXyAtVUJVSUxESU5HX1dQRV9fIC1VVVNFX1NPVVAgLW8gXCIke1dL
QkFTRV9IfVwiLnVuaWZkZWYgXCIke1dLQkFTRV9IfVwiXG5cbmNhc2UgJD8gaW5cbjApXG4gICAg
cm0gXCIke1dLQkFTRV9IfVwiLnVuaWZkZWZcbiAgICA7O1xuMSlcbiAgICBtdiBcIiR7V0tCQVNF
X0h9XCJ7LnVuaWZkZWYsfVxuICAgIDs7XG4qKVxuICAgIGV4aXQgMVxuZXNhY1xuIjsKIAkJfTsK
IAkJMzdFNTMxMDExQjIzOTEwOTAwNzRGMERGIC8qIENvcHkgaU9TIFNhbmRib3ggUHJvZmlsZXMg
Zm9yIE1hbnVhbCBTYW5kYm94aW5nICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCmluZGV4IDU3NTA5Yjk3YTRjLi5lMmJlODA5ZDhm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaApAQCAtNTcsNyArNTcsNyBAQAogCiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNk
ZWZpbmUgRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCmluZGV4IGE4MzEzMzRlNDMwLi44ZTI2ZDljZTNjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcApAQCAtMjk3LDcgKzI5Nyw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWRv
KCkKICAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVV
bmRvUmVkbyhzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViUGFnZVByb3h5OjpSZWRvKSksIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVVbmRvUmVkbzo6UmVwbHkocmVzdWx0KSk7CiB9CiAK
LSNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKEdU
SykgJiYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogdm9pZCBXZWJFZGl0b3JD
bGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAg
aWYgKG1fcGFnZS0+aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoZXZlbnQpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDgyMzI5MGRmNDI0Li4xYWEyZDhiZWUwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMzc1LDQgKzM3NSwzMSBA
QCBSZWY8U2VsZWN0aW9uRGF0YT4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFkRnJvbUNsaXBi
b2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYgogCiAjZW5kaWYgLy8gUExBVEZPUk0oR1RLKQogCisj
aWYgUExBVEZPUk0oV1BFKQorLy8gUGFzdGVib2FyZFN0cmF0ZWd5CisKK3ZvaWQgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpCit7CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6R2V0UGFzdGVib2FyZFR5cGVzKCksIE1lc3Nh
Z2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldFBhc3RlYm9hcmRUeXBlczo6UmVwbHkodHlwZXMp
LCAwKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZFN0cmluZ0Zyb21Q
YXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkKK3sKKyAg
ICBTdHJpbmcgdmFsdWU7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6UmVh
ZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGluZGV4LCBwYXN0ZWJvYXJkVHlwZSksIE1lc3NhZ2VzOjpX
ZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZDo6UmVwbHkodmFsdWUp
LCAwKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYg
Y29udGVudCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OldyaXRlV2ViQ29u
dGVudFRvUGFzdGVib2FyZChjb250ZW50KSwgMCk7Cit9CisKK3ZvaWQgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBj
b25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpX
cml0ZVN0cmluZ1RvUGFzdGVib2FyZChwYXN0ZWJvYXJkVHlwZSwgdGV4dCksIDApOworfQorCisj
ZW5kaWYgLy8gUExBVEZPUk0oV1BFKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDQxOTM4ZWQ5ZWIxLi43MmRjZjlmZjQ2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC05Myw2ICs5MywxMiBAQCBwcml2YXRl
OgogICAgIHZvaWQgd3JpdGVUb0NsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
LCBjb25zdCBXZWJDb3JlOjpTZWxlY3Rpb25EYXRhJikgb3ZlcnJpZGU7CiAgICAgUmVmPFdlYkNv
cmU6OlNlbGVjdGlvbkRhdGE+IHJlYWRGcm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZvaWQg
Z2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKSBvdmVycmlkZTsKKyAgICBTdHJpbmcgcmVh
ZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSkgb3ZlcnJpZGU7CisgICAgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3Jl
OjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgd3JpdGVUb1Bhc3Rl
Ym9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVD
bGllbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93
cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5lZDAzNGIwMjY3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BF
LmNwcApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0
TWVudUNsaWVudC5oIgorCisjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdl
YkNvbnRleHRNZW51Q2xpZW50Ojpsb29rVXBJbkRpY3Rpb25hcnkoV2ViQ29yZTo6RnJhbWUqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViQ29udGV4dE1lbnVDbGllbnQ6
OmlzU3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50OjpzcGVhayhjb25zdCBTdHJpbmcmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6
OnN0b3BTcGVha2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRv
ckNsaWVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5iZGNhMzAyNGNlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKQEAg
LTAsMCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5o
IgorCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9FdmVudE5hbWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm9kZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvV2luZG93c0tleWJvYXJkQ29kZXMuaD4KKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCisvLyBUaGUgaWRlYSBmb3IgdGhlIGFycmF5L21hcCBiZWxvdyBjb21lcyBmcm9t
IEJsaW5rJ3MgRWRpdGluZ0JlaGF2aW9yLmNwcC4KKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIEN0
cmxLZXkgID0gMSA8PCAwOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFsdEtleSAgID0gMSA8PCAx
Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIFNoaWZ0S2V5ID0gMSA8PCAyOworc3RhdGljIGNvbnN0
IHVuc2lnbmVkIE1ldGFLZXkgID0gMSA8PCAzOworCisvLyBLZXlzIHdpdGggc3BlY2lhbCBtZWFu
aW5nLiBUaGVzZSB3aWxsIGJlIGRlbGVnYXRlZCB0byB0aGUgZWRpdG9yIHVzaW5nCisvLyB0aGUg
ZXhlY0NvbW1hbmQoKSBtZXRob2QKK3N0cnVjdCBLZXlEb3duRW50cnkgeworICAgIHVuc2lnbmVk
IHZpcnR1YWxLZXk7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzOworICAgIGNvbnN0IGNoYXIqIG5h
bWU7Cit9OworCitzdHJ1Y3QgS2V5UHJlc3NFbnRyeSB7CisgICAgdW5zaWduZWQgY2hhckNvZGU7
CisgICAgdW5zaWduZWQgbW9kaWZpZXJzOworICAgIGNvbnN0IGNoYXIqIG5hbWU7Cit9OworCitz
dGF0aWMgY29uc3QgS2V5RG93bkVudHJ5IGtleURvd25FbnRyaWVzW10gPSB7CisgICAgeyBWS19M
RUZULCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVMZWZ0IiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAgU2hpZnRLZXksICAgICAgICAgICAiTW92
ZUxlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwg
ICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZExlZnQiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXkgfCBTaGlmdEtleSwKKyAgICAgICAg
Ik1vdmVXb3JkTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICAwLCAgICAgICAgICAgICAgICAgICJN
b3ZlUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdI
VCwgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVSaWdodEFuZE1vZGlmeVNlbGVjdGlvbiIgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVdv
cmRSaWdodCIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBD
dHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlV29yZFJpZ2h0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAg
ICAgIH0sCisgICAgeyBWS19VUCwgICAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVVcCIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgU2hpZnRL
ZXksICAgICAgICAgICAiTW92ZVVwQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfUFJJT1IsICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUGFnZVVwQW5kTW9k
aWZ5U2VsZWN0aW9uIiAgICAgICAgICAgIH0sCisgICAgeyBWS19ET1dOLCAgIDAsICAgICAgICAg
ICAgICAgICAgIk1vdmVEb3duIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0RPV04sICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZURvd25BbmRNb2RpZnlTZWxl
Y3Rpb24iICAgICAgICAgICAgICB9LAorICAgIHsgVktfTkVYVCwgICBTaGlmdEtleSwgICAgICAg
ICAgICJNb3ZlUGFnZURvd25BbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgIH0sCisgICAgeyBW
S19VUCwgICAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVQYXJhZ3JhcGhCYWNrd2FyZEFuZE1v
ZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7IFZLX0RPV04sICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAi
TW92ZVBhcmFncmFwaEZvcndhcmRBbmRNb2RpZnlTZWxlY3Rpb24iICB9LAorICAgIHsgVktfUFJJ
T1IsICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUGFnZVVwIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19ORVhULCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVQ
YWdlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAg
MCwgICAgICAgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lIiAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfSE9NRSwgICBTaGlmdEtleSwKKyAgICAgICAgIk1vdmVUb0JlZ2lu
bmluZ09mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlVG9CZWdpbm5p
bmdPZkRvY3VtZW50IiAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIEN0cmxLZXkg
fCBTaGlmdEtleSwKKyAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnRBbmRNb2RpZnlT
ZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICAw
LCAgICAgICAgICAgICAgICAgICJNb3ZlVG9FbmRPZkxpbmUiICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19FTkQsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVUb0VuZE9m
TGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgQ3RybEtl
eSwgICAgICAgICAgICAiTW92ZVRvRW5kT2ZEb2N1bWVudCIgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfRU5ELCAgICBDdHJsS2V5IHwgU2hpZnRLZXksCisgICAgICAgICJNb3ZlVG9F
bmRPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgMCwgICAgICAgICAgICAgICAgICAiRGVsZXRlQmFj
a3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfQkFDSywgICBTaGlm
dEtleSwgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19ERUxFVEUsIDAsICAgICAgICAgICAgICAgICAgIkRlbGV0ZUZvcndhcmQi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgQ3RybEtleSwg
ICAgICAgICAgICAiRGVsZXRlV29yZEJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfREVMRVRFLCBDdHJsS2V5LCAgICAgICAgICAgICJEZWxldGVXb3JkRm9yd2FyZCIg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQicsICAgICAgICAgQ3RybEtleSwgICAg
ICAgICAgIlRvZ2dsZUJvbGQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
ICdJJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVG9nZ2xlSXRhbGljIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1UnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAg
ICJUb2dnbGVVbmRlcmxpbmUiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19F
U0NBUEUsIDAsICAgICAgICAgICAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX09FTV9QRVJJT0QsIEN0cmxLZXksICAgICAgICAiQ2Fu
Y2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfVEFCLCAg
ICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnRUYWIiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19UQUIsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydEJh
Y2t0YWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgMCwg
ICAgICAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfUkVUVVJOLCBDdHJsS2V5LCAgICAgICAgICAgICJJbnNlcnROZXdsaW5l
IiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEFsdEtleSwg
ICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3bGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBTaGlmdEtleSwgICAg
ICAgICAgICJJbnNlcnRMaW5lQnJlYWsiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
Ly8gVGhlc2UgcHJvYmFibHkgbmVlZCBoYW5kbGluZyBzb21ld2hlcmUgZWxzZSBzbyBkbyBub3Qg
ZXhlY3V0ZSB0aGVtLiBUaGUKKyAgICAvLyAnQ3V0JyBjb21tYW5kIGlzIHJlbW92aW5nIHRleHQg
c28gbGV0J3MgYXZvaWQgbG9zaW5nIHRoZSB1c2VyIGxvc2luZyBkYXRhCisgICAgLy8gdW50aWwg
d2UgaW1wbGVtZW50IGNsaXBib2FyZCBzdXBwb3J0IHdoZXJldmVyIGl0IHNob3VsZCBiZS4KKyAg
ICB7IFZLX0lOU0VSVCwgQ3RybEtleSwgICAgICAgICAgICAiQ29weSIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSU5TRVJULCBTaGlmdEtleSwgICAgICAg
ICAgICJQYXN0ZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19ERUxFVEUsIFNoaWZ0S2V5LCAgICAgICAgICAgIkN1dCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7ICdDJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAi
Q29weSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1YnLCAg
ICAgICAgIEN0cmxLZXksICAgICAgICAgICJQYXN0ZSIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnVicsICAgICAgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiUGFz
dGVBbmRNYXRjaFN0eWxlIiAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdYJywgICAgICAg
ICBDdHJsS2V5LCAgICAgICAgICAiQ3V0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgJ0EnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJTZWxlY3RBbGwi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnWicsICAgICAgICAgQ3Ry
bEtleSwgICAgICAgICAgIlVuZG8iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdaJywgICAgICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJSZWRvIiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1knLCAgICAgICAgIEN0cmxLZXks
ICAgICAgICAgICJSZWRvIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19JTlNFUlQsIDAsICAgICAgICAgICAgICAgICAgIk92ZXJXcml0ZSIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKK307CisKK3N0YXRpYyBjb25zdCBLZXlQcmVzc0VudHJ5
IGtleVByZXNzRW50cmllc1tdID0geworICAgIHsgJ1x0JywgICAwLCAgICAgICAgICAgICAgICAg
ICJJbnNlcnRUYWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAn
XHQnLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydEJhY2t0YWIiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgMCwgICAgICAgICAgICAgICAgICAiSW5z
ZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywg
ICBDdHJsS2V5LCAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydExp
bmVCcmVhayIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQWx0
S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXkgfCBTaGlmdEtleSwgICJJbnNlcnROZXdsaW5l
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMgY29uc3QgY2hh
ciogaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCYgZXZlbnQpCit7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8aW50LCBjb25zdCBjaGFyKj4+IGtleURvd25D
b21tYW5kc01hcDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxpbnQsIGNvbnN0
IGNoYXIqPj4ga2V5UHJlc3NDb21tYW5kc01hcDsKKworICAgIGlmIChrZXlEb3duQ29tbWFuZHNN
YXAuZ2V0KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBX
VEZfQVJSQVlfTEVOR1RIKGtleURvd25FbnRyaWVzKTsgaSsrKQorICAgICAgICAgICAga2V5RG93
bkNvbW1hbmRzTWFwLmdldCgpLnNldChrZXlEb3duRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYg
fCBrZXlEb3duRW50cmllc1tpXS52aXJ0dWFsS2V5LCBrZXlEb3duRW50cmllc1tpXS5uYW1lKTsK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoa2V5UHJl
c3NFbnRyaWVzKTsgaSsrKQorICAgICAgICAgICAga2V5UHJlc3NDb21tYW5kc01hcC5nZXQoKS5z
ZXQoa2V5UHJlc3NFbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtleVByZXNzRW50cmllc1tp
XS5jaGFyQ29kZSwga2V5UHJlc3NFbnRyaWVzW2ldLm5hbWUpOworICAgIH0KKworICAgIHVuc2ln
bmVkIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KCkpCisgICAgICAgIG1v
ZGlmaWVycyB8PSBTaGlmdEtleTsKKyAgICBpZiAoZXZlbnQuYWx0S2V5KCkpCisgICAgICAgIG1v
ZGlmaWVycyB8PSBBbHRLZXk7CisgICAgaWYgKGV2ZW50LmN0cmxLZXkoKSkKKyAgICAgICAgbW9k
aWZpZXJzIHw9IEN0cmxLZXk7CisgICAgaWYgKGV2ZW50Lm1ldGFLZXkoKSkKKyAgICAgICAgbW9k
aWZpZXJzIHw9IE1ldGFLZXk7CisKKyAgICBpZiAoZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMo
KS5rZXlkb3duRXZlbnQpIHsKKyAgICAgICAgaW50IG1hcEtleSA9IG1vZGlmaWVycyA8PCAxNiB8
IGV2ZW50LmtleUNvZGUoKTsKKyAgICAgICAgcmV0dXJuIG1hcEtleSA/IGtleURvd25Db21tYW5k
c01hcC5nZXQoKS5nZXQobWFwS2V5KSA6IG51bGxwdHI7CisgICAgfQorCisgICAgaW50IG1hcEtl
eSA9IG1vZGlmaWVycyA8PCAxNiB8IGV2ZW50LmNoYXJDb2RlKCk7CisgICAgcmV0dXJuIG1hcEtl
eSA/IGtleVByZXNzQ29tbWFuZHNNYXAuZ2V0KCkuZ2V0KG1hcEtleSkgOiBudWxscHRyOworfQor
CitzdGF0aWMgdm9pZCBoYW5kbGVLZXlQcmVzcyhGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQm
IGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIHBsYXRmb3JtRXZlbnQpCit7Cisg
ICAgU3RyaW5nIGNvbW1hbmROYW1lID0gaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpOworCisgICAg
aWYgKCFjb21tYW5kTmFtZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgZnJhbWUuZWRpdG9yKCkuY29t
bWFuZChjb21tYW5kTmFtZSkuZXhlY3V0ZSgpOworICAgICAgICBldmVudC5zZXREZWZhdWx0SGFu
ZGxlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRG9uJ3QgaW5zZXJ0IG51
bGwgb3IgY29udHJvbCBjaGFyYWN0ZXJzIGFzIHRoZXkgY2FuIHJlc3VsdCBpbiB1bmV4cGVjdGVk
IGJlaGF2aW91cgorICAgIGlmIChldmVudC5jaGFyQ29kZSgpIDwgJyAnKQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBEb24ndCBpbnNlcnQgYW55dGhpbmcgaWYgYSBtb2RpZmllciBpcyBwcmVz
c2VkIGFuZCBpdCBoYXMgbm90IGJlZW4gaGFuZGxlZCB5ZXQKKyAgICBpZiAocGxhdGZvcm1FdmVu
dC5jdHJsS2V5KCkgfHwgcGxhdGZvcm1FdmVudC5hbHRLZXkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGZyYW1lLmVkaXRvcigpLmluc2VydFRleHQocGxhdGZvcm1FdmVudC50ZXh0KCks
ICZldmVudCkpCisgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKK3N0YXRp
YyB2b2lkIGhhbmRsZUtleURvd24oRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50JiBldmVudCwg
Y29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JikKK3sKKyAgICBTdHJpbmcgY29tbWFuZE5hbWUg
PSBpbnRlcnByZXRLZXlFdmVudChldmVudCk7CisgICAgaWYgKGNvbW1hbmROYW1lLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2Ugc2hvdWxkbid0IGluc2VydCB0ZXh0IHRo
cm91Z2ggdGhlIGVkaXRvci4gTGV0IFdlYkNvcmUgZGVjaWRlCisgICAgLy8gaG93IHRvIGhhbmRs
ZSB0aGF0IChzYXksIFRhYiwgd2hpY2ggY291bGQgYWxzbyBiZSB1c2VkIHRvCisgICAgLy8gY2hh
bmdlIGZvY3VzKS4KKyAgICBFZGl0b3I6OkNvbW1hbmQgY29tbWFuZCA9IGZyYW1lLmVkaXRvcigp
LmNvbW1hbmQoY29tbWFuZE5hbWUpOworICAgIGlmIChjb21tYW5kLmlzVGV4dEluc2VydGlvbigp
KQorICAgICAgICByZXR1cm47CisKKyAgICBjb21tYW5kLmV4ZWN1dGUoKTsKKyAgICBldmVudC5z
ZXREZWZhdWx0SGFuZGxlZCgpOworfQorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlS2V5
Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBOb2RlKiBu
b2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKKyAgICBBU1NFUlQobm9kZSk7CisgICAg
RnJhbWUqIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpOworICAgIEFTU0VSVChmcmFt
ZSk7CisKKyAgICAvLyBGSVhNRTogUmVvcmRlciB0aGUgY2hlY2tzIGluIGEgbW9yZSBzZW5zaWJs
ZSB3YXkuCisKKyAgICBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQqIHBsYXRmb3JtRXZlbnQg
PSBldmVudC0+a2V5RXZlbnQoKTsKKyAgICBpZiAoIXBsYXRmb3JtRXZlbnQpCisgICAgICAgIHJl
dHVybjsKKworICAgIC8vIElmIHRoaXMgd2FzIGFuIElNRSBldmVudCBkb24ndCBkbyBhbnl0aGlu
Zy4KKyAgICBpZiAocGxhdGZvcm1FdmVudC0+d2luZG93c1ZpcnR1YWxLZXlDb2RlKCkgPT0gVktf
UFJPQ0VTU0tFWSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRG9uJ3QgYWxsb3cgdGV4dCBp
bnNlcnRpb24gZm9yIG5vZGVzIHRoYXQgY2Fubm90IGVkaXQuCisgICAgaWYgKCFmcmFtZS0+ZWRp
dG9yKCkuY2FuRWRpdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUaGlzIGlzIGp1c3Qg
YSBub3JtYWwgdGV4dCBpbnNlcnRpb24sIHNvIHdhaXQgdG8gZXhlY3V0ZSB0aGUgaW5zZXJ0aW9u
CisgICAgLy8gdW50aWwgYSBrZXlwcmVzcyBldmVudCBoYXBwZW5zLiBUaGlzIHdpbGwgZW5zdXJl
IHRoYXQgdGhlIGluc2VydGlvbiB3aWxsIG5vdAorICAgIC8vIGJlIHJlZmxlY3RlZCBpbiB0aGUg
Y29udGVudHMgb2YgdGhlIGZpZWxkIHVudGlsIHRoZSBrZXl1cCBET00gZXZlbnQuCisgICAgaWYg
KGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpCisgICAgICAgIHJl
dHVybiBoYW5kbGVLZXlQcmVzcygqZnJhbWUsICpldmVudCwgKnBsYXRmb3JtRXZlbnQpOworICAg
IGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpCisgICAgICAg
IHJldHVybiBoYW5kbGVLZXlEb3duKCpmcmFtZSwgKmV2ZW50LCAqcGxhdGZvcm1FdmVudCk7Cit9
CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2
ZW50KiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQtPmtleUV2ZW50KCk7CisgICAgaWYgKHBsYXRmb3Jt
RXZlbnQgJiYgcGxhdGZvcm1FdmVudC0+d2luZG93c1ZpcnR1YWxLZXlDb2RlKCkgPT0gVktfUFJP
Q0VTU0tFWSkKKyAgICAgICAgZXZlbnQtPnByZXZlbnREZWZhdWx0KCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhYjgzN2IwYTRkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViUG9wdXBN
ZW51V1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQ
b3B1cE1lbnUuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUG9wdXBNZW51OjpzZXRVcFBsYXRmb3JtRGF0YShj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1Ro
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0LmNwcAppbmRleCBkZDM4NzIwMjc4YS4uZTJjNmI1YjQ3N2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1Ro
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTc0LDEwICs3NCwxMCBAQCBUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QoV2ViUGFnZSYg
d2ViUAogICAgICAgICAvLyBEbyBub3QgZG8gZnJhbWUgc3luYyB3aGVuIHJlbmRlcmluZyBvZmZz
Y3JlZW4gaW4gdGhlIHdlYiBwcm9jZXNzIHRvIGVuc3VyZSB0aGF0IFN3YXBCdWZmZXJzIG5ldmVy
IGJsb2Nrcy4KICAgICAgICAgLy8gUmVuZGVyaW5nIHRvIHRoZSBhY3R1YWwgc2NyZWVuIHdpbGwg
aGFwcGVuIGxhdGVyIGFueXdheSBzaW5jZSB0aGUgVUkgcHJvY2VzcyBzY2hlZHVsZXMgYSByZWRy
YXcgZm9yIGV2ZXJ5IHVwZGF0ZSwKICAgICAgICAgLy8gdGhlIGNvbXBvc2l0b3Igd2lsbCB0YWtl
IGNhcmUgb2Ygc3luY2luZyB0byB2YmxhbmsuCi0gICAgICAgIG1fY29tcG9zaXRvciA9IFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNsaWVudCwgc2NhbGVkU2l6ZSwgc2Nh
bGVGYWN0b3IsIG1fc3VyZmFjZS0+d2luZG93KCksIFRocmVhZGVkQ29tcG9zaXRvcjo6U2hvdWxk
RG9GcmFtZVN5bmM6OlllcywgcGFpbnRGbGFncyk7CisgICAgICAgIG1fY29tcG9zaXRvciA9IFRo
cmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNsaWVudCwgd2ViUGFnZSwgc2Nh
bGVkU2l6ZSwgc2NhbGVGYWN0b3IsIG1fc3VyZmFjZS0+d2luZG93KCksIFRocmVhZGVkQ29tcG9z
aXRvcjo6U2hvdWxkRG9GcmFtZVN5bmM6OlllcywgcGFpbnRGbGFncyk7CiAgICAgICAgIG1fbGF5
ZXJUcmVlQ29udGV4dC5jb250ZXh0SUQgPSBtX3N1cmZhY2UtPnN1cmZhY2VJRCgpOwogICAgIH0g
ZWxzZQotICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZSht
X2NvbXBvc2l0b3JDbGllbnQsIHNjYWxlZFNpemUsIHNjYWxlRmFjdG9yKTsKKyAgICAgICAgbV9j
b21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUobV9jb21wb3NpdG9yQ2xpZW50
LCB3ZWJQYWdlLCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvcik7CiAKICAgICBkaWRDaGFuZ2VWaWV3
cG9ydCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5jcHAKaW5kZXggMmU3ODBkOTFiZTUuLjVmMDkzYWM3YjU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKQEAgLTM3LDYg
KzM3LDggQEAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgi
CisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFXUEUuaCIKICNlbHNl
CiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJbXBsLmgiCiAjZW5kaWYKQEAgLTU1LDYgKzU3LDkgQEAg
c3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhPiBEcmF3aW5nQXJlYTo6Y3JlYXRlKFdlYlBhZ2Um
IHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2UKICNlbmRpZgogICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBl
UmVtb3RlTGF5ZXJUcmVlOgogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYT4od2ViUGFnZSwgcGFyYW1ldGVycyk7CisjZWxpZiBQTEFURk9S
TShXUEUpCisgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVXUEU6CisgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPERyYXdpbmdBcmVhV1BFPih3ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKICNlbHNl
CiAgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVJbXBsOgogICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxEcmF3aW5nQXJlYUltcGw+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGUyYmQ5MzFlMGM4
Li4xNTNlNGNlYTQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtMzUxMyw3ICszNTEzLDcgQEAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKiBXZWJQYWdlOjpub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmEK
ICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZ2V0KCk7
CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRG
T1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogYm9vbCBXZWJQ
YWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldnQpCiB7CiAg
ICAgTm9kZSogbm9kZSA9IGV2dC0+dGFyZ2V0KCktPnRvTm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMjNhYzNkYjM4N2UuLjJjNmQ4Yjg4
ZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTEwMTUsNyArMTAxNSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICNlbmRpZgogCi0jaWYgIVBMQVRG
T1JNKENPQ09BKQorI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKICAgICBz
dGF0aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgV2ViQ29yZTo6S2V5Ym9h
cmRFdmVudCopOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTEwYmUyMmRhMzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdl
ci5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29tcG9zaXRp
bmdNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQ29tcG9z
aXRpbmdNYW5hZ2VyOjp+Q29tcG9zaXRpbmdNYW5hZ2VyKCkKK3sKKyAgICBBU1NFUlQoIW1fY29u
bmVjdGlvbkZkKTsKK30KKwordm9pZCBDb21wb3NpdGluZ01hbmFnZXI6OmVzdGFibGlzaENvbm5l
Y3Rpb24oV2ViUGFnZSYgd2ViUGFnZSkKK3sKKyAgICBJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlv
bkhhbmRsZTsKKyAgICB3ZWJQYWdlLnNlbmRTeW5jKE1lc3NhZ2VzOjpDb21wb3NpdGluZ01hbmFn
ZXJQcm94eTo6RXN0YWJsaXNoQ29ubmVjdGlvbigpLAorICAgICAgICBNZXNzYWdlczo6Q29tcG9z
aXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5lY3Rpb246OlJlcGx5KGNvbm5lY3Rpb25I
YW5kbGUpKTsKKworICAgIG1fY29ubmVjdGlvbkZkID0gY29ubmVjdGlvbkhhbmRsZS5yZWxlYXNl
RmlsZURlc2NyaXB0b3IoKTsKK30KKworaW50IENvbXBvc2l0aW5nTWFuYWdlcjo6cmVsZWFzZUNv
bm5lY3Rpb25GZCgpCit7CisgICAgaW50IGZkID0gbV9jb25uZWN0aW9uRmQudmFsdWVfb3IoLTEp
OworICAgIG1fY29ubmVjdGlvbkZkID0gc3RkOjpudWxsb3B0OworICAgIHJldHVybiBmZDsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmQyZjJmNjE0MzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdl
ci5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlBhZ2U7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFuYWdlciBmaW5hbCB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdNYW5hZ2VyKTsKK3B1YmxpYzoKKyAgICBDb21w
b3NpdGluZ01hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgfkNvbXBvc2l0aW5nTWFuYWdlcigpOwor
CisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmKTsKKyAgICBpbnQgcmVsZWFz
ZUNvbm5lY3Rpb25GZCgpOworCitwcml2YXRlOgorICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBtX2Nv
bm5lY3Rpb25GZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzQ0N2FjOGNiMGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdp
bmdBcmVhV1BFLmNwcApAQCAtMCwwICsxLDE5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RHJhd2luZ0FyZWFXUEUuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIK
KyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaXNw
bGF5UmVmcmVzaE1vbml0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworRHJhd2luZ0FyZWFXUEU6OkRyYXdpbmdBcmVhV1BFKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKQorICAgIDogRHJhd2luZ0FyZWEoRHJhd2luZ0Fy
ZWFUeXBlV1BFLCB3ZWJQYWdlKQoreworICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3Mo
KS5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAgICBlbnRlckFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKDApOworfQorCitEcmF3aW5nQXJlYVdQRTo6fkRyYXdpbmdBcmVhV1BFKCkK
K3sKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKQor
eworICAgIG1fd2ViUGFnZS5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpFbnRlckFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKDAsIG1fbGF5ZXJUcmVlSG9zdC0+bGF5ZXJUcmVlQ29u
dGV4dCgpKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNldE5lZWRzRGlzcGxheSgpCit7
CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRO
b25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheSgpOworfQorCit2b2lkIERyYXdpbmdBcmVh
V1BFOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBB
U1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5vbkNvbXBv
c2l0ZWRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KHJlY3QpOworfQorCit2b2lkIERyYXdpbmdB
cmVhV1BFOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYp
Cit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVIb3N0LT5z
Y3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoc2Nyb2xsUmVjdCk7Cit9CisKK3ZvaWQgRHJhd2lu
Z0FyZWFXUEU6OnBhZ2VCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpCit7CisgICAgaWYg
KG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5wYWdlQmFja2dyb3Vu
ZFRyYW5zcGFyZW5jeUNoYW5nZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6Zm9yY2VS
ZXBhaW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIERyYXdpbmdBcmVh
V1BFOjpmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIHJldHVy
biBtX2xheWVyVHJlZUhvc3QgJiYgbV9sYXllclRyZWVIb3N0LT5mb3JjZVJlcGFpbnRBc3luYyhj
YWxsYmFja0lEKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0TGF5ZXJUcmVlU3RhdGVJ
c0Zyb3plbihib29sIGZyb3plbikKK3sKKyAgICBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4gPSBm
cm96ZW47Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNldFBhaW50aW5nRW5hYmxlZChib29s
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnVw
ZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQoreworICAg
IG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNldEZvcmNlQ29tcG9zaXRpbmdNb2Rl
KHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6Zm9yY2VDb21wb3Np
dGluZ01vZGVLZXkoKSkpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjptYWluRnJhbWVDb250
ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAo
bV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbnRlbnRzU2l6ZUNo
YW5nZWQoc2l6ZSk7Cit9CisKK0dyYXBoaWNzTGF5ZXJGYWN0b3J5KiBEcmF3aW5nQXJlYVdQRTo6
Z3JhcGhpY3NMYXllckZhY3RvcnkoKQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAg
ICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3QtPmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNldFJvb3RDb21wb3Np
dGluZ0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgQVNTRVJUKG1f
bGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290Q29tcG9zaXRpbmdM
YXllcihncmFwaGljc0xheWVyKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2goKQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgRHJh
d2luZ0FyZWFXUEU6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKQor
eworICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7Cit9CisKKyNpZiBVU0UoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorUmVmUHRyPFdlYkNvcmU6OkRp
c3BsYXlSZWZyZXNoTW9uaXRvcj4gRHJhd2luZ0FyZWFXUEU6OmNyZWF0ZURpc3BsYXlSZWZyZXNo
TW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCit7CisgICAgaWYgKG1fbGF5ZXJU
cmVlSG9zdCkKKyAgICAgICAgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdC0+Y3JlYXRlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKGRpc3BsYXlJRCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRp
ZgorCit2b2lkIERyYXdpbmdBcmVhV1BFOjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIo
V2ViQ29yZTo6RnJhbWUqIGZyYW1lLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiB2aWV3T3Zlcmxh
eVJvb3RMYXllcikKK3sKKyAgICBpZiAoIWZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhv
c3QtPnNldFZpZXdPdmVybGF5Um9vdExheWVyKHZpZXdPdmVybGF5Um9vdExheWVyKTsKK30KKwor
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0
ZXMmJikKK3sKK30KKyNlbmRpZgorCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSB8fCBV
U0UoVEVYVFVSRV9NQVBQRVIpCit2b2lkIERyYXdpbmdBcmVhV1BFOjpkZXZpY2VPclBhZ2VTY2Fs
ZUZhY3RvckNoYW5nZWQoKQoreworfQorI2VuZGlmCisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnVw
ZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBib29sLCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvciwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2Nyb2xsT2Zmc2V0KQoreworICAgIG1fd2ViUGFnZS5zZXREZXZpY2VTY2FsZUZhY3Rvcihk
ZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgbV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7CisgICAgbV93
ZWJQYWdlLmxheW91dElmTmVlZGVkKCk7CisgICAgbV93ZWJQYWdlLnNjcm9sbE1haW5GcmFtZUlm
Tm90QXRNYXhTY3JvbGxQb3NpdGlvbihzY3JvbGxPZmZzZXQpOworCisgICAgQVNTRVJUKG1fbGF5
ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdlKG1fd2ViUGFn
ZS5zaXplKCkpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpkaWRVcGRhdGUoKQoreworfQor
Cit2b2lkIERyYXdpbmdBcmVhV1BFOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKEdy
YXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgQVNTRVJUKCFtX2xheWVyVHJlZUhv
c3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdCA9IExheWVyVHJlZUhvc3Q6OmNyZWF0ZShtX3dlYlBh
Z2UpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoZ3JhcGhp
Y3NMYXllcik7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRTaG91bGROb3RpZnlBZnRlck5leHRT
Y2hlZHVsZWRMYXllckZsdXNoKHRydWUpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2l6ZURpZENo
YW5nZShtX3dlYlBhZ2Uuc2l6ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVh
V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVh
V1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA5OTE5N2MwMmFm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9EcmF3aW5nQXJlYVdQRS5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJE
cmF3aW5nQXJlYS5oIgorCisjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgRHJhd2luZ0FyZWFXUEUgOiBwdWJsaWMgRHJhd2luZ0FyZWEgewor
cHVibGljOgorICAgIERyYXdpbmdBcmVhV1BFKFdlYlBhZ2UmLCBjb25zdCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJik7CisgICAgdmlydHVhbCB+RHJhd2luZ0FyZWFXUEUoKTsKKworICAgIHZv
aWQgbGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICAv
LyBEcmF3aW5nQXJlYQorICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJy
aWRlOworICAgIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhKSBvdmVycmlkZTsKKworICAgIHZv
aWQgcGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBmb3JjZVJlcGFpbnQoKSBvdmVycmlkZTsKKyAgICBib29sIGZvcmNlUmVwYWludEFzeW5jKHVp
bnQ2NF90IGNhbGxiYWNrSUQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0TGF5ZXJUcmVlU3RhdGVJ
c0Zyb3plbihib29sKSBvdmVycmlkZTsKKyAgICBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4o
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW47IH0KKyAg
ICBMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9sYXllclRyZWVIb3N0LmdldCgpOyB9CisKKyAgICB2b2lkIHNldFBhaW50aW5nRW5hYmxlZChi
b29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmKSBvdmVycmlkZTsKKyAgICB2b2lkIG1haW5GcmFtZUNvbnRlbnRTaXplQ2hh
bmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CisKKyAgICBXZWJDb3JlOjpH
cmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KCkg
b3ZlcnJpZGU7CisKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SKQorICAgIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURp
c3BsYXlSZWZyZXNoTW9uaXRvcihXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCkgb3ZlcnJpZGU7
CisjZW5kaWYKKworICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNv
cmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworCisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIHZvaWQgZGlkQ2hhbmdlVmlld3Bv
cnRBdHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYmKSBvdmVycmlkZTsKKyNl
bmRpZgorCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSB8fCBVU0UoVEVYVFVSRV9NQVBQ
RVIpCisgICAgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBvdmVycmlkZTsK
KyNlbmRpZgorCisgICAgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCwgYm9v
bCwgZmxvYXQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRVcGRhdGUoKSBvdmVycmlkZTsKKworICAgIHZvaWQg
ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7
CisKKyAgICAvLyBXaGVuIHRydWUsIHdlIG1haW50YWluIHRoZSBsYXllciB0cmVlIGluIGl0cyBj
dXJyZW50IHN0YXRlIGJ5IG5vdCBsZWF2aW5nIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1vZGUK
KyAgICAvLyBhbmQgbm90IHNjaGVkdWxpbmcgbGF5ZXIgZmx1c2hlcy4KKyAgICBib29sIG1fbGF5
ZXJUcmVlU3RhdGVJc0Zyb3plbiB7IGZhbHNlIH07CisKKyAgICAvLyBUaGUgbGF5ZXIgdHJlZSBo
b3N0IHRoYXQgaGFuZGxlcyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZy4KKyAgICBSZWZQdHI8TGF5
ZXJUcmVlSG9zdD4gbV9sYXllclRyZWVIb3N0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYklu
c3BlY3RvclVJV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUv
V2ViSW5zcGVjdG9yVUlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi43NGM4NDRiY2JhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCkBAIC0wLDAgKzEsNDggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclVJLmgiCisKKyNpbmNsdWRlICJS
ZW1vdGVXZWJJbnNwZWN0b3JVSS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBXZWJJ
bnNwZWN0b3JVSTo6Y2FuU2F2ZSgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcg
V2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQoreworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIFJlbW90ZVdlYkluc3BlY3RvclVJOjpsb2NhbGl6ZWRTdHJpbmdz
VVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJ
bnNwZWN0b3JXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJJbnNwZWN0b3JXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5jNGUwYzY1ZTBlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yV1BFLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3IuaCIKKworI2lmIEVOQUJMRShJTlNQRUNU
T1IpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3Rvcjo6Y2FuU2F2ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViSW5zcGVjdG9yOjps
b2NhbGl6ZWRTdHJpbmdzVVJMKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQ
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mZjU3NDRlOGY4Ygot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUv
V2ViUGFnZVdQRS5jcHAKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViUGFnZS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJXZWJQ
cmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVy
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQorCit2b2lkIFdlYlBhZ2U6
OnBsYXRmb3JtRGV0YWNoKCkKK3sKK30KKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUVkaXRvclN0
YXRlKEZyYW1lJiwgRWRpdG9yU3RhdGUmLCBJbmNsdWRlUG9zdExheW91dERhdGFIaW50KSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZvcm1Q
cmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0
QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQYWdlOjpwbGF0
Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6Y2FjaGVkUmVzcG9u
c2VNSU1FVHlwZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFdlYlBhZ2U6OnBsYXRmb3JtQ2FuSGFuZGxl
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6Y2FjaGVkU3VnZ2VzdGVk
RmlsZW5hbWVGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gV2ViUGFnZTo6Y2Fj
aGVkUmVzcG9uc2VEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNl
ckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZDEzN2JjZTdjNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNw
cApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rv
cm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NNYWluVW5peC5oIgorCisjaW5j
bHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNp
bmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNz
TWFpbiBmaW5hbDogcHVibGljIENoaWxkUHJvY2Vzc01haW5CYXNlIHsKK3B1YmxpYzoKKyAgICBi
b29sIHBsYXRmb3JtSW5pdGlhbGl6ZSgpIG92ZXJyaWRlCisgICAgeworI2lmIEVOQUJMRShERVZF
TE9QRVJfTU9ERSkKKyAgICAgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVQyX1BBVVNFX1dFQl9QUk9D
RVNTX09OX0xBVU5DSCIpKQorICAgICAgICAgICAgV1RGOjpzbGVlcCgzMCk7CisjZW5kaWYKKwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHBhcnNlQ29tbWFuZExpbmUo
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgQVNTRVJUKGFy
Z2MgPT0gMyk7CisgICAgICAgIGlmIChhcmdjIDwgMykKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBpZiAoIUNoaWxkUHJvY2Vzc01haW5CYXNlOjpwYXJzZUNvbW1hbmRMaW5l
KGFyZ2MsIGFyZ3YpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGludCB3
cGVGZCA9IGF0b2koYXJndlsyXSk7CisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaCgK
KyAgICAgICAgICAgIFt3cGVGZF0geworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
PFBsYXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpKTsK
KyAgICAgICAgICAgICAgICBkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXUEU+KFBsYXRmb3JtRGlz
cGxheTo6c2hhcmVkRGlzcGxheSgpKS5pbml0aWFsaXplKHdwZUZkKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9OworCitpbnQgV2ViUHJvY2Vzc01haW5V
bml4KGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFp
bjxXZWJQcm9jZXNzLCBXZWJQcm9jZXNzTWFpbj4oYXJnYywgYXJndik7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd3BlL3dwZS13ZWJraXQu
cGMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk5YzAyNTE4MTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbgpAQCAtMCwwICsxLDExIEBACitw
cmVmaXg9QENNQUtFX0lOU1RBTExfUFJFRklYQAorZXhlY19wcmVmaXg9JHtwcmVmaXh9CitsaWJk
aXI9QExJQl9JTlNUQUxMX0RJUkAKK2luY2x1ZGVkaXI9JHtwcmVmaXh9L2luY2x1ZGUKKworTmFt
ZTogV2ViS2l0MgorRGVzY3JpcHRpb246IFdQRS1mbGF2b3JlZCBXZWIgZW5naW5lCitWZXJzaW9u
OiBAUFJPSkVDVF9WRVJTSU9OQAorUmVxdWlyZXMucHJpdmF0ZTogZ2xpYi0yLjAgbGlic291cC0y
LjQKK0xpYnM6IC1MJHtsaWJkaXJ9IC1sV1BFV2ViS2l0IC1sV1BFCitDZmxhZ3M6IC1JJHtpbmNs
dWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAgLUkke2luY2x1ZGVkaXJ9L3dwZS1AV1BFX0FQ
SV9WRVJTSU9OQC9XUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kTGliR0JNLmNtYWtl
IGIvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmQyMDkxY2JmYjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2Nt
YWtlL0ZpbmRMaWJHQk0uY21ha2UKQEAgLTAsMCArMSw0NiBAQAorIyAtIFRyeSB0byBmaW5kIGdi
bS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBMSUJHQk1fSU5DTFVERV9E
SVJTIC0gdGhlIGdibSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBMSUJHQk1fTElCUkFSSUVTIC0g
bGluayB0aGVzZSB0byB1c2UgZ2JtLgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMu
TC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMo
UENfTElCR0JNIGdibSkKKworZmluZF9wYXRoKExJQkdCTV9JTkNMVURFX0RJUlMKKyAgICBOQU1F
UyBnYm0uaAorICAgIEhJTlRTICR7UENfTElCR0JNX0lOQ0xVREVfRElSU30gJHtQQ19MSUJHQk1f
SU5DVURFRElSfQorKQorCitmaW5kX2xpYnJhcnkoTElCR0JNX0xJQlJBUklFUworICAgIE5BTUVT
IGdibQorICAgIEhJTlRTICR7UENfTElCR0JNX0xJQlJBUllfRElSU30gJHtQQ19MSUJHQk1fTElC
RElSfQorKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorRklORF9Q
QUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKExJQkdCTSBERUZBVUxUX01TRyBMSUJHQk1fTElC
UkFSSUVTKQorCittYXJrX2FzX2FkdmFuY2VkKExJQkdCTV9JTkNMVURFX0RJUlMgTElCR0JNX0xJ
QlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNt
YWtlIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYxNjE1NGU2MTE4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UKQEAgLTAsMCArMSw0NyBA
QAorIyAtIFRyeSB0byBmaW5kIFdQRS1tZXNhLgorIyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZp
bmUKKyMKKyMgIFdQRV9NRVNBX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUtbWVzYS4KKyMgIFdQRV9N
RVNBX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUtbWVzYSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBX
UEVfTUVTQV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUtbWVzYS4KKyMKKyMgQ29w
eXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
CisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCisj
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOworIyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgorIyBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmluZF9wYWNrYWdlKFBrZ0Nv
bmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX1dQRV9NRVNBIFFVSUVUIHdwZS1tZXNhKQorCitm
aW5kX3BhdGgoV1BFX01FU0FfSU5DTFVERV9ESVJTCisgICAgTkFNRVMgd3BlLW1lc2Evdmlldy1i
YWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oCisgICAgSElOVFMgJHtQQ19XUEVfTUVTQV9JTkNM
VURFRElSfSAke1BDX1dQRV9NRVNBX0lOQ0xVREVfRElSU30KKykKKworZmluZF9saWJyYXJ5KFdQ
RV9NRVNBX0xJQlJBUklFUworICAgIE5BTUVTIFdQRUJhY2tlbmQtbWVzYQorICAgIEhJTlRTICR7
UENfV1BFX01FU0FfTElCRElSfSAke1BDX1dQRV9NRVNBX0xJQlJBUllfRElSU30KKykKKworbWFy
a19hc19hZHZhbmNlZChXUEVfTUVTQV9JTkNMVURFX0RJUlMgV1BFX01FU0FfTElCUkFSSUVTKQor
CitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorRklORF9QQUNLQUdFX0hB
TkRMRV9TVEFOREFSRF9BUkdTKFdQRV9NRVNBIFJFUVVJUkVEX1ZBUlMgV1BFX01FU0FfSU5DTFVE
RV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5k
V1BFQmFja2VuZC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzdhOTNkMDA1MTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21ha2UKQEAgLTAsMCArMSw0
NyBAQAorIyAtIFRyeSB0byBmaW5kIFdQRS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5l
CisjCisjICBXUEVfRk9VTkQgLSBzeXN0ZW0gaGFzIFdQRS4KKyMgIFdQRV9JTkNMVURFX0RJUlMg
LSB0aGUgV1BFIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRV9MSUJSQVJJRVMgLSBsaW5rIHRo
ZXNlIHRvIHVzZSBXUEUuCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCisj
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19XUEUg
UVVJRVQgd3BlKQorCitmaW5kX3BhdGgoV1BFX0lOQ0xVREVfRElSUworICAgIE5BTUVTIHdwZS9s
b2FkZXIuaAorICAgIEhJTlRTICR7UENfV1BFX0lOQ0xVREVESVJ9ICR7UENfV1BFX0lOQ0xVREVf
RElSU30KKykKKworZmluZF9saWJyYXJ5KFdQRV9MSUJSQVJJRVMKKyAgICBOQU1FUyBXUEVCYWNr
ZW5kCisgICAgSElOVFMgJHtQQ19XUEVfTElCRElSfSAke1BDX1dQRV9MSUJSQVJZX0RJUlN9Cisp
CisKK21hcmtfYXNfYWR2YW5jZWQoV1BFX0lOQ0xVREVfRElSUyBXUEVfTElCUkFSSUVTKQorCitp
bmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorRklORF9QQUNLQUdFX0hBTkRM
RV9TVEFOREFSRF9BUkdTKFdQRSBSRVFVSVJFRF9WQVJTIFdQRV9JTkNMVURFX0RJUlMgV1BFX0xJ
QlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291
cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjczNjUwMWIwYzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL09w
dGlvbnNXUEUuY21ha2UKQEAgLTAsMCArMSwxNDEgQEAKK2luY2x1ZGUoR05VSW5zdGFsbERpcnMp
CisKK3NldChQUk9KRUNUX1ZFUlNJT05fTUFKT1IgMCkKK3NldChQUk9KRUNUX1ZFUlNJT05fTUlO
T1IgMCkKK3NldChQUk9KRUNUX1ZFUlNJT05fUEFUQ0ggMjAxNzA0MjcpCitzZXQoUFJPSkVDVF9W
RVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfS4ke1BST0pFQ1RfVkVSU0lPTl9NSU5PUn0u
JHtQUk9KRUNUX1ZFUlNJT05fUEFUQ0h9KQorc2V0KFdQRV9BUElfVkVSU0lPTiAwLjEpCisKK2lm
IChXVEZfQ1BVX1g4Nl82NCkKKyAgICBzZXQoRU5BQkxFX0ZUTF9ERUZBVUxUIE9OKQorZWxzZSAo
KQorICAgIHNldChFTkFCTEVfRlRMX0RFRkFVTFQgT0ZGKQorZW5kaWYgKCkKKworV0VCS0lUX09Q
VElPTl9CRUdJTigpCisKKyMgV2ViS2l0MiBDIEFQSQorV0VCS0lUX09QVElPTl9ERUZJTkUoRVhQ
T1JUX0RFUFJFQ0FURURfV0VCS0lUMl9DX0FQSSAiV2hldGhlciB0byBleHBvcnQgdGhlIFdlYktp
dDIgQyBBUEkiIFBSSVZBVEUgT0ZGKQorCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfM0RfVFJBTlNGT1JNUyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIFBVQkxJQyBPRkYpCitXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1JFR0lPTlMgUFVCTElDIE9O
KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19TRUxFQ1RPUlNf
TEVWRUw0IFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9EQVRBQkFTRV9QUk9DRVNTIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSBQVUJM
SUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZUTF9KSVQg
UFJJVkFURSAke0VOQUJMRV9GVExfREVGQVVMVH0pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfR0FNRVBBRCBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0dFT0xPQ0FUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSBQUklWQVRFIE9OKQor
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0Vf
SU5fV09SS0VSUyBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NPVVJDRSBQVUJMSUMgT0ZGKQorV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCitXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQ
UklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9UT1VD
SF9FVkVOVFMgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX1ZJREVPIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9WSURFT19UUkFDSyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCX0FOSU1BVElPTlMgUFJJVkFURSBPTikKK1dF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfQVVESU8gUFVCTElDIE9O
KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBP
TikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIFBV
QkxJQyBPTikKKworV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9HTCAiV2hldGhl
ciB0byBlbmFibGUgc3VwcG9ydCBmb3IgR1N0cmVhbWVyIEdMIiBQUklWQVRFIE9GRikKKworV0VC
S0lUX09QVElPTl9FTkQoKQorCitzZXQoRU5BQkxFX1dFQkNPUkUgT04pCitzZXQoRU5BQkxFX1dF
QktJVCBPRkYpCitzZXQoRU5BQkxFX1dFQktJVDIgT04pCitzZXQoRU5BQkxFX0FQSV9URVNUUyAk
e0RFVkVMT1BFUl9NT0RFfSkKK3NldChFTkFCTEVfVE9PTFMgT04pCisKK3NldChXVEZfTElCUkFS
WV9UWVBFIFNUQVRJQykKK3NldChKYXZhU2NyaXB0Q29yZV9MSUJSQVJZX1RZUEUgU1RBVElDKQor
c2V0KFdlYkNvcmVfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChXZWJLaXQyX09VVFBVVF9OQU1F
IFdQRVdlYktpdCkKK3NldChXZWJLaXQyX1dlYlByb2Nlc3NfT1VUUFVUX05BTUUgV1BFV2ViUHJv
Y2VzcykKK3NldChXZWJLaXQyX05ldHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FIFdQRU5ldHdvcmtQ
cm9jZXNzKQorc2V0KFdlYktpdDJfRGF0YWJhc2VQcm9jZXNzX09VVFBVVF9OQU1FIFdQRURhdGFi
YXNlUHJvY2VzcykKKworZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShU
aHJlYWRzIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFpMSUIgUkVRVUlSRUQpCitmaW5kX3BhY2th
Z2UoR0xJQiAyLjQwLjAgUkVRVUlSRUQgQ09NUE9ORU5UUyBnaW8gZ2lvLXVuaXggZ29iamVjdCBn
dGhyZWFkIGdtb2R1bGUpCitmaW5kX3BhY2thZ2UoR251VExTIDMuMC4wIFJFUVVJUkVEKQorCitm
aW5kX3BhY2thZ2UoQ2Fpcm8gMS4xMC4yIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEZvbnRjb25m
aWcgMi44LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRnJlZXR5cGUyIDIuNC4yIFJFUVVJUkVE
KQorZmluZF9wYWNrYWdlKEhhcmZCdXp6IDAuOS4xOCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShK
UEVHIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYkdjcnlwdCAxLjYuMCBSRVFVSVJFRCkKK2Zp
bmRfcGFja2FnZShMaWJTb3VwIDIuNDIuMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYbWwy
IDIuOC4wIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitm
aW5kX3BhY2thZ2UoUE5HIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkK
K2ZpbmRfcGFja2FnZShXZWJQIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2UoT3BlbkdMRVMyIFJF
UVVJUkVEKQorZmluZF9wYWNrYWdlKEVHTCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKFdQRUJh
Y2tlbmQgUkVRVUlSRUQpCisKK3NldChVU0VfWERHTUlNRSBPTikKKworaWYgKEVOQUJMRV9WSURF
TyBPUiBFTkFCTEVfV0VCX0FVRElPKQorICAgIHNldChHU1RSRUFNRVJfQ09NUE9ORU5UUyBhcHAg
YXVkaW8gcGJ1dGlscykKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfR1NUUkVBTUVS
IFRSVUUpCisgICAgaWYgKEVOQUJMRV9WSURFTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVB
TUVSX0NPTVBPTkVOVFMgdmlkZW8gdGFnKQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoRU5BQkxF
X1dFQl9BVURJTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgZmZ0
KQorICAgICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfV0VCQVVESU9fR1NUUkVBTUVS
IFRSVUUpCisgICAgZW5kaWYgKCkKKworICAgIGZpbmRfcGFja2FnZShHU3RyZWFtZXIgMS4yLjMg
UkVRVUlSRUQgQ09NUE9ORU5UUyAke0dTVFJFQU1FUl9DT01QT05FTlRTfSkKKworICAgICMgRklY
TUU6IFdoYXQgYWJvdXQgTVBFR1RTIHN1cHBvcnQ/IFVTRV9HU1RSRUFNRVJfTVBFR1RTPworZW5k
aWYgKCkKKworaWYgKEVOQUJMRV9NRURJQV9TVFJFQU0gT1IgRU5BQkxFX1dFQl9SVEMpCisgICAg
ZmluZF9wYWNrYWdlKE9wZW5XZWJSVEMpCisgICAgaWYgKE5PVCBPUEVOV0VCUlRDX0ZPVU5EKQor
ICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJPcGVuV2ViUlRDIGlzIG5lZWRlZCBmb3IgRU5B
QkxFX01FRElBX1NUUkVBTSBhbmQgRU5BQkxFX1dFQl9SVEMuIikKKyAgICBlbmRpZiAoKQorICAg
IFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVOV0VCUlRDIFRSVUUpCitlbmRpZiAoKQor
CitpZiAoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyAgICBmaW5kX3BhY2thZ2UoQ2Fp
cm9HTCAxLjEwLjIgUkVRVUlSRUQgQ09NUE9ORU5UUyBjYWlyby1lZ2wpCitlbmRpZiAoKQorCith
ZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XUEVfXz0xKQorYWRkX2RlZmluaXRpb25zKC1EREFU
QV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9EQVRBRElSfSIpCisKK3NldChVU0VfVURJUzg2IDEpCisK
K1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVOR0xfRVNfMiBUUlVFKQorU0VUX0FORF9F
WFBPU0VfVE9fQlVJTEQoVVNFX0VHTCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChF
TkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF8zRCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlM
RChVU0VfVEVYVFVSRV9NQVBQRVIgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9U
RVhUVVJFX01BUFBFUl9HTCBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RJTEVE
X0JBQ0tJTkdfU1RPUkUgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElO
QVRFRF9HUkFQSElDUyBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0NPT1JESU5B
VEVEX0dSQVBISUNTX1RIUkVBREVEIFRSVUUpCisKK3NldChGT1JXQVJESU5HX0hFQURFUlNfRElS
ICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMpCisKKyMgQnVpbGQgd2l0
aCAtZnZpc2liaWxpdHk9aGlkZGVuIHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgc2hhcmVkIGxp
YnJhcnkuCisjIE5vdCB0byBiZSB1c2VkIHdoZW4gYnVpbGRpbmcgdGhlIFdlYktpdFRlc3RSdW5u
ZXIgbGlicmFyeS4KK2lmIChOT1QgREVWRUxPUEVSX01PREUpCisgICAgc2V0KENNQUtFX0NfRkxB
R1NfUkVMRUFTRSAiJHtDTUFLRV9DX0ZMQUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4i
KQorICAgIHNldChDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiJHtDTUFLRV9DWFhfRkxBR1NfUkVM
RUFTRX0gLWZ2aXNpYmlsaXR5PWhpZGRlbiAtZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW4iKQor
ZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1
Y3QtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2
ZQppbmRleCAyYzMwMmRiY2RlYi4uOTA3YTU0NzM4MzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQorKysgYi9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUKQEAgLTE3MCw3ICsxNzAsNyBAQCBkZWYgZGly
Q29udGFpbnNkd28oZGlyZWN0b3J5KToKIAogCiBkZWYgYXJjaGl2ZUJ1aWx0UHJvZHVjdChjb25m
aWd1cmF0aW9uLCBwbGF0Zm9ybSwgZnVsbFBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0g
aW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZv
cm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICBp
ZiBwbGF0Zm9ybSA9PSAnaW9zJzoKICAgICAgICAgY29tYmluZWREaXJlY3RvcnkgPSBvcy5wYXRo
LmpvaW4oX3RvcExldmVsQnVpbGREaXJlY3RvcnksICdjb21iaW5lZC1tYWMtYW5kLWlvcycpCkBA
IC0xOTgsNyArMTk4LDcgQEAgZGVmIGFyY2hpdmVCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwg
cGxhdGZvcm0sIGZ1bGxQbGF0Zm9ybSk6CiAKICAgICAgICAgc2h1dGlsLnJtdHJlZSh0aGluRGly
ZWN0b3J5KQogCi0gICAgZWxpZiBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZs
JzoKKyAgICBlbGlmIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3JtID09ICdlZmwnIG9yIHBs
YXRmb3JtID09ICd3cGUnOgogICAgICAgICAjIE9uIEdUSysvRUZMIHdlIGRvbid0IG5lZWQgdGhl
IGludGVybWVkaWF0ZSBzdGVwIG9mIGNyZWF0aW5nIGEgdGhpbkRpcmVjdG9yeQogICAgICAgICAj
IHRvIGJlIGNvbXByZXNzZWQgaW4gYSBaSVAgZmlsZSwgYmVjYXVzZSB3ZSBjYW4gY3JlYXRlIHRo
ZSBaSVAgZGlyZWN0bHkuCiAgICAgICAgICMgVGhpcyBpcyBmYXN0ZXIgYW5kIHJlcXVpcmVzIGxl
c3MgZGlzayByZXNvdXJjZXMuCkBAIC0yMzIsNyArMjMyLDcgQEAgZGVmIHVuemlwQXJjaGl2ZShk
aXJlY3RvcnlUb0V4dHJhY3RUbywgY29uZmlndXJhdGlvbik6CiAKIAogZGVmIGV4dHJhY3RCdWls
dFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgotICAgIGFzc2VydCBwbGF0Zm9ybSBp
biAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnKQorICAgIGFzc2VydCBwbGF0Zm9y
bSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnLCAnd3BlJykKIAogICAgIGFy
Y2hpdmVGaWxlID0gb3MucGF0aC5qb2luKF90b3BMZXZlbEJ1aWxkRGlyZWN0b3J5LCBjb25maWd1
cmF0aW9uICsgJy56aXAnKQogCkBAIC0yNDEsNyArMjQxLDcgQEAgZGVmIGV4dHJhY3RCdWlsdFBy
b2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgogCiAgICAgaWYgcGxhdGZvcm0gaW4gKCdt
YWMnLCAnaW9zJyk6CiAgICAgICAgIHJldHVybiB1bnppcEFyY2hpdmUoX3RvcExldmVsQnVpbGRE
aXJlY3RvcnksIGNvbmZpZ3VyYXRpb24pCi0gICAgZWxpZiBwbGF0Zm9ybSA9PSAnd2luJyBvciBw
bGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJzoKKyAgICBlbGlmIHBsYXRmb3Jt
ID09ICd3aW4nIG9yIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3JtID09ICdlZmwnIG9yIHBs
YXRmb3JtID09ICd3cGUnOgogICAgICAgICBwcmludCAnRXh0cmFjdGluZycsIF9jb25maWd1cmF0
aW9uQnVpbGREaXJlY3RvcnkKICAgICAgICAgcmV0dXJuIHVuemlwQXJjaGl2ZShfY29uZmlndXJh
dGlvbkJ1aWxkRGlyZWN0b3J5LCBjb25maWd1cmF0aW9uKQogCmRpZmYgLS1naXQgYS9Ub29scy9C
dWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlIGIvVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQppbmRleCAzYzJiMGJkN2EzNi4uOTgwZjA3MWMxNGYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUK
KysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQpAQCAtNDYs
NyArNDYsNyBAQCBkZWYgbWFpbigpOgogICAgIHJldHVybiBhcmNoaXZlVGVzdFJlc3VsdHMob3B0
aW9ucy5jb25maWd1cmF0aW9uLCBvcHRpb25zLnBsYXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0Rp
cikKIAogZGVmIGFyY2hpdmVUZXN0UmVzdWx0cyhjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgbGF5
b3V0VGVzdFJlc3VsdHNEaXIpOgotICAgIGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4n
LCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICdpb3MnKQorICAgIGFzc2VydCBwbGF0Zm9ybSBp
biAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICdpb3MnLCAnd3BlJykK
IAogICAgIHRyeToKICAgICAgICAgb3MudW5saW5rKGFyY2hpdmVGaWxlKQpAQCAtNjYsNyArNjYs
NyBAQCBkZWYgYXJjaGl2ZVRlc3RSZXN1bHRzKGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBsYXlv
dXRUZXN0UmVzdWx0c0Rpcik6CiAgICAgaWYgcGxhdGZvcm0gaW4gKCdtYWMnLCAnaW9zJyk6CiAg
ICAgICAgIGlmIHN1YnByb2Nlc3MuY2FsbChbImRpdHRvIiwgIi1jIiwgIi1rIiwgIi0tc2VxdWVz
dGVyUnNyYyIsICItLXpsaWJDb21wcmVzc2lvbkxldmVsIiwgIjIiLCBsYXlvdXRUZXN0UmVzdWx0
c0RpciwgYXJjaGl2ZUZpbGVdKToKICAgICAgICAgICAgIHJldHVybiAxCi0gICAgZWxpZiBwbGF0
Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJyk6CisgICAgZWxpZiBwbGF0
Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJywgJ3dwZScpOgogICAgICAg
ICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJ6aXAiLCAiLXIiLCAiLTIiLCBhcmNoaXZlRmlsZSwgIi4i
XSwgY3dkPWxheW91dFRlc3RSZXN1bHRzRGlyKToKICAgICAgICAgICAgIHJldHVybiAxCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYjMwNDliODg0MWQuLjgwZmRiOGM5NGRlIDEwMDY0NAotLS0gYS9Ub29scy9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMjMsNiArMjMsMTEgQEAgZWxzZWlm
ICgiJHtQT1JUfSIgU1RSRVFVQUwgIkpTQ09ubHkiKQogICAgIGlmIChFTkFCTEVfQVBJX1RFU1RT
KQogICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KFRlc3RXZWJLaXRBUEkpCiAgICAgZW5kaWYgKCkK
K2Vsc2VpZiAoIiR7UE9SVH0iIFNUUkVRVUFMICJXUEUiKQorICAgIGlmIChERVZFTE9QRVJfTU9E
RSkKKyAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShJbWFnZURpZmYpCisgICAgICAgIGFkZF9zdWJk
aXJlY3RvcnkoV2ViS2l0VGVzdFJ1bm5lcikKKyAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAogaWYg
KFdJTjMyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDU3Y2YxYzE5YjY1Li4yODE4YzNhMGNlMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE3LTA1LTA5ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUg
V1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAg
ICAgd2Via2l0LWRldiB0aHJlYWQ6CisgICAgICAgIGh0dHBzOi8vbGlzdHMud2Via2l0Lm9yZy9w
aXBlcm1haWwvd2Via2l0LWRldi8yMDE3LUFwcmlsLzAyODkyMy5odG1sCisKKyAgICAgICAgQWRk
IFdQRSBzdXBwb3J0IHRvIHZhcmlvdXMgdG9vbGluZyBzY3JpcHRzLCBUZXN0V2ViS2l0QVBJIGFu
ZCBXZWJLaXRUZXN0UnVubmVyLgorICAgICAgICBJbi1maWxlIGNoYW5nZXMgcmVtb3ZlZCBmcm9t
IHRoaXMgQ2hhbmdlTG9nIGVudHJ5IGZvciBicmV2aXR5LgorCisgICAgICAgICogQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1hcmNoaXZlOgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBw
b3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmU6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTY3Jp
cHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlOgorICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0
OgorICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcjoKKyAgICAgICAgKiBT
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkOgorICAgICAgICAqIFNjcmlwdHMvdXBk
YXRlLXdlYmtpdHdwZS1saWJzOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMu
cG06CisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9wb3J0L3dwZS5weTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS93cGUv
SW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvd3Bl
L1BsYXRmb3JtVXRpbGl0aWVzV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS93cGUvbWFpbi5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3Bl
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5j
cHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3Bl
L0FjdGl2YXRlRm9udHNXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL3dwZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZl
bnRTZW5kZXJQcm94eVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
d3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3Np
dGluZ1J1bkxvb3AuaC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdl
YlZpZXdXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0
Q29udHJvbGxlcldQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3Bl
L21haW4uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJ
bmZvLmguCisgICAgICAgICogamhidWlsZC9qaGJ1aWxkLXdyYXBwZXI6CisgICAgICAgICogd3Bl
L2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHk6IEFkZGVkLgorICAgICAg
ICAqIHdwZS9qaGJ1aWxkLm1vZHVsZXM6IEFkZGVkLgorICAgICAgICAqIHdwZS9qaGJ1aWxkcmM6
IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2NhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZv
ci1lZ2wtc3VyZmFjZS5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZm9udGNv
bmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVy
LnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40LjExLXRy
dWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNo
ZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2g6IEFk
ZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2g6IEFkZGVk
LgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10
by1PcGVuU1NMLTEuMS4wLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3Qt
cGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJT
QV9nZW5lcmF0ZV9rLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1m
b3ItZnIucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUv
cGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3Ry
ZWFtLWlmLXRoZS0ucGF0Y2g6IEFkZGVkLgorCiAyMDE3LTA1LTA4ICBKb25hdGhhbiBCZWRhcmQg
IDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgUGxhdGZvcm1XZWJWaWV3
Ojp3aW5kb3dTbmFwc2hvdEltYWdlIGFuZCBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcg
Zm9yIGlPUyBkZXZpY2VzCmRpZmYgLS1naXQgYS9Ub29scy9JbWFnZURpZmYvUGxhdGZvcm1XUEUu
Y21ha2UgYi9Ub29scy9JbWFnZURpZmYvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRiMGVlNTMyOGJhCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEgQEAKK2luY2x1ZGUo
Q2Fpcm8uY21ha2UpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0
cmVlIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZQppbmRleCA3NjFmNDNmNjk4
OS4uMTdkZDgyMDhiMjEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRl
cnRyZWUKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZQpAQCAtNjUsOCAr
NjUsOCBAQCBjaGRpciBGaWxlOjpTcGVjLT5jYXRkaXIoIlRvb2xzIiwgIkR1bXBSZW5kZXJUcmVl
Iikgb3IgZGllOwogbXkgJHJlc3VsdDsKIGlmIChpc0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAg
ICRyZXN1bHQgPSBidWlsZFhDb2RlUHJvamVjdCgiRHVtcFJlbmRlclRyZWUiLCAkY2xlYW4sIFhj
b2RlT3B0aW9ucygpLCBAQVJHVik7Ci19IGVsc2lmIChpc0d0aygpIHx8IGlzQW55V2luZG93cygp
KSB7Ci0gICAgIyBHVEsgYW5kIFdpbmRvd3MgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4g
Tm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgorfSBlbHNpZiAoaXNHdGsoKSB8fCBpc1dQ
RSgpIHx8IGlzQW55V2luZG93cygpKSB7CisgICAgIyBHVEssIFdQRSBhbmQgV2luZG93cyBidWls
ZCBldmVyeXRoaW5nIGluIG9uZSBzaG90LiBObyBuZWVkIHRvIGJ1aWxkIGFueXRoaW5nIGhlcmUu
CiAgICAgJHJlc3VsdCA9IDA7CiB9IGVsc2UgewogICAgIGRpZSAiQnVpbGRpbmcgbm90IGRlZmlu
ZWQgZm9yIHRoaXMgcGxhdGZvcm0hXG4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWls
ZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAppbmRleCA3MTQyYWU2NjQ3My4u
MmZlZWM2NjVjYTEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CisrKyBi
L1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC0xMDAsNiArMTAwLDcgQEAgVXNhZ2U6ICRw
cm9ncmFtTmFtZSBbb3B0aW9uc10gW29wdGlvbnMgdG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAg
IC0tYW5hbHl6ZSAgICAgICAgICAgICAgICAgICAgICAgICBFbmFibGUgc3RhdGljIGFuYXlsc2lz
IChpT1MgYW5kIE1hYyBvbmx5KQogCiAgIC0tZ3RrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBCdWlsZCB0aGUgR1RLKyBwb3J0CisgIC0td3BlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBCdWlsZCB0aGUgV1BFIHBvcnQKICAgLS13aW5jYWlybyAgICAgICAgICAgICAgICAgICAgICAg
IEJ1aWxkIHVzaW5nIENhaXJvIChyYXRoZXIgdGhhbiBDb3JlR3JhcGhpY3MpIG9uIFdpbmRvd3MK
IAogICAtLWluc3BlY3Rvci1mcm9udGVuZCAgICAgICAgICAgICAgQ29weSBXZWIgSW5zcGVjdG9y
IHVzZXIgaW50ZXJmYWNlIHJlc291cmNlcyB0byB0aGUgYnVpbGQgZGlyZWN0b3J5CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIgYi9Ub29scy9TY3JpcHRz
L2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKaW5kZXggMjQwM2Y5MzY4ZDMuLjk3MDdmNjQ0NjNhIDEw
MDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKKysrIGIvVG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyCkBAIC02MSw4ICs2MSw4IEBAIGNoZGly
ICJUb29scy9XZWJLaXRUZXN0UnVubmVyIiBvciBkaWU7CiBteSAkcmVzdWx0OwogaWYgKGlzQXBw
bGVDb2NvYVdlYktpdCgpKSB7CiAgICAgJHJlc3VsdCA9IGJ1aWxkWENvZGVQcm9qZWN0KCJXZWJL
aXRUZXN0UnVubmVyIiwgJGNsZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAo
aXNHdGsoKSkgewotICAgICMgR1RLKyBidWlsZCBldmVyeXRoaW5nIGluIG9uZSBzaG90LiBObyBu
ZWVkIHRvIGJ1aWxkIGFueXRoaW5nIGhlcmUuCit9IGVsc2lmIChpc0d0aygpIHx8IGlzV1BFKCkp
IHsKKyAgICAjIEdUSysgYW5kIFdQRSBidWlsZCBldmVyeXRoaW5nIGluIG9uZSBzaG90LiBObyBu
ZWVkIHRvIGJ1aWxkIGFueXRoaW5nIGhlcmUuCiAgICAgJHJlc3VsdCA9IDA7CiB9IGVsc2Ugewog
ICAgIGRpZSAiV2ViS2l0VGVzdFJ1bm5lciBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZv
cm0uXG4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhi
dWlsZCBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQKaW5kZXggZDlk
YmZmNWRkZTQuLjEwNzlhOWU4YWI1IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3VwZGF0ZS13
ZWJraXQtbGlicy1qaGJ1aWxkCisrKyBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJz
LWpoYnVpbGQKQEAgLTI0LDkgKzI0LDEwIEBAIHVzZSBHZXRvcHQ6OkxvbmcgcXcoOmNvbmZpZyBw
YXNzX3Rocm91Z2gpOwogCiBteSAkcGxhdGZvcm0gPSAiIjsKICRwbGF0Zm9ybSA9ICJndGsiIGlm
IGlzR3RrKCk7CiskcGxhdGZvcm0gPSAid3BlIiBpZiBpc1dQRSgpOwogCiBpZiAoISRwbGF0Zm9y
bSkgewotICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDAp
IC4iLiBVc2UgLS1ndGsuXG4iOworICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAi
IC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGsgb3IgLS13cGUuXG4iOwogfQogCiBteSAkd2lw
ZU9uQ2hhbmdlID0gJEVOVntKSEJVSUxEX1dJUEVfT05fQ0hBTkdFfSAvLyAxOwpAQCAtMTMyLDcg
KzEzMyw3IEBAIGRlbGV0ZSAkRU5We0FSX0ZMQUdTfSBpZiBleGlzdHMgJEVOVntBUl9GTEFHU307
CiAKIGNoZGlyKHJlbGF0aXZlU2NyaXB0c0RpcigpIC4gIi8uLi9qaGJ1aWxkIikgb3IgZGllICQh
OwogCi1teSAlcHJldHR5UGxhdGZvcm0gPSAoICJndGsiID0+ICJHVEsrIiApOworbXkgJXByZXR0
eVBsYXRmb3JtID0gKCAiZ3RrIiA9PiAiR1RLKyIsICJ3cGUiID0+ICJXUEUiICk7CiAKIGlmICgh
JGZvcmNlICYmICFqaGJ1aWxkQ29uZmlndXJhdGlvbkNoYW5nZWQoKSkgewogICAgIHByaW50ICRw
cmV0dHlQbGF0Zm9ybXskcGxhdGZvcm19IC4gIiBwb3J0IGRlcGVuZGVuY2llcyBhcmUgYWxyZWFk
eSB1cCB0byBkYXRlXG4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0
d3BlLWxpYnMgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicwpuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMC4uYjIzZmJkZTZiODMKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicwpAQCAtMCwwICsxLDI0IEBA
CisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisj
IENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorIworIyBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKwordXNlIEZpbmRCaW47Cit1
c2UgbGliICRGaW5kQmluOjpCaW47Cit1c2Ugd2Via2l0ZGlyczsKKworbXkgJHNjcmlwdHNEaXIg
PSByZWxhdGl2ZVNjcmlwdHNEaXIoKTsKK3N5c3RlbSgicGVybCIsICIkc2NyaXB0c0Rpci91cGRh
dGUtd2Via2l0LWxpYnMtamhidWlsZCIsICItLXdwZSIsIEBBUkdWKSA9PSAwIG9yIGRpZSAkITsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0ZGlycy5wbQppbmRleCBiYzQ2NTQ2MTdkMS4uNmU4ZTBlN2ZlNTQgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRp
cnMucG0KQEAgLTEwNyw2ICsxMDcsNyBAQCB1c2UgY29uc3RhbnQgewogICAgIE1hYyAgICAgID0+
ICJNYWMiLAogICAgIEpTQ09ubHkgID0+ICJKU0NPbmx5IiwKICAgICBXaW5DYWlybyA9PiAiV2lu
Q2Fpcm8iLAorICAgIFdQRSAgICAgID0+ICJXUEUiLAogICAgIFVua25vd24gID0+ICJVbmtub3du
IgogfTsKIApAQCAtNDQ1LDYgKzQ0Niw3IEBAIHN1YiBhcmd1bWVudHNGb3JDb25maWd1cmF0aW9u
KCkKICAgICBwdXNoKEBhcmdzLCAnLS0zMi1iaXQnKSBpZiAoJGFyY2hpdGVjdHVyZSBuZSAieDg2
XzY0IiBhbmQgIWlzV2luNjQoKSk7CiAgICAgcHVzaChAYXJncywgJy0tNjQtYml0JykgaWYgKGlz
V2luNjQoKSk7CiAgICAgcHVzaChAYXJncywgJy0tZ3RrJykgaWYgaXNHdGsoKTsKKyAgICBwdXNo
KEBhcmdzLCAnLS13cGUnKSBpZiBpc1dQRSgpOwogICAgIHB1c2goQGFyZ3MsICctLWpzYy1vbmx5
JykgaWYgaXNKU0NPbmx5KCk7CiAgICAgcHVzaChAYXJncywgJy0td2luY2Fpcm8nKSBpZiBpc1dp
bkNhaXJvKCk7CiAgICAgcHVzaChAYXJncywgJy0taW5zcGVjdG9yLWZyb250ZW5kJykgaWYgaXNJ
bnNwZWN0b3JGcm9udGVuZCgpOwpAQCAtNjgwLDcgKzY4Miw3IEBAIHN1YiBleGVjdXRhYmxlUHJv
ZHVjdERpcgogICAgIG15ICRwcm9kdWN0RGlyZWN0b3J5ID0gcHJvZHVjdERpcigpOwogCiAgICAg
bXkgJGJpbmFyeURpcmVjdG9yeTsKLSAgICBpZiAoaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSkgewor
ICAgIGlmIChpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpIHsKICAgICAgICAgJGJp
bmFyeURpcmVjdG9yeSA9ICJiaW4iOwogICAgIH0gZWxzaWYgKGlzQW55V2luZG93cygpKSB7CiAg
ICAgICAgICRiaW5hcnlEaXJlY3RvcnkgPSBpc1dpbjY0KCkgPyAiYmluNjQiIDogImJpbjMyIjsK
QEAgLTkzOCw2ICs5NDAsOSBAQCBzdWIgYnVpbHREeWxpYlBhdGhGb3JOYW1lCiAgICAgICAgICAg
ICByZXR1cm4gIiRiYXNlUHJvZHVjdERpci8kbGlicmFyeU5hbWUuaW50ZXJtZWRpYXRlLyRjb25m
aWd1cmF0aW9uLyRsaWJyYXJ5TmFtZS5pbnRlcm1lZGlhdGUvJGxpYnJhcnlOYW1lLmxpYiI7CiAg
ICAgICAgIH0KICAgICB9CisgICAgaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkY29u
ZmlndXJhdGlvblByb2R1Y3REaXIvbGliL2xpYldQRVdlYktpdC5zbyI7CisgICAgfQogCiAgICAg
ZGllICJVbnN1cHBvcnRlZCBwbGF0Zm9ybSwgY2FuJ3QgZGV0ZXJtaW5lIGJ1aWx0IGxpYnJhcnkg
bG9jYXRpb25zLlxuVHJ5IGBidWlsZC13ZWJraXQgLS1oZWxwYCBmb3IgbW9yZSBpbmZvcm1hdGlv
bi5cbiI7CiB9CkBAIC0xMDUyLDcgKzEwNTcsOCBAQCBzdWIgZGV0ZXJtaW5lUG9ydE5hbWUoKQog
ICAgIG15ICVhcmdUb1BvcnROYW1lID0gKAogICAgICAgICBndGsgPT4gR1RLLAogICAgICAgICAn
anNjLW9ubHknID0+IEpTQ09ubHksCi0gICAgICAgIHdpbmNhaXJvID0+IFdpbkNhaXJvCisgICAg
ICAgIHdpbmNhaXJvID0+IFdpbkNhaXJvLAorICAgICAgICB3cGUgPT4gV1BFCiAgICAgKTsKIAog
ICAgIGZvciBteSAkYXJnIChzb3J0IGtleXMgJWFyZ1RvUG9ydE5hbWUpIHsKQEAgLTEwODYsNiAr
MTA5Miw3IEBAIHN1YiBkZXRlcm1pbmVQb3J0TmFtZSgpCiAgICAgICAgICAgICBteSAkcG9ydHND
aG9pY2UgPSBqb2luICJcblx0IiwgcXcoCiAgICAgICAgICAgICAgICAgLS1ndGsKICAgICAgICAg
ICAgICAgICAtLWpzYy1vbmx5CisgICAgICAgICAgICAgICAgLS13cGUKICAgICAgICAgICAgICk7
CiAgICAgICAgICAgICBkaWUgIlBsZWFzZSBzcGVjaWZ5IHdoaWNoIFdlYktpdCBwb3J0IHRvIGJ1
aWxkIHVzaW5nIG9uZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnM6IgogICAgICAgICAgICAgICAg
IC4gIlxuXHQkcG9ydHNDaG9pY2VcbiI7CkBAIC0xMTEzLDYgKzExMjAsMTEgQEAgc3ViIGlzSlND
T25seSgpCiAgICAgcmV0dXJuIHBvcnROYW1lKCkgZXEgSlNDT25seTsKIH0KIAorc3ViIGlzV1BF
KCkKK3sKKyAgICByZXR1cm4gcG9ydE5hbWUoKSBlcSBXUEU7Cit9CisKICMgRGV0ZXJtaW5lIGlm
IHRoaXMgaXMgZGViaWFuLCB1YnVudHUsIGxpbnNwaXJlLCBvciBzb21ldGhpbmcgc2ltaWxhci4K
IHN1YiBpc0RlYmlhbkJhc2VkKCkKIHsKQEAgLTE1MTYsNiArMTUyOCw4IEBAIHN1YiBsYXVuY2hl
clBhdGgoKQogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi1taW5pYnJv
d3NlciI7CiAgICAgfSBlbHNpZiAoaXNBcHBsZVdlYktpdCgpKSB7CiAgICAgICAgIHJldHVybiAi
JHJlbGF0aXZlU2NyaXB0c1BhdGgvcnVuLXNhZmFyaSI7CisgICAgfSBlbHNpZiAoaXNXUEUoKSkg
eworICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi13cGUiOwogICAgIH0K
IH0KIApAQCAtMTUyNyw2ICsxNTQxLDggQEAgc3ViIGxhdW5jaGVyTmFtZSgpCiAgICAgICAgIHJl
dHVybiAiU2FmYXJpIjsKICAgICB9IGVsc2lmIChpc0FwcGxlV2luV2ViS2l0KCkpIHsKICAgICAg
ICAgcmV0dXJuICJNaW5pQnJvd3NlciI7CisgICAgfSBlbHNpZiAoaXNXUEUoKSkgeworICAgICAg
ICByZXR1cm4gIldQRUxhdW5jaGVyIjsKICAgICB9CiB9CiAKQEAgLTE4MjYsNiArMTg0Miw4IEBA
IHN1YiBnZXRKaGJ1aWxkUGF0aCgpCiAgICAgfQogICAgIGlmIChpc0d0aygpKSB7CiAgICAgICAg
IHB1c2goQGpoYnVpbGRQYXRoLCAiRGVwZW5kZW5jaWVzR1RLIik7CisgICAgfSBlbHNpZiAoaXNX
UEUoKSkgeworICAgICAgICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRlcGVuZGVuY2llc1dQRSIpOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGRpZSAiQ2Fubm90IGdldCBKSEJ1aWxkIHBhdGggZm9yIHBs
YXRmb3JtIHRoYXQgaXNuJ3QgR1RLKy5cbiI7CiAgICAgfQpAQCAtMTg2Niw2ICsxODg0LDggQEAg
c3ViIHdyYXBwZXJQcmVmaXhJZk5lZWRlZCgpCiAgICAgICAgIG15IEBwcmVmaXggPSAoRmlsZTo6
U3BlYy0+Y2F0ZmlsZShzb3VyY2VEaXIoKSwgIlRvb2xzIiwgImpoYnVpbGQiLCAiamhidWlsZC13
cmFwcGVyIikpOwogICAgICAgICBpZiAoaXNHdGsoKSkgewogICAgICAgICAgICAgcHVzaChAcHJl
Zml4LCAiLS1ndGsiKTsKKyAgICAgICAgfSBlbHNpZiAoaXNXUEUoKSkgeworICAgICAgICAgICAg
cHVzaChAcHJlZml4LCAiLS13cGUiKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBwcmVmaXgs
ICJydW4iKTsKIApAQCAtMjAyNCw3ICsyMDQ0LDcgQEAgc3ViIGdlbmVyYXRlQnVpbGRTeXN0ZW1G
cm9tQ01ha2VQcm9qZWN0CiAgICAgcHVzaCBAYXJncywgJy1EU0hPV19CSU5ESU5HU19HRU5FUkFU
SU9OX1BST0dSRVNTPTEnIHVubGVzcyAoJHdpbGxVc2VOaW5qYSAmJiAtdCBTVERPVVQpOwogCiAg
ICAgIyBTb21lIHBvcnRzIGhhdmUgcHJvZHVjdGlvbiBtb2RlLCBidXQgYnVpbGQtd2Via2l0IHNo
b3VsZCBhbHdheXMgdXNlIGRldmVsb3BlciBtb2RlLgotICAgIHB1c2ggQGFyZ3MsICItRERFVkVM
T1BFUl9NT0RFPU9OIiBpZiBpc0d0aygpIHx8IGlzSlNDT25seSgpOworICAgIHB1c2ggQGFyZ3Ms
ICItRERFVkVMT1BFUl9NT0RFPU9OIiBpZiBpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BF
KCk7CiAKICAgICAjIERvbid0IHdhcm4gdmFyaWFibGVzIHdoaWNoIGFyZW4ndCB1c2VkIGJ5IGNt
YWtlIHBvcnRzLgogICAgIHB1c2ggQGFyZ3MsICItLW5vLXdhcm4tdW51c2VkLWNsaSI7CkBAIC0y
MTAxLDYgKzIxMjEsMTAgQEAgc3ViIGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KCQkJEApCiAgICAg
ICAgIHN5c3RlbSgicGVybCIsICIkc291cmNlRGlyL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtp
dGd0ay1saWJzIikgPT0gMCBvciBkaWUgJCE7CiAgICAgfQogCisgICAgaWYgKGlzV1BFKCkgJiYg
Y2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLXVwZGF0ZS13cGUiKSkgeworICAg
ICAgICBzeXN0ZW0oInBlcmwiLCAiJHNvdXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJr
aXR3cGUtbGlicyIpID09IDAgb3IgZGllICQhOworICAgIH0KKwogICAgICRyZXR1cm5Db2RlID0g
ZXhpdFN0YXR1cyhnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdCgkcHJlZml4UGF0
aCwgQGNtYWtlQXJncykpOwogICAgIGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOwog
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9U
b29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggMmMzYWUxMWE3MzAu
LjIxNGU1NjFkZGQ5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVy
ZUxpc3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBA
IC0xNDcsMTAgKzE0NywxMCBAQCBwcm9oaWJpdFVua25vd25Qb3J0KCk7CiAKIG15IEBmZWF0dXJl
cyA9ICgKICAgICB7IG9wdGlvbiA9PiAiM2QtcmVuZGVyaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIDNE
IFJlbmRlcmluZyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFXzNEX1RSQU5TRk9S
TVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8
IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJHRocmVlRFRyYW5zZm9ybXNTdXBwb3J0IH0sCisgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29h
V2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9
PiBcJHRocmVlRFRyYW5zZm9ybXNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiYWNjZWxl
cmF0ZWQtMmQtY2FudmFzIiwgZGVzYyA9PiAiVG9nZ2xlIEFjY2VsZXJhdGVkIDJEIENhbnZhcyBz
dXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyIs
IGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRhY2NlbGVyYXRlZDJEQ2FudmFzU3VwcG9ydCB9LAor
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIiwgZGVmYXVsdCA9
PiBpc1dQRSgpLCB2YWx1ZSA9PiBcJGFjY2VsZXJhdGVkMkRDYW52YXNTdXBwb3J0IH0sCiAKICAg
ICB7IG9wdGlvbiA9PiAiYWxsaW5vbmUtYnVpbGQiLCBkZXNjID0+ICJUb2dnbGUgYWxsLWluLW9u
ZSBidWlsZCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9BTExJTk9ORV9CVUlMRCIsIGRlZmF1
bHQgPT4gaXNXaW5kb3dzKCksIHZhbHVlID0+IFwkYWxsSW5PbmVCdWlsZCB9LApAQCAtMTgzLDcg
KzE4Myw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OIiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJGNzc0ltYWdl
UmVzb2x1dGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJjc3MtaW1hZ2Utc2V0Iiwg
ZGVzYyA9PiAiVG9nZ2xlIENTUyBpbWFnZS1zZXQgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9DU1NfSU1BR0VfU0VUIiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJGNz
c0ltYWdlU2V0U3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1NF
VCIsIGRlZmF1bHQgPT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkY3NzSW1hZ2VT
ZXRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiY3NzLXJlZ2lvbnMiLCBkZXNjID0+ICJU
b2dnbGUgQ1NTIFJlZ2lvbnMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1Nf
UkVHSU9OUyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRjc3NSZWdpb25zU3VwcG9ydCB9LApA
QCAtMjA3LDcgKzIwNyw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX0RBVEFMSVNUX0VMRU1FTlQiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkZGF0YWxpc3RF
bGVtZW50U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImRldmljZS1vcmllbnRhdGlvbiIs
IGRlc2MgPT4gIlRvZ2dsZSBEZXZpY2UgT3JpZW50YXRpb24gc3VwcG9ydCIsCi0gICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04iLCBkZWZhdWx0ID0+IGlzSU9TV2ViS2l0
KCksIHZhbHVlID0+IFwkZGV2aWNlT3JpZW50YXRpb25TdXBwb3J0IH0sCisgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04iLCBkZWZhdWx0ID0+IChpc0lPU1dlYktpdCgp
IHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGRldmljZU9yaWVudGF0aW9uU3VwcG9ydCB9LAogCiAg
ICAgeyBvcHRpb24gPT4gImRvbTQtZXZlbnRzLWNvbnN0cnVjdG9yIiwgZGVzYyA9PiAiRXhwb3Nl
IERPTTQgRXZlbnRzIGNvbnN0cnVjdG9ycyIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9ET000
X0VWRU5UU19DT05TVFJVQ1RPUiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0
aygpKSwgdmFsdWUgPT4gXCRkb200RXZlbnRzQ29uc3RydWN0b3IgfSwKQEAgLTIyNSw3ICsyMjUs
NyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GT05UX0xPQURf
RVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGZvbnRMb2FkRXZlbnRzU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gImZ0bC1qaXQiLCBkZXNjID0+ICJUb2dnbGUgRlRMSklUIHN1
cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRMX0pJVCIsIGRlZmF1bHQgPT4gKGlz
WDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVlID0+IFwkZnRsSklU
U3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRMX0pJVCIsIGRlZmF1bHQgPT4g
KGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkpICwgdmFs
dWUgPT4gXCRmdGxKSVRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZnRwZGlyIiwgZGVz
YyA9PiAiVG9nZ2xlIEZUUCBEaXJlY3Rvcnkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9GVFBESVIiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkZnRwRGlyU3VwcG9ydCB9LApA
QCAtMjM3LDcgKzIzNyw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX0dBTUVQQUQiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkZ2FtZXBhZFN1cHBvcnQgfSwK
IAogICAgIHsgb3B0aW9uID0+ICJnZW9sb2NhdGlvbiIsIGRlc2MgPT4gIlRvZ2dsZSBHZW9sb2Nh
dGlvbiBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0dFT0xPQ0FUSU9OIiwgZGVm
YXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZh
bHVlID0+IFwkZ2VvbG9jYXRpb25TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9H
RU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgp
IHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkZ2VvbG9jYXRpb25TdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAiaGlnaC1kcGktY2FudmFzIiwgZGVzYyA9PiAiVG9nZ2xlIEhp
Z2ggRFBJIENhbnZhcyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0hJR0hfRFBJ
X0NBTlZBUyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSksIHZhbHVlID0+IFwkaGlnaERQ
SUNhbnZhc1N1cHBvcnQgfSwKQEAgLTI0Niw3ICsyNDYsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JQ09OREFUQUJBU0UiLCBkZWZhdWx0ID0+ICFpc0lPU1dl
YktpdCgpLCB2YWx1ZSA9PiBcJGljb25kYXRhYmFzZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJpbmRleGVkLWRhdGFiYXNlIiwgZGVzYyA9PiAiVG9nZ2xlIEluZGV4ZWQgRGF0YWJhc2Ug
c3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIiwgZGVm
YXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkaW5k
ZXhlZERhdGFiYXNlU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzR3RrKCkgfHwg
aXNXUEUoKSksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3VwcG9ydCB9LAogCiAgICAgeyBv
cHRpb24gPT4gImlucHV0LXNwZWVjaCIsIGRlc2MgPT4gIlRvZ2dsZSBJbnB1dCBTcGVlY2ggc3Vw
cG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JTlBVVF9TUEVFQ0giLCBkZWZhdWx0ID0+
IDAsIHZhbHVlID0+IFwkaW5wdXRTcGVlY2hTdXBwb3J0IH0sCkBAIC0zMTIsNyArMzEyLDcgQEAg
bXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTUVURVJfRUxFTUVOVCIs
IGRlZmF1bHQgPT4gIWlzQXBwbGVXaW5XZWJLaXQoKSwgdmFsdWUgPT4gXCRtZXRlckVsZW1lbnRT
dXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibWh0bWwiLCBkZXNjID0+ICJUb2dnbGUgTUhU
TUwgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4g
aXNHdGsoKSwgdmFsdWUgPT4gXCRtaHRtbFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX01IVE1MIiwgZGVmYXVsdCA9PiAoaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRt
aHRtbFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJtb3VzZS1jdXJzb3Itc2NhbGUiLCBk
ZXNjID0+ICJUb2dnbGUgU2NhbGVkIG1vdXNlIGN1cnNvciBzdXBwb3J0IiwKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4g
XCRtb3VzZUN1cnNvclNjYWxlU3VwcG9ydCB9LApAQCAtMzI0LDcgKzMyNCw3IEBAIG15IEBmZWF0
dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZ
IiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGhhcmR3YXJlQ29uY3VycmVuY3lTdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAibmV0c2NhcGUtcGx1Z2luLWFwaSIsIGRlc2MgPT4gIlRvZ2ds
ZSBOZXRzY2FwZSBQbHVnaW4gQVBJIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
TkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1bHQgPT4gIWlzSU9TV2ViS2l0KCksIHZhbHVlID0+
IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAoIWlzSU9TV2ViS2l0KCkgJiYgIWlzV1BF
KCkpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3VwcG9ydCB9LAogCiAgICAgeyBvcHRp
b24gPT4gIm5vc25pZmYiLCBkZXNjID0+ICJUb2dnbGUgc3VwcG9ydCBmb3IgJ1gtQ29udGVudC1U
eXBlLU9wdGlvbnM6IG5vc25pZmYnIiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05PU05JRkYi
LCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0FwcGxlV2luV2ViS2l0KCkp
LCB2YWx1ZSA9PiBcJG5vc25pZmZTdXBwb3J0IH0sCkBAIC0zMzYsNyArMzM2LDcgQEAgbXkgQGZl
YXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIiwg
ZGVmYXVsdCA9PiBpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJG9yaWVudGF0aW9uRXZlbnRzU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInBlcmZvcm1hbmNlLXRpbWVsaW5lIiwgZGVzYyA9
PiAiVG9nZ2xlIFBlcmZvcm1hbmNlIFRpbWVsaW5lIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfUEVSRk9STUFOQ0VfVElNRUxJTkUiLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVl
ID0+IFwkcGVyZm9ybWFuY2VUaW1lbGluZVN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX1BFUkZPUk1BTkNFX1RJTUVMSU5FIiwgZGVmYXVsdCA9PiAoaXNHdGsoKSB8fCBpc1dQRSgp
KSwgdmFsdWUgPT4gXCRwZXJmb3JtYW5jZVRpbWVsaW5lU3VwcG9ydCB9LAogCiAgICAgeyBvcHRp
b24gPT4gInByb3hpbWl0eS1ldmVudHMiLCBkZXNjID0+ICJUb2dnbGUgUHJveGltaXR5IEV2ZW50
cyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMiLCBk
ZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkcHJveGltaXR5RXZlbnRzU3VwcG9ydCB9LApAQCAtMzY2
LDcgKzM2Niw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiVVNFX1NZU1RF
TV9NQUxMT0MiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkc3lzdGVtTWFsbG9jU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gInRvdWNoLWV2ZW50cyIsIGRlc2MgPT4gIlRvZ2dsZSBUb3Vj
aCBFdmVudHMgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9UT1VDSF9FVkVOVFMi
LCBkZWZhdWx0ID0+IChpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJHRvdWNo
RXZlbnRzU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwg
ZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9
PiBcJHRvdWNoRXZlbnRzU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInRvdWNoLWljb24t
bG9hZGluZyIsIGRlc2MgPT4gIlRvZ2dsZSBUb3VjaCBJY29uIExvYWRpbmcgU3VwcG9ydCIsCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkciLCBkZWZhdWx0ID0+IDAs
IHZhbHVlID0+IFwkdG91Y2hJY29uTG9hZGluZ1N1cHBvcnQgfSwKQEAgLTM3OCwxNiArMzc4LDE2
IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJQlJBVElPTiIs
IGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCR2aWJyYXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9w
dGlvbiA9PiAidmlkZW8iLCBkZXNjID0+ICJUb2dnbGUgVmlkZW8gc3VwcG9ydCIsCi0gICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBp
c0d0aygpKSwgdmFsdWUgPT4gXCR2aWRlb1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX1ZJREVPIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNX
UEUoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidmlk
ZW8tdHJhY2siLCBkZXNjID0+ICJUb2dnbGUgVmlkZW8gVHJhY2sgc3VwcG9ydCIsCi0gICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9WSURFT19UUkFDSyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQo
KSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR2aWRlb1RyYWNrU3VwcG9ydCB9LAorICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkg
fHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR2aWRlb1RyYWNrU3VwcG9ydCB9LAog
CiAgICAgeyBvcHRpb24gPT4gIndlYi1hbmltYXRpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIFdlYiBB
bmltYXRpb25zIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX0FOSU1BVElP
TlMiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkd2ViQW5pbWF0aW9uc1N1cHBvcnQgfSwKIAog
ICAgIHsgb3B0aW9uID0+ICJ3ZWItYXVkaW8iLCBkZXNjID0+ICJUb2dnbGUgV2ViIEF1ZGlvIHN1
cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX0FVRElPIiwgZGVmYXVsdCA9PiBp
c0d0aygpLCB2YWx1ZSA9PiBcJHdlYkF1ZGlvU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfV0VCX0FVRElPIiwgZGVmYXVsdCA9PiAoaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUg
PT4gXCR3ZWJBdWRpb1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWItcmVwbGF5Iiwg
ZGVzYyA9PiAiVG9nZ2xlIFdlYiBSZXBsYXkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9XRUJfUkVQTEFZIiwgZGVmYXVsdCA9PiBpc0FwcGxlQ29jb2FXZWJLaXQoKSwgdmFsdWUg
PT4gXCR3ZWJSZXBsYXlTdXBwb3J0IH0sCkBAIC00MDIsMTAgKzQwMiwxMCBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJfVElNSU5HIiwgZGVmYXVsdCA9PiAx
LCB2YWx1ZSA9PiBcJHdlYlRpbWluZ1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWJh
c3NlbWJseSIsIGRlc2MgPT4gIlRvZ2dsZSBXZWJBc3NlbWJseSBzdXBwb3J0IiwKLSAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX1dFQkFTU0VNQkxZIiwgZGVmYXVsdCA9PiAoaXNYODZfNjQoKSAmJiAo
aXNHdGsoKSB8fCBpc0pTQ09ubHkoKSkpICwgdmFsdWUgPT4gXCR3ZWJBc3NlbWJseVN1cHBvcnQg
fSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkFTU0VNQkxZIiwgZGVmYXVsdCA9PiAoaXNY
ODZfNjQoKSAmJiAoaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSB8fCBpc1dQRSgpKSkgLCB2YWx1ZSA9
PiBcJHdlYkFzc2VtYmx5U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYmdsIiwgZGVz
YyA9PiAiVG9nZ2xlIFdlYkdMIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VC
R0wiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0d0aygpKSwgdmFsdWUg
PT4gXCR3ZWJnbFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVm
YXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFs
dWUgPT4gXCR3ZWJnbFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3cml0YWJsZVN0cmVh
bUFQSSIsIGRlc2MgPT4gIlRvZ2dsZSBXcml0YWJsZVN0cmVhbSBBUEkgc3VwcG9ydCIsCiAgICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9XUklUQUJMRV9TVFJFQU1fQVBJIiwgZGVmYXVsdCA9PiAxLCB2
YWx1ZSA9PiBcJHdyaXRhYmxlU3RyZWFtQVBJU3VwcG9ydCB9LApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXgg
MzNhNjBjY2I1MWMuLmJmNTZlMWYyODZjIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTQyNSw3ICs0MjUs
NyBAQCBkZWYgX3NldF91cF9kZXJpdmVkX29wdGlvbnMocG9ydCwgb3B0aW9ucyk6CiAgICAgICAg
IG9wdGlvbnMudmVyYm9zZSA9IFRydWUKIAogICAgICMgVGhlIEdUSysgYW5kIEVGTCBwb3J0cyBv
bmx5IHN1cHBvcnQgV2ViS2l0MiBzbyB0aGV5IGFsd2F5cyB1c2UgV0tUUi4KLSAgICBpZiBvcHRp
b25zLnBsYXRmb3JtID09ICJndGsiIG9yIG9wdGlvbnMucGxhdGZvcm0gPT0gImVmbCI6CisgICAg
aWYgb3B0aW9ucy5wbGF0Zm9ybSBpbiBbImVmbCIsICJndGsiLCAid3BlIl06CiAgICAgICAgIG9w
dGlvbnMud2Via2l0X3Rlc3RfcnVubmVyID0gVHJ1ZQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2ZhY3RvcnkucHkKaW5kZXggY2ZkYzNhNDFjODYuLjUxNjBmMzZjYjU4IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQpAQCAtNTMsNiArNTMsOSBAQCBkZWYgcGxhdGZv
cm1fb3B0aW9ucyh1c2VfZ2xvYnM9RmFsc2UpOgogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlv
bignLS1ndGsnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVzdD0ncGxhdGZvcm0nLAogICAgICAg
ICAgICAgY29uc3Q9KCdndGsqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnZ3RrJyksCiAgICAgICAgICAg
ICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3RrKicgaWYgdXNlX2dsb2JzIGVsc2UgJ0Fs
aWFzIGZvciAtLXBsYXRmb3JtPWd0aycpKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24o
Jy0td3BlJywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGRlc3Q9J3BsYXRmb3JtJywKKyAgICAgICAg
ICAgIGNvbnN0PSgnd3BlKicgaWYgdXNlX2dsb2JzIGVsc2UgJ3dwZScpLAorICAgICAgICAgICAg
aGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPXdwZScpKSwKICAgICAgICAgb3B0cGFyc2UubWFr
ZV9vcHRpb24oJy0tbm8taW5zdGFsbCcsIGFjdGlvbj0nc3RvcmVfY29uc3QnLAogICAgICAgICAg
ICAgY29uc3Q9RmFsc2UsIGRlZmF1bHQ9VHJ1ZSwgZGVzdD0naW5zdGFsbCcsCiAgICAgICAgICAg
ICBoZWxwPSdTa2lwIGluc3RhbGwgc3RlcCBmb3IgZGV2aWNlIGFuZCBzaW11bGF0b3IgdGVzdGlu
ZycpLApAQCAtOTMsNiArOTYsNyBAQCBjbGFzcyBQb3J0RmFjdG9yeShvYmplY3QpOgogICAgICAg
ICAndGVzdC5UZXN0UG9ydCcsCiAgICAgICAgICd3aW4uV2luQ2Fpcm9Qb3J0JywKICAgICAgICAg
J3dpbi5XaW5Qb3J0JywKKyAgICAgICAgJ3dwZS5XUEVQb3J0JywKICAgICApCiAKICAgICBkZWYg
X19pbml0X18oc2VsZiwgaG9zdCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvd3BlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjNjZDA4NjVhNGUKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd3BlLnB5CkBAIC0wLDAgKzEsNzkg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0
aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBHb29nbGUgbmFtZSBub3IgdGhlIG5hbWVzIG9mIGl0
cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1v
aXplZAorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfY29uZmlndXJhdGlv
biBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb24KK2Zyb20gd2Via2l0cHkucG9ydC5iYXNlIGltcG9y
dCBQb3J0Citmcm9tIHdlYmtpdHB5LnBvcnQubGludXhfZ2V0X2NyYXNoX2xvZyBpbXBvcnQgR0RC
Q3Jhc2hMb2dHZW5lcmF0b3IKKworCitjbGFzcyBXUEVQb3J0KFBvcnQpOgorICAgIHBvcnRfbmFt
ZSA9ICJ3cGUiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAg
ICAgICAgc3VwZXIoV1BFUG9ydCwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorCisg
ICAgICAgIGlmIHNlbGYuX3Nob3VsZF91c2VfamhidWlsZCgpOgorICAgICAgICAgICAgc2VsZi5f
amhidWlsZF93cmFwcGVyID0gW3NlbGYucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCdUb29scycsICdq
aGJ1aWxkJywgJ2poYnVpbGQtd3JhcHBlcicpLCAnLS13cGUnLCAncnVuJ10KKyAgICAgICAgICAg
IHNlbGYuc2V0X29wdGlvbl9kZWZhdWx0KCd3cmFwcGVyJywgJyAnLmpvaW4oc2VsZi5famhidWls
ZF93cmFwcGVyKSkKKworICAgIGRlZiBkZWZhdWx0X3RpbWVvdXRfbXMoc2VsZik6CisgICAgICAg
IHJldHVybiA2MDAwCisKKyAgICBkZWYgX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoc2VsZiwgKnBh
dGgpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgqKCgnYmluJywpICsgcGF0aCkp
CisKKyAgICBkZWYgX2J1aWx0X2xpYnJhcmllc19wYXRoKHNlbGYsICpwYXRoKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoKigoJ2xpYicsKSArIHBhdGgpKQorCisgICAgZGVmIF9w
b3J0X2ZsYWdfZm9yX3NjcmlwdHMoc2VsZik6CisgICAgICAgIHJldHVybiAiLS13cGUiCisKKyAg
ICBkZWYgc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYsIHNlcnZlcl9uYW1lPU5vbmUpOgor
ICAgICAgICBlbnZpcm9ubWVudCA9IHN1cGVyKFdQRVBvcnQsIHNlbGYpLnNldHVwX2Vudmlyb25f
Zm9yX3NlcnZlcihzZXJ2ZXJfbmFtZSkKKyAgICAgICAgZW52aXJvbm1lbnRbJ0dTRVRUSU5HU19C
QUNLRU5EJ10gPSAnbWVtb3J5JworICAgICAgICBlbnZpcm9ubWVudFsnVEVTVF9SVU5ORVJfSU5K
RUNURURfQlVORExFX0ZJTEVOQU1FJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdsaWInLCAnbGliVGVz
dFJ1bm5lckluamVjdGVkQnVuZGxlLnNvJykKKyAgICAgICAgZW52aXJvbm1lbnRbJ1RFU1RfUlVO
TkVSX1RFU1RfUExVR0lOX1BBVEgnXSA9IHNlbGYuX2J1aWxkX3BhdGgoJ2xpYicsICdwbHVnaW5z
JykKKyAgICAgICAgZW52aXJvbm1lbnRbJ1dFQktJVF9FWEVDX1BBVEgnXSA9IHNlbGYuX2J1aWxk
X3BhdGgoJ2JpbicpCisgICAgICAgIHJldHVybiBlbnZpcm9ubWVudAorCisgICAgZGVmIF9nZW5l
cmF0ZV9hbGxfdGVzdF9jb25maWd1cmF0aW9ucyhzZWxmKToKKyAgICAgICAgY29uZmlndXJhdGlv
bnMgPSBbXQorICAgICAgICBmb3IgYnVpbGRfdHlwZSBpbiBzZWxmLkFMTF9CVUlMRF9UWVBFUzoK
KyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zLmFwcGVuZChUZXN0Q29uZmlndXJhdGlvbih2ZXJz
aW9uPXNlbGYuX3ZlcnNpb24sIGFyY2hpdGVjdHVyZT0neDg2JywgYnVpbGRfdHlwZT1idWlsZF90
eXBlKSkKKyAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb25zCisKKyAgICBkZWYgX3BhdGhfdG9f
ZHJpdmVyKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbHRfZXhlY3V0YWJsZXNfcGF0
aChzZWxmLmRyaXZlcl9uYW1lKCkpCisKKyAgICBkZWYgX3BhdGhfdG9faW1hZ2VfZGlmZihzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoJ0ltYWdlRGlm
ZicpCisKKyAgICBkZWYgX2dldF9jcmFzaF9sb2coc2VsZiwgbmFtZSwgcGlkLCBzdGRvdXQsIHN0
ZGVyciwgbmV3ZXJfdGhhbik6CisgICAgICAgIG5hbWUgPSAiV1BFV2ViUHJvY2VzcyIgaWYgbmFt
ZSA9PSAiV2ViUHJvY2VzcyIgZWxzZSBuYW1lCisgICAgICAgIHJldHVybiBHREJDcmFzaExvZ0dl
bmVyYXRvcihuYW1lLCBwaWQsIG5ld2VyX3RoYW4sIHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYuX3Bh
dGhfdG9fZHJpdmVyKS5nZW5lcmF0ZV9jcmFzaF9sb2coc3Rkb3V0LCBzdGRlcnIpCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uYjk3ODQ3NTVmMzYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsNjAgQEAKK3NldChURVNUV0VCS0lUQVBJ
X1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAiJHtDTUFLRV9SVU5USU1FX09VVFBVVF9ESVJFQ1RP
Ull9L1Rlc3RXZWJLaXRBUEkiKQorc2V0KFRFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElS
RUNUT1JZX1dURiAiJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vV1RG
IikKKworIyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0IGlzIHBvc3NpYmxlIHRvIGJ1aWxk
IFRlc3RXZWJLaXRBUEkgd2l0aCBXZWJLaXQyCisjIGRpc2FibGVkIGFuZCB0aGlzIHRyaWdnZXJz
IHRoZSBpbmNsdXNpb24gb2YgdGhlIFdlYktpdDIgaGVhZGVycy4KK2FkZF9kZWZpbml0aW9ucygt
REJVSUxESU5HX1dFQktJVDJfXykKKworYWRkX2N1c3RvbV90YXJnZXQoVGVzdFdlYktpdEFQSS1m
b3J3YXJkaW5nLWhlYWRlcnMKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQktJ
VDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCAtLWluY2x1ZGUt
cGF0aCAke1RFU1RXRUJLSVRBUElfRElSfSAtLW91dHB1dCAke0ZPUldBUkRJTkdfSEVBREVSU19E
SVJ9IC0tcGxhdGZvcm0gd3BlIC0tcGxhdGZvcm0gc291cAorICAgIERFUEVORFMgd2Via2l0Mndw
ZS1mb3J3YXJkaW5nLWhlYWRlcnMKKykKKworc2V0KEZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdl
YktpdEFQSV9OQU1FIFRlc3RXZWJLaXRBUEktZm9yd2FyZGluZy1oZWFkZXJzKQorCitpbmNsdWRl
X2RpcmVjdG9yaWVzKAorICAgICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0KKyAgICAke0ZPUldB
UkRJTkdfSEVBREVSU19ESVJ9L0phdmFTY3JpcHRDb3JlCispCisKK2luY2x1ZGVfZGlyZWN0b3Jp
ZXMoU1lTVEVNCisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0xJQlNPVVBfSU5DTFVE
RV9ESVJTfQorKQorCitzZXQodGVzdF9tYWluX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElf
RElSfS93cGUvbWFpbi5jcHAKKykKKworc2V0KGJ1bmRsZV9oYXJuZXNzX1NPVVJDRVMKKyAgICAk
e1RFU1RXRUJLSVRBUElfRElSfS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcAor
ICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9QbGF0Zm9ybVV0aWxpdGllc1dQRS5jcHAKKykK
KworIyBUZXN0V1RGCisKK2xpc3QoQVBQRU5EIFRlc3RXVEZfU09VUkNFUworICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9nbGliL0dVbmlxdWVQdHIuY3BwCisgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKKykKKworIyBUZXN0
V2ViQ29yZQorCithZGRfZXhlY3V0YWJsZShUZXN0V2ViQ29yZQorICAgICR7dGVzdF9tYWluX1NP
VVJDRVN9CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHNDb250cm9sbGVyLmNwcAorICAg
ICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvSFRNTFBhcnNlcklkaW9tcy5jcHAK
KyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0xheW91dFVuaXQuY3BwCisg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9VUkwuY3BwCisgICAgJHtURVNU
V0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisgICAgJHtURVNU
V0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXJUZXN0LmNwcAorICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvRmlsZVN5c3RlbS5jcHAKKyAgICAke1RF
U1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKKykKKwordGFy
Z2V0X2xpbmtfbGlicmFyaWVzKFRlc3RXZWJDb3JlICR7dGVzdF93ZWJjb3JlX0xJQlJBUklFU30p
CithZGRfZGVwZW5kZW5jaWVzKFRlc3RXZWJDb3JlICR7Rm9yd2FyZGluZ0hlYWRlcnNGb3JUZXN0
V2ViS2l0QVBJX05BTUV9KQorCithZGRfdGVzdChUZXN0V2ViQ29yZSAke1RFU1RXRUJLSVRBUElf
UlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9XZWJDb3JlL1Rlc3RXZWJDb3JlKQorc2V0X3Rlc3Rz
X3Byb3BlcnRpZXMoVGVzdFdlYkNvcmUgUFJPUEVSVElFUyBUSU1FT1VUIDYwKQorc2V0X3Rhcmdl
dF9wcm9wZXJ0aWVzKFRlc3RXZWJDb3JlIFBST1BFUlRJRVMgUlVOVElNRV9PVVRQVVRfRElSRUNU
T1JZICR7VEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dlYkNvcmUpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9JbmplY3RlZEJ1bmRsZUNvbnRyb2xs
ZXJXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9s
bGVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmQyMTIx
YmQ3YTIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9JbmplY3Rl
ZEJ1bmRsZUNvbnRyb2xsZXJXUEUuY3BwCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlQ29udHJvbGxlci5oIgorCituYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRp
YWxpemUoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVV0aWxpdGllc1dQRS5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVV0aWxpdGllc1dQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUyMWMxZWFhMmYzCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwCkBAIC0w
LDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgi
CisKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1Vu
aXF1ZVB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CituYW1lc3BhY2UgVXRpbCB7
CisKK3ZvaWQgc2xlZXAoZG91YmxlIHNlY29uZHMpCit7CisgICAgZ191c2xlZXAoc2Vjb25kcyAq
IDEwMDAwMDApOworfQorCitzdGF0aWMgY2hhciogZ2V0RmlsZW5hbWVGcm9tRW52aXJvbm1lbnRW
YXJpYWJsZUFzVVRGOChjb25zdCBjaGFyKiB2YXJpYWJsZU5hbWUpCit7CisgICAgY29uc3QgY2hh
ciogdmFsdWUgPSBnX2dldGVudih2YXJpYWJsZU5hbWUpOworICAgIGlmICghdmFsdWUpIHsKKyAg
ICAgICAgZ19wcmludGVycigiJXMgZW52aXJvbm1lbnQgdmFyaWFibGUgbm90IGZvdW5kXG4iLCB2
YXJpYWJsZU5hbWUpOworICAgICAgICBleGl0KDEpOworICAgIH0KKyAgICBnc2l6ZSBieXRlc1dy
aXR0ZW47CisgICAgcmV0dXJuIGdfZmlsZW5hbWVfdG9fdXRmOCh2YWx1ZSwgLTEsIDAsICZieXRl
c1dyaXR0ZW4sIDApOworfQorCitXS1N0cmluZ1JlZiBjcmVhdGVJbmplY3RlZEJ1bmRsZVBhdGgo
KQoreworICAgIEdVbmlxdWVQdHI8Y2hhcj4gaW5qZWN0ZWRCdW5kbGVQYXRoKGdldEZpbGVuYW1l
RnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX0lO
SkVDVEVEX0JVTkRMRV9QQVRIIikpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gaW5qZWN0ZWRCdW5k
bGVGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKGluamVjdGVkQnVuZGxlUGF0aC5nZXQoKSwgImxp
YlRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZS5zbyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4g
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoaW5qZWN0ZWRCdW5kbGVGaWxlbmFtZS5nZXQo
KSk7Cit9CisKK1dLVVJMUmVmIGNyZWF0ZVVSTEZvclJlc291cmNlKGNvbnN0IGNoYXIqIHJlc291
cmNlLCBjb25zdCBjaGFyKiBleHRlbnNpb24pCit7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiB0ZXN0
UmVzb3VyY2VzUGF0aChnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KCJU
RVNUX1dFQktJVF9BUElfV0VCS0lUMl9SRVNPVVJDRVNfUEFUSCIpKTsKKyAgICBHVW5pcXVlUHRy
PGNoYXI+IHJlc291cmNlQmFzZW5hbWUoZ19zdHJkdXBfcHJpbnRmKCIlcy4lcyIsIHJlc291cmNl
LCBleHRlbnNpb24pKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHJlc291cmNlRmlsZW5hbWUoZ19i
dWlsZF9maWxlbmFtZSh0ZXN0UmVzb3VyY2VzUGF0aC5nZXQoKSwgcmVzb3VyY2VCYXNlbmFtZS5n
ZXQoKSwgbnVsbHB0cikpOworICAgIEdSZWZQdHI8R0ZpbGU+IHJlc291cmNlRmlsZSA9IGFkb3B0
R1JlZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKHJlc291cmNlRmlsZW5hbWUuZ2V0KCkpKTsKKyAgICBH
VW5pcXVlUHRyPGNoYXI+IHJlc291cmNlVVJJKGdfZmlsZV9nZXRfdXJpKHJlc291cmNlRmlsZS5n
ZXQoKSkpOworICAgIHJldHVybiBXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZyhyZXNvdXJjZVVS
SS5nZXQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFV0aWwKK30gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS93cGUvbWFpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmY2NTY4YjZjMzJkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS93cGUvbWFpbi5jcHAKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVGVzdHNDb250cm9sbGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiog
YXJndikKK3sKKyAgICByZXR1cm4gVGVzdFdlYktpdEFQSTo6VGVzdHNDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5ydW4oYXJnYywgYXJndikgPyBFWElUX1NVQ0NFU1MgOiBFWElUX0ZBSUxVUkU7Cit9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4IDVmMzk1YmU3MzVlLi5kMDc5
MDRiMzNmNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKQEAgLTcxLDcgKzcx
LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpCiAgICAgcmV0dXJuIFdLQWNjZXNzaWJpbGl0eUVuaGFuY2VkQWNjZXNzaWJpbGl0
eUVuYWJsZWQoKTsKIH0KIAotI2lmICFQTEFURk9STShHVEspCisjaWYgIVBMQVRGT1JNKEdUSykg
JiYgIVBMQVRGT1JNKFdQRSkKIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQoKQogewogICAgIFdLQnVuZGxlUGFnZVJlZiBwYWdl
ID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oCmluZGV4IGVjZGY1YTBmNzJmLi5kNWFlZWJiY2NlNyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaApAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPE5vdGlmaWNhdGlvbkhhbmRsZXI+IG1f
Z2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlcjsKLSNlbHNlCisjZWxpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKEVGTCkKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXI+IG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlcjsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IDAyNjQwYmU3NjE4Li4yNTgxNGU0ZWU5NiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC03OCw3ICs3OCw3IEBAIGJvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNUZXh0QXJlYSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAj
ZW5kaWYKICAgICAKIC8vIFVuc3VwcG9ydGVkIG1ldGhvZHMgb24gdmFyaW91cyBwbGF0Zm9ybXMu
IEFzIHRoZXkncmUgaW1wbGVtZW50ZWQgb24gb3RoZXIgcGxhdGZvcm1zIHRoaXMgbGlzdCBzaG91
bGQgYmUgbW9kaWZpZWQuCi0jaWYgIVBMQVRGT1JNKEdUSykgfHwgIUhBVkUoQUNDRVNTSUJJTElU
WSkKKyNpZiAoIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkpIHx8ICFIQVZFKEFDQ0VT
U0lCSUxJVFkpCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Y2hhcmFjdGVyQXRPZmZzZXQoaW50KSB7IHJldHVybiBudWxscHRyOyB9CiBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkg
eyByZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgKaW5kZXggZDEwZWU4YmJkMWEuLjQzNWRkN2RiOGFhIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMzE3LDcgKzMxNyw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBnZXRVSUVsZW1lbnRzV2l0aEF0dHJpYnV0ZShKU1N0cmluZ1JlZiwgVmVjdG9yPFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JikgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHZvaWQgZ2V0Q2hpbGRyZW4oVmVjdG9y
PFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+Jik7CiAgICAgdm9pZCBnZXRDaGlsZHJl
bldpdGhSYW5nZShWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mLCB1bnNp
Z25lZCBsb2NhdGlvbiwgdW5zaWduZWQgbGVuZ3RoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZTQ4
M2JmNmJiZGYuLjFlODgzYzUyN2FhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgVGVzdFJ1
bm5lcjo6VGVzdFJ1bm5lcigpCiAgICAgLCBtX2RhdGFiYXNlTWF4UXVvdGEoLTEpCiAgICAgLCBt
X3VzZXJTdHlsZVNoZWV0RW5hYmxlZChmYWxzZSkKICAgICAsIG1fdXNlclN0eWxlU2hlZXRMb2Nh
dGlvbihhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIiKSkpCi0jaWYgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICwgbV93
YWl0VG9EdW1wV2F0Y2hkb2dUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZUZXN0UnVubmVy
Ojp3YWl0VG9EdW1wV2F0Y2hkb2dUaW1lckZpcmVkKQogI2VuZGlmCiB7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDAzNGUx
MTBhNmJhLi45NzkwODFhOWNjNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZSdW5Mb29wLmg+CiB0
eXBlZGVmIFJldGFpblB0cjxDRlJ1bkxvb3BUaW1lclJlZj4gUGxhdGZvcm1UaW1lclJlZjsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQog
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiBuYW1lc3BhY2UgV1RSIHsKIGNsYXNzIFRlc3RSdW5u
ZXI7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dw
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5NGMyYWFiNzA4Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJXUEUuY3BwCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aCIKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisKK25hbWVzcGFjZSBXVFIgeworCit2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpy
ZXNldFRvQ29uc2lzdGVudFN0YXRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFj
Y2Vzc2libGVFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRl
KG51bGxwdHIpOworfQorCitSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUobnVsbHB0cik7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpT
VmFsdWVSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3Rl
bmVyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV1RSCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VTU0lCSUxJVFkpCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNjQ5MTUwYTU0MAotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRXUEUuY3BwCkBAIC0wLDAgKzEsOTU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCIKKworI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVz
cGFjZSBXVFIgeworCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KFBsYXRmb3JtVUlFbGVtZW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29uc3QgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6fkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFcXVhbChB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJl
bihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PiYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJl
bldpdGhSYW5nZShWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PiYsIHVuc2ln
bmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitpbnQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVsZW1lbnRBdFBvaW50KGludCwgaW50KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Vuc2lnbmVkIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4T2ZDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZEF0SW5k
ZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmxpbmtlZFVJRWxlbWVudEF0SW5kZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5kZXgo
dW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUNvbnRyb2xzRWxlbWVudEF0SW5k
ZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmRpc2Nsb3NlZFJvd0F0SW5kZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0F0SW5kZXgodW5zaWduZWQpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hp
bGRBdEluZGV4KHVuc2lnbmVkKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK3Vuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNl
bGVjdGVkQ2hpbGRyZW5Db3VudCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0bGVVSUVsZW1lbnQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJlbnRF
bGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6ZGlzY2xvc2VkQnlSb3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphdHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mRG9jdW1lbnRMaW5rcygpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNo
aWxkcmVuKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWxs
QXR0cmlidXRlcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN0cmluZ0F0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpudW1iZXJBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCitKU1ZhbHVlUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdS
ZWYgYXR0cmlidXRlKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93SGVh
ZGVycygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5IZWFkZXJz
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6dWlFbGVtZW50QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym9vbEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0
dHJpYnV0ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKEpTU3Ry
aW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVN1cHBv
cnRlZChKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpwYXJhbWV0ZXJpemVkQXR0cmlidXRlTmFtZXMoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Vicm9sZSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGVEZXNjcmlwdGlvbigpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbXB1dGVkUm9sZVN0cmluZygpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVzY3JpcHRpb24oKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpvcmllbnRhdGlvbigpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ1ZhbHVl
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGFuZ3VhZ2Uo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWxwVGV4dCgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OngoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnkoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKwor
ZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndpZHRoKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpoZWlnaHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsK
K30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRYKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW50
VmFsdWUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsK
K30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1pblZhbHVlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjptYXhWYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMC4wOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6dmFsdWVEZXNjcmlwdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omluc2Vy
dGlvblBvaW50TGluZU51bWJlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1ByZXNzQWN0aW9uU3Vw
cG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0luY3JlbWVudEFjdGlvblN1cHBvcnRl
ZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNEZWNyZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRW5hYmxlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNSZXF1aXJlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc1NlbGVjdGVkT3B0aW9uQWN0aXZlKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0V4cGFuZGVkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NoZWNr
ZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSW5kZXRlcm1pbmF0ZSgpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2ludCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoaWVyYXJjaGljYWxMZXZlbCgpIGNvbnN0Cit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNwZWFrKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmFyaWFJc0dyYWJiZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXJpYURyb3BFZmZlY3RzKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bGluZUZvckluZGV4KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cmFuZ2VGb3JMaW5lKGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cmFuZ2VGb3JQb3NpdGlvbihpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym91bmRzRm9yUmFuZ2UodW5zaWduZWQsIHVuc2ln
bmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdG
b3JSYW5nZSh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JSYW5nZSh1bnNpZ25lZCwgdW5zaWdu
ZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
Ym9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nUmFuZ2VJc01pc3Nw
ZWxsZWQodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVs
ZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwgYm9vbCwgYm9vbCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2Vh
cmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCosIGJvb2ws
IEpTVmFsdWVSZWYsIEpTU3RyaW5nUmVmLCBib29sLCBib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4
dFJlZiwgSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYsIEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09m
Q29sdW1uSGVhZGVycygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmF0dHJpYnV0ZXNPZlJvd0hlYWRlcnMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5zKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93cygpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlZpc2libGVDZWxs
cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0
ZXNPZkhlYWRlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0NvdW50KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Y29sdW1uQ291bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDA7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEluVGFibGUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dJbmRleFJhbmdlKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSW5kZXhSYW5n
ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNl
bGxGb3JDb2x1bW5BbmRSb3codW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpob3Jpem9udGFsU2Nyb2xsYmFyKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dmVy
dGljYWxTY3JvbGxiYXIoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZWxlY3RlZFRleHRSYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
ZXRTZWxlY3RlZFRleHRSYW5nZSh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aW5jcmVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzaG93TWVudSgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmVz
cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGVh
clNlbGVjdGVkQ2hpbGRyZW4oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3Np
YmlsaXR5VmFsdWUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojpkb2N1bWVudEVuY29kaW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRVUkkoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp1cmwoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkTm90aWZp
Y2F0aW9uTGlzdGVuZXIoSlNWYWx1ZVJlZiBmdW5jdGlvbkNhbGxiYWNrKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3Rh
YmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc011bHRpU2VsZWN0YWJsZSgpIGNv
bnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNWaXNpYmxlKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc09mZlNjcmVlbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXND
b2xsYXBzZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSWdub3JlZCgpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTaW5nbGVMaW5lKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc011bHRpTGluZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFz
UG9wdXAoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRha2VGb2N1cygpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0YWtl
U2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFkZFNlbGVjdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb24oKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lVGV4dE1hcmtlclJhbmdlRm9yVGV4
dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvckVsZW1l
bnQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRN
YXJrZXJSYW5nZUxlbmd0aChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzVGV4dE1hcmtlcihB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0VGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
ciopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0Zv
clRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtl
clJhbmdlRm9yTWFya2VycyhBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciosIEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yQm91bmRzKGludCwgaW50LCBpbnQsIGludCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0YXJ0VGV4
dE1hcmtlckZvckJvdW5kcyhpbnQsIGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyRm9yUG9pbnQoaW50LCBp
bnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFj
Y2Vzc2liaWxpdHlFbGVtZW50Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciop
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9v
bCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJh
bmdlQ29udGFpbnNBdHRyaWJ1dGUoSlNTdHJpbmdSZWYsIEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
CitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhGb3JUZXh0TWFya2VyKEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dE1hcmtlclZhbGlkKEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyRm9ySW5kZXgoaW50KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRN
YXJrZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRWaXNpYmxlVGV4dFJh
bmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNjcm9sbFRvTWFrZVZpc2libGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsVG9HbG9iYWxQb2ludChpbnQsIGludCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXMoaW50LCBpbnQsIGludCwgaW50KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdXBwb3J0ZWRBY3Rpb25zKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGF0aERlc2NyaXB0aW9uKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFBvc3Rz
Y3JpcHRzRGVzY3JpcHRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjptYXRoUHJlc2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xhc3NMaXN0KCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hhcmFjdGVyQXRPZmZz
ZXQoaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3b3Jk
QXRPZmZzZXQoaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpsaW5lQXRPZmZzZXQoaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZW50ZW5jZUF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSAgV1RGCisKKyNlbmRpZiAv
LyBIQVZFKEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRlRm9udHNXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jM2NmNzIxYjMxOQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRl
Rm9udHNXUEUuY3BwCkBAIC0wLDAgKzEsMTQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJB
Y3RpdmF0ZUZvbnRzLmgiCisKKyNpbmNsdWRlIDxmb250Y29uZmlnL2ZvbnRjb25maWcuaD4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1Vu
aXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV1RSIHsKKworQ1N0cmluZyB0b3BMZXZlbFBhdGgoKQor
eworICAgIGlmIChjb25zdCBjaGFyKiB0b3BMZXZlbERpcmVjdG9yeSA9IGdfZ2V0ZW52KCJXRUJL
SVRfVE9QX0xFVkVMIikpCisgICAgICAgIHJldHVybiB0b3BMZXZlbERpcmVjdG9yeTsKKworICAg
IC8vIElmIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB3YXNuJ3QgcHJvdmlkZWQgdGhlbiBhc3N1
bWUgd2Ugd2VyZSBidWlsdCBpbnRvCisgICAgLy8gV2ViS2l0QnVpbGQvRGVidWcgb3IgV2ViS2l0
QnVpbGQvUmVsZWFzZS4gT2J2aW91c2x5IHRoaXMgd2lsbCBmYWlsIGlmIHRoZSBidWlsZAorICAg
IC8vIGRpcmVjdG9yeSBpcyBub24tc3RhbmRhcmQsIGJ1dCB3ZSBjYW4ndCBkbyBtdWNoIG1vcmUg
YWJvdXQgdGhpcy4KKyAgICBHVW5pcXVlUHRyPGNoYXI+IHBhcmVudFBhdGgoZ19wYXRoX2dldF9k
aXJuYW1lKGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0aCgpLmRhdGEoKSkpOworICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gbGF5b3V0VGVzdHNQYXRoKGdfYnVpbGRfZmlsZW5hbWUocGFyZW50UGF0aC5nZXQo
KSwgIi4uIiwgIi4uIiwgIi4uIiwgbnVsbHB0cikpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gYWJz
b2x1dGVUb3BMZXZlbFBhdGgocmVhbHBhdGgobGF5b3V0VGVzdHNQYXRoLmdldCgpLCAwKSk7Cisg
ICAgcmV0dXJuIGFic29sdXRlVG9wTGV2ZWxQYXRoLmdldCgpOworfQorCitDU3RyaW5nIGdldE91
dHB1dERpcigpCit7CisgICAgY29uc3QgY2hhciogd2Via2l0T3V0cHV0RGlyID0gZ19nZXRlbnYo
IldFQktJVF9PVVRQVVRESVIiKTsKKyAgICBpZiAod2Via2l0T3V0cHV0RGlyKQorICAgICAgICBy
ZXR1cm4gd2Via2l0T3V0cHV0RGlyOworCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBvdXRwdXREaXIo
Z19idWlsZF9maWxlbmFtZSh0b3BMZXZlbFBhdGgoKS5kYXRhKCksICJXZWJLaXRCdWlsZCIsIG51
bGxwdHIpKTsKKyAgICByZXR1cm4gb3V0cHV0RGlyLmdldCgpOworfQorCitzdGF0aWMgQ1N0cmlu
ZyBnZXRGb250c1BhdGgoKQoreworICAgIENTdHJpbmcgd2Via2l0T3V0cHV0RGlyID0gZ2V0T3V0
cHV0RGlyKCk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBmb250c1BhdGgoZ19idWlsZF9maWxlbmFt
ZSh3ZWJraXRPdXRwdXREaXIuZGF0YSgpLCAiRGVwZW5kZW5jaWVzV1BFIiwgIlJvb3QiLCAid2Vi
a2l0Z3RrLXRlc3QtZm9udHMiLCBudWxscHRyKSk7CisgICAgaWYgKGdfZmlsZV90ZXN0KGZvbnRz
UGF0aC5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVTVF9FWElTVFMgfCBH
X0ZJTEVfVEVTVF9JU19ESVIpKSkKKyAgICAgICAgcmV0dXJuIGZvbnRzUGF0aC5nZXQoKTsKKwor
ICAgIC8vIFRyeSBhbHRlcm5hdGl2ZSBmb250cyBwYXRoLgorICAgIGZvbnRzUGF0aC5yZXNldChn
X2J1aWxkX2ZpbGVuYW1lKHdlYmtpdE91dHB1dERpci5kYXRhKCksICJ3ZWJraXRndGstdGVzdC1m
b250cyIsIE5VTEwpKTsKKyAgICBpZiAoZ19maWxlX3Rlc3QoZm9udHNQYXRoLmdldCgpLCBzdGF0
aWNfY2FzdDxHRmlsZVRlc3Q+KEdfRklMRV9URVNUX0VYSVNUUyB8IEdfRklMRV9URVNUX0lTX0RJ
UikpKQorICAgICAgICByZXR1cm4gZm9udHNQYXRoLmdldCgpOworCisgICAgcmV0dXJuIENTdHJp
bmcoKTsKK30KKwordm9pZCBhY3RpdmF0ZUZvbnRzKCkKK3sKKyAgICBpZiAoZ19nZXRlbnYoIldF
QktJVF9TS0lQX1dFQktJVFRFU1RSVU5ORVJfRk9OVENPTkZJR19JTklUSUFMSVpBVElPTiIpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBGY0luaXQoKTsKKworICAgIC8vIElmIGEgdGVzdCByZXN1
bHRlZCBhIGZvbnQgYmVpbmcgYWRkZWQgb3IgcmVtb3ZlZCB2aWEgdGhlIEBmb250LWZhY2UgcnVs
ZSwgdGhlbgorICAgIC8vIHdlIHdhbnQgdG8gcmVzZXQgdGhlIEZvbnRDb25maWcgY29uZmlndXJh
dGlvbiB0byBwcmV2ZW50IGl0IGZyb20gYWZmZWN0aW5nIG90aGVyIHRlc3RzLgorICAgIHN0YXRp
YyBpbnQgbnVtRm9udHMgPSAwOworICAgIEZjRm9udFNldCogYXBwRm9udFNldCA9IEZjQ29uZmln
R2V0Rm9udHMoMCwgRmNTZXRBcHBsaWNhdGlvbik7CisgICAgaWYgKGFwcEZvbnRTZXQgJiYgbnVt
Rm9udHMgJiYgYXBwRm9udFNldC0+bmZvbnQgPT0gbnVtRm9udHMpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIExvYWQgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSwgd2hpY2ggc2V0cyB1cCBwcm9w
ZXIgYWxpYXNlcyBmb3IgZmFtaWx5CisgICAgLy8gbmFtZXMgbGlrZSBzYW5zLCBzZXJpZiBhbmQg
bW9ub3NwYWNlLgorICAgIEZjQ29uZmlnKiBjb25maWcgPSBGY0NvbmZpZ0NyZWF0ZSgpOworICAg
IEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRDb25maWdGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKEZP
TlRTX0NPTkZfRElSLCAiZm9udHMuY29uZiIsIG51bGxwdHIpKTsKKyAgICBpZiAoIWdfZmlsZV90
ZXN0KGZvbnRDb25maWdGaWxlbmFtZS5nZXQoKSwgR19GSUxFX1RFU1RfSVNfUkVHVUxBUikpCisg
ICAgICAgIGdfZXJyb3IoIkNhbm5vdCBmaW5kIGZvbnRzLmNvbmYgYXQgJXNcbiIsIGZvbnRDb25m
aWdGaWxlbmFtZS5nZXQoKSk7CisgICAgaWYgKCFGY0NvbmZpZ1BhcnNlQW5kTG9hZChjb25maWcs
IHJlaW50ZXJwcmV0X2Nhc3Q8RmNDaGFyOCo+KGZvbnRDb25maWdGaWxlbmFtZS5nZXQoKSksIHRy
dWUpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZG4ndCBsb2FkIGZvbnQgY29uZmlndXJhdGlvbiBm
aWxlIGZyb206ICVzIiwgZm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpKTsKKworICAgIENTdHJpbmcg
Zm9udHNQYXRoID0gZ2V0Rm9udHNQYXRoKCk7CisgICAgaWYgKGZvbnRzUGF0aC5pc051bGwoKSkK
KyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IGxvY2F0ZSB0ZXN0IGZvbnRzIGF0ICVzLiBJcyBX
RUJLSVRfVE9QX0xFVkVMIHNldD8iLCBmb250c1BhdGguZGF0YSgpKTsKKworICAgIEdVbmlxdWVQ
dHI8R0Rpcj4gZm9udHNEaXJlY3RvcnkoZ19kaXJfb3Blbihmb250c1BhdGguZGF0YSgpLCAwLCBu
dWxscHRyKSk7CisgICAgd2hpbGUgKGNvbnN0IGNoYXIqIGRpcmVjdG9yeUVudHJ5ID0gZ19kaXJf
cmVhZF9uYW1lKGZvbnRzRGlyZWN0b3J5LmdldCgpKSkgeworICAgICAgICBpZiAoIWdfc3RyX2hh
c19zdWZmaXgoZGlyZWN0b3J5RW50cnksICIudHRmIikgJiYgIWdfc3RyX2hhc19zdWZmaXgoZGly
ZWN0b3J5RW50cnksICIub3RmIikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gZm9udFBhdGgoZ19idWlsZF9maWxlbmFtZShmb250c1BhdGguZGF0YSgp
LCBkaXJlY3RvcnlFbnRyeSwgbnVsbHB0cikpOworICAgICAgICBpZiAoIUZjQ29uZmlnQXBwRm9u
dEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPihmb250UGF0
aC5nZXQoKSkpKQorICAgICAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IGxvYWQgZm9udCBhdCAl
cyEiLCBmb250UGF0aC5nZXQoKSk7CisgICAgfQorCisgICAgLy8gQWhlbSBpcyB1c2VkIGJ5IG1h
bnkgbGF5b3V0IHRlc3RzLgorICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGFoZW1Gb250RmlsZW5hbWUo
Z19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgIkFIRU1fX19fLlRURiIsIG51bGxwdHIp
KTsKKyAgICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9j
YXN0PEZjQ2hhcjgqPihhaGVtRm9udEZpbGVuYW1lLmdldCgpKSkpCisgICAgICAgIGdfZXJyb3Io
IkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgYWhlbUZvbnRGaWxlbmFtZS5nZXQoKSk7IAor
CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZvbnRGaWxlbmFtZXNbXSA9IHsKKyAgICAgICAgIldl
YktpdFdlaWdodFdhdGNoZXIxMDAudHRmIiwKKyAgICAgICAgIldlYktpdFdlaWdodFdhdGNoZXIy
MDAudHRmIiwKKyAgICAgICAgIldlYktpdFdlaWdodFdhdGNoZXIzMDAudHRmIiwKKyAgICAgICAg
IldlYktpdFdlaWdodFdhdGNoZXI0MDAudHRmIiwKKyAgICAgICAgIldlYktpdFdlaWdodFdhdGNo
ZXI1MDAudHRmIiwKKyAgICAgICAgIldlYktpdFdlaWdodFdhdGNoZXI2MDAudHRmIiwKKyAgICAg
ICAgIldlYktpdFdlaWdodFdhdGNoZXI3MDAudHRmIiwKKyAgICAgICAgIldlYktpdFdlaWdodFdh
dGNoZXI4MDAudHRmIiwKKyAgICAgICAgIldlYktpdFdlaWdodFdhdGNoZXI5MDAudHRmIiwKKyAg
ICAgICAgMAorICAgIH07CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgZm9udEZpbGVuYW1lc1tp
XTsgKytpKSB7CisgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRGaWxlbmFtZShnX2J1aWxk
X2ZpbGVuYW1lKEZPTlRTX0NPTkZfRElSLCAiLi4iLCAiLi4iLCAiZm9udHMiLCBmb250RmlsZW5h
bWVzW2ldLCBudWxscHRyKSk7CisgICAgICAgIGlmICghRmNDb25maWdBcHBGb250QWRkRmlsZShj
b25maWcsIHJlaW50ZXJwcmV0X2Nhc3Q8RmNDaGFyOCo+KGZvbnRGaWxlbmFtZS5nZXQoKSkpKQor
ICAgICAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IGxvYWQgZm9udCBhdCAlcyEiLCBmb250Rmls
ZW5hbWUuZ2V0KCkpOyAKKyAgICB9CisKKyAgICAvLyBBIGZvbnQgd2l0aCBubyB2YWxpZCBGb250
Y29uZmlnIGVuY29kaW5nIHRvIHRlc3QgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ3NDUyCisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9udFdpdGhOb1ZhbGlkRW5jb2Rp
bmdGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKEZPTlRTX0NPTkZfRElSLCAiRm9udFdpdGhOb1Zh
bGlkRW5jb2RpbmcuZm9uIiwgbnVsbHB0cikpOworICAgIGlmICghRmNDb25maWdBcHBGb250QWRk
RmlsZShjb25maWcsIHJlaW50ZXJwcmV0X2Nhc3Q8RmNDaGFyOCo+KGZvbnRXaXRoTm9WYWxpZEVu
Y29kaW5nRmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IGxvYWQg
Zm9udCBhdCAlcyEiLCBmb250V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lLmdldCgpKTsgCisK
KyAgICBpZiAoIUZjQ29uZmlnU2V0Q3VycmVudChjb25maWcpKQorICAgICAgICBnX2Vycm9yKCJD
b3VsZCBub3Qgc2V0IHRoZSBjdXJyZW50IGZvbnQgY29uZmlndXJhdGlvbiEiKTsKKworICAgIG51
bUZvbnRzID0gRmNDb25maWdHZXRGb250cyhjb25maWcsIEZjU2V0QXBwbGljYXRpb24pLT5uZm9u
dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI0MDgxZmYzYTI5Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUv
SW5qZWN0ZWRCdW5kbGVXUEUuY3BwCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkluamVjdGVkQnVuZGxlLmgiCisKK25hbWVzcGFjZSBXVFIgeworCit2b2lkIEluamVj
dGVkQnVuZGxlOjpwbGF0Zm9ybUluaXRpYWxpemUoV0tUeXBlUmVmKQoreworfQorCit9IC8vIG5h
bWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjZmMTRmZmRkMDU2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5jcHAKQEAgLTAs
MCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdFJ1bm5lci5oIgorCituYW1l
c3BhY2UgV1RSIHsKKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBhdGhU
b0xvY2FsUmVzb3VyY2UoSlNTdHJpbmdSZWYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjppbnNwZWN0b3JUZXN0U3R1YlVS
TCgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIiKTsKK30K
Kwordm9pZCBUZXN0UnVubmVyOjppbnZhbGlkYXRlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoKQor
eworICAgIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuc3RvcCgpOworfQorCit2b2lkIFRlc3RS
dW5uZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW5p
dGlhbGl6ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySWZOZWVkZWQoKQoreworICAgIGlmICghbV93
YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3dhaXRUb0R1bXBX
YXRjaGRvZ1RpbWVyLnN0YXJ0T25lU2hvdChtX3RpbWVvdXQgLyAxMDAwLjApOworfQorCisKK30g
Ly8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRhODYyZDY5YWZjCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtMCwwICsxLDQ3IEBACitmaW5kX3BhY2thZ2UoTGliR0JNIFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKFdQRUJhY2tlbmQtbWVzYSBSRVFVSVJFRCkKKworYWRkX2N1c3RvbV90YXJnZXQoV2ViS2l0
VGVzdFJ1bm5lci1mb3J3YXJkaW5nLWhlYWRlcnMKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRB
QkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5w
bCAtLWluY2x1ZGUtcGF0aCAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0gLS1vdXRwdXQgJHtGT1JX
QVJESU5HX0hFQURFUlNfRElSfSAtLXBsYXRmb3JtIHdwZQorKQorCitzZXQoRm9yd2FyZGluZ0hl
YWRlcnNGb3JXZWJLaXRUZXN0UnVubmVyX05BTUUgV2ViS2l0VGVzdFJ1bm5lci1mb3J3YXJkaW5n
LWhlYWRlcnMpCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUworICAgICR7
V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9jYWlyby9UZXN0SW52b2NhdGlvbkNhaXJvLmNwcAorCisg
ICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcAor
ICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHAK
KyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAK
KyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAor
ICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvbWFpbi5jcHAKKykKKworbGlzdChBUFBF
TkQgV2ViS2l0VGVzdFJ1bm5lcl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgJHtXRUJLSVRfVEVT
VFJVTk5FUl9ESVJ9L0luamVjdGVkQnVuZGxlL3dwZQorICAgICR7Rk9SV0FSRElOR19IRUFERVJT
X0RJUn0KKyAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KKyAgICAke0dMSUJfSU5DTFVERV9ESVJT
fQorICAgICR7TElCR0JNX0lOQ0xVREVfRElSU30KKyAgICAke1dQRV9NRVNBX0lOQ0xVREVfRElS
U30KKykKKworbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9MSUJSQVJJRVMKKyAgICAke0NB
SVJPX0xJQlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7TElCR0JNX0xJQlJB
UklFU30KKyAgICAke1dQRV9NRVNBX0xJQlJBUklFU30KKykKKworbGlzdChBUFBFTkQgV2ViS2l0
VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX1NPVVJDRVMKKyAgICAke1dFQktJVF9URVNUUlVOTkVS
X0lOSkVDVEVEQlVORExFX0RJUn0vd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcAor
ICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudFdQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVO
RExFX0RJUn0vd3BlL0FjdGl2YXRlRm9udHNXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5F
Ul9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHAKKyAgICAke1dF
QktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vd3BlL1Rlc3RSdW5uZXJXUEUuY3Bw
CispCisKK2FkZF9kZWZpbml0aW9ucygKKyAgICAtREZPTlRTX0NPTkZfRElSPSIke1RPT0xTX0RJ
Un0vV2ViS2l0VGVzdFJ1bm5lci9ndGsvZm9udHMiCisgICAgLURUT1BfTEVWRUxfRElSPSIke0NN
QUtFX1NPVVJDRV9ESVJ9IgorKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3
LmgKaW5kZXggMGYxNTg2MTNkMmEuLjg3ZThmN2RhNjA0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTUwLDYgKzUwLDExIEBAIHR5cGVkZWYgc3RydWN0IF9H
dGtXaWRnZXQgR3RrV2lkZ2V0OwogdHlwZWRlZiBXS1ZpZXdSZWYgUGxhdGZvcm1XS1ZpZXc7CiB0
eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaW5kb3c7CiB0eXBlZGVmIGNhaXJvX3N1cmZhY2Vf
dCAqUGxhdGZvcm1JbWFnZTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKK2NsYXNzIEhlYWRsZXNzVmll
d0JhY2tlbmQ7Cit0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdLVmlldzsKK3R5cGVkZWYgSGVh
ZGxlc3NWaWV3QmFja2VuZCogUGxhdGZvcm1XaW5kb3c7Cit0eXBlZGVmIGNhaXJvX3N1cmZhY2Vf
dCogUGxhdGZvcm1JbWFnZTsKICNlbmRpZgogCiBuYW1lc3BhY2UgV1RSIHsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMWNkZjdiMDdhMDEuLmFmZGQ5YTgy
MmRlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNzY4
LDcgKzc2OCw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRW
YWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgLy8gc29tZSBvdGhlciBjb2Rl
IGRvaW5nIHRoaXMsIGl0IHNob3VsZCBwcm9iYWJseSBiZSByZXNwb25zaWJsZSBmb3IgY2xlYW51
cCB0b28uCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhvcHRpb25zKTsK
IAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9S
TShXUEUpCiAgICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0
YXRlQ2hhbmdlZCh0cnVlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi41MWVlMGZjMmU1NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEsMTIxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudFNlbmRlclByb3h5LmgiCisKK25hbWVzcGFj
ZSBXVFIgeworCitFdmVudFNlbmRlclByb3h5OjpFdmVudFNlbmRlclByb3h5KFRlc3RDb250cm9s
bGVyKiB0ZXN0Q29udHJvbGxlcikKKyAgICA6IG1fdGVzdENvbnRyb2xsZXIodGVzdENvbnRyb2xs
ZXIpCisgICAgLCBtX3RpbWUoMCkKKyAgICAsIG1fbGVmdE1vdXNlQnV0dG9uRG93bihmYWxzZSkK
KyAgICAsIG1fY2xpY2tDb3VudCgwKQorICAgICwgbV9jbGlja1RpbWUoMCkKKyAgICAsIG1fY2xp
Y2tCdXR0b24oa1dLRXZlbnRNb3VzZUJ1dHRvbk5vQnV0dG9uKQoreworfQorCitFdmVudFNlbmRl
clByb3h5Ojp+RXZlbnRTZW5kZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6bW91c2VEb3duKHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJzKQoreworfQorCit2b2lkIEV2
ZW50U2VuZGVyUHJveHk6Om1vdXNlVXAodW5zaWduZWQsIFdLRXZlbnRNb2RpZmllcnMpCit7Cit9
CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VNb3ZlVG8oZG91YmxlLCBkb3VibGUpCit7
Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeShpbnQsIGludCkKK3sK
K30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoaW50LCBpbnQsIGludCwgaW50KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCwgaW50LCBib29sKQoreworfQorCit2
b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCkKK3sKK30KKwordm9pZCBFdmVu
dFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUmVmLCBXS0V2ZW50TW9kaWZpZXJzLCB1bnNp
Z25lZCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjphZGRUb3VjaFBvaW50KGludCwg
aW50KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnVwZGF0ZVRvdWNoUG9pbnQoaW50
LCBpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpzZXRUb3VjaE1vZGlm
aWVyKFdLRXZlbnRNb2RpZmllcnMsIGJvb2wpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6c2V0VG91Y2hQb2ludFJhZGl1cyhpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRl
clByb3h5Ojp0b3VjaFN0YXJ0KCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3Vj
aE1vdmUoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnRvdWNoRW5kKCkKK3sKK30K
Kwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaENhbmNlbCgpCit7Cit9CisKK3ZvaWQgRXZl
bnRTZW5kZXJQcm94eTo6Y2xlYXJUb3VjaFBvaW50cygpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6cmVsZWFzZVRvdWNoUG9pbnQoaW50KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OmNhbmNlbFRvdWNoUG9pbnQoaW50KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tl
bmQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU2MGI0MGEzZWZiCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3
QmFja2VuZC5jcHAKQEAgLTAsMCArMSwyNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhl
YWRsZXNzVmlld0JhY2tlbmQuaCIKKworI2luY2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVkZSA8ZmNu
dGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworLy8gRklYTUU6IERlcGxveSBnb29kIHByYWN0
aWNlcyBhbmQgY2xlYW4gdXAgR0JNIHJlc291cmNlcyBhdCBwcm9jZXNzIGV4aXQuCitzdGF0aWMg
RUdMRGlzcGxheSBnZXRFR0xEaXNwbGF5KCkKK3sKKyAgICBzdGF0aWMgRUdMRGlzcGxheSBzX2Rp
c3BsYXkgPSBFR0xfTk9fRElTUExBWTsKKyAgICBpZiAoc19kaXNwbGF5ID09IEVHTF9OT19ESVNQ
TEFZKSB7CisgICAgICAgIGludCBmZCA9IG9wZW4oIi9kZXYvZHJpL3JlbmRlckQxMjgiLCBPX1JE
V1IgfCBPX0NMT0VYRUMgfCBPX05PQ1RUWSB8IE9fTk9OQkxPQ0spOworICAgICAgICBpZiAoZmQg
PCAwKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIHN0cnVj
dCBnYm1fZGV2aWNlKiBkZXZpY2UgPSBnYm1fY3JlYXRlX2RldmljZShmZCk7CisgICAgICAgIGlm
ICghZGV2aWNlKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAg
IEVHTERpc3BsYXkgZGlzcGxheSA9IGVnbEdldERpc3BsYXkoZGV2aWNlKTsKKyAgICAgICAgaWYg
KGRpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgICAgICAgICByZXR1cm4gRUdMX05PX0RJ
U1BMQVk7CisKKyAgICAgICAgaWYgKCFlZ2xJbml0aWFsaXplKGRpc3BsYXksIG51bGxwdHIsIG51
bGxwdHIpKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIGlm
ICghZWdsQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSkpCisgICAgICAgICAgICByZXR1cm4gRUdM
X05PX0RJU1BMQVk7CisKKyAgICAgICAgc19kaXNwbGF5ID0gZGlzcGxheTsKKyAgICB9CisKKyAg
ICByZXR1cm4gc19kaXNwbGF5OworfQorCitIZWFkbGVzc1ZpZXdCYWNrZW5kOjpIZWFkbGVzc1Zp
ZXdCYWNrZW5kKCkKK3sKKyAgICBtX2VnbC5kaXNwbGF5ID0gZ2V0RUdMRGlzcGxheSgpOworCisg
ICAgc3RhdGljIGNvbnN0IEVHTGludCBjb25maWdBdHRyaWJ1dGVzWzEzXSA9IHsKKyAgICAgICAg
RUdMX1NVUkZBQ0VfVFlQRSwgRUdMX1dJTkRPV19CSVQsCisgICAgICAgIEVHTF9SRURfU0laRSwg
MSwKKyAgICAgICAgRUdMX0dSRUVOX1NJWkUsIDEsCisgICAgICAgIEVHTF9CTFVFX1NJWkUsIDEs
CisgICAgICAgIEVHTF9BTFBIQV9TSVpFLCAxLAorICAgICAgICBFR0xfUkVOREVSQUJMRV9UWVBF
LCBFR0xfT1BFTkdMX0VTMl9CSVQsCisgICAgICAgIEVHTF9OT05FCisgICAgfTsKKworICAgIEVH
TGludCBudW1Db25maWdzOworICAgIEVHTEJvb2xlYW4gcmV0ID0gZWdsQ2hvb3NlQ29uZmlnKG1f
ZWdsLmRpc3BsYXksIGNvbmZpZ0F0dHJpYnV0ZXMsICZtX2VnbC5jb25maWcsIDEsICZudW1Db25m
aWdzKTsKKyAgICBpZiAoIXJldCB8fCAhbnVtQ29uZmlncykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgc3RhdGljIGNvbnN0IEVHTGludCBjb250ZXh0QXR0cmlidXRlc1szXSA9IHsKKyAgICAgICAg
RUdMX0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04sIDIsCisgICAgICAgIEVHTF9OT05FCisgICAgfTsK
KworICAgIG1fZWdsLmNvbnRleHQgPSBlZ2xDcmVhdGVDb250ZXh0KG1fZWdsLmRpc3BsYXksIG1f
ZWdsLmNvbmZpZywgRUdMX05PX0NPTlRFWFQsIGNvbnRleHRBdHRyaWJ1dGVzKTsKKyAgICBpZiAo
bV9lZ2wuY29udGV4dCA9PSBFR0xfTk9fQ09OVEVYVCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKCFlZ2xNYWtlQ3VycmVudChtX2VnbC5kaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05P
X1NVUkZBQ0UsIG1fZWdsLmNvbnRleHQpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2VnbC5j
cmVhdGVJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DPihl
Z2xHZXRQcm9jQWRkcmVzcygiZWdsQ3JlYXRlSW1hZ2VLSFIiKSk7CisgICAgbV9lZ2wuZGVzdHJv
eUltYWdlID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xERVNUUk9ZSU1BR0VLSFJQUk9DPihlZ2xH
ZXRQcm9jQWRkcmVzcygiZWdsRGVzdHJveUltYWdlS0hSIikpOworICAgIG1fZWdsLmltYWdlVGFy
Z2V0VGV4dHVyZTJET0VTID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTEVHTElNQUdFVEFSR0VUVEVY
VFVSRTJET0VTUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsRUdMSW1hZ2VUYXJnZXRUZXh0dXJl
MkRPRVMiKSk7CisKKyAgICBtX2V4cG9ydGFibGUgPSB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhw
b3J0YWJsZV9kbWFfYnVmX2NyZWF0ZSgmc19leHBvcnRhYmxlQ2xpZW50LCB0aGlzKTsKKworICAg
IG1fdXBkYXRlU291cmNlID0gZ190aW1lb3V0X3NvdXJjZV9uZXcobV9mcmFtZVJhdGUgLyAxMDAw
KTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV91cGRhdGVTb3VyY2UsCisgICAgICAgIFtd
KGdwb2ludGVyIGRhdGEpIC0+IGdib29sZWFuIHsKKyAgICAgICAgICAgIGF1dG8mIGJhY2tlbmQg
PSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KGRhdGEpOworICAgICAgICAgICAg
YmFja2VuZC5wZXJmb3JtVXBkYXRlKCk7CisgICAgICAgICAgICByZXR1cm4gVFJVRTsKKyAgICAg
ICAgfSwgdGhpcywgbnVsbHB0cik7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1fdXBkYXRlU291cmNl
LCBnX21haW5fY29udGV4dF9kZWZhdWx0KCkpOworfQorCitIZWFkbGVzc1ZpZXdCYWNrZW5kOjp+
SGVhZGxlc3NWaWV3QmFja2VuZCgpCit7CisgICAgaWYgKG1fdXBkYXRlU291cmNlKQorICAgICAg
ICBnX3NvdXJjZV9kZXN0cm95KG1fdXBkYXRlU291cmNlKTsKKworICAgIGlmIChhdXRvIGltYWdl
ID0gc3RkOjpnZXQ8MD4obV9wZW5kaW5nSW1hZ2Uuc2Vjb25kKSkKKyAgICAgICAgbV9lZ2wuZGVz
dHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKKyAgICBpZiAoYXV0byBpbWFnZSA9IHN0
ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSkKKyAgICAgICAgbV9lZ2wuZGVzdHJveUlt
YWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKKworICAgIGZvciAoYXV0byBpdCA6IG1fZXhwb3J0
TWFwKSB7CisgICAgICAgIGludCBmZCA9IGl0LnNlY29uZDsKKyAgICAgICAgaWYgKGZkID49IDAp
CisgICAgICAgICAgICBjbG9zZShmZCk7CisgICAgfQorCisgICAgaWYgKG1fZWdsLmNvbnRleHQp
CisgICAgICAgIGVnbERlc3Ryb3lDb250ZXh0KG1fZWdsLmRpc3BsYXksIG1fZWdsLmNvbnRleHQp
OworfQorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogSGVhZGxlc3NWaWV3QmFja2VuZDo6YmFj
a2VuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRh
YmxlX2RtYV9idWZfZ2V0X3ZpZXdfYmFja2VuZChtX2V4cG9ydGFibGUpOworfQorCitjYWlyb19z
dXJmYWNlX3QqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmNyZWF0ZVNuYXBzaG90KCkKK3sKKyAgICBw
ZXJmb3JtVXBkYXRlKCk7CisKKyAgICBFR0xJbWFnZUtIUiBpbWFnZSA9IHN0ZDo6Z2V0PDA+KG1f
bG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIHVpbnQzMl90IHdpZHRoID0gc3RkOjpnZXQ8MT4obV9sb2NrZWRJbWFnZS5z
ZWNvbmQpOworICAgIHVpbnQzMl90IGhlaWdodCA9IHN0ZDo6Z2V0PDI+KG1fbG9ja2VkSW1hZ2Uu
c2Vjb25kKTsKKworICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IG5ldyB1aW50OF90WzQgKiB3aWR0aCAq
IGhlaWdodF07CisgICAgYm9vbCBzdWNjZXNzZnVsU25hcHNob3QgPSBmYWxzZTsKKworICAgIG1h
a2VDdXJyZW50KCk7CisKKyAgICBHTHVpbnQgaW1hZ2VUZXh0dXJlOworICAgIGdsR2VuVGV4dHVy
ZXMoMSwgJmltYWdlVGV4dHVyZSk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBp
bWFnZVRleHR1cmUpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhU
VVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRV
UkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbFRleFBhcmFt
ZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0Up
OworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwg
R0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2xUZXhJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIEdM
X0JHUkFfRVhULCB3aWR0aCwgaGVpZ2h0LCAwLCBHTF9CR1JBX0VYVCwgR0xfVU5TSUdORURfQllU
RSwgbnVsbHB0cik7CisKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRleHR1cmUyRE9FUyhHTF9URVhU
VVJFXzJELCBpbWFnZSk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKKwor
ICAgIEdMdWludCBpbWFnZUZyYW1lYnVmZmVyOworICAgIGdsR2VuRnJhbWVidWZmZXJzKDEsICZp
bWFnZUZyYW1lYnVmZmVyKTsKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwg
aW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFNRUJV
RkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIGltYWdlVGV4dHVyZSwg
MCk7CisKKyAgICBnbEZsdXNoKCk7CisgICAgaWYgKGdsQ2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhH
TF9GUkFNRUJVRkZFUikgPT0gR0xfRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKKyAgICAgICAgZ2xS
ZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIEdMX0JHUkFfRVhULCBHTF9VTlNJR05FRF9C
WVRFLCBidWZmZXIpOworICAgICAgICBzdWNjZXNzZnVsU25hcHNob3QgPSB0cnVlOworICAgIH0K
KworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCAwKTsKKyAgICBnbERlbGV0
ZUZyYW1lYnVmZmVycygxLCAmaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xEZWxldGVUZXh0dXJl
cygxLCAmaW1hZ2VUZXh0dXJlKTsKKworICAgIGlmICghc3VjY2Vzc2Z1bFNuYXBzaG90KSB7Cisg
ICAgICAgIGRlbGV0ZVtdIGJ1ZmZlcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
CisgICAgY2Fpcm9fc3VyZmFjZV90KiBpbWFnZVN1cmZhY2UgPSBjYWlyb19pbWFnZV9zdXJmYWNl
X2NyZWF0ZV9mb3JfZGF0YShidWZmZXIsCisgICAgICAgIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHdp
ZHRoLCBoZWlnaHQsIGNhaXJvX2Zvcm1hdF9zdHJpZGVfZm9yX3dpZHRoKENBSVJPX0ZPUk1BVF9B
UkdCMzIsIHdpZHRoKSk7CisgICAgY2Fpcm9fc3VyZmFjZV9tYXJrX2RpcnR5KGltYWdlU3VyZmFj
ZSk7CisKKyAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IGJ1ZmZlcktleTsKKyAgICBj
YWlyb19zdXJmYWNlX3NldF91c2VyX2RhdGEoaW1hZ2VTdXJmYWNlLCAmYnVmZmVyS2V5LCBidWZm
ZXIsCisgICAgICAgIFtdKHZvaWQqIGRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8qIGJ1ZmZlciA9
IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhKTsKKyAgICAgICAgICAgIGRlbGV0ZVtdIGJ1ZmZl
cjsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gaW1hZ2VTdXJmYWNlOworfQorCitib29sIEhl
YWRsZXNzVmlld0JhY2tlbmQ6Om1ha2VDdXJyZW50KCkKK3sKKyAgICByZXR1cm4gZWdsTWFrZUN1
cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBtX2Vn
bC5jb250ZXh0KTsKK30KKwordm9pZCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpwZXJmb3JtVXBkYXRl
KCkKK3sKKyAgICBpZiAoIW1fcGVuZGluZ0ltYWdlLmZpcnN0KQorICAgICAgICByZXR1cm47CisK
KyAgICB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2Rpc3BhdGNoX2Zy
YW1lX2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7CisgICAgaWYgKG1fbG9ja2VkSW1hZ2UuZmlyc3Qp
IHsKKyAgICAgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kaXNw
YXRjaF9yZWxlYXNlX2J1ZmZlcihtX2V4cG9ydGFibGUsIG1fbG9ja2VkSW1hZ2UuZmlyc3QpOwor
ICAgICAgICBtX2VnbC5kZXN0cm95SW1hZ2UobV9lZ2wuZGlzcGxheSwgc3RkOjpnZXQ8MD4obV9s
b2NrZWRJbWFnZS5zZWNvbmQpKTsKKyAgICB9CisKKyAgICBtX2xvY2tlZEltYWdlID0gbV9wZW5k
aW5nSW1hZ2U7CisgICAgbV9wZW5kaW5nSW1hZ2UgPSBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6
dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IHsgfTsKK30KKworc3RydWN0
IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50IEhlYWRsZXNz
Vmlld0JhY2tlbmQ6OnNfZXhwb3J0YWJsZUNsaWVudCA9IHsKKyAgICAvLyBleHBvcnRfZG1hX2J1
ZgorICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0
YWJsZV9kbWFfYnVmX2RhdGEqIGltYWdlRGF0YSkKKyAgICB7CisgICAgICAgIGF1dG8mIGJhY2tl
bmQgPSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KGRhdGEpOworCisgICAgICAg
IGF1dG8gaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgpOworICAgICAgICBpZiAoaW1hZ2VE
YXRhLT5mZCA+PSAwKSB7CisgICAgICAgICAgICBhc3NlcnQoYmFja2VuZC5tX2V4cG9ydE1hcC5m
aW5kKGltYWdlRGF0YS0+aGFuZGxlKSA9PSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgpKTsKKwor
ICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmluc2VydCh7IGltYWdlRGF0YS0+
aGFuZGxlLCBpbWFnZURhdGEtPmZkIH0pLmZpcnN0OworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSkg
IT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisgICAgICAgICAgICBpdCA9IGJhY2tlbmQu
bV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSk7CisgICAgICAgIH0KKworICAgICAg
ICBhc3NlcnQoaXQgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisgICAgICAgIHVpbnQz
Ml90IGhhbmRsZSA9IGl0LT5maXJzdDsKKyAgICAgICAgaW50MzJfdCBmZCA9IGl0LT5zZWNvbmQ7
CisKKyAgICAgICAgYmFja2VuZC5tYWtlQ3VycmVudCgpOworCisgICAgICAgIEVHTGludCBhdHRy
aWJ1dGVzW10gPSB7CisgICAgICAgICAgICBFR0xfV0lEVEgsIHN0YXRpY19jYXN0PEVHTGludD4o
aW1hZ2VEYXRhLT53aWR0aCksCisgICAgICAgICAgICBFR0xfSEVJR0hULCBzdGF0aWNfY2FzdDxF
R0xpbnQ+KGltYWdlRGF0YS0+aGVpZ2h0KSwKKyAgICAgICAgICAgIEVHTF9MSU5VWF9EUk1fRk9V
UkNDX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPmZvcm1hdCksCisgICAgICAg
ICAgICBFR0xfRE1BX0JVRl9QTEFORTBfRkRfRVhULCBmZCwKKyAgICAgICAgICAgIEVHTF9ETUFf
QlVGX1BMQU5FMF9PRkZTRVRfRVhULCAwLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUw
X1BJVENIX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPnN0cmlkZSksCisgICAg
ICAgICAgICBFR0xfTk9ORSwKKyAgICAgICAgfTsKKyAgICAgICAgRUdMSW1hZ2VLSFIgaW1hZ2Ug
PSBiYWNrZW5kLm1fZWdsLmNyZWF0ZUltYWdlKGJhY2tlbmQubV9lZ2wuZGlzcGxheSwgRUdMX05P
X0NPTlRFWFQsIEVHTF9MSU5VWF9ETUFfQlVGX0VYVCwgbnVsbHB0ciwgYXR0cmlidXRlcyk7Cisg
ICAgICAgIGJhY2tlbmQubV9wZW5kaW5nSW1hZ2UgPSB7IGltYWdlRGF0YS0+aGFuZGxlLCBzdGQ6
Om1ha2VfdHVwbGUoaW1hZ2UsIGltYWdlRGF0YS0+d2lkdGgsIGltYWdlRGF0YS0+aGVpZ2h0KSB9
OworICAgIH0sCit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVh
ZGxlc3NWaWV3QmFja2VuZC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NW
aWV3QmFja2VuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjE4
NjEyMWE4YwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hl
YWRsZXNzVmlld0JhY2tlbmQuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
Z2JtLmg+CisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2luY2x1ZGUgPEVHTC9lZ2xleHQuaD4KKyNp
bmNsdWRlIDxHTEVTMi9nbDIuaD4KKyNpbmNsdWRlIDxHTEVTMi9nbDJleHQuaD4KKyNpbmNsdWRl
IDxjYWlyby5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgor
I2luY2x1ZGUgPHdwZS1tZXNhL3ZpZXctYmFja2VuZC1leHBvcnRhYmxlLWRtYS1idWYuaD4KKwor
Y2xhc3MgSGVhZGxlc3NWaWV3QmFja2VuZCB7CitwdWJsaWM6CisgICAgSGVhZGxlc3NWaWV3QmFj
a2VuZCgpOworICAgIH5IZWFkbGVzc1ZpZXdCYWNrZW5kKCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Zp
ZXdfYmFja2VuZCogYmFja2VuZCgpIGNvbnN0OworCisgICAgY2Fpcm9fc3VyZmFjZV90KiBjcmVh
dGVTbmFwc2hvdCgpOworCitwcml2YXRlOgorICAgIGJvb2wgbWFrZUN1cnJlbnQoKTsKKyAgICB2
b2lkIHBlcmZvcm1VcGRhdGUoKTsKKworICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19i
YWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jbGllbnQgc19leHBvcnRhYmxlQ2xpZW50OworCisg
ICAgc3RydWN0IHsKKyAgICAgICAgRUdMRGlzcGxheSBkaXNwbGF5OworICAgICAgICBFR0xDb25m
aWcgY29uZmlnOworICAgICAgICBFR0xDb250ZXh0IGNvbnRleHQ7CisKKyAgICAgICAgUEZORUdM
Q1JFQVRFSU1BR0VLSFJQUk9DIGNyZWF0ZUltYWdlOworICAgICAgICBQRk5FR0xERVNUUk9ZSU1B
R0VLSFJQUk9DIGRlc3Ryb3lJbWFnZTsKKyAgICAgICAgUEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRV
UkUyRE9FU1BST0MgaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVM7CisgICAgfSBtX2VnbDsKKworICAg
IHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmKiBtX2V4cG9y
dGFibGU7CisKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8dWludDMyX3QsIGludDMyX3Q+IG1fZXhw
b3J0TWFwOworICAgIHN0ZDo6cGFpcjx1aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwg
dWludDMyX3QsIHVpbnQzMl90Pj4gbV9wZW5kaW5nSW1hZ2UgeyB9OworICAgIHN0ZDo6cGFpcjx1
aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4gbV9s
b2NrZWRJbWFnZSB7IH07CisKKyAgICBHU291cmNlKiBtX3VwZGF0ZVNvdXJjZTsKKyAgICBnaW50
NjQgbV9mcmFtZVJhdGUgeyBHX1VTRUNfUEVSX1NFQyAvIDYwIH07Cit9OwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkxNjhhOTM0YzEwCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcApAQCAt
MCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3Lmgi
CisKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisjaW5jbHVkZSA8V2ViS2l0L1dL
SW1hZ2VDYWlyby5oPgorI2luY2x1ZGUgPGNhaXJvLmg+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2lu
Y2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCituYW1lc3BhY2UgV1RS
IHsKKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlv
blJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKKyAgICA6IG1f
d2luZG93SXNLZXkodHJ1ZSkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQoreworICAgIG1fd2lu
ZG93ID0gbmV3IEhlYWRsZXNzVmlld0JhY2tlbmQ7CisgICAgbV92aWV3ID0gV0tWaWV3Q3JlYXRl
V2l0aFZpZXdCYWNrZW5kKG1fd2luZG93LT5iYWNrZW5kKCksIGNvbmZpZ3VyYXRpb24pOworfQor
CitQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQoreworICAgIGRlbGV0ZSBtX3dp
bmRvdzsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2lnbmVkLCB1bnNp
Z25lZCwgV2ViVmlld1NpemluZ01vZGUpCit7Cit9CisKK1dLUGFnZVJlZiBQbGF0Zm9ybVdlYlZp
ZXc6OnBhZ2UoKQoreworICAgIHJldHVybiBXS1ZpZXdHZXRQYWdlKG1fdmlldyk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCit7Cit9CisKK1dLUmVjdCBQbGF0Zm9ybVdlYlZp
ZXc6OndpbmRvd0ZyYW1lKCkKK3sKKyAgICByZXR1cm4gV0tSZWN0IHsgMCwgMCwgMSwgMSB9Owor
fQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93RnJhbWUoV0tSZWN0LCBXZWJWaWV3
U2l6aW5nTW9kZSkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmRpZEluaXRpYWxpemVD
bGllbnRzKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZENocm9tZUlucHV0Rmll
bGQoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVtb3ZlQ2hyb21lSW5wdXRGaWVs
ZCgpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjphZGRUb1dpbmRvdygpCit7Cit9CisK
K3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZW1vdmVGcm9tV2luZG93KCkKK3sKK30KKwordm9pZCBQ
bGF0Zm9ybVdlYlZpZXc6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCit7CisgICAg
bV93aW5kb3dJc0tleSA9IHdpbmRvd0lzS2V5OworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6
bWFrZVdlYlZpZXdGaXJzdFJlc3BvbmRlcigpCit7Cit9CisKK2NhaXJvX3N1cmZhY2VfdCogUGxh
dGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKK3sKKyAgICB7CisgICAgICAgIHN0
cnVjdCBUaW1lb3V0VGltZXIgeworICAgICAgICAgICAgVGltZW91dFRpbWVyKCkKKyAgICAgICAg
ICAgICAgICA6IHRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbWVvdXRUaW1lcjo6Zmly
ZWQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGltZXIuc3RhcnRPbmVTaG90KDEu
MCAvIDYwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBmaXJlZCgpIHsgUnVu
TG9vcDo6bWFpbigpLnN0b3AoKTsgfQorICAgICAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZW91
dFRpbWVyPiB0aW1lcjsKKyAgICAgICAgfSB0aW1lb3V0VGltZXI7CisKKyAgICAgICAgUnVuTG9v
cDo6bWFpbigpLnJ1bigpOworICAgIH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VTdXJm
YWNlID0gbV93aW5kb3ctPmNyZWF0ZVNuYXBzaG90KCk7CisgICAgcmV0dXJuIGltYWdlU3VyZmFj
ZTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQo
ZmxvYXQpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXROYXZpZ2F0aW9uR2VzdHVy
ZXNFbmFibGVkKGJvb2wpCit7Cit9CisKK2Jvb2wgUGxhdGZvcm1XZWJWaWV3Ojp2aWV3U3VwcG9y
dHNPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJikgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvcmNlV2luZG93RnJhbWVzQ2hhbmdlZCgpCit7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4wY2MzZGVkZTk4NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcApAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgPGdsaWIuaD4K
KyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIu
aD4KKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURvbmUo
KQoreworICAgIFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xs
ZXI6OnNldEhpZGRlbihib29sKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bUluaXRpYWxpemUoKQoreworfQorCitXS1ByZWZlcmVuY2VzUmVmIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybVByZWZlcmVuY2VzKCkKK3sKKyAgICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVmZXJl
bmNlcyhtX3BhZ2VHcm91cC5nZXQoKSk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtRGVzdHJveSgpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlh
bGl6ZUNvbnRleHQoKQoreworfQorCitzdGF0aWMgR01haW5Db250ZXh0KiB0aHJlYWREZWZhdWx0
Q29udGV4dCgpCit7CisgICAgaWYgKEdNYWluQ29udGV4dCogY29udGV4dCA9IGdfbWFpbl9jb250
ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKQorICAgICAgICByZXR1cm4gY29udGV4dDsKKyAgICBy
ZXR1cm4gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVy
OjpwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGNvbmRpdGlvbiwgZG91YmxlIHRpbWVvdXQpCit7Cisg
ICAgc3RydWN0IFRpbWVvdXRUaW1lciB7CisgICAgICAgIFRpbWVvdXRUaW1lcigpCisgICAgICAg
ICAgICA6IHRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbWVvdXRUaW1lcjo6ZmlyZWQp
CisgICAgICAgIHsgfQorCisgICAgICAgIHZvaWQgZmlyZWQoKSB7IFJ1bkxvb3A6Om1haW4oKS5z
dG9wKCk7IH0KKyAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZW91dFRpbWVyPiB0aW1lcjsKKyAg
ICB9IHRpbWVvdXRUaW1lcjsKKworICAgIHRpbWVvdXRUaW1lci50aW1lci5zZXRQcmlvcml0eShH
X1BSSU9SSVRZX0RFRkFVTFRfSURMRSk7CisgICAgaWYgKHRpbWVvdXQgPj0gMCkKKyAgICAgICAg
dGltZW91dFRpbWVyLnRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lb3V0KTsKKworICAgIFJ1bkxvb3A6
Om1haW4oKS5ydW4oKTsKKworICAgIHRpbWVvdXRUaW1lci50aW1lci5zdG9wKCk7Cit9CisKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZikKK3sKK30KKworc3RhdGljIGNoYXIqIGdldEVudmlyb25tZW50VmFyaWFi
bGVBc1VURjhTdHJpbmcoY29uc3QgY2hhciogdmFyaWFibGVOYW1lKQoreworICAgIGNvbnN0IGNo
YXIqIHZhbHVlID0gZ19nZXRlbnYodmFyaWFibGVOYW1lKTsKKyAgICBpZiAoIXZhbHVlKSB7Cisg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgZW52aXJvbm1lbnQgdmFyaWFibGUgbm90IGZvdW5k
XG4iLCB2YXJpYWJsZU5hbWUpOworICAgICAgICBleGl0KDApOworICAgIH0KKyAgICBnc2l6ZSBi
eXRlc1dyaXR0ZW47CisgICAgcmV0dXJuIGdfZmlsZW5hbWVfdG9fdXRmOCh2YWx1ZSwgLTEsIDAs
ICZieXRlc1dyaXR0ZW4sIDApOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXpl
SW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ2V0RW52
aXJvbm1lbnRWYXJpYWJsZUFzVVRGOFN0cmluZygiVEVTVF9SVU5ORVJfSU5KRUNURURfQlVORExF
X0ZJTEVOQU1FIikpOworICAgIG1faW5qZWN0ZWRCdW5kbGVQYXRoLmFkb3B0KFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHBhdGguZ2V0KCkpKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxl
cjo6aW5pdGlhbGl6ZVRlc3RQbHVnaW5EaXJlY3RvcnkoKQoreworfQorCit2b2lkIFRlc3RDb250
cm9sbGVyOjpydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqKQoreworfQorCitXS0NvbnRleHRSZWYg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ29udGV4dCgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxpYnJhcnlQYXRoRm9y
VGVzdGluZygpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtQ29uZmlndXJlVmlld0ZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKQor
eworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0Nv
bnNpc3RlbnRWYWx1ZXMoKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjp1cGRhdGVQbGF0
Zm9ybVNwZWNpZmljVGVzdE9wdGlvbnNGb3JUZXN0KFRlc3RPcHRpb25zJiwgY29uc3Qgc3RkOjpz
dHJpbmcmKSBjb25zdAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93cGUvbWFpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZj
ZjJiN2ZmMzIxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUv
bWFpbi5jcHAKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJUZXN0
Q29udHJvbGxlci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAg
V1RSOjpUZXN0Q29udHJvbGxlciBjb250cm9sbGVyKGFyZ2MsIGNvbnN0X2Nhc3Q8Y29uc3QgY2hh
cioqPihhcmd2KSk7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9qaGJ1aWxk
L2poYnVpbGQtd3JhcHBlciBiL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCmluZGV4IGY2
YzQwM2QzMWIwLi5lM2VlY2RmY2U4NyAxMDA3NTUKLS0tIGEvVG9vbHMvamhidWlsZC9qaGJ1aWxk
LXdyYXBwZXIKKysrIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKQEAgLTMxLDYgKzMx
LDggQEAgZGVmIGRldGVybWluZV9wbGF0Zm9ybSgpOgogICAgICAgICByZXR1cm4gImVmbCI7CiAg
ICAgaWYgJy0tZ3RrJyBpbiBzeXMuYXJndjoKICAgICAgICAgcmV0dXJuICJndGsiOworICAgIGlm
ICctLXdwZScgaW4gc3lzLmFyZ3Y6CisgICAgICAgIHJldHVybiAid3BlIgogICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ05vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgamhidWlsZC13cmFwcGVyLicpCiAK
IHRyeToKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNl
LW1hbmlmZXN0LnB5IGIvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFu
aWZlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLjc4ZjE0MTA2
OTgyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVz
b3VyY2UtbWFuaWZlc3QucHkKQEAgLTAsMCArMSw3NiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
CisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorIworIyBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworaW1wb3J0IGFyZ3BhcnNlCitp
bXBvcnQgZ2xvYgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK0NPTVBSRVNTSUJMRV9FWFRFTlNJ
T05TID0gWycuaHRtbCcsICcuanMnLCAnLmNzcycsICcuc3ZnJ10KK0JBU0VfRElSID0gJ1dlYklu
c3BlY3RvclVJLycKKworCitkZWYgZ2V0X2ZpbGVuYW1lcyhhcmdzKToKKyAgICBmaWxlbmFtZXMg
PSBbXQorCisgICAgZm9yIHBhdHRlcm4gaW4gYXJnczoKKyAgICAgICAgcGF0aHMgPSBnbG9iLmds
b2IocGF0dGVybikKKyAgICAgICAgZm9yIGZpbGVuYW1lIGluIHBhdGhzOgorICAgICAgICAgICAg
YmFzZV9kaXJfaW5kZXggPSBmaWxlbmFtZS5yZmluZChCQVNFX0RJUikKKyAgICAgICAgICAgIGlm
IGJhc2VfZGlyX2luZGV4ICE9IC0xOgorICAgICAgICAgICAgICAgIG5hbWUgPSBmaWxlbmFtZVti
YXNlX2Rpcl9pbmRleCArIGxlbihCQVNFX0RJUik6XQorICAgICAgICAgICAgICAgICMgVGhlIHJl
c3VsdCBzaG91bGQgdXNlIGZvcndhcmQgc2xhc2hlcywgdGh1cyBtYWtlIHN1cmUgYW55IG9zLXNw
ZWNpZmljCisgICAgICAgICAgICAgICAgIyBzZXBhcmF0b3IsIGFkZGVkIGJ5IHRoZSBnbG9iLmds
b2IoKSBjYWxsLCBpcyBwcm9wZXJseSByZXBsYWNlZAorICAgICAgICAgICAgICAgIGlmIG9zLnNl
cCAhPSAnLyc6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2Uob3Muc2Vw
LCAnLycpCisgICAgICAgICAgICAgICAgZmlsZW5hbWVzLmFwcGVuZChuYW1lKQorICAgIHJldHVy
biBmaWxlbmFtZXMKKworCitkZWYgaXNfY29tcHJlc3NpYmxlKGZpbGVuYW1lKToKKyAgICByZXR1
cm4gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMV0gaW4gQ09NUFJFU1NJQkxFX0VYVEVOU0lP
TlMKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHBhcnNlciA9IGFyZ3BhcnNl
LkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdHZW5lcmF0ZSBhIEdSZXNvdXJjZXMgZmlsZSBm
b3IgdGhlIGluc3BlY3Rvci4nKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0Jywg
bmFyZ3M9Jz8nLCB0eXBlPWFyZ3BhcnNlLkZpbGVUeXBlKCd3JyksIGRlZmF1bHQ9c3lzLnN0ZG91
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3RoZSBvdXRwdXQgZmlsZScpCisgICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgnZmlsZW5hbWVzJywgbWV0YXZhcj0nRklMRVMnLCBuYXJncz0n
KycsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSd0aGUgbGlzdCBvZiBmaWxlcyB0byBp
bmNsdWRlJykKKworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhzeXMuYXJndlsxOl0pCisK
KyAgICBhcmdzLm91dHB1dC53cml0ZShcCisgICAgIiIiPD94bWwgdmVyc2lvbj0xLjAgZW5jb2Rp
bmc9VVRGLTg/PgorICAgIDxncmVzb3VyY2VzPgorICAgICAgICA8Z3Jlc291cmNlIHByZWZpeD0i
L29yZy93cGUvaW5zcGVjdG9yIj4KKyIiIikKKworICAgIGZvciBmaWxlbmFtZSBpbiBnZXRfZmls
ZW5hbWVzKGFyZ3MuZmlsZW5hbWVzKToKKyAgICAgICAgbGluZSA9ICcgICAgICAgICAgICA8Zmls
ZScKKyAgICAgICAgaWYgaXNfY29tcHJlc3NpYmxlKGZpbGVuYW1lKToKKyAgICAgICAgICAgIGxp
bmUgKz0gJyBjb21wcmVzc2VkPSJ0cnVlIicKKyAgICAgICAgaWYgJ0ltYWdlcy9ndGsvJyBpbiBm
aWxlbmFtZToKKyAgICAgICAgICAgIGxpbmUgKz0gJyBhbGlhcz0iJXMiJyAlIGZpbGVuYW1lLnJl
cGxhY2UoJ2d0ay8nLCAnJykKKyAgICAgICAgbGluZSArPSAnPiVzPC9maWxlPlxuJyAlIGZpbGVu
YW1lCisKKyAgICAgICAgYXJncy5vdXRwdXQud3JpdGUobGluZSkKKworICAgIGFyZ3Mub3V0cHV0
LndyaXRlKFwKKyAgICAiIiIgICAgPC9ncmVzb3VyY2U+Cis8L2dyZXNvdXJjZXM+CisiIiIpCmRp
ZmYgLS1naXQgYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvd3BlL2poYnVpbGQu
bW9kdWxlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmVkNzU2MjY0
YTIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCkBAIC0wLDAg
KzEsMjQ2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBtb2R1bGVzZXQgU1lT
VEVNICJtb2R1bGVzZXQuZHRkIj4KKzw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhy
ZWY9Im1vZHVsZXNldC54c2wiPz4KKzxtb2R1bGVzZXQ+CisKKyAgPG1ldGFtb2R1bGUgaWQ9Indl
YmtpdHdwZS10ZXN0aW5nLWRlcGVuZGVuY2llcyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJsaWJzb3VwIi8+Cisg
ICAgICA8ZGVwIHBhY2thZ2U9ImNhaXJvIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZvbnRzIi8+
CisgICAgICA8ZGVwIHBhY2thZ2U9ImRpY3RzIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZvbnRj
b25maWciLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgICA8ZGVwIHBh
Y2thZ2U9ImhhcmZidXp6Ii8+CisgICAgICA8ZGVwIHBhY2thZ2U9InhrYmNvbW1vbiIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJ3YXlsYW5kIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdHJlYW1l
ciIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+CisgICAgICA8ZGVw
IHBhY2thZ2U9ImdzdC1wbHVnaW5zLWdvb2QiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBs
dWdpbnMtYmFkIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1saWJhdiIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJ3cGUiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlLW1lc2EiLz4KKyAgICA8
L2RlcGVuZGVuY2llcz4KKyAgPC9tZXRhbW9kdWxlPgorCisgIDxyZXBvc2l0b3J5IHR5cGU9InRh
cmJhbGwiIG5hbWU9InNvdXJjZXdhcmUub3JnLW1pcnJvciIKKyAgICAgIGhyZWY9Imh0dHA6Ly9t
aXJyb3JzLmtlcm5lbC5vcmcvc291cmNlcy5yZWRoYXQuY29tLyIvPgorICA8cmVwb3NpdG9yeSB0
eXBlPSJ0YXJiYWxsIiBuYW1lPSJmdHAuZ25vbWUub3JnIgorICAgICAgaHJlZj0iaHR0cDovL2Z0
cC5nbm9tZS5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iY2Fpcm9n
cmFwaGljcy5vcmciCisgICAgICBocmVmPSJodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmciLz4KKyAg
PHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnJlZWRlc2t0b3Aub3JnIgorICAgICAg
aHJlZj0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0i
dGFyYmFsbCIgbmFtZT0id2F5bGFuZC5mcmVlZGVza3RvcC5vcmciCisgICAgICBocmVmPSJodHRw
Oi8vd2F5bGFuZC5mcmVlZGVza3RvcC5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0iZ2l0IiBu
YW1lPSJnaXRodWIuY29tIgorICAgICAgaHJlZj0iZ2l0Oi8vZ2l0aHViLmNvbSIvPgorICA8cmVw
b3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJnc3RyZWFtZXIiCisgICAgICBocmVmPSJodHRw
Oi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy9zcmMvIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9
InRhcmJhbGwiIG5hbWU9InhrYmNvbW1vbi5vcmciCisgICAgICBocmVmPSJodHRwOi8veGtiY29t
bW9uLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJzYXZhbm5haC5n
bnUub3JnIgorICAgICAgaHJlZj0iaHR0cDovL2Rvd25sb2FkLnNhdmFubmFoLmdudS5vcmcvcmVs
ZWFzZXMvIi8+CisKKyAgPGF1dG90b29scyBpZD0ibGliZmZpIiBhdXRvZ2VuLXNoPSJjb25maWd1
cmUiPgorICAgIDxicmFuY2ggbW9kdWxlPSJsaWJmZmkvbGliZmZpLTMuMC4xMC50YXIuZ3oiIHZl
cnNpb249IjMuMC4xMCIKKyAgICAgICAgICAgICByZXBvPSJzb3VyY2V3YXJlLm9yZy1taXJyb3Ii
CisgICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmYwMWViOTAyN2U5ZWI1NmFlYWVlZjYzNjY0OTg3
Nzc1NmQ0NzVkNzE0ZWY4YjQ3ZjYyN2Y2NWJjNWYzYjQ5MmYiLz4KKyAgPC9hdXRvdG9vbHM+CisK
KyAgPGF1dG90b29scyBpZD0iZ2xpYiIKKyAgICAgICAgICAgICBhdXRvZ2VuLXNoPSJjb25maWd1
cmUiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1kdHJhY2UiPgorICAgIDxk
ZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImxpYmZmaSIvPgorICAgIDwvZGVwZW5k
ZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvZ2xpYi8yLjQ0
L2dsaWItMi40NC4xLnRhci54eiIgdmVyc2lvbj0iMi40NC4xIgorICAgICAgICAgICAgcmVwbz0i
ZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo4ODExZGVhY2FmOGE1MDNk
MGE5YjcwMTc3N2VhMDc5Y2E2YTQyNzdiZTEwZTNkNzMwZDIxMTI3MzVkNWVjYTA3Ij4KKyAgICAg
IDxwYXRjaCBmaWxlPSJnbGliLXdhcm5pbmctZml4LnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAg
PHBhdGNoIGZpbGU9ImdkYXRlLXN1cHByZXNzLXN0cmluZy1mb3JtYXQtbGl0ZXJhbC13YXJuaW5n
LnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8
YXV0b3Rvb2xzIGlkPSJnbGliLW5ldHdvcmtpbmciPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAg
ICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNo
IG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2dsaWItbmV0d29ya2luZy8yLjQyL2dsaWItbmV0
d29ya2luZy0yLjQyLjAudGFyLnh6IiB2ZXJzaW9uPSIyLjQyLjAiCisgICAgICAgICAgICByZXBv
PSJmdHAuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjMwNGRkOWU0YzBjZWQ2
OTA5NDMwMGUwYjllNjZjZDJlYWFlNzE2MWI5ZmMzMTg2NTM2ZDExNDU4Njc3ZDgyMGQiLz4KKyAg
PC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0ibGlic291cCIKKyAgICAgICAgICAgICBh
dXRvZ2VuYXJncz0iLS13aXRob3V0LWdub21lIC0tZGlzYWJsZS1pbnRyb3NwZWN0aW9uIj4KKyAg
ICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliLW5ldHdvcmtpbmciLz4K
KyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3Vy
Y2VzL2xpYnNvdXAvMi40OC9saWJzb3VwLTIuNDguMC50YXIueHoiIHZlcnNpb249IjIuNDguMCIK
KyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6ZWEzNGRkNjRmZTQ0MzQzNDQ1ZGFmNmRkNjkwZDA2OTFlOWQ5NzM0NjhkZTQ0ODc4ZGE5NzM3
MWMxNmQ4OTc4NCIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250cyIg
c3VwcG9ydHMtbm9uLXNyY2Rpci1idWlsZHM9Im5vIgorICAgICAgICAgICAgIHNraXAtYXV0b2dl
bj0idHJ1ZSI+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9Im1yb2JpbnNv
bi93ZWJraXRndGstdGVzdC1mb250cy5naXQiIGNoZWNrb3V0ZGlyPSJ3ZWJraXRndGstdGVzdC1m
b250cyIgdGFnPSIwLjAuNSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJk
aWN0cyIgc3VwcG9ydHMtbm9uLXNyY2Rpci1idWlsZHM9Im5vIgorICAgICAgICAgICAgIHNraXAt
YXV0b2dlbj0idHJ1ZSI+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9Im1y
b2JpbnNvbi93ZWJraXRndGstdGVzdC1kaWN0cy5naXQiIGNoZWNrb3V0ZGlyPSJ3ZWJraXRndGst
dGVzdC1kaWN0cyIgdGFnPSIwLjAuMSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xz
IGlkPSJmcmVldHlwZTYiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGJyYW5jaCBtb2R1
bGU9ImZyZWV0eXBlL2ZyZWV0eXBlLTIuNC4xMS50YXIuYnoyIiB2ZXJzaW9uPSIyLjQuMTEiCisg
ICAgICAgICAgICByZXBvPSJzYXZhbm5haC5nbnUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hh
MjU2OmVmOWQwYmNiNjQ2NDdkOWU1MTI1ZGM3NTM0ZDdjYTM3MWM5ODMxMGZlYzg3Njc3YzQxMGYz
OTdmNzFmZmJlM2YiCisgICAgICAgICAgICBtZDVzdW09ImI5MzQzNTQ4ODk0MjQ4NmM4ZDBjYTIy
ZThmNzY4MDM0Ij4KKyAgICAgIDxwYXRjaCBmaWxlPSJmcmVldHlwZTYtMi40LjExLXRydWV0eXBl
LWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9h
dXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZm9udGNvbmZpZyIgYXV0b2dlbi1zaD0iY29u
ZmlndXJlIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJmcmVldHlw
ZTYiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0ic29mdHdhcmUv
Zm9udGNvbmZpZy9yZWxlYXNlL2ZvbnRjb25maWctMi4xMS4xLnRhci5neiIgdmVyc2lvbj0iMi4x
MS4xIgorICAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0b3Aub3JnIgorICAgICAgICAgICAgaGFz
aD0ic2hhMjU2OmI2YjA2NmM3ZGNlM2Y0MzZmZGMwZGZiYWU5ZDM2MTIyYjM4MDk0ZjRmNTNiZDhk
ZmZkNDVlMTk1YjA1NDBkOGQiCisgICAgICAgICAgICBtZDVzdW09ImU3NWUzMDNiNGY3NzU2YzJi
MTYyMDNhNTdhYzg3ZWJhIj4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1
dG90b29scyBpZD0iaGFyZmJ1enoiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAgICAgYXV0
b2dlbmFyZ3M9Ii0td2l0aC1jYWlybz1ubyAtLXdpdGgtZ2xpYj1ubyAtLXdpdGgtZnJlZXR5cGU9
eWVzIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJmcmVldHlwZTYi
Lz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0ic29mdHdhcmUvaGFy
ZmJ1enovcmVsZWFzZS9oYXJmYnV6ei0xLjMuMy50YXIuYnoyIgorICAgICAgICAgICAgdmVyc2lv
bj0iMS4zLjMiCisgICAgICAgICAgICBjaGVja291dGRpcj0iaGFyZmJ1enotMS4zLjMiCisgICAg
ICAgICAgICByZXBvPSJmcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6
MjYyMDk4NzExNWE0MTIyYjQ3MzIxNjEwZGNjYmNjMThmN2YxMjExMTVmZDdiODhkYzhhNjk1Yzhi
NjZjYjNjOSIKKyAgICAgICAgICAgIG1kNXN1bT0iOTdhZTE1YTcyYTkzZjFmMjczMjRhMmI4ZDli
ZDNiMWQiPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlk
PSJwaXhtYW4iCisgICAgICAgICAgICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAg
ICAgIGF1dG9nZW5hcmdzPSItLWVuYWJsZS1ndGs9bm8iPgorICAgIDxicmFuY2ggbW9kdWxlPSJy
ZWxlYXNlcy9waXhtYW4tMC4zMi42LnRhci5neiIgdmVyc2lvbj0iMC4zMi42IgorICAgICAgICAg
ICAgcmVwbz0iY2Fpcm9ncmFwaGljcy5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6M2Rm
ZWQxM2I4MDYwZWFkYWJmMGE0OTQ1YzcwNDViNzc5M2NjN2UzZTkxMGU3NDhhOGJiMGYwZGMzZTc5
NDkwNCIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJjYWlybyIgYXV0b2dl
bmFyZ3M9Ii0tZW5hYmxlLWVnbD15ZXMgLS1lbmFibGUtZ2xlc3YyIj4KKyAgICA8ZGVwZW5kZW5j
aWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZv
bnRjb25maWciLz4KKyAgICAgIDxkZXAgcGFja2FnZT0icGl4bWFuIi8+CisgICAgPC9kZXBlbmRl
bmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL2NhaXJvLTEuMTQuOC50YXIueHoi
IHZlcnNpb249IjEuMTQuOCIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgor
ICAgICAgICAgICAgaGFzaD0ic2hhMTpjNmY3Yjk5OTg2ZjkzYzlkZjc4NjUzYzNlNmEzYjUwNDNm
NjUxNDVlIj4KKyAgICAgIDxwYXRjaCBmaWxlPSJjYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3It
ZWdsLXN1cmZhY2UucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9InhrYmNvbW1vbiI+CisgICAgPGJyYW5jaCBtb2R1bGU9
ImRvd25sb2FkL2xpYnhrYmNvbW1vbi0wLjUuMC50YXIueHoiIHZlcnNpb249IjAuNS4wIgorICAg
ICAgICAgICAgcmVwbz0ieGtiY29tbW9uLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTE6NzEy
Nzk5M2JmYjY5ZTEzY2RmZjI1ZmI4YjNjOGYyNmNlNmJlNWJmYSIvPgorICA8L2F1dG90b29scz4K
KworICA8YXV0b3Rvb2xzIGlkPSJ3YXlsYW5kIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWRvY3Vt
ZW50YXRpb24iPgorICAgIDxicmFuY2ggbW9kdWxlPSJyZWxlYXNlcy93YXlsYW5kLTEuOS4wLnRh
ci54eiIgdmVyc2lvbj0iMS45LjAiCisgICAgICAgICAgICByZXBvPSJ3YXlsYW5kLmZyZWVkZXNr
dG9wLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo5Yzg3NzA3MjBhYTAwMzQ0Nzk3MzVm
NThhNGRjNGNhOWIxNzJlY2ZlZGUyOGY1MTM0MzEyZTEzNWI3MzAxZWZhIi8+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9Im9yYyIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1ndGst
ZG9jIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgIDxicmFuY2ggbW9kdWxlPSJvcmMvb3Jj
LTAuNC4xNy50YXIuZ3oiIHZlcnNpb249IjAuNC4xNyIKKyAgICAgICAgICAgIHJlcG89ImdzdHJl
YW1lciIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo0ZmM3Y2NhNDhjNTlmZmYyM2FmZWU3OGZi
NjQyY2RiZGUwMDFmNTY0MDFjOGY0N2I5NWExNjU3OGQxZDVkN2U4IgorICAgICAgICAgICAgbWQ1
c3VtPSJhZjFiZjNkYWI5ZTY5ZjNjMzZmMzg5Mjg1ZTJhMTJhMSIvPgorICA8L2F1dG90b29scz4K
KworICA8YXV0b3Rvb2xzIGlkPSJnc3RyZWFtZXIiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0
b2dlbmFyZ3M9Ii0tZGlzYWJsZS1ndGstZG9jIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAg
PGRlcCBwYWNrYWdlPSJvcmMiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1v
ZHVsZT0iZ3N0cmVhbWVyL2dzdHJlYW1lci0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44
LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6NWEzNzIyZmI5MzAyZGQ5NzdjMTdjZWQ0MjQwMjkzZGM3NzdjYjcxNmRjOThjOGNjYTYzZDc1
YzI3ZTVlMzEwNyIKKyAgICAgICAgICAgIG1kNXN1bT0iNzExYWRhNzliNjNlNDdhYzk2YWRiNGU1
NDQ0ZGM5MDgiPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdHJlYW1lci10eXBlZmluZC1Pbmx5LXB1
c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYtdGhlLS5wYXRjaCIgc3RyaXA9IjEiLz4KKyAg
ICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdp
bnMtYmFzZSIKKyAgICAgICAgICAgICBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgICAg
ICAgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2FibGUtZ3RrLWRvYyI+Cisg
ICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0cmVhbWVyIi8+CisgICAg
PC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWJhc2UvZ3N0
LXBsdWdpbnMtYmFzZS0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAgICAg
ICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MTVhOWRlOTg1
Y2QyNjVjMzQ0ZTM1OWY1YjE5MzQ3ZGY0MDIxYjc2MTFlZDJjMmQ5MTkxN2NiOTAwZjJmYWQ2ZiIK
KyAgICAgICAgICAgIG1kNXN1bT0iNTQyMWVkZmViNzQ3OWQ1ZjU3NzZlOTE3YmEzMGUyNGUiLz4K
KyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtZ29vZCIgYXV0
b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlz
YWJsZS1zb3VwIC0tZGlzYWJsZS1ndGstZG9jIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAg
PGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisK
KyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtZ29vZC9nc3QtcGx1Z2lucy1nb29kLSR7
dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAgICAgICAgICAgIHJlcG89ImdzdHJl
YW1lciIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjoyMTAzZTE3OTIxZDY3ODk0ZTgyZWFmZGQ2
NGZiOWIwNjUxODU5OTk1MmZkOTNlNjI1YmZiYzgzZmZlYWQwOTcyIgorICAgICAgICAgICAgbWQ1
c3VtPSIzZWFiZTcyNzc2ODFiOWJlZjhhNjRjMzEyZGUwM2Q0NyI+CisgICAgICA8cGF0Y2ggZmls
ZT0iZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2giIHN0cmlw
PSIxIi8+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRkZW11
eC1leHBvc2Utc3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoIiBzdHJpcD0iMSIv
PgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3Qt
cGx1Z2lucy1iYWQiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJs
ZS1leGFtcGxlcyAtLWRpc2FibGUtZ3RrLWRvYyAtLWRpc2FibGUtaW50cm9zcGVjdGlvbiI+Cisg
ICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIv
PgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1i
YWQvZ3N0LXBsdWdpbnMtYmFkLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAg
ICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjowYmJk
NThmMzYzNzM0ZmMwYzRhNjIwYjJkNmZiMDFkNDI3ZmRhZmRiZGE3YjkwYjRlMTVkMDNiNzUxY2E0
MGY1IgorICAgICAgICAgICAgbWQ1c3VtPSJlNTA4ZGEyYThhNWMzZDEyMjY0ZmUzNDE1YmUyZjQ1
MSI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRv
LU9wZW5TU0wtMS4xLjAucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0
LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1S
U0FfZ2VuZXJhdGVfay5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRv
dG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0LWxpYmF2IiBhdXRvZ2VuLXNoPSJjb25maWd1
cmUiIGF1dG9nZW5hcmdzPSItLXdpdGgtbGliYXYtZXh0cmEtY29uZmlndXJlPSctLWRpc2FibGUt
eWFzbScgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVw
IHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8
YnJhbmNoIG1vZHVsZT0iZ3N0LWxpYmF2L2dzdC1saWJhdi0ke3ZlcnNpb259LnRhci54eiIgdmVy
c2lvbj0iMS44LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBo
YXNoPSJzaGEyNTY6NDRhNDkxMDhjMzUzMWI1YWM0ZjM0NmEyMjQ3Y2Q3ZmJhZmIwZThhYjM5NDM5
NGNiNmQ3NWE3MDMwMGIzODkzMyIKKyAgICAgICAgICAgIG1kNXN1bT0iODVmMWEwNDc2MDZjYTll
MDg0OTNkN2I2YjQyZGY0NjIiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGNtYWtlIGlkPSJ3cGUi
PgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJXZWJQbGF0Zm9ybUZvckVt
YmVkZGVkL1dQRUJhY2tlbmQuZ2l0IgorICAgICAgICAgICAgdGFnPSI1ZTJhMjlkMmNjYzYzN2Y3
MTIyYmE3MmMxZDYyZWY2NjliNDJmMDVjIiAvPgorICA8L2NtYWtlPgorCisgIDxjbWFrZSBpZD0i
d3BlLW1lc2EiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9IndwZSIg
Lz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIgLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id2F5
bGFuZCIgLz4KKyAgICAgIDxkZXAgcGFja2FnZT0ieGtiY29tbW9uIiAvPgorICAgIDwvZGVwZW5k
ZW5jaWVzPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJXZWJQbGF0Zm9y
bUZvckVtYmVkZGVkL1dQRUJhY2tlbmQtbWVzYS5naXQiCisgICAgICAgICAgICB0YWc9Ijk5NDU3
NTNmOTMzN2ZkNjdhZjA5ODIxOGI3ODE5MzM3YWJhMjExNDEiIC8+CisgIDwvY21ha2U+Cis8L21v
ZHVsZXNldD4KZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9qaGJ1aWxkcmMgYi9Ub29scy93cGUvamhi
dWlsZHJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMmZhODhkNzJh
OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkcmMKQEAgLTAsMCArMSwyNSBA
QAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKKworaW1wb3J0IHN5cworaW1wb3J0IG9zCisKK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRo
LmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uL2poYnVpbGQiKSApCitpbXBvcnQg
amhidWlsZHJjX2NvbW1vbgoramhidWlsZHJjX2NvbW1vbi5pbml0KGdsb2JhbHMoKSwgIndwZSIp
CisjIEVuYWJsZSBidWlsZGRpciAhPSBzcmNkaXIgYnVpbGRzLgorYnVpbGRyb290ID0gb3MucGF0
aC5qb2luKG9zLnBhdGguZGlybmFtZShjaGVja291dHJvb3QpLCAiQnVpbGQiKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvd3BlL3BhdGNoZXMvY2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJm
YWNlLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvY2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9y
LWVnbC1zdXJmYWNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5kNDZkZjQ1YjZmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJv
LWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaApAQCAtMCwwICsxLDEzMyBA
QAorRnJvbSBhNGUwZGFmMThiZjgyNTI0NjNmNjZkNzVlZWY0OTljZmZmYTMyNTY1IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWmFuIERvYmVyc2VrIDx6ZG9iZXJzZWtAaWdhbGlhLmNv
bT4KK0RhdGU6IE1vbiwgMTcgTm92IDIwMTQgMDE6MjM6MTUgLTA4MDAKK1N1YmplY3Q6IFtQQVRD
SF0gQWRkIGNhaXJvX2VnbF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSgpLgorCistLS0K
KyBzcmMvY2Fpcm8tZWdsLWNvbnRleHQuYyB8IDY2ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKy0tLS0tLS0KKyBzcmMvY2Fpcm8tZ2wuaCAgICAgICAgICB8ICAzICsr
KworIDIgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKKwor
ZGlmZiAtLWdpdCBhL3NyYy9jYWlyby1lZ2wtY29udGV4dC5jIGIvc3JjL2NhaXJvLWVnbC1jb250
ZXh0LmMKK2luZGV4IGJmNzA0YzYuLmJlMmJjZjkgMTAwNjQ0CistLS0gYS9zcmMvY2Fpcm8tZWds
LWNvbnRleHQuYworKysrIGIvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMKK0BAIC00OCw3ICs0OCw4
IEBAIHR5cGVkZWYgc3RydWN0IF9jYWlyb19lZ2xfY29udGV4dCB7CisgICAgIEVHTERpc3BsYXkg
ZGlzcGxheTsKKyAgICAgRUdMQ29udGV4dCBjb250ZXh0OworIAorLSAgICBFR0xTdXJmYWNlIGR1
bW15X3N1cmZhY2U7CisrICAgIEVHTFN1cmZhY2Ugc3VyZmFjZTsKKysgICAgY2Fpcm9fYm9vbF90
IGlzX2R1bW15X3N1cmZhY2U7CisgCisgICAgIEVHTENvbnRleHQgcHJldmlvdXNfY29udGV4dDsK
KyAgICAgRUdMU3VyZmFjZSBwcmV2aW91c19zdXJmYWNlOworQEAgLTc0LDcgKzc1LDcgQEAgX2Vn
bF9nZXRfY3VycmVudF9zdXJmYWNlIChjYWlyb19lZ2xfY29udGV4dF90ICpjdHgpCisgeworICAg
ICBpZiAoY3R4LT5iYXNlLmN1cnJlbnRfdGFyZ2V0ID09IE5VTEwgfHwKKyAgICAgICAgIF9jYWly
b19nbF9zdXJmYWNlX2lzX3RleHR1cmUgKGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCkpIHsKKy0J
cmV0dXJuICBjdHgtPmR1bW15X3N1cmZhY2U7CisrCXJldHVybiAgY3R4LT5zdXJmYWNlOworICAg
ICB9CisgCisgICAgIHJldHVybiAoKGNhaXJvX2VnbF9zdXJmYWNlX3QgKikgY3R4LT5iYXNlLmN1
cnJlbnRfdGFyZ2V0KS0+ZWdsOworQEAgLTE1MSw4ICsxNTIsOCBAQCBfZWdsX2Rlc3Ryb3kgKHZv
aWQgKmFic3RyYWN0X2N0eCkKKyAKKyAgICAgZWdsTWFrZUN1cnJlbnQgKGN0eC0+ZGlzcGxheSwK
KyAJCSAgICBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsK
Ky0gICAgaWYgKGN0eC0+ZHVtbXlfc3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkKKy0gICAgICAg
IGVnbERlc3Ryb3lTdXJmYWNlIChjdHgtPmRpc3BsYXksIGN0eC0+ZHVtbXlfc3VyZmFjZSk7Cisr
ICAgIGlmIChjdHgtPmlzX2R1bW15X3N1cmZhY2UgJiYgY3R4LT5zdXJmYWNlICE9IEVHTF9OT19T
VVJGQUNFKQorKyAgICAgICAgZWdsRGVzdHJveVN1cmZhY2UgKGN0eC0+ZGlzcGxheSwgY3R4LT5z
dXJmYWNlKTsKKyB9CisgCisgc3RhdGljIGNhaXJvX2Jvb2xfdAorQEAgLTIxOCwxMyArMjE5LDE0
IEBAIGNhaXJvX2VnbF9kZXZpY2VfY3JlYXRlIChFR0xEaXNwbGF5IGRweSwgRUdMQ29udGV4dCBl
Z2wpCisgCWVnbFF1ZXJ5Q29udGV4dCAoZHB5LCBlZ2wsIEVHTF9DT05GSUdfSUQsICZjb25maWdf
YXR0cmlic1sxXSk7CisgCWVnbENob29zZUNvbmZpZyAoZHB5LCBjb25maWdfYXR0cmlicywgJmNv
bmZpZywgMSwgJm51bUNvbmZpZ3MpOworIAorLQljdHgtPmR1bW15X3N1cmZhY2UgPSBlZ2xDcmVh
dGVQYnVmZmVyU3VyZmFjZSAoZHB5LCBjb25maWcsIGF0dHJpYnMpOworLQlpZiAoY3R4LT5kdW1t
eV9zdXJmYWNlID09IE5VTEwpIHsKKysJY3R4LT5pc19kdW1teV9zdXJmYWNlID0gVFJVRTsKKysJ
Y3R4LT5zdXJmYWNlID0gZWdsQ3JlYXRlUGJ1ZmZlclN1cmZhY2UgKGRweSwgY29uZmlnLCBhdHRy
aWJzKTsKKysJaWYgKGN0eC0+c3VyZmFjZSA9PSBOVUxMKSB7CisgCSAgICBmcmVlIChjdHgpOwor
IAkgICAgcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoQ0FJUk9fU1RB
VFVTX05PX01FTU9SWSk7CisgCX0KKyAKKy0JaWYgKCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBjdHgt
PmR1bW15X3N1cmZhY2UsIGN0eC0+ZHVtbXlfc3VyZmFjZSwgZWdsKSkgeworKwlpZiAoIWVnbE1h
a2VDdXJyZW50IChkcHksIGN0eC0+c3VyZmFjZSwgY3R4LT5zdXJmYWNlLCBlZ2wpKSB7CisgCSAg
ICBmcmVlIChjdHgpOworIAkgICAgcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9l
cnJvciAoQ0FJUk9fU1RBVFVTX05PX01FTU9SWSk7CisgCX0KK0BAIC0yMzgsOCArMjQwLDU0IEBA
IGNhaXJvX2VnbF9kZXZpY2VfY3JlYXRlIChFR0xEaXNwbGF5IGRweSwgRUdMQ29udGV4dCBlZ2wp
CisgCisgICAgIHN0YXR1cyA9IF9jYWlyb19nbF9jb250ZXh0X2luaXQgKCZjdHgtPmJhc2UpOwor
ICAgICBpZiAodW5saWtlbHkgKHN0YXR1cykpIHsKKy0JaWYgKGN0eC0+ZHVtbXlfc3VyZmFjZSAh
PSBFR0xfTk9fU1VSRkFDRSkKKy0JICAgIGVnbERlc3Ryb3lTdXJmYWNlIChkcHksIGN0eC0+ZHVt
bXlfc3VyZmFjZSk7CisrCWlmIChjdHgtPnN1cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCisrCSAg
ICBlZ2xEZXN0cm95U3VyZmFjZSAoZHB5LCBjdHgtPnN1cmZhY2UpOworKwlmcmVlIChjdHgpOwor
KwlyZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChzdGF0dXMpOworKyAg
ICB9CisrCisrICAgIGVnbE1ha2VDdXJyZW50IChkcHksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9f
U1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOworKworKyAgICByZXR1cm4gJmN0eC0+YmFzZS5iYXNl
OworK30KKysKKytjYWlyb19kZXZpY2VfdCAqCisrY2Fpcm9fZWdsX2RldmljZV9jcmVhdGVfZm9y
X2VnbF9zdXJmYWNlIChFR0xEaXNwbGF5IGRweSwgRUdMQ29udGV4dCBlZ2wsIEVHTFN1cmZhY2Ug
c3VyZmFjZSkKKyt7CisrICAgIGNhaXJvX2VnbF9jb250ZXh0X3QgKmN0eDsKKysgICAgY2Fpcm9f
c3RhdHVzX3Qgc3RhdHVzOworKworKyAgICBjdHggPSBjYWxsb2MgKDEsIHNpemVvZiAoY2Fpcm9f
ZWdsX2NvbnRleHRfdCkpOworKyAgICBpZiAodW5saWtlbHkgKGN0eCA9PSBOVUxMKSkKKysJcmV0
dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoQ0FJUk9fU1RBVFVTX05PX01F
TU9SWSk7CisrCisrICAgIGN0eC0+ZGlzcGxheSA9IGRweTsKKysgICAgY3R4LT5jb250ZXh0ID0g
ZWdsOworKyAgICBjdHgtPnN1cmZhY2UgPSBzdXJmYWNlOworKworKyAgICBjdHgtPmJhc2UuYWNx
dWlyZSA9IF9lZ2xfYWNxdWlyZTsKKysgICAgY3R4LT5iYXNlLnJlbGVhc2UgPSBfZWdsX3JlbGVh
c2U7CisrICAgIGN0eC0+YmFzZS5tYWtlX2N1cnJlbnQgPSBfZWdsX21ha2VfY3VycmVudDsKKysg
ICAgY3R4LT5iYXNlLnN3YXBfYnVmZmVycyA9IF9lZ2xfc3dhcF9idWZmZXJzOworKyAgICBjdHgt
PmJhc2UuZGVzdHJveSA9IF9lZ2xfZGVzdHJveTsKKysKKysgICAgLyogV2UgYXJlIGFib3V0IHRo
ZSBjaGFuZ2UgdGhlIGN1cnJlbnQgc3RhdGUgb2YgRUdMLCBzbyB3ZSBzaG91bGQKKysgICAgICog
cXVlcnkgdGhlIHByZS1leGlzdGluZyBzdXJmYWNlIG5vdyBpbnN0ZWFkIG9mIGxhdGVyLiAqLwor
KyAgICBfZWdsX3F1ZXJ5X2N1cnJlbnRfc3RhdGUgKGN0eCk7CisrCisrCWlmICghZWdsTWFrZUN1
cnJlbnQgKGRweSwgc3VyZmFjZSwgc3VyZmFjZSwgZWdsKSkgeworKwkgICAgZnJlZSAoY3R4KTsK
KysJICAgIHJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NU
QVRVU19OT19NRU1PUlkpOworKwl9CisrCisrICAgIHN0YXR1cyA9IF9jYWlyb19nbF9kaXNwYXRj
aF9pbml0ICgmY3R4LT5iYXNlLmRpc3BhdGNoLCBlZ2xHZXRQcm9jQWRkcmVzcyk7CisrICAgIGlm
ICh1bmxpa2VseSAoc3RhdHVzKSkgeworKwlmcmVlIChjdHgpOworKwlyZXR1cm4gX2NhaXJvX2ds
X2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChzdGF0dXMpOworKyAgICB9CisrCisrICAgIHN0YXR1
cyA9IF9jYWlyb19nbF9jb250ZXh0X2luaXQgKCZjdHgtPmJhc2UpOworKyAgICBpZiAodW5saWtl
bHkgKHN0YXR1cykpIHsKKyAJZnJlZSAoY3R4KTsKKyAJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0
X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVzKTsKKyAgICAgfQorZGlmZiAtLWdpdCBhL3NyYy9jYWly
by1nbC5oIGIvc3JjL2NhaXJvLWdsLmgKK2luZGV4IDlmZDc2MDguLmE5NGY1ODEgMTAwNjQ0Cist
LS0gYS9zcmMvY2Fpcm8tZ2wuaAorKysrIGIvc3JjL2NhaXJvLWdsLmgKK0BAIC0xMzIsNiArMTMy
LDkgQEAgY2Fpcm9fZ2xfc3VyZmFjZV9jcmVhdGVfZm9yX2RjIChjYWlyb19kZXZpY2VfdAkJKmRl
dmljZSwKKyBjYWlyb19wdWJsaWMgY2Fpcm9fZGV2aWNlX3QgKgorIGNhaXJvX2VnbF9kZXZpY2Vf
Y3JlYXRlIChFR0xEaXNwbGF5IGRweSwgRUdMQ29udGV4dCBlZ2wpOworIAorK2NhaXJvX3B1Ymxp
YyBjYWlyb19kZXZpY2VfdCAqCisrY2Fpcm9fZWdsX2RldmljZV9jcmVhdGVfZm9yX2VnbF9zdXJm
YWNlIChFR0xEaXNwbGF5IGRweSwgRUdMQ29udGV4dCBlZ2wsIEVHTFN1cmZhY2Ugc3VyZmFjZSk7
CisrCisgY2Fpcm9fcHVibGljIGNhaXJvX3N1cmZhY2VfdCAqCisgY2Fpcm9fZ2xfc3VyZmFjZV9j
cmVhdGVfZm9yX2VnbCAoY2Fpcm9fZGV2aWNlX3QJKmRldmljZSwKKyAJCQkJIEVHTFN1cmZhY2UJ
IGVnbCwKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2ZvbnRjb25maWctQy0xMS1yZXF1
aXJlcy1hLXNwYWNlLWJldHdlZW4tbGl0ZXJhbC1hbmQtaWRlbnRpZmllci5wYXRjaCBiL1Rvb2xz
L3dwZS9wYXRjaGVzL2ZvbnRjb25maWctQy0xMS1yZXF1aXJlcy1hLXNwYWNlLWJldHdlZW4tbGl0
ZXJhbC1hbmQtaWRlbnRpZmllci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uYjRlMGE1NDFkYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hl
cy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlk
ZW50aWZpZXIucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorRnJvbSA3MDY5ZDcxN2U5ODJhZGNmOGUx
ZDMwMGNiZDEwZWVjNjMyMmE2NWM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWtp
cmEgVEFHT0ggPGFraXJhQHRhZ29oLm9yZz4KK0RhdGU6IFN1biwgMjIgQXByIDIwMTIgMjE6NDA6
NDQgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSF0gQysrMTEgcmVxdWlyZXMgYSBzcGFjZSBiZXR3ZWVu
IGxpdGVyYWwgYW5kIGlkZW50aWZpZXIKKworUmVwb3J0ZWQgYnkgQnVnYW5pbmkKKy0tLQorIGZv
bnRjb25maWcvZm9udGNvbmZpZy5oIHwgNiArKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl
cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZm9udGNvbmZpZy9mb250
Y29uZmlnLmggYi9mb250Y29uZmlnL2ZvbnRjb25maWcuaAoraW5kZXggMGUyY2E1MC4uYjI3Y2Ni
NSAxMDA2NDQKKy0tLSBhL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oCisrKysgYi9mb250Y29uZmln
L2ZvbnRjb25maWcuaAorQEAgLTExMiw5ICsxMTIsOSBAQCB0eXBlZGVmIGludAkJRmNCb29sOwor
ICNkZWZpbmUgRkNfREVDT1JBVElWRQkgICAgImRlY29yYXRpdmUiCS8qIEJvb2wgLSB0cnVlIGlm
IHN0eWxlIGlzIGEgZGVjb3JhdGl2ZSB2YXJpYW50ICovCisgI2RlZmluZSBGQ19MQ0RfRklMVEVS
CSAgICAibGNkZmlsdGVyIgkJLyogSW50ICovCisgCistI2RlZmluZSBGQ19DQUNIRV9TVUZGSVgJ
CSAgICAiLmNhY2hlLSJGQ19DQUNIRV9WRVJTSU9OCistI2RlZmluZSBGQ19ESVJfQ0FDSEVfRklM
RQkgICAgImZvbnRzLmNhY2hlLSJGQ19DQUNIRV9WRVJTSU9OCistI2RlZmluZSBGQ19VU0VSX0NB
Q0hFX0ZJTEUJICAgICIuZm9udHMuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKysjZGVmaW5lIEZD
X0NBQ0hFX1NVRkZJWAkJICAgICIuY2FjaGUtIiBGQ19DQUNIRV9WRVJTSU9OCisrI2RlZmluZSBG
Q19ESVJfQ0FDSEVfRklMRQkgICAgImZvbnRzLmNhY2hlLSIgRkNfQ0FDSEVfVkVSU0lPTgorKyNk
ZWZpbmUgRkNfVVNFUl9DQUNIRV9GSUxFCSAgICAiLmZvbnRzLmNhY2hlLSIgRkNfQ0FDSEVfVkVS
U0lPTgorIAorIC8qIEFkanVzdCBvdXRsaW5lIHJhc3Rlcml6ZXIgKi8KKyAjZGVmaW5lIEZDX0NI
QVJfV0lEVEgJICAgICJjaGFyd2lkdGgiCS8qIEludCAqLworLS0gCisxLjguMy4yCisKZGlmZiAt
LWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1o
ZWlnaHQtZml4LnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZnJlZXR5cGU2LTIuNC4xMS10cnVl
dHlwZS1mb250LWhlaWdodC1maXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjBmZmU3NmI0ZWYwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNo
ZXMvZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2gKQEAgLTAs
MCArMSwzOSBAQAorRnJvbSBlMDQ2OTM3MmJlMzg3MGE1YWQ2MGIyYzQ1ODZlOWMyODEzNTdiZDI4
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2VybmVyIExlbWJlcmcgPHdsQGdudS5v
cmc+CitEYXRlOiBUdWUsIDIyIEphbiAyMDEzIDEwOjA3OjA3ICswMDAwCitTdWJqZWN0OiBbdHJ1
ZXR5cGVdIEZpeCBmb250IGhlaWdodC4KKworKiBzcmMvdHJ1ZXR5cGUvdHRvYmpzLmMgKHR0X3Np
emVfcmVzZXQpOiBUaGUgV2luZG93cyByZW5kZXJpbmcKK2VuZ2luZSB1c2VzIHJvdW5kZWQgdmFs
dWVzIG9mIHRoZSBhc2NlbmRlciBhbmQgZGVzY2VuZGVyIHRvIGNvbXB1dGUKK3RoZSBUcnVlVHlw
ZSBmb250IGhlaWdodC4KKy0tLQorZGlmZiAtLWdpdCBhL3NyYy90cnVldHlwZS90dG9ianMuYyBi
L3NyYy90cnVldHlwZS90dG9ianMuYworaW5kZXggYzYxYjIxOC4uNTkwYjY2YyAxMDA2NDQKKy0t
LSBhL3NyYy90cnVldHlwZS90dG9ianMuYworKysrIGIvc3JjL3RydWV0eXBlL3R0b2Jqcy5jCitA
QCAtNCw3ICs0LDcgQEAKKyAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgIE9iamVjdHMgbWFu
YWdlciAoYm9keSkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCisgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy0vKiAgQ29weXJpZ2h0IDE5OTYtMjAxMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworKy8qICBD
b3B5cmlnaHQgMTk5Ni0yMDEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICovCisgLyogIERhdmlkIFR1cm5lciwgUm9iZXJ0IFdpbGhlbG0sIGFuZCBX
ZXJuZXIgTGVtYmVyZy4gICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLworIC8qICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgRnJlZVR5cGUgcHJvamVjdCwgYW5k
IG1heSBvbmx5IGJlIHVzZWQsICAgICAgICovCitAQCAtMTE3NywxMSArMTE3NywxMiBAQAorICAg
ICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuYXNjZW5kZXIsIG1ldHJp
Y3MtPnlfc2NhbGUgKSApOworICAgICAgIG1ldHJpY3MtPmRlc2NlbmRlciA9CisgICAgICAgICBG
VF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5kZXNjZW5kZXIsIG1ldHJpY3MtPnlf
c2NhbGUgKSApOworLSAgICAgIG1ldHJpY3MtPmhlaWdodCA9CistICAgICAgICBGVF9QSVhfUk9V
TkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5oZWlnaHQsIG1ldHJpY3MtPnlfc2NhbGUgKSApOwor
ICAgICAgIG1ldHJpY3MtPm1heF9hZHZhbmNlID0KKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRf
TXVsRml4KCBmYWNlLT5yb290Lm1heF9hZHZhbmNlX3dpZHRoLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1ldHJpY3MtPnhfc2NhbGUgKSApOworKworKyAgICAgIC8qIHRoZSBo
ZWlnaHQgaXMgZGVyaXZlZCBmcm9tIHJvdW5kZWQgdmFsdWVzICovCisrICAgICAgbWV0cmljcy0+
aGVpZ2h0ID0gbWV0cmljcy0+YXNjZW5kZXIgLSBtZXRyaWNzLT5kZXNjZW5kZXI7CisgICAgIH0K
KyAKKyAgICAgLyogY29tcHV0ZSBuZXcgdHJhbnNmb3JtYXRpb24gKi8KKy0tCitjZ2l0IHYwLjku
MC4yCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJpbmct
Zm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dkYXRlLXN1
cHByZXNzLXN0cmluZy1mb3JtYXQtbGl0ZXJhbC13YXJuaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MGNiOTUxYTE5YwotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL3dwZS9wYXRjaGVzL2dkYXRlLXN1cHByZXNzLXN0cmluZy1mb3JtYXQtbGl0ZXJhbC13
YXJuaW5nLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Zyb20gM2E3ZWZkNTk4ZDM5MzY2YzJjOWRl
MGRlZjJmZGZiMzVlNWU5ZjJhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGNveXB1
IDxjb3lwdUBzZGYub3JnPgorRGF0ZTogTW9uLCA4IEZlYiAyMDE2IDAwOjA2OjA2ICswMjAwCitT
dWJqZWN0OiBbUEFUQ0ggMS8xXSBnZGF0ZTogU3VwcHJlc3Mgc3RyaW5nIGZvcm1hdCBsaXRlcmFs
IHdhcm5pbmcKKworTmV3ZXIgdmVyc2lvbnMgb2YgR0NDIGVtaXQgYW4gZXJyb3IgaGVyZSwgYnV0
IHdlIGtub3cgaXQncyBzYWZlLgoraHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvNzYxNTUwCist
LS0KKyBnbGliL2dkYXRlLmMgfCAzICsrKworIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo
KykKKworZGlmZiAtLWdpdCBhL2dsaWIvZ2RhdGUuYyBiL2dsaWIvZ2RhdGUuYworaW5kZXggNGFl
Y2UwMi4uY2RjNzM1YyAxMDA2NDQKKy0tLSBhL2dsaWIvZ2RhdGUuYworKysrIGIvZ2xpYi9nZGF0
ZS5jCitAQCAtMjQ5NCw3ICsyNDk0LDEwIEBAIGdfZGF0ZV9zdHJmdGltZSAoZ2NoYXIgICAgICAg
KnMsCisgICAgICAgICogcmVjb2duaXplIHdoZXRoZXIgc3RyZnRpbWUgYWN0dWFsbHkgZmFpbGVk
IG9yIGp1c3QgcmV0dXJuZWQgIiIuCisgICAgICAgICovCisgICAgICAgdG1wYnVmWzBdID0gJ1wx
JzsKKysgICAgICAjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKysgICAgICAjcHJhZ21hIEdD
QyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCisgICAgICAgdG1wbGVu
ID0gc3RyZnRpbWUgKHRtcGJ1ZiwgdG1wYnVmc2l6ZSwgbG9jYWxlX2Zvcm1hdCwgJnRtKTsKKysg
ICAgICAjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorIAorICAgICAgIGlmICh0bXBsZW4gPT0g
MCAmJiB0bXBidWZbMF0gIT0gJ1wwJykKKyAgICAgICAgIHsKKy0tIAorMi43LjAKKwpkaWZmIC0t
Z2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaCBiL1Rvb2xzL3dw
ZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjhmYWY0ZDExZjJjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaApAQCAtMCwwICsxLDM0IEBACitGcm9tIDlm
OTBlZTVlZWNjZDQ3ZjM5YzdhMDNkY2Q3ODZiMTI1YTE5YzE5NWQgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCitGcm9tOiBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CitE
YXRlOiBTYXQsIDEzIEp1biAyMDE1IDIyOjUyOjMzIC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIGdl
bm1hcnNoYWw6IHNpbGVuY2UgcmVnaXN0ZXIgc3RvcmFnZSBjbGFzcyB3YXJuaW5ncworCitVc2lu
ZyB0aGUgcmVnaXN0ZXIga2V5d29yZCB0cmlnZ2VycyB3YXJuaW5ncyBvbiBub3Rld29ydGh5IGNv
bXBpbGVycworKGNsYW5nKSwgc2luY2UgaXQncyBkZXByZWNhdGVkIGluIEMrKyBhbmQgYXQgZGFu
Z2VyIG9mIGJlaW5nIHJlbW92ZWQKK2Zyb20gdGhlIGxhbmd1YWdlLiBUaGVyZSBpcyBubyByZWFz
b24gdG8gdXNlIGl0IHNpbmNlIGl0IGlzbid0IDE5ODAKK2FueW1vcmUuCisKK2h0dHBzOi8vYnVn
emlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA5MTgKKy0tLQorIGdvYmplY3QvZ2xp
Yi1nZW5tYXJzaGFsLmMgfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo
KyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nb2JqZWN0L2dsaWItZ2VubWFyc2hh
bC5jIGIvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYworaW5kZXggYmU0MTUxYS4uY2E3OGE2ZiAx
MDA2NDQKKy0tLSBhL2dvYmplY3QvZ2xpYi1nZW5tYXJzaGFsLmMKKysrKyBiL2dvYmplY3QvZ2xp
Yi1nZW5tYXJzaGFsLmMKK0BAIC00MTIsOSArNDEyLDkgQEAgZ2VuZXJhdGVfbWFyc2hhbCAoY29u
c3QgZ2NoYXIgKnNpZ25hbWUsCisgICAgICAgZ19mcHJpbnRmIChmb3V0LCAiJXMlcyBkYXRhMik7
XG4iLCBpbmRlbnQgKGluZCksIHBhZCAoImdwb2ludGVyIikpOworIAorICAgICAgIC8qIGNmaWxl
IG1hcnNoYWwgdmFyaWFibGVzICovCistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3Rl
ciBHTWFyc2hhbEZ1bmNfJXMgY2FsbGJhY2s7XG4iLCBzaWduYW1lKTsKKy0gICAgICBnX2Zwcmlu
dGYgKGZvdXQsICIgIHJlZ2lzdGVyIEdDQ2xvc3VyZSAqY2MgPSAoR0NDbG9zdXJlKikgY2xvc3Vy
ZTtcbiIpOworLSAgICAgIGdfZnByaW50ZiAoZm91dCwgIiAgcmVnaXN0ZXIgZ3BvaW50ZXIgZGF0
YTEsIGRhdGEyO1xuIik7CisrICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICBHTWFyc2hhbEZ1bmNf
JXMgY2FsbGJhY2s7XG4iLCBzaWduYW1lKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIEdD
Q2xvc3VyZSAqY2MgPSAoR0NDbG9zdXJlKikgY2xvc3VyZTtcbiIpOworKyAgICAgIGdfZnByaW50
ZiAoZm91dCwgIiAgZ3BvaW50ZXIgZGF0YTEsIGRhdGEyO1xuIik7CisgICAgICAgaWYgKHNpZy0+
cmFyZy0+c2V0dGVyKQorIAlnX2ZwcmludGYgKGZvdXQsICIgICVzIHZfcmV0dXJuO1xuIiwgc2ln
LT5yYXJnLT5jdHlwZSk7CisgCistLSAKKzIuNC4yClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRs
cy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWQxMDY0ZWQ1ZTkKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8t
T3BlblNTTC0xLjEuMC5wYXRjaApAQCAtMCwwICsxLDIzNiBAQAorRnJvbSBlOTM4OTMzMTY3YzQ5
NGNkY2E0NDMzMzRmNjU4YjAyYTAzYzQ0ODZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv
bTogRGFpa2kgVWVubyA8ZHVlbm9AcmVkaGF0LmNvbT4KK0RhdGU6IFdlZCwgMjYgT2N0IDIwMTYg
MTQ6NTE6MDEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZHRsczogcG9ydCB0byBPcGVuU1NMIDEu
MS4wCisKK0NoYW5nZXMgYXJlOgorCistIFVzZSB0aGUgd3JhcHBlciBmdW5jdGlvbnMgdG8gYWNj
ZXNzIG9wYXF1ZSBkYXRhIHR5cGVzLiAgVG8gcHJlc2VydmUKKyAgYmFja3dhcmQgY29tcGF0aWJp
bGl0eSwgZGVmaW5lIGZhbGxiYWNrIGRlZmluaXRpb25zCisKKy0gUmVtb3ZlIHRoZSB1c2Ugb2Yg
aWRpb20gInBxdWV1ZV9zaXplKHNzbC0+ZDEtPnNlbnRfbWVzc2FnZXMpIiwgc2luY2UKKyAgdGhl
cmUgaXMgbm8gcmVwbGFjZW1lbnQKKworLSBVc2UgUlNBX2dlbmVyYXRlX2tleV9leCBpbnN0ZWFk
IG9mIHRoZSBkZXByZWNhdGVkIFJTQV9nZW5lcmF0ZV9rZXkKKworaHR0cHM6Ly9idWd6aWxsYS5n
bm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzU0MAorLS0tCisgZXh0L2R0bHMvZ3N0ZHRsc2Nl
cnRpZmljYXRlLmMgfCAxNSArKysrKysrKworIGV4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMg
IHwgODcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQorIDIgZmls
ZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp
dCBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRp
ZmljYXRlLmMKK2luZGV4IDk1ZmJiODMuLmMxYzk2MDIgMTAwNjQ0CistLS0gYS9leHQvZHRscy9n
c3RkdGxzY2VydGlmaWNhdGUuYworKysrIGIvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMK
K0BAIC0xOTksNyArMTk5LDIyIEBAIGluaXRfZ2VuZXJhdGVkIChHc3REdGxzQ2VydGlmaWNhdGUg
KiBzZWxmKQorICAgICBwcml2LT5wcml2YXRlX2tleSA9IE5VTEw7CisgICAgIHJldHVybjsKKyAg
IH0KKysKKysgIC8qIFhYWDogUlNBX2dlbmVyYXRlX2tleSBpcyBhY3R1YWxseSBkZXByZWNhdGVk
IGluIDAuOS44ICovCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAwMDAxTAor
ICAgcnNhID0gUlNBX2dlbmVyYXRlX2tleSAoMjA0OCwgUlNBX0Y0LCBOVUxMLCBOVUxMKTsKKysj
ZWxzZQorKyAgcnNhID0gUlNBX25ldyAoKTsKKysgIGlmIChyc2EgIT0gTlVMTCkgeworKyAgICBC
SUdOVU0gKmUgPSBCTl9uZXcgKCk7CisrICAgIGlmIChlICE9IE5VTEwgJiYgQk5fc2V0X3dvcmQg
KGUsIFJTQV9GNCkKKysgICAgICAgICYmIFJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwg
ZSwgTlVMTCkpIHsKKysgICAgICBSU0FfZnJlZSAocnNhKTsKKysgICAgICByc2EgPSBOVUxMOwor
KyAgICB9CisrICAgIEJOX2ZyZWUgKGUpOworKyAgfQorKyNlbmRpZgorIAorICAgaWYgKCFyc2Ep
IHsKKyAgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChzZWxmLCAiZmFpbGVkIHRvIGdlbmVyYXRlIFJT
QSIpOworZGlmZiAtLWdpdCBhL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMgYi9leHQvZHRs
cy9nc3RkdGxzY29ubmVjdGlvbi5jCitpbmRleCAzNmY2ZDYzLi43MjhmNWE3IDEwMDY0NAorLS0t
IGEvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYworKysrIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nv
bm5lY3Rpb24uYworQEAgLTQyLDYgKzQyLDggQEAKKyAjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4K
KyAjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD4KKyAKKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrCisg
R1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyAoZ3N0X2R0bHNfY29ubmVjdGlvbl9kZWJ1Zyk7Cisg
I2RlZmluZSBHU1RfQ0FUX0RFRkFVTFQgZ3N0X2R0bHNfY29ubmVjdGlvbl9kZWJ1ZworIEdfREVG
SU5FX1RZUEVfV0lUSF9DT0RFIChHc3REdGxzQ29ubmVjdGlvbiwgZ3N0X2R0bHNfY29ubmVjdGlv
biwgR19UWVBFX09CSkVDVCwKK0BAIC0yMTYsNiArMjE4LDM4IEBAIGdzdF9kdGxzX2Nvbm5lY3Rp
b25fZmluYWxpemUgKEdPYmplY3QgKiBnb2JqZWN0KQorICAgR19PQkpFQ1RfQ0xBU1MgKGdzdF9k
dGxzX2Nvbm5lY3Rpb25fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUgKGdvYmplY3QpOworIH0KKyAK
KysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDFMCisrc3RhdGljIHZvaWQK
KytCSU9fc2V0X2RhdGEgKEJJTyAqIGJpbywgdm9pZCAqcHRyKQorK3sKKysgIGJpby0+cHRyID0g
cHRyOworK30KKysKKytzdGF0aWMgdm9pZCAqCisrQklPX2dldF9kYXRhIChCSU8gKiBiaW8pCisr
eworKyAgcmV0dXJuIGJpby0+cHRyOworK30KKysKKytzdGF0aWMgdm9pZAorK0JJT19zZXRfc2h1
dGRvd24gKEJJTyAqIGJpbywgaW50IHNodXRkb3duKQorK3sKKysgIGJpby0+c2h1dGRvd24gPSBz
aHV0ZG93bjsKKyt9CisrCisrc3RhdGljIHZvaWQKKytCSU9fc2V0X2luaXQgKEJJTyAqIGJpbywg
aW50IGluaXQpCisreworKyAgYmlvLT5pbml0ID0gaW5pdDsKKyt9CisrCisrc3RhdGljIFg1MDkg
KgorK1g1MDlfU1RPUkVfQ1RYX2dldDBfY2VydCAoWDUwOV9TVE9SRV9DVFggKiBjdHgpCisrewor
KyAgcmV0dXJuIGN0eC0+Y2VydDsKKyt9CisrI2VuZGlmCisrCisgc3RhdGljIHZvaWQKKyBnc3Rf
ZHRsc19jb25uZWN0aW9uX3NldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJv
cF9pZCwKKyAgICAgY29uc3QgR1ZhbHVlICogdmFsdWUsIEdQYXJhbVNwZWMgKiBwc3BlYykKK0BA
IC0yMzksNyArMjczLDcgQEAgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJvcGVydHkgKEdPYmpl
Y3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgcHJpdi0+YmlvID0gQklPX25ldyAo
QklPX3NfZ3N0X2R0bHNfY29ubmVjdGlvbiAoKSk7CisgICAgICAgZ19yZXR1cm5faWZfZmFpbCAo
cHJpdi0+YmlvKTsKKyAKKy0gICAgICBwcml2LT5iaW8tPnB0ciA9IHNlbGY7CisrICAgICAgQklP
X3NldF9kYXRhIChwcml2LT5iaW8sIHNlbGYpOworICAgICAgIFNTTF9zZXRfYmlvIChwcml2LT5z
c2wsIHByaXYtPmJpbywgcHJpdi0+YmlvKTsKKyAKKyAgICAgICBTU0xfc2V0X3ZlcmlmeSAocHJp
di0+c3NsLAorQEAgLTU3Myw2ICs2MDcsNyBAQCBsb2dfc3RhdGUgKEdzdER0bHNDb25uZWN0aW9u
ICogc2VsZiwgY29uc3QgZ2NoYXIgKiBzdHIpCisgICBzdGF0ZXMgfD0gKCEgIVNTTF93YW50X3dy
aXRlIChwcml2LT5zc2wpIDw8IDIwKTsKKyAgIHN0YXRlcyB8PSAoISAhU1NMX3dhbnRfcmVhZCAo
cHJpdi0+c3NsKSA8PCAyNCk7CisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEw
MTAwMDAxTAorICAgR1NUX0xPR19PQkpFQ1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVkLCVw
OiVkLyVkKSAleHwleCAlcyIsCisgICAgICAgc3RyLAorICAgICAgIHByaXYtPmlzX2NsaWVudCA/
ICJjbGllbnQiIDogInNlcnZlciIsCitAQCAtNTgxLDYgKzYxNiwxNSBAQCBsb2dfc3RhdGUgKEdz
dER0bHNDb25uZWN0aW9uICogc2VsZiwgY29uc3QgZ2NoYXIgKiBzdHIpCisgICAgICAgcHJpdi0+
YmlvX2J1ZmZlcl9vZmZzZXQsCisgICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9sZW4sCisgICAgICAg
c3RhdGVzLCBTU0xfZ2V0X3N0YXRlIChwcml2LT5zc2wpLCBTU0xfc3RhdGVfc3RyaW5nX2xvbmcg
KHByaXYtPnNzbCkpOworKyNlbHNlCisrICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIiVzOiByb2xl
PSVzIGJ1Zj0oJXA6JWQvJWQpICV4fCV4ICVzIiwKKysgICAgICBzdHIsCisrICAgICAgcHJpdi0+
aXNfY2xpZW50ID8gImNsaWVudCIgOiAic2VydmVyIiwKKysgICAgICBwcml2LT5iaW9fYnVmZmVy
LAorKyAgICAgIHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAorKyAgICAgIHByaXYtPmJpb19idWZm
ZXJfbGVuLAorKyAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAocHJpdi0+c3NsKSwgU1NMX3N0
YXRlX3N0cmluZ19sb25nIChwcml2LT5zc2wpKTsKKysjZW5kaWYKKyB9CisgCisgc3RhdGljIHZv
aWQKK0BAIC03MzcsNyArNzgxLDcgQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sgKGludCBwcmV2
ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICBzZWxmID0gU1NMX2dldF9l
eF9kYXRhIChzc2wsIGNvbm5lY3Rpb25fZXhfaW5kZXgpOworICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwgKEdTVF9JU19EVExTX0NPTk5FQ1RJT04gKHNlbGYpLCBGQUxTRSk7CisgCistICBwZW0gPSBf
Z3N0X2R0bHNfeDUwOV90b19wZW0gKHg1MDlfY3R4LT5jZXJ0KTsKKysgIHBlbSA9IF9nc3RfZHRs
c194NTA5X3RvX3BlbSAoWDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0ICh4NTA5X2N0eCkpOworIAor
ICAgaWYgKCFwZW0pIHsKKyAgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChzZWxmLAorQEAgLTc0OSw3
ICs3OTMsOCBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUw
OV9TVE9SRV9DVFggKiB4NTA5X2N0eCkKKyAgICAgICBnaW50IGxlbjsKKyAKKyAgICAgICBsZW4g
PQorLSAgICAgICAgICBYNTA5X05BTUVfcHJpbnRfZXggKGJpbywgWDUwOV9nZXRfc3ViamVjdF9u
YW1lICh4NTA5X2N0eC0+Y2VydCksIDEsCisrICAgICAgICAgIFg1MDlfTkFNRV9wcmludF9leCAo
YmlvLAorKyAgICAgICAgICBYNTA5X2dldF9zdWJqZWN0X25hbWUgKFg1MDlfU1RPUkVfQ1RYX2dl
dDBfY2VydCAoeDUwOV9jdHgpKSwgMSwKKyAgICAgICAgICAgWE5fRkxBR19NVUxUSUxJTkUpOwor
ICAgICAgIEJJT19yZWFkIChiaW8sIGJ1ZmZlciwgbGVuKTsKKyAgICAgICBidWZmZXJbbGVuXSA9
ICdcMCc7CitAQCAtNzc3LDYgKzgyMiw3IEBAIG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQg
cHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4KQorICAgICAjIyMjIyMjIyAg
IyMjIyAgIyMjIyMjIworICovCisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEw
MTAwMDAxTAorIHN0YXRpYyBCSU9fTUVUSE9EIGN1c3RvbV9iaW9fbWV0aG9kcyA9IHsKKyAgIEJJ
T19UWVBFX0JJTywKKyAgICJzdHJlYW0iLAorQEAgLTc5NSwxMSArODQxLDM0IEBAIEJJT19zX2dz
dF9kdGxzX2Nvbm5lY3Rpb24gKHZvaWQpCisgeworICAgcmV0dXJuICZjdXN0b21fYmlvX21ldGhv
ZHM7CisgfQorKyNlbHNlCisrc3RhdGljIEJJT19NRVRIT0QgKmN1c3RvbV9iaW9fbWV0aG9kczsK
KysKKytzdGF0aWMgQklPX01FVEhPRCAqCisrQklPX3NfZ3N0X2R0bHNfY29ubmVjdGlvbiAodm9p
ZCkKKyt7CisrICBpZiAoY3VzdG9tX2Jpb19tZXRob2RzICE9IE5VTEwpCisrICAgIHJldHVybiBj
dXN0b21fYmlvX21ldGhvZHM7CisrCisrICBjdXN0b21fYmlvX21ldGhvZHMgPSBCSU9fbWV0aF9u
ZXcgKEJJT19UWVBFX0JJTywgInN0cmVhbSIpOworKyAgaWYgKGN1c3RvbV9iaW9fbWV0aG9kcyA9
PSBOVUxMCisrICAgICAgfHwgIUJJT19tZXRoX3NldF93cml0ZSAoY3VzdG9tX2Jpb19tZXRob2Rz
LCBiaW9fbWV0aG9kX3dyaXRlKQorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfcmVhZCAoY3VzdG9t
X2Jpb19tZXRob2RzLCBiaW9fbWV0aG9kX3JlYWQpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9j
dHJsIChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfY3RybCkKKysgICAgICB8fCAhQklP
X21ldGhfc2V0X2NyZWF0ZSAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9kX25ldykKKysg
ICAgICB8fCAhQklPX21ldGhfc2V0X2Rlc3Ryb3kgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21l
dGhvZF9mcmVlKSkgeworKyAgICBCSU9fbWV0aF9mcmVlIChjdXN0b21fYmlvX21ldGhvZHMpOwor
KyAgICByZXR1cm4gTlVMTDsKKysgIH0KKysKKysgIHJldHVybiBjdXN0b21fYmlvX21ldGhvZHM7
CisrfQorKyNlbmRpZgorIAorIHN0YXRpYyBpbnQKKyBiaW9fbWV0aG9kX3dyaXRlIChCSU8gKiBi
aW8sIGNvbnN0IGNoYXIgKmRhdGEsIGludCBzaXplKQorIHsKKy0gIEdzdER0bHNDb25uZWN0aW9u
ICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpOworKyAgR3N0RHRsc0Nvbm5l
Y3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpOwor
IAorICAgR1NUX0xPR19PQkpFQ1QgKHNlbGYsICJCSU86IHdyaXRpbmcgJWQiLCBzaXplKTsKKyAK
K0BAIC04MjQsNyArODkzLDcgQEAgYmlvX21ldGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBj
aGFyICpkYXRhLCBpbnQgc2l6ZSkKKyBzdGF0aWMgaW50CisgYmlvX21ldGhvZF9yZWFkIChCSU8g
KiBiaW8sIGNoYXIgKm91dF9idWZmZXIsIGludCBzaXplKQorIHsKKy0gIEdzdER0bHNDb25uZWN0
aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpOworKyAgR3N0RHRsc0Nv
bm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykp
OworICAgR3N0RHRsc0Nvbm5lY3Rpb25Qcml2YXRlICpwcml2ID0gc2VsZi0+cHJpdjsKKyAgIGd1
aW50IGludGVybmFsX3NpemU7CisgICBnaW50IGNvcHlfc2l6ZTsKK0BAIC04NjgsNyArOTM3LDcg
QEAgYmlvX21ldGhvZF9yZWFkIChCSU8gKiBiaW8sIGNoYXIgKm91dF9idWZmZXIsIGludCBzaXpl
KQorIHN0YXRpYyBsb25nCisgYmlvX21ldGhvZF9jdHJsIChCSU8gKiBiaW8sIGludCBjbWQsIGxv
bmcgYXJnMSwgdm9pZCAqYXJnMikKKyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdT
VF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxm
ID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAgIEdzdER0bHND
b25uZWN0aW9uUHJpdmF0ZSAqcHJpdiA9IHNlbGYtPnByaXY7CisgCisgICBzd2l0Y2ggKGNtZCkg
eworQEAgLTkxNiw4ICs5ODUsOCBAQCBiaW9fbWV0aG9kX25ldyAoQklPICogYmlvKQorIHsKKyAg
IEdTVF9MT0dfT0JKRUNUIChOVUxMLCAiQklPOiBuZXciKTsKKyAKKy0gIGJpby0+c2h1dGRvd24g
PSAwOworLSAgYmlvLT5pbml0ID0gMTsKKysgIEJJT19zZXRfc2h1dGRvd24gKGJpbywgMCk7Cisr
ICBCSU9fc2V0X2luaXQgKGJpbywgMSk7CisgCisgICByZXR1cm4gMTsKKyB9CitAQCAtOTMwLDYg
Kzk5OSw2IEBAIGJpb19tZXRob2RfZnJlZSAoQklPICogYmlvKQorICAgICByZXR1cm4gMDsKKyAg
IH0KKyAKKy0gIEdTVF9MT0dfT0JKRUNUIChHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0ciks
ICJCSU8gZnJlZSIpOworKyAgR1NUX0xPR19PQkpFQ1QgKEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJ
T19nZXRfZGF0YSAoYmlvKSksICJCSU8gZnJlZSIpOworICAgcmV0dXJuIDA7CisgfQorLS0gCisy
LjEwLjIKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAw
MDItZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5w
YXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZp
Y2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2gKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM2Njg3NzM3MGM2Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmlj
YXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaApAQCAtMCwwICsx
LDM3IEBACitGcm9tIDNhMDY5MTkzZTI1MzY0ZWJkYWNhYzg2ZjRiMDMwMjJjMTUxZWEyOWMgTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/U2ViYXN0aWFuPTIwRHI9QzM9
QjZnZT89IDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgorRGF0ZTogTW9uLCAxNCBOb3YgMjAx
NiAxMTozMjoxNyArMDIwMAorU3ViamVjdDogW1BBVENIXSBkdGxzY2VydGlmaWNhdGU6IEZpeCBl
cnJvciBjaGVja2luZyBpbiBSU0FfZ2VuZXJhdGVfa2V5X2V4KCkKKyB1c2FnZQorCitXYXMgYnJv
a2VuIGR1cmluZyB0aGUgcG9ydCBmb3IgT3BlblNTTCAxLjEuCisKK2h0dHBzOi8vYnVnemlsbGEu
Z25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQzMjgKKy0tLQorIGV4dC9kdGxzL2dzdGR0bHNj
ZXJ0aWZpY2F0ZS5jIHwgNyArKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr
KSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZp
Y2F0ZS5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKK2luZGV4IGMxYzk2MDIuLmMy
ZDliYjIgMTAwNjQ0CistLS0gYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworKysrIGIv
ZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKK0BAIC0yMDcsMTIgKzIwNywxMyBAQCBpbml0
X2dlbmVyYXRlZCAoR3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKKyAgIHJzYSA9IFJTQV9uZXcg
KCk7CisgICBpZiAocnNhICE9IE5VTEwpIHsKKyAgICAgQklHTlVNICplID0gQk5fbmV3ICgpOwor
LSAgICBpZiAoZSAhPSBOVUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCistICAgICAgICAm
JiBSU0FfZ2VuZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisrICAgIGlmIChl
ID09IE5VTEwgfHwgIUJOX3NldF93b3JkIChlLCBSU0FfRjQpCisrICAgICAgICB8fCAhUlNBX2dl
bmVyYXRlX2tleV9leCAocnNhLCAyMDQ4LCBlLCBOVUxMKSkgeworICAgICAgIFJTQV9mcmVlIChy
c2EpOworICAgICAgIHJzYSA9IE5VTEw7CisgICAgIH0KKy0gICAgQk5fZnJlZSAoZSk7CisrICAg
IGlmIChlKQorKyAgICAgIEJOX2ZyZWUgKGUpOworICAgfQorICNlbmRpZgorIAorLS0gCisyLjEw
LjIKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZl
cnQtcXRkZW11eC1leHBvc2Utc3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Ut
c3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4zYTYwZGI0NzcyYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVh
bXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaApAQCAtMCwwICsxLDEzMyBAQAorRnJvbSAx
YTgxYmQ5MGQ0YTNlNTlkNjY2OWEwYmJmYTQ1NmYxZWQ0ZTVkYjQ4IE1vbiBTZXAgMTcgMDA6MDA6
MDAgMjAwMQorRnJvbTogWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgPGNhbHZhcmlzQGlnYWxpYS5j
b20+CitEYXRlOiBUaHUsIDcgQXByIDIwMTYgMTM6NTc6MTYgKzAyMDAKK1N1YmplY3Q6IFtQQVRD
SF0gUmV2ZXJ0ICJxdGRlbXV4OiBleHBvc2Ugc3RyZWFtcyB3aXRoIGZpcnN0IG1vb2YgZm9yCisg
ZnJhZ21lbnRlZCBmb3JtYXQiCisKK1RoaXMgcmV2ZXJ0cyBjb21taXQgZDhiYjY2ODdlYTI1MTU3
MGMzMzEwMzgyNzlhNDNkNDQ4MTY3ZDZhZC4KKy0tLQorIGdzdC9pc29tcDQvcXRkZW11eC5jIHwg
NTQgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
IGdzdC9pc29tcDQvcXRkZW11eC5oIHwgIDEgLQorIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0
aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVt
dXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCAzOWJlMTYzLi45NjM2YjRiIDEwMDY0
NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5j
CitAQCAtNjA5LDcgKzYwOSw2IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBxdGRl
bXV4KQorICAgcXRkZW11eC0+c3RhdGUgPSBRVERFTVVYX1NUQVRFX0lOSVRJQUw7CisgICBxdGRl
bXV4LT5wdWxsYmFzZWQgPSBGQUxTRTsKKyAgIHF0ZGVtdXgtPnBvc3RlZF9yZWRpcmVjdCA9IEZB
TFNFOworLSAgcXRkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKKyAgIHF0ZGVtdXgt
Pm5lZWRlZGJ5dGVzID0gMTY7CisgICBxdGRlbXV4LT50b2Ryb3AgPSAwOworICAgcXRkZW11eC0+
YWRhcHRlciA9IGdzdF9hZGFwdGVyX25ldyAoKTsKK0BAIC0yMDQ5LDcgKzIwNDgsNiBAQCBnc3Rf
cXRkZW11eF9yZXNldCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIGdib29sZWFuIGhhcmQpCisgICAg
IGdzdF9jYXBzX3JlcGxhY2UgKCZxdGRlbXV4LT5tZWRpYV9jYXBzLCBOVUxMKTsKKyAgICAgcXRk
ZW11eC0+dGltZXNjYWxlID0gMDsKKyAgICAgcXRkZW11eC0+Z290X21vb3YgPSBGQUxTRTsKKy0g
ICAgcXRkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKKyAgIH0gZWxzZSBpZiAocXRk
ZW11eC0+bXNzX21vZGUpIHsKKyAgICAgZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQgKHF0ZGVtdXgt
PmZsb3djb21iaW5lcik7CisgICAgIGZvciAobiA9IDA7IG4gPCBxdGRlbXV4LT5uX3N0cmVhbXM7
IG4rKykKK0BAIC02MTA0LDcgKzYxMDIsNiBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIg
KEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAgICAgJmZvdXJj
Yyk7CisgICAgICAgICBpZiAoZm91cmNjID09IEZPVVJDQ19tb292KSB7CisgICAgICAgICAgIGdp
bnQgbjsKKy0gICAgICAgICAgZ2Jvb2xlYW4gZ290X3NhbXBsZXMgPSBGQUxTRTsKKyAKKyAgICAg
ICAgICAgLyogaW4gdXN1YWwgZnJhZ21lbnRlZCBzZXR1cCB3ZSBjb3VsZCB0cnkgdG8gc2NhbiBm
b3IgbW9yZQorICAgICAgICAgICAgKiBhbmQgZW5kIHVwIGF0IHRoZSB0aGUgbW9vdiAoYWZ0ZXIg
bWRhdCkgYWdhaW4gKi8KK0BAIC02MTM2LDI3ICs2MTMzLDE5IEBAIGdzdF9xdGRlbXV4X3Byb2Nl
c3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAgICAgICAg
ICAgICBxdGRlbXV4X25vZGVfZHVtcCAoZGVtdXgsIGRlbXV4LT5tb292X25vZGUpOworICAgICAg
ICAgICAgIHF0ZGVtdXhfcGFyc2VfdHJlZSAoZGVtdXgpOworICAgICAgICAgICAgIHF0ZGVtdXhf
cHJlcGFyZV9zdHJlYW1zIChkZW11eCk7CisrICAgICAgICAgICAgaWYgKCFkZW11eC0+Z290X21v
b3YpCisrICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7CisrICAg
ICAgICAgICAgZWxzZSB7CisgCistICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGRlbXV4LT5u
X3N0cmVhbXM7IG4rKykgeworLSAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0g
ZGVtdXgtPnN0cmVhbXNbbl07CistICAgICAgICAgICAgICBnb3Rfc2FtcGxlcyB8PSBzdHJlYW0t
PnN0YmxfaW5kZXggPj0gMDsKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgaWYgKCFkZW11
eC0+ZnJhZ21lbnRlZCB8fCBnb3Rfc2FtcGxlcykgeworLSAgICAgICAgICAgICAgaWYgKCFkZW11
eC0+Z290X21vb3YpIHsKKy0gICAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAo
ZGVtdXgpOworLSAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgZm9yIChu
ID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworLSAgICAgICAgICAgICAgICAgIFF0
RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAgICAg
ICAgIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJlYW0pOworLSAgICAg
ICAgICAgICAgICB9CisrICAgICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3Ry
ZWFtczsgbisrKSB7CisrICAgICAgICAgICAgICAgIFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRl
bXV4LT5zdHJlYW1zW25dOworKworKyAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1
cmVfc3RyZWFtIChkZW11eCwgc3RyZWFtKTsKKyAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg
ICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7CistICAg
ICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKKy0gICAgICAgICAg
ICB9IGVsc2UgeworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gVFJV
RTsKKyAgICAgICAgICAgICB9CisgCisgICAgICAgICAgICAgZGVtdXgtPmdvdF9tb292ID0gVFJV
RTsKKysgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAo
ZGVtdXgpOworIAorICAgICAgICAgICAgIC8qIGZyYWdtZW50ZWQgc3RyZWFtcyBoZWFkZXJzIHNo
b3VsZG4ndCBjb250YWluIGVkdHMgYXRvbXMgKi8KKyAgICAgICAgICAgICBpZiAoIWRlbXV4LT5m
cmFnbWVudGVkKSB7CitAQCAtNjE3NSw3ICs2MTY0LDYgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19h
ZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAgICAgICAgICAg
IGd1aW50NjQgZGlzdCA9IDA7CisgICAgICAgICAgICAgR3N0Q2xvY2tUaW1lIHByZXZfcHRzOwor
ICAgICAgICAgICAgIGd1aW50NjQgcHJldl9vZmZzZXQ7CistICAgICAgICAgICAgZ2ludCBuOwor
IAorICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAiUGFyc2luZyBbbW9vZl0i
KTsKKyAKK0BAIC02MjA5LDI1ICs2MTk3LDE1IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRl
ciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAgICAgICAgICAgICAgIHJl
dCA9IEdTVF9GTE9XX0VSUk9SOworICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAg
ICAgIH0KKy0gICAgICAgICAgICAvKiBpbiBNU1Mgd2UgbmVlZCB0byBleHBvc2UgdGhlIHBhZHMg
YWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29uJ3QgZ2V0IGEgbW9vdiAKKy0gICAgICAgICAg
ICAgKiBBbHNvLCBmcmFnbWVudGVkIGZvcm1hdCBuZWVkIHRvIGJlIGV4cG9zZWQgaWYgYSBtb292
IGhhdmUgbm8gdmFsaWQgc2FtcGxlIGRhdGEgKi8KKy0gICAgICAgICAgICBpZiAoZGVtdXgtPm1z
c19tb2RlIHx8IGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSkgeworLSAgICAgICAgICAgICAgaWYg
KCFkZW11eC0+ZXhwb3NlZCkgeworLSAgICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5n
X25ld3NlZ21lbnQpIHsKKy0gICAgICAgICAgICAgICAgICBHc3RTZWdtZW50IHNlZ21lbnQ7Cist
ICAgICAgICAgICAgICAgICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnNlZ21lbnQsIEdTVF9GT1JNQVRf
VElNRSk7CistICAgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcg
cGVuZGluZ19uZXdzZWdtZW50Iik7CistICAgICAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdf
bmV3c2VnbWVudCA9IGdzdF9ldmVudF9uZXdfc2VnbWVudCAoJnNlZ21lbnQpOworLSAgICAgICAg
ICAgICAgICB9CistICAgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4
KTsKKy0gICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGZvciAobiA9IDA7
IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAgICAgICAgICAgICAgICBRdERlbXV4
U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKy0gICAgICAgICAgICAgICAgICBn
c3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFtIChkZW11eCwgc3RyZWFtKTsKKy0gICAgICAgICAg
ICAgICAgfQorKyAgICAgICAgICAgIC8qIGluIE1TUyB3ZSBuZWVkIHRvIGV4cG9zZSB0aGUgcGFk
cyBhZnRlciB0aGUgZmlyc3QgbW9vZiBhcyB3ZSB3b24ndCBnZXQgYSBtb292ICovCisrICAgICAg
ICAgICAgaWYgKGRlbXV4LT5tc3NfbW9kZSAmJiAhZGVtdXgtPmV4cG9zZWQpIHsKKysgICAgICAg
ICAgICAgIGlmICghZGVtdXgtPnBlbmRpbmdfbmV3c2VnbWVudCkgeworKyAgICAgICAgICAgICAg
ICBHc3RTZWdtZW50IHNlZ21lbnQ7CisrICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2luaXQg
KCZzZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworKyAgICAgICAgICAgICAgICBHU1RfREVCVUdf
T0JKRUNUIChkZW11eCwgIm5ldyBwZW5kaW5nX25ld3NlZ21lbnQiKTsKKysgICAgICAgICAgICAg
ICAgZGVtdXgtPnBlbmRpbmdfbmV3c2VnbWVudCA9IGdzdF9ldmVudF9uZXdfc2VnbWVudCAoJnNl
Z21lbnQpOworICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hl
Y2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKKy0gICAgICAgICAgICAgIGRlbXV4LT5w
ZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworKyAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vf
c3RyZWFtcyAoZGVtdXgpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIkRpc2NhcmRpbmcgW21vb2ZdIik7
CitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXgu
aAoraW5kZXggNjA2MTIxNS4uZWNmMGM2MyAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11
eC5oCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAorQEAgLTg5LDcgKzg5LDYgQEAgc3RydWN0
IF9Hc3RRVERlbXV4IHsKKyAgIGdib29sZWFuIHBvc3RlZF9yZWRpcmVjdDsKKyAKKyAgIC8qIHB1
c2ggYmFzZWQgdmFyaWFibGVzICovCistICBnYm9vbGVhbiBwZW5kaW5nX2NvbmZpZ3VyZTsKKyAg
IGd1aW50IG5lZWRlZGJ5dGVzOworICAgZ3VpbnQgdG9kcm9wOworICAgR3N0QWRhcHRlciAqYWRh
cHRlcjsKKy0tIAorMi44LjAucmMzCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dz
dC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2gK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFlOWRkOTdmNzkxCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhl
LXRmZHQtZGVjb2RlLXRpbWUucGF0Y2gKQEAgLTAsMCArMSwxNDYgQEAKK0Zyb20gNDZkM2UwZmFh
OTIyNjQzMDk0YTVlNDZhMzJlNGY4MmY3NzRhZTc3MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK
K0Zyb206ID0/VVRGLTg/cT9FbnJpcXVlPTIwT2NhPUMzPUIxYT0yMEdvbno9QzM9QTFsZXo/PSA8
ZW9jYW5oYUBpZ2FsaWEuY29tPgorRGF0ZTogVHVlLCAxMCBOb3YgMjAxNSAxMzowOTowMCArMDEw
MAorU3ViamVjdDogW1BBVENIXSBVc2UgdGhlIHRmZHQgZGVjb2RlIHRpbWUgd2hlbiBpdCdzIHNp
Z25pZmljYW50bHkgZGlmZmVyZW50CisgdGhhbiB0aGUgdGltZSBpbiB0aGUgbGFzdCBzYW1wbGUg
aWYgYWx3YXlzLWhvbm9yLXRmZHQgaXMgZW5hYmxlZAorCitodHRwczovL2J1Z3ppbGxhLmdub21l
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MjMwCistLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8
IDcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK
KyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxICsKKyAyIGZpbGVzIGNoYW5nZWQsIDczIGluc2Vy
dGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5jIGIvZ3N0L2lzb21w
NC9xdGRlbXV4LmMKK2luZGV4IDg4MDU5NWUuLmQ4YjU0ZjAgMTAwNjQ0CistLS0gYS9nc3QvaXNv
bXA0L3F0ZGVtdXguYworKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKK0BAIC01MzUsNiArNTM1
LDExIEBAIHN0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X2FwcGVuZF9wcm90ZWN0aW9uX3N5c3RlbV9p
ZCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCisgICAgIGNvbnN0IGdjaGFyICogaWQpOworIHN0YXRp
YyB2b2lkIHF0ZGVtdXhfZ3N0X3N0cnVjdHVyZV9mcmVlIChHc3RTdHJ1Y3R1cmUgKiBnc3RzdHJ1
Y3R1cmUpOworIAorK3N0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X3NldF9wcm9wZXJ0eSAoR09iamVj
dCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgY29uc3QgR1ZhbHVlICogdmFsdWUsIEdQ
YXJhbVNwZWMgKiBzcGVjKTsKKytzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9nZXRfcHJvcGVydHkg
KEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisrICAgIEdWYWx1ZSAqIHZhbHVlLCBH
UGFyYW1TcGVjICogc3BlYyk7CisrCisgc3RhdGljIHZvaWQKKyBnc3RfcXRkZW11eF9jbGFzc19p
bml0IChHc3RRVERlbXV4Q2xhc3MgKiBrbGFzcykKKyB7CitAQCAtNTQ2LDggKzU1MSwyMSBAQCBn
c3RfcXRkZW11eF9jbGFzc19pbml0IChHc3RRVERlbXV4Q2xhc3MgKiBrbGFzcykKKyAKKyAgIHBh
cmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCAoa2xhc3MpOworIAorKyAgZ29i
amVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gZ3N0X3F0ZGVtdXhfc2V0X3Byb3BlcnR5OworKyAg
Z29iamVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5Owor
KworICAgZ29iamVjdF9jbGFzcy0+ZGlzcG9zZSA9IGdzdF9xdGRlbXV4X2Rpc3Bvc2U7CisgCisr
IC8qKgorKyAgICogR3N0UXREZW11eDo6YWx3YXlzLWhvbm9yLXRmZHQ6CisrICAgKgorKyAgICog
UmVxdWVzdHMgdGhlIGRlbXV4ZXIgdG8gcmVzcGVjdCB3aGF0IHRoZSBURkRUIGF0b20gc2F5cyBp
biBvcmRlciB0byBwcm9kdWNlIHByZXNlbnRhdGlvbiB0aW1lc3RhbXBzLiBEZWZhdWx0cyB0byBG
QUxTRS4KKysgICAqLworKyAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ29iamVj
dF9jbGFzcywgUFJPUF9BTFdBWVNfSE9OT1JfVEZEVCwKKysgICAgICBnX3BhcmFtX3NwZWNfYm9v
bGVhbiAoImFsd2F5cy1ob25vci10ZmR0IiwgIkFsd2F5cyBob25vciBURkRUIiwKKysgICAgICAg
ICAgIldoZW4gZW5hYmxlZCwgVEZEVCBhdG9tIHdpbGwgYWx3YXlzIGJlIHJlc3BlY3RlZCBpbiBv
cmRlciB0byBwcm9kdWNlIHByZXNlbnRhdGlvbiB0aW1lc3RhbXBzIiwKKysgICAgICAgICAgRkFM
U0UsIEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9TVEFUSUNfU1RSSU5HUykpOworKworICAg
Z3N0ZWxlbWVudF9jbGFzcy0+Y2hhbmdlX3N0YXRlID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9x
dGRlbXV4X2NoYW5nZV9zdGF0ZSk7CisgI2lmIDAKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPnNldF9p
bmRleCA9IEdTVF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9zZXRfaW5kZXgpOworQEAgLTYx
MSw2ICs2MjksNyBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RRVERlbXV4ICogcXRkZW11eCkKKyAg
IHF0ZGVtdXgtPmNlbmNfYXV4X2luZm9fc2l6ZXMgPSBOVUxMOworICAgcXRkZW11eC0+Y2VuY19h
dXhfc2FtcGxlX2NvdW50ID0gMDsKKyAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcyA9
IE5VTEw7CisrICBxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCA9IEZBTFNFOworICAgZ19xdWV1
ZV9pbml0ICgmcXRkZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZSk7CisgICBnc3Rfc2VnbWVu
dF9pbml0ICgmcXRkZW11eC0+c2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKKyAgIHF0ZGVtdXgt
PmZsb3djb21iaW5lciA9IGdzdF9mbG93X2NvbWJpbmVyX25ldyAoKTsKK0BAIC02MzksNiArNjU4
LDQyIEBAIGdzdF9xdGRlbXV4X2Rpc3Bvc2UgKEdPYmplY3QgKiBvYmplY3QpCisgfQorIAorIHN0
YXRpYyB2b2lkCisrZ3N0X3F0ZGVtdXhfc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBn
dWludCBwcm9wX2lkLAorKyAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHBz
cGVjKQorK3sKKysgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1VWCAob2JqZWN0KTsK
KysKKysgIHN3aXRjaCAocHJvcF9pZCkgeworKyAgICBjYXNlIFBST1BfQUxXQVlTX0hPTk9SX1RG
RFQ6CisrICAgICAgR1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsKKysgICAgICBxdGRlbXV4LT5h
bHdheXNfaG9ub3JfdGZkdCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4gKHZhbHVlKTsKKysgICAgICBH
U1RfT0JKRUNUX1VOTE9DSyAocXRkZW11eCk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6
CisrICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3Bf
aWQsIHBzcGVjKTsKKysgICAgICBicmVhazsKKysgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKytn
c3RfcXRkZW11eF9nZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQs
IEdWYWx1ZSAqIHZhbHVlLAorKyAgICBHUGFyYW1TcGVjICogcHNwZWMpCisreworKyAgR3N0UVRE
ZW11eCAqcXRkZW11eCA9IEdTVF9RVERFTVVYIChvYmplY3QpOworKworKyAgc3dpdGNoIChwcm9w
X2lkKSB7CisrICAgIGNhc2UgUFJPUF9BTFdBWVNfSE9OT1JfVEZEVDoKKysgICAgICBHU1RfT0JK
RUNUX0xPQ0sgKHF0ZGVtdXgpOworKyAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4gKHZhbHVlLCBx
dGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCk7CisrICAgICAgR1NUX09CSkVDVF9VTkxPQ0sgKHF0
ZGVtdXgpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dB
Uk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAg
YnJlYWs7CisrICB9CisrfQorKworK3N0YXRpYyB2b2lkCisgZ3N0X3F0ZGVtdXhfcG9zdF9ub19w
bGF5YWJsZV9zdHJlYW1fZXJyb3IgKEdzdFFURGVtdXggKiBxdGRlbXV4KQorIHsKKyAgIGlmIChx
dGRlbXV4LT5wb3N0ZWRfcmVkaXJlY3QpIHsKK0BAIC0yOTk1LDYgKzMwNTAsMTYgQEAgcXRkZW11
eF9wYXJzZV90cnVuIChHc3RRVERlbXV4ICogcXRkZW11eCwgR3N0Qnl0ZVJlYWRlciAqIHRydW4s
CisgICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLnRpbWVz
dGFtcCArCisgICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFd
LmR1cmF0aW9uOworIAorKyAgICAgIC8qIElmIHdlJ3JlIGFsd2F5cyBob25vcmluZyBURkRUIGFu
ZCB0aGVyZSdzIGEgc2lnbmlmaWNhdGl2ZSBkaWZmZXJlbmNlCisrICAgICAgICogYmV0d2VlbiB0
aGUgZGVjb2RlX3RzIGFuZCB0aGUgdGltZXN0YW1wLCBwcmVmZXIgZGVjb2RlX3RzICovCisrICAg
ICAgaWYgKHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0ID09IFRSVUUKKysgICAgICAgICAgJiYg
YWJzIChkZWNvZGVfdHMgLSB0aW1lc3RhbXApID4KKysgICAgICAgICAgc3RyZWFtLT5zYW1wbGVz
W3N0cmVhbS0+bl9zYW1wbGVzIC0gMV0uZHVyYXRpb24pIHsKKysgICAgICAgIEdTVF9JTkZPX09C
SkVDVCAocXRkZW11eCwKKysgICAgICAgICAgICAiZGVjb2RlX3RzIGlzIHNpZ25pZmljYW50bHkg
ZGlmZmVyZW50IGZyb20gdGltZXN0YW1wLCB1c2luZyBkZWNvZGVfdHMiKTsKKysgICAgICAgIHRp
bWVzdGFtcCA9IGRlY29kZV90czsKKysgICAgICB9CisrCisgICAgICAgZ3N0X3RzID0gUVRTVFJF
QU1USU1FX1RPX0dTVFRJTUUgKHN0cmVhbSwgdGltZXN0YW1wKTsKKyAgICAgICBHU1RfSU5GT19P
QkpFQ1QgKHF0ZGVtdXgsICJmaXJzdCBzYW1wbGUgdHMgJSIgR1NUX1RJTUVfRk9STUFUCisgICAg
ICAgICAgICIgKGV4dGVuZHMgcHJldmlvdXMgc2FtcGxlcykiLCBHU1RfVElNRV9BUkdTIChnc3Rf
dHMpKTsKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguaCBiL2dzdC9pc29tcDQvcXRk
ZW11eC5oCitpbmRleCA1M2JkMDcxLi5lY2YwYzYzIDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9x
dGRlbXV4LmgKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCitAQCAtMTU0LDEyICsxNTQsMjAg
QEAgc3RydWN0IF9Hc3RRVERlbXV4IHsKKyAgIGd1aW50OCAqY2VuY19hdXhfaW5mb19zaXplczsK
KyAgIGd1aW50MzIgY2VuY19hdXhfc2FtcGxlX2NvdW50OworIAorKyAgZ2Jvb2xlYW4gYWx3YXlz
X2hvbm9yX3RmZHQ7CisgfTsKKyAKKyBzdHJ1Y3QgX0dzdFFURGVtdXhDbGFzcyB7CisgICBHc3RF
bGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOworIH07CisgCisrLyogcHJvcHMgKi8KKytlbnVtCisr
eworKyAgUFJPUF8wLAorKyAgUFJPUF9BTFdBWVNfSE9OT1JfVEZEVAorK307CisrCisgR1R5cGUg
Z3N0X3F0ZGVtdXhfZ2V0X3R5cGUgKHZvaWQpOworIAorIEdfRU5EX0RFQ0xTCistLSAKKzIuNi4x
CisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdHJlYW1lci10eXBlZmluZC1Pbmx5
LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYtdGhlLS5wYXRjaCBiL1Rvb2xzL3dwZS9w
YXRjaGVzL2dzdHJlYW1lci10eXBlZmluZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJl
YW0taWYtdGhlLS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YjQ0NmJkNTQ0YzMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFt
ZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0
Y2gKQEAgLTAsMCArMSwzMiBAQAorRnJvbSA1ZTQzZWU1OTg5ZDdiNTFkY2IzMTQ1YmQ5OTc1MjUy
NDdhM2Q2MmRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP1NlYmFz
dGlhbj0yMERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KK0RhdGU6IFdl
ZCwgMTEgTWF5IDIwMTYgMTU6MDY6MzkgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gdHlwZWZpbmQ6
IE9ubHkgcHVzaCBhIENBUFMgZXZlbnQgZG93bnN0cmVhbSBpZiB0aGUgc2lua3BhZCBpcworIG5v
dCBpbiBQVUxMIG1vZGUKKworVGhlIG90aGVyIHNpZ25hbCBoYW5kbGVycyBvZiB0aGUgdHlwZS1m
b3VuZCBzaWduYWwgbWlnaHQgaGF2ZSByZWFjdGl2YXRlZAordHlwZWZpbmQgaW4gUFVMTCBtb2Rl
IGFscmVhZHksIHB1c2hpbmcgYSBDQVBTIGV2ZW50IGF0IHRoYXQgcG9pbnQgd291bGQgY2F1c2UK
K2RlYWRsb2NrcyBhbmQgaXMgaW4gZ2VuZXJhbCB1bmV4cGVjdGVkIGJ5IGVsZW1lbnRzIHRoYXQg
YXJlIGluIFBVTEwgbW9kZS4KKworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcu
Y2dpP2lkPTc2NTkwNgorLS0tCisgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQu
YyB8IDQgKysrKworIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdp
dCBhL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgYi9wbHVnaW5zL2VsZW1l
bnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCitpbmRleCBjNjg2NDEyLi40NTNmZjc1IDEwMDY0NAor
LS0tIGEvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYworKysrIGIvcGx1Z2lu
cy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYworQEAgLTE3OSw2ICsxNzksMTAgQEAgZ3N0
X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSAoR3N0VHlwZUZpbmRFbGVtZW50ICogdHlwZWZp
bmQsCisgICBHU1RfSU5GT19PQkpFQ1QgKHR5cGVmaW5kLCAiZm91bmQgY2FwcyAlIiBHU1RfUFRS
X0ZPUk1BVCAiLCBwcm9iYWJpbGl0eT0ldSIsCisgICAgICAgY2FwcywgcHJvYmFiaWxpdHkpOwor
IAorKyAgLyogRG8gbm90aGluZyBpZiBkb3duc3RyZWFtIGlzIHB1bGxpbmcgZnJvbSB1cyAqLwor
KyAgaWYgKEdTVF9QQURfTU9ERSAodHlwZWZpbmQtPnNyYykgPT0gR1NUX1BBRF9NT0RFX1BVTEwp
CisrICAgIHJldHVybjsKKysKKyAgIEdTVF9PQkpFQ1RfTE9DSyAodHlwZWZpbmQpOworIAorICAg
LyogTm93IGFjdHVhbGx5IHNlbmQgdGhlIENBUFMgZXZlbnQgZG93bnN0cmVhbS4KKy0tIAorMi44
LjEK
</data>

          </attachment>
      

    </bug>

</bugzilla>